From d1b5f8caf5707f18205f37db1478b93a97f1938f Mon Sep 17 00:00:00 2001 From: tpluscode Date: Wed, 10 Apr 2024 19:11:18 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20zazuko/S?= =?UTF-8?q?PEX@3f39b8e55fb97cd58d3bb6c3a6907486231cec98=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 2 +- js/137.9a4594a6.js | 2 - js/137.9a4594a6.js.map | 1 - js/149.a223df4e.js | 2 - js/149.a223df4e.js.map | 1 - js/246.d6c4ddc5.js | 2 - js/246.d6c4ddc5.js.map | 1 - js/249.6097629f.js | 2 + js/249.6097629f.js.map | 1 + js/250.1464af0c.js | 2 + js/250.1464af0c.js.map | 1 + js/250.f09c4840.js | 2 - js/250.f09c4840.js.map | 1 - js/42.17774fbd.js | 2 + js/42.17774fbd.js.map | 1 + js/42.4800fe99.js | 2 - js/42.4800fe99.js.map | 1 - js/498.a85d8927.js | 23 +++++++++ js/498.a85d8927.js.map | 1 + js/498.fa00791c.js | 23 --------- js/498.fa00791c.js.map | 1 - js/668.4e710bba.js | 2 - js/668.4e710bba.js.map | 1 - js/689.2875210a.js | 61 ------------------------ js/689.2875210a.js.map | 1 - js/689.96a6be26.js | 73 ++++++++++++++++++++++++++++ js/689.96a6be26.js.map | 1 + js/742.d4185df6.js | 2 - js/742.d4185df6.js.map | 1 - js/751.82880776.js | 3 -- js/751.82880776.js.map | 1 - js/817.349e1a63.js | 2 - js/817.349e1a63.js.map | 1 - js/844.ef8908ec.js | 2 - js/844.ef8908ec.js.map | 1 - js/9.66b2bd1c.js | 2 + js/9.66b2bd1c.js.map | 1 + js/976.67e32a1d.js | 2 - js/976.67e32a1d.js.map | 1 - js/app.4f33480c.js | 2 - js/app.4f33480c.js.map | 1 - js/app.fca6573c.js | 2 + js/app.fca6573c.js.map | 1 + js/chunk-vendors.a6ce7189.js | 81 -------------------------------- js/chunk-vendors.a6ce7189.js.map | 1 - js/chunk-vendors.b0b8b2ad.js | 69 +++++++++++++++++++++++++++ js/chunk-vendors.b0b8b2ad.js.map | 1 + service-worker.js | 2 +- service-worker.js.map | 2 +- 49 files changed, 186 insertions(+), 208 deletions(-) delete mode 100644 js/137.9a4594a6.js delete mode 100644 js/137.9a4594a6.js.map delete mode 100644 js/149.a223df4e.js delete mode 100644 js/149.a223df4e.js.map delete mode 100644 js/246.d6c4ddc5.js delete mode 100644 js/246.d6c4ddc5.js.map create mode 100644 js/249.6097629f.js create mode 100644 js/249.6097629f.js.map create mode 100644 js/250.1464af0c.js create mode 100644 js/250.1464af0c.js.map delete mode 100644 js/250.f09c4840.js delete mode 100644 js/250.f09c4840.js.map create mode 100644 js/42.17774fbd.js create mode 100644 js/42.17774fbd.js.map delete mode 100644 js/42.4800fe99.js delete mode 100644 js/42.4800fe99.js.map create mode 100644 js/498.a85d8927.js create mode 100644 js/498.a85d8927.js.map delete mode 100644 js/498.fa00791c.js delete mode 100644 js/498.fa00791c.js.map delete mode 100644 js/668.4e710bba.js delete mode 100644 js/668.4e710bba.js.map delete mode 100644 js/689.2875210a.js delete mode 100644 js/689.2875210a.js.map create mode 100644 js/689.96a6be26.js create mode 100644 js/689.96a6be26.js.map delete mode 100644 js/742.d4185df6.js delete mode 100644 js/742.d4185df6.js.map delete mode 100644 js/751.82880776.js delete mode 100644 js/751.82880776.js.map delete mode 100644 js/817.349e1a63.js delete mode 100644 js/817.349e1a63.js.map delete mode 100644 js/844.ef8908ec.js delete mode 100644 js/844.ef8908ec.js.map create mode 100644 js/9.66b2bd1c.js create mode 100644 js/9.66b2bd1c.js.map delete mode 100644 js/976.67e32a1d.js delete mode 100644 js/976.67e32a1d.js.map delete mode 100644 js/app.4f33480c.js delete mode 100644 js/app.4f33480c.js.map create mode 100644 js/app.fca6573c.js create mode 100644 js/app.fca6573c.js.map delete mode 100644 js/chunk-vendors.a6ce7189.js delete mode 100644 js/chunk-vendors.a6ce7189.js.map create mode 100644 js/chunk-vendors.b0b8b2ad.js create mode 100644 js/chunk-vendors.b0b8b2ad.js.map diff --git a/index.html b/index.html index 5828913..e5537c7 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -SPEX
\ No newline at end of file +SPEX
\ No newline at end of file diff --git a/js/137.9a4594a6.js b/js/137.9a4594a6.js deleted file mode 100644 index 6ca15b1..0000000 --- a/js/137.9a4594a6.js +++ /dev/null @@ -1,2 +0,0 @@ -(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[137],{8137:function(t,n,e){const r=e(91135),o=e(95883);class s extends o{constructor(){super(r)}}t.exports=s},91135:function(t,n,e){const r=e(28701).quadToNTriples,o=e(96650);class s extends o{constructor(t){super(t,{map:t=>r(t)+"\n"})}}t.exports=s},95883:function(t){class n{constructor(t,n){this.Impl=t,this.options=n}import(t,n){const e=new this.Impl(t,Object.assign({},this.options,n));return t.on("end",(()=>{e.readable||e.emit("end")})),t.on("error",(t=>{e.emit("error",t)})),e}}t.exports=n},28701:function(t,n,e){const r=e(70516),o=e(8257);t.exports={quadToNTriples:r,termToNTriples:o}},73891:function(t){function n(t){return"_:"+t.value}t.exports=n},3497:function(t){function n(t){return""}t.exports=n},47153:function(t,n,e){const r=e(18367),o=new RegExp('["\\\\\n\r]'),s=new RegExp('["\\\\\n\r]',"g"),u={'"':'\\"',"\\":"\\\\","\n":"\\n","\r":"\\r"};function c(t){return u[t]}function a(t){return o.test(t)?t.replace(s,c):t}function i(t){const n=a(t.value);return"http://www.w3.org/2001/XMLSchema#string"===t.datatype.value?'"'+n+'"':"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"===t.datatype.value?'"'+n+'"@'+t.language:'"'+n+'"^^'+r(t.datatype)}t.exports=i},18367:function(t){function n(t){return"<"+t.value+">"}t.exports=n},70516:function(t,n,e){const r=e(8257);function o(t){const n=r(t.subject),e=r(t.predicate),o=r(t.object),s=r(t.graph);return`${n} ${e} ${o} ${s?s+" ":""}.`}t.exports=o},8257:function(t,n,e){const r=e(73891),o=e(3497),s=e(47153),u=e(18367),c=e(48935);function a(t){switch(t.termType){case"BlankNode":return r(t);case"DefaultGraph":return o(t);case"Literal":return s(t);case"NamedNode":return u(t);case"Variable":return c(t);default:return}}t.exports=a},48935:function(t){function n(t){return"?"+t.value}t.exports=n}}]); -//# sourceMappingURL=137.9a4594a6.js.map \ No newline at end of file diff --git a/js/137.9a4594a6.js.map b/js/137.9a4594a6.js.map deleted file mode 100644 index e42c190..0000000 --- a/js/137.9a4594a6.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/137.9a4594a6.js","mappings":"0GAAA,MAAMA,EAAmB,EAAQ,OAC3BC,EAAO,EAAQ,OAErB,MAAMC,UAAmBD,EACvBE,cACEC,MAAMJ,EACR,EAGFK,EAAOC,QAAUJ,C,wBCTjB,MAAMK,EAAiB,wBACjBC,EAAqB,EAAQ,OAEnC,MAAMR,UAAyBQ,EAC7BL,YAAaM,GACXL,MAAMK,EAAO,CACXC,IAAKC,GAAQJ,EAAeI,GAAQ,MAExC,EAGFN,EAAOC,QAAUN,C,oBCXjB,MAAMC,EACJE,YAAaS,EAAMC,GACjBC,KAAKF,KAAOA,EACZE,KAAKD,QAAUA,CACjB,CAEAE,OAAQN,EAAOI,GACb,MAAMG,EAAS,IAAIF,KAAKF,KAAKH,EAAOQ,OAAOC,OAAO,CAAC,EAAGJ,KAAKD,QAASA,IAYpE,OAVAJ,EAAMU,GAAG,OAAO,KACTH,EAAOI,UACVJ,EAAOK,KAAK,MACd,IAGFZ,EAAMU,GAAG,SAAUG,IACjBN,EAAOK,KAAK,QAASC,EAAG,IAGnBN,CACT,EAGFX,EAAOC,QAAUL,C,wBCvBjB,MAAMU,EAAO,EAAQ,OACfY,EAAO,EAAQ,MAErBlB,EAAOC,QAAU,CACfC,eAAgBI,EAChBa,eAAgBD,E,oBCLlB,SAASE,EAAWA,GAClB,MAAO,KAAOA,EAAUC,KAC1B,CAEArB,EAAOC,QAAUmB,C,mBCJjB,SAASE,EAAcA,GACrB,MAAO,EACT,CAEAtB,EAAOC,QAAUqB,C,wBCJjB,MAAMC,EAAY,EAAQ,OAEpBC,EAAa,IAAIC,OAAO,eACxBC,EAAgB,IAAID,OAAO,cAAe,KAE1CE,EAAmB,CACvB,IAAK,MACL,KAAM,OACN,KAAM,MACN,KAAM,OAGR,SAASC,EAAeC,GACtB,OAAOF,EAAiBE,EAC1B,CAEA,SAASC,EAAaT,GACpB,OAAIG,EAAWO,KAAKV,GACXA,EAAMW,QAAQN,EAAeE,GAG/BP,CACT,CAEA,SAASY,EAASA,GAChB,MAAMC,EAAeJ,EAAYG,EAAQZ,OAEzC,MAA+B,4CAA3BY,EAAQE,SAASd,MACZ,IAAMa,EAAe,IAGC,0DAA3BD,EAAQE,SAASd,MACZ,IAAMa,EAAe,KAAOD,EAAQG,SAGtC,IAAMF,EAAe,MAAQX,EAAUU,EAAQE,SACxD,CAEAnC,EAAOC,QAAUgC,C,oBCtCjB,SAASV,EAAWA,GAClB,MAAO,IAAMA,EAAUF,MAAQ,GACjC,CAEArB,EAAOC,QAAUsB,C,wBCJjB,MAAML,EAAO,EAAQ,MAErB,SAASZ,EAAMA,GACb,MAAM+B,EAAgBnB,EAAKZ,EAAKgC,SAC1BC,EAAkBrB,EAAKZ,EAAKkC,WAC5BC,EAAevB,EAAKZ,EAAKoC,QACzBC,EAAczB,EAAKZ,EAAKsC,OAE9B,MAAO,GAAGP,KAAiBE,KAAmBE,KAAgBE,EAAcA,EAAc,IAAM,KAClG,CAEA3C,EAAOC,QAAUK,C,uBCXjB,MAAMc,EAAY,EAAQ,OACpBE,EAAe,EAAQ,MACvBW,EAAU,EAAQ,OAClBV,EAAY,EAAQ,OACpBsB,EAAW,EAAQ,OAEzB,SAAS3B,EAAMA,GACb,OAAQA,EAAK4B,UACX,IAAK,YACH,OAAO1B,EAAUF,GACnB,IAAK,eACH,OAAOI,EAAaJ,GACtB,IAAK,UACH,OAAOe,EAAQf,GACjB,IAAK,YACH,OAAOK,EAAUL,GACnB,IAAK,WACH,OAAO2B,EAAS3B,GAClB,QACE,OAEN,CAEAlB,EAAOC,QAAUiB,C,oBCvBjB,SAAS2B,EAAUA,GACjB,MAAO,IAAMA,EAASxB,KACxB,CAEArB,EAAOC,QAAU4C,C","sources":["webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/serializer-ntriples/index.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/serializer-ntriples/lib/SerializerStream.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/sink/index.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/to-ntriples/index.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/to-ntriples/lib/blankNode.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/to-ntriples/lib/defaultGraph.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/to-ntriples/lib/literal.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/to-ntriples/lib/namedNode.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/to-ntriples/lib/quad.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/to-ntriples/lib/term.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/to-ntriples/lib/variable.js"],"sourcesContent":["const SerializerStream = require('./lib/SerializerStream')\nconst Sink = require('@rdfjs/sink')\n\nclass Serializer extends Sink {\n constructor () {\n super(SerializerStream)\n }\n}\n\nmodule.exports = Serializer\n","const quadToNTriples = require('@rdfjs/to-ntriples').quadToNTriples\nconst ReadableToReadable = require('readable-to-readable')\n\nclass SerializerStream extends ReadableToReadable {\n constructor (input) {\n super(input, {\n map: quad => quadToNTriples(quad) + '\\n'\n })\n }\n}\n\nmodule.exports = SerializerStream\n","class Sink {\n constructor (Impl, options) {\n this.Impl = Impl\n this.options = options\n }\n\n import (input, options) {\n const output = new this.Impl(input, Object.assign({}, this.options, options))\n\n input.on('end', () => {\n if (!output.readable) {\n output.emit('end')\n }\n })\n\n input.on('error', (err) => {\n output.emit('error', err)\n })\n\n return output\n }\n}\n\nmodule.exports = Sink\n","const quad = require('./lib/quad')\nconst term = require('./lib/term')\n\nmodule.exports = {\n quadToNTriples: quad,\n termToNTriples: term\n}\n","function blankNode (blankNode) {\n return '_:' + blankNode.value // TODO: escape special chars\n}\n\nmodule.exports = blankNode\n","function defaultGraph (defaultGraph) {\n return ''\n}\n\nmodule.exports = defaultGraph\n","const namedNode = require('./namedNode')\n\nconst echarRegEx = new RegExp('[\"\\\\\\\\\\n\\r]') // eslint-disable-line no-control-regex\nconst echarRegExAll = new RegExp('[\"\\\\\\\\\\n\\r]', 'g') // eslint-disable-line no-control-regex\n\nconst echarReplacement = {\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\n': '\\\\n',\n '\\r': '\\\\r'\n}\n\nfunction echarReplacer (char) {\n return echarReplacement[char]\n}\n\nfunction escapeValue (value) {\n if (echarRegEx.test(value)) {\n return value.replace(echarRegExAll, echarReplacer)\n }\n\n return value\n}\n\nfunction literal (literal) {\n const escapedValue = escapeValue(literal.value)\n\n if (literal.datatype.value === 'http://www.w3.org/2001/XMLSchema#string') {\n return '\"' + escapedValue + '\"'\n }\n\n if (literal.datatype.value === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString') {\n return '\"' + escapedValue + '\"@' + literal.language\n }\n\n return '\"' + escapedValue + '\"^^' + namedNode(literal.datatype)\n}\n\nmodule.exports = literal\n","function namedNode (namedNode) {\n return '<' + namedNode.value + '>' // TODO: escape special chars\n}\n\nmodule.exports = namedNode\n","const term = require('./term')\n\nfunction quad (quad) {\n const subjectString = term(quad.subject)\n const predicateString = term(quad.predicate)\n const objectString = term(quad.object)\n const graphString = term(quad.graph)\n\n return `${subjectString} ${predicateString} ${objectString} ${graphString ? graphString + ' ' : ''}.`\n}\n\nmodule.exports = quad\n","const blankNode = require('./blankNode')\nconst defaultGraph = require('./defaultGraph')\nconst literal = require('./literal')\nconst namedNode = require('./namedNode')\nconst variable = require('./variable')\n\nfunction term (term) {\n switch (term.termType) {\n case 'BlankNode':\n return blankNode(term)\n case 'DefaultGraph':\n return defaultGraph(term)\n case 'Literal':\n return literal(term)\n case 'NamedNode':\n return namedNode(term)\n case 'Variable':\n return variable(term)\n default:\n return undefined\n }\n}\n\nmodule.exports = term\n","function variable (variable) {\n return '?' + variable.value // TODO: escape special chars\n}\n\nmodule.exports = variable\n"],"names":["SerializerStream","Sink","Serializer","constructor","super","module","exports","quadToNTriples","ReadableToReadable","input","map","quad","Impl","options","this","import","output","Object","assign","on","readable","emit","err","term","termToNTriples","blankNode","value","defaultGraph","namedNode","echarRegEx","RegExp","echarRegExAll","echarReplacement","echarReplacer","char","escapeValue","test","replace","literal","escapedValue","datatype","language","subjectString","subject","predicateString","predicate","objectString","object","graphString","graph","variable","termType"],"sourceRoot":""} \ No newline at end of file diff --git a/js/149.a223df4e.js b/js/149.a223df4e.js deleted file mode 100644 index 8bcbae3..0000000 --- a/js/149.a223df4e.js +++ /dev/null @@ -1,2 +0,0 @@ -(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[149],{28149:function(e,t,s){const r=s(47078),a=s(95883);class n extends a{constructor(e){super(r,e)}}e.exports=n},23968:function(e){class t{constructor(e){this.stream=e,this.array=[]}push(e){this.array.push(e)}end(){this.stream.push(this.array),this.stream.push(null)}}e.exports=t},47078:function(e,t,s){const r=s(88473),a=s(23968),n=s(1577);class o extends r{constructor(e,{encoding:t="object"}={}){if(super({objectMode:!0,read:()=>{}}),"object"===t&&(this.encoder=new a(this)),"string"===t&&(this.encoder=new n(this)),!this.encoder)throw new Error(`unknown encoding: ${t}`);e.on("data",(e=>{const t={};let s=t;"DefaultGraph"!==e.graph.termType&&(t["@id"]=e.graph.value,t["@graph"]={},s=t["@graph"]),s["@id"]=o.subjectValue(e.subject),"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"===e.predicate.value?s["@type"]=o.subjectValue(e.object):s[e.predicate.value]=o.objectValue(e.object),this.encoder.push(t)})),e.on("end",(()=>this.encoder.end())),e.on("error",(e=>this.emit("error",e)))}static subjectValue(e){return"BlankNode"===e.termType?"_:"+e.value:e.value}static objectValue(e){return"NamedNode"===e.termType?{"@id":e.value}:"BlankNode"===e.termType?{"@id":"_:"+e.value}:e.language?{"@language":e.language,"@value":e.value}:e.datatype&&"http://www.w3.org/2001/XMLSchema#string"!==e.datatype.value?{"@type":e.datatype.value,"@value":e.value}:e.value}}e.exports=o},1577:function(e){class t{constructor(e){this.stream=e,this.first=!0,this.stream.push("[")}push(e){this.first?this.first=!1:this.stream.push(","),this.stream.push(JSON.stringify(e))}end(){this.stream.push("]"),this.stream.push(null)}}e.exports=t},95883:function(e){class t{constructor(e,t){this.Impl=e,this.options=t}import(e,t){const s=new this.Impl(e,Object.assign({},this.options,t));return e.on("end",(()=>{s.readable||s.emit("end")})),e.on("error",(e=>{s.emit("error",e)})),s}}e.exports=t}}]); -//# sourceMappingURL=149.a223df4e.js.map \ No newline at end of file diff --git a/js/149.a223df4e.js.map b/js/149.a223df4e.js.map deleted file mode 100644 index 4afa78c..0000000 --- a/js/149.a223df4e.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/149.a223df4e.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/serializer-jsonld/index.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/serializer-jsonld/lib/ObjectEncoder.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/serializer-jsonld/lib/SerializerStream.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/serializer-jsonld/lib/StringEncoder.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/sink/index.js"],"sourcesContent":["const SerializerStream = require('./lib/SerializerStream')\nconst Sink = require('@rdfjs/sink')\n\nclass Serializer extends Sink {\n constructor (options) {\n super(SerializerStream, options)\n }\n}\n\nmodule.exports = Serializer\n","class ObjectEncoder {\n constructor (stream) {\n this.stream = stream\n this.array = []\n }\n\n push (jsonld) {\n this.array.push(jsonld)\n }\n\n end () {\n this.stream.push(this.array)\n this.stream.push(null)\n }\n}\n\nmodule.exports = ObjectEncoder\n","const Readable = require('readable-stream')\nconst ObjectEncoder = require('./ObjectEncoder')\nconst StringEncoder = require('./StringEncoder')\n\nclass SerializerStream extends Readable {\n constructor (input, { encoding = 'object' } = {}) {\n super({\n objectMode: true,\n read: () => {}\n })\n\n if (encoding === 'object') {\n this.encoder = new ObjectEncoder(this)\n }\n\n if (encoding === 'string') {\n this.encoder = new StringEncoder(this)\n }\n\n if (!this.encoder) {\n throw new Error(`unknown encoding: ${encoding}`)\n }\n\n input.on('data', quad => {\n const jsonld = {}\n let triple = jsonld\n\n if (quad.graph.termType !== 'DefaultGraph') {\n jsonld['@id'] = quad.graph.value\n jsonld['@graph'] = {}\n triple = jsonld['@graph']\n }\n\n triple['@id'] = SerializerStream.subjectValue(quad.subject)\n\n if (quad.predicate.value === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type') {\n triple['@type'] = SerializerStream.subjectValue(quad.object)\n } else {\n triple[quad.predicate.value] = SerializerStream.objectValue(quad.object)\n }\n\n this.encoder.push(jsonld)\n })\n\n input.on('end', () => this.encoder.end())\n\n input.on('error', err => this.emit('error', err))\n }\n\n static subjectValue (subject) {\n return subject.termType === 'BlankNode' ? '_:' + subject.value : subject.value\n }\n\n static objectValue (object) {\n if (object.termType === 'NamedNode') {\n return { '@id': object.value }\n }\n\n if (object.termType === 'BlankNode') {\n return { '@id': '_:' + object.value }\n }\n\n if (object.language) {\n return { '@language': object.language, '@value': object.value }\n } else if (object.datatype && object.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string') {\n return { '@type': object.datatype.value, '@value': object.value }\n } else {\n return object.value\n }\n }\n}\n\nmodule.exports = SerializerStream\n","class StringEncoder {\n constructor (stream) {\n this.stream = stream\n this.first = true\n\n this.stream.push('[')\n }\n\n push (jsonld) {\n if (this.first) {\n this.first = false\n } else {\n this.stream.push(',')\n }\n\n this.stream.push(JSON.stringify(jsonld))\n }\n\n end () {\n this.stream.push(']')\n this.stream.push(null)\n }\n}\n\nmodule.exports = StringEncoder\n","class Sink {\n constructor (Impl, options) {\n this.Impl = Impl\n this.options = options\n }\n\n import (input, options) {\n const output = new this.Impl(input, Object.assign({}, this.options, options))\n\n input.on('end', () => {\n if (!output.readable) {\n output.emit('end')\n }\n })\n\n input.on('error', (err) => {\n output.emit('error', err)\n })\n\n return output\n }\n}\n\nmodule.exports = Sink\n"],"names":["SerializerStream","Sink","Serializer","constructor","options","super","module","exports","ObjectEncoder","stream","this","array","push","jsonld","end","Readable","StringEncoder","input","encoding","objectMode","read","encoder","Error","on","quad","triple","graph","termType","value","subjectValue","subject","predicate","object","objectValue","err","emit","static","language","datatype","first","JSON","stringify","Impl","import","output","Object","assign","readable"],"sourceRoot":""} \ No newline at end of file diff --git a/js/246.d6c4ddc5.js b/js/246.d6c4ddc5.js deleted file mode 100644 index 9e884f0..0000000 --- a/js/246.d6c4ddc5.js +++ /dev/null @@ -1,2 +0,0 @@ -(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[246],{84905:function(t,e,n){const r=n(13767);t.exports=r},77762:function(t){class e{constructor(t){this.value=t||"b"+ ++e.nextId}equals(t){return!!t&&t.termType===this.termType&&t.value===this.value}}e.prototype.termType="BlankNode",e.nextId=0,t.exports=e},13767:function(t,e,n){const r=n(77762),a=n(59060),i=n(95170),s=n(44591),o=n(12591),l=n(73669),d=n(58987);function c(t){return new o(t)}function u(t){return new r(t)}function h(t,e){return"string"===typeof e?-1===e.indexOf(":")?new s(t,e):new s(t,null,x.namedNode(e)):new s(t,null,e)}function p(t){return new d(t)}function f(){return x.defaultGraphInstance}function g(t,e,n){return x.quad(t,e,n)}function y(t,e,n,r){return new l(t,e,n,r||x.defaultGraphInstance)}function C(t){return i.call(x,t)}function w(t){return i.call(x,t)}const x={namedNode:c,blankNode:u,literal:h,variable:p,defaultGraph:f,triple:g,quad:y,fromTerm:C,fromQuad:w,defaultGraphInstance:new a};t.exports=x},59060:function(t){class e{equals(t){return!!t&&t.termType===this.termType}}e.prototype.termType="DefaultGraph",e.prototype.value="",t.exports=e},44591:function(t,e,n){const r=n(12591);class a{constructor(t,e,n){this.value=t,this.datatype=a.stringDatatype,this.language="",e?(this.language=e,this.datatype=a.langStringDatatype):n&&(this.datatype=n)}equals(t){return!!t&&t.termType===this.termType&&t.value===this.value&&t.language===this.language&&t.datatype.equals(this.datatype)}}a.prototype.termType="Literal",a.langStringDatatype=new r("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"),a.stringDatatype=new r("http://www.w3.org/2001/XMLSchema#string"),t.exports=a},12591:function(t){class e{constructor(t){this.value=t}equals(t){return!!t&&t.termType===this.termType&&t.value===this.value}}e.prototype.termType="NamedNode",t.exports=e},73669:function(t,e,n){const r=n(59060);class a{constructor(t,e,n,a){this.subject=t,this.predicate=e,this.object=n,this.graph=a||new r}equals(t){return!!t&&("Quad"===t.termType||!t.termType)&&t.subject.equals(this.subject)&&t.predicate.equals(this.predicate)&&t.object.equals(this.object)&&t.graph.equals(this.graph)}}a.prototype.termType="Quad",a.prototype.value="",t.exports=a},58987:function(t){class e{constructor(t){this.value=t}equals(t){return!!t&&t.termType===this.termType&&t.value===this.value}}e.prototype.termType="Variable",t.exports=e},95170:function(t){function e(t){if(!t)return null;if("BlankNode"===t.termType)return this.blankNode(t.value);if("DefaultGraph"===t.termType)return this.defaultGraph();if("Literal"===t.termType)return this.literal(t.value,t.language||this.namedNode(t.datatype.value));if("NamedNode"===t.termType)return this.namedNode(t.value);if("Quad"===t.termType){const e=this.fromTerm(t.subject),n=this.fromTerm(t.predicate),r=this.fromTerm(t.object),a=this.fromTerm(t.graph);return this.quad(e,n,r,a)}if("Variable"===t.termType)return this.variable(t.value);throw new Error(`unknown termType ${t.termType}`)}t.exports=e},94246:function(t,e,n){const r=n(95883),a=n(63589);class i extends r{constructor(t){super(a,t)}}t.exports=i},63589:function(t,e,n){const r=n(84905),{JsonLdParser:a}=n(30649),{Transform:i}=n(88473),s="null:";function o(t){return e=>"NamedNode"!==e.termType?null:e.value.startsWith(s)?t.namedNode(e.value.slice(s.length)):null}function l(t){const e=o(t);return n=>{const r=e(n.subject),a=e(n.predicate),i=e(n.object),s=e(n.graph);return r||a||i||s?t.quad(r||n.subject,a||n.predicate,i||n.object,s||n.graph):n}}class d{constructor(t,{baseIRI:e=s,context:n=null,factory:o=r}={}){const d=new a({baseIRI:e,context:n,dataFactory:o,streamingProfile:!1});t.pipe(d);const c=l(o),u=new i({objectMode:!0,transform:(t,e,n)=>{n(null,c(t))}});return d.on("context",(t=>{Object.entries(t).forEach((([t,e])=>{u.emit("prefix",t,o.namedNode(e))}))})),d.on("error",(t=>u.destroy(t))),d.pipe(u),u}}t.exports=d},95883:function(t){class e{constructor(t,e){this.Impl=t,this.options=e}import(t,e){const n=new this.Impl(t,Object.assign({},this.options,e));return t.on("end",(()=>{n.readable||n.emit("end")})),t.on("error",(t=>{n.emit("error",t)})),n}}t.exports=e},30649:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n),Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[n]}})}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),a=this&&this.__exportStar||function(t,e){for(var n in t)"default"===n||Object.prototype.hasOwnProperty.call(e,n)||r(e,t,n)};Object.defineProperty(e,"__esModule",{value:!0}),a(n(99333),e)},31434:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextTree=void 0;class n{constructor(){this.subTrees={}}getContext(t){if(t.length>0){const[e,...n]=t,r=this.subTrees[e];if(r){const t=r.getContext(n);if(t)return t.then((({context:t,depth:e})=>({context:t,depth:e+1})))}}return this.context?this.context.then((t=>({context:t,depth:0}))):null}setContext(t,e){if(0===t.length)this.context=e;else{const[r,...a]=t;let i=this.subTrees[r];i||(i=this.subTrees[r]=new n),i.setContext(a,e)}}removeContext(t){this.setContext(t,null)}}e.ContextTree=n},99333:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.JsonLdParser=void 0;const r=n(2222),a=n(11288),i=n(42830),s=n(27765),o=n(52780),l=n(52234),d=n(37930),c=n(70983),u=n(42397),h=n(96700),p=n(26664),f=n(84149),g=n(46100),y=n(65457),C=n(18896),w=n(82962),x=n(44360),E=n(12475);class m extends i.Transform{constructor(t){super({readableObjectMode:!0}),t=t||{},this.options=t,this.parsingContext=new w.ParsingContext(Object.assign({parser:this},t)),this.util=new x.Util({dataFactory:t.dataFactory,parsingContext:this.parsingContext}),this.jsonParser=new r,this.contextJobs=[],this.typeJobs=[],this.contextAwaitingJobs=[],this.lastDepth=0,this.lastKeys=[],this.lastOnValueJob=Promise.resolve(),this.attachJsonParserListeners(),this.on("end",(()=>{"undefined"!==typeof this.jsonParser.mode&&this.emit("error",new Error("Unclosed document"))}))}static fromHttpResponse(t,e,n,r){let i,s;if("application/ld+json"!==e){if("application/json"!==e&&!e.endsWith("+json"))throw new a.ErrorCoded(`Unsupported JSON-LD media type ${e}`,a.ERROR_CODES.LOADING_DOCUMENT_FAILED);if(n&&n.has("Link")&&n.forEach(((e,n)=>{if("link"===n){const n=E.parse(e);for(const e of n.get("rel","http://www.w3.org/ns/json-ld#context")){if(i)throw new a.ErrorCoded("Multiple JSON-LD context link headers were found on "+t,a.ERROR_CODES.MULTIPLE_CONTEXT_LINK_HEADERS);i=e.uri}}})),!i&&!(null===r||void 0===r?void 0:r.ignoreMissingContextLinkHeader))throw new a.ErrorCoded(`Missing context link header for media type ${e} on ${t}`,a.ERROR_CODES.LOADING_DOCUMENT_FAILED)}if(n&&n.has("Content-Type")){const t=n.get("Content-Type"),e=/; *profile=([^"]*)/.exec(t);e&&"http://www.w3.org/ns/json-ld#streaming"===e[1]&&(s=!0)}return new m(Object.assign({baseIRI:t,context:i,streamingProfile:s},r||{}))}import(t){const e=new i.PassThrough({readableObjectMode:!0});t.on("error",(t=>n.emit("error",t))),t.on("data",(t=>e.push(t))),t.on("end",(()=>e.push(null)));const n=e.pipe(new m(this.options));return n}_transform(t,e,n){this.jsonParser.write(t),this.lastOnValueJob.then((()=>n()),(t=>n(t)))}async newOnValueJob(t,e,n,r){let i=!0;if(r&&n1&&(c=this.parsingContext.validationStack[this.parsingContext.validationStack.length-1].property);for(let a=Math.max(1,this.parsingContext.validationStack.length-1);a=0?this.parsingContext.idStack[t-n-1]:[await this.util.getGraphContainerValue(e,t)];if(i)for(const e of i){this.parsingContext.emittedStack[t]=!0;for(const n of r)n.reverse?this.parsingContext.emitQuad(t,this.util.dataFactory.quad(n.object,n.predicate,a,e)):this.parsingContext.emitQuad(t,this.util.dataFactory.quad(a,n.predicate,n.object,e))}else{const n=this.parsingContext.getUnidentifiedGraphBufferSafe(t-await this.util.getDepthOffsetGraph(t,e)-1);for(const t of r)t.reverse?n.push({object:a,predicate:t.predicate,subject:t.object}):n.push({object:t.object,predicate:t.predicate,subject:a})}}this.parsingContext.unidentifiedValuesBuffer.splice(t,1),this.parsingContext.literalStack.splice(t,1),this.parsingContext.jsonLiteralStack.splice(t,1)}const a=this.parsingContext.unidentifiedGraphsBuffer[t];if(a){for(const e of n){const n=1!==t||"BlankNode"!==e.termType||this.parsingContext.topLevelProperties?e:this.util.getDefaultGraph();this.parsingContext.emittedStack[t]=!0;for(const e of a)this.parsingContext.emitQuad(t,this.util.dataFactory.quad(e.subject,e.predicate,e.object,n))}this.parsingContext.unidentifiedGraphsBuffer.splice(t,1)}}async validateKey(t,e,n){for(const r of m.ENTRY_HANDLERS)if(await r.validate(this.parsingContext,this.util,t,e,n))return{valid:!0,property:n||r.isPropertyHandler()};return{valid:!1,property:!1}}attachJsonParserListeners(){this.jsonParser.onValue=t=>{const e=this.jsonParser.stack.length,n=new Array(e+1).fill(0).map(((t,n)=>n===e?this.jsonParser.key:this.jsonParser.stack[n].key));if(!this.isParsingContextInner(e)){const r=()=>this.newOnValueJob(n,t,e,!0);if(this.parsingContext.streamingProfile||this.parsingContext.contextTree.getContext(n.slice(0,-1)))this.lastOnValueJob=this.lastOnValueJob.then(r);else if("@context"===n[e]){let t=this.contextJobs[e];t||(t=this.contextJobs[e]=[]),t.push(r)}else"@type"===n[e]||"number"===typeof n[e]&&"@type"===n[e-1]?this.typeJobs.push({job:r,keys:n.slice(0,n.length-1)}):this.contextAwaitingJobs.push({job:r,keys:n});this.parsingContext.streamingProfile||0!==e||(this.lastOnValueJob=this.lastOnValueJob.then((()=>this.executeBufferedJobs())))}},this.jsonParser.onError=t=>{this.emit("error",t)}}isParsingContextInner(t){for(let e=t;e>0;e--)if("@context"===this.jsonParser.stack[e-1].key)return!0;return!1}async executeBufferedJobs(){for(const t of this.contextJobs)if(t)for(const e of t)await e();this.parsingContext.unaliasedKeywordCacheStack.splice(0);for(const t of this.contextAwaitingJobs){if(this.typeJobs.length>0){const e=[],n=[];for(let i=0;it.keys.length-e.keys.length));for(const t of r)await t.job();const a=n.sort().reverse();for(const t of a)this.typeJobs.splice(t,1)}await t.job()}}}e.JsonLdParser=m,m.DEFAULT_PROCESSING_MODE="1.1",m.ENTRY_HANDLERS=[new s.EntryHandlerArrayValue,new c.EntryHandlerKeywordContext,new h.EntryHandlerKeywordId,new p.EntryHandlerKeywordIncluded,new u.EntryHandlerKeywordGraph,new f.EntryHandlerKeywordNest,new g.EntryHandlerKeywordType,new C.EntryHandlerKeywordValue,new o.EntryHandlerContainer,new y.EntryHandlerKeywordUnknownFallback,new d.EntryHandlerPredicate,new l.EntryHandlerInvalidFallback]},82962:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ParsingContext=void 0;const r=n(11288),a=n(87011),i=n(31434),s=n(99333);class o{constructor(t){this.contextParser=new r.ContextParser({documentLoader:t.documentLoader,skipValidation:t.skipContextValidation}),this.streamingProfile=!!t.streamingProfile,this.baseIRI=t.baseIRI,this.produceGeneralizedRdf=!!t.produceGeneralizedRdf,this.allowSubjectList=!!t.allowSubjectList,this.processingMode=t.processingMode||s.JsonLdParser.DEFAULT_PROCESSING_MODE,this.strictValues=!!t.strictValues,this.validateValueIndexes=!!t.validateValueIndexes,this.defaultGraph=t.defaultGraph,this.rdfDirection=t.rdfDirection,this.normalizeLanguageTags=t.normalizeLanguageTags,this.streamingProfileAllowOutOfOrderPlainType=t.streamingProfileAllowOutOfOrderPlainType,this.topLevelProperties=!1,this.activeProcessingMode=parseFloat(this.processingMode),this.processingStack=[],this.processingType=[],this.emittedStack=[],this.idStack=[],this.graphStack=[],this.graphContainerTermStack=[],this.listPointerStack=[],this.contextTree=new i.ContextTree,this.literalStack=[],this.validationStack=[],this.unaliasedKeywordCacheStack=[],this.jsonLiteralStack=[],this.unidentifiedValuesBuffer=[],this.unidentifiedGraphsBuffer=[],this.pendingContainerFlushBuffers=[],this.parser=t.parser,t.context?(this.rootContext=this.parseContext(t.context),this.rootContext.then((t=>this.validateContext(t)))):this.rootContext=Promise.resolve(new r.JsonLdContextNormalized(this.baseIRI?{"@base":this.baseIRI,"@__baseDocument":!0}:{}))}async parseContext(t,e,n){return this.contextParser.parse(t,{baseIRI:this.baseIRI,ignoreProtection:n,normalizeLanguageTags:this.normalizeLanguageTags,parentContext:e,processingMode:this.activeProcessingMode})}validateContext(t){const e=t.getContextRaw()["@version"];if(e){if(this.activeProcessingMode&&e>this.activeProcessingMode)throw new a.ErrorCoded(`Unsupported JSON-LD version '${e}' under active processing mode ${this.activeProcessingMode}.`,a.ERROR_CODES.PROCESSING_MODE_CONFLICT);if(this.activeProcessingMode&&e0&&!1===a.context.getContextRaw()["@propagate"]&&a.depth!==e&&!n);return 0===a.depth&&!1===a.context.getContextRaw()["@propagate"]&&a.depth!==e&&(a.context=new r.JsonLdContextNormalized({})),a}async newOnValueJob(t,e,n,r){await this.parser.newOnValueJob(t,e,n,r)}async handlePendingContainerFlushBuffers(){if(this.pendingContainerFlushBuffers.length>0){for(const t of this.pendingContainerFlushBuffers)await this.parser.flushBuffer(t.depth,t.keys),this.parser.flushStacks(t.depth);return this.pendingContainerFlushBuffers.splice(0,this.pendingContainerFlushBuffers.length),!0}return!1}emitQuad(t,e){1===t&&(this.topLevelProperties=!0),this.parser.push(e)}emitError(t){this.parser.emit("error",t)}emitContext(t){this.parser.emit("context",t)}getUnidentifiedValueBufferSafe(t){let e=this.unidentifiedValuesBuffer[t];return e||(e=[],this.unidentifiedValuesBuffer[t]=e),e}getUnidentifiedGraphBufferSafe(t){let e=this.unidentifiedGraphsBuffer[t];return e||(e=[],this.unidentifiedGraphsBuffer[t]=e),e}getExpandOptions(){return o.EXPAND_OPTIONS[this.activeProcessingMode]}shiftStack(t,e){const n=this.idStack[t+e];if(n&&(this.idStack[t]=n,this.emittedStack[t]=!0,delete this.idStack[t+e]),this.pendingContainerFlushBuffers.length)for(const r of this.pendingContainerFlushBuffers)r.depth>=t+e&&(r.depth-=e,r.keys.splice(t,e));this.unidentifiedValuesBuffer[t+e]&&(this.unidentifiedValuesBuffer[t]=this.unidentifiedValuesBuffer[t+e],delete this.unidentifiedValuesBuffer[t+e])}}e.ParsingContext=o,o.EXPAND_OPTIONS={1:{allowPrefixForcing:!1,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!1},1.1:{allowPrefixForcing:!0,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!0}}},44360:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Util=void 0;const r=n(11288),a=n(41640),i=n(52780),s=n(95456);class o{constructor(t){this.parsingContext=t.parsingContext,this.dataFactory=t.dataFactory||new a.DataFactory,this.rdfFirst=this.dataFactory.namedNode(o.RDF+"first"),this.rdfRest=this.dataFactory.namedNode(o.RDF+"rest"),this.rdfNil=this.dataFactory.namedNode(o.RDF+"nil"),this.rdfType=this.dataFactory.namedNode(o.RDF+"type"),this.rdfJson=this.dataFactory.namedNode(o.RDF+"JSON")}static getContextValue(t,e,n,r){const a=t.getContextRaw()[n];if(!a)return r;const i=a[e];return void 0===i?r:i}static getContextValueContainer(t,e){return o.getContextValue(t,"@container",e,{"@set":!0})}static getContextValueType(t,e){const n=o.getContextValue(t,"@type",e,null);return"@none"===n?null:n}static getContextValueLanguage(t,e){return o.getContextValue(t,"@language",e,t.getContextRaw()["@language"]||null)}static getContextValueDirection(t,e){return o.getContextValue(t,"@direction",e,t.getContextRaw()["@direction"]||null)}static isContextValueReverse(t,e){return!!o.getContextValue(t,"@reverse",e,null)}static getContextValueIndex(t,e){return o.getContextValue(t,"@index",e,t.getContextRaw()["@index"]||null)}static isPropertyReverse(t,e,n){return"@reverse"===n!==o.isContextValueReverse(t,e)}static isValidIri(t){return null!==t&&r.Util.isValidIri(t)}static isPrefixArray(t,e){if(t.length>e.length)return!1;for(let n=0;n1)throw new r.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${e}'`,r.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);return[]}if("@list"in n){if(Object.keys(n).length>1)throw new r.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${e}'`,r.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);const t=n["@list"];return Array.isArray(t)?0===t.length?[this.rdfNil]:this.parsingContext.idStack[a+1]||[]:await this.valueToTerm(await this.parsingContext.getContext(i),e,t,a-1,i.slice(0,-1))}if("@reverse"in n&&"boolean"===typeof n["@reverse"])return[];if("@graph"in o.getContextValueContainer(await this.parsingContext.getContext(i),e)){const t=this.parsingContext.graphContainerTermStack[a+1];return t?Object.values(t):[this.dataFactory.blankNode()]}return"@id"in n?(Object.keys(n).length>1&&(t=await this.parsingContext.getContext(i,0)),"@context"in n&&(t=await this.parsingContext.parseContext(n["@context"],t.getContextRaw())),"@vocab"===n["@type"]?this.nullableTermToArray(this.createVocabOrBaseTerm(t,n["@id"])):this.nullableTermToArray(this.resourceToTerm(t,n["@id"]))):this.parsingContext.emittedStack[a+1]||n&&"object"===typeof n&&0===Object.keys(n).length?this.parsingContext.idStack[a+1]||(this.parsingContext.idStack[a+1]=[this.dataFactory.blankNode()]):[];case"string":return this.nullableTermToArray(this.stringValueToTerm(a,await this.getContextSelfOrPropertyScoped(t,e),e,n,null));case"boolean":return this.nullableTermToArray(this.stringValueToTerm(a,await this.getContextSelfOrPropertyScoped(t,e),e,Boolean(n).toString(),this.dataFactory.namedNode(o.XSD_BOOLEAN)));case"number":return this.nullableTermToArray(this.stringValueToTerm(a,await this.getContextSelfOrPropertyScoped(t,e),e,n,this.dataFactory.namedNode(n%1===0&&n<1e21?o.XSD_INTEGER:o.XSD_DOUBLE)));default:return this.parsingContext.emitError(new Error(`Could not determine the RDF type of a ${s}`)),[]}}async getContextSelfOrPropertyScoped(t,e){const n=t.getContextRaw()[e];return n&&"object"===typeof n&&"@context"in n&&(t=await this.parsingContext.parseContext(n,t.getContextRaw(),!0)),t}nullableTermToArray(t){return t?[t]:[]}predicateToTerm(t,e){const n=t.expandTerm(e,!0,this.parsingContext.getExpandOptions());return n?"_"===n[0]&&":"===n[1]?this.parsingContext.produceGeneralizedRdf?this.dataFactory.blankNode(n.substr(2)):null:o.isValidIri(n)?this.dataFactory.namedNode(n):n&&this.parsingContext.strictValues?(this.parsingContext.emitError(new r.ErrorCoded(`Invalid predicate IRI: ${n}`,r.ERROR_CODES.INVALID_IRI_MAPPING)),null):null:null}resourceToTerm(t,e){if(e.startsWith("_:"))return this.dataFactory.blankNode(e.substr(2));const n=t.expandTerm(e,!1,this.parsingContext.getExpandOptions());if(!o.isValidIri(n)){if(!n||!this.parsingContext.strictValues)return null;this.parsingContext.emitError(new Error(`Invalid resource IRI: ${n}`))}return this.dataFactory.namedNode(n)}createVocabOrBaseTerm(t,e){if(e.startsWith("_:"))return this.dataFactory.blankNode(e.substr(2));const n=this.parsingContext.getExpandOptions();let r=t.expandTerm(e,!0,n);if(r===e&&(r=t.expandTerm(e,!1,n)),!o.isValidIri(r)){if(!r||!this.parsingContext.strictValues||r.startsWith("@"))return null;this.parsingContext.emitError(new Error(`Invalid term IRI: ${r}`))}return this.dataFactory.namedNode(r)}intToString(t,e){if("number"===typeof t){if(Number.isFinite(t)){const n=t%1===0;return!n||e&&e.value===o.XSD_DOUBLE?t.toExponential(15).replace(/(\d)0*e\+?/,"$1E"):Number(t).toString()}return t>0?"INF":"-INF"}return t}stringValueToTerm(t,e,n,r,a){const i=o.getContextValueType(e,n);if(i)if("@id"===i){if(!a)return this.resourceToTerm(e,this.intToString(r,a))}else if("@vocab"===i){if(!a)return this.createVocabOrBaseTerm(e,this.intToString(r,a))}else a=this.dataFactory.namedNode(i);if(!a){const i=o.getContextValueLanguage(e,n),s=o.getContextValueDirection(e,n);return s&&this.parsingContext.rdfDirection?this.createLanguageDirectionLiteral(t,this.intToString(r,a),i,s):this.dataFactory.literal(this.intToString(r,a),i)}return this.dataFactory.literal(this.intToString(r,a),a)}createLanguageDirectionLiteral(t,e,n,r){if("i18n-datatype"===this.parsingContext.rdfDirection)return n||(n=""),this.dataFactory.literal(e,this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${n}_${r}`));{const a=this.dataFactory.blankNode(),i=this.getDefaultGraph();return this.parsingContext.emitQuad(t,this.dataFactory.quad(a,this.dataFactory.namedNode(o.RDF+"value"),this.dataFactory.literal(e),i)),n&&this.parsingContext.emitQuad(t,this.dataFactory.quad(a,this.dataFactory.namedNode(o.RDF+"language"),this.dataFactory.literal(n),i)),this.parsingContext.emitQuad(t,this.dataFactory.quad(a,this.dataFactory.namedNode(o.RDF+"direction"),this.dataFactory.literal(r),i)),a}}valueToJsonString(t){return s(t)}async unaliasKeyword(t,e,n,a,i){if(Number.isInteger(t))return t;if(!a){const t=this.parsingContext.unaliasedKeywordCacheStack[n];if(t)return t}if(!r.Util.isPotentialKeyword(t)){i=i||await this.parsingContext.getContext(e);let n=i.getContextRaw()[t];n&&"object"===typeof n&&(n=n["@id"]),r.Util.isValidKeyword(n)&&(t=n)}return a?t:this.parsingContext.unaliasedKeywordCacheStack[n]=t}async unaliasKeywordParent(t,e){return await this.unaliasKeyword(e>0&&t[e-1],t,e-1)}async unaliasKeywords(t,e,n,r){const a={};for(const i in t)a[await this.unaliasKeyword(i,e,n+1,!0,r)]=t[i];return a}isLiteral(t){for(let e=t;e>=0;e--)if(this.parsingContext.literalStack[e]||this.parsingContext.jsonLiteralStack[e])return!0;return!1}async getDepthOffsetGraph(t,e){for(let n=t-1;n>0;n--)if("@graph"===await this.unaliasKeyword(e[n],e,n)){const r=(await i.EntryHandlerContainer.getContainerHandler(this.parsingContext,e,n)).containers;return i.EntryHandlerContainer.isComplexGraphContainer(r)?-1:t-n-1}return-1}validateReverseSubject(t){if("Literal"===t.termType)throw new r.ErrorCoded(`Found illegal literal in subject position: ${t.value}`,r.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE)}getDefaultGraph(){return this.parsingContext.defaultGraph||this.dataFactory.defaultGraph()}async getGraphContainerValue(t,e){let n=this.getDefaultGraph();const{containers:r,depth:a}=await i.EntryHandlerContainer.getContainerHandler(this.parsingContext,t,e);if("@graph"in r){const e=i.EntryHandlerContainer.getContainerGraphIndex(r,a,t),s=this.parsingContext.graphContainerTermStack[a];if(n=s?s[e]:null,!n){let i=null;if("@id"in r){const e=await this.getContainerKey(t[a],t,a);null!==e&&(i=await this.resourceToTerm(await this.parsingContext.getContext(t),e))}i||(i=this.dataFactory.blankNode()),this.parsingContext.graphContainerTermStack[a]||(this.parsingContext.graphContainerTermStack[a]={}),n=this.parsingContext.graphContainerTermStack[a][e]=i}}return n}async getPropertiesDepth(t,e){let n=e;for(let r=e-1;r>0;r--)if("number"!==typeof t[r]){const e=await this.unaliasKeyword(t[r],t,r);if("@reverse"===e)return r;if("@nest"!==e)return n;n=r}return n}async getContainerKey(t,e,n){const r=await this.unaliasKeyword(t,e,n);return"@none"===r?null:r}}e.Util=o,o.XSD="http://www.w3.org/2001/XMLSchema#",o.XSD_BOOLEAN=o.XSD+"boolean",o.XSD_INTEGER=o.XSD+"integer",o.XSD_DOUBLE=o.XSD+"double",o.RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"},15269:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContainerHandlerIdentifier=void 0;class n{canCombineWithGraph(){return!0}async handle(t,e,n,r,a,i){let s;if(e.emittedStack[i+1]&&e.idStack[i+1])s=e.idStack[i+1][0];else{const t=await n.getContainerKey(r[i],r,i),a=null!==t?await n.resourceToTerm(await e.getContext(r),r[i]):n.dataFactory.blankNode();if(!a)return void(e.emittedStack[i]=!1);s=a,e.idStack[i+1]=[s]}let o=e.idStack[i];o||(o=e.idStack[i]=[]),o.some((t=>t.equals(s)))||o.push(s),await e.handlePendingContainerFlushBuffers()||(e.emittedStack[i]=!1)}}e.ContainerHandlerIdentifier=n},3039:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContainerHandlerIndex=void 0;const r=n(11288),a=n(37930),i=n(44360);class s{canCombineWithGraph(){return!0}async handle(t,e,n,s,o,l){if(!Array.isArray(o)){const d="@graph"in t,c=await e.getContext(s),u=s[l-1],h=i.Util.getContextValueIndex(c,u);if(h){if(r.Util.isPotentialKeyword(h))throw new r.ErrorCoded(`Keywords can not be used as @index value, got: ${h}`,r.ERROR_CODES.INVALID_TERM_DEFINITION);if("string"!==typeof h)throw new r.ErrorCoded(`@index values must be strings, got: ${h}`,r.ERROR_CODES.INVALID_TERM_DEFINITION);if("object"!==typeof o){if("@id"!==i.Util.getContextValueType(c,u))throw new r.ErrorCoded(`Property-based index containers require nodes as values or strings with @type: @id, but got: ${o}`,r.ERROR_CODES.INVALID_VALUE_OBJECT);const t=n.resourceToTerm(c,o);t&&(e.idStack[l+1]=[t])}const t=n.createVocabOrBaseTerm(c,h);if(t){const r=await n.valueToTerm(c,h,await n.getContainerKey(s[l],s,l),l,s);if(d){const a=await n.getGraphContainerValue(s,l+1);for(const i of r)e.emitQuad(l,n.dataFactory.quad(a,t,i,n.getDefaultGraph()))}else for(const i of r)await a.EntryHandlerPredicate.handlePredicateObject(e,n,s,l+1,t,i,!1)}}const p=d?2:1;await e.newOnValueJob(s.slice(0,s.length-p),o,l-p,!0),await e.handlePendingContainerFlushBuffers()}e.emittedStack[l]=!1}}e.ContainerHandlerIndex=s},68681:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContainerHandlerLanguage=void 0;const r=n(11288);class a{canCombineWithGraph(){return!1}async handle(t,e,n,a,i,s){const o=await n.getContainerKey(a[s],a,s);if(Array.isArray(i))i=i.map((t=>({"@value":t,"@language":o})));else{if("string"!==typeof i)throw new r.ErrorCoded(`Got invalid language map value, got '${JSON.stringify(i)}', but expected string`,r.ERROR_CODES.INVALID_LANGUAGE_MAP_VALUE);i={"@value":i,"@language":o}}await e.newOnValueJob(a.slice(0,a.length-1),i,s-1,!0),e.emittedStack[s]=!1}}e.ContainerHandlerLanguage=a},49408:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContainerHandlerType=void 0;const r=n(37930),a=n(44360);class i{canCombineWithGraph(){return!1}async handle(t,e,n,i,s,o){if(!Array.isArray(s)){if("string"===typeof s){const t=await e.getContext(i),r=a.Util.getContextValueType(t,i[o-1]),l="@vocab"===r?await n.createVocabOrBaseTerm(t,s):await n.resourceToTerm(t,s);if(l){const t={"@id":"NamedNode"===l.termType?l.value:s};await e.newOnValueJob(i.slice(0,i.length-1),t,o-1,!0),e.idStack[o+1]=[l]}}else{const t=!!e.idStack[o+1];t||delete e.idStack[o],await e.newOnValueJob(i.slice(0,i.length-1),s,o-1,!0),t||(e.idStack[o+1]=e.idStack[o])}const t=await n.getContainerKey(i[o],i,o),l=null!==t?n.createVocabOrBaseTerm(await e.getContext(i),t):null;l&&await r.EntryHandlerPredicate.handlePredicateObject(e,n,i,o+1,n.rdfType,l,!1),await e.handlePendingContainerFlushBuffers()}e.emittedStack[o]=!1}}e.ContainerHandlerType=i},27765:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerArrayValue=void 0;const r=n(44360);class a{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(t,e,n,r,a){return this.test(t,e,null,n,r)}async test(t,e,n,r,a){return"number"===typeof r[a]}async handle(t,e,n,a,i,s){let o=await e.unaliasKeywordParent(a,s);if("@list"===o){let n=null,r=0;for(let t=s-2;t>0;t--){const e=a[t];if("string"===typeof e||"number"===typeof e){r=t,n=e;break}}if(null!==n){const o=await e.valueToTerm(await t.getContext(a),n,i,s,a);for(const n of o)await this.handleListElement(t,e,n,i,s,a.slice(0,r),r);0===o.length&&await this.handleListElement(t,e,null,i,s,a.slice(0,r),r)}}else if("@set"===o)await t.newOnValueJob(a.slice(0,-2),i,s-2,!1);else if(void 0!==o&&"@type"!==o){for(let t=s-1;t>0;t--)if("number"!==typeof a[t]){o=await e.unaliasKeyword(a[t],a,t);break}const n=await t.getContext(a.slice(0,-1));if("@list"in r.Util.getContextValueContainer(n,o)){t.emittedStack[s+1]=!0;const n=await e.valueToTerm(await t.getContext(a),o,i,s,a);for(const r of n)await this.handleListElement(t,e,r,i,s,a.slice(0,-1),s-1);0===n.length&&await this.handleListElement(t,e,null,i,s,a.slice(0,-1),s-1)}else t.shiftStack(s,1),await t.newOnValueJob(a.slice(0,-1),i,s-1,!1),t.contextTree.removeContext(a.slice(0,-1))}}async handleListElement(t,e,n,r,a,i,s){let o=t.listPointerStack[a];if(null!==r&&null!==(await e.unaliasKeywords(r,i,a))["@value"]){if(o&&o.value){const n=e.dataFactory.blankNode();t.emitQuad(a,e.dataFactory.quad(o.value,e.rdfRest,n,e.getDefaultGraph())),o.value=n}else{const t=e.dataFactory.blankNode();o={value:t,listRootDepth:s,listId:t}}n&&t.emitQuad(a,e.dataFactory.quad(o.value,e.rdfFirst,n,e.getDefaultGraph()))}else o||(o={listRootDepth:s,listId:e.rdfNil});t.listPointerStack[a]=o}}e.EntryHandlerArrayValue=a},52780:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerContainer=void 0;const r=n(15269),a=n(3039),i=n(68681),s=n(49408),o=n(44360);class l{static isSimpleGraphContainer(t){return"@graph"in t&&("@set"in t&&2===Object.keys(t).length||1===Object.keys(t).length)}static isComplexGraphContainer(t){return"@graph"in t&&("@set"in t&&Object.keys(t).length>2||!("@set"in t)&&Object.keys(t).length>1)}static getContainerGraphIndex(t,e,n){let r=l.isSimpleGraphContainer(t),a="";for(let i=e;i=0;s--)if("number"!==typeof e[s]){const t=o.Util.getContextValue(i,"@container",e[s],!1);if(t&&l.isSimpleGraphContainer(t))return{containers:t,depth:s+1,fallback:!1};const n=o.Util.getContextValue(i,"@container",e[s-1],!1);if(n){const t="@graph"in n;for(const e in l.CONTAINER_HANDLERS)if(n[e])return t?l.CONTAINER_HANDLERS[e].canCombineWithGraph()?{containers:n,depth:s,fallback:!1}:r:a?r:{containers:n,depth:s,fallback:!1};return r}if(a)return r;a=!0}return r}static async isBufferableContainerHandler(t,e,n){const r=await l.getContainerHandler(t,e,n);return!r.fallback&&!("@graph"in r.containers)}isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(t,e,n,r,a){return!!await this.test(t,e,null,n,r)}async test(t,e,n,r,a){const i=o.Util.getContextValueContainer(await t.getContext(r,2),r[a-1]);for(const s in l.CONTAINER_HANDLERS)if(i[s])return{containers:i,handler:l.CONTAINER_HANDLERS[s]};return null}async handle(t,e,n,r,a,i,s){return s.handler.handle(s.containers,t,e,r,a,i)}}e.EntryHandlerContainer=l,l.CONTAINER_HANDLERS={"@id":new r.ContainerHandlerIdentifier,"@index":new a.ContainerHandlerIndex,"@language":new i.ContainerHandlerLanguage,"@type":new s.ContainerHandlerType}},52234:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerInvalidFallback=void 0;class n{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(t,e,n,r,a){return!1}async test(t,e,n,r,a){return!0}async handle(t,e,n,r,a,i){t.emittedStack[i]=!1}}e.EntryHandlerInvalidFallback=n},37930:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerPredicate=void 0;const r=n(11288),a=n(44360);class i{static async handlePredicateObject(t,e,n,r,a,i,s){const o=await e.getPropertiesDepth(n,r),l=await e.getDepthOffsetGraph(r,n),d=r-l,c=t.idStack[o];if(c)for(const u of c){const c=l>=0;if(c){const n=t.idStack[d-1];if(n)for(const o of n)s?(e.validateReverseSubject(i),t.emitQuad(r,e.dataFactory.quad(i,a,u,o))):t.emitQuad(r,e.dataFactory.quad(u,a,i,o));else s?(e.validateReverseSubject(i),t.getUnidentifiedGraphBufferSafe(d-1).push({subject:i,predicate:a,object:u})):t.getUnidentifiedGraphBufferSafe(d-1).push({subject:u,predicate:a,object:i})}else{const l=await e.getGraphContainerValue(n,o);s?(e.validateReverseSubject(i),t.emitQuad(r,e.dataFactory.quad(i,a,u,l))):t.emitQuad(r,e.dataFactory.quad(u,a,i,l))}}else s&&e.validateReverseSubject(i),t.getUnidentifiedValueBufferSafe(o).push({predicate:a,object:i,reverse:s})}isPropertyHandler(){return!0}isStackProcessor(){return!0}async validate(t,e,n,r,i){const s=n[r];if(s){const i=await t.getContext(n);if(!t.jsonLiteralStack[r]&&await e.predicateToTerm(i,n[r]))return"@json"===a.Util.getContextValueType(i,s)&&(t.jsonLiteralStack[r+1]=!0),!0}return!1}async test(t,e,n,r,a){return r[a]}async handle(t,e,n,s,o,l,d){const c=s[l],u=await t.getContext(s),h=await e.predicateToTerm(u,n);if(h){const d=await e.valueToTerm(u,n,o,l,s);if(d.length)for(let p of d){const d=a.Util.isPropertyReverse(u,c,await e.unaliasKeywordParent(s,l));if(o){const i="@list"in a.Util.getContextValueContainer(u,n);if(i||o["@list"]){if((i&&!Array.isArray(o)&&!o["@list"]||o["@list"]&&!Array.isArray(o["@list"]))&&p!==e.rdfNil){const n=e.dataFactory.blankNode();t.emitQuad(l,e.dataFactory.quad(n,e.rdfRest,e.rdfNil,e.getDefaultGraph())),t.emitQuad(l,e.dataFactory.quad(n,e.rdfFirst,p,e.getDefaultGraph())),p=n}if(d&&!t.allowSubjectList)throw new r.ErrorCoded(`Found illegal list value in subject position at ${n}`,r.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE)}}await i.handlePredicateObject(t,e,s,l,h,p,d)}}}}e.EntryHandlerPredicate=i},66854:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerKeyword=void 0;class n{constructor(t){this.keyword=t}isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(t,e,n,r,a){return!1}async test(t,e,n,r,a){return n===this.keyword}}e.EntryHandlerKeyword=n},70983:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerKeywordContext=void 0;const r=n(11288),a=n(66854);class i extends a.EntryHandlerKeyword{constructor(){super("@context")}isStackProcessor(){return!1}async handle(t,e,n,a,i,s){t.streamingProfile&&(t.processingStack[s]||t.processingType[s]||void 0!==t.idStack[s])&&t.emitError(new r.ErrorCoded("Found an out-of-order context, while streaming is enabled.(disable `streamingProfile`)",r.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));const o=t.getContext(a),l=t.parseContext(i,(await o).getContextRaw());t.contextTree.setContext(a.slice(0,-1),l),t.emitContext(i),await t.validateContext(await l)}}e.EntryHandlerKeywordContext=i},42397:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerKeywordGraph=void 0;const r=n(66854);class a extends r.EntryHandlerKeyword{constructor(){super("@graph")}async handle(t,e,n,r,a,i){t.graphStack[i+1]=!0}}e.EntryHandlerKeywordGraph=a},96700:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerKeywordId=void 0;const r=n(11288),a=n(66854);class i extends a.EntryHandlerKeyword{constructor(){super("@id")}isStackProcessor(){return!1}async handle(t,e,n,a,i,s){"string"!==typeof i&&t.emitError(new r.ErrorCoded(`Found illegal @id '${i}'`,r.ERROR_CODES.INVALID_ID_VALUE));const o=await e.getPropertiesDepth(a,s);void 0!==t.idStack[o]&&(t.idStack[o][0].listHead?t.emitError(new r.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${a[s-1]}'`,r.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT)):t.emitError(new r.ErrorCoded(`Found duplicate @ids '${t.idStack[o][0].value}' and '${i}'`,r.ERROR_CODES.COLLIDING_KEYWORDS))),t.idStack[o]=e.nullableTermToArray(await e.resourceToTerm(await t.getContext(a),i))}}e.EntryHandlerKeywordId=i},26664:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerKeywordIncluded=void 0;const r=n(11288),a=n(66854);class i extends a.EntryHandlerKeyword{constructor(){super("@included")}async handle(t,e,n,a,i,s){"object"!==typeof i&&t.emitError(new r.ErrorCoded(`Found illegal @included '${i}'`,r.ERROR_CODES.INVALID_INCLUDED_VALUE));const o=await e.unaliasKeywords(i,a,s,await t.getContext(a));"@value"in o&&t.emitError(new r.ErrorCoded(`Found an illegal @included @value node '${JSON.stringify(i)}'`,r.ERROR_CODES.INVALID_INCLUDED_VALUE)),"@list"in o&&t.emitError(new r.ErrorCoded(`Found an illegal @included @list node '${JSON.stringify(i)}'`,r.ERROR_CODES.INVALID_INCLUDED_VALUE)),t.emittedStack[s]=!1}}e.EntryHandlerKeywordIncluded=i},84149:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerKeywordNest=void 0;const r=n(11288),a=n(66854);class i extends a.EntryHandlerKeyword{constructor(){super("@nest")}async handle(t,e,n,a,i,s){"object"!==typeof i&&t.emitError(new r.ErrorCoded(`Found invalid @nest entry for '${n}': '${i}'`,r.ERROR_CODES.INVALID_NEST_VALUE)),"@value"in await e.unaliasKeywords(i,a,s,await t.getContext(a))&&t.emitError(new r.ErrorCoded(`Found an invalid @value node for '${n}'`,r.ERROR_CODES.INVALID_NEST_VALUE)),t.emittedStack[s]=!1}}e.EntryHandlerKeywordNest=i},46100:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerKeywordType=void 0;const r=n(11288),a=n(44360),i=n(37930),s=n(66854);class o extends s.EntryHandlerKeyword{constructor(){super("@type")}isStackProcessor(){return!1}async handle(t,e,n,s,o,l){const d=s[l],c=await t.getContext(s),u=e.rdfType,h=a.Util.isPropertyReverse(c,d,await e.unaliasKeywordParent(s,l)),p=Array.isArray(o)?o:[o];for(const a of p){"string"!==typeof a&&t.emitError(new r.ErrorCoded(`Found illegal @type '${a}'`,r.ERROR_CODES.INVALID_TYPE_VALUE));const n=e.createVocabOrBaseTerm(c,a);n&&await i.EntryHandlerPredicate.handlePredicateObject(t,e,s,l,u,n,h)}let f=Promise.resolve(c),g=!1;for(const r of p.sort()){const e=a.Util.getContextValue(c,"@context",r,null);e&&(g=!0,f=f.then((n=>t.parseContext(e,n.getContextRaw()))))}!t.streamingProfile||!g&&t.streamingProfileAllowOutOfOrderPlainType||!t.processingStack[l]&&!t.idStack[l]||t.emitError(new r.ErrorCoded("Found an out-of-order type-scoped context, while streaming is enabled.(disable `streamingProfile`)",r.ERROR_CODES.INVALID_STREAMING_KEY_ORDER)),g&&(f=f.then((t=>("@propagate"in t.getContextRaw()||(t.getContextRaw()["@propagate"]=!1),!1===t.getContextRaw()["@propagate"]&&(t.getContextRaw()["@__propagateFallback"]=c.getContextRaw()),t))),t.contextTree.setContext(s.slice(0,s.length-1),f)),t.processingType[l]=!0}}e.EntryHandlerKeywordType=o},65457:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerKeywordUnknownFallback=void 0;const r=n(11288);class a{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(t,e,n,a,i){const s=await e.unaliasKeyword(n[a],n,a);return!!r.Util.isPotentialKeyword(s)&&!(!i&&"@list"===s)}async test(t,e,n,a,i){return r.Util.isPotentialKeyword(n)}async handle(t,e,n,i,s,o){const l=a.VALID_KEYWORDS_TYPES[n];void 0!==l?l&&typeof s!==l.type&&t.emitError(new r.ErrorCoded(`Invalid value type for '${n}' with value '${s}'`,l.errorCode)):t.strictValues&&t.emitError(new Error(`Unknown keyword '${n}' with value '${s}'`)),t.emittedStack[o]=!1}}e.EntryHandlerKeywordUnknownFallback=a,a.VALID_KEYWORDS_TYPES={"@index":{type:"string",errorCode:r.ERROR_CODES.INVALID_INDEX_VALUE},"@list":null,"@reverse":{type:"object",errorCode:r.ERROR_CODES.INVALID_REVERSE_VALUE},"@set":null,"@value":null}},18896:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EntryHandlerKeywordValue=void 0;const r=n(66854);class a extends r.EntryHandlerKeyword{constructor(){super("@value")}async validate(t,e,n,r,a){const i=n[r];return i&&!t.literalStack[r]&&await this.test(t,e,i,n,r)&&(t.literalStack[r]=!0),super.validate(t,e,n,r,a)}async test(t,e,n,r,a){return"@value"===await e.unaliasKeyword(r[a],r.slice(0,r.length-1),a-1,!0)}async handle(t,e,n,r,a,i){t.literalStack[i]=!0,delete t.unidentifiedValuesBuffer[i],delete t.unidentifiedGraphsBuffer[i],t.emittedStack[i]=!1}}e.EntryHandlerKeywordValue=a}}]); -//# sourceMappingURL=246.d6c4ddc5.js.map \ No newline at end of file diff --git a/js/246.d6c4ddc5.js.map b/js/246.d6c4ddc5.js.map deleted file mode 100644 index 384a1a1..0000000 --- a/js/246.d6c4ddc5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/246.d6c4ddc5.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/index.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/BlankNode.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/DataFactory.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/DefaultGraph.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/Literal.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/NamedNode.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/Quad.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/Variable.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/fromTerm.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/parser-jsonld/index.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/parser-jsonld/lib/ParserStream.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/sink/index.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/index.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/ContextTree.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/JsonLdParser.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/ParsingContext.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/Util.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIdentifier.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIndex.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerLanguage.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerType.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerArrayValue.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerContainer.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerInvalidFallback.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordContext.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordGraph.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordId.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordIncluded.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordNest.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordType.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordUnknownFallback.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordValue.js"],"sourcesContent":["const DataFactory = require('./lib/DataFactory.js')\n\nmodule.exports = DataFactory\n","class BlankNode {\n constructor (id) {\n this.value = id || ('b' + (++BlankNode.nextId))\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nBlankNode.prototype.termType = 'BlankNode'\n\nBlankNode.nextId = 0\n\nmodule.exports = BlankNode\n","const BlankNode = require('./BlankNode.js')\nconst DefaultGraph = require('./DefaultGraph.js')\nconst fromTermRaw = require('./fromTerm.js')\nconst Literal = require('./Literal.js')\nconst NamedNode = require('./NamedNode.js')\nconst Quad = require('./Quad.js')\nconst Variable = require('./Variable.js')\n\nfunction namedNode (value) {\n return new NamedNode(value)\n}\n\nfunction blankNode (value) {\n return new BlankNode(value)\n}\n\nfunction literal (value, languageOrDatatype) {\n if (typeof languageOrDatatype === 'string') {\n if (languageOrDatatype.indexOf(':') === -1) {\n return new Literal(value, languageOrDatatype)\n }\n\n return new Literal(value, null, DataFactory.namedNode(languageOrDatatype))\n }\n\n return new Literal(value, null, languageOrDatatype)\n}\n\nfunction variable (value) {\n return new Variable(value)\n}\n\nfunction defaultGraph () {\n return DataFactory.defaultGraphInstance\n}\n\nfunction triple (subject, predicate, object) {\n return DataFactory.quad(subject, predicate, object)\n}\n\nfunction quad (subject, predicate, object, graph) {\n return new Quad(subject, predicate, object, graph || DataFactory.defaultGraphInstance)\n}\n\nfunction fromTerm (original) {\n return fromTermRaw.call(DataFactory, original)\n}\n\nfunction fromQuad (original) {\n return fromTermRaw.call(DataFactory, original)\n}\n\nconst DataFactory = {\n namedNode,\n blankNode,\n literal,\n variable,\n defaultGraph,\n triple,\n quad,\n fromTerm,\n fromQuad,\n defaultGraphInstance: new DefaultGraph()\n}\n\nmodule.exports = DataFactory\n","class DefaultGraph {\n equals (other) {\n return !!other && other.termType === this.termType\n }\n}\n\nDefaultGraph.prototype.termType = 'DefaultGraph'\nDefaultGraph.prototype.value = ''\n\nmodule.exports = DefaultGraph\n","const NamedNode = require('./NamedNode.js')\n\nclass Literal {\n constructor (value, language, datatype) {\n this.value = value\n this.datatype = Literal.stringDatatype\n this.language = ''\n\n if (language) {\n this.language = language\n this.datatype = Literal.langStringDatatype\n } else if (datatype) {\n this.datatype = datatype\n }\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value &&\n other.language === this.language && other.datatype.equals(this.datatype)\n }\n}\n\nLiteral.prototype.termType = 'Literal'\n\nLiteral.langStringDatatype = new NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString')\nLiteral.stringDatatype = new NamedNode('http://www.w3.org/2001/XMLSchema#string')\n\nmodule.exports = Literal\n","class NamedNode {\n constructor (iri) {\n this.value = iri\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nNamedNode.prototype.termType = 'NamedNode'\n\nmodule.exports = NamedNode\n","const DefaultGraph = require('./DefaultGraph.js')\n\nclass Quad {\n constructor (subject, predicate, object, graph) {\n this.subject = subject\n this.predicate = predicate\n this.object = object\n\n if (graph) {\n this.graph = graph\n } else {\n this.graph = new DefaultGraph()\n }\n }\n\n equals (other) {\n // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n return !!other && (other.termType === 'Quad' || !other.termType) &&\n other.subject.equals(this.subject) && other.predicate.equals(this.predicate) &&\n other.object.equals(this.object) && other.graph.equals(this.graph)\n }\n}\n\nQuad.prototype.termType = 'Quad'\nQuad.prototype.value = ''\n\nmodule.exports = Quad\n","class Variable {\n constructor (name) {\n this.value = name\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nVariable.prototype.termType = 'Variable'\n\nmodule.exports = Variable\n","function fromTerm (original) {\n if (!original) {\n return null\n }\n\n if (original.termType === 'BlankNode') {\n return this.blankNode(original.value)\n }\n\n if (original.termType === 'DefaultGraph') {\n return this.defaultGraph()\n }\n\n if (original.termType === 'Literal') {\n return this.literal(original.value, original.language || this.namedNode(original.datatype.value))\n }\n\n if (original.termType === 'NamedNode') {\n return this.namedNode(original.value)\n }\n\n if (original.termType === 'Quad') {\n const subject = this.fromTerm(original.subject)\n const predicate = this.fromTerm(original.predicate)\n const object = this.fromTerm(original.object)\n const graph = this.fromTerm(original.graph)\n\n return this.quad(subject, predicate, object, graph)\n }\n\n if (original.termType === 'Variable') {\n return this.variable(original.value)\n }\n\n throw new Error(`unknown termType ${original.termType}`)\n}\n\nmodule.exports = fromTerm\n","const Sink = require('@rdfjs/sink')\nconst ParserStream = require('./lib/ParserStream')\n\nclass Parser extends Sink {\n constructor (options) {\n super(ParserStream, options)\n }\n}\n\nmodule.exports = Parser\n","const rdf = require('@rdfjs/data-model')\nconst { JsonLdParser } = require('jsonld-streaming-parser')\nconst { Transform } = require('readable-stream')\n\nconst relativeIriProtocol = 'null:'\n\nfunction termCleanup (factory) {\n return term => {\n if (term.termType !== 'NamedNode') {\n return null\n }\n\n if (!term.value.startsWith(relativeIriProtocol)) {\n return null\n }\n\n // remove dummy protocol workaround for relative IRIs\n return factory.namedNode(term.value.slice(relativeIriProtocol.length))\n }\n}\n\nfunction quadCleanup (factory) {\n const cleanup = termCleanup(factory)\n\n return quad => {\n const subject = cleanup(quad.subject)\n const predicate = cleanup(quad.predicate)\n const object = cleanup(quad.object)\n const graph = cleanup(quad.graph)\n\n if (subject || predicate || object || graph) {\n return factory.quad(\n subject || quad.subject,\n predicate || quad.predicate,\n object || quad.object,\n graph || quad.graph\n )\n }\n\n return quad\n }\n}\n\nclass ParserStream {\n constructor (input, { baseIRI = relativeIriProtocol, context = null, factory = rdf } = {}) {\n const parser = new JsonLdParser({\n baseIRI,\n context,\n dataFactory: factory,\n streamingProfile: false\n })\n\n input.pipe(parser)\n\n const cleanup = quadCleanup(factory)\n\n const transform = new Transform({\n objectMode: true,\n transform: (quad, encoding, callback) => {\n callback(null, cleanup(quad))\n }\n })\n\n parser.on('context', context => {\n Object.entries(context).forEach(([prefix, iri]) => {\n transform.emit('prefix', prefix, factory.namedNode(iri))\n })\n })\n parser.on('error', err => transform.destroy(err))\n parser.pipe(transform)\n\n return transform\n }\n}\n\nmodule.exports = ParserStream\n","class Sink {\n constructor (Impl, options) {\n this.Impl = Impl\n this.options = options\n }\n\n import (input, options) {\n const output = new this.Impl(input, Object.assign({}, this.options, options))\n\n input.on('end', () => {\n if (!output.readable) {\n output.emit('end')\n }\n })\n\n input.on('error', (err) => {\n output.emit('error', err)\n })\n\n return output\n }\n}\n\nmodule.exports = Sink\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/JsonLdParser\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextTree = void 0;\n/**\n * A tree structure that holds all contexts,\n * based on their position in the JSON object.\n *\n * Positions are identified by a path of keys.\n */\nclass ContextTree {\n constructor() {\n this.subTrees = {};\n }\n getContext(keys) {\n if (keys.length > 0) {\n const [head, ...tail] = keys;\n const subTree = this.subTrees[head];\n if (subTree) {\n const subContext = subTree.getContext(tail);\n if (subContext) {\n return subContext.then(({ context, depth }) => ({ context, depth: depth + 1 }));\n }\n }\n }\n return this.context ? this.context.then((context) => ({ context, depth: 0 })) : null;\n }\n setContext(keys, context) {\n if (keys.length === 0) {\n this.context = context;\n }\n else {\n const [head, ...tail] = keys;\n let subTree = this.subTrees[head];\n if (!subTree) {\n subTree = this.subTrees[head] = new ContextTree();\n }\n subTree.setContext(tail, context);\n }\n }\n removeContext(path) {\n this.setContext(path, null);\n }\n}\nexports.ContextTree = ContextTree;\n//# sourceMappingURL=ContextTree.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonLdParser = void 0;\n// tslint:disable-next-line:no-var-requires\nconst Parser = require('jsonparse');\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst stream_1 = require(\"stream\");\nconst EntryHandlerArrayValue_1 = require(\"./entryhandler/EntryHandlerArrayValue\");\nconst EntryHandlerContainer_1 = require(\"./entryhandler/EntryHandlerContainer\");\nconst EntryHandlerInvalidFallback_1 = require(\"./entryhandler/EntryHandlerInvalidFallback\");\nconst EntryHandlerPredicate_1 = require(\"./entryhandler/EntryHandlerPredicate\");\nconst EntryHandlerKeywordContext_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordContext\");\nconst EntryHandlerKeywordGraph_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordGraph\");\nconst EntryHandlerKeywordId_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordId\");\nconst EntryHandlerKeywordIncluded_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordIncluded\");\nconst EntryHandlerKeywordNest_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordNest\");\nconst EntryHandlerKeywordType_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordType\");\nconst EntryHandlerKeywordUnknownFallback_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordUnknownFallback\");\nconst EntryHandlerKeywordValue_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordValue\");\nconst ParsingContext_1 = require(\"./ParsingContext\");\nconst Util_1 = require(\"./Util\");\nconst http_link_header_1 = require(\"http-link-header\");\n/**\n * A stream transformer that parses JSON-LD (text) streams to an {@link RDF.Stream}.\n */\nclass JsonLdParser extends stream_1.Transform {\n constructor(options) {\n super({ readableObjectMode: true });\n options = options || {};\n this.options = options;\n this.parsingContext = new ParsingContext_1.ParsingContext(Object.assign({ parser: this }, options));\n this.util = new Util_1.Util({ dataFactory: options.dataFactory, parsingContext: this.parsingContext });\n this.jsonParser = new Parser();\n this.contextJobs = [];\n this.typeJobs = [];\n this.contextAwaitingJobs = [];\n this.lastDepth = 0;\n this.lastKeys = [];\n this.lastOnValueJob = Promise.resolve();\n this.attachJsonParserListeners();\n this.on('end', () => {\n if (typeof this.jsonParser.mode !== 'undefined') {\n this.emit('error', new Error('Unclosed document'));\n }\n });\n }\n /**\n * Construct a JsonLdParser from the given HTTP response.\n *\n * This will throw an error if no valid JSON response is received\n * (application/ld+json, application/json, or something+json).\n *\n * For raw JSON responses, exactly one link header pointing to a JSON-LD context is required.\n *\n * This method is not responsible for handling redirects.\n *\n * @param baseIRI The URI of the received response.\n * @param mediaType The received content type.\n * @param headers Optional HTTP headers.\n * @param options Optional parser options.\n */\n static fromHttpResponse(baseIRI, mediaType, headers, options) {\n let context;\n // Special cases when receiving something else than the JSON-LD media type\n if (mediaType !== 'application/ld+json') {\n // Only accept JSON or JSON extension types\n if (mediaType !== 'application/json' && !mediaType.endsWith('+json')) {\n throw new jsonld_context_parser_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n // We need exactly one JSON-LD context in the link header\n if (headers && headers.has('Link')) {\n headers.forEach((value, key) => {\n if (key === 'link') {\n const linkHeader = http_link_header_1.parse(value);\n for (const link of linkHeader.get('rel', 'http://www.w3.org/ns/json-ld#context')) {\n if (context) {\n throw new jsonld_context_parser_1.ErrorCoded('Multiple JSON-LD context link headers were found on ' + baseIRI, jsonld_context_parser_1.ERROR_CODES.MULTIPLE_CONTEXT_LINK_HEADERS);\n }\n context = link.uri;\n }\n }\n });\n }\n if (!context && !(options === null || options === void 0 ? void 0 : options.ignoreMissingContextLinkHeader)) {\n throw new jsonld_context_parser_1.ErrorCoded(`Missing context link header for media type ${mediaType} on ${baseIRI}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n }\n // Check if the streaming profile is present\n let streamingProfile;\n if (headers && headers.has('Content-Type')) {\n const contentType = headers.get('Content-Type');\n const match = /; *profile=([^\"]*)/.exec(contentType);\n if (match && match[1] === 'http://www.w3.org/ns/json-ld#streaming') {\n streamingProfile = true;\n }\n }\n return new JsonLdParser(Object.assign({ baseIRI,\n context,\n streamingProfile }, options ? options : {}));\n }\n /**\n * Parses the given text stream into a quad stream.\n * @param {NodeJS.EventEmitter} stream A text stream.\n * @return {RDF.Stream} A quad stream.\n */\n import(stream) {\n const output = new stream_1.PassThrough({ readableObjectMode: true });\n stream.on('error', (error) => parsed.emit('error', error));\n stream.on('data', (data) => output.push(data));\n stream.on('end', () => output.push(null));\n const parsed = output.pipe(new JsonLdParser(this.options));\n return parsed;\n }\n _transform(chunk, encoding, callback) {\n this.jsonParser.write(chunk);\n this.lastOnValueJob\n .then(() => callback(), (error) => callback(error));\n }\n /**\n * Start a new job for parsing the given value.\n *\n * This will let the first valid {@link IEntryHandler} handle the entry.\n *\n * @param {any[]} keys The stack of keys.\n * @param value The value to parse.\n * @param {number} depth The depth to parse at.\n * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n * @return {Promise} A promise resolving when the job is done.\n */\n async newOnValueJob(keys, value, depth, lastDepthCheck) {\n let flushStacks = true;\n // When we go up the stack, emit all unidentified values\n // We need to do this before the new job, because the new job may require determined values from the flushed jobs.\n if (lastDepthCheck && depth < this.lastDepth) {\n // Check if we had any RDF lists that need to be terminated with an rdf:nil\n const listPointer = this.parsingContext.listPointerStack[this.lastDepth];\n if (listPointer) {\n // Terminate the list if the had at least one value\n if (listPointer.value) {\n this.emit('data', this.util.dataFactory.quad(listPointer.value, this.util.rdfRest, this.util.rdfNil, this.util.getDefaultGraph()));\n }\n // Add the list id to the id stack, so it can be used higher up in the stack\n listPointer.listId.listHead = true;\n this.parsingContext.idStack[listPointer.listRootDepth + 1] = [listPointer.listId];\n this.parsingContext.listPointerStack.splice(this.lastDepth, 1);\n }\n // Flush the buffer for lastDepth\n // If the parent key is a special type of container, postpone flushing until that parent is handled.\n if (await EntryHandlerContainer_1.EntryHandlerContainer.isBufferableContainerHandler(this.parsingContext, this.lastKeys, this.lastDepth)) {\n this.parsingContext.pendingContainerFlushBuffers\n .push({ depth: this.lastDepth, keys: this.lastKeys.slice(0, this.lastKeys.length) });\n flushStacks = false;\n }\n else {\n await this.flushBuffer(this.lastDepth, this.lastKeys);\n }\n }\n const key = await this.util.unaliasKeyword(keys[depth], keys, depth);\n const parentKey = await this.util.unaliasKeywordParent(keys, depth);\n this.parsingContext.emittedStack[depth] = true;\n let handleKey = true;\n // Keywords inside @reverse is not allowed apart from @context\n if (jsonld_context_parser_1.Util.isValidKeyword(key) && parentKey === '@reverse' && key !== '@context') {\n this.emit('error', new jsonld_context_parser_1.ErrorCoded(`Found the @id '${value}' inside an @reverse property`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_MAP));\n }\n // Skip further processing if one of the parent nodes are invalid.\n // We use the validationStack to reuse validation results that were produced before with common key stacks.\n let inProperty = false;\n if (this.parsingContext.validationStack.length > 1) {\n inProperty = this.parsingContext.validationStack[this.parsingContext.validationStack.length - 1].property;\n }\n for (let i = Math.max(1, this.parsingContext.validationStack.length - 1); i < keys.length - 1; i++) {\n const validationResult = this.parsingContext.validationStack[i]\n || (this.parsingContext.validationStack[i] = await this.validateKey(keys.slice(0, i + 1), i, inProperty));\n if (!validationResult.valid) {\n this.parsingContext.emittedStack[depth] = false;\n handleKey = false;\n break;\n }\n else if (!inProperty && validationResult.property) {\n inProperty = true;\n }\n }\n // Skip further processing if this node is part of a literal\n if (this.util.isLiteral(depth)) {\n handleKey = false;\n }\n // Get handler\n if (handleKey) {\n for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n const testResult = await entryHandler.test(this.parsingContext, this.util, key, keys, depth);\n if (testResult) {\n // Pass processing over to the handler\n await entryHandler.handle(this.parsingContext, this.util, key, keys, value, depth, testResult);\n // Flag that this depth is processed\n if (entryHandler.isStackProcessor()) {\n this.parsingContext.processingStack[depth] = true;\n }\n break;\n }\n }\n }\n // Validate value indexes on the root.\n if (depth === 0 && Array.isArray(value)) {\n await this.util.validateValueIndexes(value);\n }\n // When we go up the stack, flush the old stack\n if (flushStacks && depth < this.lastDepth) {\n // Reset our stacks\n this.flushStacks(this.lastDepth);\n }\n this.lastDepth = depth;\n this.lastKeys = keys;\n // Clear the keyword cache at this depth, and everything underneath.\n this.parsingContext.unaliasedKeywordCacheStack.splice(depth - 1);\n }\n /**\n * Flush the processing stacks at the given depth.\n * @param {number} depth A depth.\n */\n flushStacks(depth) {\n this.parsingContext.processingStack.splice(depth, 1);\n this.parsingContext.processingType.splice(depth, 1);\n this.parsingContext.emittedStack.splice(depth, 1);\n this.parsingContext.idStack.splice(depth, 1);\n this.parsingContext.graphStack.splice(depth + 1, 1);\n this.parsingContext.graphContainerTermStack.splice(depth, 1);\n this.parsingContext.jsonLiteralStack.splice(depth, 1);\n this.parsingContext.validationStack.splice(depth - 1, 2);\n this.parsingContext.literalStack.splice(depth, this.parsingContext.literalStack.length - depth);\n // TODO: just like the literal stack, splice all other stack until the end as well?\n }\n /**\n * Flush buffers for the given depth.\n *\n * This should be called after the last entry at a given depth was processed.\n *\n * @param {number} depth A depth.\n * @param {any[]} keys A stack of keys.\n * @return {Promise} A promise resolving if flushing is done.\n */\n async flushBuffer(depth, keys) {\n let subjects = this.parsingContext.idStack[depth];\n if (!subjects) {\n subjects = this.parsingContext.idStack[depth] = [this.util.dataFactory.blankNode()];\n }\n // Flush values at this level\n const valueBuffer = this.parsingContext.unidentifiedValuesBuffer[depth];\n if (valueBuffer) {\n for (const subject of subjects) {\n const depthOffsetGraph = await this.util.getDepthOffsetGraph(depth, keys);\n const graphs = (this.parsingContext.graphStack[depth] || depthOffsetGraph >= 0)\n ? this.parsingContext.idStack[depth - depthOffsetGraph - 1]\n : [await this.util.getGraphContainerValue(keys, depth)];\n if (graphs) {\n for (const graph of graphs) {\n // Flush values to stream if the graph @id is known\n this.parsingContext.emittedStack[depth] = true;\n for (const bufferedValue of valueBuffer) {\n if (bufferedValue.reverse) {\n this.parsingContext.emitQuad(depth, this.util.dataFactory.quad(bufferedValue.object, bufferedValue.predicate, subject, graph));\n }\n else {\n this.parsingContext.emitQuad(depth, this.util.dataFactory.quad(subject, bufferedValue.predicate, bufferedValue.object, graph));\n }\n }\n }\n }\n else {\n // Place the values in the graphs buffer if the graph @id is not yet known\n const subGraphBuffer = this.parsingContext.getUnidentifiedGraphBufferSafe(depth - await this.util.getDepthOffsetGraph(depth, keys) - 1);\n for (const bufferedValue of valueBuffer) {\n if (bufferedValue.reverse) {\n subGraphBuffer.push({\n object: subject,\n predicate: bufferedValue.predicate,\n subject: bufferedValue.object,\n });\n }\n else {\n subGraphBuffer.push({\n object: bufferedValue.object,\n predicate: bufferedValue.predicate,\n subject,\n });\n }\n }\n }\n }\n this.parsingContext.unidentifiedValuesBuffer.splice(depth, 1);\n this.parsingContext.literalStack.splice(depth, 1);\n this.parsingContext.jsonLiteralStack.splice(depth, 1);\n }\n // Flush graphs at this level\n const graphBuffer = this.parsingContext.unidentifiedGraphsBuffer[depth];\n if (graphBuffer) {\n for (const subject of subjects) {\n // A @graph statement at the root without @id relates to the default graph,\n // unless there are top-level properties,\n // others relate to blank nodes.\n const graph = depth === 1 && subject.termType === 'BlankNode'\n && !this.parsingContext.topLevelProperties ? this.util.getDefaultGraph() : subject;\n this.parsingContext.emittedStack[depth] = true;\n for (const bufferedValue of graphBuffer) {\n this.parsingContext.emitQuad(depth, this.util.dataFactory.quad(bufferedValue.subject, bufferedValue.predicate, bufferedValue.object, graph));\n }\n }\n this.parsingContext.unidentifiedGraphsBuffer.splice(depth, 1);\n }\n }\n /**\n * Check if at least one {@link IEntryHandler} validates the entry to true.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth A depth.\n * @param {boolean} inProperty If the current depth is part of a valid property node.\n * @return {Promise<{ valid: boolean, property: boolean }>} A promise resolving to true or false.\n */\n async validateKey(keys, depth, inProperty) {\n for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n if (await entryHandler.validate(this.parsingContext, this.util, keys, depth, inProperty)) {\n return { valid: true, property: inProperty || entryHandler.isPropertyHandler() };\n }\n }\n return { valid: false, property: false };\n }\n /**\n * Attach all required listeners to the JSON parser.\n *\n * This should only be called once.\n */\n attachJsonParserListeners() {\n // Listen to json parser events\n this.jsonParser.onValue = (value) => {\n const depth = this.jsonParser.stack.length;\n const keys = (new Array(depth + 1).fill(0)).map((v, i) => {\n return i === depth ? this.jsonParser.key : this.jsonParser.stack[i].key;\n });\n if (!this.isParsingContextInner(depth)) { // Don't parse inner nodes inside @context\n const valueJobCb = () => this.newOnValueJob(keys, value, depth, true);\n if (!this.parsingContext.streamingProfile\n && !this.parsingContext.contextTree.getContext(keys.slice(0, -1))) {\n // If an out-of-order context is allowed,\n // we have to buffer everything.\n // We store jobs for @context's and @type's separately,\n // because at the end, we have to process them first.\n // We also handle @type because these *could* introduce a type-scoped context.\n if (keys[depth] === '@context') {\n let jobs = this.contextJobs[depth];\n if (!jobs) {\n jobs = this.contextJobs[depth] = [];\n }\n jobs.push(valueJobCb);\n }\n else if (keys[depth] === '@type'\n || typeof keys[depth] === 'number' && keys[depth - 1] === '@type') { // Also capture @type with array values\n // Remove @type from keys, because we want it to apply to parent later on\n this.typeJobs.push({ job: valueJobCb, keys: keys.slice(0, keys.length - 1) });\n }\n else {\n this.contextAwaitingJobs.push({ job: valueJobCb, keys });\n }\n }\n else {\n // Make sure that our value jobs are chained synchronously\n this.lastOnValueJob = this.lastOnValueJob.then(valueJobCb);\n }\n // Execute all buffered jobs on deeper levels\n if (!this.parsingContext.streamingProfile && depth === 0) {\n this.lastOnValueJob = this.lastOnValueJob\n .then(() => this.executeBufferedJobs());\n }\n }\n };\n this.jsonParser.onError = (error) => {\n this.emit('error', error);\n };\n }\n /**\n * Check if the parser is currently parsing an element that is part of an @context entry.\n * @param {number} depth A depth.\n * @return {boolean} A boolean.\n */\n isParsingContextInner(depth) {\n for (let i = depth; i > 0; i--) {\n if (this.jsonParser.stack[i - 1].key === '@context') {\n return true;\n }\n }\n return false;\n }\n /**\n * Execute all buffered jobs.\n * @return {Promise} A promise resolving if all jobs are finished.\n */\n async executeBufferedJobs() {\n // Handle context jobs\n for (const jobs of this.contextJobs) {\n if (jobs) {\n for (const job of jobs) {\n await job();\n }\n }\n }\n // Clear the keyword cache.\n this.parsingContext.unaliasedKeywordCacheStack.splice(0);\n // Handle non-context jobs\n for (const job of this.contextAwaitingJobs) {\n // Check if we have a type (with possible type-scoped context) that should be handled before.\n // We check all possible parent nodes for the current job, from root to leaves.\n if (this.typeJobs.length > 0) {\n // First collect all applicable type jobs\n const applicableTypeJobs = [];\n const applicableTypeJobIds = [];\n for (let i = 0; i < this.typeJobs.length; i++) {\n const typeJob = this.typeJobs[i];\n if (Util_1.Util.isPrefixArray(typeJob.keys, job.keys)) {\n applicableTypeJobs.push(typeJob);\n applicableTypeJobIds.push(i);\n }\n }\n // Next, sort the jobs from short to long key length (to ensure types higher up in the tree to be handled first)\n const sortedTypeJobs = applicableTypeJobs.sort((job1, job2) => job1.keys.length - job2.keys.length);\n // Finally, execute the jobs in order\n for (const typeJob of sortedTypeJobs) {\n await typeJob.job();\n }\n // Remove the executed type jobs\n // Sort first, so we can efficiently splice\n const sortedApplicableTypeJobIds = applicableTypeJobIds.sort().reverse();\n for (const jobId of sortedApplicableTypeJobIds) {\n this.typeJobs.splice(jobId, 1);\n }\n }\n await job.job();\n }\n }\n}\nexports.JsonLdParser = JsonLdParser;\nJsonLdParser.DEFAULT_PROCESSING_MODE = '1.1';\nJsonLdParser.ENTRY_HANDLERS = [\n new EntryHandlerArrayValue_1.EntryHandlerArrayValue(),\n new EntryHandlerKeywordContext_1.EntryHandlerKeywordContext(),\n new EntryHandlerKeywordId_1.EntryHandlerKeywordId(),\n new EntryHandlerKeywordIncluded_1.EntryHandlerKeywordIncluded(),\n new EntryHandlerKeywordGraph_1.EntryHandlerKeywordGraph(),\n new EntryHandlerKeywordNest_1.EntryHandlerKeywordNest(),\n new EntryHandlerKeywordType_1.EntryHandlerKeywordType(),\n new EntryHandlerKeywordValue_1.EntryHandlerKeywordValue(),\n new EntryHandlerContainer_1.EntryHandlerContainer(),\n new EntryHandlerKeywordUnknownFallback_1.EntryHandlerKeywordUnknownFallback(),\n new EntryHandlerPredicate_1.EntryHandlerPredicate(),\n new EntryHandlerInvalidFallback_1.EntryHandlerInvalidFallback(),\n];\n//# sourceMappingURL=JsonLdParser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParsingContext = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst ErrorCoded_1 = require(\"jsonld-context-parser/lib/ErrorCoded\");\nconst ContextTree_1 = require(\"./ContextTree\");\nconst JsonLdParser_1 = require(\"./JsonLdParser\");\n/**\n * Data holder for parsing information.\n */\nclass ParsingContext {\n constructor(options) {\n // Initialize settings\n this.contextParser = new jsonld_context_parser_1.ContextParser({ documentLoader: options.documentLoader, skipValidation: options.skipContextValidation });\n this.streamingProfile = !!options.streamingProfile;\n this.baseIRI = options.baseIRI;\n this.produceGeneralizedRdf = !!options.produceGeneralizedRdf;\n this.allowSubjectList = !!options.allowSubjectList;\n this.processingMode = options.processingMode || JsonLdParser_1.JsonLdParser.DEFAULT_PROCESSING_MODE;\n this.strictValues = !!options.strictValues;\n this.validateValueIndexes = !!options.validateValueIndexes;\n this.defaultGraph = options.defaultGraph;\n this.rdfDirection = options.rdfDirection;\n this.normalizeLanguageTags = options.normalizeLanguageTags;\n this.streamingProfileAllowOutOfOrderPlainType = options.streamingProfileAllowOutOfOrderPlainType;\n this.topLevelProperties = false;\n this.activeProcessingMode = parseFloat(this.processingMode);\n // Initialize stacks\n this.processingStack = [];\n this.processingType = [];\n this.emittedStack = [];\n this.idStack = [];\n this.graphStack = [];\n this.graphContainerTermStack = [];\n this.listPointerStack = [];\n this.contextTree = new ContextTree_1.ContextTree();\n this.literalStack = [];\n this.validationStack = [];\n this.unaliasedKeywordCacheStack = [];\n this.jsonLiteralStack = [];\n this.unidentifiedValuesBuffer = [];\n this.unidentifiedGraphsBuffer = [];\n this.pendingContainerFlushBuffers = [];\n this.parser = options.parser;\n if (options.context) {\n this.rootContext = this.parseContext(options.context);\n this.rootContext.then((context) => this.validateContext(context));\n }\n else {\n this.rootContext = Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(this.baseIRI ? { '@base': this.baseIRI, '@__baseDocument': true } : {}));\n }\n }\n /**\n * Parse the given context with the configured options.\n * @param {JsonLdContext} context A context to parse.\n * @param {JsonLdContextNormalized} parentContext An optional parent context.\n * @param {boolean} ignoreProtection If @protected term checks should be ignored.\n * @return {Promise} A promise resolving to the parsed context.\n */\n async parseContext(context, parentContext, ignoreProtection) {\n return this.contextParser.parse(context, {\n baseIRI: this.baseIRI,\n ignoreProtection,\n normalizeLanguageTags: this.normalizeLanguageTags,\n parentContext,\n processingMode: this.activeProcessingMode,\n });\n }\n /**\n * Check if the given context is valid.\n * If not, an error will be thrown.\n * @param {JsonLdContextNormalized} context A context.\n */\n validateContext(context) {\n const activeVersion = context.getContextRaw()['@version'];\n if (activeVersion) {\n if (this.activeProcessingMode && activeVersion > this.activeProcessingMode) {\n throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD version '${activeVersion}' under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.PROCESSING_MODE_CONFLICT);\n }\n else {\n if (this.activeProcessingMode && activeVersion < this.activeProcessingMode) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid JSON-LD version ${activeVersion} under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n }\n this.activeProcessingMode = activeVersion;\n }\n }\n }\n /**\n * Get the context at the given path.\n * @param {keys} keys The path of keys to get the context at.\n * @param {number} offset The path offset, defaults to 1.\n * @return {Promise} A promise resolving to a context.\n */\n async getContext(keys, offset = 1) {\n const keysOriginal = keys;\n // Ignore array keys at the end\n while (typeof keys[keys.length - 1] === 'number') {\n keys = keys.slice(0, keys.length - 1);\n }\n // Handle offset on keys\n if (offset) {\n keys = keys.slice(0, -offset);\n }\n // Determine the closest context\n const contextData = await this.getContextPropagationAware(keys);\n const context = contextData.context;\n // Process property-scoped contexts (high-to-low)\n let contextRaw = context.getContextRaw();\n for (let i = contextData.depth; i < keysOriginal.length - offset; i++) {\n const key = keysOriginal[i];\n const contextKeyEntry = contextRaw[key];\n if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n const scopedContext = (await this.parseContext(contextKeyEntry, contextRaw, true)).getContextRaw();\n const propagate = !(key in scopedContext)\n || scopedContext[key]['@context']['@propagate']; // Propagation is true by default\n if (propagate !== false || i === keysOriginal.length - 1 - offset) {\n contextRaw = scopedContext;\n // Clean up final context\n delete contextRaw['@propagate'];\n contextRaw[key] = Object.assign({}, contextRaw[key]);\n if ('@id' in contextKeyEntry) {\n contextRaw[key]['@id'] = contextKeyEntry['@id'];\n }\n delete contextRaw[key]['@context'];\n if (propagate !== false) {\n this.contextTree.setContext(keysOriginal.slice(0, i + offset), Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw)));\n }\n }\n }\n }\n return new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw);\n }\n /**\n * Get the context at the given path.\n * Non-propagating contexts will be skipped,\n * unless the context at that exact depth is retrieved.\n *\n * This ONLY takes into account context propagation logic,\n * so this should usually not be called directly,\n * call {@link #getContext} instead.\n *\n * @param keys The path of keys to get the context at.\n * @return {Promise<{ context: JsonLdContextNormalized, depth: number }>} A context and its depth.\n */\n async getContextPropagationAware(keys) {\n const originalDepth = keys.length;\n let contextData = null;\n let hasApplicablePropertyScopedContext;\n do {\n hasApplicablePropertyScopedContext = false;\n if (contextData && '@__propagateFallback' in contextData.context.getContextRaw()) {\n // If a propagation fallback context has been set,\n // fallback to that context and retry for the same depth.\n contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized(contextData.context.getContextRaw()['@__propagateFallback']);\n }\n else {\n if (contextData) {\n // If we had a previous iteration, jump to the parent of context depth.\n // We must do this because once we get here, last context had propagation disabled,\n // so we check its first parent instead.\n keys = keys.slice(0, contextData.depth - 1);\n }\n contextData = await this.contextTree.getContext(keys) || { context: await this.rootContext, depth: 0 };\n }\n // Allow non-propagating contexts to propagate one level deeper\n // if it defines a property-scoped context that is applicable for the current key.\n // @see https://w3c.github.io/json-ld-api/tests/toRdf-manifest#tc012\n const lastKey = keys[keys.length - 1];\n if (lastKey in contextData.context.getContextRaw()) {\n const lastKeyValue = contextData.context.getContextRaw()[lastKey];\n if (lastKeyValue && typeof lastKeyValue === 'object' && '@context' in lastKeyValue) {\n hasApplicablePropertyScopedContext = true;\n }\n }\n } while (contextData.depth > 0 // Root context has a special case\n && contextData.context.getContextRaw()['@propagate'] === false // Stop loop if propagation is true\n && contextData.depth !== originalDepth // Stop loop if requesting exact depth of non-propagating\n && !hasApplicablePropertyScopedContext);\n // Special case for root context that does not allow propagation.\n // Fallback to empty context in that case.\n if (contextData.depth === 0\n && contextData.context.getContextRaw()['@propagate'] === false\n && contextData.depth !== originalDepth) {\n contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized({});\n }\n return contextData;\n }\n /**\n * Start a new job for parsing the given value.\n * @param {any[]} keys The stack of keys.\n * @param value The value to parse.\n * @param {number} depth The depth to parse at.\n * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n * @return {Promise} A promise resolving when the job is done.\n */\n async newOnValueJob(keys, value, depth, lastDepthCheck) {\n await this.parser.newOnValueJob(keys, value, depth, lastDepthCheck);\n }\n /**\n * Flush the pending container flush buffers\n * @return {boolean} If any pending buffers were flushed.\n */\n async handlePendingContainerFlushBuffers() {\n if (this.pendingContainerFlushBuffers.length > 0) {\n for (const pendingFlushBuffer of this.pendingContainerFlushBuffers) {\n await this.parser.flushBuffer(pendingFlushBuffer.depth, pendingFlushBuffer.keys);\n this.parser.flushStacks(pendingFlushBuffer.depth);\n }\n this.pendingContainerFlushBuffers.splice(0, this.pendingContainerFlushBuffers.length);\n return true;\n }\n else {\n return false;\n }\n }\n /**\n * Emit the given quad into the output stream.\n * @param {number} depth The depth the quad was generated at.\n * @param {Quad} quad A quad to emit.\n */\n emitQuad(depth, quad) {\n if (depth === 1) {\n this.topLevelProperties = true;\n }\n this.parser.push(quad);\n }\n /**\n * Emit the given error into the output stream.\n * @param {Error} error An error to emit.\n */\n emitError(error) {\n this.parser.emit('error', error);\n }\n /**\n * Emit the given context into the output stream under the 'context' event.\n * @param {JsonLdContext} context A context to emit.\n */\n emitContext(context) {\n this.parser.emit('context', context);\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.unidentifiedValuesBuffer}.\n * @param {number} depth A depth.\n * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n * {@link ParsingContext.unidentifiedValuesBuffer}.\n */\n getUnidentifiedValueBufferSafe(depth) {\n let buffer = this.unidentifiedValuesBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.unidentifiedValuesBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.unidentifiedGraphsBuffer}.\n * @param {number} depth A depth.\n * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n * {@link ParsingContext.unidentifiedGraphsBuffer}.\n */\n getUnidentifiedGraphBufferSafe(depth) {\n let buffer = this.unidentifiedGraphsBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.unidentifiedGraphsBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * @return IExpandOptions The expand options for the active processing mode.\n */\n getExpandOptions() {\n return ParsingContext.EXPAND_OPTIONS[this.activeProcessingMode];\n }\n /**\n * Shift the stack at the given offset to the given depth.\n *\n * This will override anything in the stack at `depth`,\n * and this will remove anything at `depth + depthOffset`\n *\n * @param depth The target depth.\n * @param depthOffset The origin depth, relative to `depth`.\n */\n shiftStack(depth, depthOffset) {\n // Copy the id stack value up one level so that the next job can access the id.\n const deeperIdStack = this.idStack[depth + depthOffset];\n if (deeperIdStack) {\n this.idStack[depth] = deeperIdStack;\n this.emittedStack[depth] = true;\n delete this.idStack[depth + depthOffset];\n }\n // Shorten key stack\n if (this.pendingContainerFlushBuffers.length) {\n for (const buffer of this.pendingContainerFlushBuffers) {\n if (buffer.depth >= depth + depthOffset) {\n buffer.depth -= depthOffset;\n buffer.keys.splice(depth, depthOffset);\n }\n }\n }\n // Splice stacks\n if (this.unidentifiedValuesBuffer[depth + depthOffset]) {\n this.unidentifiedValuesBuffer[depth] = this.unidentifiedValuesBuffer[depth + depthOffset];\n delete this.unidentifiedValuesBuffer[depth + depthOffset];\n }\n // TODO: also do the same for other stacks\n }\n}\nexports.ParsingContext = ParsingContext;\nParsingContext.EXPAND_OPTIONS = {\n 1.0: {\n allowPrefixForcing: false,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: false,\n },\n 1.1: {\n allowPrefixForcing: true,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: true,\n },\n};\n//# sourceMappingURL=ParsingContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst EntryHandlerContainer_1 = require(\"./entryhandler/EntryHandlerContainer\");\n// tslint:disable-next-line:no-var-requires\nconst canonicalizeJson = require('canonicalize');\n/**\n * Utility functions and methods.\n */\nclass Util {\n constructor(options) {\n this.parsingContext = options.parsingContext;\n this.dataFactory = options.dataFactory || new rdf_data_factory_1.DataFactory();\n this.rdfFirst = this.dataFactory.namedNode(Util.RDF + 'first');\n this.rdfRest = this.dataFactory.namedNode(Util.RDF + 'rest');\n this.rdfNil = this.dataFactory.namedNode(Util.RDF + 'nil');\n this.rdfType = this.dataFactory.namedNode(Util.RDF + 'type');\n this.rdfJson = this.dataFactory.namedNode(Util.RDF + 'JSON');\n }\n /**\n * Helper function to get the value of a context entry,\n * or fallback to a certain value.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} contextKey A pre-defined JSON-LD key in context entries.\n * @param {string} key A context entry key.\n * @param {string} fallback A fallback value for when the given contextKey\n * could not be found in the value with the given key.\n * @return {string} The value of the given contextKey in the entry behind key in the given context,\n * or the given fallback value.\n */\n static getContextValue(context, contextKey, key, fallback) {\n const entry = context.getContextRaw()[key];\n if (!entry) {\n return fallback;\n }\n const type = entry[contextKey];\n return type === undefined ? fallback : type;\n }\n /**\n * Get the container type of the given key in the context.\n *\n * Should any context-scoping bugs should occur related to this in the future,\n * it may be required to increase the offset from the depth at which the context is retrieved by one (to 2).\n * This is because containers act 2 levels deep.\n *\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The container type.\n */\n static getContextValueContainer(context, key) {\n return Util.getContextValue(context, '@container', key, { '@set': true });\n }\n /**\n * Get the value type of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueType(context, key) {\n const valueType = Util.getContextValue(context, '@type', key, null);\n if (valueType === '@none') {\n return null;\n }\n return valueType;\n }\n /**\n * Get the language of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueLanguage(context, key) {\n return Util.getContextValue(context, '@language', key, context.getContextRaw()['@language'] || null);\n }\n /**\n * Get the direction of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueDirection(context, key) {\n return Util.getContextValue(context, '@direction', key, context.getContextRaw()['@direction'] || null);\n }\n /**\n * Check if the given key in the context is a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {boolean} If the context value has a @reverse key.\n */\n static isContextValueReverse(context, key) {\n return !!Util.getContextValue(context, '@reverse', key, null);\n }\n /**\n * Get the @index of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The index.\n */\n static getContextValueIndex(context, key) {\n return Util.getContextValue(context, '@index', key, context.getContextRaw()['@index'] || null);\n }\n /**\n * Check if the given key refers to a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The property key.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property must be reversed.\n */\n static isPropertyReverse(context, key, parentKey) {\n // '!==' is needed because reversed properties in a @reverse container should cancel each other out.\n return parentKey === '@reverse' !== Util.isContextValueReverse(context, key);\n }\n /**\n * Check if the given IRI is valid.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIri(iri) {\n return iri !== null && jsonld_context_parser_1.Util.isValidIri(iri);\n }\n /**\n * Check if the given first array (needle) is a prefix of the given second array (haystack).\n * @param needle An array to check if it is a prefix.\n * @param haystack An array to look in.\n */\n static isPrefixArray(needle, haystack) {\n if (needle.length > haystack.length) {\n return false;\n }\n for (let i = 0; i < needle.length; i++) {\n if (needle[i] !== haystack[i]) {\n return false;\n }\n }\n return true;\n }\n /**\n * Make sure that @id-@index pairs are equal over all array values.\n * Reject otherwise.\n * @param {any[]} value An array value.\n * @return {Promise} A promise rejecting if conflicts are present.\n */\n async validateValueIndexes(value) {\n if (this.parsingContext.validateValueIndexes) {\n const indexHashes = {};\n for (const entry of value) {\n if (entry && typeof entry === 'object') {\n const id = entry['@id'];\n const index = entry['@index'];\n if (id && index) {\n const existingIndexValue = indexHashes[id];\n if (existingIndexValue && existingIndexValue !== index) {\n throw new jsonld_context_parser_1.ErrorCoded(`Conflicting @index value for ${id}`, jsonld_context_parser_1.ERROR_CODES.CONFLICTING_INDEXES);\n }\n indexHashes[id] = index;\n }\n }\n }\n }\n }\n /**\n * Convert a given JSON value to an RDF term.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param value A JSON value.\n * @param {number} depth The depth the value is at.\n * @param {string[]} keys The path of keys.\n * @return {Promise} An RDF term array.\n */\n async valueToTerm(context, key, value, depth, keys) {\n // Skip further processing if we have an @type: @json\n if (Util.getContextValueType(context, key) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(value), this.rdfJson)];\n }\n const type = typeof value;\n switch (type) {\n case 'object':\n // Skip if we have a null or undefined object\n if (value === null || value === undefined) {\n return [];\n }\n // Special case for arrays\n if (Array.isArray(value)) {\n // We handle arrays at value level so we can emit earlier, so this is handled already when we get here.\n // Empty context-based lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if ('@list' in Util.getContextValueContainer(context, key)) {\n if (value.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n await this.validateValueIndexes(value);\n return [];\n }\n // Handle property-scoped contexts\n context = await this.getContextSelfOrPropertyScoped(context, key);\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], (await this.parsingContext.getContext(keys, 0)).getContextRaw());\n }\n // In all other cases, we have a hash\n value = await this.unaliasKeywords(value, keys, depth, context); // Un-alias potential keywords in this hash\n if ('@value' in value) {\n let val;\n let valueLanguage;\n let valueDirection;\n let valueType;\n let valueIndex; // We don't use the index, but we need to check its type for spec-compliance\n for (key in value) {\n const subValue = value[key];\n switch (key) {\n case '@value':\n val = subValue;\n break;\n case '@language':\n valueLanguage = subValue;\n break;\n case '@direction':\n valueDirection = subValue;\n break;\n case '@type':\n valueType = subValue;\n break;\n case '@index':\n valueIndex = subValue;\n break;\n default:\n throw new jsonld_context_parser_1.ErrorCoded(`Unknown value entry '${key}' in @value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n }\n // Skip further processing if we have an @type: @json\n if (await this.unaliasKeyword(valueType, keys, depth, true, context) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(val), this.rdfJson)];\n }\n // Validate @value\n if (val === null) {\n return [];\n }\n if (typeof val === 'object') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@value' can not be an object, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT_VALUE);\n }\n // Validate @index\n if (this.parsingContext.validateValueIndexes && valueIndex && typeof valueIndex !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@index' must be a string, got '${JSON.stringify(valueIndex)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE);\n }\n // Validate @language and @direction\n if (valueLanguage) {\n if (typeof val !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`When an '@language' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_VALUE);\n }\n if (!jsonld_context_parser_1.ContextParser.validateLanguage(valueLanguage, this.parsingContext.strictValues, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_STRING)) {\n return [];\n }\n // Language tags are always normalized to lowercase in 1.0.\n if (this.parsingContext.normalizeLanguageTags || this.parsingContext.activeProcessingMode === 1.0) {\n valueLanguage = valueLanguage.toLowerCase();\n }\n }\n if (valueDirection) {\n if (typeof val !== 'string') {\n throw new Error(`When an '@direction' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`);\n }\n if (!jsonld_context_parser_1.ContextParser.validateDirection(valueDirection, this.parsingContext.strictValues)) {\n return [];\n }\n }\n // Check @language and @direction\n if (valueLanguage && valueDirection && this.parsingContext.rdfDirection) {\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have '@language', '@direction' and '@type' in a value: '${JSON\n .stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueLanguage) { // Check @language\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@language' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return [this.dataFactory.literal(val, valueLanguage)];\n }\n else if (valueDirection && this.parsingContext.rdfDirection) { // Check @direction\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@direction' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueType) { // Validate @type\n if (typeof valueType !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n const typeTerm = this.createVocabOrBaseTerm(context, valueType);\n if (!typeTerm) {\n throw new jsonld_context_parser_1.ErrorCoded(`Invalid '@type' value, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n if (typeTerm.termType !== 'NamedNode') {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal value type (${typeTerm.termType}): ${valueType}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n return [this.dataFactory.literal(val, typeTerm)];\n }\n // We don't pass the context, because context-based things like @language should be ignored\n return await this.valueToTerm(new jsonld_context_parser_1.JsonLdContextNormalized({}), key, val, depth, keys);\n }\n else if ('@set' in value) {\n // No other entries are allow in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n // No need to do anything here, this is handled at the deeper level.\n return [];\n }\n else if ('@list' in value) {\n // No other entries are allowed in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n const listValue = value[\"@list\"];\n // We handle lists at value level so we can emit earlier, so this is handled already when we get here.\n // Empty anonymous lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if (Array.isArray(listValue)) {\n if (listValue.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n else {\n // We only have a single list element here, so emit this directly as single element\n return await this.valueToTerm(await this.parsingContext.getContext(keys), key, listValue, depth - 1, keys.slice(0, -1));\n }\n }\n else if ('@reverse' in value && typeof value['@reverse'] === 'boolean') {\n // We handle reverse properties at value level so we can emit earlier,\n // so this is handled already when we get here.\n return [];\n }\n else if ('@graph' in Util.getContextValueContainer(await this.parsingContext.getContext(keys), key)) {\n // We are processing a graph container\n const graphContainerEntries = this.parsingContext.graphContainerTermStack[depth + 1];\n return graphContainerEntries ? Object.values(graphContainerEntries) : [this.dataFactory.blankNode()];\n }\n else if (\"@id\" in value) {\n // Use deeper context if the value node contains other properties next to @id.\n if (Object.keys(value).length > 1) {\n context = await this.parsingContext.getContext(keys, 0);\n }\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], context.getContextRaw());\n }\n if (value[\"@type\"] === '@vocab') {\n return this.nullableTermToArray(this.createVocabOrBaseTerm(context, value[\"@id\"]));\n }\n else {\n return this.nullableTermToArray(this.resourceToTerm(context, value[\"@id\"]));\n }\n }\n else {\n // Only make a blank node if at least one triple was emitted at the value's level.\n if (this.parsingContext.emittedStack[depth + 1]\n || (value && typeof value === 'object' && Object.keys(value).length === 0)) {\n return (this.parsingContext.idStack[depth + 1]\n || (this.parsingContext.idStack[depth + 1] = [this.dataFactory.blankNode()]));\n }\n else {\n return [];\n }\n }\n case 'string':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, null));\n case 'boolean':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, Boolean(value).toString(), this.dataFactory.namedNode(Util.XSD_BOOLEAN)));\n case 'number':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, this.dataFactory.namedNode(value % 1 === 0 && value < 1e21 ? Util.XSD_INTEGER : Util.XSD_DOUBLE)));\n default:\n this.parsingContext.emitError(new Error(`Could not determine the RDF type of a ${type}`));\n return [];\n }\n }\n /**\n * If the context defines a property-scoped context for the given key,\n * that context will be returned.\n * Otherwise, the given context will be returned as-is.\n *\n * This should be used for valueToTerm cases that are not objects.\n * @param context A context.\n * @param key A JSON key.\n */\n async getContextSelfOrPropertyScoped(context, key) {\n const contextKeyEntry = context.getContextRaw()[key];\n if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n context = await this.parsingContext.parseContext(contextKeyEntry, context.getContextRaw(), true);\n }\n return context;\n }\n /**\n * If the given term is null, return an empty array, otherwise return an array with the single given term.\n * @param term A term.\n */\n nullableTermToArray(term) {\n return term ? [term] : [];\n }\n /**\n * Convert a given JSON key to an RDF predicate term,\n * based on @vocab.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node.\n */\n predicateToTerm(context, key) {\n const expanded = context.expandTerm(key, true, this.parsingContext.getExpandOptions());\n // Immediately return if the predicate was disabled in the context\n if (!expanded) {\n return null;\n }\n // Check if the predicate is a blank node\n if (expanded[0] === '_' && expanded[1] === ':') {\n if (this.parsingContext.produceGeneralizedRdf) {\n return this.dataFactory.blankNode(expanded.substr(2));\n }\n else {\n return null;\n }\n }\n // Check if the predicate is a valid IRI\n if (Util.isValidIri(expanded)) {\n return this.dataFactory.namedNode(expanded);\n }\n else {\n if (expanded && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid predicate IRI: ${expanded}`, jsonld_context_parser_1.ERROR_CODES.INVALID_IRI_MAPPING));\n }\n else {\n return null;\n }\n }\n return null;\n }\n /**\n * Convert a given JSON key to an RDF resource term or blank node,\n * based on @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n resourceToTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const iri = context.expandTerm(key, false, this.parsingContext.getExpandOptions());\n if (!Util.isValidIri(iri)) {\n if (iri && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new Error(`Invalid resource IRI: ${iri}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(iri);\n }\n /**\n * Convert a given JSON key to an RDF resource term.\n * It will do this based on the @vocab,\n * and fallback to @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n createVocabOrBaseTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const expandOptions = this.parsingContext.getExpandOptions();\n let expanded = context.expandTerm(key, true, expandOptions);\n if (expanded === key) {\n expanded = context.expandTerm(key, false, expandOptions);\n }\n if (!Util.isValidIri(expanded)) {\n if (expanded && this.parsingContext.strictValues && !expanded.startsWith('@')) {\n this.parsingContext.emitError(new Error(`Invalid term IRI: ${expanded}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(expanded);\n }\n /**\n * Ensure that the given value becomes a string.\n * @param {string | number} value A string or number.\n * @param {NamedNode} datatype The intended datatype.\n * @return {string} The returned string.\n */\n intToString(value, datatype) {\n if (typeof value === 'number') {\n if (Number.isFinite(value)) {\n const isInteger = value % 1 === 0;\n if (isInteger && (!datatype || datatype.value !== Util.XSD_DOUBLE)) {\n return Number(value).toString();\n }\n else {\n return value.toExponential(15).replace(/(\\d)0*e\\+?/, '$1E');\n }\n }\n else {\n return value > 0 ? 'INF' : '-INF';\n }\n }\n else {\n return value;\n }\n }\n /**\n * Convert a given JSON string value to an RDF term.\n * @param {number} depth The current stack depth.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param {string} value A JSON value.\n * @param {NamedNode} defaultDatatype The default datatype for the given value.\n * @return {RDF.Term} An RDF term or null.\n */\n stringValueToTerm(depth, context, key, value, defaultDatatype) {\n // Check the datatype from the context\n const contextType = Util.getContextValueType(context, key);\n if (contextType) {\n if (contextType === '@id') {\n if (!defaultDatatype) {\n return this.resourceToTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else if (contextType === '@vocab') {\n if (!defaultDatatype) {\n return this.createVocabOrBaseTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else {\n defaultDatatype = this.dataFactory.namedNode(contextType);\n }\n }\n // If we don't find such a datatype, check the language from the context\n if (!defaultDatatype) {\n const contextLanguage = Util.getContextValueLanguage(context, key);\n const contextDirection = Util.getContextValueDirection(context, key);\n if (contextDirection && this.parsingContext.rdfDirection) {\n return this.createLanguageDirectionLiteral(depth, this.intToString(value, defaultDatatype), contextLanguage, contextDirection);\n }\n else {\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), contextLanguage);\n }\n }\n // If all else fails, make a literal based on the default content type\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), defaultDatatype);\n }\n /**\n * Create a literal for the given value with the given language and direction.\n * Auxiliary quads may be emitted.\n * @param {number} depth The current stack depth.\n * @param {string} value A string value.\n * @param {string} language A language tag.\n * @param {string} direction A direction.\n * @return {Term} An RDF term.\n */\n createLanguageDirectionLiteral(depth, value, language, direction) {\n if (this.parsingContext.rdfDirection === 'i18n-datatype') {\n // Create a datatyped literal, by encoding the language and direction into https://www.w3.org/ns/i18n#.\n if (!language) {\n language = '';\n }\n return this.dataFactory.literal(value, this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${language}_${direction}`));\n }\n else {\n // Reify the literal.\n const valueNode = this.dataFactory.blankNode();\n const graph = this.getDefaultGraph();\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'value'), this.dataFactory.literal(value), graph));\n if (language) {\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'language'), this.dataFactory.literal(language), graph));\n }\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'direction'), this.dataFactory.literal(direction), graph));\n return valueNode;\n }\n }\n /**\n * Stringify the given JSON object to a canonical JSON string.\n * @param value Any valid JSON value.\n * @return {string} A canonical JSON string.\n */\n valueToJsonString(value) {\n return canonicalizeJson(value);\n }\n /**\n * If the key is not a keyword, try to check if it is an alias for a keyword,\n * and if so, un-alias it.\n * @param {string} key A key, can be falsy.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth to\n * @param {boolean} disableCache If the cache should be disabled\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise} A promise resolving to the key itself, or another key.\n */\n async unaliasKeyword(key, keys, depth, disableCache, context) {\n // Numbers can not be an alias\n if (Number.isInteger(key)) {\n return key;\n }\n // Try to grab from cache if it was already un-aliased before.\n if (!disableCache) {\n const cachedUnaliasedKeyword = this.parsingContext.unaliasedKeywordCacheStack[depth];\n if (cachedUnaliasedKeyword) {\n return cachedUnaliasedKeyword;\n }\n }\n if (!jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n context = context || await this.parsingContext.getContext(keys);\n let unliased = context.getContextRaw()[key];\n if (unliased && typeof unliased === 'object') {\n unliased = unliased['@id'];\n }\n if (jsonld_context_parser_1.Util.isValidKeyword(unliased)) {\n key = unliased;\n }\n }\n return disableCache ? key : (this.parsingContext.unaliasedKeywordCacheStack[depth] = key);\n }\n /**\n * Unalias the keyword of the parent.\n * This adds a safety check if no parent exist.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @return {Promise} A promise resolving to the parent key, or another key.\n */\n async unaliasKeywordParent(keys, depth) {\n return await this.unaliasKeyword(depth > 0 && keys[depth - 1], keys, depth - 1);\n }\n /**\n * Un-alias all keywords in the given hash.\n * @param {{[p: string]: any}} hash A hash object.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth.\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise<{[p: string]: any}>} A promise resolving to the new hash.\n */\n async unaliasKeywords(hash, keys, depth, context) {\n const newHash = {};\n for (const key in hash) {\n newHash[await this.unaliasKeyword(key, keys, depth + 1, true, context)] = hash[key];\n }\n return newHash;\n }\n /**\n * Check if we are processing a literal (including JSON literals) at the given depth.\n * This will also check higher levels,\n * because if a parent is a literal,\n * then the deeper levels are definitely a literal as well.\n * @param {number} depth The depth.\n * @return {boolean} If we are processing a literal.\n */\n isLiteral(depth) {\n for (let i = depth; i >= 0; i--) {\n if (this.parsingContext.literalStack[i] || this.parsingContext.jsonLiteralStack[i]) {\n return true;\n }\n }\n return false;\n }\n /**\n * Check how many parents should be skipped for checking the @graph for the given node.\n *\n * @param {number} depth The depth of the node.\n * @param {any[]} keys An array of keys.\n * @return {number} The graph depth offset.\n */\n async getDepthOffsetGraph(depth, keys) {\n for (let i = depth - 1; i > 0; i--) {\n if (await this.unaliasKeyword(keys[i], keys, i) === '@graph') {\n // Skip further processing if we are already in an @graph-@id or @graph-@index container\n const containers = (await EntryHandlerContainer_1.EntryHandlerContainer.getContainerHandler(this.parsingContext, keys, i)).containers;\n if (EntryHandlerContainer_1.EntryHandlerContainer.isComplexGraphContainer(containers)) {\n return -1;\n }\n return depth - i - 1;\n }\n }\n return -1;\n }\n /**\n * Check if the given subject is of a valid type.\n * This should be called when applying @reverse'd properties.\n * @param {Term} subject A subject.\n */\n validateReverseSubject(subject) {\n if (subject.termType === 'Literal') {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal literal in subject position: ${subject.value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n /**\n * Get the default graph.\n * @return {Term} An RDF term.\n */\n getDefaultGraph() {\n return this.parsingContext.defaultGraph || this.dataFactory.defaultGraph();\n }\n /**\n * Get the current graph, while taking into account a graph that can be defined via @container: @graph.\n * If not within a graph container, the default graph will be returned.\n * @param keys The current keys.\n * @param depth The current depth.\n */\n async getGraphContainerValue(keys, depth) {\n // Default to default graph\n let graph = this.getDefaultGraph();\n // Check if we are in an @container: @graph.\n const { containers, depth: depthContainer } = await EntryHandlerContainer_1.EntryHandlerContainer\n .getContainerHandler(this.parsingContext, keys, depth);\n if ('@graph' in containers) {\n // Get the graph from the stack.\n const graphContainerIndex = EntryHandlerContainer_1.EntryHandlerContainer.getContainerGraphIndex(containers, depthContainer, keys);\n const entry = this.parsingContext.graphContainerTermStack[depthContainer];\n graph = entry ? entry[graphContainerIndex] : null;\n // Set the graph in the stack if none has been set yet.\n if (!graph) {\n let graphId = null;\n if ('@id' in containers) {\n const keyUnaliased = await this.getContainerKey(keys[depthContainer], keys, depthContainer);\n if (keyUnaliased !== null) {\n graphId = await this.resourceToTerm(await this.parsingContext.getContext(keys), keyUnaliased);\n }\n }\n if (!graphId) {\n graphId = this.dataFactory.blankNode();\n }\n if (!this.parsingContext.graphContainerTermStack[depthContainer]) {\n this.parsingContext.graphContainerTermStack[depthContainer] = {};\n }\n graph = this.parsingContext.graphContainerTermStack[depthContainer][graphContainerIndex] = graphId;\n }\n }\n return graph;\n }\n /**\n * Get the properties depth for retrieving properties.\n *\n * Typically, the properties depth will be identical to the given depth.\n *\n * The following exceptions apply:\n * * When the parent is @reverse, the depth is decremented by one.\n * * When @nest parents are found, the depth is decremented by the number of @nest parents.\n * If in combination with the exceptions above an intermediary array is discovered,\n * the depth is also decremented by this number of arrays.\n *\n * @param keys The current key chain.\n * @param depth The current depth.\n */\n async getPropertiesDepth(keys, depth) {\n let lastValidDepth = depth;\n for (let i = depth - 1; i > 0; i--) {\n if (typeof keys[i] !== 'number') { // Skip array keys\n const parentKey = await this.unaliasKeyword(keys[i], keys, i);\n if (parentKey === '@reverse') {\n return i;\n }\n else if (parentKey === '@nest') {\n lastValidDepth = i;\n }\n else {\n return lastValidDepth;\n }\n }\n }\n return lastValidDepth;\n }\n /**\n * Get the key for the current container entry.\n * @param key A key, can be falsy.\n * @param keys The key chain.\n * @param depth The current depth to get the key from.\n * @return Promise resolving to the key.\n * Null will be returned for @none entries, with aliasing taken into account.\n */\n async getContainerKey(key, keys, depth) {\n const keyUnaliased = await this.unaliasKeyword(key, keys, depth);\n return keyUnaliased === '@none' ? null : keyUnaliased;\n }\n}\nexports.Util = Util;\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.XSD_BOOLEAN = Util.XSD + 'boolean';\nUtil.XSD_INTEGER = Util.XSD + 'integer';\nUtil.XSD_DOUBLE = Util.XSD + 'double';\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerIdentifier = void 0;\n/**\n * Container handler for @id.\n *\n * It assumes that the current key is the identifier of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerIdentifier {\n canCombineWithGraph() {\n return true;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n let id;\n // First check if the child node already has a defined id.\n if (parsingContext.emittedStack[depth + 1] && parsingContext.idStack[depth + 1]) {\n // Use the existing identifier\n id = parsingContext.idStack[depth + 1][0];\n }\n else {\n // Create the identifier\n const keyUnaliased = await util.getContainerKey(keys[depth], keys, depth);\n const maybeId = keyUnaliased !== null\n ? await util.resourceToTerm(await parsingContext.getContext(keys), keys[depth])\n : util.dataFactory.blankNode();\n // Do nothing if the id is invalid\n if (!maybeId) {\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n return;\n }\n id = maybeId;\n // Insert the id into the stack so that buffered children can make us of it.\n parsingContext.idStack[depth + 1] = [id];\n }\n // Insert the id into the stack so that parents can make use of it.\n // Insert it as an array because multiple id container entries may exist\n let ids = parsingContext.idStack[depth];\n if (!ids) {\n ids = parsingContext.idStack[depth] = [];\n }\n // Only insert the term if it does not exist yet in the array.\n if (!ids.some((term) => term.equals(id))) {\n ids.push(id);\n }\n // Flush any pending flush buffers\n if (!await parsingContext.handlePendingContainerFlushBuffers()) {\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n }\n }\n}\nexports.ContainerHandlerIdentifier = ContainerHandlerIdentifier;\n//# sourceMappingURL=ContainerHandlerIdentifier.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerIndex = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerPredicate_1 = require(\"../entryhandler/EntryHandlerPredicate\");\nconst Util_1 = require(\"../Util\");\n/**\n * Container handler for @index.\n *\n * This will ignore the current key and add this entry to the parent node.\n */\nclass ContainerHandlerIndex {\n canCombineWithGraph() {\n return true;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n if (!Array.isArray(value)) {\n const graphContainer = '@graph' in containers;\n // Check if the container is a property-based container by checking if there is a valid @index.\n const context = await parsingContext.getContext(keys);\n const indexKey = keys[depth - 1];\n const indexPropertyRaw = Util_1.Util.getContextValueIndex(context, indexKey);\n if (indexPropertyRaw) {\n // Validate the @index value\n if (jsonld_context_parser_1.Util.isPotentialKeyword(indexPropertyRaw)) {\n throw new jsonld_context_parser_1.ErrorCoded(`Keywords can not be used as @index value, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n if (typeof indexPropertyRaw !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`@index values must be strings, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n // When @index is used, values must be node values, unless @type: @id is defined in the context\n if (typeof value !== 'object') {\n // Error if we don't have @type: @id\n if (Util_1.Util.getContextValueType(context, indexKey) !== '@id') {\n throw new jsonld_context_parser_1.ErrorCoded(`Property-based index containers require nodes as values or strings with @type: @id, but got: ${value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n // Add an @id to the stack, so our expanded @index value can make use of it\n const id = util.resourceToTerm(context, value);\n if (id) {\n parsingContext.idStack[depth + 1] = [id];\n }\n }\n // Expand the @index value\n const indexProperty = util.createVocabOrBaseTerm(context, indexPropertyRaw);\n if (indexProperty) {\n const indexValues = await util.valueToTerm(context, indexPropertyRaw, await util.getContainerKey(keys[depth], keys, depth), depth, keys);\n if (graphContainer) {\n // When we're in a graph container, attach the index to the graph identifier\n const graphId = await util.getGraphContainerValue(keys, depth + 1);\n for (const indexValue of indexValues) {\n parsingContext.emitQuad(depth, util.dataFactory.quad(graphId, indexProperty, indexValue, util.getDefaultGraph()));\n }\n }\n else {\n // Otherwise, attach the index to the node identifier\n for (const indexValue of indexValues) {\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, indexProperty, indexValue, false);\n }\n }\n }\n }\n const depthOffset = graphContainer ? 2 : 1;\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - depthOffset), value, depth - depthOffset, true);\n // Flush any pending flush buffers\n await parsingContext.handlePendingContainerFlushBuffers();\n }\n parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n }\n}\nexports.ContainerHandlerIndex = ContainerHandlerIndex;\n//# sourceMappingURL=ContainerHandlerIndex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerLanguage = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Container handler for @language.\n *\n * It assumes that the current key is the language of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerLanguage {\n canCombineWithGraph() {\n return false;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n const language = await util.getContainerKey(keys[depth], keys, depth);\n if (Array.isArray(value)) {\n // No type-checking needed, will be handled on each value when this handler is called recursively.\n value = value.map((subValue) => ({ '@value': subValue, '@language': language }));\n }\n else {\n if (typeof value !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`Got invalid language map value, got '${JSON.stringify(value)}', but expected string`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_MAP_VALUE);\n }\n value = { '@value': value, '@language': language };\n }\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n }\n}\nexports.ContainerHandlerLanguage = ContainerHandlerLanguage;\n//# sourceMappingURL=ContainerHandlerLanguage.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerType = void 0;\nconst EntryHandlerPredicate_1 = require(\"../entryhandler/EntryHandlerPredicate\");\nconst Util_1 = require(\"../Util\");\n/**\n * Container handler for @type.\n *\n * This will add this entry to the parent node, and use the current key as an rdf:type value.\n */\nclass ContainerHandlerType {\n canCombineWithGraph() {\n return false;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n if (!Array.isArray(value)) {\n if (typeof value === 'string') {\n // Determine the @type of the container\n const context = await parsingContext.getContext(keys);\n const containerTypeType = Util_1.Util.getContextValueType(context, keys[depth - 1]);\n // String values refer to node references\n const id = containerTypeType === '@vocab'\n ? await util.createVocabOrBaseTerm(context, value)\n : await util.resourceToTerm(context, value);\n if (id) {\n // Handle the value of this node as @id, which will also cause the predicate from above to be emitted.\n const subValue = { '@id': id.termType === 'NamedNode' ? id.value : value };\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), subValue, depth - 1, true);\n // Set the id in the stack so it can be used for the rdf:type handling later on\n parsingContext.idStack[depth + 1] = [id];\n }\n }\n else {\n // Other values are handled by handling them as a proper job\n // Check needed for cases where entries don't have an explicit @id\n const entryHasIdentifier = !!parsingContext.idStack[depth + 1];\n // Handle the value of this node, which will also cause the predicate from above to be emitted.\n if (!entryHasIdentifier) {\n delete parsingContext.idStack[depth]; // Force new (blank node) identifier\n }\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n if (!entryHasIdentifier) {\n parsingContext.idStack[depth + 1] = parsingContext.idStack[depth]; // Copy the id to the child node, for @type\n }\n }\n // Identify the type to emit.\n const keyOriginal = await util.getContainerKey(keys[depth], keys, depth);\n const type = keyOriginal !== null\n ? util.createVocabOrBaseTerm(await parsingContext.getContext(keys), keyOriginal)\n : null;\n if (type) {\n // Push the type to the stack using the rdf:type predicate\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, util.rdfType, type, false);\n }\n // Flush any pending flush buffers\n await parsingContext.handlePendingContainerFlushBuffers();\n }\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n }\n}\nexports.ContainerHandlerType = ContainerHandlerType;\n//# sourceMappingURL=ContainerHandlerType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerArrayValue = void 0;\nconst Util_1 = require(\"../Util\");\n/**\n * Handles values that are part of an array.\n */\nclass EntryHandlerArrayValue {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return this.test(parsingContext, util, null, keys, depth);\n }\n async test(parsingContext, util, key, keys, depth) {\n return typeof keys[depth] === 'number';\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n let parentKey = await util.unaliasKeywordParent(keys, depth);\n // Check if we have an anonymous list\n if (parentKey === '@list') {\n // Our value is part of an array\n // Determine the list root key\n let listRootKey = null;\n let listRootDepth = 0;\n for (let i = depth - 2; i > 0; i--) {\n const keyOption = keys[i];\n if (typeof keyOption === 'string' || typeof keyOption === 'number') {\n listRootDepth = i;\n listRootKey = keyOption;\n break;\n }\n }\n if (listRootKey !== null) {\n // Emit the given objects as list elements\n const values = await util.valueToTerm(await parsingContext.getContext(keys), listRootKey, value, depth, keys);\n for (const object of values) {\n await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n }\n // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n if (values.length === 0) {\n await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n }\n }\n }\n else if (parentKey === '@set') {\n // Our value is part of a set, so we just add it to the parent-parent\n await parsingContext.newOnValueJob(keys.slice(0, -2), value, depth - 2, false);\n }\n else if (parentKey !== undefined && parentKey !== '@type') {\n // Buffer our value using the parent key as predicate\n // Determine the first parent key that is *not* an array key\n // This is needed in case we have an @list container with nested arrays,\n // where each of them should produce nested RDF lists.\n for (let i = depth - 1; i > 0; i--) {\n if (typeof keys[i] !== 'number') {\n parentKey = await util.unaliasKeyword(keys[i], keys, i);\n break;\n }\n }\n // Check if the predicate is marked as an @list in the context\n const parentContext = await parsingContext.getContext(keys.slice(0, -1));\n if ('@list' in Util_1.Util.getContextValueContainer(parentContext, parentKey)) {\n // Our value is part of an array\n // Emit the given objects as list elements\n parsingContext.emittedStack[depth + 1] = true; // Ensure the creation of bnodes for empty nodes\n const values = await util.valueToTerm(await parsingContext.getContext(keys), parentKey, value, depth, keys);\n for (const object of values) {\n await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, -1), depth - 1);\n }\n // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n if (values.length === 0) {\n await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, -1), depth - 1);\n }\n }\n else {\n // Copy the stack values up one level so that the next job can access them.\n parsingContext.shiftStack(depth, 1);\n // Execute the job one level higher\n await parsingContext.newOnValueJob(keys.slice(0, -1), value, depth - 1, false);\n // Remove any defined contexts at this level to avoid it to propagate to the next array element.\n parsingContext.contextTree.removeContext(keys.slice(0, -1));\n }\n }\n }\n async handleListElement(parsingContext, util, value, valueOriginal, depth, listRootKeys, listRootDepth) {\n // Buffer our value as an RDF list using the listRootKey as predicate\n let listPointer = parsingContext.listPointerStack[depth];\n if (valueOriginal !== null && (await util.unaliasKeywords(valueOriginal, listRootKeys, depth))['@value'] !== null) {\n if (!listPointer || !listPointer.value) {\n const linkTerm = util.dataFactory.blankNode();\n listPointer = { value: linkTerm, listRootDepth, listId: linkTerm };\n }\n else {\n // rdf:rest links are always emitted before the next element,\n // as the blank node identifier is only created at that point.\n // Because of this reason, the final rdf:nil is emitted when the stack depth is decreased.\n const newLinkTerm = util.dataFactory.blankNode();\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfRest, newLinkTerm, util.getDefaultGraph()));\n // Update the list pointer for the next element\n listPointer.value = newLinkTerm;\n }\n // Emit a list element for the current value\n // Omit rdf:first if the value is invalid\n if (value) {\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfFirst, value, util.getDefaultGraph()));\n }\n }\n else {\n // A falsy list element if found.\n // Mark it as an rdf:nil list until another valid list element comes in\n if (!listPointer) {\n listPointer = { listRootDepth, listId: util.rdfNil };\n }\n }\n parsingContext.listPointerStack[depth] = listPointer;\n }\n}\nexports.EntryHandlerArrayValue = EntryHandlerArrayValue;\n//# sourceMappingURL=EntryHandlerArrayValue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerContainer = void 0;\nconst ContainerHandlerIdentifier_1 = require(\"../containerhandler/ContainerHandlerIdentifier\");\nconst ContainerHandlerIndex_1 = require(\"../containerhandler/ContainerHandlerIndex\");\nconst ContainerHandlerLanguage_1 = require(\"../containerhandler/ContainerHandlerLanguage\");\nconst ContainerHandlerType_1 = require(\"../containerhandler/ContainerHandlerType\");\nconst Util_1 = require(\"../Util\");\n/**\n * Handles values that are part of a container type (like @index),\n * as specified by {@link IContainerHandler}.\n */\nclass EntryHandlerContainer {\n /**\n * Check fit the given container is a simple @graph container.\n * Concretely, it will check if no @index or @id is active as well.\n * @param containers A container hash.\n */\n static isSimpleGraphContainer(containers) {\n return '@graph' in containers\n && (('@set' in containers && Object.keys(containers).length === 2) || Object.keys(containers).length === 1);\n }\n /**\n * Check fit the given container is a complex @graph container.\n * Concretely, it will check if @index or @id is active as well next to @graph.\n * @param containers A container hash.\n */\n static isComplexGraphContainer(containers) {\n return '@graph' in containers\n && (('@set' in containers && Object.keys(containers).length > 2)\n || (!('@set' in containers) && Object.keys(containers).length > 1));\n }\n /**\n * Create an graph container index that can be used for identifying a graph term inside the graphContainerTermStack.\n * @param containers The applicable containers.\n * @param depth The container depth.\n * @param keys The array of keys.\n * @return The graph index.\n */\n static getContainerGraphIndex(containers, depth, keys) {\n let isSimpleGraphContainer = EntryHandlerContainer.isSimpleGraphContainer(containers);\n let index = '';\n for (let i = depth; i < keys.length; i++) {\n if (!isSimpleGraphContainer || typeof keys[i] === 'number') {\n index += ':' + keys[i];\n }\n // Only allow a second 'real' key if in a non-simple graph container.\n if (!isSimpleGraphContainer && typeof keys[i] !== 'number') {\n isSimpleGraphContainer = true;\n }\n }\n return index;\n }\n /**\n * Return the applicable container type at the given depth.\n *\n * This will ignore any arrays in the key chain.\n *\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {any[]} keys The array of keys.\n * @param {number} depth The current depth.\n * @return {Promise<{ containers: {[typeName: string]: boolean}, depth: number, fallback: boolean }>}\n * All applicable containers for the given depth,\n * the `depth` of the container root (can change when arrays are in the key chain),\n * and the `fallback` flag that indicates if the default container type was returned\n * (i.e., no dedicated container type is defined).\n */\n static async getContainerHandler(parsingContext, keys, depth) {\n const fallback = {\n containers: { '@set': true },\n depth,\n fallback: true,\n };\n // A flag that is enabled when @graph container should be tested in next iteration\n let checkGraphContainer = false;\n // Iterate from deeper to higher\n const context = await parsingContext.getContext(keys, 2);\n for (let i = depth - 1; i >= 0; i--) {\n if (typeof keys[i] !== 'number') { // Skip array keys\n // @graph containers without any other types are one level less deep, and require special handling\n const containersSelf = Util_1.Util.getContextValue(context, '@container', keys[i], false);\n if (containersSelf && EntryHandlerContainer.isSimpleGraphContainer(containersSelf)) {\n return {\n containers: containersSelf,\n depth: i + 1,\n fallback: false,\n };\n }\n const containersParent = Util_1.Util.getContextValue(context, '@container', keys[i - 1], false);\n if (!containersParent) { // If we have the fallback container value\n if (checkGraphContainer) {\n // Return false if we were already expecting a @graph-@id of @graph-@index container\n return fallback;\n }\n // Check parent-parent, we may be in a @graph-@id of @graph-@index container, which have two levels\n checkGraphContainer = true;\n }\n else {\n // We had an invalid container next iteration, so we now have to check if we were in an @graph container\n const graphContainer = '@graph' in containersParent;\n // We're in a regular container\n for (const containerHandleName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n if (containersParent[containerHandleName]) {\n if (graphContainer) {\n // Only accept graph containers if their combined handlers can handle them.\n if (EntryHandlerContainer.CONTAINER_HANDLERS[containerHandleName].canCombineWithGraph()) {\n return {\n containers: containersParent,\n depth: i,\n fallback: false,\n };\n }\n else {\n return fallback;\n }\n }\n else {\n // Only accept if we were not expecting a @graph-@id of @graph-@index container\n if (checkGraphContainer) {\n return fallback;\n }\n else {\n return {\n containers: containersParent,\n depth: i,\n fallback: false,\n };\n }\n }\n }\n }\n // Fail if no valid container handlers were found\n return fallback;\n }\n }\n }\n return fallback;\n }\n /**\n * Check if we are handling a value at the given depth\n * that is part of something that should be handled as a container,\n * AND if this container should be buffered, so that it can be handled by a dedicated container handler.\n *\n * For instance, any container with @graph will NOT be buffered.\n *\n * This will ignore any arrays in the key chain.\n *\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {any[]} keys The array of keys.\n * @param {number} depth The current depth.\n * @return {Promise} If we are in the scope of a container handler.\n */\n static async isBufferableContainerHandler(parsingContext, keys, depth) {\n const handler = await EntryHandlerContainer.getContainerHandler(parsingContext, keys, depth);\n return !handler.fallback && !('@graph' in handler.containers);\n }\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return !!await this.test(parsingContext, util, null, keys, depth);\n }\n async test(parsingContext, util, key, keys, depth) {\n const containers = Util_1.Util.getContextValueContainer(await parsingContext.getContext(keys, 2), keys[depth - 1]);\n for (const containerName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n if (containers[containerName]) {\n return {\n containers,\n handler: EntryHandlerContainer.CONTAINER_HANDLERS[containerName],\n };\n }\n }\n return null;\n }\n async handle(parsingContext, util, key, keys, value, depth, testResult) {\n return testResult.handler.handle(testResult.containers, parsingContext, util, keys, value, depth);\n }\n}\nexports.EntryHandlerContainer = EntryHandlerContainer;\nEntryHandlerContainer.CONTAINER_HANDLERS = {\n '@id': new ContainerHandlerIdentifier_1.ContainerHandlerIdentifier(),\n '@index': new ContainerHandlerIndex_1.ContainerHandlerIndex(),\n '@language': new ContainerHandlerLanguage_1.ContainerHandlerLanguage(),\n '@type': new ContainerHandlerType_1.ContainerHandlerType(),\n};\n//# sourceMappingURL=EntryHandlerContainer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerInvalidFallback = void 0;\n/**\n * A catch-all for properties, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerInvalidFallback {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return true;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerInvalidFallback = EntryHandlerInvalidFallback;\n//# sourceMappingURL=EntryHandlerInvalidFallback.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerPredicate = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst Util_1 = require(\"../Util\");\n/**\n * Interprets keys as predicates.\n * The most common case in JSON-LD processing.\n */\nclass EntryHandlerPredicate {\n /**\n * Handle the given predicate-object by either emitting it,\n * or by placing it in the appropriate stack for later emission when no @graph and/or @id has been defined.\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {Util} util A utility instance.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @param {Term} predicate The predicate.\n * @param {Term} object The object.\n * @param {boolean} reverse If the property is reversed.\n * @return {Promise} A promise resolving when handling is done.\n */\n static async handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse) {\n const depthProperties = await util.getPropertiesDepth(keys, depth);\n const depthOffsetGraph = await util.getDepthOffsetGraph(depth, keys);\n const depthPropertiesGraph = depth - depthOffsetGraph;\n const subjects = parsingContext.idStack[depthProperties];\n if (subjects) {\n // Emit directly if the @id was already defined\n for (const subject of subjects) {\n // Check if we're in a @graph context\n const atGraph = depthOffsetGraph >= 0;\n if (atGraph) {\n const graphs = parsingContext.idStack[depthPropertiesGraph - 1];\n if (graphs) {\n for (const graph of graphs) {\n // Emit our quad if graph @id is known\n if (reverse) {\n util.validateReverseSubject(object);\n parsingContext.emitQuad(depth, util.dataFactory.quad(object, predicate, subject, graph));\n }\n else {\n parsingContext.emitQuad(depth, util.dataFactory.quad(subject, predicate, object, graph));\n }\n }\n }\n else {\n // Buffer our triple if graph @id is not known yet.\n if (reverse) {\n util.validateReverseSubject(object);\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1).push({ subject: object, predicate, object: subject });\n }\n else {\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1)\n .push({ subject, predicate, object });\n }\n }\n }\n else {\n // Emit if no @graph was applicable\n const graph = await util.getGraphContainerValue(keys, depthProperties);\n if (reverse) {\n util.validateReverseSubject(object);\n parsingContext.emitQuad(depth, util.dataFactory.quad(object, predicate, subject, graph));\n }\n else {\n parsingContext.emitQuad(depth, util.dataFactory.quad(subject, predicate, object, graph));\n }\n }\n }\n }\n else {\n // Buffer until our @id becomes known, or we go up the stack\n if (reverse) {\n util.validateReverseSubject(object);\n }\n parsingContext.getUnidentifiedValueBufferSafe(depthProperties).push({ predicate, object, reverse });\n }\n }\n isPropertyHandler() {\n return true;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n const key = keys[depth];\n if (key) {\n const context = await parsingContext.getContext(keys);\n if (!parsingContext.jsonLiteralStack[depth] && await util.predicateToTerm(context, keys[depth])) {\n // If this valid predicate is of type @json, mark it so in the stack so that no deeper handling of nodes occurs.\n if (Util_1.Util.getContextValueType(context, key) === '@json') {\n parsingContext.jsonLiteralStack[depth + 1] = true;\n }\n return true;\n }\n }\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return keys[depth];\n }\n async handle(parsingContext, util, key, keys, value, depth, testResult) {\n const keyOriginal = keys[depth];\n const context = await parsingContext.getContext(keys);\n const predicate = await util.predicateToTerm(context, key);\n if (predicate) {\n const objects = await util.valueToTerm(context, key, value, depth, keys);\n if (objects.length) {\n for (let object of objects) {\n const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, await util.unaliasKeywordParent(keys, depth));\n if (value) {\n // Special case if our term was defined as an @list, but does not occur in an array,\n // In that case we just emit it as an RDF list with a single element.\n const listValueContainer = '@list' in Util_1.Util.getContextValueContainer(context, key);\n if (listValueContainer || value['@list']) {\n if (((listValueContainer && !Array.isArray(value) && !value['@list'])\n || (value['@list'] && !Array.isArray(value['@list'])))\n && object !== util.rdfNil) {\n const listPointer = util.dataFactory.blankNode();\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfRest, util.rdfNil, util.getDefaultGraph()));\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfFirst, object, util.getDefaultGraph()));\n object = listPointer;\n }\n // Lists are not allowed in @reverse'd properties\n if (reverse && !parsingContext.allowSubjectList) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal list value in subject position at ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n }\n await EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse);\n }\n }\n }\n }\n}\nexports.EntryHandlerPredicate = EntryHandlerPredicate;\n//# sourceMappingURL=EntryHandlerPredicate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeyword = void 0;\n/**\n * An abstract keyword entry handler.\n */\nclass EntryHandlerKeyword {\n constructor(keyword) {\n this.keyword = keyword;\n }\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return key === this.keyword;\n }\n}\nexports.EntryHandlerKeyword = EntryHandlerKeyword;\n//# sourceMappingURL=EntryHandlerKeyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordContext = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @context entries.\n */\nclass EntryHandlerKeywordContext extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@context');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // Error if an out-of-order context was found when support is not enabled.\n if (parsingContext.streamingProfile\n && (parsingContext.processingStack[depth]\n || parsingContext.processingType[depth]\n || parsingContext.idStack[depth] !== undefined)) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order context, while streaming is enabled.' +\n '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n }\n // Find the parent context to inherit from.\n // We actually request a context for the current depth (with fallback to parent)\n // because we want to take into account any property-scoped contexts that are defined for this depth.\n const parentContext = parsingContext.getContext(keys);\n // Set the context for this scope\n const context = parsingContext.parseContext(value, (await parentContext).getContextRaw());\n parsingContext.contextTree.setContext(keys.slice(0, -1), context);\n parsingContext.emitContext(value);\n await parsingContext.validateContext(await context);\n }\n}\nexports.EntryHandlerKeywordContext = EntryHandlerKeywordContext;\n//# sourceMappingURL=EntryHandlerKeywordContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordGraph = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordGraph extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@graph');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // The current identifier identifies a graph for the deeper level.\n parsingContext.graphStack[depth + 1] = true;\n }\n}\nexports.EntryHandlerKeywordGraph = EntryHandlerKeywordGraph;\n//# sourceMappingURL=EntryHandlerKeywordGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordId = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @id entries.\n */\nclass EntryHandlerKeywordId extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@id');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'string') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @id '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_ID_VALUE));\n }\n // Determine the canonical place for this id.\n // For example, @nest parents should be ignored.\n const depthProperties = await util.getPropertiesDepth(keys, depth);\n // Error if an @id for this node already existed.\n if (parsingContext.idStack[depthProperties] !== undefined) {\n if (parsingContext.idStack[depthProperties][0].listHead) {\n // Error if an @list was already defined for this node\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${keys[depth - 1]}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT));\n }\n else {\n // Otherwise, the previous id was just because of an @id entry.\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found duplicate @ids '${parsingContext\n .idStack[depthProperties][0].value}' and '${value}'`, jsonld_context_parser_1.ERROR_CODES.COLLIDING_KEYWORDS));\n }\n }\n // Save our @id on the stack\n parsingContext.idStack[depthProperties] = util.nullableTermToArray(await util.resourceToTerm(await parsingContext.getContext(keys), value));\n }\n}\nexports.EntryHandlerKeywordId = EntryHandlerKeywordId;\n//# sourceMappingURL=EntryHandlerKeywordId.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordIncluded = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @included entries.\n */\nclass EntryHandlerKeywordIncluded extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@included');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'object') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @included '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n const valueUnliased = await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys));\n if ('@value' in valueUnliased) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @value node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n if ('@list' in valueUnliased) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @list node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordIncluded = EntryHandlerKeywordIncluded;\n//# sourceMappingURL=EntryHandlerKeywordIncluded.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordNest = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @nest entries.\n */\nclass EntryHandlerKeywordNest extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@nest');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'object') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found invalid @nest entry for '${key}': '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n }\n if ('@value' in await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys))) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an invalid @value node for '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordNest = EntryHandlerKeywordNest;\n//# sourceMappingURL=EntryHandlerKeywordNest.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordType = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst Util_1 = require(\"../../Util\");\nconst EntryHandlerPredicate_1 = require(\"../EntryHandlerPredicate\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordType extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@type');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n const keyOriginal = keys[depth];\n // The current identifier identifies an rdf:type predicate.\n // But we only emit it once the node closes,\n // as it's possible that the @type is used to identify the datatype of a literal, which we ignore here.\n const context = await parsingContext.getContext(keys);\n const predicate = util.rdfType;\n const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, await util.unaliasKeywordParent(keys, depth));\n // Handle multiple values if the value is an array\n const elements = Array.isArray(value) ? value : [value];\n for (const element of elements) {\n if (typeof element !== 'string') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @type '${element}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPE_VALUE));\n }\n const type = util.createVocabOrBaseTerm(context, element);\n if (type) {\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, type, reverse);\n }\n }\n // Collect type-scoped contexts if they exist\n let scopedContext = Promise.resolve(context);\n let hasTypedScopedContext = false;\n for (const element of elements.sort()) { // Spec requires lexicographical ordering\n const typeContext = Util_1.Util.getContextValue(context, '@context', element, null);\n if (typeContext) {\n hasTypedScopedContext = true;\n scopedContext = scopedContext.then((c) => parsingContext.parseContext(typeContext, c.getContextRaw()));\n }\n }\n // Error if an out-of-order type-scoped context was found when support is not enabled.\n if (parsingContext.streamingProfile\n && (hasTypedScopedContext || !parsingContext.streamingProfileAllowOutOfOrderPlainType)\n && (parsingContext.processingStack[depth] || parsingContext.idStack[depth])) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order type-scoped context, while streaming is enabled.' +\n '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n }\n // If at least least one type-scoped context applies, set them in the tree.\n if (hasTypedScopedContext) {\n // Do not propagate by default\n scopedContext = scopedContext.then((c) => {\n if (!('@propagate' in c.getContextRaw())) {\n c.getContextRaw()['@propagate'] = false;\n }\n // Set the original context at this depth as a fallback\n // This is needed when a context was already defined at the given depth,\n // and this context needs to remain accessible from child nodes when propagation is disabled.\n if (c.getContextRaw()['@propagate'] === false) {\n c.getContextRaw()['@__propagateFallback'] = context.getContextRaw();\n }\n return c;\n });\n // Set the new context in the context tree\n parsingContext.contextTree.setContext(keys.slice(0, keys.length - 1), scopedContext);\n }\n // Flag that type has been processed at this depth\n parsingContext.processingType[depth] = true;\n }\n}\nexports.EntryHandlerKeywordType = EntryHandlerKeywordType;\n//# sourceMappingURL=EntryHandlerKeywordType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordUnknownFallback = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * A catch-all for keywords, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerKeywordUnknownFallback {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n const key = await util.unaliasKeyword(keys[depth], keys, depth);\n if (jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n // Don't emit anything inside free-floating lists\n if (!inProperty) {\n if (key === '@list') {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return jsonld_context_parser_1.Util.isPotentialKeyword(key);\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n const keywordType = EntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES[key];\n if (keywordType !== undefined) {\n if (keywordType && typeof value !== keywordType.type) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid value type for '${key}' with value '${value}'`, keywordType.errorCode));\n }\n }\n else if (parsingContext.strictValues) {\n parsingContext.emitError(new Error(`Unknown keyword '${key}' with value '${value}'`));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordUnknownFallback = EntryHandlerKeywordUnknownFallback;\nEntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES = {\n '@index': { type: 'string', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE },\n '@list': null,\n '@reverse': { type: 'object', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_VALUE },\n '@set': null,\n '@value': null,\n};\n//# sourceMappingURL=EntryHandlerKeywordUnknownFallback.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordValue = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @value entries.\n */\nclass EntryHandlerKeywordValue extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@value');\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n // If this is @value, mark it so in the stack so that no deeper handling of nodes occurs.\n const key = keys[depth];\n if (key && !parsingContext.literalStack[depth] && await this.test(parsingContext, util, key, keys, depth)) {\n parsingContext.literalStack[depth] = true;\n }\n return super.validate(parsingContext, util, keys, depth, inProperty);\n }\n async test(parsingContext, util, key, keys, depth) {\n return await util.unaliasKeyword(keys[depth], keys.slice(0, keys.length - 1), depth - 1, true) === '@value';\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // If the value is valid, indicate that we are processing a literal.\n // The actual value will be determined at the parent level when the @value is part of an object,\n // because we may want to take into account additional entries such as @language.\n // See {@link Util.valueToTerm}\n // Indicate that we are processing a literal, and that no later predicates should be parsed at this depth.\n parsingContext.literalStack[depth] = true;\n // Void any buffers that we may have accumulated up until now\n delete parsingContext.unidentifiedValuesBuffer[depth];\n delete parsingContext.unidentifiedGraphsBuffer[depth];\n // Indicate that we have not emitted at this depth\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordValue = EntryHandlerKeywordValue;\n//# sourceMappingURL=EntryHandlerKeywordValue.js.map"],"names":["DataFactory","module","exports","BlankNode","constructor","id","this","value","nextId","equals","other","termType","prototype","DefaultGraph","fromTermRaw","Literal","NamedNode","Quad","Variable","namedNode","blankNode","literal","languageOrDatatype","indexOf","variable","defaultGraph","defaultGraphInstance","triple","subject","predicate","object","quad","graph","fromTerm","original","call","fromQuad","language","datatype","stringDatatype","langStringDatatype","iri","name","Error","Sink","ParserStream","Parser","options","super","rdf","JsonLdParser","Transform","relativeIriProtocol","termCleanup","factory","term","startsWith","slice","length","quadCleanup","cleanup","input","baseIRI","context","parser","dataFactory","streamingProfile","pipe","transform","objectMode","encoding","callback","on","Object","entries","forEach","prefix","emit","err","destroy","Impl","import","output","assign","readable","__createBinding","create","o","m","k","k2","undefined","defineProperty","enumerable","get","__exportStar","p","hasOwnProperty","ContextTree","subTrees","getContext","keys","head","tail","subTree","subContext","then","depth","setContext","removeContext","path","jsonld_context_parser_1","stream_1","EntryHandlerArrayValue_1","EntryHandlerContainer_1","EntryHandlerInvalidFallback_1","EntryHandlerPredicate_1","EntryHandlerKeywordContext_1","EntryHandlerKeywordGraph_1","EntryHandlerKeywordId_1","EntryHandlerKeywordIncluded_1","EntryHandlerKeywordNest_1","EntryHandlerKeywordType_1","EntryHandlerKeywordUnknownFallback_1","EntryHandlerKeywordValue_1","ParsingContext_1","Util_1","http_link_header_1","readableObjectMode","parsingContext","ParsingContext","util","Util","jsonParser","contextJobs","typeJobs","contextAwaitingJobs","lastDepth","lastKeys","lastOnValueJob","Promise","resolve","attachJsonParserListeners","mode","static","mediaType","headers","endsWith","ErrorCoded","ERROR_CODES","LOADING_DOCUMENT_FAILED","has","key","linkHeader","parse","link","MULTIPLE_CONTEXT_LINK_HEADERS","uri","ignoreMissingContextLinkHeader","contentType","match","exec","stream","PassThrough","error","parsed","data","push","_transform","chunk","write","async","lastDepthCheck","flushStacks","listPointer","listPointerStack","rdfRest","rdfNil","getDefaultGraph","listId","listHead","idStack","listRootDepth","splice","EntryHandlerContainer","isBufferableContainerHandler","pendingContainerFlushBuffers","flushBuffer","unaliasKeyword","parentKey","unaliasKeywordParent","emittedStack","handleKey","isValidKeyword","INVALID_REVERSE_PROPERTY_MAP","inProperty","validationStack","property","i","Math","max","validationResult","validateKey","valid","isLiteral","entryHandler","ENTRY_HANDLERS","testResult","test","handle","isStackProcessor","processingStack","Array","isArray","validateValueIndexes","unaliasedKeywordCacheStack","processingType","graphStack","graphContainerTermStack","jsonLiteralStack","literalStack","subjects","valueBuffer","unidentifiedValuesBuffer","depthOffsetGraph","getDepthOffsetGraph","graphs","getGraphContainerValue","bufferedValue","reverse","emitQuad","subGraphBuffer","getUnidentifiedGraphBufferSafe","graphBuffer","unidentifiedGraphsBuffer","topLevelProperties","validate","isPropertyHandler","onValue","stack","fill","map","v","isParsingContextInner","valueJobCb","newOnValueJob","contextTree","jobs","job","executeBufferedJobs","onError","applicableTypeJobs","applicableTypeJobIds","typeJob","isPrefixArray","sortedTypeJobs","sort","job1","job2","sortedApplicableTypeJobIds","jobId","DEFAULT_PROCESSING_MODE","EntryHandlerArrayValue","EntryHandlerKeywordContext","EntryHandlerKeywordId","EntryHandlerKeywordIncluded","EntryHandlerKeywordGraph","EntryHandlerKeywordNest","EntryHandlerKeywordType","EntryHandlerKeywordValue","EntryHandlerKeywordUnknownFallback","EntryHandlerPredicate","EntryHandlerInvalidFallback","ErrorCoded_1","ContextTree_1","JsonLdParser_1","contextParser","ContextParser","documentLoader","skipValidation","skipContextValidation","produceGeneralizedRdf","allowSubjectList","processingMode","strictValues","rdfDirection","normalizeLanguageTags","streamingProfileAllowOutOfOrderPlainType","activeProcessingMode","parseFloat","rootContext","parseContext","validateContext","JsonLdContextNormalized","parentContext","ignoreProtection","activeVersion","getContextRaw","PROCESSING_MODE_CONFLICT","INVALID_VERSION_VALUE","offset","keysOriginal","contextData","getContextPropagationAware","contextRaw","contextKeyEntry","scopedContext","propagate","originalDepth","hasApplicablePropertyScopedContext","lastKey","lastKeyValue","pendingFlushBuffer","emitError","emitContext","getUnidentifiedValueBufferSafe","buffer","getExpandOptions","EXPAND_OPTIONS","shiftStack","depthOffset","deeperIdStack","allowPrefixForcing","allowPrefixNonGenDelims","allowVocabRelativeToBase","rdf_data_factory_1","canonicalizeJson","rdfFirst","RDF","rdfType","rdfJson","contextKey","fallback","entry","type","getContextValue","valueType","isContextValueReverse","isValidIri","needle","haystack","indexHashes","index","existingIndexValue","CONFLICTING_INDEXES","getContextValueType","valueToJsonString","getContextValueContainer","getContextSelfOrPropertyScoped","unaliasKeywords","val","valueLanguage","valueDirection","valueIndex","subValue","JSON","stringify","INVALID_VALUE_OBJECT","INVALID_VALUE_OBJECT_VALUE","INVALID_INDEX_VALUE","INVALID_LANGUAGE_TAGGED_VALUE","validateLanguage","INVALID_LANGUAGE_TAGGED_STRING","toLowerCase","validateDirection","nullableTermToArray","createLanguageDirectionLiteral","INVALID_TYPED_VALUE","typeTerm","createVocabOrBaseTerm","valueToTerm","INVALID_SET_OR_LIST_OBJECT","listValue","graphContainerEntries","values","resourceToTerm","stringValueToTerm","Boolean","toString","XSD_BOOLEAN","XSD_INTEGER","XSD_DOUBLE","predicateToTerm","expanded","expandTerm","substr","INVALID_IRI_MAPPING","expandOptions","intToString","Number","isFinite","isInteger","toExponential","replace","defaultDatatype","contextType","contextLanguage","getContextValueLanguage","contextDirection","getContextValueDirection","direction","valueNode","disableCache","cachedUnaliasedKeyword","isPotentialKeyword","unliased","hash","newHash","containers","getContainerHandler","isComplexGraphContainer","validateReverseSubject","INVALID_REVERSE_PROPERTY_VALUE","depthContainer","graphContainerIndex","getContainerGraphIndex","graphId","keyUnaliased","getContainerKey","lastValidDepth","XSD","ContainerHandlerIdentifier","canCombineWithGraph","maybeId","ids","some","handlePendingContainerFlushBuffers","ContainerHandlerIndex","graphContainer","indexKey","indexPropertyRaw","getContextValueIndex","INVALID_TERM_DEFINITION","indexProperty","indexValues","indexValue","handlePredicateObject","ContainerHandlerLanguage","INVALID_LANGUAGE_MAP_VALUE","ContainerHandlerType","containerTypeType","entryHasIdentifier","keyOriginal","listRootKey","keyOption","handleListElement","valueOriginal","listRootKeys","newLinkTerm","linkTerm","ContainerHandlerIdentifier_1","ContainerHandlerIndex_1","ContainerHandlerLanguage_1","ContainerHandlerType_1","isSimpleGraphContainer","checkGraphContainer","containersSelf","containersParent","containerHandleName","CONTAINER_HANDLERS","handler","containerName","depthProperties","getPropertiesDepth","depthPropertiesGraph","atGraph","objects","isPropertyReverse","listValueContainer","EntryHandlerKeyword","keyword","EntryHandlerKeyword_1","INVALID_STREAMING_KEY_ORDER","INVALID_ID_VALUE","COLLIDING_KEYWORDS","INVALID_INCLUDED_VALUE","valueUnliased","INVALID_NEST_VALUE","elements","element","INVALID_TYPE_VALUE","hasTypedScopedContext","typeContext","c","keywordType","VALID_KEYWORDS_TYPES","errorCode","INVALID_REVERSE_VALUE"],"sourceRoot":""} \ No newline at end of file diff --git a/js/249.6097629f.js b/js/249.6097629f.js new file mode 100644 index 0000000..a5c94c3 --- /dev/null +++ b/js/249.6097629f.js @@ -0,0 +1,2 @@ +(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[249],{16298:function(e,t,r){"use strict";const{SymbolDispose:n}=r(30671),{AbortError:o,codes:i}=r(43550),{isNodeStream:a,isWebStream:l,kControllerErrorFunction:s}=r(13394),d=r(34131),{ERR_INVALID_ARG_TYPE:u}=i;let c;const f=(e,t)=>{if("object"!==typeof e||!("aborted"in e))throw new u(t,"AbortSignal",e)};e.exports.addAbortSignal=function(t,r){if(f(t,"signal"),!a(r)&&!l(r))throw new u("stream",["ReadableStream","WritableStream","Stream"],r);return e.exports.addAbortSignalNoValidate(t,r)},e.exports.addAbortSignalNoValidate=function(e,t){if("object"!==typeof e||!("aborted"in e))return t;const i=a(t)?()=>{t.destroy(new o(void 0,{cause:e.reason}))}:()=>{t[s](new o(void 0,{cause:e.reason}))};if(e.aborted)i();else{c=c||r(55980).addAbortListener;const o=c(e,i);d(t,o[n])}return t}},30188:function(e,t,r){"use strict";const{StringPrototypeSlice:n,SymbolIterator:o,TypedArrayPrototypeSet:i,Uint8Array:a}=r(30671),{Buffer:l}=r(48764),{inspect:s}=r(55980);e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(e){const t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}shift(){if(0===this.length)return;const e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(0===this.length)return"";let t=this.head,r=""+t.data;while(null!==(t=t.next))r+=e+t.data;return r}concat(e){if(0===this.length)return l.alloc(0);const t=l.allocUnsafe(e>>>0);let r=this.head,n=0;while(r)i(t,r.data,n),n+=r.data.length,r=r.next;return t}consume(e,t){const r=this.head.data;if(ei.length)){e===i.length?(t+=i,++o,r.next?this.head=r.next:this.head=this.tail=null):(t+=n(i,0,e),this.head=r,r.data=n(i,e));break}t+=i,e-=i.length,++o}while(null!==(r=r.next));return this.length-=o,t}_getBuffer(e){const t=l.allocUnsafe(e),r=e;let n=this.head,o=0;do{const l=n.data;if(!(e>l.length)){e===l.length?(i(t,l,r-e),++o,n.next?this.head=n.next:this.head=this.tail=null):(i(t,new a(l.buffer,l.byteOffset,e),r-e),this.head=n,n.data=l.slice(e));break}i(t,l,r-e),e-=l.length,++o}while(null!==(n=n.next));return this.length-=o,t}[Symbol.for("nodejs.util.inspect.custom")](e,t){return s(this,{...t,depth:0,customInspect:!1})}}},70342:function(e,t,r){"use strict";const{pipeline:n}=r(41165),o=r(23234),{destroyer:i}=r(7702),{isNodeStream:a,isReadable:l,isWritable:s,isWebStream:d,isTransformStream:u,isWritableStream:c,isReadableStream:f}=r(13394),{AbortError:b,codes:{ERR_INVALID_ARG_VALUE:h,ERR_MISSING_ARGS:p}}=r(43550),y=r(34131);e.exports=function(...e){if(0===e.length)throw new p("streams");if(1===e.length)return o.from(e[0]);const t=[...e];if("function"===typeof e[0]&&(e[0]=o.from(e[0])),"function"===typeof e[e.length-1]){const t=e.length-1;e[t]=o.from(e[t])}for(let n=0;n0&&!(s(e[n])||c(e[n])||u(e[n])))throw new h(`streams[${n}]`,t[n],"must be writable")}let r,_,w,g,m;function S(e){const t=g;g=null,t?t(e):e?m.destroy(e):A||R||m.destroy()}const v=e[0],E=n(e,S),R=!!(s(v)||c(v)||u(v)),A=!!(l(E)||f(E)||u(E));if(m=new o({writableObjectMode:!(null===v||void 0===v||!v.writableObjectMode),readableObjectMode:!(null===E||void 0===E||!E.readableObjectMode),writable:R,readable:A}),R){if(a(v))m._write=function(e,t,n){v.write(e,t)?n():r=n},m._final=function(e){v.end(),_=e},v.on("drain",(function(){if(r){const e=r;r=null,e()}}));else if(d(v)){const e=u(v)?v.writable:v,t=e.getWriter();m._write=async function(e,r,n){try{await t.ready,t.write(e).catch((()=>{})),n()}catch(o){n(o)}},m._final=async function(e){try{await t.ready,t.close().catch((()=>{})),_=e}catch(r){e(r)}}}const e=u(E)?E.readable:E;y(e,(()=>{if(_){const e=_;_=null,e()}}))}if(A)if(a(E))E.on("readable",(function(){if(w){const e=w;w=null,e()}})),E.on("end",(function(){m.push(null)})),m._read=function(){while(1){const e=E.read();if(null===e)return void(w=m._read);if(!m.push(e))return}};else if(d(E)){const e=u(E)?E.readable:E,t=e.getReader();m._read=async function(){while(1)try{const{value:e,done:r}=await t.read();if(!m.push(e))return;if(r)return void m.push(null)}catch{return}}}return m._destroy=function(e,t){e||null===g||(e=new b),w=null,r=null,_=null,null===g?t(e):(g=t,a(E)&&i(E,e))},m}},7702:function(e,t,r){"use strict";const n=r(34155),{aggregateTwoErrors:o,codes:{ERR_MULTIPLE_CALLBACK:i},AbortError:a}=r(43550),{Symbol:l}=r(30671),{kIsDestroyed:s,isDestroyed:d,isFinished:u,isServerRequest:c}=r(13394),f=l("kDestroy"),b=l("kConstruct");function h(e,t,r){e&&(e.stack,t&&!t.errored&&(t.errored=e),r&&!r.errored&&(r.errored=e))}function p(e,t){const r=this._readableState,n=this._writableState,i=n||r;return null!==n&&void 0!==n&&n.destroyed||null!==r&&void 0!==r&&r.destroyed?("function"===typeof t&&t(),this):(h(e,n,r),n&&(n.destroyed=!0),r&&(r.destroyed=!0),i.constructed?y(this,e,t):this.once(f,(function(r){y(this,o(r,e),t)})),this)}function y(e,t,r){let o=!1;function i(t){if(o)return;o=!0;const i=e._readableState,a=e._writableState;h(t,a,i),a&&(a.closed=!0),i&&(i.closed=!0),"function"===typeof r&&r(t),t?n.nextTick(_,e,t):n.nextTick(w,e)}try{e._destroy(t||null,i)}catch(t){i(t)}}function _(e,t){g(e,t),w(e)}function w(e){const t=e._readableState,r=e._writableState;r&&(r.closeEmitted=!0),t&&(t.closeEmitted=!0),(null!==r&&void 0!==r&&r.emitClose||null!==t&&void 0!==t&&t.emitClose)&&e.emit("close")}function g(e,t){const r=e._readableState,n=e._writableState;null!==n&&void 0!==n&&n.errorEmitted||null!==r&&void 0!==r&&r.errorEmitted||(n&&(n.errorEmitted=!0),r&&(r.errorEmitted=!0),e.emit("error",t))}function m(){const e=this._readableState,t=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=!1===e.readable,e.endEmitted=!1===e.readable),t&&(t.constructed=!0,t.destroyed=!1,t.closed=!1,t.closeEmitted=!1,t.errored=null,t.errorEmitted=!1,t.finalCalled=!1,t.prefinished=!1,t.ended=!1===t.writable,t.ending=!1===t.writable,t.finished=!1===t.writable)}function S(e,t,r){const o=e._readableState,i=e._writableState;if(null!==i&&void 0!==i&&i.destroyed||null!==o&&void 0!==o&&o.destroyed)return this;null!==o&&void 0!==o&&o.autoDestroy||null!==i&&void 0!==i&&i.autoDestroy?e.destroy(t):t&&(t.stack,i&&!i.errored&&(i.errored=t),o&&!o.errored&&(o.errored=t),r?n.nextTick(g,e,t):g(e,t))}function v(e,t){if("function"!==typeof e._construct)return;const r=e._readableState,o=e._writableState;r&&(r.constructed=!1),o&&(o.constructed=!1),e.once(b,t),e.listenerCount(b)>1||n.nextTick(E,e)}function E(e){let t=!1;function r(r){if(t)return void S(e,null!==r&&void 0!==r?r:new i);t=!0;const o=e._readableState,a=e._writableState,l=a||o;o&&(o.constructed=!0),a&&(a.constructed=!0),l.destroyed?e.emit(f,r):r?S(e,r,!0):n.nextTick(R,e)}try{e._construct((e=>{n.nextTick(r,e)}))}catch(o){n.nextTick(r,o)}}function R(e){e.emit(b)}function A(e){return(null===e||void 0===e?void 0:e.setHeader)&&"function"===typeof e.abort}function T(e){e.emit("close")}function k(e,t){e.emit("error",t),n.nextTick(T,e)}function I(e,t){e&&!d(e)&&(t||u(e)||(t=new a),c(e)?(e.socket=null,e.destroy(t)):A(e)?e.abort():A(e.req)?e.req.abort():"function"===typeof e.destroy?e.destroy(t):"function"===typeof e.close?e.close():t?n.nextTick(k,e,t):n.nextTick(T,e),e.destroyed||(e[s]=!0))}e.exports={construct:v,destroyer:I,destroy:p,undestroy:m,errorOrDestroy:S}},23234:function(e,t,r){"use strict";const{ObjectDefineProperties:n,ObjectGetOwnPropertyDescriptor:o,ObjectKeys:i,ObjectSetPrototypeOf:a}=r(30671);e.exports=d;const l=r(17862),s=r(15929);a(d.prototype,l.prototype),a(d,l);{const e=i(s.prototype);for(let t=0;t{c=!1,e&&w(t,e),f(e)})),d._write=function(e,t,o){r.write(e,t)?o():n=o},d._final=function(e){r.end(),o=e},r.on("drain",(function(){if(n){const e=n;n=null,e()}})),r.on("finish",(function(){if(o){const e=o;o=null,e()}}))),u&&(h(t,(e=>{u=!1,e&&w(t,e),f(e)})),t.on("readable",(function(){if(l){const e=l;l=null,e()}})),t.on("end",(function(){d.push(null)})),d._read=function(){while(1){const e=t.read();if(null===e)return void(l=d._read);if(!d.push(e))return}}),d._destroy=function(e,i){e||null===s||(e=new p),l=null,n=null,o=null,null===s?i(e):(s=i,w(r,e),w(t,e))},d}e.exports=function e(t,r){if(c(t))return t;if(d(t))return M({readable:t});if(u(t))return M({writable:t});if(s(t))return M({writable:!1,readable:!1});if(f(t))return M({readable:m.fromWeb(t)});if(b(t))return M({writable:S.fromWeb(t)});if("function"===typeof t){const{value:e,write:o,final:i,destroy:a}=N(t);if(l(e))return E(I,e,{objectMode:!0,write:o,final:i,destroy:a});const s=null===e||void 0===e?void 0:e.then;if("function"===typeof s){let t;const r=k(s,e,(e=>{if(null!=e)throw new _("nully","body",e)}),(e=>{w(t,e)}));return t=new I({objectMode:!0,readable:!1,write:o,final(e){i((async()=>{try{await r,n.nextTick(e,null)}catch(t){n.nextTick(e,t)}}))},destroy:a})}throw new _("Iterable, AsyncIterable or AsyncFunction",r,e)}if(A(t))return e(t.arrayBuffer());if(l(t))return E(I,t,{objectMode:!0,writable:!1});if(f(null===t||void 0===t?void 0:t.readable)&&b(null===t||void 0===t?void 0:t.writable))return I.fromWeb(t);if("object"===typeof(null===t||void 0===t?void 0:t.writable)||"object"===typeof(null===t||void 0===t?void 0:t.readable)){const r=null!==t&&void 0!==t&&t.readable?d(null===t||void 0===t?void 0:t.readable)?null===t||void 0===t?void 0:t.readable:e(t.readable):void 0,n=null!==t&&void 0!==t&&t.writable?u(null===t||void 0===t?void 0:t.writable)?null===t||void 0===t?void 0:t.writable:e(t.writable):void 0;return M({readable:r,writable:n})}const o=null===t||void 0===t?void 0:t.then;if("function"===typeof o){let e;return k(o,t,(t=>{null!=t&&e.push(t),e.push(null)}),(t=>{w(e,t)})),e=new I({objectMode:!0,writable:!1,read(){}})}throw new y(r,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],t)}},34131:function(e,t,r){const n=r(34155),{AbortError:o,codes:i}=r(43550),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:l}=i,{kEmptyObject:s,once:d}=r(55980),{validateAbortSignal:u,validateFunction:c,validateObject:f,validateBoolean:b}=r(39229),{Promise:h,PromisePrototypeThen:p,SymbolDispose:y}=r(30671),{isClosed:_,isReadable:w,isReadableNodeStream:g,isReadableStream:m,isReadableFinished:S,isReadableErrored:v,isWritable:E,isWritableNodeStream:R,isWritableStream:A,isWritableFinished:T,isWritableErrored:k,isNodeStream:I,willEmitClose:N,kIsClosedPromise:M}=r(13394);let D;function P(e){return e.setHeader&&"function"===typeof e.abort}const x=()=>{};function L(e,t,i){var b,h;if(2===arguments.length?(i=t,t=s):null==t?t=s:f(t,"options"),c(i,"callback"),u(t.signal,"options.signal"),i=d(i),m(e)||A(e))return O(e,t,i);if(!I(e))throw new a("stream",["ReadableStream","WritableStream","Stream"],e);const p=null!==(b=t.readable)&&void 0!==b?b:g(e),M=null!==(h=t.writable)&&void 0!==h?h:R(e),L=e._writableState,j=e._readableState,W=()=>{e.writable||F()};let $=N(e)&&g(e)===p&&R(e)===M,C=T(e,!1);const F=()=>{C=!0,e.destroyed&&($=!1),(!$||e.readable&&!p)&&(p&&!U||i.call(e))};let U=S(e,!1);const B=()=>{U=!0,e.destroyed&&($=!1),(!$||e.writable&&!M)&&(M&&!C||i.call(e))},G=t=>{i.call(e,t)};let H=_(e);const V=()=>{H=!0;const t=k(e)||v(e);return t&&"boolean"!==typeof t?i.call(e,t):p&&!U&&g(e,!0)&&!S(e,!1)?i.call(e,new l):!M||C||T(e,!1)?void i.call(e):i.call(e,new l)},Y=()=>{H=!0;const t=k(e)||v(e);if(t&&"boolean"!==typeof t)return i.call(e,t);i.call(e)},q=()=>{e.req.on("finish",F)};P(e)?(e.on("complete",F),$||e.on("abort",V),e.req?q():e.on("request",q)):M&&!L&&(e.on("end",W),e.on("close",W)),$||"boolean"!==typeof e.aborted||e.on("aborted",V),e.on("end",B),e.on("finish",F),!1!==t.error&&e.on("error",G),e.on("close",V),H?n.nextTick(V):null!==L&&void 0!==L&&L.errorEmitted||null!==j&&void 0!==j&&j.errorEmitted?$||n.nextTick(Y):(p||$&&!w(e)||!C&&!1!==E(e))&&(M||$&&!E(e)||!U&&!1!==w(e))?j&&e.req&&e.aborted&&n.nextTick(Y):n.nextTick(Y);const K=()=>{i=x,e.removeListener("aborted",V),e.removeListener("complete",F),e.removeListener("abort",V),e.removeListener("request",q),e.req&&e.req.removeListener("finish",F),e.removeListener("end",W),e.removeListener("close",W),e.removeListener("finish",F),e.removeListener("end",B),e.removeListener("error",G),e.removeListener("close",V)};if(t.signal&&!H){const a=()=>{const r=i;K(),r.call(e,new o(void 0,{cause:t.signal.reason}))};if(t.signal.aborted)n.nextTick(a);else{D=D||r(55980).addAbortListener;const n=D(t.signal,a),o=i;i=d(((...t)=>{n[y](),o.apply(e,t)}))}}return K}function O(e,t,i){let a=!1,l=x;if(t.signal)if(l=()=>{a=!0,i.call(e,new o(void 0,{cause:t.signal.reason}))},t.signal.aborted)n.nextTick(l);else{D=D||r(55980).addAbortListener;const n=D(t.signal,l),o=i;i=d(((...t)=>{n[y](),o.apply(e,t)}))}const s=(...t)=>{a||n.nextTick((()=>i.apply(e,t)))};return p(e[M].promise,s,s),x}function j(e,t){var r;let n=!1;return null===t&&(t=s),null!==(r=t)&&void 0!==r&&r.cleanup&&(b(t.cleanup,"cleanup"),n=t.cleanup),new h(((r,o)=>{const i=L(e,t,(e=>{n&&i(),e?o(e):r()}))}))}e.exports=L,e.exports.finished=j},29609:function(e,t,r){"use strict";const n=r(34155),{PromisePrototypeThen:o,SymbolAsyncIterator:i,SymbolIterator:a}=r(30671),{Buffer:l}=r(48764),{ERR_INVALID_ARG_TYPE:s,ERR_STREAM_NULL_VALUES:d}=r(43550).codes;function u(e,t,r){let u,c;if("string"===typeof t||t instanceof l)return new e({objectMode:!0,...r,read(){this.push(t),this.push(null)}});if(t&&t[i])c=!0,u=t[i]();else{if(!t||!t[a])throw new s("iterable",["Iterable"],t);c=!1,u=t[a]()}const f=new e({objectMode:!0,highWaterMark:1,...r});let b=!1;async function h(e){const t=void 0!==e&&null!==e,r="function"===typeof u.throw;if(t&&r){const{value:t,done:r}=await u.throw(e);if(await t,r)return}if("function"===typeof u.return){const{value:e}=await u.return();await e}}async function p(){for(;;){try{const{value:e,done:t}=c?await u.next():u.next();if(t)f.push(null);else{const t=e&&"function"===typeof e.then?await e:e;if(null===t)throw b=!1,new d;if(f.push(t))continue;b=!1}}catch(e){f.destroy(e)}break}}return f._read=function(){b||(b=!0,p())},f._destroy=function(e,t){o(h(e),(()=>n.nextTick(t,e)),(r=>n.nextTick(t,r||e)))},f}e.exports=u},1850:function(e,t,r){"use strict";const{ArrayIsArray:n,ObjectSetPrototypeOf:o}=r(30671),{EventEmitter:i}=r(17187);function a(e){i.call(this,e)}function l(e,t,r){if("function"===typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?n(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}o(a.prototype,i.prototype),o(a,i),a.prototype.pipe=function(e,t){const r=this;function n(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function o(){r.readable&&r.resume&&r.resume()}r.on("data",n),e.on("drain",o),e._isStdio||t&&!1===t.end||(r.on("end",s),r.on("close",d));let a=!1;function s(){a||(a=!0,e.end())}function d(){a||(a=!0,"function"===typeof e.destroy&&e.destroy())}function u(e){c(),0===i.listenerCount(this,"error")&&this.emit("error",e)}function c(){r.removeListener("data",n),e.removeListener("drain",o),r.removeListener("end",s),r.removeListener("close",d),r.removeListener("error",u),e.removeListener("error",u),r.removeListener("end",c),r.removeListener("close",c),e.removeListener("close",c)}return l(r,"error",u),l(e,"error",u),r.on("end",c),r.on("close",c),e.on("close",c),e.emit("pipe",r),e},e.exports={Stream:a,prependListener:l}},73293:function(e,t,r){"use strict";const n=globalThis.AbortController||r(28599).AbortController,{codes:{ERR_INVALID_ARG_VALUE:o,ERR_INVALID_ARG_TYPE:i,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:l},AbortError:s}=r(43550),{validateAbortSignal:d,validateInteger:u,validateObject:c}=r(39229),f=r(30671).Symbol("kWeak"),b=r(30671).Symbol("kResistStopPropagation"),{finished:h}=r(34131),p=r(70342),{addAbortSignalNoValidate:y}=r(16298),{isWritable:_,isNodeStream:w}=r(13394),{deprecate:g}=r(55980),{ArrayPrototypePush:m,Boolean:S,MathFloor:v,Number:E,NumberIsNaN:R,Promise:A,PromiseReject:T,PromiseResolve:k,PromisePrototypeThen:I,Symbol:N}=r(30671),M=N("kEmpty"),D=N("kEof");function P(e,t){if(null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),w(e)&&!_(e))throw new o("stream",e,"must be writable");const r=p(this,e);return null!==t&&void 0!==t&&t.signal&&y(t.signal,r),r}function x(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal");let n=1;null!=(null===t||void 0===t?void 0:t.concurrency)&&(n=v(t.concurrency));let o=n-1;return null!=(null===t||void 0===t?void 0:t.highWaterMark)&&(o=v(t.highWaterMark)),u(n,"options.concurrency",1),u(o,"options.highWaterMark",0),o+=n,async function*(){const i=r(55980).AbortSignalAny([null===t||void 0===t?void 0:t.signal].filter(S)),a=this,l=[],d={signal:i};let u,c,f=!1,b=0;function h(){f=!0,p()}function p(){b-=1,y()}function y(){c&&!f&&b=o||b>=n)&&await new A((e=>{c=e}))}l.push(D)}catch(t){const e=T(t);I(e,p,h),l.push(e)}finally{f=!0,u&&(u(),u=null)}}_();try{while(1){while(l.length>0){const e=await l[0];if(e===D)return;if(i.aborted)throw new s;e!==M&&(yield e),l.shift(),y()}await new A((e=>{u=e}))}}finally{f=!0,c&&(c(),c=null)}}.call(this)}function L(e=void 0){return null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal"),async function*(){let t=0;for await(const n of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new s({cause:e.signal.reason});yield[t++,n]}}.call(this)}async function O(e,t=void 0){for await(const r of C.call(this,e,t))return!0;return!1}async function j(e,t=void 0){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);return!await O.call(this,(async(...t)=>!await e(...t)),t)}async function W(e,t){for await(const r of C.call(this,e,t))return r}async function $(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r),M}for await(const n of x.call(this,r,t));}function C(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r)?t:M}return x.call(this,r,t)}class F extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function U(e,t,r){var o;if("function"!==typeof e)throw new i("reducer",["Function","AsyncFunction"],e);null!=r&&c(r,"options"),null!=(null===r||void 0===r?void 0:r.signal)&&d(r.signal,"options.signal");let a=arguments.length>1;if(null!==r&&void 0!==r&&null!==(o=r.signal)&&void 0!==o&&o.aborted){const e=new s(void 0,{cause:r.signal.reason});throw this.once("error",(()=>{})),await h(this.destroy(e)),e}const l=new n,u=l.signal;if(null!==r&&void 0!==r&&r.signal){const e={once:!0,[f]:this,[b]:!0};r.signal.addEventListener("abort",(()=>l.abort()),e)}let p=!1;try{for await(const n of this){var y;if(p=!0,null!==r&&void 0!==r&&null!==(y=r.signal)&&void 0!==y&&y.aborted)throw new s;a?t=await e(t,n,{signal:u}):(t=n,a=!0)}if(!p&&!a)throw new F}finally{l.abort()}return t}async function B(e){null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal");const t=[];for await(const n of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new s(void 0,{cause:e.signal.reason});m(t,n)}return t}function G(e,t){const r=x.call(this,e,t);return async function*(){for await(const e of r)yield*e}.call(this)}function H(e){if(e=E(e),R(e))return 0;if(e<0)throw new l("number",">= 0",e);return e}function V(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=H(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new s;for await(const o of this){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new s;e--<=0&&(yield o)}}.call(this)}function Y(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=H(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new s;for await(const o of this){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new s;if(e-- >0&&(yield o),e<=0)return}}.call(this)}e.exports.streamReturningOperators={asIndexedPairs:g(L,"readable.asIndexedPairs will be removed in a future version."),drop:V,filter:C,flatMap:G,map:x,take:Y,compose:P},e.exports.promiseReturningOperators={every:j,forEach:$,reduce:U,toArray:B,some:O,find:W}},86133:function(e,t,r){"use strict";const{ObjectSetPrototypeOf:n}=r(30671);e.exports=i;const o=r(91380);function i(e){if(!(this instanceof i))return new i(e);o.call(this,e)}n(i.prototype,o.prototype),n(i,o),i.prototype._transform=function(e,t,r){r(null,e)}},41165:function(e,t,r){const n=r(34155),{ArrayIsArray:o,Promise:i,SymbolAsyncIterator:a,SymbolDispose:l}=r(30671),s=r(34131),{once:d}=r(55980),u=r(7702),c=r(23234),{aggregateTwoErrors:f,codes:{ERR_INVALID_ARG_TYPE:b,ERR_INVALID_RETURN_VALUE:h,ERR_MISSING_ARGS:p,ERR_STREAM_DESTROYED:y,ERR_STREAM_PREMATURE_CLOSE:_},AbortError:w}=r(43550),{validateFunction:g,validateAbortSignal:m}=r(39229),{isIterable:S,isReadable:v,isReadableNodeStream:E,isNodeStream:R,isTransformStream:A,isWebStream:T,isReadableStream:k,isReadableFinished:I}=r(13394),N=globalThis.AbortController||r(28599).AbortController;let M,D,P;function x(e,t,r){let n=!1;e.on("close",(()=>{n=!0}));const o=s(e,{readable:t,writable:r},(e=>{n=!e}));return{destroy:t=>{n||(n=!0,u.destroyer(e,t||new y("pipe")))},cleanup:o}}function L(e){return g(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function O(e){if(S(e))return e;if(E(e))return j(e);throw new b("val",["Readable","Iterable","AsyncIterable"],e)}async function*j(e){D||(D=r(17862)),yield*D.prototype[a].call(e)}async function W(e,t,r,{end:n}){let o,a=null;const l=e=>{if(e&&(o=e),a){const e=a;a=null,e()}},d=()=>new i(((e,t)=>{o?t(o):a=()=>{o?t(o):e()}}));t.on("drain",l);const u=s(t,{readable:!1},l);try{t.writableNeedDrain&&await d();for await(const r of e)t.write(r)||await d();n&&(t.end(),await d()),r()}catch(c){r(o!==c?f(o,c):c)}finally{u(),t.off("drain",l)}}async function $(e,t,r,{end:n}){A(t)&&(t=t.writable);const o=t.getWriter();try{for await(const t of e)await o.ready,o.write(t).catch((()=>{}));await o.ready,n&&await o.close(),r()}catch(i){try{await o.abort(i),r(i)}catch(i){r(i)}}}function C(...e){return F(e,d(L(e)))}function F(e,t,i){if(1===e.length&&o(e[0])&&(e=e[0]),e.length<2)throw new p("streams");const a=new N,s=a.signal,d=null===i||void 0===i?void 0:i.signal,u=[];function f(){C(new w)}let y,_,g;m(d,"options.signal"),P=P||r(55980).addAbortListener,d&&(y=P(d,f));const I=[];let D,L=0;function j(e){C(e,0===--L)}function C(e,r){var o;if(!e||_&&"ERR_STREAM_PREMATURE_CLOSE"!==_.code||(_=e),_||r){while(I.length)I.shift()(_);null===(o=y)||void 0===o||o[l](),a.abort(),r&&(_||u.forEach((e=>e())),n.nextTick(t,_,g))}}for(let H=0;H0,K=Y||!1!==(null===i||void 0===i?void 0:i.end),z=H===e.length-1;if(R(V)){if(K){const{destroy:X,cleanup:J}=x(V,Y,q);I.push(X),v(V)&&z&&u.push(J)}function F(e){e&&"AbortError"!==e.name&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code&&j(e)}V.on("error",F),v(V)&&z&&u.push((()=>{V.removeListener("error",F)}))}if(0===H)if("function"===typeof V){if(D=V({signal:s}),!S(D))throw new h("Iterable, AsyncIterable or Stream","source",D)}else D=S(V)||E(V)||A(V)?V:c.from(V);else if("function"===typeof V){var B;if(A(D))D=O(null===(B=D)||void 0===B?void 0:B.readable);else D=O(D);if(D=V(D,{signal:s}),Y){if(!S(D,!0))throw new h("AsyncIterable",`transform[${H-1}]`,D)}else{var G;M||(M=r(86133));const Z=new M({objectMode:!0}),Q=null===(G=D)||void 0===G?void 0:G.then;if("function"===typeof Q)L++,Q.call(D,(e=>{g=e,null!=e&&Z.write(e),K&&Z.end(),n.nextTick(j)}),(e=>{Z.destroy(e),n.nextTick(j,e)}));else if(S(D,!0))L++,W(D,Z,j,{end:K});else{if(!k(D)&&!A(D))throw new h("AsyncIterable or Promise","destination",D);{const re=D.readable||D;L++,W(re,Z,j,{end:K})}}D=Z;const{destroy:ee,cleanup:te}=x(D,!1,!0);I.push(ee),z&&u.push(te)}}else if(R(V)){if(E(D)){L+=2;const ne=U(D,V,j,{end:K});v(V)&&z&&u.push(ne)}else if(A(D)||k(D)){const oe=D.readable||D;L++,W(oe,V,j,{end:K})}else{if(!S(D))throw new b("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],D);L++,W(D,V,j,{end:K})}D=V}else if(T(V)){if(E(D))L++,$(O(D),V,j,{end:K});else if(k(D)||S(D))L++,$(D,V,j,{end:K});else{if(!A(D))throw new b("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],D);L++,$(D.readable,V,j,{end:K})}D=V}else D=c.from(V)}return(null!==s&&void 0!==s&&s.aborted||null!==d&&void 0!==d&&d.aborted)&&n.nextTick(f),D}function U(e,t,r,{end:o}){let i=!1;if(t.on("close",(()=>{i||r(new _)})),e.pipe(t,{end:!1}),o){function a(){i=!0,t.end()}I(e)?n.nextTick(a):e.once("end",a)}else r();return s(e,{readable:!0,writable:!1},(t=>{const n=e._readableState;t&&"ERR_STREAM_PREMATURE_CLOSE"===t.code&&n&&n.ended&&!n.errored&&!n.errorEmitted?e.once("end",r).once("error",r):r(t)})),s(t,{readable:!1,writable:!0},r)}e.exports={pipelineImpl:F,pipeline:C}},17862:function(e,t,r){const n=r(34155),{ArrayPrototypeIndexOf:o,NumberIsInteger:i,NumberIsNaN:a,NumberParseInt:l,ObjectDefineProperties:s,ObjectKeys:d,ObjectSetPrototypeOf:u,Promise:c,SafeSet:f,SymbolAsyncDispose:b,SymbolAsyncIterator:h,Symbol:p}=r(30671);e.exports=le,le.ReadableState=ae;const{EventEmitter:y}=r(17187),{Stream:_,prependListener:w}=r(1850),{Buffer:g}=r(48764),{addAbortSignal:m}=r(16298),S=r(34131);let v=r(55980).debuglog("stream",(e=>{v=e}));const E=r(30188),R=r(7702),{getHighWaterMark:A,getDefaultHighWaterMark:T}=r(80310),{aggregateTwoErrors:k,codes:{ERR_INVALID_ARG_TYPE:I,ERR_METHOD_NOT_IMPLEMENTED:N,ERR_OUT_OF_RANGE:M,ERR_STREAM_PUSH_AFTER_EOF:D,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:P},AbortError:x}=r(43550),{validateObject:L}=r(39229),O=p("kPaused"),{StringDecoder:j}=r(32553),W=r(29609);u(le.prototype,_.prototype),u(le,_);const $=()=>{},{errorOrDestroy:C}=R,F=1,U=2,B=4,G=8,H=16,V=32,Y=64,q=128,K=256,z=512,X=1024,J=2048,Z=4096,Q=8192,ee=16384,te=32768,re=65536,ne=1<<17,oe=1<<18;function ie(e){return{enumerable:!1,get(){return 0!==(this.state&e)},set(t){t?this.state|=e:this.state&=~e}}}function ae(e,t,n){"boolean"!==typeof n&&(n=t instanceof r(23234)),this.state=J|Z|H|V,e&&e.objectMode&&(this.state|=F),n&&e&&e.readableObjectMode&&(this.state|=F),this.highWaterMark=e?A(this,e,"readableHighWaterMark",n):T(!1),this.buffer=new E,this.length=0,this.pipes=[],this.flowing=null,this[O]=null,e&&!1===e.emitClose&&(this.state&=~J),e&&!1===e.autoDestroy&&(this.state&=~Z),this.errored=null,this.defaultEncoding=e&&e.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,e&&e.encoding&&(this.decoder=new j(e.encoding),this.encoding=e.encoding)}function le(e){if(!(this instanceof le))return new le(e);const t=this instanceof r(23234);this._readableState=new ae(e,this,t),e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.construct&&(this._construct=e.construct),e.signal&&!t&&m(e.signal,this)),_.call(this,e),R.construct(this,(()=>{this._readableState.needReadable&&ye(this,this._readableState)}))}function se(e,t,r,n){v("readableAddChunk",t);const o=e._readableState;let i;if(0===(o.state&F)&&("string"===typeof t?(r=r||o.defaultEncoding,o.encoding!==r&&(n&&o.encoding?t=g.from(t,r).toString(o.encoding):(t=g.from(t,r),r=""))):t instanceof g?r="":_._isUint8Array(t)?(t=_._uint8ArrayToBuffer(t),r=""):null!=t&&(i=new I("chunk",["string","Buffer","Uint8Array"],t))),i)C(e,i);else if(null===t)o.state&=~G,be(e,o);else if(0!==(o.state&F)||t&&t.length>0)if(n)if(0!==(o.state&B))C(e,new P);else{if(o.destroyed||o.errored)return!1;de(e,o,t,!0)}else if(o.ended)C(e,new D);else{if(o.destroyed||o.errored)return!1;o.state&=~G,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?de(e,o,t,!1):ye(e,o)):de(e,o,t,!1)}else n||(o.state&=~G,ye(e,o));return!o.ended&&(o.length0?(0!==(t.state&re)?t.awaitDrainWriters.clear():t.awaitDrainWriters=null,t.dataEmitted=!0,e.emit("data",r)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),0!==(t.state&Y)&&he(e)),ye(e,t)}s(ae.prototype,{objectMode:ie(F),ended:ie(U),endEmitted:ie(B),reading:ie(G),constructed:ie(H),sync:ie(V),needReadable:ie(Y),emittedReadable:ie(q),readableListening:ie(K),resumeScheduled:ie(z),errorEmitted:ie(X),emitClose:ie(J),autoDestroy:ie(Z),destroyed:ie(Q),closed:ie(ee),closeEmitted:ie(te),multiAwaitDrain:ie(re),readingMore:ie(ne),dataEmitted:ie(oe)}),le.prototype.destroy=R.destroy,le.prototype._undestroy=R.undestroy,le.prototype._destroy=function(e,t){t(e)},le.prototype[y.captureRejectionSymbol]=function(e){this.destroy(e)},le.prototype[b]=function(){let e;return this.destroyed||(e=this.readableEnded?null:new x,this.destroy(e)),new c(((t,r)=>S(this,(n=>n&&n!==e?r(n):t(null)))))},le.prototype.push=function(e,t){return se(this,e,t,!1)},le.prototype.unshift=function(e,t){return se(this,e,t,!0)},le.prototype.isPaused=function(){const e=this._readableState;return!0===e[O]||!1===e.flowing},le.prototype.setEncoding=function(e){const t=new j(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;const r=this._readableState.buffer;let n="";for(const o of r)n+=t.write(o);return r.clear(),""!==n&&r.push(n),this._readableState.length=n.length,this};const ue=1073741824;function ce(e){if(e>ue)throw new M("size","<= 1GiB",e);return e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++,e}function fe(e,t){return e<=0||0===t.length&&t.ended?0:0!==(t.state&F)?1:a(e)?t.flowing&&t.length?t.buffer.first().length:t.length:e<=t.length?e:t.ended?t.length:0}function be(e,t){if(v("onEofChunk"),!t.ended){if(t.decoder){const e=t.decoder.end();e&&e.length&&(t.buffer.push(e),t.length+=t.objectMode?1:e.length)}t.ended=!0,t.sync?he(e):(t.needReadable=!1,t.emittedReadable=!0,pe(e))}}function he(e){const t=e._readableState;v("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(v("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(pe,e))}function pe(e){const t=e._readableState;v("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||t.errored||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,Ee(e)}function ye(e,t){!t.readingMore&&t.constructed&&(t.readingMore=!0,n.nextTick(_e,e,t))}function _e(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!1===t[O]?t.flowing=!0:e.listenerCount("data")>0?e.resume():t.readableListening||(t.flowing=null)}function me(e){v("readable nexttick read 0"),e.read(0)}function Se(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(ve,e,t))}function ve(e,t){v("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Ee(e),t.flowing&&!t.reading&&e.read(0)}function Ee(e){const t=e._readableState;v("flow",t.flowing);while(t.flowing&&null!==e.read());}function Re(e,t){"function"!==typeof e.read&&(e=le.wrap(e,{objectMode:!0}));const r=Ae(e,t);return r.stream=e,r}async function*Ae(e,t){let r,n=$;function o(t){this===e?(n(),n=$):n=t}e.on("readable",o);const i=S(e,{writable:!1},(e=>{r=e?k(r,e):null,n(),n=$}));try{while(1){const t=e.destroyed?null:e.read();if(null!==t)yield t;else{if(r)throw r;if(null===r)return;await new c(o)}}}catch(a){throw r=k(r,a),r}finally{!r&&!1===(null===t||void 0===t?void 0:t.destroyOnReturn)||void 0!==r&&!e._readableState.autoDestroy?(e.off("readable",o),i()):R.destroyer(e,null)}}function Te(e,t){if(0===t.length)return null;let r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function ke(e){const t=e._readableState;v("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(Ie,t,e))}function Ie(e,t){if(v("endReadableNT",e.endEmitted,e.length),!e.errored&&!e.closeEmitted&&!e.endEmitted&&0===e.length)if(e.endEmitted=!0,t.emit("end"),t.writable&&!1===t.allowHalfOpen)n.nextTick(Ne,t);else if(e.autoDestroy){const e=t._writableState,r=!e||e.autoDestroy&&(e.finished||!1===e.writable);r&&t.destroy()}}function Ne(e){const t=e.writable&&!e.writableEnded&&!e.destroyed;t&&e.end()}let Me;function De(){return void 0===Me&&(Me={}),Me}le.prototype.read=function(e){v("read",e),void 0===e?e=NaN:i(e)||(e=l(e,10));const t=this._readableState,r=e;if(e>t.highWaterMark&&(t.highWaterMark=ce(e)),0!==e&&(t.state&=~q),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return v("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?ke(this):he(this),null;if(e=fe(e,t),0===e&&t.ended)return 0===t.length&&ke(this),null;let n,o=0!==(t.state&Y);if(v("need readable",o),(0===t.length||t.length-e0?Te(e,t):null,null===n?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&ke(this)),null===n||t.errorEmitted||t.closeEmitted||(t.dataEmitted=!0,this.emit("data",n)),n},le.prototype._read=function(e){throw new N("_read()")},le.prototype.pipe=function(e,t){const r=this,o=this._readableState;1===o.pipes.length&&(o.multiAwaitDrain||(o.multiAwaitDrain=!0,o.awaitDrainWriters=new f(o.awaitDrainWriters?[o.awaitDrainWriters]:[]))),o.pipes.push(e),v("pipe count=%d opts=%j",o.pipes.length,t);const i=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr,a=i?s:g;function l(e,t){v("onunpipe"),e===r&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,c())}function s(){v("onend"),e.end()}let d;o.endEmitted?n.nextTick(a):r.once("end",a),e.on("unpipe",l);let u=!1;function c(){v("cleanup"),e.removeListener("close",y),e.removeListener("finish",_),d&&e.removeListener("drain",d),e.removeListener("error",p),e.removeListener("unpipe",l),r.removeListener("end",s),r.removeListener("end",g),r.removeListener("data",h),u=!0,d&&o.awaitDrainWriters&&(!e._writableState||e._writableState.needDrain)&&d()}function b(){u||(1===o.pipes.length&&o.pipes[0]===e?(v("false write response, pause",0),o.awaitDrainWriters=e,o.multiAwaitDrain=!1):o.pipes.length>1&&o.pipes.includes(e)&&(v("false write response, pause",o.awaitDrainWriters.size),o.awaitDrainWriters.add(e)),r.pause()),d||(d=we(r,e),e.on("drain",d))}function h(t){v("ondata");const r=e.write(t);v("dest.write",r),!1===r&&b()}function p(t){if(v("onerror",t),g(),e.removeListener("error",p),0===e.listenerCount("error")){const r=e._writableState||e._readableState;r&&!r.errorEmitted?C(e,t):e.emit("error",t)}}function y(){e.removeListener("finish",_),g()}function _(){v("onfinish"),e.removeListener("close",y),g()}function g(){v("unpipe"),r.unpipe(e)}return r.on("data",h),w(e,"error",p),e.once("close",y),e.once("finish",_),e.emit("pipe",r),!0===e.writableNeedDrain?b():o.flowing||(v("pipe resume"),r.resume()),e},le.prototype.unpipe=function(e){const t=this._readableState,r={hasUnpiped:!1};if(0===t.pipes.length)return this;if(!e){const e=t.pipes;t.pipes=[],this.pause();for(let t=0;t0,!1!==o.flowing&&this.resume()):"readable"===e&&(o.endEmitted||o.readableListening||(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,v("on readable",o.length,o.reading),o.length?he(this):o.reading||n.nextTick(me,this))),r},le.prototype.addListener=le.prototype.on,le.prototype.removeListener=function(e,t){const r=_.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(ge,this),r},le.prototype.off=le.prototype.removeListener,le.prototype.removeAllListeners=function(e){const t=_.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(ge,this),t},le.prototype.resume=function(){const e=this._readableState;return e.flowing||(v("resume"),e.flowing=!e.readableListening,Se(this,e)),e[O]=!1,this},le.prototype.pause=function(){return v("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(v("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[O]=!0,this},le.prototype.wrap=function(e){let t=!1;e.on("data",(r=>{!this.push(r)&&e.pause&&(t=!0,e.pause())})),e.on("end",(()=>{this.push(null)})),e.on("error",(e=>{C(this,e)})),e.on("close",(()=>{this.destroy()})),e.on("destroy",(()=>{this.destroy()})),this._read=()=>{t&&e.resume&&(t=!1,e.resume())};const r=d(e);for(let n=1;n{t?e?e(t):this.destroy(t):(null!=r&&this.push(r),this.push(null),e&&e())}))}function c(){this._final!==u&&u.call(this)}d.prototype._final=u,d.prototype._transform=function(e,t,r){throw new i("_transform()")},d.prototype._write=function(e,t,r){const n=this._readableState,o=this._writableState,i=n.length;this._transform(e,t,((e,t)=>{e?r(e):(null!=t&&this.push(t),o.ended||i===n.length||n.length{const e=this._writableState;e.writing||G(this,e),q(this,e)}))}function O(e,t,r,o){const i=e._writableState;if("function"===typeof r)o=r,r=i.defaultEncoding;else{if(r){if("buffer"!==r&&!p.isEncoding(r))throw new I(r)}else r=i.defaultEncoding;"function"!==typeof o&&(o=M)}if(null===t)throw new T;if(!i.objectMode)if("string"===typeof t)!1!==i.decodeStrings&&(t=p.from(t,r),r="buffer");else if(t instanceof p)r="buffer";else{if(!h._isUint8Array(t))throw new m("chunk",["string","Buffer","Uint8Array"],t);t=h._uint8ArrayToBuffer(t),r="buffer"}let a;return i.ending?a=new k:i.destroyed&&(a=new R("write")),a?(n.nextTick(o,a),N(e,a,!0),a):(i.pendingcb++,j(e,i,t,r,o))}function j(e,t,r,n,o){const i=t.objectMode?1:r.length;t.length+=i;const a=t.lengthr.bufferedIndex&&G(e,r),o?null!==r.afterWriteTickInfo&&r.afterWriteTickInfo.cb===i?r.afterWriteTickInfo.count++:(r.afterWriteTickInfo={count:1,cb:i,stream:e,state:r},n.nextTick(F,r.afterWriteTickInfo)):U(e,r,1,i))):N(e,new v)}function F({stream:e,state:t,count:r,cb:n}){return t.afterWriteTickInfo=null,U(e,t,r,n)}function U(e,t,r,n){const o=!t.ending&&!e.destroyed&&0===t.length&&t.needDrain;o&&(t.needDrain=!1,e.emit("drain"));while(r-- >0)t.pendingcb--,n();t.destroyed&&B(t),q(e,t)}function B(e){if(e.writing)return;for(let o=e.bufferedIndex;o1&&e._writev){t.pendingcb-=a-1;const n=t.allNoop?M:e=>{for(let t=l;t256?(r.splice(0,l),t.bufferedIndex=0):t.bufferedIndex=l}t.bufferProcessing=!1}function H(e){return e.ending&&!e.destroyed&&e.constructed&&0===e.length&&!e.errored&&0===e.buffered.length&&!e.finished&&!e.writing&&!e.errorEmitted&&!e.closeEmitted}function V(e,t){let r=!1;function o(o){if(r)N(e,null!==o&&void 0!==o?o:v());else if(r=!0,t.pendingcb--,o){const r=t[D].splice(0);for(let e=0;e{H(t)?K(e,t):t.pendingcb--}),e,t)):H(t)&&(t.pendingcb++,K(e,t))))}function K(e,t){t.pendingcb--,t.finished=!0;const r=t[D].splice(0);for(let n=0;n>>0}const N=/^[0-7]+$/,M="must be a 32-bit unsigned integer or an octal string";function D(e,t,r){if("undefined"===typeof e&&(e=r),"string"===typeof e){if(null===b(N,e))throw new m(t,e,M);e=c(e,8)}return L(e,t),e}const P=_(((e,t,r=u,n=d)=>{if("number"!==typeof e)throw new g(t,"number",e);if(!l(e))throw new S(t,"an integer",e);if(en)throw new S(t,`>= ${r} && <= ${n}`,e)})),x=_(((e,t,r=-2147483648,n=2147483647)=>{if("number"!==typeof e)throw new g(t,"number",e);if(!l(e))throw new S(t,"an integer",e);if(en)throw new S(t,`>= ${r} && <= ${n}`,e)})),L=_(((e,t,r=!1)=>{if("number"!==typeof e)throw new g(t,"number",e);if(!l(e))throw new S(t,"an integer",e);const n=r?1:0,o=4294967295;if(eo)throw new S(t,`>= ${n} && <= ${o}`,e)}));function O(e,t){if("string"!==typeof e)throw new g(t,"string",e)}function j(e,t,r=void 0,n){if("number"!==typeof e)throw new g(t,"number",e);if(null!=r&&en||(null!=r||null!=n)&&s(e))throw new S(t,`${null!=r?`>= ${r}`:""}${null!=r&&null!=n?" && ":""}${null!=n?`<= ${n}`:""}`,e)}const W=_(((e,t,r)=>{if(!o(r,e)){const n=i(a(r,(e=>"string"===typeof e?`'${e}'`:h(e))),", "),o="must be one of: "+n;throw new m(t,e,o)}}));function $(e,t){if("boolean"!==typeof e)throw new g(t,"boolean",e)}function C(e,t,r){return null!=e&&f(e,t)?e[t]:r}const F=_(((e,t,r=null)=>{const o=C(r,"allowArray",!1),i=C(r,"allowFunction",!1),a=C(r,"nullable",!1);if(!a&&null===e||!o&&n(e)||"object"!==typeof e&&(!i||"function"!==typeof e))throw new g(t,"Object",e)})),U=_(((e,t)=>{if(null!=e&&"object"!==typeof e&&"function"!==typeof e)throw new g(t,"a dictionary",e)})),B=_(((e,t,r=0)=>{if(!n(e))throw new g(t,"Array",e);if(e.length{if(!A(e))throw new g(t,["Buffer","TypedArray","DataView"],e)}));function K(e,t){const r=E(t),n=e.length;if("hex"===r&&n%2!==0)throw new m("encoding",t,`is invalid for data of length ${n}`)}function z(e,t="Port",r=!0){if("number"!==typeof e&&"string"!==typeof e||"string"===typeof e&&0===y(e).length||+e!==+e>>>0||e>65535||0===e&&!r)throw new w(t,e,r);return 0|e}const X=_(((e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new g(t,"AbortSignal",e)})),J=_(((e,t)=>{if("function"!==typeof e)throw new g(t,"Function",e)})),Z=_(((e,t)=>{if("function"!==typeof e||R(e))throw new g(t,"Function",e)})),Q=_(((e,t)=>{if(void 0!==e)throw new g(t,"undefined",e)}));function ee(e,t,r){if(!o(r,e))throw new g(t,`('${i(r,"|")}')`,e)}const te=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function re(e,t){if("undefined"===typeof e||!b(te,e))throw new m(t,e,'must be an array or string of format "; rel=preload; as=style"')}function ne(e){if("string"===typeof e)return re(e,"hints"),e;if(n(e)){const t=e.length;let r="";if(0===t)return r;for(let n=0;n; rel=preload; as=style"')}e.exports={isInt32:k,isUint32:I,parseFileMode:D,validateArray:B,validateStringArray:G,validateBooleanArray:H,validateAbortSignalArray:V,validateBoolean:$,validateBuffer:q,validateDictionary:U,validateEncoding:K,validateFunction:J,validateInt32:x,validateInteger:P,validateNumber:j,validateObject:F,validateOneOf:W,validatePlainFunction:Z,validatePort:z,validateSignalName:Y,validateString:O,validateUint32:L,validateUndefined:Q,validateUnion:ee,validateAbortSignal:X,validateLinkHeaderValue:ne}},41017:function(e,t,r){"use strict";const n=r(24541),o=r(36051),i=n.Readable.destroy;e.exports=n.Readable,e.exports._uint8ArrayToBuffer=n._uint8ArrayToBuffer,e.exports._isUint8Array=n._isUint8Array,e.exports.isDisturbed=n.isDisturbed,e.exports.isErrored=n.isErrored,e.exports.isReadable=n.isReadable,e.exports.Readable=n.Readable,e.exports.Writable=n.Writable,e.exports.Duplex=n.Duplex,e.exports.Transform=n.Transform,e.exports.PassThrough=n.PassThrough,e.exports.addAbortSignal=n.addAbortSignal,e.exports.finished=n.finished,e.exports.destroy=n.destroy,e.exports.destroy=i,e.exports.pipeline=n.pipeline,e.exports.compose=n.compose,Object.defineProperty(n,"promises",{configurable:!0,enumerable:!0,get(){return o}}),e.exports.Stream=n.Stream,e.exports["default"]=e.exports},43550:function(e,t,r){"use strict";const{format:n,inspect:o,AggregateError:i}=r(55980),a=globalThis.AggregateError||i,l=Symbol("kIsNodeError"),s=["string","function","number","object","Function","Object","boolean","bigint","symbol"],d=/^([A-Z][a-z0-9]*)+$/,u="__node_internal_",c={};function f(e,t){if(!e)throw new c.ERR_INTERNAL_ASSERTION(t)}function b(e){let t="",r=e.length;const n="-"===e[0]?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function h(e,t,r){if("function"===typeof t)return f(t.length<=r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${t.length}).`),t(...r);const o=(t.match(/%[dfijoOs]/g)||[]).length;return f(o===r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${o}).`),0===r.length?t:n(t,...r)}function p(e,t,r){r||(r=Error);class n extends r{constructor(...r){super(h(e,t,r))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(n.prototype,{name:{value:r.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),n.prototype.code=e,n.prototype[l]=!0,c[e]=n}function y(e){const t=u+e.name;return Object.defineProperty(e,"name",{value:t}),e}function _(e,t){if(e&&t&&e!==t){if(Array.isArray(t.errors))return t.errors.push(e),t;const r=new a([t,e],t.message);return r.code=t.code,r}return e||t}class w extends Error{constructor(e="The operation was aborted",t=void 0){if(void 0!==t&&"object"!==typeof t)throw new c.ERR_INVALID_ARG_TYPE("options","Object",t);super(e,t),this.code="ABORT_ERR",this.name="AbortError"}}p("ERR_ASSERTION","%s",Error),p("ERR_INVALID_ARG_TYPE",((e,t,r)=>{f("string"===typeof e,"'name' must be a string"),Array.isArray(t)||(t=[t]);let n="The ";e.endsWith(" argument")?n+=`${e} `:n+=`"${e}" ${e.includes(".")?"property":"argument"} `,n+="must be ";const i=[],a=[],l=[];for(const o of t)f("string"===typeof o,"All expected entries have to be of type string"),s.includes(o)?i.push(o.toLowerCase()):d.test(o)?a.push(o):(f("object"!==o,'The value "object" should be written as "Object"'),l.push(o));if(a.length>0){const e=i.indexOf("object");-1!==e&&(i.splice(i,e,1),a.push("Object"))}if(i.length>0){switch(i.length){case 1:n+=`of type ${i[0]}`;break;case 2:n+=`one of type ${i[0]} or ${i[1]}`;break;default:{const e=i.pop();n+=`one of type ${i.join(", ")}, or ${e}`}}(a.length>0||l.length>0)&&(n+=" or ")}if(a.length>0){switch(a.length){case 1:n+=`an instance of ${a[0]}`;break;case 2:n+=`an instance of ${a[0]} or ${a[1]}`;break;default:{const e=a.pop();n+=`an instance of ${a.join(", ")}, or ${e}`}}l.length>0&&(n+=" or ")}switch(l.length){case 0:break;case 1:l[0].toLowerCase()!==l[0]&&(n+="an "),n+=`${l[0]}`;break;case 2:n+=`one of ${l[0]} or ${l[1]}`;break;default:{const e=l.pop();n+=`one of ${l.join(", ")}, or ${e}`}}if(null==r)n+=`. Received ${r}`;else if("function"===typeof r&&r.name)n+=`. Received function ${r.name}`;else if("object"===typeof r){var u;if(null!==(u=r.constructor)&&void 0!==u&&u.name)n+=`. Received an instance of ${r.constructor.name}`;else{const e=o(r,{depth:-1});n+=`. Received ${e}`}}else{let e=o(r,{colors:!1});e.length>25&&(e=`${e.slice(0,25)}...`),n+=`. Received type ${typeof r} (${e})`}return n}),TypeError),p("ERR_INVALID_ARG_VALUE",((e,t,r="is invalid")=>{let n=o(t);n.length>128&&(n=n.slice(0,128)+"...");const i=e.includes(".")?"property":"argument";return`The ${i} '${e}' ${r}. Received ${n}`}),TypeError),p("ERR_INVALID_RETURN_VALUE",((e,t,r)=>{var n;const o=null!==r&&void 0!==r&&null!==(n=r.constructor)&&void 0!==n&&n.name?`instance of ${r.constructor.name}`:"type "+typeof r;return`Expected ${e} to be returned from the "${t}" function but got ${o}.`}),TypeError),p("ERR_MISSING_ARGS",((...e)=>{let t;f(e.length>0,"At least one arg needs to be specified");const r=e.length;switch(e=(Array.isArray(e)?e:[e]).map((e=>`"${e}"`)).join(" or "),r){case 1:t+=`The ${e[0]} argument`;break;case 2:t+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const r=e.pop();t+=`The ${e.join(", ")}, and ${r} arguments`}break}return`${t} must be specified`}),TypeError),p("ERR_OUT_OF_RANGE",((e,t,r)=>{let n;return f(t,'Missing "range" argument'),Number.isInteger(r)&&Math.abs(r)>2**32?n=b(String(r)):"bigint"===typeof r?(n=String(r),(r>2n**32n||r<-(2n**32n))&&(n=b(n)),n+="n"):n=o(r),`The value of "${e}" is out of range. It must be ${t}. Received ${n}`}),RangeError),p("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),p("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),p("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),p("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),p("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),p("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),p("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),p("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),p("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),p("ERR_STREAM_WRITE_AFTER_END","write after end",Error),p("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:w,aggregateTwoErrors:y(_),hideStackFrames:y,codes:c}},30671:function(e){"use strict";e.exports={ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,t){return e.includes(t)},ArrayPrototypeIndexOf(e,t){return e.indexOf(t)},ArrayPrototypeJoin(e,t){return e.join(t)},ArrayPrototypeMap(e,t){return e.map(t)},ArrayPrototypePop(e,t){return e.pop(t)},ArrayPrototypePush(e,t){return e.push(t)},ArrayPrototypeSlice(e,t,r){return e.slice(t,r)},Error:Error,FunctionPrototypeCall(e,t,...r){return e.call(t,...r)},FunctionPrototypeSymbolHasInstance(e,t){return Function.prototype[Symbol.hasInstance].call(e,t)},MathFloor:Math.floor,Number:Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(e,t){return Object.defineProperties(e,t)},ObjectDefineProperty(e,t,r){return Object.defineProperty(e,t,r)},ObjectGetOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,t){return Object.setPrototypeOf(e,t)},Promise:Promise,PromisePrototypeCatch(e,t){return e.catch(t)},PromisePrototypeThen(e,t,r){return e.then(t,r)},PromiseReject(e){return Promise.reject(e)},PromiseResolve(e){return Promise.resolve(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,t){return e.test(t)},SafeSet:Set,String:String,StringPrototypeSlice(e,t,r){return e.slice(t,r)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol:Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,SymbolDispose:Symbol.dispose||Symbol("Symbol.dispose"),SymbolAsyncDispose:Symbol.asyncDispose||Symbol("Symbol.asyncDispose"),TypedArrayPrototypeSet(e,t,r){return e.set(t,r)},Boolean:Boolean,Uint8Array:Uint8Array}},55980:function(e,t,r){"use strict";const n=r(48764),{kResistStopPropagation:o,SymbolDispose:i}=r(30671),a=globalThis.AbortSignal||r(28599).AbortSignal,l=globalThis.AbortController||r(28599).AbortController,s=Object.getPrototypeOf((async function(){})).constructor,d=globalThis.Blob||n.Blob,u="undefined"!==typeof d?function(e){return e instanceof d}:function(e){return!1},c=(e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new ERR_INVALID_ARG_TYPE(t,"AbortSignal",e)},f=(e,t)=>{if("function"!==typeof e)throw new ERR_INVALID_ARG_TYPE(t,"Function",e)};class b extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t="";for(let r=0;r{e=r,t=n}));return{promise:r,resolve:e,reject:t}},promisify(e){return new Promise(((t,r)=>{e(((e,...n)=>e?r(e):t(...n)))}))},debuglog(){return function(){}},format(e,...t){return e.replace(/%([sdifj])/g,(function(...[e,r]){const n=t.shift();if("f"===r)return n.toFixed(6);if("j"===r)return JSON.stringify(n);if("s"===r&&"object"===typeof n){const e=n.constructor!==Object?n.constructor.name:"";return`${e} {}`.trim()}return n.toString()}))},inspect(e){switch(typeof e){case"string":if(e.includes("'")){if(!e.includes('"'))return`"${e}"`;if(!e.includes("`")&&!e.includes("${"))return`\`${e}\``}return`'${e}'`;case"number":return isNaN(e)?"NaN":Object.is(e,-0)?String(e):e;case"bigint":return`${String(e)}n`;case"boolean":case"undefined":return String(e);case"object":return"{}"}},types:{isAsyncFunction(e){return e instanceof s},isArrayBufferView(e){return ArrayBuffer.isView(e)}},isBlob:u,deprecate(e,t){return e},addAbortListener:r(17187).addAbortListener||function(e,t){if(void 0===e)throw new ERR_INVALID_ARG_TYPE("signal","AbortSignal",e);let r;return c(e,"signal"),f(t,"listener"),e.aborted?queueMicrotask((()=>t())):(e.addEventListener("abort",t,{__proto__:null,once:!0,[o]:!0}),r=()=>{e.removeEventListener("abort",t)}),{__proto__:null,[i](){var e;null===(e=r)||void 0===e||e()}}},AbortSignalAny:a.any||function(e){if(1===e.length)return e[0];const t=new l,r=()=>t.abort();return e.forEach((e=>{c(e,"signals"),e.addEventListener("abort",r,{once:!0})})),t.signal.addEventListener("abort",(()=>{e.forEach((e=>e.removeEventListener("abort",r)))}),{once:!0}),t.signal}},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},24541:function(e,t,r){const{Buffer:n}=r(48764),{ObjectDefineProperty:o,ObjectKeys:i,ReflectApply:a}=r(30671),{promisify:{custom:l}}=r(55980),{streamReturningOperators:s,promiseReturningOperators:d}=r(73293),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=r(43550),c=r(70342),{setDefaultHighWaterMark:f,getDefaultHighWaterMark:b}=r(80310),{pipeline:h}=r(41165),{destroyer:p}=r(7702),y=r(34131),_=r(36051),w=r(13394),g=e.exports=r(1850).Stream;g.isDestroyed=w.isDestroyed,g.isDisturbed=w.isDisturbed,g.isErrored=w.isErrored,g.isReadable=w.isReadable,g.isWritable=w.isWritable,g.Readable=r(17862);for(const v of i(s)){const E=s[v];function m(...e){if(new.target)throw u();return g.Readable.from(a(E,this,e))}o(m,"name",{__proto__:null,value:E.name}),o(m,"length",{__proto__:null,value:E.length}),o(g.Readable.prototype,v,{__proto__:null,value:m,enumerable:!1,configurable:!0,writable:!0})}for(const R of i(d)){const A=d[R];function m(...e){if(new.target)throw u();return a(A,this,e)}o(m,"name",{__proto__:null,value:A.name}),o(m,"length",{__proto__:null,value:A.length}),o(g.Readable.prototype,R,{__proto__:null,value:m,enumerable:!1,configurable:!0,writable:!0})}g.Writable=r(15929),g.Duplex=r(23234),g.Transform=r(91380),g.PassThrough=r(86133),g.pipeline=h;const{addAbortSignal:S}=r(16298);g.addAbortSignal=S,g.finished=y,g.destroy=p,g.compose=c,g.setDefaultHighWaterMark=f,g.getDefaultHighWaterMark=b,o(g,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return _}}),o(h,l,{__proto__:null,enumerable:!0,get(){return _.pipeline}}),o(y,l,{__proto__:null,enumerable:!0,get(){return _.finished}}),g.Stream=g,g._isUint8Array=function(e){return e instanceof Uint8Array},g._uint8ArrayToBuffer=function(e){return n.from(e.buffer,e.byteOffset,e.byteLength)}},36051:function(e,t,r){"use strict";const{ArrayPrototypePop:n,Promise:o}=r(30671),{isIterable:i,isNodeStream:a,isWebStream:l}=r(13394),{pipelineImpl:s}=r(41165),{finished:d}=r(34131);function u(...e){return new o(((t,r)=>{let o,d;const u=e[e.length-1];if(u&&"object"===typeof u&&!a(u)&&!i(u)&&!l(u)){const t=n(e);o=t.signal,d=t.end}s(e,((e,n)=>{e?r(e):t(n)}),{signal:o,end:d})}))}r(24541),e.exports={finished:d,pipeline:u}},85249:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return M}});var n=r(90540);function o(e){return"_:"+e.value}var i=o;function a(e,t){return[...e].map((e=>t(e))).join("\n")+"\n"}var l=a;function s(){return""}var d=s;function u(e){return"<"+e.value+">"}var c=u;const f=/["\\\\\n\r]/,b=/["\\\\\n\r]/g,h={'"':'\\"',"\\":"\\\\","\n":"\\n","\r":"\\r"};function p(e){return h[e]}function y(e){return f.test(e)?e.replace(b,p):e}function _(e){const t=y(e.value);return"http://www.w3.org/2001/XMLSchema#string"===e.datatype.value?'"'+t+'"':"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"===e.datatype.value?'"'+t+'"@'+e.language:'"'+t+'"^^'+c(e.datatype)}var w=_;function g(e,t){const r=t(e.subject),n=t(e.predicate),o=t(e.object),i=t(e.graph);return`${r} ${n} ${o} ${i?i+" ":""}.`}var m=g;function S(e){return"?"+e.value}var v=S;function E(e){if(!e)return null;if("BlankNode"===e.termType)return i(e);if("DefaultGraph"===e.termType)return d();if("Literal"===e.termType)return w(e);if("NamedNode"===e.termType)return c(e);if("Quad"===e.termType||e.subject&&e.predicate&&e.object&&e.graph)return m(e,E);if("Variable"===e.termType)return v(e);if(e[Symbol.iterator])return l(e,E);throw new Error(`unknown termType ${e.termType}`)}var R=E,A=r(54350),T=r(41017);class k{constructor(e){const t=new T.Transform({objectMode:!0,transform:(e,t,r)=>{r(null,`${R(e)}\n`)}});return e.pipe(t),(0,A.Z)(t)}}var I=k;class N extends n.Z{constructor(){super(I)}}var M=N}}]); +//# sourceMappingURL=249.6097629f.js.map \ No newline at end of file diff --git a/js/249.6097629f.js.map b/js/249.6097629f.js.map new file mode 100644 index 0000000..4ac5304 --- /dev/null +++ b/js/249.6097629f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/249.6097629f.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/compose.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/from.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/operators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/readable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/state.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/transform.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/utils.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/streams/writable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/internal/validators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/ours/browser.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/ours/errors.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/ours/primordials.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/ours/util.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/readable-stream/lib/stream/promises.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/@rdfjs/to-ntriples/lib/blankNode.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/@rdfjs/to-ntriples/lib/dataset.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/@rdfjs/to-ntriples/lib/defaultGraph.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/@rdfjs/to-ntriples/lib/namedNode.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/@rdfjs/to-ntriples/lib/literal.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/@rdfjs/to-ntriples/lib/quad.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/@rdfjs/to-ntriples/lib/variable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/node_modules/@rdfjs/to-ntriples/index.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/lib/SerializerStream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-ntriples/index.js"],"sourcesContent":["'use strict'\n\nconst { SymbolDispose } = require('../../ours/primordials')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\nlet addAbortListener\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(signal, onAbort)\n eos(stream, disposable[SymbolDispose])\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.readableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kIsDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream,\n isReadableStream,\n isWritableStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n if (isReadableStream(body)) {\n return _duplexify({\n readable: Readable.fromWeb(body)\n })\n }\n if (isWritableStream(body)) {\n return _duplexify({\n writable: Writable.fromWeb(body)\n })\n }\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n if (\n isReadableStream(body === null || body === undefined ? undefined : body.readable) &&\n isWritableStream(body === null || body === undefined ? undefined : body.writable)\n ) {\n return Duplexify.fromWeb(body)\n }\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen, SymbolDispose } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nlet addAbortListener\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst kResistStopPropagation = require('../../ours/primordials').Symbol('kResistStopPropagation')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst { deprecate } = require('../../ours/util')\nconst {\n ArrayPrototypePush,\n Boolean,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromiseResolve,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n let highWaterMark = concurrency - 1\n if ((options === null || options === undefined ? undefined : options.highWaterMark) != null) {\n highWaterMark = MathFloor(options.highWaterMark)\n }\n validateInteger(concurrency, 'options.concurrency', 1)\n validateInteger(highWaterMark, 'options.highWaterMark', 0)\n highWaterMark += concurrency\n return async function* map() {\n const signal = require('../../ours/util').AbortSignalAny(\n [options === null || options === undefined ? undefined : options.signal].filter(Boolean)\n )\n const stream = this\n const queue = []\n const signalOpt = {\n signal\n }\n let next\n let resume\n let done = false\n let cnt = 0\n function onCatch() {\n done = true\n afterItemProcessed()\n }\n function afterItemProcessed() {\n cnt -= 1\n maybeResume()\n }\n function maybeResume() {\n if (resume && !done && cnt < concurrency && queue.length < highWaterMark) {\n resume()\n resume = null\n }\n }\n async function pump() {\n try {\n for await (let val of stream) {\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n if (val === kEmpty) {\n continue\n }\n val = PromiseResolve(val)\n } catch (err) {\n val = PromiseReject(err)\n }\n cnt += 1\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && (queue.length >= highWaterMark || cnt >= concurrency)) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n } finally {\n done = true\n if (next) {\n next()\n next = null\n }\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n maybeResume()\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal2\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal2 = options.signal) !== null &&\n _options$signal2 !== undefined &&\n _options$signal2.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this,\n [kResistStopPropagation]: true\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal3\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal3 = options.signal) !== null &&\n _options$signal3 !== undefined &&\n _options$signal3.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal5\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal6\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n }\n\n // Don't get another item from iterator in case we reached the end\n if (number <= 0) {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs: deprecate(asIndexedPairs, 'readable.asIndexedPairs will be removed in a future version.'),\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator, SymbolDispose } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableFinished\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nlet addAbortListener\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n await wait()\n }\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n let disposable\n if (outerSignal) {\n disposable = addAbortListener(outerSignal, abort)\n }\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n var _disposable\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n ;(_disposable = disposable) === null || _disposable === undefined ? undefined : _disposable[SymbolDispose]()\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableFinished(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncDispose,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nconst kObjectMode = 1 << 0\nconst kEnded = 1 << 1\nconst kEndEmitted = 1 << 2\nconst kReading = 1 << 3\nconst kConstructed = 1 << 4\nconst kSync = 1 << 5\nconst kNeedReadable = 1 << 6\nconst kEmittedReadable = 1 << 7\nconst kReadableListening = 1 << 8\nconst kResumeScheduled = 1 << 9\nconst kErrorEmitted = 1 << 10\nconst kEmitClose = 1 << 11\nconst kAutoDestroy = 1 << 12\nconst kDestroyed = 1 << 13\nconst kClosed = 1 << 14\nconst kCloseEmitted = 1 << 15\nconst kMultiAwaitDrain = 1 << 16\nconst kReadingMore = 1 << 17\nconst kDataEmitted = 1 << 18\n\n// TODO(benjamingr) it is likely slower to do it this way than with free functions\nfunction makeBitMapDescriptor(bit) {\n return {\n enumerable: false,\n get() {\n return (this.state & bit) !== 0\n },\n set(value) {\n if (value) this.state |= bit\n else this.state &= ~bit\n }\n }\n}\nObjectDefineProperties(ReadableState.prototype, {\n objectMode: makeBitMapDescriptor(kObjectMode),\n ended: makeBitMapDescriptor(kEnded),\n endEmitted: makeBitMapDescriptor(kEndEmitted),\n reading: makeBitMapDescriptor(kReading),\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n constructed: makeBitMapDescriptor(kConstructed),\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n sync: makeBitMapDescriptor(kSync),\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n needReadable: makeBitMapDescriptor(kNeedReadable),\n emittedReadable: makeBitMapDescriptor(kEmittedReadable),\n readableListening: makeBitMapDescriptor(kReadableListening),\n resumeScheduled: makeBitMapDescriptor(kResumeScheduled),\n // True if the error was already emitted and should not be thrown again.\n errorEmitted: makeBitMapDescriptor(kErrorEmitted),\n emitClose: makeBitMapDescriptor(kEmitClose),\n autoDestroy: makeBitMapDescriptor(kAutoDestroy),\n // Has it been destroyed.\n destroyed: makeBitMapDescriptor(kDestroyed),\n // Indicates whether the stream has finished destroying.\n closed: makeBitMapDescriptor(kClosed),\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n closeEmitted: makeBitMapDescriptor(kCloseEmitted),\n multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain),\n // If true, a maybeReadMore has been scheduled.\n readingMore: makeBitMapDescriptor(kReadingMore),\n dataEmitted: makeBitMapDescriptor(kDataEmitted)\n})\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Bit map field to store ReadableState more effciently with 1 bit per field\n // instead of a V8 slot per field.\n this.state = kEmitClose | kAutoDestroy | kConstructed | kSync\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n if (options && options.objectMode) this.state |= kObjectMode\n if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this[kPaused] = null\n\n // Should close be emitted on destroy. Defaults to true.\n if (options && options.emitClose === false) this.state &= ~kEmitClose\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nReadable.prototype[SymbolAsyncDispose] = function () {\n let error\n if (!this.destroyed) {\n error = this.readableEnded ? null : new AbortError()\n this.destroy(error)\n }\n return new Promise((resolve, reject) => eos(this, (err) => (err && err !== error ? reject(err) : resolve(null))))\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if ((state.state & kObjectMode) === 0) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.state &= ~kReading\n onEofChunk(stream, state)\n } else if ((state.state & kObjectMode) !== 0 || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.state &= ~kReading\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.state &= ~kReading\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if ((state.state & kMultiAwaitDrain) !== 0) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if ((state.state & kNeedReadable) !== 0) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if ((state.state & kObjectMode) !== 0) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.state &= ~kEmittedReadable\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = (state.state & kNeedReadable) !== 0\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.state |= kReading | kSync\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.state |= kNeedReadable\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.state &= ~kSync\n\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n pause()\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { validateInteger } = require('../validators')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nlet defaultHighWaterMarkBytes = 16 * 1024\nlet defaultHighWaterMarkObjectMode = 16\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? defaultHighWaterMarkObjectMode : defaultHighWaterMarkBytes\n}\nfunction setDefaultHighWaterMark(objectMode, value) {\n validateInteger(value, 'value', 0)\n if (objectMode) {\n defaultHighWaterMarkObjectMode = value\n } else {\n defaultHighWaterMarkBytes = value\n }\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark,\n setDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\n\n// We need to use SymbolFor to make these globally available\n// for interopt with readable-stream, i.e. readable-stream\n// and node core needs to be able to read/write private state\n// from each other for proper interoperability.\nconst kIsDestroyed = SymbolFor('nodejs.stream.destroyed')\nconst kIsErrored = SymbolFor('nodejs.stream.errored')\nconst kIsReadable = SymbolFor('nodejs.stream.readable')\nconst kIsWritable = SymbolFor('nodejs.stream.writable')\nconst kIsDisturbed = SymbolFor('nodejs.stream.disturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kIsDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (stream && stream[kIsWritable] != null) return stream[kIsWritable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n isDestroyed,\n kIsDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n kIsWritable,\n isClosed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateAbortSignalArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is AbortSignal[]}\n */\n\n/** @type {validateAbortSignalArray} */\nfunction validateAbortSignalArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n const signal = value[i]\n const indexedName = `${name}[${i}]`\n if (signal == null) {\n throw new ERR_INVALID_ARG_TYPE(indexedName, 'AbortSignal', signal)\n }\n validateAbortSignal(signal, indexedName)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateAbortSignalArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n PromiseResolve(val) {\n return Promise.resolve(val)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n SymbolDispose: Symbol.dispose || Symbol('Symbol.dispose'),\n SymbolAsyncDispose: Symbol.asyncDispose || Symbol('Symbol.asyncDispose'),\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Boolean: Boolean,\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst { kResistStopPropagation, SymbolDispose } = require('./primordials')\nconst AbortSignal = globalThis.AbortSignal || require('abort-controller').AbortSignal\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\nconst validateAbortSignal = (signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nconst validateFunction = (value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n}\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob,\n deprecate(fn, message) {\n return fn\n },\n addAbortListener:\n require('events').addAbortListener ||\n function addAbortListener(signal, listener) {\n if (signal === undefined) {\n throw new ERR_INVALID_ARG_TYPE('signal', 'AbortSignal', signal)\n }\n validateAbortSignal(signal, 'signal')\n validateFunction(listener, 'listener')\n let removeEventListener\n if (signal.aborted) {\n queueMicrotask(() => listener())\n } else {\n signal.addEventListener('abort', listener, {\n __proto__: null,\n once: true,\n [kResistStopPropagation]: true\n })\n removeEventListener = () => {\n signal.removeEventListener('abort', listener)\n }\n }\n return {\n __proto__: null,\n [SymbolDispose]() {\n var _removeEventListener\n ;(_removeEventListener = removeEventListener) === null || _removeEventListener === undefined\n ? undefined\n : _removeEventListener()\n }\n }\n },\n AbortSignalAny:\n AbortSignal.any ||\n function AbortSignalAny(signals) {\n // Fast path if there is only one signal.\n if (signals.length === 1) {\n return signals[0]\n }\n const ac = new AbortController()\n const abort = () => ac.abort()\n signals.forEach((signal) => {\n validateAbortSignal(signal, 'signals')\n signal.addEventListener('abort', abort, {\n once: true\n })\n })\n ac.signal.addEventListener(\n 'abort',\n () => {\n signals.forEach((signal) => signal.removeEventListener('abort', abort))\n },\n {\n once: true\n }\n )\n return ac.signal\n }\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { setDefaultHighWaterMark, getDefaultHighWaterMark } = require('./internal/streams/state')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDestroyed = utils.isDestroyed\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.isWritable = utils.isWritable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nStream.setDefaultHighWaterMark = setDefaultHighWaterMark\nStream.getDefaultHighWaterMark = getDefaultHighWaterMark\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('../../lib/stream.js')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","function blankNode (blankNode) {\n return '_:' + blankNode.value // TODO: escape special chars\n}\n\nexport default blankNode\n","function dataset (dataset, toNT) {\n return [...dataset].map(quad => toNT(quad)).join('\\n') + '\\n'\n}\n\nexport default dataset\n","function defaultGraph () {\n return ''\n}\n\nexport default defaultGraph\n","function namedNode (namedNode) {\n return '<' + namedNode.value + '>'\n}\n\nexport default namedNode\n","import namedNode from './namedNode.js'\n\nconst echarRegEx = /[\"\\\\\\\\\\n\\r]/\nconst echarRegExAll = /[\"\\\\\\\\\\n\\r]/g\n\nconst echarReplacement = {\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\n': '\\\\n',\n '\\r': '\\\\r'\n}\n\nfunction echarReplacer (char) {\n return echarReplacement[char]\n}\n\nfunction escapeValue (value) {\n if (echarRegEx.test(value)) {\n return value.replace(echarRegExAll, echarReplacer)\n }\n\n return value\n}\n\nfunction literal (literal) {\n const escapedValue = escapeValue(literal.value)\n\n if (literal.datatype.value === 'http://www.w3.org/2001/XMLSchema#string') {\n return '\"' + escapedValue + '\"'\n }\n\n if (literal.datatype.value === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString') {\n return '\"' + escapedValue + '\"@' + literal.language\n }\n\n return '\"' + escapedValue + '\"^^' + namedNode(literal.datatype)\n}\n\nexport default literal\n","function quad (quad, toNT) {\n const subjectString = toNT(quad.subject)\n const predicateString = toNT(quad.predicate)\n const objectString = toNT(quad.object)\n const graphString = toNT(quad.graph)\n\n return `${subjectString} ${predicateString} ${objectString} ${graphString ? graphString + ' ' : ''}.`\n}\n\nexport default quad\n","function variable (variable) {\n return '?' + variable.value\n}\n\nexport default variable\n","import blankNode from './lib/blankNode.js'\nimport dataset from './lib/dataset.js'\nimport defaultGraph from './lib/defaultGraph.js'\nimport literal from './lib/literal.js'\nimport namedNode from './lib/namedNode.js'\nimport quad from './lib/quad.js'\nimport variable from './lib/variable.js'\n\nfunction toNT (term) {\n if (!term) {\n return null\n }\n\n if (term.termType === 'BlankNode') {\n return blankNode(term)\n }\n\n if (term.termType === 'DefaultGraph') {\n return defaultGraph()\n }\n\n if (term.termType === 'Literal') {\n return literal(term)\n }\n\n if (term.termType === 'NamedNode') {\n return namedNode(term)\n }\n\n // legacy quad support without .termType\n if (term.termType === 'Quad' || (term.subject && term.predicate && term.object && term.graph)) {\n return quad(term, toNT)\n }\n\n if (term.termType === 'Variable') {\n return variable(term)\n }\n\n if (term[Symbol.iterator]) {\n return dataset(term, toNT)\n }\n\n throw new Error(`unknown termType ${term.termType}`)\n}\n\nexport default toNT\n","import toNT from '@rdfjs/to-ntriples'\nimport toReadable from 'duplex-to/readable.js'\nimport { Transform } from 'readable-stream'\n\nclass SerializerStream {\n constructor (input) {\n const stream = new Transform({\n objectMode: true,\n transform: (quad, encoding, callback) => {\n callback(null, `${toNT(quad)}\\n`)\n }\n })\n\n input.pipe(stream)\n\n return toReadable(stream)\n }\n}\n\nexport default SerializerStream\n","import Sink from '@rdfjs/sink'\nimport SerializerStream from './lib/SerializerStream.js'\n\nclass Serializer extends Sink {\n constructor () {\n super(SerializerStream)\n }\n}\n\nexport default Serializer\n"],"names":["SymbolDispose","AbortError","codes","isNodeStream","isWebStream","kControllerErrorFunction","eos","ERR_INVALID_ARG_TYPE","addAbortListener","validateAbortSignal","signal","name","module","exports","addAbortSignal","stream","addAbortSignalNoValidate","onAbort","destroy","undefined","cause","reason","aborted","disposable","StringPrototypeSlice","SymbolIterator","TypedArrayPrototypeSet","Uint8Array","Buffer","inspect","constructor","this","head","tail","length","push","v","entry","data","next","unshift","shift","ret","clear","join","s","p","concat","n","alloc","allocUnsafe","i","consume","hasStrings","slice","_getString","_getBuffer","first","c","str","retLen","buf","buffer","byteOffset","Symbol","for","_","options","depth","customInspect","pipeline","Duplex","destroyer","isReadable","isWritable","isTransformStream","isWritableStream","isReadableStream","ERR_INVALID_ARG_VALUE","ERR_MISSING_ARGS","streams","from","orgStreams","idx","ondrain","onfinish","onreadable","onclose","d","onfinished","err","cb","readable","writable","writableObjectMode","readableObjectMode","_write","chunk","encoding","callback","write","_final","end","on","writer","getWriter","async","ready","catch","close","toRead","_read","read","reader","getReader","value","done","_destroy","process","aggregateTwoErrors","ERR_MULTIPLE_CALLBACK","kIsDestroyed","isDestroyed","isFinished","isServerRequest","kDestroy","kConstruct","checkError","w","r","stack","errored","_readableState","_writableState","destroyed","constructed","once","er","self","called","onDestroy","closed","nextTick","emitErrorCloseNT","emitCloseNT","emitErrorNT","closeEmitted","emitClose","emit","errorEmitted","undestroy","reading","ended","endEmitted","finalCalled","prefinished","ending","finished","errorOrDestroy","sync","autoDestroy","construct","_construct","listenerCount","constructNT","onConstruct","emitConstructNT","isRequest","setHeader","abort","emitCloseLegacy","emitErrorCloseLegacy","socket","req","ObjectDefineProperties","ObjectGetOwnPropertyDescriptor","ObjectKeys","ObjectSetPrototypeOf","Readable","Writable","prototype","keys","method","call","allowHalfOpen","webStreamsAdapters","duplexify","lazyWebStreams","__proto__","writableHighWaterMark","writableBuffer","writableLength","writableFinished","writableCorked","writableEnded","writableNeedDrain","get","set","fromWeb","pair","newStreamDuplexFromReadableWritablePair","toWeb","duplex","newReadableWritablePairFromDuplex","body","bufferModule","isIterable","isReadableNodeStream","isWritableNodeStream","isDuplexNodeStream","ERR_INVALID_RETURN_VALUE","createDeferredPromise","Blob","globalThis","isBlob","b","AbortController","FunctionPrototypeCall","Duplexify","super","fromAsyncGen","fn","promise","resolve","ac","_promise","_resolve","final","_duplexify","wrap","objectMode","then","val","arrayBuffer","ERR_STREAM_PREMATURE_CLOSE","kEmptyObject","validateFunction","validateObject","validateBoolean","Promise","PromisePrototypeThen","isClosed","isReadableFinished","isReadableErrored","isWritableFinished","isWritableErrored","willEmitClose","_willEmitClose","kIsClosedPromise","nop","_options$readable","_options$writable","arguments","eosWeb","wState","rState","onlegacyfinish","readableFinished","onend","onerror","onclosed","onrequest","error","cleanup","removeListener","endCallback","originalCallback","args","apply","isAborted","resolverFn","opts","_opts","autoCleanup","reject","SymbolAsyncIterator","ERR_STREAM_NULL_VALUES","iterable","iterator","isAsync","highWaterMark","hadError","hasThrow","throw","return","res","e","ArrayIsArray","EventEmitter","EE","Stream","prependListener","emitter","event","_events","pipe","dest","source","ondata","pause","resume","_isStdio","didOnEnd","ERR_OUT_OF_RANGE","validateInteger","kWeakHandler","kResistStopPropagation","staticCompose","deprecate","ArrayPrototypePush","Boolean","MathFloor","Number","NumberIsNaN","PromiseReject","PromiseResolve","kEmpty","kEof","compose","composedStream","map","concurrency","filter","queue","signalOpt","cnt","onCatch","afterItemProcessed","maybeResume","pump","asIndexedPairs","index","_options$signal","some","unused","every","find","result","forEach","forEachFn","filterFn","ReduceAwareErrMissingArgs","message","reduce","reducer","initialValue","_options$signal2","hasInitialValue","addEventListener","gotAnyItemFromStream","_options$signal3","toArray","_options$signal4","flatMap","values","toIntegerOrInfinity","number","drop","_options$signal5","_options$signal6","take","_options$signal7","_options$signal8","streamReturningOperators","promiseReturningOperators","PassThrough","Transform","_transform","destroyImpl","ERR_STREAM_DESTROYED","writing","popCallback","pop","makeAsyncIterable","fromReadable","pumpToNode","finish","onresolve","wait","off","pumpToWeb","pipelineImpl","outerSignal","lastStreamCleanup","finishImpl","destroys","finishCount","_disposable","code","isLastStream","onError","_ret","_ret2","pt","src","dst","endFn","ArrayPrototypeIndexOf","NumberIsInteger","NumberParseInt","SafeSet","SymbolAsyncDispose","ReadableState","debug","BufferList","getHighWaterMark","getDefaultHighWaterMark","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kPaused","StringDecoder","kObjectMode","kEnded","kEndEmitted","kReading","kConstructed","kSync","kNeedReadable","kEmittedReadable","kReadableListening","kResumeScheduled","kErrorEmitted","kEmitClose","kAutoDestroy","kDestroyed","kClosed","kCloseEmitted","kMultiAwaitDrain","kReadingMore","kDataEmitted","makeBitMapDescriptor","bit","enumerable","state","isDuplex","pipes","flowing","defaultEncoding","awaitDrainWriters","decoder","needReadable","maybeReadMore","readableAddChunk","addToFront","toString","_isUint8Array","_uint8ArrayToBuffer","onEofChunk","addChunk","dataEmitted","emitReadable","emittedReadable","readableListening","resumeScheduled","multiAwaitDrain","readingMore","_undestroy","captureRejectionSymbol","readableEnded","isPaused","setEncoding","enc","content","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","len","pipeOnDrain","size","delete","updateReadableListening","nReadingNextTick","resume_","streamToAsyncIterator","iter","createAsyncIterator","destroyOnReturn","fromList","endReadable","endReadableNT","endWritableNT","NaN","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanedUp","needDrain","includes","add","dests","splice","ev","addListener","removeAllListeners","paused","streamKeys","j","bind","readableDidRead","readableAborted","readableHighWaterMark","readableBuffer","readableFlowing","readableLength","readableEncoding","pipesCount","_fromList","readableStream","newStreamReadableFromReadableStream","streamReadable","newReadableStreamFromStreamReadable","_ref","_src$readableObjectMo","defaultHighWaterMarkBytes","defaultHighWaterMarkObjectMode","highWaterMarkFrom","duplexKey","setDefaultHighWaterMark","hwm","kCallback","transform","flush","_flush","prefinish","SymbolFor","kIsErrored","kIsReadable","kIsWritable","kIsDisturbed","obj","strict","_obj$_readableState","_obj$_writableState","pipeThrough","cancel","isWritableEnded","isReadableEnded","_stream$_writableStat","_stream$_writableStat2","writableErrored","_stream$_readableStat","_stream$_readableStat2","readableErrored","_closed","isOutgoingMessage","_defaultKeepAlive","_removedConnection","_removedContLen","isServerResponse","_sent100","_stream$req","_consuming","_dumped","upgradeOrConnect","isDisturbed","_stream$kIsDisturbed","isErrored","_ref2","_ref3","_ref4","_ref5","_stream$kIsErrored","_stream$_readableStat3","_stream$_writableStat3","_stream$_readableStat4","_stream$_writableStat4","ArrayPrototypeSlice","Error","FunctionPrototypeSymbolHasInstance","ObjectDefineProperty","StringPrototypeToLowerCase","SymbolHasInstance","WritableState","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_ALREADY_FINISHED","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","kOnFinished","noDecode","decodeStrings","corked","bufferProcessing","onwrite","writecb","writelen","afterWriteTickInfo","resetBuffer","pendingcb","buffered","bufferedIndex","allBuffers","allNoop","writev","_writev","clearBuffer","finishMaybe","isEncoding","writeOrBuffer","doWrite","onwriteError","errorBuffer","count","afterWriteTick","afterWrite","_state$errored","onfinishCallbacks","_state$errored2","bufferedLength","chunks","needFinish","callFinal","onFinish","getBuffer","object","cork","uncork","setDefaultEncoding","writableAborted","writableStream","newStreamWritableFromWritableStream","streamWritable","newWritableStreamFromStreamWritable","ArrayPrototypeIncludes","ArrayPrototypeJoin","ArrayPrototypeMap","NumberMAX_SAFE_INTEGER","NumberMIN_SAFE_INTEGER","ObjectPrototypeHasOwnProperty","RegExpPrototypeExec","String","StringPrototypeToUpperCase","StringPrototypeTrim","hideStackFrames","ERR_SOCKET_BAD_PORT","ERR_UNKNOWN_SIGNAL","normalizeEncoding","isAsyncFunction","isArrayBufferView","signals","isInt32","isUint32","octalReg","modeDesc","parseFileMode","def","validateUint32","min","max","validateInt32","positive","validateString","validateNumber","validateOneOf","oneOf","allowed","getOwnPropertyValueOrDefault","key","defaultValue","allowArray","allowFunction","nullable","validateDictionary","validateArray","minLength","validateStringArray","validateBooleanArray","validateAbortSignalArray","indexedName","validateSignalName","validateBuffer","validateEncoding","normalizedEncoding","validatePort","port","allowZero","validatePlainFunction","validateUndefined","validateUnion","union","linkValueRegExp","validateLinkHeaderFormat","validateLinkHeaderValue","hints","hintsLength","link","CustomStream","promises","originalDestroy","Object","defineProperty","configurable","format","AggregateError","CustomAggregateError","kIsNodeError","kTypes","classRegExp","nodeInternalPrefix","assert","ERR_INTERNAL_ASSERTION","addNumericalSeparator","start","getMessage","msg","expectedLength","match","E","Base","NodeError","defineProperties","hidden","innerError","outerError","Array","isArray","errors","expected","actual","endsWith","types","instances","other","toLowerCase","test","pos","indexOf","last","_actual$constructor","inspected","colors","TypeError","type","input","_value$constructor","a","range","received","isInteger","Math","abs","RangeError","el","sep","ArrayPrototypePop","thisArgs","instance","Function","hasInstance","floor","isNaN","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseInt","props","prop","getOwnPropertyDescriptor","target","proto","setPrototypeOf","PromisePrototypeCatch","thenFn","catchFn","ReflectApply","Reflect","RegExpPrototypeTest","Set","toUpperCase","trim","asyncIterator","dispose","asyncDispose","AbortSignal","AsyncFunction","getPrototypeOf","freeze","rej","promisify","debuglog","replace","_unused","replacement","toFixed","JSON","stringify","ctor","is","arr","ArrayBuffer","isView","listener","removeEventListener","queueMicrotask","_removeEventListener","AbortSignalAny","any","custom","customPromisify","ERR_ILLEGAL_CONSTRUCTOR","utils","op","byteLength","pl","lastArg","blankNode","dataset","toNT","quad","defaultGraph","namedNode","echarRegEx","echarRegExAll","echarReplacement","echarReplacer","char","escapeValue","literal","escapedValue","datatype","language","subjectString","subject","predicateString","predicate","objectString","graphString","graph","variable","term","termType","SerializerStream","Serializer"],"sourceRoot":""} \ No newline at end of file diff --git a/js/250.1464af0c.js b/js/250.1464af0c.js new file mode 100644 index 0000000..3c73688 --- /dev/null +++ b/js/250.1464af0c.js @@ -0,0 +1,2 @@ +(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[250],{41134:function(e,t,r){"use strict";const{SymbolDispose:n}=r(60341),{AbortError:o,codes:i}=r(18461),{isNodeStream:a,isWebStream:l,kControllerErrorFunction:s}=r(58516),d=r(5499),{ERR_INVALID_ARG_TYPE:u}=i;let c;const f=(e,t)=>{if("object"!==typeof e||!("aborted"in e))throw new u(t,"AbortSignal",e)};e.exports.addAbortSignal=function(t,r){if(f(t,"signal"),!a(r)&&!l(r))throw new u("stream",["ReadableStream","WritableStream","Stream"],r);return e.exports.addAbortSignalNoValidate(t,r)},e.exports.addAbortSignalNoValidate=function(e,t){if("object"!==typeof e||!("aborted"in e))return t;const i=a(t)?()=>{t.destroy(new o(void 0,{cause:e.reason}))}:()=>{t[s](new o(void 0,{cause:e.reason}))};if(e.aborted)i();else{c=c||r(57255).addAbortListener;const o=c(e,i);d(t,o[n])}return t}},65072:function(e,t,r){"use strict";const{StringPrototypeSlice:n,SymbolIterator:o,TypedArrayPrototypeSet:i,Uint8Array:a}=r(60341),{Buffer:l}=r(48764),{inspect:s}=r(57255);e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(e){const t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}shift(){if(0===this.length)return;const e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(0===this.length)return"";let t=this.head,r=""+t.data;while(null!==(t=t.next))r+=e+t.data;return r}concat(e){if(0===this.length)return l.alloc(0);const t=l.allocUnsafe(e>>>0);let r=this.head,n=0;while(r)i(t,r.data,n),n+=r.data.length,r=r.next;return t}consume(e,t){const r=this.head.data;if(ei.length)){e===i.length?(t+=i,++o,r.next?this.head=r.next:this.head=this.tail=null):(t+=n(i,0,e),this.head=r,r.data=n(i,e));break}t+=i,e-=i.length,++o}while(null!==(r=r.next));return this.length-=o,t}_getBuffer(e){const t=l.allocUnsafe(e),r=e;let n=this.head,o=0;do{const l=n.data;if(!(e>l.length)){e===l.length?(i(t,l,r-e),++o,n.next?this.head=n.next:this.head=this.tail=null):(i(t,new a(l.buffer,l.byteOffset,e),r-e),this.head=n,n.data=l.slice(e));break}i(t,l,r-e),e-=l.length,++o}while(null!==(n=n.next));return this.length-=o,t}[Symbol.for("nodejs.util.inspect.custom")](e,t){return s(this,{...t,depth:0,customInspect:!1})}}},7422:function(e,t,r){"use strict";const{pipeline:n}=r(91519),o=r(27415),{destroyer:i}=r(20339),{isNodeStream:a,isReadable:l,isWritable:s,isWebStream:d,isTransformStream:u,isWritableStream:c,isReadableStream:f}=r(58516),{AbortError:h,codes:{ERR_INVALID_ARG_VALUE:b,ERR_MISSING_ARGS:p}}=r(18461),y=r(5499);e.exports=function(...e){if(0===e.length)throw new p("streams");if(1===e.length)return o.from(e[0]);const t=[...e];if("function"===typeof e[0]&&(e[0]=o.from(e[0])),"function"===typeof e[e.length-1]){const t=e.length-1;e[t]=o.from(e[t])}for(let n=0;n0&&!(s(e[n])||c(e[n])||u(e[n])))throw new b(`streams[${n}]`,t[n],"must be writable")}let r,_,g,w,m;function S(e){const t=w;w=null,t?t(e):e?m.destroy(e):A||R||m.destroy()}const v=e[0],E=n(e,S),R=!!(s(v)||c(v)||u(v)),A=!!(l(E)||f(E)||u(E));if(m=new o({writableObjectMode:!(null===v||void 0===v||!v.writableObjectMode),readableObjectMode:!(null===E||void 0===E||!E.readableObjectMode),writable:R,readable:A}),R){if(a(v))m._write=function(e,t,n){v.write(e,t)?n():r=n},m._final=function(e){v.end(),_=e},v.on("drain",(function(){if(r){const e=r;r=null,e()}}));else if(d(v)){const e=u(v)?v.writable:v,t=e.getWriter();m._write=async function(e,r,n){try{await t.ready,t.write(e).catch((()=>{})),n()}catch(o){n(o)}},m._final=async function(e){try{await t.ready,t.close().catch((()=>{})),_=e}catch(r){e(r)}}}const e=u(E)?E.readable:E;y(e,(()=>{if(_){const e=_;_=null,e()}}))}if(A)if(a(E))E.on("readable",(function(){if(g){const e=g;g=null,e()}})),E.on("end",(function(){m.push(null)})),m._read=function(){while(1){const e=E.read();if(null===e)return void(g=m._read);if(!m.push(e))return}};else if(d(E)){const e=u(E)?E.readable:E,t=e.getReader();m._read=async function(){while(1)try{const{value:e,done:r}=await t.read();if(!m.push(e))return;if(r)return void m.push(null)}catch{return}}}return m._destroy=function(e,t){e||null===w||(e=new h),g=null,r=null,_=null,null===w?t(e):(w=t,a(E)&&i(E,e))},m}},20339:function(e,t,r){"use strict";const n=r(34155),{aggregateTwoErrors:o,codes:{ERR_MULTIPLE_CALLBACK:i},AbortError:a}=r(18461),{Symbol:l}=r(60341),{kIsDestroyed:s,isDestroyed:d,isFinished:u,isServerRequest:c}=r(58516),f=l("kDestroy"),h=l("kConstruct");function b(e,t,r){e&&(e.stack,t&&!t.errored&&(t.errored=e),r&&!r.errored&&(r.errored=e))}function p(e,t){const r=this._readableState,n=this._writableState,i=n||r;return null!==n&&void 0!==n&&n.destroyed||null!==r&&void 0!==r&&r.destroyed?("function"===typeof t&&t(),this):(b(e,n,r),n&&(n.destroyed=!0),r&&(r.destroyed=!0),i.constructed?y(this,e,t):this.once(f,(function(r){y(this,o(r,e),t)})),this)}function y(e,t,r){let o=!1;function i(t){if(o)return;o=!0;const i=e._readableState,a=e._writableState;b(t,a,i),a&&(a.closed=!0),i&&(i.closed=!0),"function"===typeof r&&r(t),t?n.nextTick(_,e,t):n.nextTick(g,e)}try{e._destroy(t||null,i)}catch(t){i(t)}}function _(e,t){w(e,t),g(e)}function g(e){const t=e._readableState,r=e._writableState;r&&(r.closeEmitted=!0),t&&(t.closeEmitted=!0),(null!==r&&void 0!==r&&r.emitClose||null!==t&&void 0!==t&&t.emitClose)&&e.emit("close")}function w(e,t){const r=e._readableState,n=e._writableState;null!==n&&void 0!==n&&n.errorEmitted||null!==r&&void 0!==r&&r.errorEmitted||(n&&(n.errorEmitted=!0),r&&(r.errorEmitted=!0),e.emit("error",t))}function m(){const e=this._readableState,t=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=!1===e.readable,e.endEmitted=!1===e.readable),t&&(t.constructed=!0,t.destroyed=!1,t.closed=!1,t.closeEmitted=!1,t.errored=null,t.errorEmitted=!1,t.finalCalled=!1,t.prefinished=!1,t.ended=!1===t.writable,t.ending=!1===t.writable,t.finished=!1===t.writable)}function S(e,t,r){const o=e._readableState,i=e._writableState;if(null!==i&&void 0!==i&&i.destroyed||null!==o&&void 0!==o&&o.destroyed)return this;null!==o&&void 0!==o&&o.autoDestroy||null!==i&&void 0!==i&&i.autoDestroy?e.destroy(t):t&&(t.stack,i&&!i.errored&&(i.errored=t),o&&!o.errored&&(o.errored=t),r?n.nextTick(w,e,t):w(e,t))}function v(e,t){if("function"!==typeof e._construct)return;const r=e._readableState,o=e._writableState;r&&(r.constructed=!1),o&&(o.constructed=!1),e.once(h,t),e.listenerCount(h)>1||n.nextTick(E,e)}function E(e){let t=!1;function r(r){if(t)return void S(e,null!==r&&void 0!==r?r:new i);t=!0;const o=e._readableState,a=e._writableState,l=a||o;o&&(o.constructed=!0),a&&(a.constructed=!0),l.destroyed?e.emit(f,r):r?S(e,r,!0):n.nextTick(R,e)}try{e._construct((e=>{n.nextTick(r,e)}))}catch(o){n.nextTick(r,o)}}function R(e){e.emit(h)}function A(e){return(null===e||void 0===e?void 0:e.setHeader)&&"function"===typeof e.abort}function T(e){e.emit("close")}function k(e,t){e.emit("error",t),n.nextTick(T,e)}function I(e,t){e&&!d(e)&&(t||u(e)||(t=new a),c(e)?(e.socket=null,e.destroy(t)):A(e)?e.abort():A(e.req)?e.req.abort():"function"===typeof e.destroy?e.destroy(t):"function"===typeof e.close?e.close():t?n.nextTick(k,e,t):n.nextTick(T,e),e.destroyed||(e[s]=!0))}e.exports={construct:v,destroyer:I,destroy:p,undestroy:m,errorOrDestroy:S}},27415:function(e,t,r){"use strict";const{ObjectDefineProperties:n,ObjectGetOwnPropertyDescriptor:o,ObjectKeys:i,ObjectSetPrototypeOf:a}=r(60341);e.exports=d;const l=r(377),s=r(11339);a(d.prototype,l.prototype),a(d,l);{const e=i(s.prototype);for(let t=0;t{c=!1,e&&g(t,e),f(e)})),d._write=function(e,t,o){r.write(e,t)?o():n=o},d._final=function(e){r.end(),o=e},r.on("drain",(function(){if(n){const e=n;n=null,e()}})),r.on("finish",(function(){if(o){const e=o;o=null,e()}}))),u&&(b(t,(e=>{u=!1,e&&g(t,e),f(e)})),t.on("readable",(function(){if(l){const e=l;l=null,e()}})),t.on("end",(function(){d.push(null)})),d._read=function(){while(1){const e=t.read();if(null===e)return void(l=d._read);if(!d.push(e))return}}),d._destroy=function(e,i){e||null===s||(e=new p),l=null,n=null,o=null,null===s?i(e):(s=i,g(r,e),g(t,e))},d}e.exports=function e(t,r){if(c(t))return t;if(d(t))return M({readable:t});if(u(t))return M({writable:t});if(s(t))return M({writable:!1,readable:!1});if(f(t))return M({readable:m.fromWeb(t)});if(h(t))return M({writable:S.fromWeb(t)});if("function"===typeof t){const{value:e,write:o,final:i,destroy:a}=N(t);if(l(e))return E(I,e,{objectMode:!0,write:o,final:i,destroy:a});const s=null===e||void 0===e?void 0:e.then;if("function"===typeof s){let t;const r=k(s,e,(e=>{if(null!=e)throw new _("nully","body",e)}),(e=>{g(t,e)}));return t=new I({objectMode:!0,readable:!1,write:o,final(e){i((async()=>{try{await r,n.nextTick(e,null)}catch(t){n.nextTick(e,t)}}))},destroy:a})}throw new _("Iterable, AsyncIterable or AsyncFunction",r,e)}if(A(t))return e(t.arrayBuffer());if(l(t))return E(I,t,{objectMode:!0,writable:!1});if(f(null===t||void 0===t?void 0:t.readable)&&h(null===t||void 0===t?void 0:t.writable))return I.fromWeb(t);if("object"===typeof(null===t||void 0===t?void 0:t.writable)||"object"===typeof(null===t||void 0===t?void 0:t.readable)){const r=null!==t&&void 0!==t&&t.readable?d(null===t||void 0===t?void 0:t.readable)?null===t||void 0===t?void 0:t.readable:e(t.readable):void 0,n=null!==t&&void 0!==t&&t.writable?u(null===t||void 0===t?void 0:t.writable)?null===t||void 0===t?void 0:t.writable:e(t.writable):void 0;return M({readable:r,writable:n})}const o=null===t||void 0===t?void 0:t.then;if("function"===typeof o){let e;return k(o,t,(t=>{null!=t&&e.push(t),e.push(null)}),(t=>{g(e,t)})),e=new I({objectMode:!0,writable:!1,read(){}})}throw new y(r,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],t)}},5499:function(e,t,r){const n=r(34155),{AbortError:o,codes:i}=r(18461),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:l}=i,{kEmptyObject:s,once:d}=r(57255),{validateAbortSignal:u,validateFunction:c,validateObject:f,validateBoolean:h}=r(12309),{Promise:b,PromisePrototypeThen:p,SymbolDispose:y}=r(60341),{isClosed:_,isReadable:g,isReadableNodeStream:w,isReadableStream:m,isReadableFinished:S,isReadableErrored:v,isWritable:E,isWritableNodeStream:R,isWritableStream:A,isWritableFinished:T,isWritableErrored:k,isNodeStream:I,willEmitClose:N,kIsClosedPromise:M}=r(58516);let D;function x(e){return e.setHeader&&"function"===typeof e.abort}const P=()=>{};function j(e,t,i){var h,b;if(2===arguments.length?(i=t,t=s):null==t?t=s:f(t,"options"),c(i,"callback"),u(t.signal,"options.signal"),i=d(i),m(e)||A(e))return L(e,t,i);if(!I(e))throw new a("stream",["ReadableStream","WritableStream","Stream"],e);const p=null!==(h=t.readable)&&void 0!==h?h:w(e),M=null!==(b=t.writable)&&void 0!==b?b:R(e),j=e._writableState,O=e._readableState,W=()=>{e.writable||F()};let $=N(e)&&w(e)===p&&R(e)===M,C=T(e,!1);const F=()=>{C=!0,e.destroyed&&($=!1),(!$||e.readable&&!p)&&(p&&!U||i.call(e))};let U=S(e,!1);const B=()=>{U=!0,e.destroyed&&($=!1),(!$||e.writable&&!M)&&(M&&!C||i.call(e))},V=t=>{i.call(e,t)};let G=_(e);const H=()=>{G=!0;const t=k(e)||v(e);return t&&"boolean"!==typeof t?i.call(e,t):p&&!U&&w(e,!0)&&!S(e,!1)?i.call(e,new l):!M||C||T(e,!1)?void i.call(e):i.call(e,new l)},Y=()=>{G=!0;const t=k(e)||v(e);if(t&&"boolean"!==typeof t)return i.call(e,t);i.call(e)},q=()=>{e.req.on("finish",F)};x(e)?(e.on("complete",F),$||e.on("abort",H),e.req?q():e.on("request",q)):M&&!j&&(e.on("end",W),e.on("close",W)),$||"boolean"!==typeof e.aborted||e.on("aborted",H),e.on("end",B),e.on("finish",F),!1!==t.error&&e.on("error",V),e.on("close",H),G?n.nextTick(H):null!==j&&void 0!==j&&j.errorEmitted||null!==O&&void 0!==O&&O.errorEmitted?$||n.nextTick(Y):(p||$&&!g(e)||!C&&!1!==E(e))&&(M||$&&!E(e)||!U&&!1!==g(e))?O&&e.req&&e.aborted&&n.nextTick(Y):n.nextTick(Y);const K=()=>{i=P,e.removeListener("aborted",H),e.removeListener("complete",F),e.removeListener("abort",H),e.removeListener("request",q),e.req&&e.req.removeListener("finish",F),e.removeListener("end",W),e.removeListener("close",W),e.removeListener("finish",F),e.removeListener("end",B),e.removeListener("error",V),e.removeListener("close",H)};if(t.signal&&!G){const a=()=>{const r=i;K(),r.call(e,new o(void 0,{cause:t.signal.reason}))};if(t.signal.aborted)n.nextTick(a);else{D=D||r(57255).addAbortListener;const n=D(t.signal,a),o=i;i=d(((...t)=>{n[y](),o.apply(e,t)}))}}return K}function L(e,t,i){let a=!1,l=P;if(t.signal)if(l=()=>{a=!0,i.call(e,new o(void 0,{cause:t.signal.reason}))},t.signal.aborted)n.nextTick(l);else{D=D||r(57255).addAbortListener;const n=D(t.signal,l),o=i;i=d(((...t)=>{n[y](),o.apply(e,t)}))}const s=(...t)=>{a||n.nextTick((()=>i.apply(e,t)))};return p(e[M].promise,s,s),P}function O(e,t){var r;let n=!1;return null===t&&(t=s),null!==(r=t)&&void 0!==r&&r.cleanup&&(h(t.cleanup,"cleanup"),n=t.cleanup),new b(((r,o)=>{const i=j(e,t,(e=>{n&&i(),e?o(e):r()}))}))}e.exports=j,e.exports.finished=O},61949:function(e,t,r){"use strict";const n=r(34155),{PromisePrototypeThen:o,SymbolAsyncIterator:i,SymbolIterator:a}=r(60341),{Buffer:l}=r(48764),{ERR_INVALID_ARG_TYPE:s,ERR_STREAM_NULL_VALUES:d}=r(18461).codes;function u(e,t,r){let u,c;if("string"===typeof t||t instanceof l)return new e({objectMode:!0,...r,read(){this.push(t),this.push(null)}});if(t&&t[i])c=!0,u=t[i]();else{if(!t||!t[a])throw new s("iterable",["Iterable"],t);c=!1,u=t[a]()}const f=new e({objectMode:!0,highWaterMark:1,...r});let h=!1;async function b(e){const t=void 0!==e&&null!==e,r="function"===typeof u.throw;if(t&&r){const{value:t,done:r}=await u.throw(e);if(await t,r)return}if("function"===typeof u.return){const{value:e}=await u.return();await e}}async function p(){for(;;){try{const{value:e,done:t}=c?await u.next():u.next();if(t)f.push(null);else{const t=e&&"function"===typeof e.then?await e:e;if(null===t)throw h=!1,new d;if(f.push(t))continue;h=!1}}catch(e){f.destroy(e)}break}}return f._read=function(){h||(h=!0,p())},f._destroy=function(e,t){o(b(e),(()=>n.nextTick(t,e)),(r=>n.nextTick(t,r||e)))},f}e.exports=u},33491:function(e,t,r){"use strict";const{ArrayIsArray:n,ObjectSetPrototypeOf:o}=r(60341),{EventEmitter:i}=r(17187);function a(e){i.call(this,e)}function l(e,t,r){if("function"===typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?n(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}o(a.prototype,i.prototype),o(a,i),a.prototype.pipe=function(e,t){const r=this;function n(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function o(){r.readable&&r.resume&&r.resume()}r.on("data",n),e.on("drain",o),e._isStdio||t&&!1===t.end||(r.on("end",s),r.on("close",d));let a=!1;function s(){a||(a=!0,e.end())}function d(){a||(a=!0,"function"===typeof e.destroy&&e.destroy())}function u(e){c(),0===i.listenerCount(this,"error")&&this.emit("error",e)}function c(){r.removeListener("data",n),e.removeListener("drain",o),r.removeListener("end",s),r.removeListener("close",d),r.removeListener("error",u),e.removeListener("error",u),r.removeListener("end",c),r.removeListener("close",c),e.removeListener("close",c)}return l(r,"error",u),l(e,"error",u),r.on("end",c),r.on("close",c),e.on("close",c),e.emit("pipe",r),e},e.exports={Stream:a,prependListener:l}},60918:function(e,t,r){"use strict";const n=globalThis.AbortController||r(28599).AbortController,{codes:{ERR_INVALID_ARG_VALUE:o,ERR_INVALID_ARG_TYPE:i,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:l},AbortError:s}=r(18461),{validateAbortSignal:d,validateInteger:u,validateObject:c}=r(12309),f=r(60341).Symbol("kWeak"),h=r(60341).Symbol("kResistStopPropagation"),{finished:b}=r(5499),p=r(7422),{addAbortSignalNoValidate:y}=r(41134),{isWritable:_,isNodeStream:g}=r(58516),{deprecate:w}=r(57255),{ArrayPrototypePush:m,Boolean:S,MathFloor:v,Number:E,NumberIsNaN:R,Promise:A,PromiseReject:T,PromiseResolve:k,PromisePrototypeThen:I,Symbol:N}=r(60341),M=N("kEmpty"),D=N("kEof");function x(e,t){if(null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),g(e)&&!_(e))throw new o("stream",e,"must be writable");const r=p(this,e);return null!==t&&void 0!==t&&t.signal&&y(t.signal,r),r}function P(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal");let n=1;null!=(null===t||void 0===t?void 0:t.concurrency)&&(n=v(t.concurrency));let o=n-1;return null!=(null===t||void 0===t?void 0:t.highWaterMark)&&(o=v(t.highWaterMark)),u(n,"options.concurrency",1),u(o,"options.highWaterMark",0),o+=n,async function*(){const i=r(57255).AbortSignalAny([null===t||void 0===t?void 0:t.signal].filter(S)),a=this,l=[],d={signal:i};let u,c,f=!1,h=0;function b(){f=!0,p()}function p(){h-=1,y()}function y(){c&&!f&&h=o||h>=n)&&await new A((e=>{c=e}))}l.push(D)}catch(t){const e=T(t);I(e,p,b),l.push(e)}finally{f=!0,u&&(u(),u=null)}}_();try{while(1){while(l.length>0){const e=await l[0];if(e===D)return;if(i.aborted)throw new s;e!==M&&(yield e),l.shift(),y()}await new A((e=>{u=e}))}}finally{f=!0,c&&(c(),c=null)}}.call(this)}function j(e=void 0){return null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal"),async function*(){let t=0;for await(const n of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new s({cause:e.signal.reason});yield[t++,n]}}.call(this)}async function L(e,t=void 0){for await(const r of C.call(this,e,t))return!0;return!1}async function O(e,t=void 0){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);return!await L.call(this,(async(...t)=>!await e(...t)),t)}async function W(e,t){for await(const r of C.call(this,e,t))return r}async function $(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r),M}for await(const n of P.call(this,r,t));}function C(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r)?t:M}return P.call(this,r,t)}class F extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function U(e,t,r){var o;if("function"!==typeof e)throw new i("reducer",["Function","AsyncFunction"],e);null!=r&&c(r,"options"),null!=(null===r||void 0===r?void 0:r.signal)&&d(r.signal,"options.signal");let a=arguments.length>1;if(null!==r&&void 0!==r&&null!==(o=r.signal)&&void 0!==o&&o.aborted){const e=new s(void 0,{cause:r.signal.reason});throw this.once("error",(()=>{})),await b(this.destroy(e)),e}const l=new n,u=l.signal;if(null!==r&&void 0!==r&&r.signal){const e={once:!0,[f]:this,[h]:!0};r.signal.addEventListener("abort",(()=>l.abort()),e)}let p=!1;try{for await(const n of this){var y;if(p=!0,null!==r&&void 0!==r&&null!==(y=r.signal)&&void 0!==y&&y.aborted)throw new s;a?t=await e(t,n,{signal:u}):(t=n,a=!0)}if(!p&&!a)throw new F}finally{l.abort()}return t}async function B(e){null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal");const t=[];for await(const n of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new s(void 0,{cause:e.signal.reason});m(t,n)}return t}function V(e,t){const r=P.call(this,e,t);return async function*(){for await(const e of r)yield*e}.call(this)}function G(e){if(e=E(e),R(e))return 0;if(e<0)throw new l("number",">= 0",e);return e}function H(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=G(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new s;for await(const o of this){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new s;e--<=0&&(yield o)}}.call(this)}function Y(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=G(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new s;for await(const o of this){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new s;if(e-- >0&&(yield o),e<=0)return}}.call(this)}e.exports.streamReturningOperators={asIndexedPairs:w(j,"readable.asIndexedPairs will be removed in a future version."),drop:H,filter:C,flatMap:V,map:P,take:Y,compose:x},e.exports.promiseReturningOperators={every:O,forEach:$,reduce:U,toArray:B,some:L,find:W}},57295:function(e,t,r){"use strict";const{ObjectSetPrototypeOf:n}=r(60341);e.exports=i;const o=r(21122);function i(e){if(!(this instanceof i))return new i(e);o.call(this,e)}n(i.prototype,o.prototype),n(i,o),i.prototype._transform=function(e,t,r){r(null,e)}},91519:function(e,t,r){const n=r(34155),{ArrayIsArray:o,Promise:i,SymbolAsyncIterator:a,SymbolDispose:l}=r(60341),s=r(5499),{once:d}=r(57255),u=r(20339),c=r(27415),{aggregateTwoErrors:f,codes:{ERR_INVALID_ARG_TYPE:h,ERR_INVALID_RETURN_VALUE:b,ERR_MISSING_ARGS:p,ERR_STREAM_DESTROYED:y,ERR_STREAM_PREMATURE_CLOSE:_},AbortError:g}=r(18461),{validateFunction:w,validateAbortSignal:m}=r(12309),{isIterable:S,isReadable:v,isReadableNodeStream:E,isNodeStream:R,isTransformStream:A,isWebStream:T,isReadableStream:k,isReadableFinished:I}=r(58516),N=globalThis.AbortController||r(28599).AbortController;let M,D,x;function P(e,t,r){let n=!1;e.on("close",(()=>{n=!0}));const o=s(e,{readable:t,writable:r},(e=>{n=!e}));return{destroy:t=>{n||(n=!0,u.destroyer(e,t||new y("pipe")))},cleanup:o}}function j(e){return w(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function L(e){if(S(e))return e;if(E(e))return O(e);throw new h("val",["Readable","Iterable","AsyncIterable"],e)}async function*O(e){D||(D=r(377)),yield*D.prototype[a].call(e)}async function W(e,t,r,{end:n}){let o,a=null;const l=e=>{if(e&&(o=e),a){const e=a;a=null,e()}},d=()=>new i(((e,t)=>{o?t(o):a=()=>{o?t(o):e()}}));t.on("drain",l);const u=s(t,{readable:!1},l);try{t.writableNeedDrain&&await d();for await(const r of e)t.write(r)||await d();n&&(t.end(),await d()),r()}catch(c){r(o!==c?f(o,c):c)}finally{u(),t.off("drain",l)}}async function $(e,t,r,{end:n}){A(t)&&(t=t.writable);const o=t.getWriter();try{for await(const t of e)await o.ready,o.write(t).catch((()=>{}));await o.ready,n&&await o.close(),r()}catch(i){try{await o.abort(i),r(i)}catch(i){r(i)}}}function C(...e){return F(e,d(j(e)))}function F(e,t,i){if(1===e.length&&o(e[0])&&(e=e[0]),e.length<2)throw new p("streams");const a=new N,s=a.signal,d=null===i||void 0===i?void 0:i.signal,u=[];function f(){C(new g)}let y,_,w;m(d,"options.signal"),x=x||r(57255).addAbortListener,d&&(y=x(d,f));const I=[];let D,j=0;function O(e){C(e,0===--j)}function C(e,r){var o;if(!e||_&&"ERR_STREAM_PREMATURE_CLOSE"!==_.code||(_=e),_||r){while(I.length)I.shift()(_);null===(o=y)||void 0===o||o[l](),a.abort(),r&&(_||u.forEach((e=>e())),n.nextTick(t,_,w))}}for(let G=0;G0,K=Y||!1!==(null===i||void 0===i?void 0:i.end),z=G===e.length-1;if(R(H)){if(K){const{destroy:J,cleanup:X}=P(H,Y,q);I.push(J),v(H)&&z&&u.push(X)}function F(e){e&&"AbortError"!==e.name&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code&&O(e)}H.on("error",F),v(H)&&z&&u.push((()=>{H.removeListener("error",F)}))}if(0===G)if("function"===typeof H){if(D=H({signal:s}),!S(D))throw new b("Iterable, AsyncIterable or Stream","source",D)}else D=S(H)||E(H)||A(H)?H:c.from(H);else if("function"===typeof H){var B;if(A(D))D=L(null===(B=D)||void 0===B?void 0:B.readable);else D=L(D);if(D=H(D,{signal:s}),Y){if(!S(D,!0))throw new b("AsyncIterable",`transform[${G-1}]`,D)}else{var V;M||(M=r(57295));const Z=new M({objectMode:!0}),Q=null===(V=D)||void 0===V?void 0:V.then;if("function"===typeof Q)j++,Q.call(D,(e=>{w=e,null!=e&&Z.write(e),K&&Z.end(),n.nextTick(O)}),(e=>{Z.destroy(e),n.nextTick(O,e)}));else if(S(D,!0))j++,W(D,Z,O,{end:K});else{if(!k(D)&&!A(D))throw new b("AsyncIterable or Promise","destination",D);{const re=D.readable||D;j++,W(re,Z,O,{end:K})}}D=Z;const{destroy:ee,cleanup:te}=P(D,!1,!0);I.push(ee),z&&u.push(te)}}else if(R(H)){if(E(D)){j+=2;const ne=U(D,H,O,{end:K});v(H)&&z&&u.push(ne)}else if(A(D)||k(D)){const oe=D.readable||D;j++,W(oe,H,O,{end:K})}else{if(!S(D))throw new h("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],D);j++,W(D,H,O,{end:K})}D=H}else if(T(H)){if(E(D))j++,$(L(D),H,O,{end:K});else if(k(D)||S(D))j++,$(D,H,O,{end:K});else{if(!A(D))throw new h("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],D);j++,$(D.readable,H,O,{end:K})}D=H}else D=c.from(H)}return(null!==s&&void 0!==s&&s.aborted||null!==d&&void 0!==d&&d.aborted)&&n.nextTick(f),D}function U(e,t,r,{end:o}){let i=!1;if(t.on("close",(()=>{i||r(new _)})),e.pipe(t,{end:!1}),o){function a(){i=!0,t.end()}I(e)?n.nextTick(a):e.once("end",a)}else r();return s(e,{readable:!0,writable:!1},(t=>{const n=e._readableState;t&&"ERR_STREAM_PREMATURE_CLOSE"===t.code&&n&&n.ended&&!n.errored&&!n.errorEmitted?e.once("end",r).once("error",r):r(t)})),s(t,{readable:!1,writable:!0},r)}e.exports={pipelineImpl:F,pipeline:C}},377:function(e,t,r){const n=r(34155),{ArrayPrototypeIndexOf:o,NumberIsInteger:i,NumberIsNaN:a,NumberParseInt:l,ObjectDefineProperties:s,ObjectKeys:d,ObjectSetPrototypeOf:u,Promise:c,SafeSet:f,SymbolAsyncDispose:h,SymbolAsyncIterator:b,Symbol:p}=r(60341);e.exports=le,le.ReadableState=ae;const{EventEmitter:y}=r(17187),{Stream:_,prependListener:g}=r(33491),{Buffer:w}=r(48764),{addAbortSignal:m}=r(41134),S=r(5499);let v=r(57255).debuglog("stream",(e=>{v=e}));const E=r(65072),R=r(20339),{getHighWaterMark:A,getDefaultHighWaterMark:T}=r(94864),{aggregateTwoErrors:k,codes:{ERR_INVALID_ARG_TYPE:I,ERR_METHOD_NOT_IMPLEMENTED:N,ERR_OUT_OF_RANGE:M,ERR_STREAM_PUSH_AFTER_EOF:D,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:x},AbortError:P}=r(18461),{validateObject:j}=r(12309),L=p("kPaused"),{StringDecoder:O}=r(32553),W=r(61949);u(le.prototype,_.prototype),u(le,_);const $=()=>{},{errorOrDestroy:C}=R,F=1,U=2,B=4,V=8,G=16,H=32,Y=64,q=128,K=256,z=512,J=1024,X=2048,Z=4096,Q=8192,ee=16384,te=32768,re=65536,ne=1<<17,oe=1<<18;function ie(e){return{enumerable:!1,get(){return 0!==(this.state&e)},set(t){t?this.state|=e:this.state&=~e}}}function ae(e,t,n){"boolean"!==typeof n&&(n=t instanceof r(27415)),this.state=X|Z|G|H,e&&e.objectMode&&(this.state|=F),n&&e&&e.readableObjectMode&&(this.state|=F),this.highWaterMark=e?A(this,e,"readableHighWaterMark",n):T(!1),this.buffer=new E,this.length=0,this.pipes=[],this.flowing=null,this[L]=null,e&&!1===e.emitClose&&(this.state&=~X),e&&!1===e.autoDestroy&&(this.state&=~Z),this.errored=null,this.defaultEncoding=e&&e.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,e&&e.encoding&&(this.decoder=new O(e.encoding),this.encoding=e.encoding)}function le(e){if(!(this instanceof le))return new le(e);const t=this instanceof r(27415);this._readableState=new ae(e,this,t),e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.construct&&(this._construct=e.construct),e.signal&&!t&&m(e.signal,this)),_.call(this,e),R.construct(this,(()=>{this._readableState.needReadable&&ye(this,this._readableState)}))}function se(e,t,r,n){v("readableAddChunk",t);const o=e._readableState;let i;if(0===(o.state&F)&&("string"===typeof t?(r=r||o.defaultEncoding,o.encoding!==r&&(n&&o.encoding?t=w.from(t,r).toString(o.encoding):(t=w.from(t,r),r=""))):t instanceof w?r="":_._isUint8Array(t)?(t=_._uint8ArrayToBuffer(t),r=""):null!=t&&(i=new I("chunk",["string","Buffer","Uint8Array"],t))),i)C(e,i);else if(null===t)o.state&=~V,he(e,o);else if(0!==(o.state&F)||t&&t.length>0)if(n)if(0!==(o.state&B))C(e,new x);else{if(o.destroyed||o.errored)return!1;de(e,o,t,!0)}else if(o.ended)C(e,new D);else{if(o.destroyed||o.errored)return!1;o.state&=~V,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?de(e,o,t,!1):ye(e,o)):de(e,o,t,!1)}else n||(o.state&=~V,ye(e,o));return!o.ended&&(o.length0?(0!==(t.state&re)?t.awaitDrainWriters.clear():t.awaitDrainWriters=null,t.dataEmitted=!0,e.emit("data",r)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),0!==(t.state&Y)&&be(e)),ye(e,t)}s(ae.prototype,{objectMode:ie(F),ended:ie(U),endEmitted:ie(B),reading:ie(V),constructed:ie(G),sync:ie(H),needReadable:ie(Y),emittedReadable:ie(q),readableListening:ie(K),resumeScheduled:ie(z),errorEmitted:ie(J),emitClose:ie(X),autoDestroy:ie(Z),destroyed:ie(Q),closed:ie(ee),closeEmitted:ie(te),multiAwaitDrain:ie(re),readingMore:ie(ne),dataEmitted:ie(oe)}),le.prototype.destroy=R.destroy,le.prototype._undestroy=R.undestroy,le.prototype._destroy=function(e,t){t(e)},le.prototype[y.captureRejectionSymbol]=function(e){this.destroy(e)},le.prototype[h]=function(){let e;return this.destroyed||(e=this.readableEnded?null:new P,this.destroy(e)),new c(((t,r)=>S(this,(n=>n&&n!==e?r(n):t(null)))))},le.prototype.push=function(e,t){return se(this,e,t,!1)},le.prototype.unshift=function(e,t){return se(this,e,t,!0)},le.prototype.isPaused=function(){const e=this._readableState;return!0===e[L]||!1===e.flowing},le.prototype.setEncoding=function(e){const t=new O(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;const r=this._readableState.buffer;let n="";for(const o of r)n+=t.write(o);return r.clear(),""!==n&&r.push(n),this._readableState.length=n.length,this};const ue=1073741824;function ce(e){if(e>ue)throw new M("size","<= 1GiB",e);return e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++,e}function fe(e,t){return e<=0||0===t.length&&t.ended?0:0!==(t.state&F)?1:a(e)?t.flowing&&t.length?t.buffer.first().length:t.length:e<=t.length?e:t.ended?t.length:0}function he(e,t){if(v("onEofChunk"),!t.ended){if(t.decoder){const e=t.decoder.end();e&&e.length&&(t.buffer.push(e),t.length+=t.objectMode?1:e.length)}t.ended=!0,t.sync?be(e):(t.needReadable=!1,t.emittedReadable=!0,pe(e))}}function be(e){const t=e._readableState;v("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(v("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(pe,e))}function pe(e){const t=e._readableState;v("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||t.errored||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,Ee(e)}function ye(e,t){!t.readingMore&&t.constructed&&(t.readingMore=!0,n.nextTick(_e,e,t))}function _e(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!1===t[L]?t.flowing=!0:e.listenerCount("data")>0?e.resume():t.readableListening||(t.flowing=null)}function me(e){v("readable nexttick read 0"),e.read(0)}function Se(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(ve,e,t))}function ve(e,t){v("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Ee(e),t.flowing&&!t.reading&&e.read(0)}function Ee(e){const t=e._readableState;v("flow",t.flowing);while(t.flowing&&null!==e.read());}function Re(e,t){"function"!==typeof e.read&&(e=le.wrap(e,{objectMode:!0}));const r=Ae(e,t);return r.stream=e,r}async function*Ae(e,t){let r,n=$;function o(t){this===e?(n(),n=$):n=t}e.on("readable",o);const i=S(e,{writable:!1},(e=>{r=e?k(r,e):null,n(),n=$}));try{while(1){const t=e.destroyed?null:e.read();if(null!==t)yield t;else{if(r)throw r;if(null===r)return;await new c(o)}}}catch(a){throw r=k(r,a),r}finally{!r&&!1===(null===t||void 0===t?void 0:t.destroyOnReturn)||void 0!==r&&!e._readableState.autoDestroy?(e.off("readable",o),i()):R.destroyer(e,null)}}function Te(e,t){if(0===t.length)return null;let r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function ke(e){const t=e._readableState;v("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(Ie,t,e))}function Ie(e,t){if(v("endReadableNT",e.endEmitted,e.length),!e.errored&&!e.closeEmitted&&!e.endEmitted&&0===e.length)if(e.endEmitted=!0,t.emit("end"),t.writable&&!1===t.allowHalfOpen)n.nextTick(Ne,t);else if(e.autoDestroy){const e=t._writableState,r=!e||e.autoDestroy&&(e.finished||!1===e.writable);r&&t.destroy()}}function Ne(e){const t=e.writable&&!e.writableEnded&&!e.destroyed;t&&e.end()}let Me;function De(){return void 0===Me&&(Me={}),Me}le.prototype.read=function(e){v("read",e),void 0===e?e=NaN:i(e)||(e=l(e,10));const t=this._readableState,r=e;if(e>t.highWaterMark&&(t.highWaterMark=ce(e)),0!==e&&(t.state&=~q),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return v("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?ke(this):be(this),null;if(e=fe(e,t),0===e&&t.ended)return 0===t.length&&ke(this),null;let n,o=0!==(t.state&Y);if(v("need readable",o),(0===t.length||t.length-e0?Te(e,t):null,null===n?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&ke(this)),null===n||t.errorEmitted||t.closeEmitted||(t.dataEmitted=!0,this.emit("data",n)),n},le.prototype._read=function(e){throw new N("_read()")},le.prototype.pipe=function(e,t){const r=this,o=this._readableState;1===o.pipes.length&&(o.multiAwaitDrain||(o.multiAwaitDrain=!0,o.awaitDrainWriters=new f(o.awaitDrainWriters?[o.awaitDrainWriters]:[]))),o.pipes.push(e),v("pipe count=%d opts=%j",o.pipes.length,t);const i=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr,a=i?s:w;function l(e,t){v("onunpipe"),e===r&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,c())}function s(){v("onend"),e.end()}let d;o.endEmitted?n.nextTick(a):r.once("end",a),e.on("unpipe",l);let u=!1;function c(){v("cleanup"),e.removeListener("close",y),e.removeListener("finish",_),d&&e.removeListener("drain",d),e.removeListener("error",p),e.removeListener("unpipe",l),r.removeListener("end",s),r.removeListener("end",w),r.removeListener("data",b),u=!0,d&&o.awaitDrainWriters&&(!e._writableState||e._writableState.needDrain)&&d()}function h(){u||(1===o.pipes.length&&o.pipes[0]===e?(v("false write response, pause",0),o.awaitDrainWriters=e,o.multiAwaitDrain=!1):o.pipes.length>1&&o.pipes.includes(e)&&(v("false write response, pause",o.awaitDrainWriters.size),o.awaitDrainWriters.add(e)),r.pause()),d||(d=ge(r,e),e.on("drain",d))}function b(t){v("ondata");const r=e.write(t);v("dest.write",r),!1===r&&h()}function p(t){if(v("onerror",t),w(),e.removeListener("error",p),0===e.listenerCount("error")){const r=e._writableState||e._readableState;r&&!r.errorEmitted?C(e,t):e.emit("error",t)}}function y(){e.removeListener("finish",_),w()}function _(){v("onfinish"),e.removeListener("close",y),w()}function w(){v("unpipe"),r.unpipe(e)}return r.on("data",b),g(e,"error",p),e.once("close",y),e.once("finish",_),e.emit("pipe",r),!0===e.writableNeedDrain?h():o.flowing||(v("pipe resume"),r.resume()),e},le.prototype.unpipe=function(e){const t=this._readableState,r={hasUnpiped:!1};if(0===t.pipes.length)return this;if(!e){const e=t.pipes;t.pipes=[],this.pause();for(let t=0;t0,!1!==o.flowing&&this.resume()):"readable"===e&&(o.endEmitted||o.readableListening||(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,v("on readable",o.length,o.reading),o.length?be(this):o.reading||n.nextTick(me,this))),r},le.prototype.addListener=le.prototype.on,le.prototype.removeListener=function(e,t){const r=_.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(we,this),r},le.prototype.off=le.prototype.removeListener,le.prototype.removeAllListeners=function(e){const t=_.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(we,this),t},le.prototype.resume=function(){const e=this._readableState;return e.flowing||(v("resume"),e.flowing=!e.readableListening,Se(this,e)),e[L]=!1,this},le.prototype.pause=function(){return v("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(v("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[L]=!0,this},le.prototype.wrap=function(e){let t=!1;e.on("data",(r=>{!this.push(r)&&e.pause&&(t=!0,e.pause())})),e.on("end",(()=>{this.push(null)})),e.on("error",(e=>{C(this,e)})),e.on("close",(()=>{this.destroy()})),e.on("destroy",(()=>{this.destroy()})),this._read=()=>{t&&e.resume&&(t=!1,e.resume())};const r=d(e);for(let n=1;n{t?e?e(t):this.destroy(t):(null!=r&&this.push(r),this.push(null),e&&e())}))}function c(){this._final!==u&&u.call(this)}d.prototype._final=u,d.prototype._transform=function(e,t,r){throw new i("_transform()")},d.prototype._write=function(e,t,r){const n=this._readableState,o=this._writableState,i=n.length;this._transform(e,t,((e,t)=>{e?r(e):(null!=t&&this.push(t),o.ended||i===n.length||n.length{const e=this._writableState;e.writing||V(this,e),q(this,e)}))}function L(e,t,r,o){const i=e._writableState;if("function"===typeof r)o=r,r=i.defaultEncoding;else{if(r){if("buffer"!==r&&!p.isEncoding(r))throw new I(r)}else r=i.defaultEncoding;"function"!==typeof o&&(o=M)}if(null===t)throw new T;if(!i.objectMode)if("string"===typeof t)!1!==i.decodeStrings&&(t=p.from(t,r),r="buffer");else if(t instanceof p)r="buffer";else{if(!b._isUint8Array(t))throw new m("chunk",["string","Buffer","Uint8Array"],t);t=b._uint8ArrayToBuffer(t),r="buffer"}let a;return i.ending?a=new k:i.destroyed&&(a=new R("write")),a?(n.nextTick(o,a),N(e,a,!0),a):(i.pendingcb++,O(e,i,t,r,o))}function O(e,t,r,n,o){const i=t.objectMode?1:r.length;t.length+=i;const a=t.lengthr.bufferedIndex&&V(e,r),o?null!==r.afterWriteTickInfo&&r.afterWriteTickInfo.cb===i?r.afterWriteTickInfo.count++:(r.afterWriteTickInfo={count:1,cb:i,stream:e,state:r},n.nextTick(F,r.afterWriteTickInfo)):U(e,r,1,i))):N(e,new v)}function F({stream:e,state:t,count:r,cb:n}){return t.afterWriteTickInfo=null,U(e,t,r,n)}function U(e,t,r,n){const o=!t.ending&&!e.destroyed&&0===t.length&&t.needDrain;o&&(t.needDrain=!1,e.emit("drain"));while(r-- >0)t.pendingcb--,n();t.destroyed&&B(t),q(e,t)}function B(e){if(e.writing)return;for(let o=e.bufferedIndex;o1&&e._writev){t.pendingcb-=a-1;const n=t.allNoop?M:e=>{for(let t=l;t256?(r.splice(0,l),t.bufferedIndex=0):t.bufferedIndex=l}t.bufferProcessing=!1}function G(e){return e.ending&&!e.destroyed&&e.constructed&&0===e.length&&!e.errored&&0===e.buffered.length&&!e.finished&&!e.writing&&!e.errorEmitted&&!e.closeEmitted}function H(e,t){let r=!1;function o(o){if(r)N(e,null!==o&&void 0!==o?o:v());else if(r=!0,t.pendingcb--,o){const r=t[D].splice(0);for(let e=0;e{G(t)?K(e,t):t.pendingcb--}),e,t)):G(t)&&(t.pendingcb++,K(e,t))))}function K(e,t){t.pendingcb--,t.finished=!0;const r=t[D].splice(0);for(let n=0;n>>0}const N=/^[0-7]+$/,M="must be a 32-bit unsigned integer or an octal string";function D(e,t,r){if("undefined"===typeof e&&(e=r),"string"===typeof e){if(null===h(N,e))throw new m(t,e,M);e=c(e,8)}return j(e,t),e}const x=_(((e,t,r=u,n=d)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!l(e))throw new S(t,"an integer",e);if(en)throw new S(t,`>= ${r} && <= ${n}`,e)})),P=_(((e,t,r=-2147483648,n=2147483647)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!l(e))throw new S(t,"an integer",e);if(en)throw new S(t,`>= ${r} && <= ${n}`,e)})),j=_(((e,t,r=!1)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!l(e))throw new S(t,"an integer",e);const n=r?1:0,o=4294967295;if(eo)throw new S(t,`>= ${n} && <= ${o}`,e)}));function L(e,t){if("string"!==typeof e)throw new w(t,"string",e)}function O(e,t,r=void 0,n){if("number"!==typeof e)throw new w(t,"number",e);if(null!=r&&en||(null!=r||null!=n)&&s(e))throw new S(t,`${null!=r?`>= ${r}`:""}${null!=r&&null!=n?" && ":""}${null!=n?`<= ${n}`:""}`,e)}const W=_(((e,t,r)=>{if(!o(r,e)){const n=i(a(r,(e=>"string"===typeof e?`'${e}'`:b(e))),", "),o="must be one of: "+n;throw new m(t,e,o)}}));function $(e,t){if("boolean"!==typeof e)throw new w(t,"boolean",e)}function C(e,t,r){return null!=e&&f(e,t)?e[t]:r}const F=_(((e,t,r=null)=>{const o=C(r,"allowArray",!1),i=C(r,"allowFunction",!1),a=C(r,"nullable",!1);if(!a&&null===e||!o&&n(e)||"object"!==typeof e&&(!i||"function"!==typeof e))throw new w(t,"Object",e)})),U=_(((e,t)=>{if(null!=e&&"object"!==typeof e&&"function"!==typeof e)throw new w(t,"a dictionary",e)})),B=_(((e,t,r=0)=>{if(!n(e))throw new w(t,"Array",e);if(e.length{if(!A(e))throw new w(t,["Buffer","TypedArray","DataView"],e)}));function K(e,t){const r=E(t),n=e.length;if("hex"===r&&n%2!==0)throw new m("encoding",t,`is invalid for data of length ${n}`)}function z(e,t="Port",r=!0){if("number"!==typeof e&&"string"!==typeof e||"string"===typeof e&&0===y(e).length||+e!==+e>>>0||e>65535||0===e&&!r)throw new g(t,e,r);return 0|e}const J=_(((e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new w(t,"AbortSignal",e)})),X=_(((e,t)=>{if("function"!==typeof e)throw new w(t,"Function",e)})),Z=_(((e,t)=>{if("function"!==typeof e||R(e))throw new w(t,"Function",e)})),Q=_(((e,t)=>{if(void 0!==e)throw new w(t,"undefined",e)}));function ee(e,t,r){if(!o(r,e))throw new w(t,`('${i(r,"|")}')`,e)}const te=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function re(e,t){if("undefined"===typeof e||!h(te,e))throw new m(t,e,'must be an array or string of format "; rel=preload; as=style"')}function ne(e){if("string"===typeof e)return re(e,"hints"),e;if(n(e)){const t=e.length;let r="";if(0===t)return r;for(let n=0;n; rel=preload; as=style"')}e.exports={isInt32:k,isUint32:I,parseFileMode:D,validateArray:B,validateStringArray:V,validateBooleanArray:G,validateAbortSignalArray:H,validateBoolean:$,validateBuffer:q,validateDictionary:U,validateEncoding:K,validateFunction:X,validateInt32:P,validateInteger:x,validateNumber:O,validateObject:F,validateOneOf:W,validatePlainFunction:Z,validatePort:z,validateSignalName:Y,validateString:L,validateUint32:j,validateUndefined:Q,validateUnion:ee,validateAbortSignal:J,validateLinkHeaderValue:ne}},98124:function(e,t,r){"use strict";const n=r(18152),o=r(74787),i=n.Readable.destroy;e.exports=n.Readable,e.exports._uint8ArrayToBuffer=n._uint8ArrayToBuffer,e.exports._isUint8Array=n._isUint8Array,e.exports.isDisturbed=n.isDisturbed,e.exports.isErrored=n.isErrored,e.exports.isReadable=n.isReadable,e.exports.Readable=n.Readable,e.exports.Writable=n.Writable,e.exports.Duplex=n.Duplex,e.exports.Transform=n.Transform,e.exports.PassThrough=n.PassThrough,e.exports.addAbortSignal=n.addAbortSignal,e.exports.finished=n.finished,e.exports.destroy=n.destroy,e.exports.destroy=i,e.exports.pipeline=n.pipeline,e.exports.compose=n.compose,Object.defineProperty(n,"promises",{configurable:!0,enumerable:!0,get(){return o}}),e.exports.Stream=n.Stream,e.exports["default"]=e.exports},18461:function(e,t,r){"use strict";const{format:n,inspect:o,AggregateError:i}=r(57255),a=globalThis.AggregateError||i,l=Symbol("kIsNodeError"),s=["string","function","number","object","Function","Object","boolean","bigint","symbol"],d=/^([A-Z][a-z0-9]*)+$/,u="__node_internal_",c={};function f(e,t){if(!e)throw new c.ERR_INTERNAL_ASSERTION(t)}function h(e){let t="",r=e.length;const n="-"===e[0]?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function b(e,t,r){if("function"===typeof t)return f(t.length<=r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${t.length}).`),t(...r);const o=(t.match(/%[dfijoOs]/g)||[]).length;return f(o===r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${o}).`),0===r.length?t:n(t,...r)}function p(e,t,r){r||(r=Error);class n extends r{constructor(...r){super(b(e,t,r))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(n.prototype,{name:{value:r.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),n.prototype.code=e,n.prototype[l]=!0,c[e]=n}function y(e){const t=u+e.name;return Object.defineProperty(e,"name",{value:t}),e}function _(e,t){if(e&&t&&e!==t){if(Array.isArray(t.errors))return t.errors.push(e),t;const r=new a([t,e],t.message);return r.code=t.code,r}return e||t}class g extends Error{constructor(e="The operation was aborted",t=void 0){if(void 0!==t&&"object"!==typeof t)throw new c.ERR_INVALID_ARG_TYPE("options","Object",t);super(e,t),this.code="ABORT_ERR",this.name="AbortError"}}p("ERR_ASSERTION","%s",Error),p("ERR_INVALID_ARG_TYPE",((e,t,r)=>{f("string"===typeof e,"'name' must be a string"),Array.isArray(t)||(t=[t]);let n="The ";e.endsWith(" argument")?n+=`${e} `:n+=`"${e}" ${e.includes(".")?"property":"argument"} `,n+="must be ";const i=[],a=[],l=[];for(const o of t)f("string"===typeof o,"All expected entries have to be of type string"),s.includes(o)?i.push(o.toLowerCase()):d.test(o)?a.push(o):(f("object"!==o,'The value "object" should be written as "Object"'),l.push(o));if(a.length>0){const e=i.indexOf("object");-1!==e&&(i.splice(i,e,1),a.push("Object"))}if(i.length>0){switch(i.length){case 1:n+=`of type ${i[0]}`;break;case 2:n+=`one of type ${i[0]} or ${i[1]}`;break;default:{const e=i.pop();n+=`one of type ${i.join(", ")}, or ${e}`}}(a.length>0||l.length>0)&&(n+=" or ")}if(a.length>0){switch(a.length){case 1:n+=`an instance of ${a[0]}`;break;case 2:n+=`an instance of ${a[0]} or ${a[1]}`;break;default:{const e=a.pop();n+=`an instance of ${a.join(", ")}, or ${e}`}}l.length>0&&(n+=" or ")}switch(l.length){case 0:break;case 1:l[0].toLowerCase()!==l[0]&&(n+="an "),n+=`${l[0]}`;break;case 2:n+=`one of ${l[0]} or ${l[1]}`;break;default:{const e=l.pop();n+=`one of ${l.join(", ")}, or ${e}`}}if(null==r)n+=`. Received ${r}`;else if("function"===typeof r&&r.name)n+=`. Received function ${r.name}`;else if("object"===typeof r){var u;if(null!==(u=r.constructor)&&void 0!==u&&u.name)n+=`. Received an instance of ${r.constructor.name}`;else{const e=o(r,{depth:-1});n+=`. Received ${e}`}}else{let e=o(r,{colors:!1});e.length>25&&(e=`${e.slice(0,25)}...`),n+=`. Received type ${typeof r} (${e})`}return n}),TypeError),p("ERR_INVALID_ARG_VALUE",((e,t,r="is invalid")=>{let n=o(t);n.length>128&&(n=n.slice(0,128)+"...");const i=e.includes(".")?"property":"argument";return`The ${i} '${e}' ${r}. Received ${n}`}),TypeError),p("ERR_INVALID_RETURN_VALUE",((e,t,r)=>{var n;const o=null!==r&&void 0!==r&&null!==(n=r.constructor)&&void 0!==n&&n.name?`instance of ${r.constructor.name}`:"type "+typeof r;return`Expected ${e} to be returned from the "${t}" function but got ${o}.`}),TypeError),p("ERR_MISSING_ARGS",((...e)=>{let t;f(e.length>0,"At least one arg needs to be specified");const r=e.length;switch(e=(Array.isArray(e)?e:[e]).map((e=>`"${e}"`)).join(" or "),r){case 1:t+=`The ${e[0]} argument`;break;case 2:t+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const r=e.pop();t+=`The ${e.join(", ")}, and ${r} arguments`}break}return`${t} must be specified`}),TypeError),p("ERR_OUT_OF_RANGE",((e,t,r)=>{let n;return f(t,'Missing "range" argument'),Number.isInteger(r)&&Math.abs(r)>2**32?n=h(String(r)):"bigint"===typeof r?(n=String(r),(r>2n**32n||r<-(2n**32n))&&(n=h(n)),n+="n"):n=o(r),`The value of "${e}" is out of range. It must be ${t}. Received ${n}`}),RangeError),p("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),p("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),p("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),p("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),p("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),p("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),p("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),p("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),p("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),p("ERR_STREAM_WRITE_AFTER_END","write after end",Error),p("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:g,aggregateTwoErrors:y(_),hideStackFrames:y,codes:c}},60341:function(e){"use strict";e.exports={ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,t){return e.includes(t)},ArrayPrototypeIndexOf(e,t){return e.indexOf(t)},ArrayPrototypeJoin(e,t){return e.join(t)},ArrayPrototypeMap(e,t){return e.map(t)},ArrayPrototypePop(e,t){return e.pop(t)},ArrayPrototypePush(e,t){return e.push(t)},ArrayPrototypeSlice(e,t,r){return e.slice(t,r)},Error:Error,FunctionPrototypeCall(e,t,...r){return e.call(t,...r)},FunctionPrototypeSymbolHasInstance(e,t){return Function.prototype[Symbol.hasInstance].call(e,t)},MathFloor:Math.floor,Number:Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(e,t){return Object.defineProperties(e,t)},ObjectDefineProperty(e,t,r){return Object.defineProperty(e,t,r)},ObjectGetOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,t){return Object.setPrototypeOf(e,t)},Promise:Promise,PromisePrototypeCatch(e,t){return e.catch(t)},PromisePrototypeThen(e,t,r){return e.then(t,r)},PromiseReject(e){return Promise.reject(e)},PromiseResolve(e){return Promise.resolve(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,t){return e.test(t)},SafeSet:Set,String:String,StringPrototypeSlice(e,t,r){return e.slice(t,r)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol:Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,SymbolDispose:Symbol.dispose||Symbol("Symbol.dispose"),SymbolAsyncDispose:Symbol.asyncDispose||Symbol("Symbol.asyncDispose"),TypedArrayPrototypeSet(e,t,r){return e.set(t,r)},Boolean:Boolean,Uint8Array:Uint8Array}},57255:function(e,t,r){"use strict";const n=r(48764),{kResistStopPropagation:o,SymbolDispose:i}=r(60341),a=globalThis.AbortSignal||r(28599).AbortSignal,l=globalThis.AbortController||r(28599).AbortController,s=Object.getPrototypeOf((async function(){})).constructor,d=globalThis.Blob||n.Blob,u="undefined"!==typeof d?function(e){return e instanceof d}:function(e){return!1},c=(e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new ERR_INVALID_ARG_TYPE(t,"AbortSignal",e)},f=(e,t)=>{if("function"!==typeof e)throw new ERR_INVALID_ARG_TYPE(t,"Function",e)};class h extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t="";for(let r=0;r{e=r,t=n}));return{promise:r,resolve:e,reject:t}},promisify(e){return new Promise(((t,r)=>{e(((e,...n)=>e?r(e):t(...n)))}))},debuglog(){return function(){}},format(e,...t){return e.replace(/%([sdifj])/g,(function(...[e,r]){const n=t.shift();if("f"===r)return n.toFixed(6);if("j"===r)return JSON.stringify(n);if("s"===r&&"object"===typeof n){const e=n.constructor!==Object?n.constructor.name:"";return`${e} {}`.trim()}return n.toString()}))},inspect(e){switch(typeof e){case"string":if(e.includes("'")){if(!e.includes('"'))return`"${e}"`;if(!e.includes("`")&&!e.includes("${"))return`\`${e}\``}return`'${e}'`;case"number":return isNaN(e)?"NaN":Object.is(e,-0)?String(e):e;case"bigint":return`${String(e)}n`;case"boolean":case"undefined":return String(e);case"object":return"{}"}},types:{isAsyncFunction(e){return e instanceof s},isArrayBufferView(e){return ArrayBuffer.isView(e)}},isBlob:u,deprecate(e,t){return e},addAbortListener:r(17187).addAbortListener||function(e,t){if(void 0===e)throw new ERR_INVALID_ARG_TYPE("signal","AbortSignal",e);let r;return c(e,"signal"),f(t,"listener"),e.aborted?queueMicrotask((()=>t())):(e.addEventListener("abort",t,{__proto__:null,once:!0,[o]:!0}),r=()=>{e.removeEventListener("abort",t)}),{__proto__:null,[i](){var e;null===(e=r)||void 0===e||e()}}},AbortSignalAny:a.any||function(e){if(1===e.length)return e[0];const t=new l,r=()=>t.abort();return e.forEach((e=>{c(e,"signals"),e.addEventListener("abort",r,{once:!0})})),t.signal.addEventListener("abort",(()=>{e.forEach((e=>e.removeEventListener("abort",r)))}),{once:!0}),t.signal}},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},18152:function(e,t,r){const{Buffer:n}=r(48764),{ObjectDefineProperty:o,ObjectKeys:i,ReflectApply:a}=r(60341),{promisify:{custom:l}}=r(57255),{streamReturningOperators:s,promiseReturningOperators:d}=r(60918),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=r(18461),c=r(7422),{setDefaultHighWaterMark:f,getDefaultHighWaterMark:h}=r(94864),{pipeline:b}=r(91519),{destroyer:p}=r(20339),y=r(5499),_=r(74787),g=r(58516),w=e.exports=r(33491).Stream;w.isDestroyed=g.isDestroyed,w.isDisturbed=g.isDisturbed,w.isErrored=g.isErrored,w.isReadable=g.isReadable,w.isWritable=g.isWritable,w.Readable=r(377);for(const v of i(s)){const E=s[v];function m(...e){if(new.target)throw u();return w.Readable.from(a(E,this,e))}o(m,"name",{__proto__:null,value:E.name}),o(m,"length",{__proto__:null,value:E.length}),o(w.Readable.prototype,v,{__proto__:null,value:m,enumerable:!1,configurable:!0,writable:!0})}for(const R of i(d)){const A=d[R];function m(...e){if(new.target)throw u();return a(A,this,e)}o(m,"name",{__proto__:null,value:A.name}),o(m,"length",{__proto__:null,value:A.length}),o(w.Readable.prototype,R,{__proto__:null,value:m,enumerable:!1,configurable:!0,writable:!0})}w.Writable=r(11339),w.Duplex=r(27415),w.Transform=r(21122),w.PassThrough=r(57295),w.pipeline=b;const{addAbortSignal:S}=r(41134);w.addAbortSignal=S,w.finished=y,w.destroy=p,w.compose=c,w.setDefaultHighWaterMark=f,w.getDefaultHighWaterMark=h,o(w,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return _}}),o(b,l,{__proto__:null,enumerable:!0,get(){return _.pipeline}}),o(y,l,{__proto__:null,enumerable:!0,get(){return _.finished}}),w.Stream=w,w._isUint8Array=function(e){return e instanceof Uint8Array},w._uint8ArrayToBuffer=function(e){return n.from(e.buffer,e.byteOffset,e.byteLength)}},74787:function(e,t,r){"use strict";const{ArrayPrototypePop:n,Promise:o}=r(60341),{isIterable:i,isNodeStream:a,isWebStream:l}=r(58516),{pipelineImpl:s}=r(91519),{finished:d}=r(5499);function u(...e){return new o(((t,r)=>{let o,d;const u=e[e.length-1];if(u&&"object"===typeof u&&!a(u)&&!i(u)&&!l(u)){const t=n(e);o=t.signal,d=t.end}s(e,((e,n)=>{e?r(e):t(n)}),{signal:o,end:d})}))}r(18152),e.exports={finished:d,pipeline:u}},40250:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return b}});var n=r(90540),o=r(98124);class i{constructor(e){this.stream=e,this.array=[]}push(e){this.array.push(e)}end(){this.stream.push(this.array),this.stream.push(null)}}var a=i;class l{constructor(e){this.stream=e,this.first=!0,this.stream.push("[")}push(e){this.first?this.first=!1:this.stream.push(","),this.stream.push(JSON.stringify(e))}end(){this.stream.push("]"),this.stream.push(null)}}var s=l;class d extends o.Readable{constructor(e,{encoding:t="object"}={}){if(super({objectMode:!0,read:()=>{}}),"object"===t&&(this.encoder=new a(this)),"string"===t&&(this.encoder=new s(this)),!this.encoder)throw new Error(`unknown encoding: ${t}`);e.on("data",(e=>{const t={};let r=t;"DefaultGraph"!==e.graph.termType&&(t["@id"]=e.graph.value,t["@graph"]={},r=t["@graph"]),r["@id"]=d.subjectValue(e.subject),"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"===e.predicate.value?r["@type"]=d.subjectValue(e.object):r[e.predicate.value]=d.objectValue(e.object),this.encoder.push(t)})),e.on("end",(()=>this.encoder.end())),e.on("error",(e=>this.emit("error",e)))}static subjectValue(e){return"BlankNode"===e.termType?"_:"+e.value:e.value}static objectValue(e){return"NamedNode"===e.termType?{"@id":e.value}:"BlankNode"===e.termType?{"@id":"_:"+e.value}:e.language?{"@language":e.language,"@value":e.value}:e.datatype&&"http://www.w3.org/2001/XMLSchema#string"!==e.datatype.value?{"@type":e.datatype.value,"@value":e.value}:e.value}}var u=d;class c extends n.Z{constructor(e){super(u,e)}}var f=c;class h extends f{constructor({...e}={}){super({encoding:"string",...e})}}var b=h}}]); +//# sourceMappingURL=250.1464af0c.js.map \ No newline at end of file diff --git a/js/250.1464af0c.js.map b/js/250.1464af0c.js.map new file mode 100644 index 0000000..eabb5ce --- /dev/null +++ b/js/250.1464af0c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/250.1464af0c.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/compose.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/from.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/operators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/readable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/state.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/transform.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/utils.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/writable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/validators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/ours/browser.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/ours/errors.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/ours/primordials.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/ours/util.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/stream/promises.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/lib/ObjectEncoder.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/lib/StringEncoder.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/lib/SerializerStream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/index.js","webpack://@zazuko/spex/./node_modules/@zazuko/formats-lazy/lib/CustomJsonLdSerializer.js"],"sourcesContent":["'use strict'\n\nconst { SymbolDispose } = require('../../ours/primordials')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\nlet addAbortListener\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(signal, onAbort)\n eos(stream, disposable[SymbolDispose])\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.readableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kIsDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream,\n isReadableStream,\n isWritableStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n if (isReadableStream(body)) {\n return _duplexify({\n readable: Readable.fromWeb(body)\n })\n }\n if (isWritableStream(body)) {\n return _duplexify({\n writable: Writable.fromWeb(body)\n })\n }\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n if (\n isReadableStream(body === null || body === undefined ? undefined : body.readable) &&\n isWritableStream(body === null || body === undefined ? undefined : body.writable)\n ) {\n return Duplexify.fromWeb(body)\n }\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen, SymbolDispose } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nlet addAbortListener\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst kResistStopPropagation = require('../../ours/primordials').Symbol('kResistStopPropagation')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst { deprecate } = require('../../ours/util')\nconst {\n ArrayPrototypePush,\n Boolean,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromiseResolve,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n let highWaterMark = concurrency - 1\n if ((options === null || options === undefined ? undefined : options.highWaterMark) != null) {\n highWaterMark = MathFloor(options.highWaterMark)\n }\n validateInteger(concurrency, 'options.concurrency', 1)\n validateInteger(highWaterMark, 'options.highWaterMark', 0)\n highWaterMark += concurrency\n return async function* map() {\n const signal = require('../../ours/util').AbortSignalAny(\n [options === null || options === undefined ? undefined : options.signal].filter(Boolean)\n )\n const stream = this\n const queue = []\n const signalOpt = {\n signal\n }\n let next\n let resume\n let done = false\n let cnt = 0\n function onCatch() {\n done = true\n afterItemProcessed()\n }\n function afterItemProcessed() {\n cnt -= 1\n maybeResume()\n }\n function maybeResume() {\n if (resume && !done && cnt < concurrency && queue.length < highWaterMark) {\n resume()\n resume = null\n }\n }\n async function pump() {\n try {\n for await (let val of stream) {\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n if (val === kEmpty) {\n continue\n }\n val = PromiseResolve(val)\n } catch (err) {\n val = PromiseReject(err)\n }\n cnt += 1\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && (queue.length >= highWaterMark || cnt >= concurrency)) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n } finally {\n done = true\n if (next) {\n next()\n next = null\n }\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n maybeResume()\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal2\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal2 = options.signal) !== null &&\n _options$signal2 !== undefined &&\n _options$signal2.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this,\n [kResistStopPropagation]: true\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal3\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal3 = options.signal) !== null &&\n _options$signal3 !== undefined &&\n _options$signal3.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal5\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal6\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n }\n\n // Don't get another item from iterator in case we reached the end\n if (number <= 0) {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs: deprecate(asIndexedPairs, 'readable.asIndexedPairs will be removed in a future version.'),\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator, SymbolDispose } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableFinished\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nlet addAbortListener\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n await wait()\n }\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n let disposable\n if (outerSignal) {\n disposable = addAbortListener(outerSignal, abort)\n }\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n var _disposable\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n ;(_disposable = disposable) === null || _disposable === undefined ? undefined : _disposable[SymbolDispose]()\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableFinished(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncDispose,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nconst kObjectMode = 1 << 0\nconst kEnded = 1 << 1\nconst kEndEmitted = 1 << 2\nconst kReading = 1 << 3\nconst kConstructed = 1 << 4\nconst kSync = 1 << 5\nconst kNeedReadable = 1 << 6\nconst kEmittedReadable = 1 << 7\nconst kReadableListening = 1 << 8\nconst kResumeScheduled = 1 << 9\nconst kErrorEmitted = 1 << 10\nconst kEmitClose = 1 << 11\nconst kAutoDestroy = 1 << 12\nconst kDestroyed = 1 << 13\nconst kClosed = 1 << 14\nconst kCloseEmitted = 1 << 15\nconst kMultiAwaitDrain = 1 << 16\nconst kReadingMore = 1 << 17\nconst kDataEmitted = 1 << 18\n\n// TODO(benjamingr) it is likely slower to do it this way than with free functions\nfunction makeBitMapDescriptor(bit) {\n return {\n enumerable: false,\n get() {\n return (this.state & bit) !== 0\n },\n set(value) {\n if (value) this.state |= bit\n else this.state &= ~bit\n }\n }\n}\nObjectDefineProperties(ReadableState.prototype, {\n objectMode: makeBitMapDescriptor(kObjectMode),\n ended: makeBitMapDescriptor(kEnded),\n endEmitted: makeBitMapDescriptor(kEndEmitted),\n reading: makeBitMapDescriptor(kReading),\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n constructed: makeBitMapDescriptor(kConstructed),\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n sync: makeBitMapDescriptor(kSync),\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n needReadable: makeBitMapDescriptor(kNeedReadable),\n emittedReadable: makeBitMapDescriptor(kEmittedReadable),\n readableListening: makeBitMapDescriptor(kReadableListening),\n resumeScheduled: makeBitMapDescriptor(kResumeScheduled),\n // True if the error was already emitted and should not be thrown again.\n errorEmitted: makeBitMapDescriptor(kErrorEmitted),\n emitClose: makeBitMapDescriptor(kEmitClose),\n autoDestroy: makeBitMapDescriptor(kAutoDestroy),\n // Has it been destroyed.\n destroyed: makeBitMapDescriptor(kDestroyed),\n // Indicates whether the stream has finished destroying.\n closed: makeBitMapDescriptor(kClosed),\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n closeEmitted: makeBitMapDescriptor(kCloseEmitted),\n multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain),\n // If true, a maybeReadMore has been scheduled.\n readingMore: makeBitMapDescriptor(kReadingMore),\n dataEmitted: makeBitMapDescriptor(kDataEmitted)\n})\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Bit map field to store ReadableState more effciently with 1 bit per field\n // instead of a V8 slot per field.\n this.state = kEmitClose | kAutoDestroy | kConstructed | kSync\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n if (options && options.objectMode) this.state |= kObjectMode\n if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this[kPaused] = null\n\n // Should close be emitted on destroy. Defaults to true.\n if (options && options.emitClose === false) this.state &= ~kEmitClose\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nReadable.prototype[SymbolAsyncDispose] = function () {\n let error\n if (!this.destroyed) {\n error = this.readableEnded ? null : new AbortError()\n this.destroy(error)\n }\n return new Promise((resolve, reject) => eos(this, (err) => (err && err !== error ? reject(err) : resolve(null))))\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if ((state.state & kObjectMode) === 0) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.state &= ~kReading\n onEofChunk(stream, state)\n } else if ((state.state & kObjectMode) !== 0 || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.state &= ~kReading\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.state &= ~kReading\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if ((state.state & kMultiAwaitDrain) !== 0) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if ((state.state & kNeedReadable) !== 0) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if ((state.state & kObjectMode) !== 0) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.state &= ~kEmittedReadable\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = (state.state & kNeedReadable) !== 0\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.state |= kReading | kSync\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.state |= kNeedReadable\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.state &= ~kSync\n\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n pause()\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { validateInteger } = require('../validators')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nlet defaultHighWaterMarkBytes = 16 * 1024\nlet defaultHighWaterMarkObjectMode = 16\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? defaultHighWaterMarkObjectMode : defaultHighWaterMarkBytes\n}\nfunction setDefaultHighWaterMark(objectMode, value) {\n validateInteger(value, 'value', 0)\n if (objectMode) {\n defaultHighWaterMarkObjectMode = value\n } else {\n defaultHighWaterMarkBytes = value\n }\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark,\n setDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\n\n// We need to use SymbolFor to make these globally available\n// for interopt with readable-stream, i.e. readable-stream\n// and node core needs to be able to read/write private state\n// from each other for proper interoperability.\nconst kIsDestroyed = SymbolFor('nodejs.stream.destroyed')\nconst kIsErrored = SymbolFor('nodejs.stream.errored')\nconst kIsReadable = SymbolFor('nodejs.stream.readable')\nconst kIsWritable = SymbolFor('nodejs.stream.writable')\nconst kIsDisturbed = SymbolFor('nodejs.stream.disturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kIsDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (stream && stream[kIsWritable] != null) return stream[kIsWritable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n isDestroyed,\n kIsDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n kIsWritable,\n isClosed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateAbortSignalArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is AbortSignal[]}\n */\n\n/** @type {validateAbortSignalArray} */\nfunction validateAbortSignalArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n const signal = value[i]\n const indexedName = `${name}[${i}]`\n if (signal == null) {\n throw new ERR_INVALID_ARG_TYPE(indexedName, 'AbortSignal', signal)\n }\n validateAbortSignal(signal, indexedName)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateAbortSignalArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n PromiseResolve(val) {\n return Promise.resolve(val)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n SymbolDispose: Symbol.dispose || Symbol('Symbol.dispose'),\n SymbolAsyncDispose: Symbol.asyncDispose || Symbol('Symbol.asyncDispose'),\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Boolean: Boolean,\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst { kResistStopPropagation, SymbolDispose } = require('./primordials')\nconst AbortSignal = globalThis.AbortSignal || require('abort-controller').AbortSignal\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\nconst validateAbortSignal = (signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nconst validateFunction = (value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n}\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob,\n deprecate(fn, message) {\n return fn\n },\n addAbortListener:\n require('events').addAbortListener ||\n function addAbortListener(signal, listener) {\n if (signal === undefined) {\n throw new ERR_INVALID_ARG_TYPE('signal', 'AbortSignal', signal)\n }\n validateAbortSignal(signal, 'signal')\n validateFunction(listener, 'listener')\n let removeEventListener\n if (signal.aborted) {\n queueMicrotask(() => listener())\n } else {\n signal.addEventListener('abort', listener, {\n __proto__: null,\n once: true,\n [kResistStopPropagation]: true\n })\n removeEventListener = () => {\n signal.removeEventListener('abort', listener)\n }\n }\n return {\n __proto__: null,\n [SymbolDispose]() {\n var _removeEventListener\n ;(_removeEventListener = removeEventListener) === null || _removeEventListener === undefined\n ? undefined\n : _removeEventListener()\n }\n }\n },\n AbortSignalAny:\n AbortSignal.any ||\n function AbortSignalAny(signals) {\n // Fast path if there is only one signal.\n if (signals.length === 1) {\n return signals[0]\n }\n const ac = new AbortController()\n const abort = () => ac.abort()\n signals.forEach((signal) => {\n validateAbortSignal(signal, 'signals')\n signal.addEventListener('abort', abort, {\n once: true\n })\n })\n ac.signal.addEventListener(\n 'abort',\n () => {\n signals.forEach((signal) => signal.removeEventListener('abort', abort))\n },\n {\n once: true\n }\n )\n return ac.signal\n }\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { setDefaultHighWaterMark, getDefaultHighWaterMark } = require('./internal/streams/state')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDestroyed = utils.isDestroyed\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.isWritable = utils.isWritable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nStream.setDefaultHighWaterMark = setDefaultHighWaterMark\nStream.getDefaultHighWaterMark = getDefaultHighWaterMark\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('../../lib/stream.js')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","class ObjectEncoder {\n constructor (stream) {\n this.stream = stream\n this.array = []\n }\n\n push (jsonld) {\n this.array.push(jsonld)\n }\n\n end () {\n this.stream.push(this.array)\n this.stream.push(null)\n }\n}\n\nexport default ObjectEncoder\n","class StringEncoder {\n constructor (stream) {\n this.stream = stream\n this.first = true\n\n this.stream.push('[')\n }\n\n push (jsonld) {\n if (this.first) {\n this.first = false\n } else {\n this.stream.push(',')\n }\n\n this.stream.push(JSON.stringify(jsonld))\n }\n\n end () {\n this.stream.push(']')\n this.stream.push(null)\n }\n}\n\nexport default StringEncoder\n","import { Readable } from 'readable-stream'\nimport ObjectEncoder from './ObjectEncoder.js'\nimport StringEncoder from './StringEncoder.js'\n\nclass SerializerStream extends Readable {\n constructor (input, { encoding = 'object' } = {}) {\n super({\n objectMode: true,\n read: () => {}\n })\n\n if (encoding === 'object') {\n this.encoder = new ObjectEncoder(this)\n }\n\n if (encoding === 'string') {\n this.encoder = new StringEncoder(this)\n }\n\n if (!this.encoder) {\n throw new Error(`unknown encoding: ${encoding}`)\n }\n\n input.on('data', quad => {\n const jsonld = {}\n let triple = jsonld\n\n if (quad.graph.termType !== 'DefaultGraph') {\n jsonld['@id'] = quad.graph.value\n jsonld['@graph'] = {}\n triple = jsonld['@graph']\n }\n\n triple['@id'] = SerializerStream.subjectValue(quad.subject)\n\n if (quad.predicate.value === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type') {\n triple['@type'] = SerializerStream.subjectValue(quad.object)\n } else {\n triple[quad.predicate.value] = SerializerStream.objectValue(quad.object)\n }\n\n this.encoder.push(jsonld)\n })\n\n input.on('end', () => this.encoder.end())\n\n input.on('error', err => this.emit('error', err))\n }\n\n static subjectValue (subject) {\n return subject.termType === 'BlankNode' ? '_:' + subject.value : subject.value\n }\n\n static objectValue (object) {\n if (object.termType === 'NamedNode') {\n return { '@id': object.value }\n }\n\n if (object.termType === 'BlankNode') {\n return { '@id': '_:' + object.value }\n }\n\n if (object.language) {\n return { '@language': object.language, '@value': object.value }\n } else if (object.datatype && object.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string') {\n return { '@type': object.datatype.value, '@value': object.value }\n } else {\n return object.value\n }\n }\n}\n\nexport default SerializerStream\n","import Sink from '@rdfjs/sink'\nimport SerializerStream from './lib/SerializerStream.js'\n\nclass Serializer extends Sink {\n constructor (options) {\n super(SerializerStream, options)\n }\n}\n\nexport default Serializer\n","import JsonLdSerializer from '@rdfjs/serializer-jsonld';\nclass CustomJsonLdSerializer extends JsonLdSerializer {\n constructor({ ...args } = {}) {\n super({ encoding: 'string', ...args });\n }\n}\nexport default CustomJsonLdSerializer;\n"],"names":["SymbolDispose","AbortError","codes","isNodeStream","isWebStream","kControllerErrorFunction","eos","ERR_INVALID_ARG_TYPE","addAbortListener","validateAbortSignal","signal","name","module","exports","addAbortSignal","stream","addAbortSignalNoValidate","onAbort","destroy","undefined","cause","reason","aborted","disposable","StringPrototypeSlice","SymbolIterator","TypedArrayPrototypeSet","Uint8Array","Buffer","inspect","constructor","this","head","tail","length","push","v","entry","data","next","unshift","shift","ret","clear","join","s","p","concat","n","alloc","allocUnsafe","i","consume","hasStrings","slice","_getString","_getBuffer","first","c","str","retLen","buf","buffer","byteOffset","Symbol","for","_","options","depth","customInspect","pipeline","Duplex","destroyer","isReadable","isWritable","isTransformStream","isWritableStream","isReadableStream","ERR_INVALID_ARG_VALUE","ERR_MISSING_ARGS","streams","from","orgStreams","idx","ondrain","onfinish","onreadable","onclose","d","onfinished","err","cb","readable","writable","writableObjectMode","readableObjectMode","_write","chunk","encoding","callback","write","_final","end","on","writer","getWriter","async","ready","catch","close","toRead","_read","read","reader","getReader","value","done","_destroy","process","aggregateTwoErrors","ERR_MULTIPLE_CALLBACK","kIsDestroyed","isDestroyed","isFinished","isServerRequest","kDestroy","kConstruct","checkError","w","r","stack","errored","_readableState","_writableState","destroyed","constructed","once","er","self","called","onDestroy","closed","nextTick","emitErrorCloseNT","emitCloseNT","emitErrorNT","closeEmitted","emitClose","emit","errorEmitted","undestroy","reading","ended","endEmitted","finalCalled","prefinished","ending","finished","errorOrDestroy","sync","autoDestroy","construct","_construct","listenerCount","constructNT","onConstruct","emitConstructNT","isRequest","setHeader","abort","emitCloseLegacy","emitErrorCloseLegacy","socket","req","ObjectDefineProperties","ObjectGetOwnPropertyDescriptor","ObjectKeys","ObjectSetPrototypeOf","Readable","Writable","prototype","keys","method","call","allowHalfOpen","webStreamsAdapters","duplexify","lazyWebStreams","__proto__","writableHighWaterMark","writableBuffer","writableLength","writableFinished","writableCorked","writableEnded","writableNeedDrain","get","set","fromWeb","pair","newStreamDuplexFromReadableWritablePair","toWeb","duplex","newReadableWritablePairFromDuplex","body","bufferModule","isIterable","isReadableNodeStream","isWritableNodeStream","isDuplexNodeStream","ERR_INVALID_RETURN_VALUE","createDeferredPromise","Blob","globalThis","isBlob","b","AbortController","FunctionPrototypeCall","Duplexify","super","fromAsyncGen","fn","promise","resolve","ac","_promise","_resolve","final","_duplexify","wrap","objectMode","then","val","arrayBuffer","ERR_STREAM_PREMATURE_CLOSE","kEmptyObject","validateFunction","validateObject","validateBoolean","Promise","PromisePrototypeThen","isClosed","isReadableFinished","isReadableErrored","isWritableFinished","isWritableErrored","willEmitClose","_willEmitClose","kIsClosedPromise","nop","_options$readable","_options$writable","arguments","eosWeb","wState","rState","onlegacyfinish","readableFinished","onend","onerror","onclosed","onrequest","error","cleanup","removeListener","endCallback","originalCallback","args","apply","isAborted","resolverFn","opts","_opts","autoCleanup","reject","SymbolAsyncIterator","ERR_STREAM_NULL_VALUES","iterable","iterator","isAsync","highWaterMark","hadError","hasThrow","throw","return","res","e","ArrayIsArray","EventEmitter","EE","Stream","prependListener","emitter","event","_events","pipe","dest","source","ondata","pause","resume","_isStdio","didOnEnd","ERR_OUT_OF_RANGE","validateInteger","kWeakHandler","kResistStopPropagation","staticCompose","deprecate","ArrayPrototypePush","Boolean","MathFloor","Number","NumberIsNaN","PromiseReject","PromiseResolve","kEmpty","kEof","compose","composedStream","map","concurrency","filter","queue","signalOpt","cnt","onCatch","afterItemProcessed","maybeResume","pump","asIndexedPairs","index","_options$signal","some","unused","every","find","result","forEach","forEachFn","filterFn","ReduceAwareErrMissingArgs","message","reduce","reducer","initialValue","_options$signal2","hasInitialValue","addEventListener","gotAnyItemFromStream","_options$signal3","toArray","_options$signal4","flatMap","values","toIntegerOrInfinity","number","drop","_options$signal5","_options$signal6","take","_options$signal7","_options$signal8","streamReturningOperators","promiseReturningOperators","PassThrough","Transform","_transform","destroyImpl","ERR_STREAM_DESTROYED","writing","popCallback","pop","makeAsyncIterable","fromReadable","pumpToNode","finish","onresolve","wait","off","pumpToWeb","pipelineImpl","outerSignal","lastStreamCleanup","finishImpl","destroys","finishCount","_disposable","code","isLastStream","onError","_ret","_ret2","pt","src","dst","endFn","ArrayPrototypeIndexOf","NumberIsInteger","NumberParseInt","SafeSet","SymbolAsyncDispose","ReadableState","debug","BufferList","getHighWaterMark","getDefaultHighWaterMark","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kPaused","StringDecoder","kObjectMode","kEnded","kEndEmitted","kReading","kConstructed","kSync","kNeedReadable","kEmittedReadable","kReadableListening","kResumeScheduled","kErrorEmitted","kEmitClose","kAutoDestroy","kDestroyed","kClosed","kCloseEmitted","kMultiAwaitDrain","kReadingMore","kDataEmitted","makeBitMapDescriptor","bit","enumerable","state","isDuplex","pipes","flowing","defaultEncoding","awaitDrainWriters","decoder","needReadable","maybeReadMore","readableAddChunk","addToFront","toString","_isUint8Array","_uint8ArrayToBuffer","onEofChunk","addChunk","dataEmitted","emitReadable","emittedReadable","readableListening","resumeScheduled","multiAwaitDrain","readingMore","_undestroy","captureRejectionSymbol","readableEnded","isPaused","setEncoding","enc","content","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","len","pipeOnDrain","size","delete","updateReadableListening","nReadingNextTick","resume_","streamToAsyncIterator","iter","createAsyncIterator","destroyOnReturn","fromList","endReadable","endReadableNT","endWritableNT","NaN","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanedUp","needDrain","includes","add","dests","splice","ev","addListener","removeAllListeners","paused","streamKeys","j","bind","readableDidRead","readableAborted","readableHighWaterMark","readableBuffer","readableFlowing","readableLength","readableEncoding","pipesCount","_fromList","readableStream","newStreamReadableFromReadableStream","streamReadable","newReadableStreamFromStreamReadable","_ref","_src$readableObjectMo","defaultHighWaterMarkBytes","defaultHighWaterMarkObjectMode","highWaterMarkFrom","duplexKey","setDefaultHighWaterMark","hwm","kCallback","transform","flush","_flush","prefinish","SymbolFor","kIsErrored","kIsReadable","kIsWritable","kIsDisturbed","obj","strict","_obj$_readableState","_obj$_writableState","pipeThrough","cancel","isWritableEnded","isReadableEnded","_stream$_writableStat","_stream$_writableStat2","writableErrored","_stream$_readableStat","_stream$_readableStat2","readableErrored","_closed","isOutgoingMessage","_defaultKeepAlive","_removedConnection","_removedContLen","isServerResponse","_sent100","_stream$req","_consuming","_dumped","upgradeOrConnect","isDisturbed","_stream$kIsDisturbed","isErrored","_ref2","_ref3","_ref4","_ref5","_stream$kIsErrored","_stream$_readableStat3","_stream$_writableStat3","_stream$_readableStat4","_stream$_writableStat4","ArrayPrototypeSlice","Error","FunctionPrototypeSymbolHasInstance","ObjectDefineProperty","StringPrototypeToLowerCase","SymbolHasInstance","WritableState","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_ALREADY_FINISHED","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","kOnFinished","noDecode","decodeStrings","corked","bufferProcessing","onwrite","writecb","writelen","afterWriteTickInfo","resetBuffer","pendingcb","buffered","bufferedIndex","allBuffers","allNoop","writev","_writev","clearBuffer","finishMaybe","isEncoding","writeOrBuffer","doWrite","onwriteError","errorBuffer","count","afterWriteTick","afterWrite","_state$errored","onfinishCallbacks","_state$errored2","bufferedLength","chunks","needFinish","callFinal","onFinish","getBuffer","object","cork","uncork","setDefaultEncoding","writableAborted","writableStream","newStreamWritableFromWritableStream","streamWritable","newWritableStreamFromStreamWritable","ArrayPrototypeIncludes","ArrayPrototypeJoin","ArrayPrototypeMap","NumberMAX_SAFE_INTEGER","NumberMIN_SAFE_INTEGER","ObjectPrototypeHasOwnProperty","RegExpPrototypeExec","String","StringPrototypeToUpperCase","StringPrototypeTrim","hideStackFrames","ERR_SOCKET_BAD_PORT","ERR_UNKNOWN_SIGNAL","normalizeEncoding","isAsyncFunction","isArrayBufferView","signals","isInt32","isUint32","octalReg","modeDesc","parseFileMode","def","validateUint32","min","max","validateInt32","positive","validateString","validateNumber","validateOneOf","oneOf","allowed","getOwnPropertyValueOrDefault","key","defaultValue","allowArray","allowFunction","nullable","validateDictionary","validateArray","minLength","validateStringArray","validateBooleanArray","validateAbortSignalArray","indexedName","validateSignalName","validateBuffer","validateEncoding","normalizedEncoding","validatePort","port","allowZero","validatePlainFunction","validateUndefined","validateUnion","union","linkValueRegExp","validateLinkHeaderFormat","validateLinkHeaderValue","hints","hintsLength","link","CustomStream","promises","originalDestroy","Object","defineProperty","configurable","format","AggregateError","CustomAggregateError","kIsNodeError","kTypes","classRegExp","nodeInternalPrefix","assert","ERR_INTERNAL_ASSERTION","addNumericalSeparator","start","getMessage","msg","expectedLength","match","E","Base","NodeError","defineProperties","hidden","innerError","outerError","Array","isArray","errors","expected","actual","endsWith","types","instances","other","toLowerCase","test","pos","indexOf","last","_actual$constructor","inspected","colors","TypeError","type","input","_value$constructor","a","range","received","isInteger","Math","abs","RangeError","el","sep","ArrayPrototypePop","thisArgs","instance","Function","hasInstance","floor","isNaN","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseInt","props","prop","getOwnPropertyDescriptor","target","proto","setPrototypeOf","PromisePrototypeCatch","thenFn","catchFn","ReflectApply","Reflect","RegExpPrototypeTest","Set","toUpperCase","trim","asyncIterator","dispose","asyncDispose","AbortSignal","AsyncFunction","getPrototypeOf","freeze","rej","promisify","debuglog","replace","_unused","replacement","toFixed","JSON","stringify","ctor","is","arr","ArrayBuffer","isView","listener","removeEventListener","queueMicrotask","_removeEventListener","AbortSignalAny","any","custom","customPromisify","ERR_ILLEGAL_CONSTRUCTOR","utils","op","byteLength","pl","lastArg","ObjectEncoder","array","jsonld","StringEncoder","SerializerStream","encoder","quad","triple","graph","termType","subjectValue","subject","predicate","objectValue","static","language","datatype","Serializer","CustomJsonLdSerializer"],"sourceRoot":""} \ No newline at end of file diff --git a/js/250.f09c4840.js b/js/250.f09c4840.js deleted file mode 100644 index 89416cd..0000000 --- a/js/250.f09c4840.js +++ /dev/null @@ -1,2 +0,0 @@ -(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[250],{41134:function(e,t,r){"use strict";const{AbortError:n,codes:o}=r(18461),{isNodeStream:i,isWebStream:a,kControllerErrorFunction:l}=r(58516),s=r(5499),{ERR_INVALID_ARG_TYPE:d}=o,u=(e,t)=>{if("object"!==typeof e||!("aborted"in e))throw new d(t,"AbortSignal",e)};e.exports.addAbortSignal=function(t,r){if(u(t,"signal"),!i(r)&&!a(r))throw new d("stream",["ReadableStream","WritableStream","Stream"],r);return e.exports.addAbortSignalNoValidate(t,r)},e.exports.addAbortSignalNoValidate=function(e,t){if("object"!==typeof e||!("aborted"in e))return t;const r=i(t)?()=>{t.destroy(new n(void 0,{cause:e.reason}))}:()=>{t[l](new n(void 0,{cause:e.reason}))};return e.aborted?r():(e.addEventListener("abort",r),s(t,(()=>e.removeEventListener("abort",r)))),t}},65072:function(e,t,r){"use strict";const{StringPrototypeSlice:n,SymbolIterator:o,TypedArrayPrototypeSet:i,Uint8Array:a}=r(60341),{Buffer:l}=r(48764),{inspect:s}=r(57255);e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(e){const t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}shift(){if(0===this.length)return;const e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(0===this.length)return"";let t=this.head,r=""+t.data;while(null!==(t=t.next))r+=e+t.data;return r}concat(e){if(0===this.length)return l.alloc(0);const t=l.allocUnsafe(e>>>0);let r=this.head,n=0;while(r)i(t,r.data,n),n+=r.data.length,r=r.next;return t}consume(e,t){const r=this.head.data;if(ei.length)){e===i.length?(t+=i,++o,r.next?this.head=r.next:this.head=this.tail=null):(t+=n(i,0,e),this.head=r,r.data=n(i,e));break}t+=i,e-=i.length,++o}while(null!==(r=r.next));return this.length-=o,t}_getBuffer(e){const t=l.allocUnsafe(e),r=e;let n=this.head,o=0;do{const l=n.data;if(!(e>l.length)){e===l.length?(i(t,l,r-e),++o,n.next?this.head=n.next:this.head=this.tail=null):(i(t,new a(l.buffer,l.byteOffset,e),r-e),this.head=n,n.data=l.slice(e));break}i(t,l,r-e),e-=l.length,++o}while(null!==(n=n.next));return this.length-=o,t}[Symbol.for("nodejs.util.inspect.custom")](e,t){return s(this,{...t,depth:0,customInspect:!1})}}},7422:function(e,t,r){"use strict";const{pipeline:n}=r(91519),o=r(27415),{destroyer:i}=r(20339),{isNodeStream:a,isReadable:l,isWritable:s,isWebStream:d,isTransformStream:u,isWritableStream:c,isReadableStream:f}=r(58516),{AbortError:h,codes:{ERR_INVALID_ARG_VALUE:b,ERR_MISSING_ARGS:p}}=r(18461),y=r(5499);e.exports=function(...e){if(0===e.length)throw new p("streams");if(1===e.length)return o.from(e[0]);const t=[...e];if("function"===typeof e[0]&&(e[0]=o.from(e[0])),"function"===typeof e[e.length-1]){const t=e.length-1;e[t]=o.from(e[t])}for(let n=0;n0&&!(s(e[n])||c(e[n])||u(e[n])))throw new b(`streams[${n}]`,t[n],"must be writable")}let r,_,w,g,m;function S(e){const t=g;g=null,t?t(e):e?m.destroy(e):A||R||m.destroy()}const v=e[0],E=n(e,S),R=!!(s(v)||c(v)||u(v)),A=!!(l(E)||f(E)||u(E));if(m=new o({writableObjectMode:!(null===v||void 0===v||!v.writableObjectMode),readableObjectMode:!(null===E||void 0===E||!E.writableObjectMode),writable:R,readable:A}),R){if(a(v))m._write=function(e,t,n){v.write(e,t)?n():r=n},m._final=function(e){v.end(),_=e},v.on("drain",(function(){if(r){const e=r;r=null,e()}}));else if(d(v)){const e=u(v)?v.writable:v,t=e.getWriter();m._write=async function(e,r,n){try{await t.ready,t.write(e).catch((()=>{})),n()}catch(o){n(o)}},m._final=async function(e){try{await t.ready,t.close().catch((()=>{})),_=e}catch(r){e(r)}}}const e=u(E)?E.readable:E;y(e,(()=>{if(_){const e=_;_=null,e()}}))}if(A)if(a(E))E.on("readable",(function(){if(w){const e=w;w=null,e()}})),E.on("end",(function(){m.push(null)})),m._read=function(){while(1){const e=E.read();if(null===e)return void(w=m._read);if(!m.push(e))return}};else if(d(E)){const e=u(E)?E.readable:E,t=e.getReader();m._read=async function(){while(1)try{const{value:e,done:r}=await t.read();if(!m.push(e))return;if(r)return void m.push(null)}catch{return}}}return m._destroy=function(e,t){e||null===g||(e=new h),w=null,r=null,_=null,null===g?t(e):(g=t,a(E)&&i(E,e))},m}},20339:function(e,t,r){"use strict";const n=r(34155),{aggregateTwoErrors:o,codes:{ERR_MULTIPLE_CALLBACK:i},AbortError:a}=r(18461),{Symbol:l}=r(60341),{kDestroyed:s,isDestroyed:d,isFinished:u,isServerRequest:c}=r(58516),f=l("kDestroy"),h=l("kConstruct");function b(e,t,r){e&&(e.stack,t&&!t.errored&&(t.errored=e),r&&!r.errored&&(r.errored=e))}function p(e,t){const r=this._readableState,n=this._writableState,i=n||r;return null!==n&&void 0!==n&&n.destroyed||null!==r&&void 0!==r&&r.destroyed?("function"===typeof t&&t(),this):(b(e,n,r),n&&(n.destroyed=!0),r&&(r.destroyed=!0),i.constructed?y(this,e,t):this.once(f,(function(r){y(this,o(r,e),t)})),this)}function y(e,t,r){let o=!1;function i(t){if(o)return;o=!0;const i=e._readableState,a=e._writableState;b(t,a,i),a&&(a.closed=!0),i&&(i.closed=!0),"function"===typeof r&&r(t),t?n.nextTick(_,e,t):n.nextTick(w,e)}try{e._destroy(t||null,i)}catch(t){i(t)}}function _(e,t){g(e,t),w(e)}function w(e){const t=e._readableState,r=e._writableState;r&&(r.closeEmitted=!0),t&&(t.closeEmitted=!0),(null!==r&&void 0!==r&&r.emitClose||null!==t&&void 0!==t&&t.emitClose)&&e.emit("close")}function g(e,t){const r=e._readableState,n=e._writableState;null!==n&&void 0!==n&&n.errorEmitted||null!==r&&void 0!==r&&r.errorEmitted||(n&&(n.errorEmitted=!0),r&&(r.errorEmitted=!0),e.emit("error",t))}function m(){const e=this._readableState,t=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=!1===e.readable,e.endEmitted=!1===e.readable),t&&(t.constructed=!0,t.destroyed=!1,t.closed=!1,t.closeEmitted=!1,t.errored=null,t.errorEmitted=!1,t.finalCalled=!1,t.prefinished=!1,t.ended=!1===t.writable,t.ending=!1===t.writable,t.finished=!1===t.writable)}function S(e,t,r){const o=e._readableState,i=e._writableState;if(null!==i&&void 0!==i&&i.destroyed||null!==o&&void 0!==o&&o.destroyed)return this;null!==o&&void 0!==o&&o.autoDestroy||null!==i&&void 0!==i&&i.autoDestroy?e.destroy(t):t&&(t.stack,i&&!i.errored&&(i.errored=t),o&&!o.errored&&(o.errored=t),r?n.nextTick(g,e,t):g(e,t))}function v(e,t){if("function"!==typeof e._construct)return;const r=e._readableState,o=e._writableState;r&&(r.constructed=!1),o&&(o.constructed=!1),e.once(h,t),e.listenerCount(h)>1||n.nextTick(E,e)}function E(e){let t=!1;function r(r){if(t)return void S(e,null!==r&&void 0!==r?r:new i);t=!0;const o=e._readableState,a=e._writableState,l=a||o;o&&(o.constructed=!0),a&&(a.constructed=!0),l.destroyed?e.emit(f,r):r?S(e,r,!0):n.nextTick(R,e)}try{e._construct((e=>{n.nextTick(r,e)}))}catch(o){n.nextTick(r,o)}}function R(e){e.emit(h)}function A(e){return(null===e||void 0===e?void 0:e.setHeader)&&"function"===typeof e.abort}function T(e){e.emit("close")}function k(e,t){e.emit("error",t),n.nextTick(T,e)}function I(e,t){e&&!d(e)&&(t||u(e)||(t=new a),c(e)?(e.socket=null,e.destroy(t)):A(e)?e.abort():A(e.req)?e.req.abort():"function"===typeof e.destroy?e.destroy(t):"function"===typeof e.close?e.close():t?n.nextTick(k,e,t):n.nextTick(T,e),e.destroyed||(e[s]=!0))}e.exports={construct:v,destroyer:I,destroy:p,undestroy:m,errorOrDestroy:S}},27415:function(e,t,r){"use strict";const{ObjectDefineProperties:n,ObjectGetOwnPropertyDescriptor:o,ObjectKeys:i,ObjectSetPrototypeOf:a}=r(60341);e.exports=d;const l=r(377),s=r(11339);a(d.prototype,l.prototype),a(d,l);{const e=i(s.prototype);for(let t=0;t{c=!1,e&&y(t,e),b(e)})),d._write=function(e,t,o){r.write(e,t)?o():n=o},d._final=function(e){r.end(),o=e},r.on("drain",(function(){if(n){const e=n;n=null,e()}})),r.on("finish",(function(){if(o){const e=o;o=null,e()}}))),u&&(f(t,(e=>{u=!1,e&&y(t,e),b(e)})),t.on("readable",(function(){if(l){const e=l;l=null,e()}})),t.on("end",(function(){d.push(null)})),d._read=function(){while(1){const e=t.read();if(null===e)return void(l=d._read);if(!d.push(e))return}}),d._destroy=function(e,i){e||null===s||(e=new h),l=null,n=null,o=null,null===s?i(e):(s=i,y(r,e),y(t,e))},d}e.exports=function e(t,r){if(c(t))return t;if(d(t))return k({readable:t});if(u(t))return k({writable:t});if(s(t))return k({writable:!1,readable:!1});if("function"===typeof t){const{value:e,write:o,final:i,destroy:a}=T(t);if(l(e))return m(A,e,{objectMode:!0,write:o,final:i,destroy:a});const s=null===e||void 0===e?void 0:e.then;if("function"===typeof s){let t;const r=R(s,e,(e=>{if(null!=e)throw new p("nully","body",e)}),(e=>{y(t,e)}));return t=new A({objectMode:!0,readable:!1,write:o,final(e){i((async()=>{try{await r,n.nextTick(e,null)}catch(t){n.nextTick(e,t)}}))},destroy:a})}throw new p("Iterable, AsyncIterable or AsyncFunction",r,e)}if(v(t))return e(t.arrayBuffer());if(l(t))return m(A,t,{objectMode:!0,writable:!1});if("object"===typeof(null===t||void 0===t?void 0:t.writable)||"object"===typeof(null===t||void 0===t?void 0:t.readable)){const r=null!==t&&void 0!==t&&t.readable?d(null===t||void 0===t?void 0:t.readable)?null===t||void 0===t?void 0:t.readable:e(t.readable):void 0,n=null!==t&&void 0!==t&&t.writable?u(null===t||void 0===t?void 0:t.writable)?null===t||void 0===t?void 0:t.writable:e(t.writable):void 0;return k({readable:r,writable:n})}const o=null===t||void 0===t?void 0:t.then;if("function"===typeof o){let e;return R(o,t,(t=>{null!=t&&e.push(t),e.push(null)}),(t=>{y(e,t)})),e=new A({objectMode:!0,writable:!1,read(){}})}throw new b(r,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],t)}},5499:function(e,t,r){const n=r(34155),{AbortError:o,codes:i}=r(18461),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:l}=i,{kEmptyObject:s,once:d}=r(57255),{validateAbortSignal:u,validateFunction:c,validateObject:f,validateBoolean:h}=r(12309),{Promise:b,PromisePrototypeThen:p}=r(60341),{isClosed:y,isReadable:_,isReadableNodeStream:w,isReadableStream:g,isReadableFinished:m,isReadableErrored:S,isWritable:v,isWritableNodeStream:E,isWritableStream:R,isWritableFinished:A,isWritableErrored:T,isNodeStream:k,willEmitClose:I,kIsClosedPromise:N}=r(58516);function M(e){return e.setHeader&&"function"===typeof e.abort}const x=()=>{};function j(e,t,r){var i,h;if(2===arguments.length?(r=t,t=s):null==t?t=s:f(t,"options"),c(r,"callback"),u(t.signal,"options.signal"),r=d(r),g(e)||R(e))return O(e,t,r);if(!k(e))throw new a("stream",["ReadableStream","WritableStream","Stream"],e);const b=null!==(i=t.readable)&&void 0!==i?i:w(e),p=null!==(h=t.writable)&&void 0!==h?h:E(e),N=e._writableState,j=e._readableState,D=()=>{e.writable||W()};let L=I(e)&&w(e)===b&&E(e)===p,P=A(e,!1);const W=()=>{P=!0,e.destroyed&&(L=!1),(!L||e.readable&&!b)&&(b&&!$||r.call(e))};let $=m(e,!1);const C=()=>{$=!0,e.destroyed&&(L=!1),(!L||e.writable&&!p)&&(p&&!P||r.call(e))},F=t=>{r.call(e,t)};let U=y(e);const B=()=>{U=!0;const t=T(e)||S(e);return t&&"boolean"!==typeof t?r.call(e,t):b&&!$&&w(e,!0)&&!m(e,!1)?r.call(e,new l):!p||P||A(e,!1)?void r.call(e):r.call(e,new l)},V=()=>{U=!0;const t=T(e)||S(e);if(t&&"boolean"!==typeof t)return r.call(e,t);r.call(e)},G=()=>{e.req.on("finish",W)};M(e)?(e.on("complete",W),L||e.on("abort",B),e.req?G():e.on("request",G)):p&&!N&&(e.on("end",D),e.on("close",D)),L||"boolean"!==typeof e.aborted||e.on("aborted",B),e.on("end",C),e.on("finish",W),!1!==t.error&&e.on("error",F),e.on("close",B),U?n.nextTick(B):null!==N&&void 0!==N&&N.errorEmitted||null!==j&&void 0!==j&&j.errorEmitted?L||n.nextTick(V):(b||L&&!_(e)||!P&&!1!==v(e))&&(p||L&&!v(e)||!$&&!1!==_(e))?j&&e.req&&e.aborted&&n.nextTick(V):n.nextTick(V);const H=()=>{r=x,e.removeListener("aborted",B),e.removeListener("complete",W),e.removeListener("abort",B),e.removeListener("request",G),e.req&&e.req.removeListener("finish",W),e.removeListener("end",D),e.removeListener("close",D),e.removeListener("finish",W),e.removeListener("end",C),e.removeListener("error",F),e.removeListener("close",B)};if(t.signal&&!U){const i=()=>{const n=r;H(),n.call(e,new o(void 0,{cause:t.signal.reason}))};if(t.signal.aborted)n.nextTick(i);else{const n=r;r=d(((...r)=>{t.signal.removeEventListener("abort",i),n.apply(e,r)})),t.signal.addEventListener("abort",i)}}return H}function O(e,t,r){let i=!1,a=x;if(t.signal)if(a=()=>{i=!0,r.call(e,new o(void 0,{cause:t.signal.reason}))},t.signal.aborted)n.nextTick(a);else{const n=r;r=d(((...r)=>{t.signal.removeEventListener("abort",a),n.apply(e,r)})),t.signal.addEventListener("abort",a)}const l=(...t)=>{i||n.nextTick((()=>r.apply(e,t)))};return p(e[N].promise,l,l),x}function D(e,t){var r;let n=!1;return null===t&&(t=s),null!==(r=t)&&void 0!==r&&r.cleanup&&(h(t.cleanup,"cleanup"),n=t.cleanup),new b(((r,o)=>{const i=j(e,t,(e=>{n&&i(),e?o(e):r()}))}))}e.exports=j,e.exports.finished=D},61949:function(e,t,r){"use strict";const n=r(34155),{PromisePrototypeThen:o,SymbolAsyncIterator:i,SymbolIterator:a}=r(60341),{Buffer:l}=r(48764),{ERR_INVALID_ARG_TYPE:s,ERR_STREAM_NULL_VALUES:d}=r(18461).codes;function u(e,t,r){let u,c;if("string"===typeof t||t instanceof l)return new e({objectMode:!0,...r,read(){this.push(t),this.push(null)}});if(t&&t[i])c=!0,u=t[i]();else{if(!t||!t[a])throw new s("iterable",["Iterable"],t);c=!1,u=t[a]()}const f=new e({objectMode:!0,highWaterMark:1,...r});let h=!1;async function b(e){const t=void 0!==e&&null!==e,r="function"===typeof u.throw;if(t&&r){const{value:t,done:r}=await u.throw(e);if(await t,r)return}if("function"===typeof u.return){const{value:e}=await u.return();await e}}async function p(){for(;;){try{const{value:e,done:t}=c?await u.next():u.next();if(t)f.push(null);else{const t=e&&"function"===typeof e.then?await e:e;if(null===t)throw h=!1,new d;if(f.push(t))continue;h=!1}}catch(e){f.destroy(e)}break}}return f._read=function(){h||(h=!0,p())},f._destroy=function(e,t){o(b(e),(()=>n.nextTick(t,e)),(r=>n.nextTick(t,r||e)))},f}e.exports=u},33491:function(e,t,r){"use strict";const{ArrayIsArray:n,ObjectSetPrototypeOf:o}=r(60341),{EventEmitter:i}=r(17187);function a(e){i.call(this,e)}function l(e,t,r){if("function"===typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?n(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}o(a.prototype,i.prototype),o(a,i),a.prototype.pipe=function(e,t){const r=this;function n(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function o(){r.readable&&r.resume&&r.resume()}r.on("data",n),e.on("drain",o),e._isStdio||t&&!1===t.end||(r.on("end",s),r.on("close",d));let a=!1;function s(){a||(a=!0,e.end())}function d(){a||(a=!0,"function"===typeof e.destroy&&e.destroy())}function u(e){c(),0===i.listenerCount(this,"error")&&this.emit("error",e)}function c(){r.removeListener("data",n),e.removeListener("drain",o),r.removeListener("end",s),r.removeListener("close",d),r.removeListener("error",u),e.removeListener("error",u),r.removeListener("end",c),r.removeListener("close",c),e.removeListener("close",c)}return l(r,"error",u),l(e,"error",u),r.on("end",c),r.on("close",c),e.on("close",c),e.emit("pipe",r),e},e.exports={Stream:a,prependListener:l}},60918:function(e,t,r){"use strict";const n=globalThis.AbortController||r(28599).AbortController,{codes:{ERR_INVALID_ARG_VALUE:o,ERR_INVALID_ARG_TYPE:i,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:l},AbortError:s}=r(18461),{validateAbortSignal:d,validateInteger:u,validateObject:c}=r(12309),f=r(60341).Symbol("kWeak"),{finished:h}=r(5499),b=r(7422),{addAbortSignalNoValidate:p}=r(41134),{isWritable:y,isNodeStream:_}=r(58516),{ArrayPrototypePush:w,MathFloor:g,Number:m,NumberIsNaN:S,Promise:v,PromiseReject:E,PromisePrototypeThen:R,Symbol:A}=r(60341),T=A("kEmpty"),k=A("kEof");function I(e,t){if(null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),_(e)&&!y(e))throw new o("stream",e,"must be writable");const r=b(this,e);return null!==t&&void 0!==t&&t.signal&&p(t.signal,r),r}function N(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal");let r=1;return null!=(null===t||void 0===t?void 0:t.concurrency)&&(r=g(t.concurrency)),u(r,"concurrency",1),async function*(){var o,i;const a=new n,l=this,d=[],u=a.signal,c={signal:u},f=()=>a.abort();let h,b;null!==t&&void 0!==t&&null!==(o=t.signal)&&void 0!==o&&o.aborted&&f(),null===t||void 0===t||null===(i=t.signal)||void 0===i||i.addEventListener("abort",f);let p=!1;function y(){p=!0}async function _(){try{for await(let t of l){var n;if(p)return;if(u.aborted)throw new s;try{t=e(t,c)}catch(i){t=E(i)}t!==T&&("function"===typeof(null===(n=t)||void 0===n?void 0:n.catch)&&t.catch(y),d.push(t),h&&(h(),h=null),!p&&d.length&&d.length>=r&&await new v((e=>{b=e})))}d.push(k)}catch(i){const e=E(i);R(e,void 0,y),d.push(e)}finally{var o;p=!0,h&&(h(),h=null),null===t||void 0===t||null===(o=t.signal)||void 0===o||o.removeEventListener("abort",f)}}_();try{while(1){while(d.length>0){const e=await d[0];if(e===k)return;if(u.aborted)throw new s;e!==T&&(yield e),d.shift(),b&&(b(),b=null)}await new v((e=>{h=e}))}}finally{a.abort(),p=!0,b&&(b(),b=null)}}.call(this)}function M(e=void 0){return null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal"),async function*(){let t=0;for await(const n of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new s({cause:e.signal.reason});yield[t++,n]}}.call(this)}async function x(e,t=void 0){for await(const r of L.call(this,e,t))return!0;return!1}async function j(e,t=void 0){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);return!await x.call(this,(async(...t)=>!await e(...t)),t)}async function O(e,t){for await(const r of L.call(this,e,t))return r}async function D(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r),T}for await(const n of N.call(this,r,t));}function L(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r)?t:T}return N.call(this,r,t)}class P extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function W(e,t,r){var o;if("function"!==typeof e)throw new i("reducer",["Function","AsyncFunction"],e);null!=r&&c(r,"options"),null!=(null===r||void 0===r?void 0:r.signal)&&d(r.signal,"options.signal");let a=arguments.length>1;if(null!==r&&void 0!==r&&null!==(o=r.signal)&&void 0!==o&&o.aborted){const e=new s(void 0,{cause:r.signal.reason});throw this.once("error",(()=>{})),await h(this.destroy(e)),e}const l=new n,u=l.signal;if(null!==r&&void 0!==r&&r.signal){const e={once:!0,[f]:this};r.signal.addEventListener("abort",(()=>l.abort()),e)}let b=!1;try{for await(const n of this){var p;if(b=!0,null!==r&&void 0!==r&&null!==(p=r.signal)&&void 0!==p&&p.aborted)throw new s;a?t=await e(t,n,{signal:u}):(t=n,a=!0)}if(!b&&!a)throw new P}finally{l.abort()}return t}async function $(e){null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal");const t=[];for await(const n of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new s(void 0,{cause:e.signal.reason});w(t,n)}return t}function C(e,t){const r=N.call(this,e,t);return async function*(){for await(const e of r)yield*e}.call(this)}function F(e){if(e=m(e),S(e))return 0;if(e<0)throw new l("number",">= 0",e);return e}function U(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=F(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new s;for await(const o of this){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new s;e--<=0&&(yield o)}}.call(this)}function B(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=F(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new s;for await(const o of this){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new s;if(!(e-- >0))return;yield o}}.call(this)}e.exports.streamReturningOperators={asIndexedPairs:M,drop:U,filter:L,flatMap:C,map:N,take:B,compose:I},e.exports.promiseReturningOperators={every:j,forEach:D,reduce:W,toArray:$,some:x,find:O}},57295:function(e,t,r){"use strict";const{ObjectSetPrototypeOf:n}=r(60341);e.exports=i;const o=r(21122);function i(e){if(!(this instanceof i))return new i(e);o.call(this,e)}n(i.prototype,o.prototype),n(i,o),i.prototype._transform=function(e,t,r){r(null,e)}},91519:function(e,t,r){const n=r(34155),{ArrayIsArray:o,Promise:i,SymbolAsyncIterator:a}=r(60341),l=r(5499),{once:s}=r(57255),d=r(20339),u=r(27415),{aggregateTwoErrors:c,codes:{ERR_INVALID_ARG_TYPE:f,ERR_INVALID_RETURN_VALUE:h,ERR_MISSING_ARGS:b,ERR_STREAM_DESTROYED:p,ERR_STREAM_PREMATURE_CLOSE:y},AbortError:_}=r(18461),{validateFunction:w,validateAbortSignal:g}=r(12309),{isIterable:m,isReadable:S,isReadableNodeStream:v,isNodeStream:E,isTransformStream:R,isWebStream:A,isReadableStream:T,isReadableEnded:k}=r(58516),I=globalThis.AbortController||r(28599).AbortController;let N,M;function x(e,t,r){let n=!1;e.on("close",(()=>{n=!0}));const o=l(e,{readable:t,writable:r},(e=>{n=!e}));return{destroy:t=>{n||(n=!0,d.destroyer(e,t||new p("pipe")))},cleanup:o}}function j(e){return w(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function O(e){if(m(e))return e;if(v(e))return D(e);throw new f("val",["Readable","Iterable","AsyncIterable"],e)}async function*D(e){M||(M=r(377)),yield*M.prototype[a].call(e)}async function L(e,t,r,{end:n}){let o,a=null;const s=e=>{if(e&&(o=e),a){const e=a;a=null,e()}},d=()=>new i(((e,t)=>{o?t(o):a=()=>{o?t(o):e()}}));t.on("drain",s);const u=l(t,{readable:!1},s);try{t.writableNeedDrain&&await d();for await(const r of e)t.write(r)||await d();n&&t.end(),await d(),r()}catch(f){r(o!==f?c(o,f):f)}finally{u(),t.off("drain",s)}}async function P(e,t,r,{end:n}){R(t)&&(t=t.writable);const o=t.getWriter();try{for await(const t of e)await o.ready,o.write(t).catch((()=>{}));await o.ready,n&&await o.close(),r()}catch(i){try{await o.abort(i),r(i)}catch(i){r(i)}}}function W(...e){return $(e,s(j(e)))}function $(e,t,i){if(1===e.length&&o(e[0])&&(e=e[0]),e.length<2)throw new b("streams");const a=new I,l=a.signal,s=null===i||void 0===i?void 0:i.signal,d=[];function c(){D(new _)}let p,y;g(s,"options.signal"),null===s||void 0===s||s.addEventListener("abort",c);const w=[];let k,M=0;function j(e){D(e,0===--M)}function D(e,r){if(!e||p&&"ERR_STREAM_PREMATURE_CLOSE"!==p.code||(p=e),p||r){while(w.length)w.shift()(p);null===s||void 0===s||s.removeEventListener("abort",c),a.abort(),r&&(p||d.forEach((e=>e())),n.nextTick(t,p,y))}}for(let U=0;U0,H=V||!1!==(null===i||void 0===i?void 0:i.end),q=U===e.length-1;if(E(B)){if(H){const{destroy:Y,cleanup:K}=x(B,V,G);w.push(Y),S(B)&&q&&d.push(K)}function W(e){e&&"AbortError"!==e.name&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code&&j(e)}B.on("error",W),S(B)&&q&&d.push((()=>{B.removeListener("error",W)}))}if(0===U)if("function"===typeof B){if(k=B({signal:l}),!m(k))throw new h("Iterable, AsyncIterable or Stream","source",k)}else k=m(B)||v(B)||R(B)?B:u.from(B);else if("function"===typeof B){var $;if(R(k))k=O(null===($=k)||void 0===$?void 0:$.readable);else k=O(k);if(k=B(k,{signal:l}),V){if(!m(k,!0))throw new h("AsyncIterable",`transform[${U-1}]`,k)}else{var F;N||(N=r(57295));const z=new N({objectMode:!0}),J=null===(F=k)||void 0===F?void 0:F.then;if("function"===typeof J)M++,J.call(k,(e=>{y=e,null!=e&&z.write(e),H&&z.end(),n.nextTick(j)}),(e=>{z.destroy(e),n.nextTick(j,e)}));else if(m(k,!0))M++,L(k,z,j,{end:H});else{if(!T(k)&&!R(k))throw new h("AsyncIterable or Promise","destination",k);{const Q=k.readable||k;M++,L(Q,z,j,{end:H})}}k=z;const{destroy:X,cleanup:Z}=x(k,!1,!0);w.push(X),q&&d.push(Z)}}else if(E(B)){if(v(k)){M+=2;const ee=C(k,B,j,{end:H});S(B)&&q&&d.push(ee)}else if(R(k)||T(k)){const te=k.readable||k;M++,L(te,B,j,{end:H})}else{if(!m(k))throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],k);M++,L(k,B,j,{end:H})}k=B}else if(A(B)){if(v(k))M++,P(O(k),B,j,{end:H});else if(T(k)||m(k))M++,P(k,B,j,{end:H});else{if(!R(k))throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],k);M++,P(k.readable,B,j,{end:H})}k=B}else k=u.from(B)}return(null!==l&&void 0!==l&&l.aborted||null!==s&&void 0!==s&&s.aborted)&&n.nextTick(c),k}function C(e,t,r,{end:o}){let i=!1;if(t.on("close",(()=>{i||r(new y)})),e.pipe(t,{end:!1}),o){function a(){i=!0,t.end()}k(e)?n.nextTick(a):e.once("end",a)}else r();return l(e,{readable:!0,writable:!1},(t=>{const n=e._readableState;t&&"ERR_STREAM_PREMATURE_CLOSE"===t.code&&n&&n.ended&&!n.errored&&!n.errorEmitted?e.once("end",r).once("error",r):r(t)})),l(t,{readable:!1,writable:!0},r)}e.exports={pipelineImpl:$,pipeline:W}},377:function(e,t,r){const n=r(34155),{ArrayPrototypeIndexOf:o,NumberIsInteger:i,NumberIsNaN:a,NumberParseInt:l,ObjectDefineProperties:s,ObjectKeys:d,ObjectSetPrototypeOf:u,Promise:c,SafeSet:f,SymbolAsyncIterator:h,Symbol:b}=r(60341);e.exports=C,C.ReadableState=$;const{EventEmitter:p}=r(17187),{Stream:y,prependListener:_}=r(33491),{Buffer:w}=r(48764),{addAbortSignal:g}=r(41134),m=r(5499);let S=r(57255).debuglog("stream",(e=>{S=e}));const v=r(65072),E=r(20339),{getHighWaterMark:R,getDefaultHighWaterMark:A}=r(94864),{aggregateTwoErrors:T,codes:{ERR_INVALID_ARG_TYPE:k,ERR_METHOD_NOT_IMPLEMENTED:I,ERR_OUT_OF_RANGE:N,ERR_STREAM_PUSH_AFTER_EOF:M,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:x}}=r(18461),{validateObject:j}=r(12309),O=b("kPaused"),{StringDecoder:D}=r(32553),L=r(61949);u(C.prototype,y.prototype),u(C,y);const P=()=>{},{errorOrDestroy:W}=E;function $(e,t,n){"boolean"!==typeof n&&(n=t instanceof r(27415)),this.objectMode=!(!e||!e.objectMode),n&&(this.objectMode=this.objectMode||!(!e||!e.readableObjectMode)),this.highWaterMark=e?R(this,e,"readableHighWaterMark",n):A(!1),this.buffer=new v,this.length=0,this.pipes=[],this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.constructed=!0,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this[O]=null,this.errorEmitted=!1,this.emitClose=!e||!1!==e.emitClose,this.autoDestroy=!e||!1!==e.autoDestroy,this.destroyed=!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this.defaultEncoding=e&&e.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.multiAwaitDrain=!1,this.readingMore=!1,this.dataEmitted=!1,this.decoder=null,this.encoding=null,e&&e.encoding&&(this.decoder=new D(e.encoding),this.encoding=e.encoding)}function C(e){if(!(this instanceof C))return new C(e);const t=this instanceof r(27415);this._readableState=new $(e,this,t),e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.construct&&(this._construct=e.construct),e.signal&&!t&&g(e.signal,this)),y.call(this,e),E.construct(this,(()=>{this._readableState.needReadable&&K(this,this._readableState)}))}function F(e,t,r,n){S("readableAddChunk",t);const o=e._readableState;let i;if(o.objectMode||("string"===typeof t?(r=r||o.defaultEncoding,o.encoding!==r&&(n&&o.encoding?t=w.from(t,r).toString(o.encoding):(t=w.from(t,r),r=""))):t instanceof w?r="":y._isUint8Array(t)?(t=y._uint8ArrayToBuffer(t),r=""):null!=t&&(i=new k("chunk",["string","Buffer","Uint8Array"],t))),i)W(e,i);else if(null===t)o.reading=!1,H(e,o);else if(o.objectMode||t&&t.length>0)if(n)if(o.endEmitted)W(e,new x);else{if(o.destroyed||o.errored)return!1;U(e,o,t,!0)}else if(o.ended)W(e,new M);else{if(o.destroyed||o.errored)return!1;o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?U(e,o,t,!1):K(e,o)):U(e,o,t,!1)}else n||(o.reading=!1,K(e,o));return!o.ended&&(o.length0?(t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null,t.dataEmitted=!0,e.emit("data",r)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&q(e)),K(e,t)}C.prototype.destroy=E.destroy,C.prototype._undestroy=E.undestroy,C.prototype._destroy=function(e,t){t(e)},C.prototype[p.captureRejectionSymbol]=function(e){this.destroy(e)},C.prototype.push=function(e,t){return F(this,e,t,!1)},C.prototype.unshift=function(e,t){return F(this,e,t,!0)},C.prototype.isPaused=function(){const e=this._readableState;return!0===e[O]||!1===e.flowing},C.prototype.setEncoding=function(e){const t=new D(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;const r=this._readableState.buffer;let n="";for(const o of r)n+=t.write(o);return r.clear(),""!==n&&r.push(n),this._readableState.length=n.length,this};const B=1073741824;function V(e){if(e>B)throw new N("size","<= 1GiB",e);return e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++,e}function G(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:a(e)?t.flowing&&t.length?t.buffer.first().length:t.length:e<=t.length?e:t.ended?t.length:0}function H(e,t){if(S("onEofChunk"),!t.ended){if(t.decoder){const e=t.decoder.end();e&&e.length&&(t.buffer.push(e),t.length+=t.objectMode?1:e.length)}t.ended=!0,t.sync?q(e):(t.needReadable=!1,t.emittedReadable=!0,Y(e))}}function q(e){const t=e._readableState;S("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(S("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(Y,e))}function Y(e){const t=e._readableState;S("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||t.errored||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,te(e)}function K(e,t){!t.readingMore&&t.constructed&&(t.readingMore=!0,n.nextTick(z,e,t))}function z(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!1===t[O]?t.flowing=!0:e.listenerCount("data")>0?e.resume():t.readableListening||(t.flowing=null)}function Z(e){S("readable nexttick read 0"),e.read(0)}function Q(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(ee,e,t))}function ee(e,t){S("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),te(e),t.flowing&&!t.reading&&e.read(0)}function te(e){const t=e._readableState;S("flow",t.flowing);while(t.flowing&&null!==e.read());}function re(e,t){"function"!==typeof e.read&&(e=C.wrap(e,{objectMode:!0}));const r=ne(e,t);return r.stream=e,r}async function*ne(e,t){let r,n=P;function o(t){this===e?(n(),n=P):n=t}e.on("readable",o);const i=m(e,{writable:!1},(e=>{r=e?T(r,e):null,n(),n=P}));try{while(1){const t=e.destroyed?null:e.read();if(null!==t)yield t;else{if(r)throw r;if(null===r)return;await new c(o)}}}catch(a){throw r=T(r,a),r}finally{!r&&!1===(null===t||void 0===t?void 0:t.destroyOnReturn)||void 0!==r&&!e._readableState.autoDestroy?(e.off("readable",o),i()):E.destroyer(e,null)}}function oe(e,t){if(0===t.length)return null;let r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function ie(e){const t=e._readableState;S("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(ae,t,e))}function ae(e,t){if(S("endReadableNT",e.endEmitted,e.length),!e.errored&&!e.closeEmitted&&!e.endEmitted&&0===e.length)if(e.endEmitted=!0,t.emit("end"),t.writable&&!1===t.allowHalfOpen)n.nextTick(le,t);else if(e.autoDestroy){const e=t._writableState,r=!e||e.autoDestroy&&(e.finished||!1===e.writable);r&&t.destroy()}}function le(e){const t=e.writable&&!e.writableEnded&&!e.destroyed;t&&e.end()}let se;function de(){return void 0===se&&(se={}),se}C.prototype.read=function(e){S("read",e),void 0===e?e=NaN:i(e)||(e=l(e,10));const t=this._readableState,r=e;if(e>t.highWaterMark&&(t.highWaterMark=V(e)),0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return S("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?ie(this):q(this),null;if(e=G(e,t),0===e&&t.ended)return 0===t.length&&ie(this),null;let n,o=t.needReadable;if(S("need readable",o),(0===t.length||t.length-e0?oe(e,t):null,null===n?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&ie(this)),null===n||t.errorEmitted||t.closeEmitted||(t.dataEmitted=!0,this.emit("data",n)),n},C.prototype._read=function(e){throw new I("_read()")},C.prototype.pipe=function(e,t){const r=this,o=this._readableState;1===o.pipes.length&&(o.multiAwaitDrain||(o.multiAwaitDrain=!0,o.awaitDrainWriters=new f(o.awaitDrainWriters?[o.awaitDrainWriters]:[]))),o.pipes.push(e),S("pipe count=%d opts=%j",o.pipes.length,t);const i=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr,a=i?s:g;function l(e,t){S("onunpipe"),e===r&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,c())}function s(){S("onend"),e.end()}let d;o.endEmitted?n.nextTick(a):r.once("end",a),e.on("unpipe",l);let u=!1;function c(){S("cleanup"),e.removeListener("close",y),e.removeListener("finish",w),d&&e.removeListener("drain",d),e.removeListener("error",p),e.removeListener("unpipe",l),r.removeListener("end",s),r.removeListener("end",g),r.removeListener("data",b),u=!0,d&&o.awaitDrainWriters&&(!e._writableState||e._writableState.needDrain)&&d()}function h(){u||(1===o.pipes.length&&o.pipes[0]===e?(S("false write response, pause",0),o.awaitDrainWriters=e,o.multiAwaitDrain=!1):o.pipes.length>1&&o.pipes.includes(e)&&(S("false write response, pause",o.awaitDrainWriters.size),o.awaitDrainWriters.add(e)),r.pause()),d||(d=J(r,e),e.on("drain",d))}function b(t){S("ondata");const r=e.write(t);S("dest.write",r),!1===r&&h()}function p(t){if(S("onerror",t),g(),e.removeListener("error",p),0===e.listenerCount("error")){const r=e._writableState||e._readableState;r&&!r.errorEmitted?W(e,t):e.emit("error",t)}}function y(){e.removeListener("finish",w),g()}function w(){S("onfinish"),e.removeListener("close",y),g()}function g(){S("unpipe"),r.unpipe(e)}return r.on("data",b),_(e,"error",p),e.once("close",y),e.once("finish",w),e.emit("pipe",r),!0===e.writableNeedDrain?o.flowing&&h():o.flowing||(S("pipe resume"),r.resume()),e},C.prototype.unpipe=function(e){const t=this._readableState,r={hasUnpiped:!1};if(0===t.pipes.length)return this;if(!e){const e=t.pipes;t.pipes=[],this.pause();for(let t=0;t0,!1!==o.flowing&&this.resume()):"readable"===e&&(o.endEmitted||o.readableListening||(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,S("on readable",o.length,o.reading),o.length?q(this):o.reading||n.nextTick(Z,this))),r},C.prototype.addListener=C.prototype.on,C.prototype.removeListener=function(e,t){const r=y.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(X,this),r},C.prototype.off=C.prototype.removeListener,C.prototype.removeAllListeners=function(e){const t=y.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(X,this),t},C.prototype.resume=function(){const e=this._readableState;return e.flowing||(S("resume"),e.flowing=!e.readableListening,Q(this,e)),e[O]=!1,this},C.prototype.pause=function(){return S("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(S("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[O]=!0,this},C.prototype.wrap=function(e){let t=!1;e.on("data",(r=>{!this.push(r)&&e.pause&&(t=!0,e.pause())})),e.on("end",(()=>{this.push(null)})),e.on("error",(e=>{W(this,e)})),e.on("close",(()=>{this.destroy()})),e.on("destroy",(()=>{this.destroy()})),this._read=()=>{t&&e.resume&&(t=!1,e.resume())};const r=d(e);for(let n=1;n{t?e?e(t):this.destroy(t):(null!=r&&this.push(r),this.push(null),e&&e())}))}function c(){this._final!==u&&u.call(this)}d.prototype._final=u,d.prototype._transform=function(e,t,r){throw new i("_transform()")},d.prototype._write=function(e,t,r){const n=this._readableState,o=this._writableState,i=n.length;this._transform(e,t,((e,t)=>{e?r(e):(null!=t&&this.push(t),o.ended||i===n.length||n.length{const e=this._writableState;e.writing||V(this,e),Y(this,e)}))}function L(e,t,r,o){const i=e._writableState;if("function"===typeof r)o=r,r=i.defaultEncoding;else{if(r){if("buffer"!==r&&!p.isEncoding(r))throw new I(r)}else r=i.defaultEncoding;"function"!==typeof o&&(o=M)}if(null===t)throw new T;if(!i.objectMode)if("string"===typeof t)!1!==i.decodeStrings&&(t=p.from(t,r),r="buffer");else if(t instanceof p)r="buffer";else{if(!b._isUint8Array(t))throw new m("chunk",["string","Buffer","Uint8Array"],t);t=b._uint8ArrayToBuffer(t),r="buffer"}let a;return i.ending?a=new k:i.destroyed&&(a=new R("write")),a?(n.nextTick(o,a),N(e,a,!0),a):(i.pendingcb++,P(e,i,t,r,o))}function P(e,t,r,n,o){const i=t.objectMode?1:r.length;t.length+=i;const a=t.lengthr.bufferedIndex&&V(e,r),o?null!==r.afterWriteTickInfo&&r.afterWriteTickInfo.cb===i?r.afterWriteTickInfo.count++:(r.afterWriteTickInfo={count:1,cb:i,stream:e,state:r},n.nextTick(F,r.afterWriteTickInfo)):U(e,r,1,i))):N(e,new v)}function F({stream:e,state:t,count:r,cb:n}){return t.afterWriteTickInfo=null,U(e,t,r,n)}function U(e,t,r,n){const o=!t.ending&&!e.destroyed&&0===t.length&&t.needDrain;o&&(t.needDrain=!1,e.emit("drain"));while(r-- >0)t.pendingcb--,n();t.destroyed&&B(t),Y(e,t)}function B(e){if(e.writing)return;for(let o=e.bufferedIndex;o1&&e._writev){t.pendingcb-=a-1;const n=t.allNoop?M:e=>{for(let t=l;t256?(r.splice(0,l),t.bufferedIndex=0):t.bufferedIndex=l}t.bufferProcessing=!1}function G(e){return e.ending&&!e.destroyed&&e.constructed&&0===e.length&&!e.errored&&0===e.buffered.length&&!e.finished&&!e.writing&&!e.errorEmitted&&!e.closeEmitted}function H(e,t){let r=!1;function o(o){if(r)N(e,null!==o&&void 0!==o?o:v());else if(r=!0,t.pendingcb--,o){const r=t[x].splice(0);for(let e=0;e{G(t)?K(e,t):t.pendingcb--}),e,t)):G(t)&&(t.pendingcb++,K(e,t))))}function K(e,t){t.pendingcb--,t.finished=!0;const r=t[x].splice(0);for(let n=0;n>>0}const N=/^[0-7]+$/,M="must be a 32-bit unsigned integer or an octal string";function x(e,t,r){if("undefined"===typeof e&&(e=r),"string"===typeof e){if(null===h(N,e))throw new m(t,e,M);e=c(e,8)}return D(e,t),e}const j=_(((e,t,r=u,n=d)=>{if("number"!==typeof e)throw new g(t,"number",e);if(!l(e))throw new S(t,"an integer",e);if(en)throw new S(t,`>= ${r} && <= ${n}`,e)})),O=_(((e,t,r=-2147483648,n=2147483647)=>{if("number"!==typeof e)throw new g(t,"number",e);if(!l(e))throw new S(t,"an integer",e);if(en)throw new S(t,`>= ${r} && <= ${n}`,e)})),D=_(((e,t,r=!1)=>{if("number"!==typeof e)throw new g(t,"number",e);if(!l(e))throw new S(t,"an integer",e);const n=r?1:0,o=4294967295;if(eo)throw new S(t,`>= ${n} && <= ${o}`,e)}));function L(e,t){if("string"!==typeof e)throw new g(t,"string",e)}function P(e,t,r=void 0,n){if("number"!==typeof e)throw new g(t,"number",e);if(null!=r&&en||(null!=r||null!=n)&&s(e))throw new S(t,`${null!=r?`>= ${r}`:""}${null!=r&&null!=n?" && ":""}${null!=n?`<= ${n}`:""}`,e)}const W=_(((e,t,r)=>{if(!o(r,e)){const n=i(a(r,(e=>"string"===typeof e?`'${e}'`:b(e))),", "),o="must be one of: "+n;throw new m(t,e,o)}}));function $(e,t){if("boolean"!==typeof e)throw new g(t,"boolean",e)}function C(e,t,r){return null!=e&&f(e,t)?e[t]:r}const F=_(((e,t,r=null)=>{const o=C(r,"allowArray",!1),i=C(r,"allowFunction",!1),a=C(r,"nullable",!1);if(!a&&null===e||!o&&n(e)||"object"!==typeof e&&(!i||"function"!==typeof e))throw new g(t,"Object",e)})),U=_(((e,t)=>{if(null!=e&&"object"!==typeof e&&"function"!==typeof e)throw new g(t,"a dictionary",e)})),B=_(((e,t,r=0)=>{if(!n(e))throw new g(t,"Array",e);if(e.length{if(!A(e))throw new g(t,["Buffer","TypedArray","DataView"],e)}));function Y(e,t){const r=E(t),n=e.length;if("hex"===r&&n%2!==0)throw new m("encoding",t,`is invalid for data of length ${n}`)}function K(e,t="Port",r=!0){if("number"!==typeof e&&"string"!==typeof e||"string"===typeof e&&0===y(e).length||+e!==+e>>>0||e>65535||0===e&&!r)throw new w(t,e,r);return 0|e}const z=_(((e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new g(t,"AbortSignal",e)})),J=_(((e,t)=>{if("function"!==typeof e)throw new g(t,"Function",e)})),X=_(((e,t)=>{if("function"!==typeof e||R(e))throw new g(t,"Function",e)})),Z=_(((e,t)=>{if(void 0!==e)throw new g(t,"undefined",e)}));function Q(e,t,r){if(!o(r,e))throw new g(t,`('${i(r,"|")}')`,e)}const ee=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function te(e,t){if("undefined"===typeof e||!h(ee,e))throw new m(t,e,'must be an array or string of format "; rel=preload; as=style"')}function re(e){if("string"===typeof e)return te(e,"hints"),e;if(n(e)){const t=e.length;let r="";if(0===t)return r;for(let n=0;n; rel=preload; as=style"')}e.exports={isInt32:k,isUint32:I,parseFileMode:x,validateArray:B,validateStringArray:V,validateBooleanArray:G,validateBoolean:$,validateBuffer:q,validateDictionary:U,validateEncoding:Y,validateFunction:J,validateInt32:O,validateInteger:j,validateNumber:P,validateObject:F,validateOneOf:W,validatePlainFunction:X,validatePort:K,validateSignalName:H,validateString:L,validateUint32:D,validateUndefined:Z,validateUnion:Q,validateAbortSignal:z,validateLinkHeaderValue:re}},98124:function(e,t,r){"use strict";const n=r(18152),o=r(74787),i=n.Readable.destroy;e.exports=n.Readable,e.exports._uint8ArrayToBuffer=n._uint8ArrayToBuffer,e.exports._isUint8Array=n._isUint8Array,e.exports.isDisturbed=n.isDisturbed,e.exports.isErrored=n.isErrored,e.exports.isReadable=n.isReadable,e.exports.Readable=n.Readable,e.exports.Writable=n.Writable,e.exports.Duplex=n.Duplex,e.exports.Transform=n.Transform,e.exports.PassThrough=n.PassThrough,e.exports.addAbortSignal=n.addAbortSignal,e.exports.finished=n.finished,e.exports.destroy=n.destroy,e.exports.destroy=i,e.exports.pipeline=n.pipeline,e.exports.compose=n.compose,Object.defineProperty(n,"promises",{configurable:!0,enumerable:!0,get(){return o}}),e.exports.Stream=n.Stream,e.exports["default"]=e.exports},18461:function(e,t,r){"use strict";const{format:n,inspect:o,AggregateError:i}=r(57255),a=globalThis.AggregateError||i,l=Symbol("kIsNodeError"),s=["string","function","number","object","Function","Object","boolean","bigint","symbol"],d=/^([A-Z][a-z0-9]*)+$/,u="__node_internal_",c={};function f(e,t){if(!e)throw new c.ERR_INTERNAL_ASSERTION(t)}function h(e){let t="",r=e.length;const n="-"===e[0]?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function b(e,t,r){if("function"===typeof t)return f(t.length<=r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${t.length}).`),t(...r);const o=(t.match(/%[dfijoOs]/g)||[]).length;return f(o===r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${o}).`),0===r.length?t:n(t,...r)}function p(e,t,r){r||(r=Error);class n extends r{constructor(...r){super(b(e,t,r))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(n.prototype,{name:{value:r.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),n.prototype.code=e,n.prototype[l]=!0,c[e]=n}function y(e){const t=u+e.name;return Object.defineProperty(e,"name",{value:t}),e}function _(e,t){if(e&&t&&e!==t){if(Array.isArray(t.errors))return t.errors.push(e),t;const r=new a([t,e],t.message);return r.code=t.code,r}return e||t}class w extends Error{constructor(e="The operation was aborted",t=void 0){if(void 0!==t&&"object"!==typeof t)throw new c.ERR_INVALID_ARG_TYPE("options","Object",t);super(e,t),this.code="ABORT_ERR",this.name="AbortError"}}p("ERR_ASSERTION","%s",Error),p("ERR_INVALID_ARG_TYPE",((e,t,r)=>{f("string"===typeof e,"'name' must be a string"),Array.isArray(t)||(t=[t]);let n="The ";e.endsWith(" argument")?n+=`${e} `:n+=`"${e}" ${e.includes(".")?"property":"argument"} `,n+="must be ";const i=[],a=[],l=[];for(const o of t)f("string"===typeof o,"All expected entries have to be of type string"),s.includes(o)?i.push(o.toLowerCase()):d.test(o)?a.push(o):(f("object"!==o,'The value "object" should be written as "Object"'),l.push(o));if(a.length>0){const e=i.indexOf("object");-1!==e&&(i.splice(i,e,1),a.push("Object"))}if(i.length>0){switch(i.length){case 1:n+=`of type ${i[0]}`;break;case 2:n+=`one of type ${i[0]} or ${i[1]}`;break;default:{const e=i.pop();n+=`one of type ${i.join(", ")}, or ${e}`}}(a.length>0||l.length>0)&&(n+=" or ")}if(a.length>0){switch(a.length){case 1:n+=`an instance of ${a[0]}`;break;case 2:n+=`an instance of ${a[0]} or ${a[1]}`;break;default:{const e=a.pop();n+=`an instance of ${a.join(", ")}, or ${e}`}}l.length>0&&(n+=" or ")}switch(l.length){case 0:break;case 1:l[0].toLowerCase()!==l[0]&&(n+="an "),n+=`${l[0]}`;break;case 2:n+=`one of ${l[0]} or ${l[1]}`;break;default:{const e=l.pop();n+=`one of ${l.join(", ")}, or ${e}`}}if(null==r)n+=`. Received ${r}`;else if("function"===typeof r&&r.name)n+=`. Received function ${r.name}`;else if("object"===typeof r){var u;if(null!==(u=r.constructor)&&void 0!==u&&u.name)n+=`. Received an instance of ${r.constructor.name}`;else{const e=o(r,{depth:-1});n+=`. Received ${e}`}}else{let e=o(r,{colors:!1});e.length>25&&(e=`${e.slice(0,25)}...`),n+=`. Received type ${typeof r} (${e})`}return n}),TypeError),p("ERR_INVALID_ARG_VALUE",((e,t,r="is invalid")=>{let n=o(t);n.length>128&&(n=n.slice(0,128)+"...");const i=e.includes(".")?"property":"argument";return`The ${i} '${e}' ${r}. Received ${n}`}),TypeError),p("ERR_INVALID_RETURN_VALUE",((e,t,r)=>{var n;const o=null!==r&&void 0!==r&&null!==(n=r.constructor)&&void 0!==n&&n.name?`instance of ${r.constructor.name}`:"type "+typeof r;return`Expected ${e} to be returned from the "${t}" function but got ${o}.`}),TypeError),p("ERR_MISSING_ARGS",((...e)=>{let t;f(e.length>0,"At least one arg needs to be specified");const r=e.length;switch(e=(Array.isArray(e)?e:[e]).map((e=>`"${e}"`)).join(" or "),r){case 1:t+=`The ${e[0]} argument`;break;case 2:t+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const r=e.pop();t+=`The ${e.join(", ")}, and ${r} arguments`}break}return`${t} must be specified`}),TypeError),p("ERR_OUT_OF_RANGE",((e,t,r)=>{let n;return f(t,'Missing "range" argument'),Number.isInteger(r)&&Math.abs(r)>2**32?n=h(String(r)):"bigint"===typeof r?(n=String(r),(r>2n**32n||r<-(2n**32n))&&(n=h(n)),n+="n"):n=o(r),`The value of "${e}" is out of range. It must be ${t}. Received ${n}`}),RangeError),p("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),p("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),p("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),p("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),p("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),p("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),p("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),p("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),p("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),p("ERR_STREAM_WRITE_AFTER_END","write after end",Error),p("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:w,aggregateTwoErrors:y(_),hideStackFrames:y,codes:c}},60341:function(e){"use strict";e.exports={ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,t){return e.includes(t)},ArrayPrototypeIndexOf(e,t){return e.indexOf(t)},ArrayPrototypeJoin(e,t){return e.join(t)},ArrayPrototypeMap(e,t){return e.map(t)},ArrayPrototypePop(e,t){return e.pop(t)},ArrayPrototypePush(e,t){return e.push(t)},ArrayPrototypeSlice(e,t,r){return e.slice(t,r)},Error:Error,FunctionPrototypeCall(e,t,...r){return e.call(t,...r)},FunctionPrototypeSymbolHasInstance(e,t){return Function.prototype[Symbol.hasInstance].call(e,t)},MathFloor:Math.floor,Number:Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(e,t){return Object.defineProperties(e,t)},ObjectDefineProperty(e,t,r){return Object.defineProperty(e,t,r)},ObjectGetOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,t){return Object.setPrototypeOf(e,t)},Promise:Promise,PromisePrototypeCatch(e,t){return e.catch(t)},PromisePrototypeThen(e,t,r){return e.then(t,r)},PromiseReject(e){return Promise.reject(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,t){return e.test(t)},SafeSet:Set,String:String,StringPrototypeSlice(e,t,r){return e.slice(t,r)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol:Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(e,t,r){return e.set(t,r)},Uint8Array:Uint8Array}},57255:function(e,t,r){"use strict";const n=r(48764),o=Object.getPrototypeOf((async function(){})).constructor,i=globalThis.Blob||n.Blob,a="undefined"!==typeof i?function(e){return e instanceof i}:function(e){return!1};class l extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t="";for(let r=0;r{e=r,t=n}));return{promise:r,resolve:e,reject:t}},promisify(e){return new Promise(((t,r)=>{e(((e,...n)=>e?r(e):t(...n)))}))},debuglog(){return function(){}},format(e,...t){return e.replace(/%([sdifj])/g,(function(...[e,r]){const n=t.shift();if("f"===r)return n.toFixed(6);if("j"===r)return JSON.stringify(n);if("s"===r&&"object"===typeof n){const e=n.constructor!==Object?n.constructor.name:"";return`${e} {}`.trim()}return n.toString()}))},inspect(e){switch(typeof e){case"string":if(e.includes("'")){if(!e.includes('"'))return`"${e}"`;if(!e.includes("`")&&!e.includes("${"))return`\`${e}\``}return`'${e}'`;case"number":return isNaN(e)?"NaN":Object.is(e,-0)?String(e):e;case"bigint":return`${String(e)}n`;case"boolean":case"undefined":return String(e);case"object":return"{}"}},types:{isAsyncFunction(e){return e instanceof o},isArrayBufferView(e){return ArrayBuffer.isView(e)}},isBlob:a},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},18152:function(e,t,r){const{Buffer:n}=r(48764),{ObjectDefineProperty:o,ObjectKeys:i,ReflectApply:a}=r(60341),{promisify:{custom:l}}=r(57255),{streamReturningOperators:s,promiseReturningOperators:d}=r(60918),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=r(18461),c=r(7422),{pipeline:f}=r(91519),{destroyer:h}=r(20339),b=r(5499),p=r(74787),y=r(58516),_=e.exports=r(33491).Stream;_.isDisturbed=y.isDisturbed,_.isErrored=y.isErrored,_.isReadable=y.isReadable,_.Readable=r(377);for(const m of i(s)){const S=s[m];function w(...e){if(new.target)throw u();return _.Readable.from(a(S,this,e))}o(w,"name",{__proto__:null,value:S.name}),o(w,"length",{__proto__:null,value:S.length}),o(_.Readable.prototype,m,{__proto__:null,value:w,enumerable:!1,configurable:!0,writable:!0})}for(const v of i(d)){const E=d[v];function w(...e){if(new.target)throw u();return a(E,this,e)}o(w,"name",{__proto__:null,value:E.name}),o(w,"length",{__proto__:null,value:E.length}),o(_.Readable.prototype,v,{__proto__:null,value:w,enumerable:!1,configurable:!0,writable:!0})}_.Writable=r(11339),_.Duplex=r(27415),_.Transform=r(21122),_.PassThrough=r(57295),_.pipeline=f;const{addAbortSignal:g}=r(41134);_.addAbortSignal=g,_.finished=b,_.destroy=h,_.compose=c,o(_,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return p}}),o(f,l,{__proto__:null,enumerable:!0,get(){return p.pipeline}}),o(b,l,{__proto__:null,enumerable:!0,get(){return p.finished}}),_.Stream=_,_._isUint8Array=function(e){return e instanceof Uint8Array},_._uint8ArrayToBuffer=function(e){return n.from(e.buffer,e.byteOffset,e.byteLength)}},74787:function(e,t,r){"use strict";const{ArrayPrototypePop:n,Promise:o}=r(60341),{isIterable:i,isNodeStream:a,isWebStream:l}=r(58516),{pipelineImpl:s}=r(91519),{finished:d}=r(5499);function u(...e){return new o(((t,r)=>{let o,d;const u=e[e.length-1];if(u&&"object"===typeof u&&!a(u)&&!i(u)&&!l(u)){const t=n(e);o=t.signal,d=t.end}s(e,((e,n)=>{e?r(e):t(n)}),{signal:o,end:d})}))}r(42830),e.exports={finished:d,pipeline:u}},90540:function(e,t){"use strict";class r{constructor(e,t){this.Impl=e,this.options=t}import(e,t){const r=new this.Impl(e,{...this.options,...t});return e.on("end",(()=>{r.readable||r.emit("end")})),e.on("error",(e=>{r.emit("error",e)})),r}}t.Z=r},40250:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return b}});var n=r(90540),o=r(98124);class i{constructor(e){this.stream=e,this.array=[]}push(e){this.array.push(e)}end(){this.stream.push(this.array),this.stream.push(null)}}var a=i;class l{constructor(e){this.stream=e,this.first=!0,this.stream.push("[")}push(e){this.first?this.first=!1:this.stream.push(","),this.stream.push(JSON.stringify(e))}end(){this.stream.push("]"),this.stream.push(null)}}var s=l;class d extends o.Readable{constructor(e,{encoding:t="object"}={}){if(super({objectMode:!0,read:()=>{}}),"object"===t&&(this.encoder=new a(this)),"string"===t&&(this.encoder=new s(this)),!this.encoder)throw new Error(`unknown encoding: ${t}`);e.on("data",(e=>{const t={};let r=t;"DefaultGraph"!==e.graph.termType&&(t["@id"]=e.graph.value,t["@graph"]={},r=t["@graph"]),r["@id"]=d.subjectValue(e.subject),"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"===e.predicate.value?r["@type"]=d.subjectValue(e.object):r[e.predicate.value]=d.objectValue(e.object),this.encoder.push(t)})),e.on("end",(()=>this.encoder.end())),e.on("error",(e=>this.emit("error",e)))}static subjectValue(e){return"BlankNode"===e.termType?"_:"+e.value:e.value}static objectValue(e){return"NamedNode"===e.termType?{"@id":e.value}:"BlankNode"===e.termType?{"@id":"_:"+e.value}:e.language?{"@language":e.language,"@value":e.value}:e.datatype&&"http://www.w3.org/2001/XMLSchema#string"!==e.datatype.value?{"@type":e.datatype.value,"@value":e.value}:e.value}}var u=d;class c extends n.Z{constructor(e){super(u,e)}}var f=c;class h extends f{constructor({...e}={}){super({encoding:"string",...e})}}var b=h}}]); -//# sourceMappingURL=250.f09c4840.js.map \ No newline at end of file diff --git a/js/250.f09c4840.js.map b/js/250.f09c4840.js.map deleted file mode 100644 index 88146b1..0000000 --- a/js/250.f09c4840.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/250.f09c4840.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/compose.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/from.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/operators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/readable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/state.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/transform.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/utils.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/streams/writable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/internal/validators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/ours/browser.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/ours/errors.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/ours/primordials.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/ours/util.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/node_modules/readable-stream/lib/stream/promises.js","webpack://@zazuko/spex/./node_modules/@rdfjs/sink/index.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/lib/ObjectEncoder.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/lib/StringEncoder.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/lib/SerializerStream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld/index.js","webpack://@zazuko/spex/./node_modules/@zazuko/formats-lazy/lib/CustomJsonLdSerializer.js"],"sourcesContent":["'use strict'\n\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n signal.addEventListener('abort', onAbort)\n eos(stream, () => signal.removeEventListener('abort', onAbort))\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.writableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n\n // TODO: Webstreams\n // if (isReadableStream(body)) {\n // return _duplexify({ readable: Readable.fromWeb(body) });\n // }\n\n // TODO: Webstreams\n // if (isWritableStream(body)) {\n // return _duplexify({ writable: Writable.fromWeb(body) });\n // }\n\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n\n // TODO: Webstreams.\n // if (\n // isReadableStream(body?.readable) &&\n // isWritableStream(body?.writable)\n // ) {\n // return Duplexify.fromWeb(body);\n // }\n\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst {\n ArrayPrototypePush,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n validateInteger(concurrency, 'concurrency', 1)\n return async function* map() {\n var _options$signal, _options$signal2\n const ac = new AbortController()\n const stream = this\n const queue = []\n const signal = ac.signal\n const signalOpt = {\n signal\n }\n const abort = () => ac.abort()\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n abort()\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal2 = options.signal) === null || _options$signal2 === undefined\n ? undefined\n : _options$signal2.addEventListener('abort', abort)\n let next\n let resume\n let done = false\n function onDone() {\n done = true\n }\n async function pump() {\n try {\n for await (let val of stream) {\n var _val\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n } catch (err) {\n val = PromiseReject(err)\n }\n if (val === kEmpty) {\n continue\n }\n if (typeof ((_val = val) === null || _val === undefined ? undefined : _val.catch) === 'function') {\n val.catch(onDone)\n }\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && queue.length && queue.length >= concurrency) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, undefined, onDone)\n queue.push(val)\n } finally {\n var _options$signal3\n done = true\n if (next) {\n next()\n next = null\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal3 = options.signal) === null || _options$signal3 === undefined\n ? undefined\n : _options$signal3.removeEventListener('abort', abort)\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n if (resume) {\n resume()\n resume = null\n }\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n ac.abort()\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal5\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal6\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal9\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal9 = options.signal) !== null &&\n _options$signal9 !== undefined &&\n _options$signal9.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal10\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal10 = options.signal) !== null &&\n _options$signal10 !== undefined &&\n _options$signal10.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal11\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal11 = options.signal) !== null &&\n _options$signal11 !== undefined &&\n _options$signal11.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n } else {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs,\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableEnded\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n }\n await wait()\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.addEventListener('abort', abort)\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.removeEventListener('abort', abort)\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableEnded(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n }\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.readableObjectMode)\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this.ended = false\n this.endEmitted = false\n this.reading = false\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true\n\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false\n this.emittedReadable = false\n this.readableListening = false\n this.resumeScheduled = false\n this[kPaused] = null\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Has it been destroyed.\n this.destroyed = false\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.multiAwaitDrain = false\n\n // If true, a maybeReadMore has been scheduled.\n this.readingMore = false\n this.dataEmitted = false\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.reading = false\n onEofChunk(stream, state)\n } else if (state.objectMode || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.reading = false\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.reading = false\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if (state.needReadable) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if (state.objectMode) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.emittedReadable = false\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = state.needReadable\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.reading = true\n state.sync = true\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.sync = false\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n if (state.flowing) {\n pause()\n }\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? 16 : 16 * 1024\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { Symbol, SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\nconst kDestroyed = Symbol('kDestroyed')\nconst kIsErrored = Symbol('kIsErrored')\nconst kIsReadable = Symbol('kIsReadable')\nconst kIsDisturbed = Symbol('kIsDisturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n kDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n isClosed,\n isDestroyed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n *\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('stream')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","class Sink {\n constructor (Impl, options) {\n this.Impl = Impl\n this.options = options\n }\n\n import (input, options) {\n const output = new this.Impl(input, { ...this.options, ...options })\n\n input.on('end', () => {\n if (!output.readable) {\n output.emit('end')\n }\n })\n\n input.on('error', err => {\n output.emit('error', err)\n })\n\n return output\n }\n}\n\nexport default Sink\n","class ObjectEncoder {\n constructor (stream) {\n this.stream = stream\n this.array = []\n }\n\n push (jsonld) {\n this.array.push(jsonld)\n }\n\n end () {\n this.stream.push(this.array)\n this.stream.push(null)\n }\n}\n\nexport default ObjectEncoder\n","class StringEncoder {\n constructor (stream) {\n this.stream = stream\n this.first = true\n\n this.stream.push('[')\n }\n\n push (jsonld) {\n if (this.first) {\n this.first = false\n } else {\n this.stream.push(',')\n }\n\n this.stream.push(JSON.stringify(jsonld))\n }\n\n end () {\n this.stream.push(']')\n this.stream.push(null)\n }\n}\n\nexport default StringEncoder\n","import { Readable } from 'readable-stream'\nimport ObjectEncoder from './ObjectEncoder.js'\nimport StringEncoder from './StringEncoder.js'\n\nclass SerializerStream extends Readable {\n constructor (input, { encoding = 'object' } = {}) {\n super({\n objectMode: true,\n read: () => {}\n })\n\n if (encoding === 'object') {\n this.encoder = new ObjectEncoder(this)\n }\n\n if (encoding === 'string') {\n this.encoder = new StringEncoder(this)\n }\n\n if (!this.encoder) {\n throw new Error(`unknown encoding: ${encoding}`)\n }\n\n input.on('data', quad => {\n const jsonld = {}\n let triple = jsonld\n\n if (quad.graph.termType !== 'DefaultGraph') {\n jsonld['@id'] = quad.graph.value\n jsonld['@graph'] = {}\n triple = jsonld['@graph']\n }\n\n triple['@id'] = SerializerStream.subjectValue(quad.subject)\n\n if (quad.predicate.value === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type') {\n triple['@type'] = SerializerStream.subjectValue(quad.object)\n } else {\n triple[quad.predicate.value] = SerializerStream.objectValue(quad.object)\n }\n\n this.encoder.push(jsonld)\n })\n\n input.on('end', () => this.encoder.end())\n\n input.on('error', err => this.emit('error', err))\n }\n\n static subjectValue (subject) {\n return subject.termType === 'BlankNode' ? '_:' + subject.value : subject.value\n }\n\n static objectValue (object) {\n if (object.termType === 'NamedNode') {\n return { '@id': object.value }\n }\n\n if (object.termType === 'BlankNode') {\n return { '@id': '_:' + object.value }\n }\n\n if (object.language) {\n return { '@language': object.language, '@value': object.value }\n } else if (object.datatype && object.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string') {\n return { '@type': object.datatype.value, '@value': object.value }\n } else {\n return object.value\n }\n }\n}\n\nexport default SerializerStream\n","import Sink from '@rdfjs/sink'\nimport SerializerStream from './lib/SerializerStream.js'\n\nclass Serializer extends Sink {\n constructor (options) {\n super(SerializerStream, options)\n }\n}\n\nexport default Serializer\n","import JsonLdSerializer from '@rdfjs/serializer-jsonld';\nclass CustomJsonLdSerializer extends JsonLdSerializer {\n constructor({ ...args } = {}) {\n super({ encoding: 'string', ...args });\n }\n}\nexport default CustomJsonLdSerializer;\n"],"names":["AbortError","codes","isNodeStream","isWebStream","kControllerErrorFunction","eos","ERR_INVALID_ARG_TYPE","validateAbortSignal","signal","name","module","exports","addAbortSignal","stream","addAbortSignalNoValidate","onAbort","destroy","undefined","cause","reason","aborted","addEventListener","removeEventListener","StringPrototypeSlice","SymbolIterator","TypedArrayPrototypeSet","Uint8Array","Buffer","inspect","constructor","this","head","tail","length","push","v","entry","data","next","unshift","shift","ret","clear","join","s","p","concat","n","alloc","allocUnsafe","i","consume","hasStrings","slice","_getString","_getBuffer","first","c","str","retLen","buf","buffer","byteOffset","Symbol","for","_","options","depth","customInspect","pipeline","Duplex","destroyer","isReadable","isWritable","isTransformStream","isWritableStream","isReadableStream","ERR_INVALID_ARG_VALUE","ERR_MISSING_ARGS","streams","from","orgStreams","idx","ondrain","onfinish","onreadable","onclose","d","onfinished","err","cb","readable","writable","writableObjectMode","readableObjectMode","_write","chunk","encoding","callback","write","_final","end","on","writer","getWriter","async","ready","catch","close","toRead","_read","read","reader","getReader","value","done","_destroy","process","aggregateTwoErrors","ERR_MULTIPLE_CALLBACK","kDestroyed","isDestroyed","isFinished","isServerRequest","kDestroy","kConstruct","checkError","w","r","stack","errored","_readableState","_writableState","destroyed","constructed","once","er","self","called","onDestroy","closed","nextTick","emitErrorCloseNT","emitCloseNT","emitErrorNT","closeEmitted","emitClose","emit","errorEmitted","undestroy","reading","ended","endEmitted","finalCalled","prefinished","ending","finished","errorOrDestroy","sync","autoDestroy","construct","_construct","listenerCount","constructNT","onConstruct","emitConstructNT","isRequest","setHeader","abort","emitCloseLegacy","emitErrorCloseLegacy","socket","req","ObjectDefineProperties","ObjectGetOwnPropertyDescriptor","ObjectKeys","ObjectSetPrototypeOf","Readable","Writable","prototype","keys","method","call","allowHalfOpen","webStreamsAdapters","duplexify","lazyWebStreams","__proto__","writableHighWaterMark","writableBuffer","writableLength","writableFinished","writableCorked","writableEnded","writableNeedDrain","get","set","fromWeb","pair","newStreamDuplexFromReadableWritablePair","toWeb","duplex","newReadableWritablePairFromDuplex","body","bufferModule","isIterable","isReadableNodeStream","isWritableNodeStream","isDuplexNodeStream","ERR_INVALID_RETURN_VALUE","createDeferredPromise","Blob","globalThis","isBlob","b","AbortController","FunctionPrototypeCall","Duplexify","super","fromAsyncGen","fn","promise","resolve","ac","_promise","_resolve","final","_duplexify","wrap","objectMode","then","val","arrayBuffer","ERR_STREAM_PREMATURE_CLOSE","kEmptyObject","validateFunction","validateObject","validateBoolean","Promise","PromisePrototypeThen","isClosed","isReadableFinished","isReadableErrored","isWritableFinished","isWritableErrored","willEmitClose","_willEmitClose","kIsClosedPromise","nop","_options$readable","_options$writable","arguments","eosWeb","wState","rState","onlegacyfinish","readableFinished","onend","onerror","onclosed","onrequest","error","cleanup","removeListener","endCallback","originalCallback","args","apply","isAborted","resolverFn","opts","_opts","autoCleanup","reject","SymbolAsyncIterator","ERR_STREAM_NULL_VALUES","iterable","iterator","isAsync","highWaterMark","hadError","hasThrow","throw","return","res","e","ArrayIsArray","EventEmitter","EE","Stream","prependListener","emitter","event","_events","pipe","dest","source","ondata","pause","resume","_isStdio","didOnEnd","ERR_OUT_OF_RANGE","validateInteger","kWeakHandler","staticCompose","ArrayPrototypePush","MathFloor","Number","NumberIsNaN","PromiseReject","kEmpty","kEof","compose","composedStream","map","concurrency","_options$signal","_options$signal2","queue","signalOpt","onDone","pump","_val","_options$signal3","asIndexedPairs","index","_options$signal4","some","unused","filter","every","find","result","forEach","forEachFn","filterFn","ReduceAwareErrMissingArgs","message","reduce","reducer","initialValue","_options$signal5","hasInitialValue","gotAnyItemFromStream","_options$signal6","toArray","_options$signal7","flatMap","values","toIntegerOrInfinity","number","drop","_options$signal8","_options$signal9","take","_options$signal10","_options$signal11","streamReturningOperators","promiseReturningOperators","PassThrough","Transform","_transform","destroyImpl","ERR_STREAM_DESTROYED","isReadableEnded","writing","popCallback","pop","makeAsyncIterable","fromReadable","pumpToNode","finish","onresolve","wait","off","pumpToWeb","pipelineImpl","outerSignal","lastStreamCleanup","finishImpl","destroys","finishCount","code","isLastStream","onError","_ret","_ret2","pt","src","dst","endFn","ArrayPrototypeIndexOf","NumberIsInteger","NumberParseInt","SafeSet","ReadableState","debug","BufferList","getHighWaterMark","getDefaultHighWaterMark","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kPaused","StringDecoder","isDuplex","pipes","flowing","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrainWriters","multiAwaitDrain","readingMore","dataEmitted","decoder","maybeReadMore","readableAddChunk","addToFront","state","toString","_isUint8Array","_uint8ArrayToBuffer","onEofChunk","addChunk","emitReadable","_undestroy","captureRejectionSymbol","isPaused","setEncoding","enc","content","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","len","pipeOnDrain","size","delete","updateReadableListening","nReadingNextTick","resume_","streamToAsyncIterator","iter","createAsyncIterator","destroyOnReturn","fromList","endReadable","endReadableNT","endWritableNT","NaN","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanedUp","needDrain","includes","add","dests","splice","ev","addListener","removeAllListeners","paused","streamKeys","j","bind","readableDidRead","enumerable","readableAborted","readableHighWaterMark","readableBuffer","readableFlowing","readableLength","readableEncoding","readableEnded","pipesCount","_fromList","readableStream","newStreamReadableFromReadableStream","streamReadable","newReadableStreamFromStreamReadable","_ref","_src$readableObjectMo","highWaterMarkFrom","duplexKey","hwm","kCallback","transform","flush","_flush","prefinish","SymbolFor","kIsErrored","kIsReadable","kIsDisturbed","obj","strict","_obj$_readableState","_obj$_writableState","pipeThrough","cancel","isWritableEnded","_stream$_writableStat","_stream$_writableStat2","writableErrored","_stream$_readableStat","_stream$_readableStat2","readableErrored","_closed","isOutgoingMessage","_defaultKeepAlive","_removedConnection","_removedContLen","isServerResponse","_sent100","_stream$req","_consuming","_dumped","upgradeOrConnect","isDisturbed","_stream$kIsDisturbed","isErrored","_ref2","_ref3","_ref4","_ref5","_stream$kIsErrored","_stream$_readableStat3","_stream$_writableStat3","_stream$_readableStat4","_stream$_writableStat4","ArrayPrototypeSlice","Error","FunctionPrototypeSymbolHasInstance","ObjectDefineProperty","StringPrototypeToLowerCase","SymbolHasInstance","WritableState","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_ALREADY_FINISHED","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","kOnFinished","noDecode","decodeStrings","corked","bufferProcessing","onwrite","writecb","writelen","afterWriteTickInfo","resetBuffer","pendingcb","buffered","bufferedIndex","allBuffers","allNoop","writev","_writev","clearBuffer","finishMaybe","isEncoding","writeOrBuffer","doWrite","onwriteError","errorBuffer","count","afterWriteTick","afterWrite","_state$errored","onfinishCallbacks","_state$errored2","bufferedLength","chunks","needFinish","callFinal","onFinish","getBuffer","object","cork","uncork","setDefaultEncoding","writableAborted","writableStream","newStreamWritableFromWritableStream","streamWritable","newWritableStreamFromStreamWritable","ArrayPrototypeIncludes","ArrayPrototypeJoin","ArrayPrototypeMap","NumberMAX_SAFE_INTEGER","NumberMIN_SAFE_INTEGER","ObjectPrototypeHasOwnProperty","RegExpPrototypeExec","String","StringPrototypeToUpperCase","StringPrototypeTrim","hideStackFrames","ERR_SOCKET_BAD_PORT","ERR_UNKNOWN_SIGNAL","normalizeEncoding","isAsyncFunction","isArrayBufferView","signals","isInt32","isUint32","octalReg","modeDesc","parseFileMode","def","validateUint32","min","max","validateInt32","positive","validateString","validateNumber","validateOneOf","oneOf","allowed","getOwnPropertyValueOrDefault","key","defaultValue","allowArray","allowFunction","nullable","validateDictionary","validateArray","minLength","validateStringArray","validateBooleanArray","validateSignalName","validateBuffer","validateEncoding","normalizedEncoding","validatePort","port","allowZero","validatePlainFunction","validateUndefined","validateUnion","union","linkValueRegExp","validateLinkHeaderFormat","validateLinkHeaderValue","hints","hintsLength","link","CustomStream","promises","originalDestroy","Object","defineProperty","configurable","format","AggregateError","CustomAggregateError","kIsNodeError","kTypes","classRegExp","nodeInternalPrefix","assert","ERR_INTERNAL_ASSERTION","addNumericalSeparator","start","getMessage","msg","expectedLength","match","E","Base","NodeError","defineProperties","hidden","innerError","outerError","Array","isArray","errors","expected","actual","endsWith","types","instances","other","toLowerCase","test","pos","indexOf","last","_actual$constructor","inspected","colors","TypeError","type","input","_value$constructor","a","range","received","isInteger","Math","abs","RangeError","el","sep","ArrayPrototypePop","thisArgs","instance","Function","hasInstance","floor","isNaN","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseInt","props","prop","getOwnPropertyDescriptor","target","proto","setPrototypeOf","PromisePrototypeCatch","thenFn","catchFn","ReflectApply","Reflect","RegExpPrototypeTest","Set","toUpperCase","trim","asyncIterator","AsyncFunction","getPrototypeOf","freeze","rej","promisify","debuglog","replace","_unused","replacement","toFixed","JSON","stringify","ctor","is","arr","ArrayBuffer","isView","custom","customPromisify","ERR_ILLEGAL_CONSTRUCTOR","utils","op","byteLength","pl","lastArg","Sink","Impl","import","output","ObjectEncoder","array","jsonld","StringEncoder","SerializerStream","encoder","quad","triple","graph","termType","subjectValue","subject","predicate","objectValue","static","language","datatype","Serializer","CustomJsonLdSerializer"],"sourceRoot":""} \ No newline at end of file diff --git a/js/42.17774fbd.js b/js/42.17774fbd.js new file mode 100644 index 0000000..c29685d --- /dev/null +++ b/js/42.17774fbd.js @@ -0,0 +1,2 @@ +(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[42],{16720:function(e,t,r){"use strict";const{SymbolDispose:n}=r(19015),{AbortError:i,codes:o}=r(59861),{isNodeStream:a,isWebStream:s,kControllerErrorFunction:l}=r(60488),d=r(81246),{ERR_INVALID_ARG_TYPE:u}=o;let c;const f=(e,t)=>{if("object"!==typeof e||!("aborted"in e))throw new u(t,"AbortSignal",e)};e.exports.addAbortSignal=function(t,r){if(f(t,"signal"),!a(r)&&!s(r))throw new u("stream",["ReadableStream","WritableStream","Stream"],r);return e.exports.addAbortSignalNoValidate(t,r)},e.exports.addAbortSignalNoValidate=function(e,t){if("object"!==typeof e||!("aborted"in e))return t;const o=a(t)?()=>{t.destroy(new i(void 0,{cause:e.reason}))}:()=>{t[l](new i(void 0,{cause:e.reason}))};if(e.aborted)o();else{c=c||r(41090).addAbortListener;const i=c(e,o);d(t,i[n])}return t}},67720:function(e,t,r){"use strict";const{StringPrototypeSlice:n,SymbolIterator:i,TypedArrayPrototypeSet:o,Uint8Array:a}=r(19015),{Buffer:s}=r(48764),{inspect:l}=r(41090);e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(e){const t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}shift(){if(0===this.length)return;const e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(0===this.length)return"";let t=this.head,r=""+t.data;while(null!==(t=t.next))r+=e+t.data;return r}concat(e){if(0===this.length)return s.alloc(0);const t=s.allocUnsafe(e>>>0);let r=this.head,n=0;while(r)o(t,r.data,n),n+=r.data.length,r=r.next;return t}consume(e,t){const r=this.head.data;if(eo.length)){e===o.length?(t+=o,++i,r.next?this.head=r.next:this.head=this.tail=null):(t+=n(o,0,e),this.head=r,r.data=n(o,e));break}t+=o,e-=o.length,++i}while(null!==(r=r.next));return this.length-=i,t}_getBuffer(e){const t=s.allocUnsafe(e),r=e;let n=this.head,i=0;do{const s=n.data;if(!(e>s.length)){e===s.length?(o(t,s,r-e),++i,n.next?this.head=n.next:this.head=this.tail=null):(o(t,new a(s.buffer,s.byteOffset,e),r-e),this.head=n,n.data=s.slice(e));break}o(t,s,r-e),e-=s.length,++i}while(null!==(n=n.next));return this.length-=i,t}[Symbol.for("nodejs.util.inspect.custom")](e,t){return l(this,{...t,depth:0,customInspect:!1})}}},35223:function(e,t,r){"use strict";const{pipeline:n}=r(45891),i=r(53880),{destroyer:o}=r(51662),{isNodeStream:a,isReadable:s,isWritable:l,isWebStream:d,isTransformStream:u,isWritableStream:c,isReadableStream:f}=r(60488),{AbortError:h,codes:{ERR_INVALID_ARG_VALUE:p,ERR_MISSING_ARGS:b}}=r(59861),y=r(81246);e.exports=function(...e){if(0===e.length)throw new b("streams");if(1===e.length)return i.from(e[0]);const t=[...e];if("function"===typeof e[0]&&(e[0]=i.from(e[0])),"function"===typeof e[e.length-1]){const t=e.length-1;e[t]=i.from(e[t])}for(let n=0;n0&&!(l(e[n])||c(e[n])||u(e[n])))throw new p(`streams[${n}]`,t[n],"must be writable")}let r,g,_,w,E;function m(e){const t=w;w=null,t?t(e):e?E.destroy(e):I||v||E.destroy()}const S=e[0],R=n(e,m),v=!!(l(S)||c(S)||u(S)),I=!!(s(R)||f(R)||u(R));if(E=new i({writableObjectMode:!(null===S||void 0===S||!S.writableObjectMode),readableObjectMode:!(null===R||void 0===R||!R.readableObjectMode),writable:v,readable:I}),v){if(a(S))E._write=function(e,t,n){S.write(e,t)?n():r=n},E._final=function(e){S.end(),g=e},S.on("drain",(function(){if(r){const e=r;r=null,e()}}));else if(d(S)){const e=u(S)?S.writable:S,t=e.getWriter();E._write=async function(e,r,n){try{await t.ready,t.write(e).catch((()=>{})),n()}catch(i){n(i)}},E._final=async function(e){try{await t.ready,t.close().catch((()=>{})),g=e}catch(r){e(r)}}}const e=u(R)?R.readable:R;y(e,(()=>{if(g){const e=g;g=null,e()}}))}if(I)if(a(R))R.on("readable",(function(){if(_){const e=_;_=null,e()}})),R.on("end",(function(){E.push(null)})),E._read=function(){while(1){const e=R.read();if(null===e)return void(_=E._read);if(!E.push(e))return}};else if(d(R)){const e=u(R)?R.readable:R,t=e.getReader();E._read=async function(){while(1)try{const{value:e,done:r}=await t.read();if(!E.push(e))return;if(r)return void E.push(null)}catch{return}}}return E._destroy=function(e,t){e||null===w||(e=new h),_=null,r=null,g=null,null===w?t(e):(w=t,a(R)&&o(R,e))},E}},51662:function(e,t,r){"use strict";const n=r(34155),{aggregateTwoErrors:i,codes:{ERR_MULTIPLE_CALLBACK:o},AbortError:a}=r(59861),{Symbol:s}=r(19015),{kIsDestroyed:l,isDestroyed:d,isFinished:u,isServerRequest:c}=r(60488),f=s("kDestroy"),h=s("kConstruct");function p(e,t,r){e&&(e.stack,t&&!t.errored&&(t.errored=e),r&&!r.errored&&(r.errored=e))}function b(e,t){const r=this._readableState,n=this._writableState,o=n||r;return null!==n&&void 0!==n&&n.destroyed||null!==r&&void 0!==r&&r.destroyed?("function"===typeof t&&t(),this):(p(e,n,r),n&&(n.destroyed=!0),r&&(r.destroyed=!0),o.constructed?y(this,e,t):this.once(f,(function(r){y(this,i(r,e),t)})),this)}function y(e,t,r){let i=!1;function o(t){if(i)return;i=!0;const o=e._readableState,a=e._writableState;p(t,a,o),a&&(a.closed=!0),o&&(o.closed=!0),"function"===typeof r&&r(t),t?n.nextTick(g,e,t):n.nextTick(_,e)}try{e._destroy(t||null,o)}catch(t){o(t)}}function g(e,t){w(e,t),_(e)}function _(e){const t=e._readableState,r=e._writableState;r&&(r.closeEmitted=!0),t&&(t.closeEmitted=!0),(null!==r&&void 0!==r&&r.emitClose||null!==t&&void 0!==t&&t.emitClose)&&e.emit("close")}function w(e,t){const r=e._readableState,n=e._writableState;null!==n&&void 0!==n&&n.errorEmitted||null!==r&&void 0!==r&&r.errorEmitted||(n&&(n.errorEmitted=!0),r&&(r.errorEmitted=!0),e.emit("error",t))}function E(){const e=this._readableState,t=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=!1===e.readable,e.endEmitted=!1===e.readable),t&&(t.constructed=!0,t.destroyed=!1,t.closed=!1,t.closeEmitted=!1,t.errored=null,t.errorEmitted=!1,t.finalCalled=!1,t.prefinished=!1,t.ended=!1===t.writable,t.ending=!1===t.writable,t.finished=!1===t.writable)}function m(e,t,r){const i=e._readableState,o=e._writableState;if(null!==o&&void 0!==o&&o.destroyed||null!==i&&void 0!==i&&i.destroyed)return this;null!==i&&void 0!==i&&i.autoDestroy||null!==o&&void 0!==o&&o.autoDestroy?e.destroy(t):t&&(t.stack,o&&!o.errored&&(o.errored=t),i&&!i.errored&&(i.errored=t),r?n.nextTick(w,e,t):w(e,t))}function S(e,t){if("function"!==typeof e._construct)return;const r=e._readableState,i=e._writableState;r&&(r.constructed=!1),i&&(i.constructed=!1),e.once(h,t),e.listenerCount(h)>1||n.nextTick(R,e)}function R(e){let t=!1;function r(r){if(t)return void m(e,null!==r&&void 0!==r?r:new o);t=!0;const i=e._readableState,a=e._writableState,s=a||i;i&&(i.constructed=!0),a&&(a.constructed=!0),s.destroyed?e.emit(f,r):r?m(e,r,!0):n.nextTick(v,e)}try{e._construct((e=>{n.nextTick(r,e)}))}catch(i){n.nextTick(r,i)}}function v(e){e.emit(h)}function I(e){return(null===e||void 0===e?void 0:e.setHeader)&&"function"===typeof e.abort}function A(e){e.emit("close")}function O(e,t){e.emit("error",t),n.nextTick(A,e)}function C(e,t){e&&!d(e)&&(t||u(e)||(t=new a),c(e)?(e.socket=null,e.destroy(t)):I(e)?e.abort():I(e.req)?e.req.abort():"function"===typeof e.destroy?e.destroy(t):"function"===typeof e.close?e.close():t?n.nextTick(O,e,t):n.nextTick(A,e),e.destroyed||(e[l]=!0))}e.exports={construct:S,destroyer:C,destroy:b,undestroy:E,errorOrDestroy:m}},53880:function(e,t,r){"use strict";const{ObjectDefineProperties:n,ObjectGetOwnPropertyDescriptor:i,ObjectKeys:o,ObjectSetPrototypeOf:a}=r(19015);e.exports=d;const s=r(41676),l=r(83906);a(d.prototype,s.prototype),a(d,s);{const e=o(l.prototype);for(let t=0;t{c=!1,e&&_(t,e),f(e)})),d._write=function(e,t,i){r.write(e,t)?i():n=i},d._final=function(e){r.end(),i=e},r.on("drain",(function(){if(n){const e=n;n=null,e()}})),r.on("finish",(function(){if(i){const e=i;i=null,e()}}))),u&&(p(t,(e=>{u=!1,e&&_(t,e),f(e)})),t.on("readable",(function(){if(s){const e=s;s=null,e()}})),t.on("end",(function(){d.push(null)})),d._read=function(){while(1){const e=t.read();if(null===e)return void(s=d._read);if(!d.push(e))return}}),d._destroy=function(e,o){e||null===l||(e=new b),s=null,n=null,i=null,null===l?o(e):(l=o,_(r,e),_(t,e))},d}e.exports=function e(t,r){if(c(t))return t;if(d(t))return T({readable:t});if(u(t))return T({writable:t});if(l(t))return T({writable:!1,readable:!1});if(f(t))return T({readable:E.fromWeb(t)});if(h(t))return T({writable:m.fromWeb(t)});if("function"===typeof t){const{value:e,write:i,final:o,destroy:a}=x(t);if(s(e))return R(C,e,{objectMode:!0,write:i,final:o,destroy:a});const l=null===e||void 0===e?void 0:e.then;if("function"===typeof l){let t;const r=O(l,e,(e=>{if(null!=e)throw new g("nully","body",e)}),(e=>{_(t,e)}));return t=new C({objectMode:!0,readable:!1,write:i,final(e){o((async()=>{try{await r,n.nextTick(e,null)}catch(t){n.nextTick(e,t)}}))},destroy:a})}throw new g("Iterable, AsyncIterable or AsyncFunction",r,e)}if(I(t))return e(t.arrayBuffer());if(s(t))return R(C,t,{objectMode:!0,writable:!1});if(f(null===t||void 0===t?void 0:t.readable)&&h(null===t||void 0===t?void 0:t.writable))return C.fromWeb(t);if("object"===typeof(null===t||void 0===t?void 0:t.writable)||"object"===typeof(null===t||void 0===t?void 0:t.readable)){const r=null!==t&&void 0!==t&&t.readable?d(null===t||void 0===t?void 0:t.readable)?null===t||void 0===t?void 0:t.readable:e(t.readable):void 0,n=null!==t&&void 0!==t&&t.writable?u(null===t||void 0===t?void 0:t.writable)?null===t||void 0===t?void 0:t.writable:e(t.writable):void 0;return T({readable:r,writable:n})}const i=null===t||void 0===t?void 0:t.then;if("function"===typeof i){let e;return O(i,t,(t=>{null!=t&&e.push(t),e.push(null)}),(t=>{_(e,t)})),e=new C({objectMode:!0,writable:!1,read(){}})}throw new y(r,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],t)}},81246:function(e,t,r){const n=r(34155),{AbortError:i,codes:o}=r(59861),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:s}=o,{kEmptyObject:l,once:d}=r(41090),{validateAbortSignal:u,validateFunction:c,validateObject:f,validateBoolean:h}=r(46088),{Promise:p,PromisePrototypeThen:b,SymbolDispose:y}=r(19015),{isClosed:g,isReadable:_,isReadableNodeStream:w,isReadableStream:E,isReadableFinished:m,isReadableErrored:S,isWritable:R,isWritableNodeStream:v,isWritableStream:I,isWritableFinished:A,isWritableErrored:O,isNodeStream:C,willEmitClose:x,kIsClosedPromise:T}=r(60488);let N;function D(e){return e.setHeader&&"function"===typeof e.abort}const L=()=>{};function P(e,t,o){var h,p;if(2===arguments.length?(o=t,t=l):null==t?t=l:f(t,"options"),c(o,"callback"),u(t.signal,"options.signal"),o=d(o),E(e)||I(e))return k(e,t,o);if(!C(e))throw new a("stream",["ReadableStream","WritableStream","Stream"],e);const b=null!==(h=t.readable)&&void 0!==h?h:w(e),T=null!==(p=t.writable)&&void 0!==p?p:v(e),P=e._writableState,j=e._readableState,M=()=>{e.writable||U()};let V=x(e)&&w(e)===b&&v(e)===T,F=A(e,!1);const U=()=>{F=!0,e.destroyed&&(V=!1),(!V||e.readable&&!b)&&(b&&!$||o.call(e))};let $=m(e,!1);const W=()=>{$=!0,e.destroyed&&(V=!1),(!V||e.writable&&!T)&&(T&&!F||o.call(e))},B=t=>{o.call(e,t)};let G=g(e);const H=()=>{G=!0;const t=O(e)||S(e);return t&&"boolean"!==typeof t?o.call(e,t):b&&!$&&w(e,!0)&&!m(e,!1)?o.call(e,new s):!T||F||A(e,!1)?void o.call(e):o.call(e,new s)},K=()=>{G=!0;const t=O(e)||S(e);if(t&&"boolean"!==typeof t)return o.call(e,t);o.call(e)},J=()=>{e.req.on("finish",U)};D(e)?(e.on("complete",U),V||e.on("abort",H),e.req?J():e.on("request",J)):T&&!P&&(e.on("end",M),e.on("close",M)),V||"boolean"!==typeof e.aborted||e.on("aborted",H),e.on("end",W),e.on("finish",U),!1!==t.error&&e.on("error",B),e.on("close",H),G?n.nextTick(H):null!==P&&void 0!==P&&P.errorEmitted||null!==j&&void 0!==j&&j.errorEmitted?V||n.nextTick(K):(b||V&&!_(e)||!F&&!1!==R(e))&&(T||V&&!R(e)||!$&&!1!==_(e))?j&&e.req&&e.aborted&&n.nextTick(K):n.nextTick(K);const Y=()=>{o=L,e.removeListener("aborted",H),e.removeListener("complete",U),e.removeListener("abort",H),e.removeListener("request",J),e.req&&e.req.removeListener("finish",U),e.removeListener("end",M),e.removeListener("close",M),e.removeListener("finish",U),e.removeListener("end",W),e.removeListener("error",B),e.removeListener("close",H)};if(t.signal&&!G){const a=()=>{const r=o;Y(),r.call(e,new i(void 0,{cause:t.signal.reason}))};if(t.signal.aborted)n.nextTick(a);else{N=N||r(41090).addAbortListener;const n=N(t.signal,a),i=o;o=d(((...t)=>{n[y](),i.apply(e,t)}))}}return Y}function k(e,t,o){let a=!1,s=L;if(t.signal)if(s=()=>{a=!0,o.call(e,new i(void 0,{cause:t.signal.reason}))},t.signal.aborted)n.nextTick(s);else{N=N||r(41090).addAbortListener;const n=N(t.signal,s),i=o;o=d(((...t)=>{n[y](),i.apply(e,t)}))}const l=(...t)=>{a||n.nextTick((()=>o.apply(e,t)))};return b(e[T].promise,l,l),L}function j(e,t){var r;let n=!1;return null===t&&(t=l),null!==(r=t)&&void 0!==r&&r.cleanup&&(h(t.cleanup,"cleanup"),n=t.cleanup),new p(((r,i)=>{const o=P(e,t,(e=>{n&&o(),e?i(e):r()}))}))}e.exports=P,e.exports.finished=j},85293:function(e,t,r){"use strict";const n=r(34155),{PromisePrototypeThen:i,SymbolAsyncIterator:o,SymbolIterator:a}=r(19015),{Buffer:s}=r(48764),{ERR_INVALID_ARG_TYPE:l,ERR_STREAM_NULL_VALUES:d}=r(59861).codes;function u(e,t,r){let u,c;if("string"===typeof t||t instanceof s)return new e({objectMode:!0,...r,read(){this.push(t),this.push(null)}});if(t&&t[o])c=!0,u=t[o]();else{if(!t||!t[a])throw new l("iterable",["Iterable"],t);c=!1,u=t[a]()}const f=new e({objectMode:!0,highWaterMark:1,...r});let h=!1;async function p(e){const t=void 0!==e&&null!==e,r="function"===typeof u.throw;if(t&&r){const{value:t,done:r}=await u.throw(e);if(await t,r)return}if("function"===typeof u.return){const{value:e}=await u.return();await e}}async function b(){for(;;){try{const{value:e,done:t}=c?await u.next():u.next();if(t)f.push(null);else{const t=e&&"function"===typeof e.then?await e:e;if(null===t)throw h=!1,new d;if(f.push(t))continue;h=!1}}catch(e){f.destroy(e)}break}}return f._read=function(){h||(h=!0,b())},f._destroy=function(e,t){i(p(e),(()=>n.nextTick(t,e)),(r=>n.nextTick(t,r||e)))},f}e.exports=u},53736:function(e,t,r){"use strict";const{ArrayIsArray:n,ObjectSetPrototypeOf:i}=r(19015),{EventEmitter:o}=r(17187);function a(e){o.call(this,e)}function s(e,t,r){if("function"===typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?n(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}i(a.prototype,o.prototype),i(a,o),a.prototype.pipe=function(e,t){const r=this;function n(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function i(){r.readable&&r.resume&&r.resume()}r.on("data",n),e.on("drain",i),e._isStdio||t&&!1===t.end||(r.on("end",l),r.on("close",d));let a=!1;function l(){a||(a=!0,e.end())}function d(){a||(a=!0,"function"===typeof e.destroy&&e.destroy())}function u(e){c(),0===o.listenerCount(this,"error")&&this.emit("error",e)}function c(){r.removeListener("data",n),e.removeListener("drain",i),r.removeListener("end",l),r.removeListener("close",d),r.removeListener("error",u),e.removeListener("error",u),r.removeListener("end",c),r.removeListener("close",c),e.removeListener("close",c)}return s(r,"error",u),s(e,"error",u),r.on("end",c),r.on("close",c),e.on("close",c),e.emit("pipe",r),e},e.exports={Stream:a,prependListener:s}},19350:function(e,t,r){"use strict";const n=globalThis.AbortController||r(28599).AbortController,{codes:{ERR_INVALID_ARG_VALUE:i,ERR_INVALID_ARG_TYPE:o,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:s},AbortError:l}=r(59861),{validateAbortSignal:d,validateInteger:u,validateObject:c}=r(46088),f=r(19015).Symbol("kWeak"),h=r(19015).Symbol("kResistStopPropagation"),{finished:p}=r(81246),b=r(35223),{addAbortSignalNoValidate:y}=r(16720),{isWritable:g,isNodeStream:_}=r(60488),{deprecate:w}=r(41090),{ArrayPrototypePush:E,Boolean:m,MathFloor:S,Number:R,NumberIsNaN:v,Promise:I,PromiseReject:A,PromiseResolve:O,PromisePrototypeThen:C,Symbol:x}=r(19015),T=x("kEmpty"),N=x("kEof");function D(e,t){if(null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),_(e)&&!g(e))throw new i("stream",e,"must be writable");const r=b(this,e);return null!==t&&void 0!==t&&t.signal&&y(t.signal,r),r}function L(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal");let n=1;null!=(null===t||void 0===t?void 0:t.concurrency)&&(n=S(t.concurrency));let i=n-1;return null!=(null===t||void 0===t?void 0:t.highWaterMark)&&(i=S(t.highWaterMark)),u(n,"options.concurrency",1),u(i,"options.highWaterMark",0),i+=n,async function*(){const o=r(41090).AbortSignalAny([null===t||void 0===t?void 0:t.signal].filter(m)),a=this,s=[],d={signal:o};let u,c,f=!1,h=0;function p(){f=!0,b()}function b(){h-=1,y()}function y(){c&&!f&&h=i||h>=n)&&await new I((e=>{c=e}))}s.push(N)}catch(t){const e=A(t);C(e,b,p),s.push(e)}finally{f=!0,u&&(u(),u=null)}}g();try{while(1){while(s.length>0){const e=await s[0];if(e===N)return;if(o.aborted)throw new l;e!==T&&(yield e),s.shift(),y()}await new I((e=>{u=e}))}}finally{f=!0,c&&(c(),c=null)}}.call(this)}function P(e=void 0){return null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal"),async function*(){let t=0;for await(const n of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new l({cause:e.signal.reason});yield[t++,n]}}.call(this)}async function k(e,t=void 0){for await(const r of F.call(this,e,t))return!0;return!1}async function j(e,t=void 0){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);return!await k.call(this,(async(...t)=>!await e(...t)),t)}async function M(e,t){for await(const r of F.call(this,e,t))return r}async function V(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r),T}for await(const n of L.call(this,r,t));}function F(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r)?t:T}return L.call(this,r,t)}class U extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function $(e,t,r){var i;if("function"!==typeof e)throw new o("reducer",["Function","AsyncFunction"],e);null!=r&&c(r,"options"),null!=(null===r||void 0===r?void 0:r.signal)&&d(r.signal,"options.signal");let a=arguments.length>1;if(null!==r&&void 0!==r&&null!==(i=r.signal)&&void 0!==i&&i.aborted){const e=new l(void 0,{cause:r.signal.reason});throw this.once("error",(()=>{})),await p(this.destroy(e)),e}const s=new n,u=s.signal;if(null!==r&&void 0!==r&&r.signal){const e={once:!0,[f]:this,[h]:!0};r.signal.addEventListener("abort",(()=>s.abort()),e)}let b=!1;try{for await(const n of this){var y;if(b=!0,null!==r&&void 0!==r&&null!==(y=r.signal)&&void 0!==y&&y.aborted)throw new l;a?t=await e(t,n,{signal:u}):(t=n,a=!0)}if(!b&&!a)throw new U}finally{s.abort()}return t}async function W(e){null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal");const t=[];for await(const n of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new l(void 0,{cause:e.signal.reason});E(t,n)}return t}function B(e,t){const r=L.call(this,e,t);return async function*(){for await(const e of r)yield*e}.call(this)}function G(e){if(e=R(e),v(e))return 0;if(e<0)throw new s("number",">= 0",e);return e}function H(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=G(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;for await(const i of this){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;e--<=0&&(yield i)}}.call(this)}function K(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=G(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;for await(const i of this){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;if(e-- >0&&(yield i),e<=0)return}}.call(this)}e.exports.streamReturningOperators={asIndexedPairs:w(P,"readable.asIndexedPairs will be removed in a future version."),drop:H,filter:F,flatMap:B,map:L,take:K,compose:D},e.exports.promiseReturningOperators={every:j,forEach:V,reduce:$,toArray:W,some:k,find:M}},43099:function(e,t,r){"use strict";const{ObjectSetPrototypeOf:n}=r(19015);e.exports=o;const i=r(95024);function o(e){if(!(this instanceof o))return new o(e);i.call(this,e)}n(o.prototype,i.prototype),n(o,i),o.prototype._transform=function(e,t,r){r(null,e)}},45891:function(e,t,r){const n=r(34155),{ArrayIsArray:i,Promise:o,SymbolAsyncIterator:a,SymbolDispose:s}=r(19015),l=r(81246),{once:d}=r(41090),u=r(51662),c=r(53880),{aggregateTwoErrors:f,codes:{ERR_INVALID_ARG_TYPE:h,ERR_INVALID_RETURN_VALUE:p,ERR_MISSING_ARGS:b,ERR_STREAM_DESTROYED:y,ERR_STREAM_PREMATURE_CLOSE:g},AbortError:_}=r(59861),{validateFunction:w,validateAbortSignal:E}=r(46088),{isIterable:m,isReadable:S,isReadableNodeStream:R,isNodeStream:v,isTransformStream:I,isWebStream:A,isReadableStream:O,isReadableFinished:C}=r(60488),x=globalThis.AbortController||r(28599).AbortController;let T,N,D;function L(e,t,r){let n=!1;e.on("close",(()=>{n=!0}));const i=l(e,{readable:t,writable:r},(e=>{n=!e}));return{destroy:t=>{n||(n=!0,u.destroyer(e,t||new y("pipe")))},cleanup:i}}function P(e){return w(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function k(e){if(m(e))return e;if(R(e))return j(e);throw new h("val",["Readable","Iterable","AsyncIterable"],e)}async function*j(e){N||(N=r(41676)),yield*N.prototype[a].call(e)}async function M(e,t,r,{end:n}){let i,a=null;const s=e=>{if(e&&(i=e),a){const e=a;a=null,e()}},d=()=>new o(((e,t)=>{i?t(i):a=()=>{i?t(i):e()}}));t.on("drain",s);const u=l(t,{readable:!1},s);try{t.writableNeedDrain&&await d();for await(const r of e)t.write(r)||await d();n&&(t.end(),await d()),r()}catch(c){r(i!==c?f(i,c):c)}finally{u(),t.off("drain",s)}}async function V(e,t,r,{end:n}){I(t)&&(t=t.writable);const i=t.getWriter();try{for await(const t of e)await i.ready,i.write(t).catch((()=>{}));await i.ready,n&&await i.close(),r()}catch(o){try{await i.abort(o),r(o)}catch(o){r(o)}}}function F(...e){return U(e,d(P(e)))}function U(e,t,o){if(1===e.length&&i(e[0])&&(e=e[0]),e.length<2)throw new b("streams");const a=new x,l=a.signal,d=null===o||void 0===o?void 0:o.signal,u=[];function f(){F(new _)}let y,g,w;E(d,"options.signal"),D=D||r(41090).addAbortListener,d&&(y=D(d,f));const C=[];let N,P=0;function j(e){F(e,0===--P)}function F(e,r){var i;if(!e||g&&"ERR_STREAM_PREMATURE_CLOSE"!==g.code||(g=e),g||r){while(C.length)C.shift()(g);null===(i=y)||void 0===i||i[s](),a.abort(),r&&(g||u.forEach((e=>e())),n.nextTick(t,g,w))}}for(let G=0;G0,Y=K||!1!==(null===o||void 0===o?void 0:o.end),q=G===e.length-1;if(v(H)){if(Y){const{destroy:X,cleanup:z}=L(H,K,J);C.push(X),S(H)&&q&&u.push(z)}function U(e){e&&"AbortError"!==e.name&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code&&j(e)}H.on("error",U),S(H)&&q&&u.push((()=>{H.removeListener("error",U)}))}if(0===G)if("function"===typeof H){if(N=H({signal:l}),!m(N))throw new p("Iterable, AsyncIterable or Stream","source",N)}else N=m(H)||R(H)||I(H)?H:c.from(H);else if("function"===typeof H){var W;if(I(N))N=k(null===(W=N)||void 0===W?void 0:W.readable);else N=k(N);if(N=H(N,{signal:l}),K){if(!m(N,!0))throw new p("AsyncIterable",`transform[${G-1}]`,N)}else{var B;T||(T=r(43099));const Q=new T({objectMode:!0}),Z=null===(B=N)||void 0===B?void 0:B.then;if("function"===typeof Z)P++,Z.call(N,(e=>{w=e,null!=e&&Q.write(e),Y&&Q.end(),n.nextTick(j)}),(e=>{Q.destroy(e),n.nextTick(j,e)}));else if(m(N,!0))P++,M(N,Q,j,{end:Y});else{if(!O(N)&&!I(N))throw new p("AsyncIterable or Promise","destination",N);{const re=N.readable||N;P++,M(re,Q,j,{end:Y})}}N=Q;const{destroy:ee,cleanup:te}=L(N,!1,!0);C.push(ee),q&&u.push(te)}}else if(v(H)){if(R(N)){P+=2;const ne=$(N,H,j,{end:Y});S(H)&&q&&u.push(ne)}else if(I(N)||O(N)){const ie=N.readable||N;P++,M(ie,H,j,{end:Y})}else{if(!m(N))throw new h("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],N);P++,M(N,H,j,{end:Y})}N=H}else if(A(H)){if(R(N))P++,V(k(N),H,j,{end:Y});else if(O(N)||m(N))P++,V(N,H,j,{end:Y});else{if(!I(N))throw new h("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],N);P++,V(N.readable,H,j,{end:Y})}N=H}else N=c.from(H)}return(null!==l&&void 0!==l&&l.aborted||null!==d&&void 0!==d&&d.aborted)&&n.nextTick(f),N}function $(e,t,r,{end:i}){let o=!1;if(t.on("close",(()=>{o||r(new g)})),e.pipe(t,{end:!1}),i){function a(){o=!0,t.end()}C(e)?n.nextTick(a):e.once("end",a)}else r();return l(e,{readable:!0,writable:!1},(t=>{const n=e._readableState;t&&"ERR_STREAM_PREMATURE_CLOSE"===t.code&&n&&n.ended&&!n.errored&&!n.errorEmitted?e.once("end",r).once("error",r):r(t)})),l(t,{readable:!1,writable:!0},r)}e.exports={pipelineImpl:U,pipeline:F}},41676:function(e,t,r){const n=r(34155),{ArrayPrototypeIndexOf:i,NumberIsInteger:o,NumberIsNaN:a,NumberParseInt:s,ObjectDefineProperties:l,ObjectKeys:d,ObjectSetPrototypeOf:u,Promise:c,SafeSet:f,SymbolAsyncDispose:h,SymbolAsyncIterator:p,Symbol:b}=r(19015);e.exports=se,se.ReadableState=ae;const{EventEmitter:y}=r(17187),{Stream:g,prependListener:_}=r(53736),{Buffer:w}=r(48764),{addAbortSignal:E}=r(16720),m=r(81246);let S=r(41090).debuglog("stream",(e=>{S=e}));const R=r(67720),v=r(51662),{getHighWaterMark:I,getDefaultHighWaterMark:A}=r(19234),{aggregateTwoErrors:O,codes:{ERR_INVALID_ARG_TYPE:C,ERR_METHOD_NOT_IMPLEMENTED:x,ERR_OUT_OF_RANGE:T,ERR_STREAM_PUSH_AFTER_EOF:N,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:D},AbortError:L}=r(59861),{validateObject:P}=r(46088),k=b("kPaused"),{StringDecoder:j}=r(32553),M=r(85293);u(se.prototype,g.prototype),u(se,g);const V=()=>{},{errorOrDestroy:F}=v,U=1,$=2,W=4,B=8,G=16,H=32,K=64,J=128,Y=256,q=512,X=1024,z=2048,Q=4096,Z=8192,ee=16384,te=32768,re=65536,ne=1<<17,ie=1<<18;function oe(e){return{enumerable:!1,get(){return 0!==(this.state&e)},set(t){t?this.state|=e:this.state&=~e}}}function ae(e,t,n){"boolean"!==typeof n&&(n=t instanceof r(53880)),this.state=z|Q|G|H,e&&e.objectMode&&(this.state|=U),n&&e&&e.readableObjectMode&&(this.state|=U),this.highWaterMark=e?I(this,e,"readableHighWaterMark",n):A(!1),this.buffer=new R,this.length=0,this.pipes=[],this.flowing=null,this[k]=null,e&&!1===e.emitClose&&(this.state&=~z),e&&!1===e.autoDestroy&&(this.state&=~Q),this.errored=null,this.defaultEncoding=e&&e.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,e&&e.encoding&&(this.decoder=new j(e.encoding),this.encoding=e.encoding)}function se(e){if(!(this instanceof se))return new se(e);const t=this instanceof r(53880);this._readableState=new ae(e,this,t),e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.construct&&(this._construct=e.construct),e.signal&&!t&&E(e.signal,this)),g.call(this,e),v.construct(this,(()=>{this._readableState.needReadable&&ye(this,this._readableState)}))}function le(e,t,r,n){S("readableAddChunk",t);const i=e._readableState;let o;if(0===(i.state&U)&&("string"===typeof t?(r=r||i.defaultEncoding,i.encoding!==r&&(n&&i.encoding?t=w.from(t,r).toString(i.encoding):(t=w.from(t,r),r=""))):t instanceof w?r="":g._isUint8Array(t)?(t=g._uint8ArrayToBuffer(t),r=""):null!=t&&(o=new C("chunk",["string","Buffer","Uint8Array"],t))),o)F(e,o);else if(null===t)i.state&=~B,he(e,i);else if(0!==(i.state&U)||t&&t.length>0)if(n)if(0!==(i.state&W))F(e,new D);else{if(i.destroyed||i.errored)return!1;de(e,i,t,!0)}else if(i.ended)F(e,new N);else{if(i.destroyed||i.errored)return!1;i.state&=~B,i.decoder&&!r?(t=i.decoder.write(t),i.objectMode||0!==t.length?de(e,i,t,!1):ye(e,i)):de(e,i,t,!1)}else n||(i.state&=~B,ye(e,i));return!i.ended&&(i.length0?(0!==(t.state&re)?t.awaitDrainWriters.clear():t.awaitDrainWriters=null,t.dataEmitted=!0,e.emit("data",r)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),0!==(t.state&K)&&pe(e)),ye(e,t)}l(ae.prototype,{objectMode:oe(U),ended:oe($),endEmitted:oe(W),reading:oe(B),constructed:oe(G),sync:oe(H),needReadable:oe(K),emittedReadable:oe(J),readableListening:oe(Y),resumeScheduled:oe(q),errorEmitted:oe(X),emitClose:oe(z),autoDestroy:oe(Q),destroyed:oe(Z),closed:oe(ee),closeEmitted:oe(te),multiAwaitDrain:oe(re),readingMore:oe(ne),dataEmitted:oe(ie)}),se.prototype.destroy=v.destroy,se.prototype._undestroy=v.undestroy,se.prototype._destroy=function(e,t){t(e)},se.prototype[y.captureRejectionSymbol]=function(e){this.destroy(e)},se.prototype[h]=function(){let e;return this.destroyed||(e=this.readableEnded?null:new L,this.destroy(e)),new c(((t,r)=>m(this,(n=>n&&n!==e?r(n):t(null)))))},se.prototype.push=function(e,t){return le(this,e,t,!1)},se.prototype.unshift=function(e,t){return le(this,e,t,!0)},se.prototype.isPaused=function(){const e=this._readableState;return!0===e[k]||!1===e.flowing},se.prototype.setEncoding=function(e){const t=new j(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;const r=this._readableState.buffer;let n="";for(const i of r)n+=t.write(i);return r.clear(),""!==n&&r.push(n),this._readableState.length=n.length,this};const ue=1073741824;function ce(e){if(e>ue)throw new T("size","<= 1GiB",e);return e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++,e}function fe(e,t){return e<=0||0===t.length&&t.ended?0:0!==(t.state&U)?1:a(e)?t.flowing&&t.length?t.buffer.first().length:t.length:e<=t.length?e:t.ended?t.length:0}function he(e,t){if(S("onEofChunk"),!t.ended){if(t.decoder){const e=t.decoder.end();e&&e.length&&(t.buffer.push(e),t.length+=t.objectMode?1:e.length)}t.ended=!0,t.sync?pe(e):(t.needReadable=!1,t.emittedReadable=!0,be(e))}}function pe(e){const t=e._readableState;S("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(S("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(be,e))}function be(e){const t=e._readableState;S("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||t.errored||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,Re(e)}function ye(e,t){!t.readingMore&&t.constructed&&(t.readingMore=!0,n.nextTick(ge,e,t))}function ge(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!1===t[k]?t.flowing=!0:e.listenerCount("data")>0?e.resume():t.readableListening||(t.flowing=null)}function Ee(e){S("readable nexttick read 0"),e.read(0)}function me(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(Se,e,t))}function Se(e,t){S("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Re(e),t.flowing&&!t.reading&&e.read(0)}function Re(e){const t=e._readableState;S("flow",t.flowing);while(t.flowing&&null!==e.read());}function ve(e,t){"function"!==typeof e.read&&(e=se.wrap(e,{objectMode:!0}));const r=Ie(e,t);return r.stream=e,r}async function*Ie(e,t){let r,n=V;function i(t){this===e?(n(),n=V):n=t}e.on("readable",i);const o=m(e,{writable:!1},(e=>{r=e?O(r,e):null,n(),n=V}));try{while(1){const t=e.destroyed?null:e.read();if(null!==t)yield t;else{if(r)throw r;if(null===r)return;await new c(i)}}}catch(a){throw r=O(r,a),r}finally{!r&&!1===(null===t||void 0===t?void 0:t.destroyOnReturn)||void 0!==r&&!e._readableState.autoDestroy?(e.off("readable",i),o()):v.destroyer(e,null)}}function Ae(e,t){if(0===t.length)return null;let r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function Oe(e){const t=e._readableState;S("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(Ce,t,e))}function Ce(e,t){if(S("endReadableNT",e.endEmitted,e.length),!e.errored&&!e.closeEmitted&&!e.endEmitted&&0===e.length)if(e.endEmitted=!0,t.emit("end"),t.writable&&!1===t.allowHalfOpen)n.nextTick(xe,t);else if(e.autoDestroy){const e=t._writableState,r=!e||e.autoDestroy&&(e.finished||!1===e.writable);r&&t.destroy()}}function xe(e){const t=e.writable&&!e.writableEnded&&!e.destroyed;t&&e.end()}let Te;function Ne(){return void 0===Te&&(Te={}),Te}se.prototype.read=function(e){S("read",e),void 0===e?e=NaN:o(e)||(e=s(e,10));const t=this._readableState,r=e;if(e>t.highWaterMark&&(t.highWaterMark=ce(e)),0!==e&&(t.state&=~J),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return S("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?Oe(this):pe(this),null;if(e=fe(e,t),0===e&&t.ended)return 0===t.length&&Oe(this),null;let n,i=0!==(t.state&K);if(S("need readable",i),(0===t.length||t.length-e0?Ae(e,t):null,null===n?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&Oe(this)),null===n||t.errorEmitted||t.closeEmitted||(t.dataEmitted=!0,this.emit("data",n)),n},se.prototype._read=function(e){throw new x("_read()")},se.prototype.pipe=function(e,t){const r=this,i=this._readableState;1===i.pipes.length&&(i.multiAwaitDrain||(i.multiAwaitDrain=!0,i.awaitDrainWriters=new f(i.awaitDrainWriters?[i.awaitDrainWriters]:[]))),i.pipes.push(e),S("pipe count=%d opts=%j",i.pipes.length,t);const o=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr,a=o?l:w;function s(e,t){S("onunpipe"),e===r&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,c())}function l(){S("onend"),e.end()}let d;i.endEmitted?n.nextTick(a):r.once("end",a),e.on("unpipe",s);let u=!1;function c(){S("cleanup"),e.removeListener("close",y),e.removeListener("finish",g),d&&e.removeListener("drain",d),e.removeListener("error",b),e.removeListener("unpipe",s),r.removeListener("end",l),r.removeListener("end",w),r.removeListener("data",p),u=!0,d&&i.awaitDrainWriters&&(!e._writableState||e._writableState.needDrain)&&d()}function h(){u||(1===i.pipes.length&&i.pipes[0]===e?(S("false write response, pause",0),i.awaitDrainWriters=e,i.multiAwaitDrain=!1):i.pipes.length>1&&i.pipes.includes(e)&&(S("false write response, pause",i.awaitDrainWriters.size),i.awaitDrainWriters.add(e)),r.pause()),d||(d=_e(r,e),e.on("drain",d))}function p(t){S("ondata");const r=e.write(t);S("dest.write",r),!1===r&&h()}function b(t){if(S("onerror",t),w(),e.removeListener("error",b),0===e.listenerCount("error")){const r=e._writableState||e._readableState;r&&!r.errorEmitted?F(e,t):e.emit("error",t)}}function y(){e.removeListener("finish",g),w()}function g(){S("onfinish"),e.removeListener("close",y),w()}function w(){S("unpipe"),r.unpipe(e)}return r.on("data",p),_(e,"error",b),e.once("close",y),e.once("finish",g),e.emit("pipe",r),!0===e.writableNeedDrain?h():i.flowing||(S("pipe resume"),r.resume()),e},se.prototype.unpipe=function(e){const t=this._readableState,r={hasUnpiped:!1};if(0===t.pipes.length)return this;if(!e){const e=t.pipes;t.pipes=[],this.pause();for(let t=0;t0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,S("on readable",i.length,i.reading),i.length?pe(this):i.reading||n.nextTick(Ee,this))),r},se.prototype.addListener=se.prototype.on,se.prototype.removeListener=function(e,t){const r=g.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(we,this),r},se.prototype.off=se.prototype.removeListener,se.prototype.removeAllListeners=function(e){const t=g.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(we,this),t},se.prototype.resume=function(){const e=this._readableState;return e.flowing||(S("resume"),e.flowing=!e.readableListening,me(this,e)),e[k]=!1,this},se.prototype.pause=function(){return S("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(S("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[k]=!0,this},se.prototype.wrap=function(e){let t=!1;e.on("data",(r=>{!this.push(r)&&e.pause&&(t=!0,e.pause())})),e.on("end",(()=>{this.push(null)})),e.on("error",(e=>{F(this,e)})),e.on("close",(()=>{this.destroy()})),e.on("destroy",(()=>{this.destroy()})),this._read=()=>{t&&e.resume&&(t=!1,e.resume())};const r=d(e);for(let n=1;n{t?e?e(t):this.destroy(t):(null!=r&&this.push(r),this.push(null),e&&e())}))}function c(){this._final!==u&&u.call(this)}d.prototype._final=u,d.prototype._transform=function(e,t,r){throw new o("_transform()")},d.prototype._write=function(e,t,r){const n=this._readableState,i=this._writableState,o=n.length;this._transform(e,t,((e,t)=>{e?r(e):(null!=t&&this.push(t),i.ended||o===n.length||n.length{const e=this._writableState;e.writing||B(this,e),J(this,e)}))}function k(e,t,r,i){const o=e._writableState;if("function"===typeof r)i=r,r=o.defaultEncoding;else{if(r){if("buffer"!==r&&!b.isEncoding(r))throw new C(r)}else r=o.defaultEncoding;"function"!==typeof i&&(i=T)}if(null===t)throw new A;if(!o.objectMode)if("string"===typeof t)!1!==o.decodeStrings&&(t=b.from(t,r),r="buffer");else if(t instanceof b)r="buffer";else{if(!p._isUint8Array(t))throw new E("chunk",["string","Buffer","Uint8Array"],t);t=p._uint8ArrayToBuffer(t),r="buffer"}let a;return o.ending?a=new O:o.destroyed&&(a=new v("write")),a?(n.nextTick(i,a),x(e,a,!0),a):(o.pendingcb++,j(e,o,t,r,i))}function j(e,t,r,n,i){const o=t.objectMode?1:r.length;t.length+=o;const a=t.lengthr.bufferedIndex&&B(e,r),i?null!==r.afterWriteTickInfo&&r.afterWriteTickInfo.cb===o?r.afterWriteTickInfo.count++:(r.afterWriteTickInfo={count:1,cb:o,stream:e,state:r},n.nextTick(U,r.afterWriteTickInfo)):$(e,r,1,o))):x(e,new S)}function U({stream:e,state:t,count:r,cb:n}){return t.afterWriteTickInfo=null,$(e,t,r,n)}function $(e,t,r,n){const i=!t.ending&&!e.destroyed&&0===t.length&&t.needDrain;i&&(t.needDrain=!1,e.emit("drain"));while(r-- >0)t.pendingcb--,n();t.destroyed&&W(t),J(e,t)}function W(e){if(e.writing)return;for(let i=e.bufferedIndex;i1&&e._writev){t.pendingcb-=a-1;const n=t.allNoop?T:e=>{for(let t=s;t256?(r.splice(0,s),t.bufferedIndex=0):t.bufferedIndex=s}t.bufferProcessing=!1}function G(e){return e.ending&&!e.destroyed&&e.constructed&&0===e.length&&!e.errored&&0===e.buffered.length&&!e.finished&&!e.writing&&!e.errorEmitted&&!e.closeEmitted}function H(e,t){let r=!1;function i(i){if(r)x(e,null!==i&&void 0!==i?i:S());else if(r=!0,t.pendingcb--,i){const r=t[N].splice(0);for(let e=0;e{G(t)?Y(e,t):t.pendingcb--}),e,t)):G(t)&&(t.pendingcb++,Y(e,t))))}function Y(e,t){t.pendingcb--,t.finished=!0;const r=t[N].splice(0);for(let n=0;n>>0}const x=/^[0-7]+$/,T="must be a 32-bit unsigned integer or an octal string";function N(e,t,r){if("undefined"===typeof e&&(e=r),"string"===typeof e){if(null===h(x,e))throw new E(t,e,T);e=c(e,8)}return P(e,t),e}const D=g(((e,t,r=u,n=d)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new m(t,"an integer",e);if(en)throw new m(t,`>= ${r} && <= ${n}`,e)})),L=g(((e,t,r=-2147483648,n=2147483647)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new m(t,"an integer",e);if(en)throw new m(t,`>= ${r} && <= ${n}`,e)})),P=g(((e,t,r=!1)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new m(t,"an integer",e);const n=r?1:0,i=4294967295;if(ei)throw new m(t,`>= ${n} && <= ${i}`,e)}));function k(e,t){if("string"!==typeof e)throw new w(t,"string",e)}function j(e,t,r=void 0,n){if("number"!==typeof e)throw new w(t,"number",e);if(null!=r&&en||(null!=r||null!=n)&&l(e))throw new m(t,`${null!=r?`>= ${r}`:""}${null!=r&&null!=n?" && ":""}${null!=n?`<= ${n}`:""}`,e)}const M=g(((e,t,r)=>{if(!i(r,e)){const n=o(a(r,(e=>"string"===typeof e?`'${e}'`:p(e))),", "),i="must be one of: "+n;throw new E(t,e,i)}}));function V(e,t){if("boolean"!==typeof e)throw new w(t,"boolean",e)}function F(e,t,r){return null!=e&&f(e,t)?e[t]:r}const U=g(((e,t,r=null)=>{const i=F(r,"allowArray",!1),o=F(r,"allowFunction",!1),a=F(r,"nullable",!1);if(!a&&null===e||!i&&n(e)||"object"!==typeof e&&(!o||"function"!==typeof e))throw new w(t,"Object",e)})),$=g(((e,t)=>{if(null!=e&&"object"!==typeof e&&"function"!==typeof e)throw new w(t,"a dictionary",e)})),W=g(((e,t,r=0)=>{if(!n(e))throw new w(t,"Array",e);if(e.length{if(!I(e))throw new w(t,["Buffer","TypedArray","DataView"],e)}));function Y(e,t){const r=R(t),n=e.length;if("hex"===r&&n%2!==0)throw new E("encoding",t,`is invalid for data of length ${n}`)}function q(e,t="Port",r=!0){if("number"!==typeof e&&"string"!==typeof e||"string"===typeof e&&0===y(e).length||+e!==+e>>>0||e>65535||0===e&&!r)throw new _(t,e,r);return 0|e}const X=g(((e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new w(t,"AbortSignal",e)})),z=g(((e,t)=>{if("function"!==typeof e)throw new w(t,"Function",e)})),Q=g(((e,t)=>{if("function"!==typeof e||v(e))throw new w(t,"Function",e)})),Z=g(((e,t)=>{if(void 0!==e)throw new w(t,"undefined",e)}));function ee(e,t,r){if(!i(r,e))throw new w(t,`('${o(r,"|")}')`,e)}const te=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function re(e,t){if("undefined"===typeof e||!h(te,e))throw new E(t,e,'must be an array or string of format "; rel=preload; as=style"')}function ne(e){if("string"===typeof e)return re(e,"hints"),e;if(n(e)){const t=e.length;let r="";if(0===t)return r;for(let n=0;n; rel=preload; as=style"')}e.exports={isInt32:O,isUint32:C,parseFileMode:N,validateArray:W,validateStringArray:B,validateBooleanArray:G,validateAbortSignalArray:H,validateBoolean:V,validateBuffer:J,validateDictionary:$,validateEncoding:Y,validateFunction:z,validateInt32:L,validateInteger:D,validateNumber:j,validateObject:U,validateOneOf:M,validatePlainFunction:Q,validatePort:q,validateSignalName:K,validateString:k,validateUint32:P,validateUndefined:Z,validateUnion:ee,validateAbortSignal:X,validateLinkHeaderValue:ne}},45024:function(e,t,r){"use strict";const n=r(56785),i=r(97864),o=n.Readable.destroy;e.exports=n.Readable,e.exports._uint8ArrayToBuffer=n._uint8ArrayToBuffer,e.exports._isUint8Array=n._isUint8Array,e.exports.isDisturbed=n.isDisturbed,e.exports.isErrored=n.isErrored,e.exports.isReadable=n.isReadable,e.exports.Readable=n.Readable,e.exports.Writable=n.Writable,e.exports.Duplex=n.Duplex,e.exports.Transform=n.Transform,e.exports.PassThrough=n.PassThrough,e.exports.addAbortSignal=n.addAbortSignal,e.exports.finished=n.finished,e.exports.destroy=n.destroy,e.exports.destroy=o,e.exports.pipeline=n.pipeline,e.exports.compose=n.compose,Object.defineProperty(n,"promises",{configurable:!0,enumerable:!0,get(){return i}}),e.exports.Stream=n.Stream,e.exports["default"]=e.exports},59861:function(e,t,r){"use strict";const{format:n,inspect:i,AggregateError:o}=r(41090),a=globalThis.AggregateError||o,s=Symbol("kIsNodeError"),l=["string","function","number","object","Function","Object","boolean","bigint","symbol"],d=/^([A-Z][a-z0-9]*)+$/,u="__node_internal_",c={};function f(e,t){if(!e)throw new c.ERR_INTERNAL_ASSERTION(t)}function h(e){let t="",r=e.length;const n="-"===e[0]?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function p(e,t,r){if("function"===typeof t)return f(t.length<=r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${t.length}).`),t(...r);const i=(t.match(/%[dfijoOs]/g)||[]).length;return f(i===r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${i}).`),0===r.length?t:n(t,...r)}function b(e,t,r){r||(r=Error);class n extends r{constructor(...r){super(p(e,t,r))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(n.prototype,{name:{value:r.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),n.prototype.code=e,n.prototype[s]=!0,c[e]=n}function y(e){const t=u+e.name;return Object.defineProperty(e,"name",{value:t}),e}function g(e,t){if(e&&t&&e!==t){if(Array.isArray(t.errors))return t.errors.push(e),t;const r=new a([t,e],t.message);return r.code=t.code,r}return e||t}class _ extends Error{constructor(e="The operation was aborted",t=void 0){if(void 0!==t&&"object"!==typeof t)throw new c.ERR_INVALID_ARG_TYPE("options","Object",t);super(e,t),this.code="ABORT_ERR",this.name="AbortError"}}b("ERR_ASSERTION","%s",Error),b("ERR_INVALID_ARG_TYPE",((e,t,r)=>{f("string"===typeof e,"'name' must be a string"),Array.isArray(t)||(t=[t]);let n="The ";e.endsWith(" argument")?n+=`${e} `:n+=`"${e}" ${e.includes(".")?"property":"argument"} `,n+="must be ";const o=[],a=[],s=[];for(const i of t)f("string"===typeof i,"All expected entries have to be of type string"),l.includes(i)?o.push(i.toLowerCase()):d.test(i)?a.push(i):(f("object"!==i,'The value "object" should be written as "Object"'),s.push(i));if(a.length>0){const e=o.indexOf("object");-1!==e&&(o.splice(o,e,1),a.push("Object"))}if(o.length>0){switch(o.length){case 1:n+=`of type ${o[0]}`;break;case 2:n+=`one of type ${o[0]} or ${o[1]}`;break;default:{const e=o.pop();n+=`one of type ${o.join(", ")}, or ${e}`}}(a.length>0||s.length>0)&&(n+=" or ")}if(a.length>0){switch(a.length){case 1:n+=`an instance of ${a[0]}`;break;case 2:n+=`an instance of ${a[0]} or ${a[1]}`;break;default:{const e=a.pop();n+=`an instance of ${a.join(", ")}, or ${e}`}}s.length>0&&(n+=" or ")}switch(s.length){case 0:break;case 1:s[0].toLowerCase()!==s[0]&&(n+="an "),n+=`${s[0]}`;break;case 2:n+=`one of ${s[0]} or ${s[1]}`;break;default:{const e=s.pop();n+=`one of ${s.join(", ")}, or ${e}`}}if(null==r)n+=`. Received ${r}`;else if("function"===typeof r&&r.name)n+=`. Received function ${r.name}`;else if("object"===typeof r){var u;if(null!==(u=r.constructor)&&void 0!==u&&u.name)n+=`. Received an instance of ${r.constructor.name}`;else{const e=i(r,{depth:-1});n+=`. Received ${e}`}}else{let e=i(r,{colors:!1});e.length>25&&(e=`${e.slice(0,25)}...`),n+=`. Received type ${typeof r} (${e})`}return n}),TypeError),b("ERR_INVALID_ARG_VALUE",((e,t,r="is invalid")=>{let n=i(t);n.length>128&&(n=n.slice(0,128)+"...");const o=e.includes(".")?"property":"argument";return`The ${o} '${e}' ${r}. Received ${n}`}),TypeError),b("ERR_INVALID_RETURN_VALUE",((e,t,r)=>{var n;const i=null!==r&&void 0!==r&&null!==(n=r.constructor)&&void 0!==n&&n.name?`instance of ${r.constructor.name}`:"type "+typeof r;return`Expected ${e} to be returned from the "${t}" function but got ${i}.`}),TypeError),b("ERR_MISSING_ARGS",((...e)=>{let t;f(e.length>0,"At least one arg needs to be specified");const r=e.length;switch(e=(Array.isArray(e)?e:[e]).map((e=>`"${e}"`)).join(" or "),r){case 1:t+=`The ${e[0]} argument`;break;case 2:t+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const r=e.pop();t+=`The ${e.join(", ")}, and ${r} arguments`}break}return`${t} must be specified`}),TypeError),b("ERR_OUT_OF_RANGE",((e,t,r)=>{let n;return f(t,'Missing "range" argument'),Number.isInteger(r)&&Math.abs(r)>2**32?n=h(String(r)):"bigint"===typeof r?(n=String(r),(r>2n**32n||r<-(2n**32n))&&(n=h(n)),n+="n"):n=i(r),`The value of "${e}" is out of range. It must be ${t}. Received ${n}`}),RangeError),b("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),b("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),b("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),b("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),b("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),b("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),b("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),b("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),b("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),b("ERR_STREAM_WRITE_AFTER_END","write after end",Error),b("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:_,aggregateTwoErrors:y(g),hideStackFrames:y,codes:c}},19015:function(e){"use strict";e.exports={ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,t){return e.includes(t)},ArrayPrototypeIndexOf(e,t){return e.indexOf(t)},ArrayPrototypeJoin(e,t){return e.join(t)},ArrayPrototypeMap(e,t){return e.map(t)},ArrayPrototypePop(e,t){return e.pop(t)},ArrayPrototypePush(e,t){return e.push(t)},ArrayPrototypeSlice(e,t,r){return e.slice(t,r)},Error:Error,FunctionPrototypeCall(e,t,...r){return e.call(t,...r)},FunctionPrototypeSymbolHasInstance(e,t){return Function.prototype[Symbol.hasInstance].call(e,t)},MathFloor:Math.floor,Number:Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(e,t){return Object.defineProperties(e,t)},ObjectDefineProperty(e,t,r){return Object.defineProperty(e,t,r)},ObjectGetOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,t){return Object.setPrototypeOf(e,t)},Promise:Promise,PromisePrototypeCatch(e,t){return e.catch(t)},PromisePrototypeThen(e,t,r){return e.then(t,r)},PromiseReject(e){return Promise.reject(e)},PromiseResolve(e){return Promise.resolve(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,t){return e.test(t)},SafeSet:Set,String:String,StringPrototypeSlice(e,t,r){return e.slice(t,r)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol:Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,SymbolDispose:Symbol.dispose||Symbol("Symbol.dispose"),SymbolAsyncDispose:Symbol.asyncDispose||Symbol("Symbol.asyncDispose"),TypedArrayPrototypeSet(e,t,r){return e.set(t,r)},Boolean:Boolean,Uint8Array:Uint8Array}},41090:function(e,t,r){"use strict";const n=r(48764),{kResistStopPropagation:i,SymbolDispose:o}=r(19015),a=globalThis.AbortSignal||r(28599).AbortSignal,s=globalThis.AbortController||r(28599).AbortController,l=Object.getPrototypeOf((async function(){})).constructor,d=globalThis.Blob||n.Blob,u="undefined"!==typeof d?function(e){return e instanceof d}:function(e){return!1},c=(e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new ERR_INVALID_ARG_TYPE(t,"AbortSignal",e)},f=(e,t)=>{if("function"!==typeof e)throw new ERR_INVALID_ARG_TYPE(t,"Function",e)};class h extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t="";for(let r=0;r{e=r,t=n}));return{promise:r,resolve:e,reject:t}},promisify(e){return new Promise(((t,r)=>{e(((e,...n)=>e?r(e):t(...n)))}))},debuglog(){return function(){}},format(e,...t){return e.replace(/%([sdifj])/g,(function(...[e,r]){const n=t.shift();if("f"===r)return n.toFixed(6);if("j"===r)return JSON.stringify(n);if("s"===r&&"object"===typeof n){const e=n.constructor!==Object?n.constructor.name:"";return`${e} {}`.trim()}return n.toString()}))},inspect(e){switch(typeof e){case"string":if(e.includes("'")){if(!e.includes('"'))return`"${e}"`;if(!e.includes("`")&&!e.includes("${"))return`\`${e}\``}return`'${e}'`;case"number":return isNaN(e)?"NaN":Object.is(e,-0)?String(e):e;case"bigint":return`${String(e)}n`;case"boolean":case"undefined":return String(e);case"object":return"{}"}},types:{isAsyncFunction(e){return e instanceof l},isArrayBufferView(e){return ArrayBuffer.isView(e)}},isBlob:u,deprecate(e,t){return e},addAbortListener:r(17187).addAbortListener||function(e,t){if(void 0===e)throw new ERR_INVALID_ARG_TYPE("signal","AbortSignal",e);let r;return c(e,"signal"),f(t,"listener"),e.aborted?queueMicrotask((()=>t())):(e.addEventListener("abort",t,{__proto__:null,once:!0,[i]:!0}),r=()=>{e.removeEventListener("abort",t)}),{__proto__:null,[o](){var e;null===(e=r)||void 0===e||e()}}},AbortSignalAny:a.any||function(e){if(1===e.length)return e[0];const t=new s,r=()=>t.abort();return e.forEach((e=>{c(e,"signals"),e.addEventListener("abort",r,{once:!0})})),t.signal.addEventListener("abort",(()=>{e.forEach((e=>e.removeEventListener("abort",r)))}),{once:!0}),t.signal}},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},56785:function(e,t,r){const{Buffer:n}=r(48764),{ObjectDefineProperty:i,ObjectKeys:o,ReflectApply:a}=r(19015),{promisify:{custom:s}}=r(41090),{streamReturningOperators:l,promiseReturningOperators:d}=r(19350),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=r(59861),c=r(35223),{setDefaultHighWaterMark:f,getDefaultHighWaterMark:h}=r(19234),{pipeline:p}=r(45891),{destroyer:b}=r(51662),y=r(81246),g=r(97864),_=r(60488),w=e.exports=r(53736).Stream;w.isDestroyed=_.isDestroyed,w.isDisturbed=_.isDisturbed,w.isErrored=_.isErrored,w.isReadable=_.isReadable,w.isWritable=_.isWritable,w.Readable=r(41676);for(const S of o(l)){const R=l[S];function E(...e){if(new.target)throw u();return w.Readable.from(a(R,this,e))}i(E,"name",{__proto__:null,value:R.name}),i(E,"length",{__proto__:null,value:R.length}),i(w.Readable.prototype,S,{__proto__:null,value:E,enumerable:!1,configurable:!0,writable:!0})}for(const v of o(d)){const I=d[v];function E(...e){if(new.target)throw u();return a(I,this,e)}i(E,"name",{__proto__:null,value:I.name}),i(E,"length",{__proto__:null,value:I.length}),i(w.Readable.prototype,v,{__proto__:null,value:E,enumerable:!1,configurable:!0,writable:!0})}w.Writable=r(83906),w.Duplex=r(53880),w.Transform=r(95024),w.PassThrough=r(43099),w.pipeline=p;const{addAbortSignal:m}=r(16720);w.addAbortSignal=m,w.finished=y,w.destroy=b,w.compose=c,w.setDefaultHighWaterMark=f,w.getDefaultHighWaterMark=h,i(w,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return g}}),i(p,s,{__proto__:null,enumerable:!0,get(){return g.pipeline}}),i(y,s,{__proto__:null,enumerable:!0,get(){return g.finished}}),w.Stream=w,w._isUint8Array=function(e){return e instanceof Uint8Array},w._uint8ArrayToBuffer=function(e){return n.from(e.buffer,e.byteOffset,e.byteLength)}},97864:function(e,t,r){"use strict";const{ArrayPrototypePop:n,Promise:i}=r(19015),{isIterable:o,isNodeStream:a,isWebStream:s}=r(60488),{pipelineImpl:l}=r(45891),{finished:d}=r(81246);function u(...e){return new i(((t,r)=>{let i,d;const u=e[e.length-1];if(u&&"object"===typeof u&&!a(u)&&!o(u)&&!s(u)){const t=n(e);i=t.signal,d=t.end}l(e,((e,n)=>{e?r(e):t(n)}),{signal:i,end:d})}))}r(56785),e.exports={finished:d,pipeline:u}},95456:function(e){"use strict";e.exports=function e(t){return null===t||"object"!==typeof t||null!=t.toJSON?JSON.stringify(t):Array.isArray(t)?"["+t.reduce(((t,r,n)=>{const i=0===n?"":",",o=void 0===r||"symbol"===typeof r?null:r;return t+i+e(o)}),"")+"]":"{"+Object.keys(t).sort().reduce(((r,n,i)=>{if(void 0===t[n]||"symbol"===typeof t[n])return r;const o=0===r.length?"":",";return r+o+e(n)+":"+e(t[n])}),"")+"}"}},31905:function(){(function(e){(function(t){var r={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};function n(e){return e&&DataView.prototype.isPrototypeOf(e)}if(r.arrayBuffer)var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],o=ArrayBuffer.isView||function(e){return e&&i.indexOf(Object.prototype.toString.call(e))>-1};function a(e){if("string"!==typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function s(e){return"string"!==typeof e&&(e=String(e)),e}function l(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return r.iterable&&(t[Symbol.iterator]=function(){return t}),t}function d(e){this.map={},e instanceof d?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function u(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function c(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function f(e){var t=new FileReader,r=c(t);return t.readAsArrayBuffer(e),r}function h(e){var t=new FileReader,r=c(t);return t.readAsText(e),r}function p(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n-1?t:e}function w(e,t){t=t||{};var r=t.body;if(e instanceof w){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new d(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,r||null==e._bodyInit||(r=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new d(t.headers)),this.method=_(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r)}function E(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),i=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(i))}})),t}function m(e){var t=new d,r=e.replace(/\r?\n[\t ]+/g," ");return r.split(/\r?\n/).forEach((function(e){var r=e.split(":"),n=r.shift().trim();if(n){var i=r.join(":").trim();t.append(n,i)}})),t}function S(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new d(t.headers),this.url=t.url||"",this._initBody(e)}w.prototype.clone=function(){return new w(this,{body:this._bodyInit})},y.call(w.prototype),y.call(S.prototype),S.prototype.clone=function(){return new S(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},S.error=function(){var e=new S(null,{status:0,statusText:""});return e.type="error",e};var R=[301,302,303,307,308];S.redirect=function(e,t){if(-1===R.indexOf(t))throw new RangeError("Invalid status code");return new S(null,{status:t,headers:{location:e}})},t.DOMException=e.DOMException;try{new t.DOMException}catch(I){t.DOMException=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function v(e,n){return new Promise((function(i,o){var a=new w(e,n);if(a.signal&&a.signal.aborted)return o(new t.DOMException("Aborted","AbortError"));var s=new XMLHttpRequest;function l(){s.abort()}s.onload=function(){var e={status:s.status,statusText:s.statusText,headers:m(s.getAllResponseHeaders()||"")};e.url="responseURL"in s?s.responseURL:e.headers.get("X-Request-URL");var t="response"in s?s.response:s.responseText;i(new S(t,e))},s.onerror=function(){o(new TypeError("Network request failed"))},s.ontimeout=function(){o(new TypeError("Network request failed"))},s.onabort=function(){o(new t.DOMException("Aborted","AbortError"))},s.open(a.method,a.url,!0),"include"===a.credentials?s.withCredentials=!0:"omit"===a.credentials&&(s.withCredentials=!1),"responseType"in s&&r.blob&&(s.responseType="blob"),a.headers.forEach((function(e,t){s.setRequestHeader(t,e)})),a.signal&&(a.signal.addEventListener("abort",l),s.onreadystatechange=function(){4===s.readyState&&a.signal.removeEventListener("abort",l)}),s.send("undefined"===typeof a._bodyInit?null:a._bodyInit)}))}v.polyfill=!0,e.fetch||(e.fetch=v,e.Headers=d,e.Request=w,e.Response=S),t.Headers=d,t.Request=w,t.Response=S,t.fetch=v,Object.defineProperty(t,"__esModule",{value:!0})})({})})("undefined"!==typeof self?self:this)},12475:function(e,t,r){"use strict";var n=r(48764)["Buffer"],i=/^utf-?8|ascii|utf-?16-?le|ucs-?2|base-?64|latin-?1$/i,o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,a=/\s|\uFEFF|\xA0/,s=/\r?\n[\x20\x09]+/g,l=/[;,"]/,d=/[;,"]|\s/,u=/^[!#$%&'*+\-\.^_`|~\da-zA-Z]+$/,c={IDLE:1,URI:2,ATTR:4};function f(e){return e.replace(o,"")}function h(e){return a.test(e)}function p(e,t){while(h(e[t]))t++;return t}function b(e){return d.test(e)||!u.test(e)}function y(e,t){return Object.keys(e).length===Object.keys(t).length&&Object.keys(e).every((r=>r in t&&e[r]===t[r]))}class g{constructor(e){this.refs=[],e&&this.parse(e)}rel(e){for(var t=[],r=e.toLowerCase(),n=0;ny(t,e)))||this.refs.push(e),this}has(e,t){e=e.toLowerCase();for(var r=0;r",t);if(-1===o)throw new Error("Expected end of URI delimiter at offset "+t);i={uri:e.slice(t+1,o)},t=o,r=c.URI,t++}else if(r===c.URI){if(h(e[t])){t++;continue}if(";"===e[t])r=c.ATTR,t++;else{if(","!==e[t])throw new Error('Unexpected character "'+e[t]+'" at offset '+t);r=c.IDLE,t++}}else{if(r!==c.ATTR)throw new Error('Unknown parser state "'+r+'"');if(";"===e[t]||h(e[t])){t++;continue}o=e.indexOf("=",t);-1===o&&(o=e.indexOf(";",t)),-1===o&&(o=e.length);var a=f(e.slice(t,o)).toLowerCase(),d="";if(t=o+1,t=p(e,t),'"'===e[t]){t++;while(t"),e.push(t);return e.join(", ")}}g.isCompatibleEncoding=function(e){return i.test(e)},g.parse=function(e,t){return(new g).parse(e,t)},g.isSingleOccurenceAttr=function(e){return"rel"===e||"type"===e||"media"===e||"title"===e||"title*"===e},g.isTokenAttr=function(e){return"rel"===e||"type"===e||"anchor"===e},g.escapeQuotes=function(e){return e.replace(/"/g,'\\"')},g.expandRelations=function(e){var t=e.rel.split(" ");return t.map((function(t){var r=Object.assign({},e);return r.rel=t,r}))},g.parseExtendedValue=function(e){var t=/([^']+)?(?:'([^']*)')?(.+)/.exec(e);return{language:t[2].toLowerCase(),encoding:g.isCompatibleEncoding(t[1])?null:t[1].toLowerCase(),value:g.isCompatibleEncoding(t[1])?decodeURIComponent(t[3]):t[3]}},g.formatExtendedAttribute=function(e,t){var r=(t.encoding||"utf-8").toUpperCase(),i=t.language||"en",o="";return o=n.isBuffer(t.value)&&g.isCompatibleEncoding(r)?t.value.toString(r):n.isBuffer(t.value)?t.value.toString("hex").replace(/[0-9a-f]{2}/gi,"%$1"):encodeURIComponent(t.value),e+"="+r+"'"+i+"'"+o},g.formatAttribute=function(e,t){return Array.isArray(t)?t.map((t=>g.formatAttribute(e,t))).join("; "):"*"===e[e.length-1]||"string"!==typeof t?g.formatExtendedAttribute(e,t):(g.isTokenAttr(e)?t=b(t)?'"'+g.escapeQuotes(t)+'"':g.escapeQuotes(t):b(t)&&(t=encodeURIComponent(t),t=t.replace(/%20/g," ").replace(/%2C/g,",").replace(/%3B/g,";"),t='"'+t+'"'),e+"="+t)},e.exports=g},11288:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(98931),t),i(r(87011),t),i(r(97378),t),i(r(91891),t),i(r(29e3),t),i(r(35656),t),i(r(24990),t)},98931:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContextParser=void 0,r(31905);const n=r(68912),i=r(87011),o=r(97378),a=r(35656),s=r(24990);class l{constructor(e){e=e||{},this.documentLoader=e.documentLoader||new o.FetchDocumentLoader,this.documentCache={},this.validateContext=!e.skipValidation,this.expandContentTypeToBase=!!e.expandContentTypeToBase,this.remoteContextsDepthLimit=e.remoteContextsDepthLimit||32,this.redirectSchemaOrgHttps=!("redirectSchemaOrgHttps"in e)||!!e.redirectSchemaOrgHttps}static validateLanguage(e,t,r){if("string"!==typeof e)throw new i.ErrorCoded(`The value of an '@language' must be a string, got '${JSON.stringify(e)}'`,r);if(!s.Util.REGEX_LANGUAGE_TAG.test(e)){if(t)throw new i.ErrorCoded(`The value of an '@language' must be a valid language tag, got '${JSON.stringify(e)}'`,r);return!1}return!0}static validateDirection(e,t){if("string"!==typeof e)throw new i.ErrorCoded(`The value of an '@direction' must be a string, got '${JSON.stringify(e)}'`,i.ERROR_CODES.INVALID_BASE_DIRECTION);if(!s.Util.REGEX_DIRECTION_TAG.test(e)){if(t)throw new i.ErrorCoded(`The value of an '@direction' must be 'ltr' or 'rtl', got '${JSON.stringify(e)}'`,i.ERROR_CODES.INVALID_BASE_DIRECTION);return!1}return!0}idifyReverseTerms(e){for(const t of Object.keys(e)){let r=e[t];if(r&&"object"===typeof r&&r["@reverse"]&&!r["@id"]){if("string"!==typeof r["@reverse"]||s.Util.isValidKeyword(r["@reverse"]))throw new i.ErrorCoded(`Invalid @reverse value, must be absolute IRI or blank node: '${r["@reverse"]}'`,i.ERROR_CODES.INVALID_IRI_MAPPING);r=e[t]=Object.assign(Object.assign({},r),{"@id":r["@reverse"]}),r["@id"]=r["@reverse"],s.Util.isPotentialKeyword(r["@reverse"])?delete r["@reverse"]:r["@reverse"]=!0}}return e}expandPrefixedTerms(e,t,r){const n=e.getContextRaw();for(const o of r||Object.keys(n))if(s.Util.EXPAND_KEYS_BLACKLIST.indexOf(o)<0&&!s.Util.isReservedInternalKeyword(o)){const r=n[o];if(s.Util.isPotentialKeyword(o)&&s.Util.ALIAS_DOMAIN_BLACKLIST.indexOf(o)>=0&&("@type"!==o||"object"===typeof n[o]&&!n[o]["@protected"]&&"@set"!==n[o]["@container"]))throw new i.ErrorCoded(`Keywords can not be aliased to something else.\nTried mapping ${o} to ${JSON.stringify(r)}`,i.ERROR_CODES.KEYWORD_REDEFINITION);if(s.Util.ALIAS_RANGE_BLACKLIST.indexOf(s.Util.getContextValueId(r))>=0)throw new i.ErrorCoded(`Aliasing to certain keywords is not allowed.\nTried mapping ${o} to ${JSON.stringify(r)}`,i.ERROR_CODES.INVALID_KEYWORD_ALIAS);if(r&&s.Util.isPotentialKeyword(s.Util.getContextValueId(r))&&!0===r["@prefix"])throw new i.ErrorCoded(`Tried to use keyword aliases as prefix: '${o}': '${JSON.stringify(r)}'`,i.ERROR_CODES.INVALID_TERM_DEFINITION);while(s.Util.isPrefixValue(n[o])){const r=n[o];let i=!1;if("string"===typeof r)n[o]=e.expandTerm(r,!0),i=i||r!==n[o];else{const a=r["@id"],l=r["@type"],d=!("@prefix"in r)||s.Util.isValidIri(o);if("@id"in r)void 0!==a&&null!==a&&"string"===typeof a&&(n[o]=Object.assign(Object.assign({},n[o]),{"@id":e.expandTerm(a,!0)}),i=i||a!==n[o]["@id"]);else if(!s.Util.isPotentialKeyword(o)&&d){const t=e.expandTerm(o,!0);t!==o&&(n[o]=Object.assign(Object.assign({},n[o]),{"@id":t}),i=!0)}if(l&&"string"===typeof l&&"@vocab"!==l&&(!r["@container"]||!r["@container"]["@type"])&&d){let r=e.expandTerm(l,!0);t&&l===r&&(r=e.expandTerm(l,!1)),r!==l&&(i=!0,n[o]=Object.assign(Object.assign({},n[o]),{"@type":r}))}}if(!i)break}}}normalize(e,{processingMode:t,normalizeLanguageTags:r}){if(r||1===t)for(const n of Object.keys(e))if("@language"===n&&"string"===typeof e[n])e[n]=e[n].toLowerCase();else{const t=e[n];if(t&&"object"===typeof t&&"string"===typeof t["@language"]){const r=t["@language"].toLowerCase();r!==t["@language"]&&(e[n]=Object.assign(Object.assign({},t),{"@language":r}))}}}containersToHash(e){for(const t of Object.keys(e)){const r=e[t];if(r&&"object"===typeof r)if("string"===typeof r["@container"])e[t]=Object.assign(Object.assign({},r),{"@container":{[r["@container"]]:!0}});else if(Array.isArray(r["@container"])){const n={};for(const e of r["@container"])n[e]=!0;e[t]=Object.assign(Object.assign({},r),{"@container":n})}}}applyScopedProtected(e,{processingMode:t},r){if(t&&t>=1.1&&e["@protected"]){for(const t of Object.keys(e))if(!s.Util.isReservedInternalKeyword(t)&&!s.Util.isPotentialKeyword(t)&&!s.Util.isTermProtected(e,t)){const n=e[t];n&&"object"===typeof n?"@protected"in e[t]||(e[t]=Object.assign(Object.assign({},e[t]),{"@protected":!0})):(e[t]={"@id":n,"@protected":!0},s.Util.isSimpleTermDefinitionPrefix(n,r)&&(e[t]=Object.assign(Object.assign({},e[t]),{"@prefix":!0})))}delete e["@protected"]}}validateKeywordRedefinitions(e,t,r,n){for(const o of null!==n&&void 0!==n?n:Object.keys(t))if(s.Util.isTermProtected(e,o)&&("string"===typeof t[o]?t[o]={"@id":t[o],"@protected":!0}:t[o]=Object.assign(Object.assign({},t[o]),{"@protected":!0}),!s.Util.deepEqual(e[o],t[o])))throw new i.ErrorCoded(`Attempted to override the protected keyword ${o} from ${JSON.stringify(s.Util.getContextValueId(e[o]))} to ${JSON.stringify(s.Util.getContextValueId(t[o]))}`,i.ERROR_CODES.PROTECTED_TERM_REDEFINITION)}validate(e,{processingMode:t}){for(const r of Object.keys(e)){if(s.Util.isReservedInternalKeyword(r))continue;if(""===r)throw new i.ErrorCoded(`The empty term is not allowed, got: '${r}': '${JSON.stringify(e[r])}'`,i.ERROR_CODES.INVALID_TERM_DEFINITION);const n=e[r],o=typeof n;if(s.Util.isPotentialKeyword(r)){switch(r.substr(1)){case"vocab":if(null!==n&&"string"!==o)throw new i.ErrorCoded(`Found an invalid @vocab IRI: ${n}`,i.ERROR_CODES.INVALID_VOCAB_MAPPING);break;case"base":if(null!==n&&"string"!==o)throw new i.ErrorCoded(`Found an invalid @base IRI: ${e[r]}`,i.ERROR_CODES.INVALID_BASE_IRI);break;case"language":null!==n&&l.validateLanguage(n,!0,i.ERROR_CODES.INVALID_DEFAULT_LANGUAGE);break;case"version":if(null!==n&&"number"!==o)throw new i.ErrorCoded(`Found an invalid @version number: ${n}`,i.ERROR_CODES.INVALID_VERSION_VALUE);break;case"direction":null!==n&&l.validateDirection(n,!0);break;case"propagate":if(1===t)throw new i.ErrorCoded(`Found an illegal @propagate keyword: ${n}`,i.ERROR_CODES.INVALID_CONTEXT_ENTRY);if(null!==n&&"boolean"!==o)throw new i.ErrorCoded(`Found an invalid @propagate value: ${n}`,i.ERROR_CODES.INVALID_PROPAGATE_VALUE);break}if(s.Util.isValidKeyword(r)&&s.Util.isValidKeyword(s.Util.getContextValueId(n)))throw new i.ErrorCoded(`Illegal keyword alias in term value, found: '${r}': '${s.Util.getContextValueId(n)}'`,i.ERROR_CODES.KEYWORD_REDEFINITION)}else if(null!==n)switch(o){case"string":if(s.Util.getPrefix(n,e)===r)throw new i.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${r}': '${JSON.stringify(n)}'`,i.ERROR_CODES.CYCLIC_IRI_MAPPING);if(s.Util.isValidIriWeak(r)){if("@type"===n)throw new i.ErrorCoded(`IRIs can not be mapped to @type, found: '${r}': '${n}'`,i.ERROR_CODES.INVALID_IRI_MAPPING);if(s.Util.isValidIri(n)&&n!==new a.JsonLdContextNormalized(e).expandTerm(r))throw new i.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${r}': '${n}'`,i.ERROR_CODES.INVALID_IRI_MAPPING)}break;case"object":if(!s.Util.isCompactIri(r)&&!("@id"in n)&&("@id"===n["@type"]?!e["@base"]:!e["@vocab"]))throw new i.ErrorCoded(`Missing @id in context entry: '${r}': '${JSON.stringify(n)}'`,i.ERROR_CODES.INVALID_IRI_MAPPING);for(const d of Object.keys(n)){const u=n[d];if(u)switch(d){case"@id":if(s.Util.isValidKeyword(u)&&"@type"!==u&&"@id"!==u&&"@graph"!==u&&"@nest"!==u)throw new i.ErrorCoded(`Illegal keyword alias in term value, found: '${r}': '${JSON.stringify(n)}'`,i.ERROR_CODES.INVALID_IRI_MAPPING);if(s.Util.isValidIriWeak(r)){if("@type"===u)throw new i.ErrorCoded(`IRIs can not be mapped to @type, found: '${r}': '${JSON.stringify(n)}'`,i.ERROR_CODES.INVALID_IRI_MAPPING);if(s.Util.isValidIri(u)&&u!==new a.JsonLdContextNormalized(e).expandTerm(r))throw new i.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${r}': '${JSON.stringify(n)}'`,i.ERROR_CODES.INVALID_IRI_MAPPING)}if("string"!==typeof u)throw new i.ErrorCoded(`Detected non-string @id in context entry: '${r}': '${JSON.stringify(n)}'`,i.ERROR_CODES.INVALID_IRI_MAPPING);if(s.Util.getPrefix(u,e)===r)throw new i.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${r}': '${JSON.stringify(n)}'`,i.ERROR_CODES.CYCLIC_IRI_MAPPING);break;case"@type":if("@type"===n["@container"]&&"@id"!==u&&"@vocab"!==u)throw new i.ErrorCoded(`@container: @type only allows @type: @id or @vocab, but got: '${r}': '${u}'`,i.ERROR_CODES.INVALID_TYPE_MAPPING);if("string"!==typeof u)throw new i.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(o)}'`,i.ERROR_CODES.INVALID_TYPE_MAPPING);if("@id"!==u&&"@vocab"!==u&&(1===t||"@json"!==u)&&(1===t||"@none"!==u)&&("_"===u[0]||!s.Util.isValidIri(u)))throw new i.ErrorCoded(`A context @type must be an absolute IRI, found: '${r}': '${u}'`,i.ERROR_CODES.INVALID_TYPE_MAPPING);break;case"@reverse":if("string"===typeof u&&n["@id"]&&n["@id"]!==u)throw new i.ErrorCoded(`Found non-matching @id and @reverse term values in '${r}':'${u}' and '${n["@id"]}'`,i.ERROR_CODES.INVALID_REVERSE_PROPERTY);if("@nest"in n)throw new i.ErrorCoded(`@nest is not allowed in the reverse property '${r}'`,i.ERROR_CODES.INVALID_REVERSE_PROPERTY);break;case"@container":if(1===t&&(Object.keys(u).length>1||s.Util.CONTAINERS_1_0.indexOf(Object.keys(u)[0])<0))throw new i.ErrorCoded(`Invalid term @container for '${r}' ('${Object.keys(u)}') in 1.0, must be only one of ${s.Util.CONTAINERS_1_0.join(", ")}`,i.ERROR_CODES.INVALID_CONTAINER_MAPPING);for(const e of Object.keys(u)){if("@list"===e&&n["@reverse"])throw new i.ErrorCoded(`Term value can not be @container: @list and @reverse at the same time on '${r}'`,i.ERROR_CODES.INVALID_REVERSE_PROPERTY);if(s.Util.CONTAINERS.indexOf(e)<0)throw new i.ErrorCoded(`Invalid term @container for '${r}' ('${e}'), must be one of ${s.Util.CONTAINERS.join(", ")}`,i.ERROR_CODES.INVALID_CONTAINER_MAPPING)}break;case"@language":l.validateLanguage(u,!0,i.ERROR_CODES.INVALID_LANGUAGE_MAPPING);break;case"@direction":l.validateDirection(u,!0);break;case"@prefix":if(null!==u&&"boolean"!==typeof u)throw new i.ErrorCoded(`Found an invalid term @prefix boolean in: '${r}': '${JSON.stringify(n)}'`,i.ERROR_CODES.INVALID_PREFIX_VALUE);if(!("@id"in n)&&!s.Util.isValidIri(r))throw new i.ErrorCoded(`Invalid @prefix definition for '${r}' ('${JSON.stringify(n)}'`,i.ERROR_CODES.INVALID_TERM_DEFINITION);break;case"@index":if(1===t||!n["@container"]||!n["@container"]["@index"])throw new i.ErrorCoded(`Attempt to add illegal key to value object: '${r}': '${JSON.stringify(n)}'`,i.ERROR_CODES.INVALID_TERM_DEFINITION);break;case"@nest":if(s.Util.isPotentialKeyword(u)&&"@nest"!==u)throw new i.ErrorCoded(`Found an invalid term @nest value in: '${r}': '${JSON.stringify(n)}'`,i.ERROR_CODES.INVALID_NEST_VALUE)}}break;default:throw new i.ErrorCoded(`Found an invalid term value: '${r}': '${n}'`,i.ERROR_CODES.INVALID_TERM_DEFINITION)}}}applyBaseEntry(e,t,r){return"string"===typeof e||(r&&!("@base"in e)&&t.parentContext&&"object"===typeof t.parentContext&&"@base"in t.parentContext&&(e["@base"]=t.parentContext["@base"],t.parentContext["@__baseDocument"]&&(e["@__baseDocument"]=!0)),t.baseIRI&&!t.external&&("@base"in e?null===e["@base"]||"string"!==typeof e["@base"]||s.Util.isValidIri(e["@base"])||(e["@base"]=(0,n.resolve)(e["@base"],t.parentContext&&t.parentContext["@base"]||t.baseIRI)):(e["@base"]=t.baseIRI,e["@__baseDocument"]=!0))),e}normalizeContextIri(e,t){if(!s.Util.isValidIri(e))try{e=(0,n.resolve)(e,t)}catch(r){throw new Error(`Invalid context IRI: ${e}`)}return this.redirectSchemaOrgHttps&&e.startsWith("http://schema.org")&&(e="https://schema.org/"),e}async parseInnerContexts(e,t,r){for(const o of null!==r&&void 0!==r?r:Object.keys(e)){const r=e[o];if(r&&"object"===typeof r&&"@context"in r&&null!==r["@context"]&&!t.ignoreScopedContexts){if(this.validateContext)try{const n=Object.assign(Object.assign({},e),{[o]:Object.assign({},e[o])});delete n[o]["@context"],await this.parse(r["@context"],Object.assign(Object.assign({},t),{external:!1,parentContext:n,ignoreProtection:!0,ignoreRemoteScopedContexts:!0,ignoreScopedContexts:!0}))}catch(n){throw new i.ErrorCoded(n.message,i.ERROR_CODES.INVALID_SCOPED_CONTEXT)}e[o]=Object.assign(Object.assign({},r),{"@context":(await this.parse(r["@context"],Object.assign(Object.assign({},t),{external:!1,minimalProcessing:!0,ignoreRemoteScopedContexts:!0,parentContext:e}))).getContextRaw()})}}return e}async parse(e,t={},r={}){const{baseIRI:n,parentContext:o,external:d,processingMode:u=l.DEFAULT_PROCESSING_MODE,normalizeLanguageTags:c,ignoreProtection:f,minimalProcessing:h}=t,p=t.remoteContexts||{};if(Object.keys(p).length>=this.remoteContextsDepthLimit)throw new i.ErrorCoded("Detected an overflow in remote context inclusions: "+Object.keys(p),i.ERROR_CODES.CONTEXT_OVERFLOW);if(null===e||void 0===e){if(!f&&o&&s.Util.hasProtectedTerms(o))throw new i.ErrorCoded("Illegal context nullification when terms are protected",i.ERROR_CODES.INVALID_CONTEXT_NULLIFICATION);return new a.JsonLdContextNormalized(this.applyBaseEntry({},t,!1))}if("string"===typeof e){const r=this.normalizeContextIri(e,n),i=this.getOverriddenLoad(r,t);if(i)return new a.JsonLdContextNormalized(i);const o=await this.parse(await this.load(r),Object.assign(Object.assign({},t),{baseIRI:r,external:!0,remoteContexts:Object.assign(Object.assign({},p),{[r]:!0})}));return this.applyBaseEntry(o.getContextRaw(),t,!0),o}if(Array.isArray(e)){const r=[],i=await Promise.all(e.map(((e,i)=>{if("string"===typeof e){const o=this.normalizeContextIri(e,n);r[i]=o;const a=this.getOverriddenLoad(o,t);return a||this.load(o)}return e})));if(h)return new a.JsonLdContextNormalized(i);const s=await i.reduce(((e,n,o)=>e.then((e=>this.parse(n,Object.assign(Object.assign({},t),{baseIRI:r[o]||t.baseIRI,external:!!r[o]||t.external,parentContext:e.getContextRaw(),remoteContexts:r[o]?Object.assign(Object.assign({},p),{[r[o]]:!0}):p}),{skipValidation:o=1.1))throw new i.ErrorCoded("Context importing is not supported in JSON-LD 1.0",i.ERROR_CODES.INVALID_CONTEXT_ENTRY);if("string"!==typeof e["@import"])throw new i.ErrorCoded("An @import value must be a string, but got "+typeof e["@import"],i.ERROR_CODES.INVALID_IMPORT_VALUE);p=await this.loadImportContext(this.normalizeContextIri(e["@import"],n)),delete e["@import"]}this.applyScopedProtected(p,{processingMode:u},a.defaultExpandOptions);const b=Object.assign(p,e);this.idifyReverseTerms(b),this.normalize(b,{processingMode:u,normalizeLanguageTags:c}),this.applyScopedProtected(b,{processingMode:u},a.defaultExpandOptions);const y=Object.keys(b),g=[];if("object"===typeof o)for(const e in o)e in b?g.push(e):b[e]=o[e];await this.parseInnerContexts(b,t,y);const _=new a.JsonLdContextNormalized(b);return(b&&b["@version"]||l.DEFAULT_PROCESSING_MODE)>=1.1&&(e["@vocab"]&&"string"===typeof e["@vocab"]||""===e["@vocab"])&&(o&&"@vocab"in o&&e["@vocab"].indexOf(":")<0?b["@vocab"]=o["@vocab"]+e["@vocab"]:(s.Util.isCompactIri(e["@vocab"])||e["@vocab"]in b)&&(b["@vocab"]=_.expandTerm(e["@vocab"],!0))),this.expandPrefixedTerms(_,this.expandContentTypeToBase,y),!f&&o&&u>=1.1&&this.validateKeywordRedefinitions(o,b,a.defaultExpandOptions,g),this.validateContext&&!r.skipValidation&&this.validate(b,{processingMode:u}),_}throw new i.ErrorCoded(`Tried parsing a context that is not a string, array or object, but got ${e}`,i.ERROR_CODES.INVALID_LOCAL_CONTEXT)}async load(e){const t=this.documentCache[e];if(t)return t;let r;try{r=await this.documentLoader.load(e)}catch(n){throw new i.ErrorCoded(`Failed to load remote context ${e}: ${n.message}`,i.ERROR_CODES.LOADING_REMOTE_CONTEXT_FAILED)}if(!("@context"in r))throw new i.ErrorCoded(`Missing @context in remote context at ${e}`,i.ERROR_CODES.INVALID_REMOTE_CONTEXT);return this.documentCache[e]=r["@context"]}getOverriddenLoad(e,t){if(e in(t.remoteContexts||{})){if(t.ignoreRemoteScopedContexts)return e;throw new i.ErrorCoded("Detected a cyclic context inclusion of "+e,i.ERROR_CODES.RECURSIVE_CONTEXT_INCLUSION)}return null}async loadImportContext(e){let t=await this.load(e);if("object"!==typeof t||Array.isArray(t))throw new i.ErrorCoded("An imported context must be a single object: "+e,i.ERROR_CODES.INVALID_REMOTE_CONTEXT);if("@import"in t)throw new i.ErrorCoded("An imported context can not import another context: "+e,i.ERROR_CODES.INVALID_CONTEXT_ENTRY);return t=Object.assign({},t),this.containersToHash(t),t}}l.DEFAULT_PROCESSING_MODE=1.1,t.ContextParser=l},87011:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERROR_CODES=t.ErrorCoded=void 0;class r extends Error{constructor(e,t){super(e),this.code=t}}t.ErrorCoded=r,function(e){e["COLLIDING_KEYWORDS"]="colliding keywords",e["CONFLICTING_INDEXES"]="conflicting indexes",e["CYCLIC_IRI_MAPPING"]="cyclic IRI mapping",e["INVALID_ID_VALUE"]="invalid @id value",e["INVALID_INDEX_VALUE"]="invalid @index value",e["INVALID_NEST_VALUE"]="invalid @nest value",e["INVALID_PREFIX_VALUE"]="invalid @prefix value",e["INVALID_PROPAGATE_VALUE"]="invalid @propagate value",e["INVALID_REVERSE_VALUE"]="invalid @reverse value",e["INVALID_IMPORT_VALUE"]="invalid @import value",e["INVALID_VERSION_VALUE"]="invalid @version value",e["INVALID_BASE_IRI"]="invalid base IRI",e["INVALID_CONTAINER_MAPPING"]="invalid container mapping",e["INVALID_CONTEXT_ENTRY"]="invalid context entry",e["INVALID_CONTEXT_NULLIFICATION"]="invalid context nullification",e["INVALID_DEFAULT_LANGUAGE"]="invalid default language",e["INVALID_INCLUDED_VALUE"]="invalid @included value",e["INVALID_IRI_MAPPING"]="invalid IRI mapping",e["INVALID_JSON_LITERAL"]="invalid JSON literal",e["INVALID_KEYWORD_ALIAS"]="invalid keyword alias",e["INVALID_LANGUAGE_MAP_VALUE"]="invalid language map value",e["INVALID_LANGUAGE_MAPPING"]="invalid language mapping",e["INVALID_LANGUAGE_TAGGED_STRING"]="invalid language-tagged string",e["INVALID_LANGUAGE_TAGGED_VALUE"]="invalid language-tagged value",e["INVALID_LOCAL_CONTEXT"]="invalid local context",e["INVALID_REMOTE_CONTEXT"]="invalid remote context",e["INVALID_REVERSE_PROPERTY"]="invalid reverse property",e["INVALID_REVERSE_PROPERTY_MAP"]="invalid reverse property map",e["INVALID_REVERSE_PROPERTY_VALUE"]="invalid reverse property value",e["INVALID_SCOPED_CONTEXT"]="invalid scoped context",e["INVALID_SCRIPT_ELEMENT"]="invalid script element",e["INVALID_SET_OR_LIST_OBJECT"]="invalid set or list object",e["INVALID_TERM_DEFINITION"]="invalid term definition",e["INVALID_TYPE_MAPPING"]="invalid type mapping",e["INVALID_TYPE_VALUE"]="invalid type value",e["INVALID_TYPED_VALUE"]="invalid typed value",e["INVALID_VALUE_OBJECT"]="invalid value object",e["INVALID_VALUE_OBJECT_VALUE"]="invalid value object value",e["INVALID_VOCAB_MAPPING"]="invalid vocab mapping",e["IRI_CONFUSED_WITH_PREFIX"]="IRI confused with prefix",e["KEYWORD_REDEFINITION"]="keyword redefinition",e["LOADING_DOCUMENT_FAILED"]="loading document failed",e["LOADING_REMOTE_CONTEXT_FAILED"]="loading remote context failed",e["MULTIPLE_CONTEXT_LINK_HEADERS"]="multiple context link headers",e["PROCESSING_MODE_CONFLICT"]="processing mode conflict",e["PROTECTED_TERM_REDEFINITION"]="protected term redefinition",e["CONTEXT_OVERFLOW"]="context overflow",e["INVALID_BASE_DIRECTION"]="invalid base direction",e["RECURSIVE_CONTEXT_INCLUSION"]="recursive context inclusion",e["INVALID_STREAMING_KEY_ORDER"]="invalid streaming key order",e["INVALID_EMBEDDED_NODE"]="invalid embedded node",e["INVALID_ANNOTATION"]="invalid annotation"}(t.ERROR_CODES||(t.ERROR_CODES={}))},97378:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FetchDocumentLoader=void 0,r(31905);const n=r(87011),i=r(12475),o=r(68912);class a{constructor(e){this.fetcher=e}async load(e){const t=await(this.fetcher||fetch)(e,{headers:new Headers({accept:"application/ld+json"})});if(t.ok&&t.headers){let r=t.headers.get("Content-Type");if(r){const e=r.indexOf(";");e>0&&(r=r.substr(0,e))}if("application/ld+json"===r)return await t.json();if(t.headers.has("Link")){let r;if(t.headers.forEach(((t,n)=>{if("link"===n){const n=(0,i.parse)(t);for(const t of n.get("type","application/ld+json"))if("alternate"===t.rel){if(r)throw new Error("Multiple JSON-LD alternate links were found on "+e);r=(0,o.resolve)(t.uri,e)}}})),r)return this.load(r)}throw new n.ErrorCoded(`Unsupported JSON-LD media type ${r}`,n.ERROR_CODES.LOADING_DOCUMENT_FAILED)}throw new Error(t.statusText||`Status code: ${t.status}`)}}t.FetchDocumentLoader=a},91891:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},29e3:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},35656:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultExpandOptions=t.JsonLdContextNormalized=void 0;const n=r(68912),i=r(87011),o=r(24990);class a{constructor(e){this.contextRaw=e}getContextRaw(){return this.contextRaw}expandTerm(e,r,a=t.defaultExpandOptions){const s=this.contextRaw[e];if(null===s||s&&null===s["@id"])return null;let l=!0;if(s&&r){const t=o.Util.getContextValueId(s);if(t&&t!==e){if("string"===typeof t&&(o.Util.isValidIri(t)||o.Util.isValidKeyword(t)))return t;o.Util.isPotentialKeyword(t)||(l=!1)}}const d=o.Util.getPrefix(e,this.contextRaw),u=this.contextRaw["@vocab"],c=(!!u||""===u)&&u.indexOf(":")<0,f=this.contextRaw["@base"],h=o.Util.isPotentialKeyword(e);if(d){const t=this.contextRaw[d],r=o.Util.getContextValueId(t);if(r){if("string"!==typeof t&&a.allowPrefixForcing){if("_"!==r[0]&&!h&&!t["@prefix"]&&!(e in this.contextRaw))return e}else if(!o.Util.isSimpleTermDefinitionPrefix(r,a))return e;return r+e.substr(d.length+1)}}else{if(r&&(u||""===u||a.allowVocabRelativeToBase&&f&&c)&&!h&&!o.Util.isCompactIri(e)){if(c){if(a.allowVocabRelativeToBase)return(u||f?(0,n.resolve)(u,f):"")+e;throw new i.ErrorCoded(`Relative vocab expansion for term '${e}' with vocab '${u}' is not allowed.`,i.ERROR_CODES.INVALID_VOCAB_MAPPING)}return u+e}if(!r&&f&&!h&&!o.Util.isCompactIri(e))return(0,n.resolve)(e,f)}if(l)return e;throw new i.ErrorCoded(`Invalid IRI mapping found for context entry '${e}': '${JSON.stringify(s)}'`,i.ERROR_CODES.INVALID_IRI_MAPPING)}compactIri(e,t){if(t&&this.contextRaw["@vocab"]&&e.startsWith(this.contextRaw["@vocab"]))return e.substr(this.contextRaw["@vocab"].length);if(!t&&this.contextRaw["@base"]&&e.startsWith(this.contextRaw["@base"]))return e.substr(this.contextRaw["@base"].length);const r={prefix:"",suffix:e};for(const n in this.contextRaw){const i=this.contextRaw[n];if(i&&!o.Util.isPotentialKeyword(n)){const a=o.Util.getContextValueId(i);if(e.startsWith(a)){const i=e.substr(a.length);if(i)i.length0&&!(e&&"#"===e[0])}static getPrefix(e,t){if(e&&"#"===e[0])return null;const r=e.indexOf(":");if(r>=0){if(e.length>r+1&&"/"===e.charAt(r+1)&&"/"===e.charAt(r+2))return null;const n=e.substr(0,r);if("_"===n)return null;if(t[n])return n}return null}static getContextValueId(e){if(null===e||"string"===typeof e)return e;const t=e["@id"];return t||null}static isSimpleTermDefinitionPrefix(e,t){return!r.isPotentialKeyword(e)&&(t.allowPrefixNonGenDelims||"string"===typeof e&&("_"===e[0]||r.isPrefixIriEndingWithGenDelim(e)))}static isPotentialKeyword(e){return"string"===typeof e&&r.KEYWORD_REGEX.test(e)}static isPrefixIriEndingWithGenDelim(e){return r.ENDS_WITH_GEN_DELIM.test(e)}static isPrefixValue(e){return e&&("string"===typeof e||e&&"object"===typeof e)}static isValidIri(e){return Boolean(e&&r.IRI_REGEX.test(e))}static isValidIriWeak(e){return!!e&&":"!==e[0]&&r.IRI_REGEX_WEAK.test(e)}static isValidKeyword(e){return r.VALID_KEYWORDS[e]}static isTermProtected(e,t){const r=e[t];return!("string"===typeof r)&&r&&r["@protected"]}static hasProtectedTerms(e){for(const t of Object.keys(e))if(r.isTermProtected(e,t))return!0;return!1}static isReservedInternalKeyword(e){return e.startsWith("@__")}static deepEqual(e,t){const r=Object.keys(e),n=Object.keys(t);return r.length===n.length&&r.every((r=>{const n=e[r],i=t[r];return n===i||null!==n&&null!==i&&"object"===typeof n&&"object"===typeof i&&this.deepEqual(n,i)}))}}r.IRI_REGEX=/^([A-Za-z][A-Za-z0-9+-.]*|_):[^ "<>{}|\\\[\]`#]*(#[^#]*)?$/,r.IRI_REGEX_WEAK=/(?::[^:])|\//,r.KEYWORD_REGEX=/^@[a-z]+$/i,r.ENDS_WITH_GEN_DELIM=/[:/?#\[\]@]$/,r.REGEX_LANGUAGE_TAG=/^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/,r.REGEX_DIRECTION_TAG=/^(ltr)|(rtl)$/,r.VALID_KEYWORDS={"@annotation":!0,"@base":!0,"@container":!0,"@context":!0,"@direction":!0,"@graph":!0,"@id":!0,"@import":!0,"@included":!0,"@index":!0,"@json":!0,"@language":!0,"@list":!0,"@nest":!0,"@none":!0,"@prefix":!0,"@propagate":!0,"@protected":!0,"@reverse":!0,"@set":!0,"@type":!0,"@value":!0,"@version":!0,"@vocab":!0},r.EXPAND_KEYS_BLACKLIST=["@base","@vocab","@language","@version","@direction"],r.ALIAS_DOMAIN_BLACKLIST=["@container","@graph","@id","@index","@list","@nest","@none","@prefix","@reverse","@set","@type","@value","@version"],r.ALIAS_RANGE_BLACKLIST=["@context","@preserve"],r.CONTAINERS=["@list","@set","@index","@language","@graph","@id","@type"],r.CONTAINERS_1_0=["@list","@set","@index"],t.Util=r},95758:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(55170),t)},98386:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContextTree=void 0;class r{constructor(){this.subTrees={}}getContext(e){if(e.length>0){const[t,...r]=e,n=this.subTrees[t];if(n){const e=n.getContext(r);if(e)return e.then((({context:e,depth:t})=>({context:e,depth:t+1})))}}return this.context?this.context.then((e=>({context:e,depth:0}))):null}setContext(e,t){if(0===e.length)this.context=t;else{const[n,...i]=e;let o=this.subTrees[n];o||(o=this.subTrees[n]=new r),o.setContext(i,t)}}removeContext(e){this.setContext(e,null)}}t.ContextTree=r},55170:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JsonLdParser=void 0;const n=r(26713),i=r(11288),o=r(31036),a=r(81889),s=r(36753),l=r(38215),d=r(49488),u=r(42613),c=r(73330),f=r(52709),h=r(67406),p=r(61323),b=r(51820),y=r(72963),g=r(93322),_=r(51478),w=r(22754),E=r(12475),m=r(60768);class S extends o.Transform{constructor(e){super({readableObjectMode:!0}),e=e||{},this.options=e,this.parsingContext=new _.ParsingContext(Object.assign({parser:this},e)),this.util=new w.Util({dataFactory:e.dataFactory,parsingContext:this.parsingContext}),this.jsonParser=new n,this.contextJobs=[],this.typeJobs=[],this.contextAwaitingJobs=[],this.lastDepth=0,this.lastKeys=[],this.lastOnValueJob=Promise.resolve(),this.attachJsonParserListeners(),this.on("end",(()=>{"undefined"!==typeof this.jsonParser.mode&&this.emit("error",new Error("Unclosed document"))}))}static fromHttpResponse(e,t,r,n){let o,a,s=["application/activity+json"];if(n&&n.wellKnownMediaTypes&&(s=n.wellKnownMediaTypes),"application/ld+json"!==t&&!s.includes(t)){if("application/json"!==t&&!t.endsWith("+json"))throw new i.ErrorCoded(`Unsupported JSON-LD media type ${t}`,i.ERROR_CODES.LOADING_DOCUMENT_FAILED);if(r&&r.has("Link")&&r.forEach(((t,r)=>{if("link"===r){const r=(0,E.parse)(t);for(const t of r.get("rel","http://www.w3.org/ns/json-ld#context")){if(o)throw new i.ErrorCoded("Multiple JSON-LD context link headers were found on "+e,i.ERROR_CODES.MULTIPLE_CONTEXT_LINK_HEADERS);o=t.uri}}})),!o&&!(null===n||void 0===n?void 0:n.ignoreMissingContextLinkHeader))throw new i.ErrorCoded(`Missing context link header for media type ${t} on ${e}`,i.ERROR_CODES.LOADING_DOCUMENT_FAILED)}if(r&&r.has("Content-Type")){const e=r.get("Content-Type"),t=/; *profile=([^"]*)/.exec(e);t&&"http://www.w3.org/ns/json-ld#streaming"===t[1]&&(a=!0)}return new S(Object.assign({baseIRI:e,context:o,streamingProfile:a},n||{}))}import(e){if("pipe"in e){e.on("error",(e=>t.emit("error",e)));const t=e.pipe(new S(this.options));return t}{const t=new o.PassThrough({readableObjectMode:!0});e.on("error",(e=>r.emit("error",e))),e.on("data",(e=>t.push(e))),e.on("end",(()=>t.push(null)));const r=t.pipe(new S(this.options));return r}}_transform(e,t,r){this.jsonParser.write(e),this.lastOnValueJob.then((()=>r()),(e=>r(e)))}async newOnValueJob(e,t,r,n){let o=!0;if(n&&r1&&(u=this.parsingContext.validationStack[this.parsingContext.validationStack.length-1].property);for(let i=Math.max(1,this.parsingContext.validationStack.length-1);i=0?this.parsingContext.idStack[e-r-1]:[await this.util.getGraphContainerValue(t,e)];if(i)for(const t of i){this.parsingContext.emittedStack[e]=!0;for(const r of o)this.util.emitQuadChecked(e,n,r.predicate,r.object,t,r.reverse,r.isEmbedded)}else{const r=this.parsingContext.getUnidentifiedGraphBufferSafe(e-await this.util.getDepthOffsetGraph(e,t)-1);for(const e of o)e.reverse?r.push({object:n,predicate:e.predicate,subject:e.object,isEmbedded:e.isEmbedded}):r.push({object:e.object,predicate:e.predicate,subject:n,isEmbedded:e.isEmbedded})}}this.parsingContext.unidentifiedValuesBuffer.splice(e,1),this.parsingContext.literalStack.splice(e,1),this.parsingContext.jsonLiteralStack.splice(e,1)}const a=this.parsingContext.unidentifiedGraphsBuffer[e];if(a){for(const t of r){const r=1!==e||"BlankNode"!==t.termType||this.parsingContext.topLevelProperties?t:this.util.getDefaultGraph();this.parsingContext.emittedStack[e]=!0;for(const t of a)this.parsingContext.emitQuad(e,this.util.dataFactory.quad(t.subject,t.predicate,t.object,r))}this.parsingContext.unidentifiedGraphsBuffer.splice(e,1)}const s=this.parsingContext.annotationsBuffer[e];if(s){s.length>0&&1===e&&this.parsingContext.emitError(new i.ErrorCoded("Annotations can not be made on top-level nodes",i.ERROR_CODES.INVALID_ANNOTATION));const t=this.parsingContext.getAnnotationsBufferSafe(e-1);for(const e of s)t.push(e);delete this.parsingContext.annotationsBuffer[e]}}async validateKey(e,t,r){for(const n of S.ENTRY_HANDLERS)if(await n.validate(this.parsingContext,this.util,e,t,r))return{valid:!0,property:r||n.isPropertyHandler()};return{valid:!1,property:!1}}attachJsonParserListeners(){this.jsonParser.onValue=e=>{const t=this.jsonParser.stack.length,r=new Array(t+1).fill(0).map(((e,r)=>r===t?this.jsonParser.key:this.jsonParser.stack[r].key));if(!this.isParsingContextInner(t)){const n=()=>this.newOnValueJob(r,e,t,!0);if(this.parsingContext.streamingProfile||this.parsingContext.contextTree.getContext(r.slice(0,-1)))this.lastOnValueJob=this.lastOnValueJob.then(n);else if("@context"===r[t]){let e=this.contextJobs[t];e||(e=this.contextJobs[t]=[]),e.push(n)}else this.contextAwaitingJobs.push({job:n,keys:r,depth:t});this.parsingContext.streamingProfile||0!==t||(this.lastOnValueJob=this.lastOnValueJob.then((()=>this.executeBufferedJobs())))}},this.jsonParser.onError=e=>{this.emit("error",e)}}isParsingContextInner(e){for(let t=e;t>0;t--)if("@context"===this.jsonParser.stack[t-1].key)return!0;return!1}async executeBufferedJobs(){for(const t of this.contextJobs)if(t)for(const e of t)await e();this.parsingContext.unaliasedKeywordCacheStack.splice(0);const e=[];for(const t of this.contextAwaitingJobs)"@type"===await this.util.unaliasKeyword(t.keys[t.depth],t.keys,t.depth,!0)||"number"===typeof t.keys[t.depth]&&"@type"===await this.util.unaliasKeyword(t.keys[t.depth-1],t.keys,t.depth-1,!0)?this.typeJobs.push({job:t.job,keys:t.keys.slice(0,t.keys.length-1)}):e.push(t);for(const t of e){if(this.typeJobs.length>0){const e=[],r=[];for(let o=0;oe.keys.length-t.keys.length));for(const t of n)await t.job();const i=r.sort().reverse();for(const t of i)this.typeJobs.splice(t,1)}await t.job()}}}S.DEFAULT_PROCESSING_MODE="1.1",S.ENTRY_HANDLERS=[new a.EntryHandlerArrayValue,new u.EntryHandlerKeywordContext,new f.EntryHandlerKeywordId,new h.EntryHandlerKeywordIncluded,new c.EntryHandlerKeywordGraph,new p.EntryHandlerKeywordNest,new b.EntryHandlerKeywordType,new g.EntryHandlerKeywordValue,new m.EntryHandlerKeywordAnnotation,new s.EntryHandlerContainer,new y.EntryHandlerKeywordUnknownFallback,new d.EntryHandlerPredicate,new l.EntryHandlerInvalidFallback],t.JsonLdParser=S},51478:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ParsingContext=void 0;const n=r(11288),i=r(87011),o=r(98386),a=r(55170);class s{constructor(e){this.contextParser=new n.ContextParser({documentLoader:e.documentLoader,skipValidation:e.skipContextValidation}),this.streamingProfile=!!e.streamingProfile,this.baseIRI=e.baseIRI,this.produceGeneralizedRdf=!!e.produceGeneralizedRdf,this.allowSubjectList=!!e.allowSubjectList,this.processingMode=e.processingMode||a.JsonLdParser.DEFAULT_PROCESSING_MODE,this.strictValues=!!e.strictValues,this.validateValueIndexes=!!e.validateValueIndexes,this.defaultGraph=e.defaultGraph,this.rdfDirection=e.rdfDirection,this.normalizeLanguageTags=e.normalizeLanguageTags,this.streamingProfileAllowOutOfOrderPlainType=e.streamingProfileAllowOutOfOrderPlainType,this.rdfstar=!1!==e.rdfstar,this.rdfstarReverseInEmbedded=e.rdfstarReverseInEmbedded,this.topLevelProperties=!1,this.activeProcessingMode=parseFloat(this.processingMode),this.processingStack=[],this.processingType=[],this.emittedStack=[],this.idStack=[],this.graphStack=[],this.graphContainerTermStack=[],this.listPointerStack=[],this.contextTree=new o.ContextTree,this.literalStack=[],this.validationStack=[],this.unaliasedKeywordCacheStack=[],this.jsonLiteralStack=[],this.unidentifiedValuesBuffer=[],this.unidentifiedGraphsBuffer=[],this.annotationsBuffer=[],this.pendingContainerFlushBuffers=[],this.parser=e.parser,e.context?(this.rootContext=this.parseContext(e.context),this.rootContext.then((e=>this.validateContext(e)))):this.rootContext=Promise.resolve(new n.JsonLdContextNormalized(this.baseIRI?{"@base":this.baseIRI,"@__baseDocument":!0}:{}))}async parseContext(e,t,r){return this.contextParser.parse(e,{baseIRI:this.baseIRI,ignoreProtection:r,normalizeLanguageTags:this.normalizeLanguageTags,parentContext:t,processingMode:this.activeProcessingMode})}validateContext(e){const t=e.getContextRaw()["@version"];if(t){if(this.activeProcessingMode&&t>this.activeProcessingMode)throw new i.ErrorCoded(`Unsupported JSON-LD version '${t}' under active processing mode ${this.activeProcessingMode}.`,i.ERROR_CODES.PROCESSING_MODE_CONFLICT);if(this.activeProcessingMode&&t0&&!1===i.context.getContextRaw()["@propagate"]&&i.depth!==t&&!r);return 0===i.depth&&!1===i.context.getContextRaw()["@propagate"]&&i.depth!==t&&(i.context=new n.JsonLdContextNormalized({})),i}async newOnValueJob(e,t,r,n){await this.parser.newOnValueJob(e,t,r,n)}async handlePendingContainerFlushBuffers(){if(this.pendingContainerFlushBuffers.length>0){for(const e of this.pendingContainerFlushBuffers)await this.parser.flushBuffer(e.depth,e.keys),this.parser.flushStacks(e.depth);return this.pendingContainerFlushBuffers.splice(0,this.pendingContainerFlushBuffers.length),!0}return!1}emitQuad(e,t){1===e&&(this.topLevelProperties=!0),this.parser.push(t)}emitError(e){this.parser.emit("error",e)}emitContext(e){this.parser.emit("context",e)}getUnidentifiedValueBufferSafe(e){let t=this.unidentifiedValuesBuffer[e];return t||(t=[],this.unidentifiedValuesBuffer[e]=t),t}getUnidentifiedGraphBufferSafe(e){let t=this.unidentifiedGraphsBuffer[e];return t||(t=[],this.unidentifiedGraphsBuffer[e]=t),t}getAnnotationsBufferSafe(e){let t=this.annotationsBuffer[e];return t||(t=[],this.annotationsBuffer[e]=t),t}getExpandOptions(){return s.EXPAND_OPTIONS[this.activeProcessingMode]}shiftStack(e,t){const r=this.idStack[e+t];if(r&&(this.idStack[e]=r,this.emittedStack[e]=!0,delete this.idStack[e+t]),this.pendingContainerFlushBuffers.length)for(const n of this.pendingContainerFlushBuffers)n.depth>=e+t&&(n.depth-=t,n.keys.splice(e,t));this.unidentifiedValuesBuffer[e+t]&&(this.unidentifiedValuesBuffer[e]=this.unidentifiedValuesBuffer[e+t],delete this.unidentifiedValuesBuffer[e+t]),this.annotationsBuffer[e+t-1]&&(this.annotationsBuffer[e-1]||(this.annotationsBuffer[e-1]=[]),this.annotationsBuffer[e-1]=[...this.annotationsBuffer[e-1],...this.annotationsBuffer[e+t-1]],delete this.annotationsBuffer[e+t-1])}}s.EXPAND_OPTIONS={1:{allowPrefixForcing:!1,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!1},1.1:{allowPrefixForcing:!0,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!0}},t.ParsingContext=s},22754:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Util=void 0;const n=r(11288),i=r(41640),o=r(36753),a=r(95456);class s{constructor(e){this.parsingContext=e.parsingContext,this.dataFactory=e.dataFactory||new i.DataFactory,this.rdfFirst=this.dataFactory.namedNode(s.RDF+"first"),this.rdfRest=this.dataFactory.namedNode(s.RDF+"rest"),this.rdfNil=this.dataFactory.namedNode(s.RDF+"nil"),this.rdfType=this.dataFactory.namedNode(s.RDF+"type"),this.rdfJson=this.dataFactory.namedNode(s.RDF+"JSON")}static getContextValue(e,t,r,n){const i=e.getContextRaw()[r];if(!i)return n;const o=i[t];return void 0===o?n:o}static getContextValueContainer(e,t){return s.getContextValue(e,"@container",t,{"@set":!0})}static getContextValueType(e,t){const r=s.getContextValue(e,"@type",t,null);return"@none"===r?null:r}static getContextValueLanguage(e,t){return s.getContextValue(e,"@language",t,e.getContextRaw()["@language"]||null)}static getContextValueDirection(e,t){return s.getContextValue(e,"@direction",t,e.getContextRaw()["@direction"]||null)}static isContextValueReverse(e,t){return!!s.getContextValue(e,"@reverse",t,null)}static getContextValueIndex(e,t){return s.getContextValue(e,"@index",t,e.getContextRaw()["@index"]||null)}static isPropertyReverse(e,t,r){return"@reverse"===r!==s.isContextValueReverse(e,t)}static isPropertyInEmbeddedNode(e){return"@id"===e}static isPropertyInAnnotationObject(e){return"@annotation"===e}static isValidIri(e){return null!==e&&n.Util.isValidIri(e)}static isPrefixArray(e,t){if(e.length>t.length)return!1;for(let r=0;r1)throw new n.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${t}'`,n.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);return[]}if("@list"in r){if(Object.keys(r).length>1)throw new n.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${t}'`,n.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);const e=r["@list"];return Array.isArray(e)?0===e.length?[this.rdfNil]:this.parsingContext.idStack[i+1]||[]:await this.valueToTerm(await this.parsingContext.getContext(o),t,e,i-1,o.slice(0,-1))}if("@reverse"in r&&"boolean"===typeof r["@reverse"])return[];if("@graph"in s.getContextValueContainer(await this.parsingContext.getContext(o),t)){const e=this.parsingContext.graphContainerTermStack[i+1];return e?Object.values(e):[this.dataFactory.blankNode()]}if("@id"in r){if(Object.keys(r).length>1&&(e=await this.parsingContext.getContext(o,0)),"@context"in r&&(e=await this.parsingContext.parseContext(r["@context"],e.getContextRaw())),"@vocab"===r["@type"])return this.nullableTermToArray(this.createVocabOrBaseTerm(e,r["@id"]));{const t=r["@id"];let o;if("object"===typeof t){if(!this.parsingContext.rdfstar)throw new n.ErrorCoded(`Found illegal @id '${r}'`,n.ERROR_CODES.INVALID_ID_VALUE);o=this.parsingContext.idStack[i+1][0]}else o=this.resourceToTerm(e,t);return this.nullableTermToArray(o)}}return this.parsingContext.emittedStack[i+1]||r&&"object"===typeof r&&0===Object.keys(r).length?this.parsingContext.idStack[i+1]||(this.parsingContext.idStack[i+1]=[this.dataFactory.blankNode()]):[];case"string":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,r,null));case"boolean":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,Boolean(r).toString(),this.dataFactory.namedNode(s.XSD_BOOLEAN)));case"number":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,r,this.dataFactory.namedNode(r%1===0&&r<1e21?s.XSD_INTEGER:s.XSD_DOUBLE)));default:return this.parsingContext.emitError(new Error(`Could not determine the RDF type of a ${a}`)),[]}}async getContextSelfOrPropertyScoped(e,t){const r=e.getContextRaw()[t];return r&&"object"===typeof r&&"@context"in r&&(e=await this.parsingContext.parseContext(r,e.getContextRaw(),!0)),e}nullableTermToArray(e){return e?[e]:[]}predicateToTerm(e,t){const r=e.expandTerm(t,!0,this.parsingContext.getExpandOptions());return r?"_"===r[0]&&":"===r[1]?this.parsingContext.produceGeneralizedRdf?this.dataFactory.blankNode(r.substr(2)):null:s.isValidIri(r)?this.dataFactory.namedNode(r):r&&this.parsingContext.strictValues?(this.parsingContext.emitError(new n.ErrorCoded(`Invalid predicate IRI: ${r}`,n.ERROR_CODES.INVALID_IRI_MAPPING)),null):null:null}resourceToTerm(e,t){if(t.startsWith("_:"))return this.dataFactory.blankNode(t.substr(2));const r=e.expandTerm(t,!1,this.parsingContext.getExpandOptions());if(!s.isValidIri(r)){if(!r||!this.parsingContext.strictValues)return null;this.parsingContext.emitError(new Error(`Invalid resource IRI: ${r}`))}return this.dataFactory.namedNode(r)}createVocabOrBaseTerm(e,t){if(t.startsWith("_:"))return this.dataFactory.blankNode(t.substr(2));const r=this.parsingContext.getExpandOptions();let n=e.expandTerm(t,!0,r);if(n===t&&(n=e.expandTerm(t,!1,r)),!s.isValidIri(n)){if(!n||!this.parsingContext.strictValues||n.startsWith("@"))return null;this.parsingContext.emitError(new Error(`Invalid term IRI: ${n}`))}return this.dataFactory.namedNode(n)}intToString(e,t){if("number"===typeof e){if(Number.isFinite(e)){const r=e%1===0;return!r||t&&t.value===s.XSD_DOUBLE?e.toExponential(15).replace(/(\d)0*e\+?/,"$1E"):Number(e).toString()}return e>0?"INF":"-INF"}return e}stringValueToTerm(e,t,r,n,i){const o=s.getContextValueType(t,r);if(o)if("@id"===o){if(!i)return this.resourceToTerm(t,this.intToString(n,i))}else if("@vocab"===o){if(!i)return this.createVocabOrBaseTerm(t,this.intToString(n,i))}else i=this.dataFactory.namedNode(o);if(!i){const o=s.getContextValueLanguage(t,r),a=s.getContextValueDirection(t,r);return a&&this.parsingContext.rdfDirection?this.createLanguageDirectionLiteral(e,this.intToString(n,i),o,a):this.dataFactory.literal(this.intToString(n,i),o)}return this.dataFactory.literal(this.intToString(n,i),i)}createLanguageDirectionLiteral(e,t,r,n){if("i18n-datatype"===this.parsingContext.rdfDirection)return r||(r=""),this.dataFactory.literal(t,this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${r}_${n}`));{const i=this.dataFactory.blankNode(),o=this.getDefaultGraph();return this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(s.RDF+"value"),this.dataFactory.literal(t),o)),r&&this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(s.RDF+"language"),this.dataFactory.literal(r),o)),this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(s.RDF+"direction"),this.dataFactory.literal(n),o)),i}}valueToJsonString(e){return a(e)}async unaliasKeyword(e,t,r,i,o){if(Number.isInteger(e))return e;if(!i){const e=this.parsingContext.unaliasedKeywordCacheStack[r];if(e)return e}if(!n.Util.isPotentialKeyword(e)){o=o||await this.parsingContext.getContext(t);let r=o.getContextRaw()[e];r&&"object"===typeof r&&(r=r["@id"]),n.Util.isValidKeyword(r)&&(e=r)}return i?e:this.parsingContext.unaliasedKeywordCacheStack[r]=e}async unaliasKeywordParent(e,t){return await this.unaliasKeyword(t>0&&e[t-1],e,t-1)}async unaliasKeywords(e,t,r,n){const i={};for(const o in e)i[await this.unaliasKeyword(o,t,r+1,!0,n)]=e[o];return i}async isLiteral(e,t){for(let r=t;r>=0;r--){if("@annotation"===await this.unaliasKeyword(e[r],e,r))return!1;if(this.parsingContext.literalStack[r]||this.parsingContext.jsonLiteralStack[r])return!0}return!1}async getDepthOffsetGraph(e,t){for(let r=e-1;r>0;r--)if("@graph"===await this.unaliasKeyword(t[r],t,r)){const n=(await o.EntryHandlerContainer.getContainerHandler(this.parsingContext,t,r)).containers;return o.EntryHandlerContainer.isComplexGraphContainer(n)?-1:e-r-1}return-1}validateReverseSubject(e){if("Literal"===e.termType)throw new n.ErrorCoded(`Found illegal literal in subject position: ${e.value}`,n.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE)}getDefaultGraph(){return this.parsingContext.defaultGraph||this.dataFactory.defaultGraph()}async getGraphContainerValue(e,t){let r=this.getDefaultGraph();const{containers:n,depth:i}=await o.EntryHandlerContainer.getContainerHandler(this.parsingContext,e,t);if("@graph"in n){const t=o.EntryHandlerContainer.getContainerGraphIndex(n,i,e),a=this.parsingContext.graphContainerTermStack[i];if(r=a?a[t]:null,!r){let o=null;if("@id"in n){const t=await this.getContainerKey(e[i],e,i);null!==t&&(o=await this.resourceToTerm(await this.parsingContext.getContext(e),t))}o||(o=this.dataFactory.blankNode()),this.parsingContext.graphContainerTermStack[i]||(this.parsingContext.graphContainerTermStack[i]={}),r=this.parsingContext.graphContainerTermStack[i][t]=o}}return r}async getPropertiesDepth(e,t){let r=t;for(let n=t-1;n>0;n--)if("number"!==typeof e[n]){const t=await this.unaliasKeyword(e[n],e,n);if("@reverse"===t)return n;if("@nest"!==t)return r;r=n}return r}async getContainerKey(e,t,r){const n=await this.unaliasKeyword(e,t,r);return"@none"===n?null:n}validateReverseInEmbeddedNode(e,t,r){if(r&&t&&!this.parsingContext.rdfstarReverseInEmbedded)throw new n.ErrorCoded(`Illegal reverse property in embedded node in ${e}`,n.ERROR_CODES.INVALID_EMBEDDED_NODE)}emitQuadChecked(e,t,r,i,o,a,s){let l;if(a?(this.validateReverseSubject(i),l=this.dataFactory.quad(i,r,t,o)):l=this.dataFactory.quad(t,r,i,o),s){if("DefaultGraph"!==l.graph.termType&&(l=this.dataFactory.quad(l.subject,l.predicate,l.object)),this.parsingContext.idStack[e-1])throw new n.ErrorCoded("Illegal multiple properties in an embedded node",n.ERROR_CODES.INVALID_EMBEDDED_NODE);this.parsingContext.idStack[e-1]=[l]}else this.parsingContext.emitQuad(e,l);const d=this.parsingContext.annotationsBuffer[e];if(d){for(const t of d)this.emitAnnotation(e,l,t);delete this.parsingContext.annotationsBuffer[e]}}emitAnnotation(e,t,r){let n;r.reverse?(this.validateReverseSubject(r.object),n=this.dataFactory.quad(r.object,r.predicate,t)):n=this.dataFactory.quad(t,r.predicate,r.object),this.parsingContext.emitQuad(e,n);for(const i of r.nestedAnnotations)this.emitAnnotation(e,n,i)}}s.XSD="http://www.w3.org/2001/XMLSchema#",s.XSD_BOOLEAN=s.XSD+"boolean",s.XSD_INTEGER=s.XSD+"integer",s.XSD_DOUBLE=s.XSD+"double",s.RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#",t.Util=s},70496:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerIdentifier=void 0;class r{canCombineWithGraph(){return!0}async handle(e,t,r,n,i,o){let a;if(t.emittedStack[o+1]&&t.idStack[o+1])a=t.idStack[o+1][0];else{const e=await r.getContainerKey(n[o],n,o),i=null!==e?await r.resourceToTerm(await t.getContext(n),n[o]):r.dataFactory.blankNode();if(!i)return void(t.emittedStack[o]=!1);a=i,t.idStack[o+1]=[a]}let s=t.idStack[o];s||(s=t.idStack[o]=[]),s.some((e=>e.equals(a)))||s.push(a),await t.handlePendingContainerFlushBuffers()||(t.emittedStack[o]=!1)}}t.ContainerHandlerIdentifier=r},34910:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerIndex=void 0;const n=r(11288),i=r(49488),o=r(22754);class a{canCombineWithGraph(){return!0}async handle(e,t,r,a,s,l){if(!Array.isArray(s)){const d="@graph"in e,u=await t.getContext(a),c=a[l-1],f=o.Util.getContextValueIndex(u,c);if(f){if(n.Util.isPotentialKeyword(f))throw new n.ErrorCoded(`Keywords can not be used as @index value, got: ${f}`,n.ERROR_CODES.INVALID_TERM_DEFINITION);if("string"!==typeof f)throw new n.ErrorCoded(`@index values must be strings, got: ${f}`,n.ERROR_CODES.INVALID_TERM_DEFINITION);if("object"!==typeof s){if("@id"!==o.Util.getContextValueType(u,c))throw new n.ErrorCoded(`Property-based index containers require nodes as values or strings with @type: @id, but got: ${s}`,n.ERROR_CODES.INVALID_VALUE_OBJECT);const e=r.resourceToTerm(u,s);e&&(t.idStack[l+1]=[e])}const e=r.createVocabOrBaseTerm(u,f);if(e){const n=await r.valueToTerm(u,f,await r.getContainerKey(a[l],a,l),l,a);if(d){const i=await r.getGraphContainerValue(a,l+1);for(const o of n)t.emitQuad(l,r.dataFactory.quad(i,e,o,r.getDefaultGraph()))}else for(const o of n)await i.EntryHandlerPredicate.handlePredicateObject(t,r,a,l+1,e,o,!1,!1,!1)}}const h=d?2:1;await t.newOnValueJob(a.slice(0,a.length-h),s,l-h,!0),await t.handlePendingContainerFlushBuffers()}t.emittedStack[l]=!1}}t.ContainerHandlerIndex=a},33275:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerLanguage=void 0;const n=r(11288);class i{canCombineWithGraph(){return!1}async handle(e,t,r,i,o,a){const s=await r.getContainerKey(i[a],i,a);if(Array.isArray(o))o=o.map((e=>({"@value":e,"@language":s})));else{if("string"!==typeof o)throw new n.ErrorCoded(`Got invalid language map value, got '${JSON.stringify(o)}', but expected string`,n.ERROR_CODES.INVALID_LANGUAGE_MAP_VALUE);o={"@value":o,"@language":s}}await t.newOnValueJob(i.slice(0,i.length-1),o,a-1,!0),t.emittedStack[a]=!1}}t.ContainerHandlerLanguage=i},8358:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerType=void 0;const n=r(49488),i=r(22754);class o{canCombineWithGraph(){return!1}async handle(e,t,r,o,a,s){if(!Array.isArray(a)){if("string"===typeof a){const e=await t.getContext(o),n=i.Util.getContextValueType(e,o[s-1]),l="@vocab"===n?await r.createVocabOrBaseTerm(e,a):await r.resourceToTerm(e,a);if(l){const e={"@id":"NamedNode"===l.termType?l.value:a};await t.newOnValueJob(o.slice(0,o.length-1),e,s-1,!0),t.idStack[s+1]=[l]}}else{const e=!!t.idStack[s+1];e||delete t.idStack[s],await t.newOnValueJob(o.slice(0,o.length-1),a,s-1,!0),e||(t.idStack[s+1]=t.idStack[s])}const e=await r.getContainerKey(o[s],o,s),l=null!==e?r.createVocabOrBaseTerm(await t.getContext(o),e):null;l&&await n.EntryHandlerPredicate.handlePredicateObject(t,r,o,s+1,r.rdfType,l,!1,!1,!1),await t.handlePendingContainerFlushBuffers()}t.emittedStack[s]=!1}}t.ContainerHandlerType=o},81889:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerArrayValue=void 0;const n=r(22754),i=r(11288);class o{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return this.test(e,t,null,r,n)}async test(e,t,r,n,i){return"number"===typeof n[i]}async handle(e,t,r,i,o,a){let s=await t.unaliasKeywordParent(i,a);if("@list"===s){let r=null,n=0;for(let e=a-2;e>0;e--){const t=i[e];if("string"===typeof t||"number"===typeof t){n=e,r=t;break}}if(null!==r){const s=await t.valueToTerm(await e.getContext(i),r,o,a,i);for(const r of s)await this.handleListElement(e,t,r,o,a,i.slice(0,n),n);0===s.length&&await this.handleListElement(e,t,null,o,a,i.slice(0,n),n)}}else if("@set"===s)await e.newOnValueJob(i.slice(0,-2),o,a-2,!1);else if(void 0!==s&&"@type"!==s){for(let e=a-1;e>0;e--)if("number"!==typeof i[e]){s=await t.unaliasKeyword(i[e],i,e);break}const r=await e.getContext(i.slice(0,-1));if("@list"in n.Util.getContextValueContainer(r,s)){e.emittedStack[a+1]=!0;const r=await t.valueToTerm(await e.getContext(i),s,o,a,i);for(const n of r)await this.handleListElement(e,t,n,o,a,i.slice(0,-1),a-1);0===r.length&&await this.handleListElement(e,t,null,o,a,i.slice(0,-1),a-1)}else e.shiftStack(a,1),await e.newOnValueJob(i.slice(0,-1),o,a-1,!1),e.contextTree.removeContext(i.slice(0,-1))}}async handleListElement(e,t,r,n,o,a,s){let l=e.listPointerStack[o];if(null!==n&&null!==(await t.unaliasKeywords(n,a,o))["@value"]){if(l&&l.value){const r=t.dataFactory.blankNode();e.emitQuad(o,t.dataFactory.quad(l.value,t.rdfRest,r,t.getDefaultGraph())),l.value=r}else{const e=t.dataFactory.blankNode();l={value:e,listRootDepth:s,listId:e}}r&&e.emitQuad(o,t.dataFactory.quad(l.value,t.rdfFirst,r,t.getDefaultGraph()))}else l||(l={listRootDepth:s,listId:t.rdfNil});e.listPointerStack[o]=l,e.rdfstar&&e.annotationsBuffer[o]&&e.emitError(new i.ErrorCoded("Found an illegal annotation inside a list",i.ERROR_CODES.INVALID_ANNOTATION))}}t.EntryHandlerArrayValue=o},36753:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerContainer=void 0;const n=r(70496),i=r(34910),o=r(33275),a=r(8358),s=r(22754);class l{static isSimpleGraphContainer(e){return"@graph"in e&&("@set"in e&&2===Object.keys(e).length||1===Object.keys(e).length)}static isComplexGraphContainer(e){return"@graph"in e&&("@set"in e&&Object.keys(e).length>2||!("@set"in e)&&Object.keys(e).length>1)}static getContainerGraphIndex(e,t,r){let n=l.isSimpleGraphContainer(e),i="";for(let o=t;o=0;a--)if("number"!==typeof t[a]){const e=s.Util.getContextValue(o,"@container",t[a],!1);if(e&&l.isSimpleGraphContainer(e))return{containers:e,depth:a+1,fallback:!1};const r=s.Util.getContextValue(o,"@container",t[a-1],!1);if(r){const e="@graph"in r;for(const t in l.CONTAINER_HANDLERS)if(r[t])return e?l.CONTAINER_HANDLERS[t].canCombineWithGraph()?{containers:r,depth:a,fallback:!1}:n:i?n:{containers:r,depth:a,fallback:!1};return n}if(i)return n;i=!0}return n}static async isBufferableContainerHandler(e,t,r){const n=await l.getContainerHandler(e,t,r);return!n.fallback&&!("@graph"in n.containers)}isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return!!await this.test(e,t,null,r,n)}async test(e,t,r,n,i){const o=s.Util.getContextValueContainer(await e.getContext(n,2),n[i-1]);for(const a in l.CONTAINER_HANDLERS)if(o[a])return{containers:o,handler:l.CONTAINER_HANDLERS[a]};return null}async handle(e,t,r,n,i,o,a){return a.handler.handle(a.containers,e,t,n,i,o)}}l.CONTAINER_HANDLERS={"@id":new n.ContainerHandlerIdentifier,"@index":new i.ContainerHandlerIndex,"@language":new o.ContainerHandlerLanguage,"@type":new a.ContainerHandlerType},t.EntryHandlerContainer=l},38215:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerInvalidFallback=void 0;class r{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return!1}async test(e,t,r,n,i){return!0}async handle(e,t,r,n,i,o){e.emittedStack[o]=!1}}t.EntryHandlerInvalidFallback=r},49488:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerPredicate=void 0;const n=r(11288),i=r(22754);class o{static async handlePredicateObject(e,t,r,i,o,a,s,l,d){const u=await t.getPropertiesDepth(r,i),c=await t.getDepthOffsetGraph(i,r),f=i-c,h=e.idStack[u];if(h&&!d)for(const n of h){const d=c>=0;if(d){const r=e.idStack[f-1];if(r)for(const e of r)t.emitQuadChecked(i,n,o,a,e,s,l);else s?(t.validateReverseSubject(a),e.getUnidentifiedGraphBufferSafe(f-1).push({subject:a,predicate:o,object:n,isEmbedded:l})):e.getUnidentifiedGraphBufferSafe(f-1).push({subject:n,predicate:o,object:a,isEmbedded:l})}else{const e=await t.getGraphContainerValue(r,u);t.emitQuadChecked(i,n,o,a,e,s,l)}}else if(s&&t.validateReverseSubject(a),d){if(e.rdfstar){e.idStack[i]&&e.emitError(new n.ErrorCoded(`Found an illegal @id inside an annotation: ${e.idStack[i][0].value}`,n.ERROR_CODES.INVALID_ANNOTATION));for(let o=0;o=0;e--){const t=l[e];t.depth>u&&(d.nestedAnnotations.push(t),l.splice(e,1))}}}else e.getUnidentifiedValueBufferSafe(u).push({predicate:o,object:a,reverse:s,isEmbedded:l})}isPropertyHandler(){return!0}isStackProcessor(){return!0}async validate(e,t,r,n,o){const a=r[n];if(a){const o=await e.getContext(r);if(!e.jsonLiteralStack[n]&&await t.predicateToTerm(o,r[n]))return"@json"===i.Util.getContextValueType(o,a)&&(e.jsonLiteralStack[n+1]=!0),!0}return!1}async test(e,t,r,n,i){return n[i]}async handle(e,t,r,a,s,l,d){const u=a[l],c=await e.getContext(a),f=await t.predicateToTerm(c,r);if(f){const d=await t.valueToTerm(c,r,s,l,a);if(d.length)for(let h of d){let d=await t.unaliasKeywordParent(a,l);const p=i.Util.isPropertyReverse(c,u,d);let b=0;while("@reverse"===d||"number"===typeof d)"number"===typeof d?b++:l--,d=await t.unaliasKeywordParent(a,l-b);const y=i.Util.isPropertyInEmbeddedNode(d);t.validateReverseInEmbeddedNode(r,p,y);const g=i.Util.isPropertyInAnnotationObject(d);if(s){const o="@list"in i.Util.getContextValueContainer(c,r);if(o||s["@list"]){if((o&&!Array.isArray(s)&&!s["@list"]||s["@list"]&&!Array.isArray(s["@list"]))&&h!==t.rdfNil){const r=t.dataFactory.blankNode();e.emitQuad(l,t.dataFactory.quad(r,t.rdfRest,t.rdfNil,t.getDefaultGraph())),e.emitQuad(l,t.dataFactory.quad(r,t.rdfFirst,h,t.getDefaultGraph())),h=r}if(p&&!e.allowSubjectList)throw new n.ErrorCoded(`Found illegal list value in subject position at ${r}`,n.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE)}}await o.handlePredicateObject(e,t,a,l,f,h,p,y,g)}}}}t.EntryHandlerPredicate=o},4479:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeyword=void 0;class r{constructor(e){this.keyword=e}isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,n,i){return!1}async test(e,t,r,n,i){return r===this.keyword}}t.EntryHandlerKeyword=r},60768:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordAnnotation=void 0;const n=r(4479),i=r(11288);class o extends n.EntryHandlerKeyword{constructor(){super("@annotation")}async handle(e,t,r,n,o,a){("string"===typeof o||"object"===typeof o&&o["@value"])&&e.emitError(new i.ErrorCoded(`Found illegal annotation value: ${JSON.stringify(o)}`,i.ERROR_CODES.INVALID_ANNOTATION))}}t.EntryHandlerKeywordAnnotation=o},42613:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordContext=void 0;const n=r(11288),i=r(4479);class o extends i.EntryHandlerKeyword{constructor(){super("@context")}isStackProcessor(){return!1}async handle(e,t,r,i,o,a){e.streamingProfile&&(e.processingStack[a]||e.processingType[a]||void 0!==e.idStack[a])&&e.emitError(new n.ErrorCoded("Found an out-of-order context, while streaming is enabled.(disable `streamingProfile`)",n.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));const s=e.getContext(i),l=e.parseContext(o,(await s).getContextRaw());e.contextTree.setContext(i.slice(0,-1),l),e.emitContext(o),await e.validateContext(await l)}}t.EntryHandlerKeywordContext=o},73330:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordGraph=void 0;const n=r(4479);class i extends n.EntryHandlerKeyword{constructor(){super("@graph")}async handle(e,t,r,n,i,o){e.graphStack[o+1]=!0}}t.EntryHandlerKeywordGraph=i},52709:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordId=void 0;const n=r(11288),i=r(4479);class o extends i.EntryHandlerKeyword{constructor(){super("@id")}isStackProcessor(){return!1}async handle(e,t,r,i,o,a){if("string"!==typeof o){if(e.rdfstar&&"object"===typeof o){const t=Object.keys(o);1===t.length&&"@id"===t[0]&&e.emitError(new n.ErrorCoded(`Invalid embedded node without property with @id ${o["@id"]}`,n.ERROR_CODES.INVALID_EMBEDDED_NODE))}else e.emitError(new n.ErrorCoded(`Found illegal @id '${o}'`,n.ERROR_CODES.INVALID_ID_VALUE));return}const s=await t.getPropertiesDepth(i,a);if(void 0!==e.idStack[s]&&(e.idStack[s][0].listHead?e.emitError(new n.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${i[a-1]}'`,n.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT)):e.emitError(new n.ErrorCoded(`Found duplicate @ids '${e.idStack[s][0].value}' and '${o}'`,n.ERROR_CODES.COLLIDING_KEYWORDS))),e.rdfstar&&e.annotationsBuffer[a])for(const l of e.annotationsBuffer[a])l.depth===a&&e.emitError(new n.ErrorCoded(`Found an illegal @id inside an annotation: ${o}`,n.ERROR_CODES.INVALID_ANNOTATION));e.idStack[s]=t.nullableTermToArray(await t.resourceToTerm(await e.getContext(i),o))}}t.EntryHandlerKeywordId=o},67406:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordIncluded=void 0;const n=r(11288),i=r(4479);class o extends i.EntryHandlerKeyword{constructor(){super("@included")}async handle(e,t,r,i,o,a){"object"!==typeof o&&e.emitError(new n.ErrorCoded(`Found illegal @included '${o}'`,n.ERROR_CODES.INVALID_INCLUDED_VALUE));const s=await t.unaliasKeywords(o,i,a,await e.getContext(i));"@value"in s&&e.emitError(new n.ErrorCoded(`Found an illegal @included @value node '${JSON.stringify(o)}'`,n.ERROR_CODES.INVALID_INCLUDED_VALUE)),"@list"in s&&e.emitError(new n.ErrorCoded(`Found an illegal @included @list node '${JSON.stringify(o)}'`,n.ERROR_CODES.INVALID_INCLUDED_VALUE)),e.emittedStack[a]=!1}}t.EntryHandlerKeywordIncluded=o},61323:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordNest=void 0;const n=r(11288),i=r(4479);class o extends i.EntryHandlerKeyword{constructor(){super("@nest")}async handle(e,t,r,i,o,a){"object"!==typeof o&&e.emitError(new n.ErrorCoded(`Found invalid @nest entry for '${r}': '${o}'`,n.ERROR_CODES.INVALID_NEST_VALUE)),"@value"in await t.unaliasKeywords(o,i,a,await e.getContext(i))&&e.emitError(new n.ErrorCoded(`Found an invalid @value node for '${r}'`,n.ERROR_CODES.INVALID_NEST_VALUE)),e.emittedStack[a]=!1}}t.EntryHandlerKeywordNest=o},51820:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordType=void 0;const n=r(11288),i=r(22754),o=r(49488),a=r(4479);class s extends a.EntryHandlerKeyword{constructor(){super("@type")}isStackProcessor(){return!1}async handle(e,t,r,a,s,l){const d=a[l],u=await e.getContext(a),c=t.rdfType,f=await t.unaliasKeywordParent(a,l),h=i.Util.isPropertyReverse(u,d,f),p=i.Util.isPropertyInEmbeddedNode(f);t.validateReverseInEmbeddedNode(r,h,p);const b=i.Util.isPropertyInAnnotationObject(f),y=Array.isArray(s)?s:[s];for(const i of y){"string"!==typeof i&&e.emitError(new n.ErrorCoded(`Found illegal @type '${i}'`,n.ERROR_CODES.INVALID_TYPE_VALUE));const r=t.createVocabOrBaseTerm(u,i);r&&await o.EntryHandlerPredicate.handlePredicateObject(e,t,a,l,c,r,h,p,b)}let g=Promise.resolve(u),_=!1;for(const n of y.sort()){const t=i.Util.getContextValue(u,"@context",n,null);t&&(_=!0,g=g.then((r=>e.parseContext(t,r.getContextRaw()))))}!e.streamingProfile||!_&&e.streamingProfileAllowOutOfOrderPlainType||!e.processingStack[l]&&!e.idStack[l]||e.emitError(new n.ErrorCoded("Found an out-of-order type-scoped context, while streaming is enabled.(disable `streamingProfile`)",n.ERROR_CODES.INVALID_STREAMING_KEY_ORDER)),_&&(g=g.then((e=>!0!==e.getContextRaw()["@propagate"]?new n.JsonLdContextNormalized(Object.assign(Object.assign({},e.getContextRaw()),{"@propagate":!1,"@__propagateFallback":u.getContextRaw()})):e)),e.contextTree.setContext(a.slice(0,a.length-1),g)),e.processingType[l]=!0}}t.EntryHandlerKeywordType=s},72963:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordUnknownFallback=void 0;const n=r(11288);class i{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,r,i,o){const a=await t.unaliasKeyword(r[i],r,i);return!!n.Util.isPotentialKeyword(a)&&!(!o&&"@list"===a)}async test(e,t,r,i,o){return n.Util.isPotentialKeyword(r)}async handle(e,t,r,o,a,s){const l=i.VALID_KEYWORDS_TYPES[r];void 0!==l?l&&typeof a!==l.type&&e.emitError(new n.ErrorCoded(`Invalid value type for '${r}' with value '${a}'`,l.errorCode)):e.strictValues&&e.emitError(new Error(`Unknown keyword '${r}' with value '${a}'`)),e.emittedStack[s]=!1}}i.VALID_KEYWORDS_TYPES={"@index":{type:"string",errorCode:n.ERROR_CODES.INVALID_INDEX_VALUE},"@list":null,"@reverse":{type:"object",errorCode:n.ERROR_CODES.INVALID_REVERSE_VALUE},"@set":null,"@value":null},t.EntryHandlerKeywordUnknownFallback=i},93322:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordValue=void 0;const n=r(4479);class i extends n.EntryHandlerKeyword{constructor(){super("@value")}async validate(e,t,r,n,i){const o=r[n];return o&&!e.literalStack[n]&&await this.test(e,t,o,r,n)&&(e.literalStack[n]=!0),super.validate(e,t,r,n,i)}async test(e,t,r,n,i){return"@value"===await t.unaliasKeyword(n[i],n.slice(0,n.length-1),i-1,!0)}async handle(e,t,r,n,i,o){e.literalStack[o]=!0,delete e.unidentifiedValuesBuffer[o],delete e.unidentifiedGraphsBuffer[o],e.emittedStack[o]=!1}}t.EntryHandlerKeywordValue=i},27785:function(e,t,r){"use strict";const{SymbolDispose:n}=r(45030),{AbortError:i,codes:o}=r(65123),{isNodeStream:a,isWebStream:s,kControllerErrorFunction:l}=r(18724),d=r(20462),{ERR_INVALID_ARG_TYPE:u}=o;let c;const f=(e,t)=>{if("object"!==typeof e||!("aborted"in e))throw new u(t,"AbortSignal",e)};e.exports.addAbortSignal=function(t,r){if(f(t,"signal"),!a(r)&&!s(r))throw new u("stream",["ReadableStream","WritableStream","Stream"],r);return e.exports.addAbortSignalNoValidate(t,r)},e.exports.addAbortSignalNoValidate=function(e,t){if("object"!==typeof e||!("aborted"in e))return t;const o=a(t)?()=>{t.destroy(new i(void 0,{cause:e.reason}))}:()=>{t[l](new i(void 0,{cause:e.reason}))};if(e.aborted)o();else{c=c||r(29654).addAbortListener;const i=c(e,o);d(t,i[n])}return t}},8413:function(e,t,r){"use strict";const{StringPrototypeSlice:n,SymbolIterator:i,TypedArrayPrototypeSet:o,Uint8Array:a}=r(45030),{Buffer:s}=r(48764),{inspect:l}=r(29654);e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(e){const t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}shift(){if(0===this.length)return;const e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(0===this.length)return"";let t=this.head,r=""+t.data;while(null!==(t=t.next))r+=e+t.data;return r}concat(e){if(0===this.length)return s.alloc(0);const t=s.allocUnsafe(e>>>0);let r=this.head,n=0;while(r)o(t,r.data,n),n+=r.data.length,r=r.next;return t}consume(e,t){const r=this.head.data;if(eo.length)){e===o.length?(t+=o,++i,r.next?this.head=r.next:this.head=this.tail=null):(t+=n(o,0,e),this.head=r,r.data=n(o,e));break}t+=o,e-=o.length,++i}while(null!==(r=r.next));return this.length-=i,t}_getBuffer(e){const t=s.allocUnsafe(e),r=e;let n=this.head,i=0;do{const s=n.data;if(!(e>s.length)){e===s.length?(o(t,s,r-e),++i,n.next?this.head=n.next:this.head=this.tail=null):(o(t,new a(s.buffer,s.byteOffset,e),r-e),this.head=n,n.data=s.slice(e));break}o(t,s,r-e),e-=s.length,++i}while(null!==(n=n.next));return this.length-=i,t}[Symbol.for("nodejs.util.inspect.custom")](e,t){return l(this,{...t,depth:0,customInspect:!1})}}},14811:function(e,t,r){"use strict";const{pipeline:n}=r(75340),i=r(67510),{destroyer:o}=r(49648),{isNodeStream:a,isReadable:s,isWritable:l,isWebStream:d,isTransformStream:u,isWritableStream:c,isReadableStream:f}=r(18724),{AbortError:h,codes:{ERR_INVALID_ARG_VALUE:p,ERR_MISSING_ARGS:b}}=r(65123),y=r(20462);e.exports=function(...e){if(0===e.length)throw new b("streams");if(1===e.length)return i.from(e[0]);const t=[...e];if("function"===typeof e[0]&&(e[0]=i.from(e[0])),"function"===typeof e[e.length-1]){const t=e.length-1;e[t]=i.from(e[t])}for(let n=0;n0&&!(l(e[n])||c(e[n])||u(e[n])))throw new p(`streams[${n}]`,t[n],"must be writable")}let r,g,_,w,E;function m(e){const t=w;w=null,t?t(e):e?E.destroy(e):I||v||E.destroy()}const S=e[0],R=n(e,m),v=!!(l(S)||c(S)||u(S)),I=!!(s(R)||f(R)||u(R));if(E=new i({writableObjectMode:!(null===S||void 0===S||!S.writableObjectMode),readableObjectMode:!(null===R||void 0===R||!R.readableObjectMode),writable:v,readable:I}),v){if(a(S))E._write=function(e,t,n){S.write(e,t)?n():r=n},E._final=function(e){S.end(),g=e},S.on("drain",(function(){if(r){const e=r;r=null,e()}}));else if(d(S)){const e=u(S)?S.writable:S,t=e.getWriter();E._write=async function(e,r,n){try{await t.ready,t.write(e).catch((()=>{})),n()}catch(i){n(i)}},E._final=async function(e){try{await t.ready,t.close().catch((()=>{})),g=e}catch(r){e(r)}}}const e=u(R)?R.readable:R;y(e,(()=>{if(g){const e=g;g=null,e()}}))}if(I)if(a(R))R.on("readable",(function(){if(_){const e=_;_=null,e()}})),R.on("end",(function(){E.push(null)})),E._read=function(){while(1){const e=R.read();if(null===e)return void(_=E._read);if(!E.push(e))return}};else if(d(R)){const e=u(R)?R.readable:R,t=e.getReader();E._read=async function(){while(1)try{const{value:e,done:r}=await t.read();if(!E.push(e))return;if(r)return void E.push(null)}catch{return}}}return E._destroy=function(e,t){e||null===w||(e=new h),_=null,r=null,g=null,null===w?t(e):(w=t,a(R)&&o(R,e))},E}},49648:function(e,t,r){"use strict";const n=r(34155),{aggregateTwoErrors:i,codes:{ERR_MULTIPLE_CALLBACK:o},AbortError:a}=r(65123),{Symbol:s}=r(45030),{kIsDestroyed:l,isDestroyed:d,isFinished:u,isServerRequest:c}=r(18724),f=s("kDestroy"),h=s("kConstruct");function p(e,t,r){e&&(e.stack,t&&!t.errored&&(t.errored=e),r&&!r.errored&&(r.errored=e))}function b(e,t){const r=this._readableState,n=this._writableState,o=n||r;return null!==n&&void 0!==n&&n.destroyed||null!==r&&void 0!==r&&r.destroyed?("function"===typeof t&&t(),this):(p(e,n,r),n&&(n.destroyed=!0),r&&(r.destroyed=!0),o.constructed?y(this,e,t):this.once(f,(function(r){y(this,i(r,e),t)})),this)}function y(e,t,r){let i=!1;function o(t){if(i)return;i=!0;const o=e._readableState,a=e._writableState;p(t,a,o),a&&(a.closed=!0),o&&(o.closed=!0),"function"===typeof r&&r(t),t?n.nextTick(g,e,t):n.nextTick(_,e)}try{e._destroy(t||null,o)}catch(t){o(t)}}function g(e,t){w(e,t),_(e)}function _(e){const t=e._readableState,r=e._writableState;r&&(r.closeEmitted=!0),t&&(t.closeEmitted=!0),(null!==r&&void 0!==r&&r.emitClose||null!==t&&void 0!==t&&t.emitClose)&&e.emit("close")}function w(e,t){const r=e._readableState,n=e._writableState;null!==n&&void 0!==n&&n.errorEmitted||null!==r&&void 0!==r&&r.errorEmitted||(n&&(n.errorEmitted=!0),r&&(r.errorEmitted=!0),e.emit("error",t))}function E(){const e=this._readableState,t=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=!1===e.readable,e.endEmitted=!1===e.readable),t&&(t.constructed=!0,t.destroyed=!1,t.closed=!1,t.closeEmitted=!1,t.errored=null,t.errorEmitted=!1,t.finalCalled=!1,t.prefinished=!1,t.ended=!1===t.writable,t.ending=!1===t.writable,t.finished=!1===t.writable)}function m(e,t,r){const i=e._readableState,o=e._writableState;if(null!==o&&void 0!==o&&o.destroyed||null!==i&&void 0!==i&&i.destroyed)return this;null!==i&&void 0!==i&&i.autoDestroy||null!==o&&void 0!==o&&o.autoDestroy?e.destroy(t):t&&(t.stack,o&&!o.errored&&(o.errored=t),i&&!i.errored&&(i.errored=t),r?n.nextTick(w,e,t):w(e,t))}function S(e,t){if("function"!==typeof e._construct)return;const r=e._readableState,i=e._writableState;r&&(r.constructed=!1),i&&(i.constructed=!1),e.once(h,t),e.listenerCount(h)>1||n.nextTick(R,e)}function R(e){let t=!1;function r(r){if(t)return void m(e,null!==r&&void 0!==r?r:new o);t=!0;const i=e._readableState,a=e._writableState,s=a||i;i&&(i.constructed=!0),a&&(a.constructed=!0),s.destroyed?e.emit(f,r):r?m(e,r,!0):n.nextTick(v,e)}try{e._construct((e=>{n.nextTick(r,e)}))}catch(i){n.nextTick(r,i)}}function v(e){e.emit(h)}function I(e){return(null===e||void 0===e?void 0:e.setHeader)&&"function"===typeof e.abort}function A(e){e.emit("close")}function O(e,t){e.emit("error",t),n.nextTick(A,e)}function C(e,t){e&&!d(e)&&(t||u(e)||(t=new a),c(e)?(e.socket=null,e.destroy(t)):I(e)?e.abort():I(e.req)?e.req.abort():"function"===typeof e.destroy?e.destroy(t):"function"===typeof e.close?e.close():t?n.nextTick(O,e,t):n.nextTick(A,e),e.destroyed||(e[l]=!0))}e.exports={construct:S,destroyer:C,destroy:b,undestroy:E,errorOrDestroy:m}},67510:function(e,t,r){"use strict";const{ObjectDefineProperties:n,ObjectGetOwnPropertyDescriptor:i,ObjectKeys:o,ObjectSetPrototypeOf:a}=r(45030);e.exports=d;const s=r(39126),l=r(10601);a(d.prototype,s.prototype),a(d,s);{const e=o(l.prototype);for(let t=0;t{c=!1,e&&_(t,e),f(e)})),d._write=function(e,t,i){r.write(e,t)?i():n=i},d._final=function(e){r.end(),i=e},r.on("drain",(function(){if(n){const e=n;n=null,e()}})),r.on("finish",(function(){if(i){const e=i;i=null,e()}}))),u&&(p(t,(e=>{u=!1,e&&_(t,e),f(e)})),t.on("readable",(function(){if(s){const e=s;s=null,e()}})),t.on("end",(function(){d.push(null)})),d._read=function(){while(1){const e=t.read();if(null===e)return void(s=d._read);if(!d.push(e))return}}),d._destroy=function(e,o){e||null===l||(e=new b),s=null,n=null,i=null,null===l?o(e):(l=o,_(r,e),_(t,e))},d}e.exports=function e(t,r){if(c(t))return t;if(d(t))return T({readable:t});if(u(t))return T({writable:t});if(l(t))return T({writable:!1,readable:!1});if(f(t))return T({readable:E.fromWeb(t)});if(h(t))return T({writable:m.fromWeb(t)});if("function"===typeof t){const{value:e,write:i,final:o,destroy:a}=x(t);if(s(e))return R(C,e,{objectMode:!0,write:i,final:o,destroy:a});const l=null===e||void 0===e?void 0:e.then;if("function"===typeof l){let t;const r=O(l,e,(e=>{if(null!=e)throw new g("nully","body",e)}),(e=>{_(t,e)}));return t=new C({objectMode:!0,readable:!1,write:i,final(e){o((async()=>{try{await r,n.nextTick(e,null)}catch(t){n.nextTick(e,t)}}))},destroy:a})}throw new g("Iterable, AsyncIterable or AsyncFunction",r,e)}if(I(t))return e(t.arrayBuffer());if(s(t))return R(C,t,{objectMode:!0,writable:!1});if(f(null===t||void 0===t?void 0:t.readable)&&h(null===t||void 0===t?void 0:t.writable))return C.fromWeb(t);if("object"===typeof(null===t||void 0===t?void 0:t.writable)||"object"===typeof(null===t||void 0===t?void 0:t.readable)){const r=null!==t&&void 0!==t&&t.readable?d(null===t||void 0===t?void 0:t.readable)?null===t||void 0===t?void 0:t.readable:e(t.readable):void 0,n=null!==t&&void 0!==t&&t.writable?u(null===t||void 0===t?void 0:t.writable)?null===t||void 0===t?void 0:t.writable:e(t.writable):void 0;return T({readable:r,writable:n})}const i=null===t||void 0===t?void 0:t.then;if("function"===typeof i){let e;return O(i,t,(t=>{null!=t&&e.push(t),e.push(null)}),(t=>{_(e,t)})),e=new C({objectMode:!0,writable:!1,read(){}})}throw new y(r,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],t)}},20462:function(e,t,r){const n=r(34155),{AbortError:i,codes:o}=r(65123),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:s}=o,{kEmptyObject:l,once:d}=r(29654),{validateAbortSignal:u,validateFunction:c,validateObject:f,validateBoolean:h}=r(37852),{Promise:p,PromisePrototypeThen:b,SymbolDispose:y}=r(45030),{isClosed:g,isReadable:_,isReadableNodeStream:w,isReadableStream:E,isReadableFinished:m,isReadableErrored:S,isWritable:R,isWritableNodeStream:v,isWritableStream:I,isWritableFinished:A,isWritableErrored:O,isNodeStream:C,willEmitClose:x,kIsClosedPromise:T}=r(18724);let N;function D(e){return e.setHeader&&"function"===typeof e.abort}const L=()=>{};function P(e,t,o){var h,p;if(2===arguments.length?(o=t,t=l):null==t?t=l:f(t,"options"),c(o,"callback"),u(t.signal,"options.signal"),o=d(o),E(e)||I(e))return k(e,t,o);if(!C(e))throw new a("stream",["ReadableStream","WritableStream","Stream"],e);const b=null!==(h=t.readable)&&void 0!==h?h:w(e),T=null!==(p=t.writable)&&void 0!==p?p:v(e),P=e._writableState,j=e._readableState,M=()=>{e.writable||U()};let V=x(e)&&w(e)===b&&v(e)===T,F=A(e,!1);const U=()=>{F=!0,e.destroyed&&(V=!1),(!V||e.readable&&!b)&&(b&&!$||o.call(e))};let $=m(e,!1);const W=()=>{$=!0,e.destroyed&&(V=!1),(!V||e.writable&&!T)&&(T&&!F||o.call(e))},B=t=>{o.call(e,t)};let G=g(e);const H=()=>{G=!0;const t=O(e)||S(e);return t&&"boolean"!==typeof t?o.call(e,t):b&&!$&&w(e,!0)&&!m(e,!1)?o.call(e,new s):!T||F||A(e,!1)?void o.call(e):o.call(e,new s)},K=()=>{G=!0;const t=O(e)||S(e);if(t&&"boolean"!==typeof t)return o.call(e,t);o.call(e)},J=()=>{e.req.on("finish",U)};D(e)?(e.on("complete",U),V||e.on("abort",H),e.req?J():e.on("request",J)):T&&!P&&(e.on("end",M),e.on("close",M)),V||"boolean"!==typeof e.aborted||e.on("aborted",H),e.on("end",W),e.on("finish",U),!1!==t.error&&e.on("error",B),e.on("close",H),G?n.nextTick(H):null!==P&&void 0!==P&&P.errorEmitted||null!==j&&void 0!==j&&j.errorEmitted?V||n.nextTick(K):(b||V&&!_(e)||!F&&!1!==R(e))&&(T||V&&!R(e)||!$&&!1!==_(e))?j&&e.req&&e.aborted&&n.nextTick(K):n.nextTick(K);const Y=()=>{o=L,e.removeListener("aborted",H),e.removeListener("complete",U),e.removeListener("abort",H),e.removeListener("request",J),e.req&&e.req.removeListener("finish",U),e.removeListener("end",M),e.removeListener("close",M),e.removeListener("finish",U),e.removeListener("end",W),e.removeListener("error",B),e.removeListener("close",H)};if(t.signal&&!G){const a=()=>{const r=o;Y(),r.call(e,new i(void 0,{cause:t.signal.reason}))};if(t.signal.aborted)n.nextTick(a);else{N=N||r(29654).addAbortListener;const n=N(t.signal,a),i=o;o=d(((...t)=>{n[y](),i.apply(e,t)}))}}return Y}function k(e,t,o){let a=!1,s=L;if(t.signal)if(s=()=>{a=!0,o.call(e,new i(void 0,{cause:t.signal.reason}))},t.signal.aborted)n.nextTick(s);else{N=N||r(29654).addAbortListener;const n=N(t.signal,s),i=o;o=d(((...t)=>{n[y](),i.apply(e,t)}))}const l=(...t)=>{a||n.nextTick((()=>o.apply(e,t)))};return b(e[T].promise,l,l),L}function j(e,t){var r;let n=!1;return null===t&&(t=l),null!==(r=t)&&void 0!==r&&r.cleanup&&(h(t.cleanup,"cleanup"),n=t.cleanup),new p(((r,i)=>{const o=P(e,t,(e=>{n&&o(),e?i(e):r()}))}))}e.exports=P,e.exports.finished=j},31014:function(e,t,r){"use strict";const n=r(34155),{PromisePrototypeThen:i,SymbolAsyncIterator:o,SymbolIterator:a}=r(45030),{Buffer:s}=r(48764),{ERR_INVALID_ARG_TYPE:l,ERR_STREAM_NULL_VALUES:d}=r(65123).codes;function u(e,t,r){let u,c;if("string"===typeof t||t instanceof s)return new e({objectMode:!0,...r,read(){this.push(t),this.push(null)}});if(t&&t[o])c=!0,u=t[o]();else{if(!t||!t[a])throw new l("iterable",["Iterable"],t);c=!1,u=t[a]()}const f=new e({objectMode:!0,highWaterMark:1,...r});let h=!1;async function p(e){const t=void 0!==e&&null!==e,r="function"===typeof u.throw;if(t&&r){const{value:t,done:r}=await u.throw(e);if(await t,r)return}if("function"===typeof u.return){const{value:e}=await u.return();await e}}async function b(){for(;;){try{const{value:e,done:t}=c?await u.next():u.next();if(t)f.push(null);else{const t=e&&"function"===typeof e.then?await e:e;if(null===t)throw h=!1,new d;if(f.push(t))continue;h=!1}}catch(e){f.destroy(e)}break}}return f._read=function(){h||(h=!0,b())},f._destroy=function(e,t){i(p(e),(()=>n.nextTick(t,e)),(r=>n.nextTick(t,r||e)))},f}e.exports=u},48195:function(e,t,r){"use strict";const{ArrayIsArray:n,ObjectSetPrototypeOf:i}=r(45030),{EventEmitter:o}=r(17187);function a(e){o.call(this,e)}function s(e,t,r){if("function"===typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?n(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}i(a.prototype,o.prototype),i(a,o),a.prototype.pipe=function(e,t){const r=this;function n(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function i(){r.readable&&r.resume&&r.resume()}r.on("data",n),e.on("drain",i),e._isStdio||t&&!1===t.end||(r.on("end",l),r.on("close",d));let a=!1;function l(){a||(a=!0,e.end())}function d(){a||(a=!0,"function"===typeof e.destroy&&e.destroy())}function u(e){c(),0===o.listenerCount(this,"error")&&this.emit("error",e)}function c(){r.removeListener("data",n),e.removeListener("drain",i),r.removeListener("end",l),r.removeListener("close",d),r.removeListener("error",u),e.removeListener("error",u),r.removeListener("end",c),r.removeListener("close",c),e.removeListener("close",c)}return s(r,"error",u),s(e,"error",u),r.on("end",c),r.on("close",c),e.on("close",c),e.emit("pipe",r),e},e.exports={Stream:a,prependListener:s}},56565:function(e,t,r){"use strict";const n=globalThis.AbortController||r(28599).AbortController,{codes:{ERR_INVALID_ARG_VALUE:i,ERR_INVALID_ARG_TYPE:o,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:s},AbortError:l}=r(65123),{validateAbortSignal:d,validateInteger:u,validateObject:c}=r(37852),f=r(45030).Symbol("kWeak"),h=r(45030).Symbol("kResistStopPropagation"),{finished:p}=r(20462),b=r(14811),{addAbortSignalNoValidate:y}=r(27785),{isWritable:g,isNodeStream:_}=r(18724),{deprecate:w}=r(29654),{ArrayPrototypePush:E,Boolean:m,MathFloor:S,Number:R,NumberIsNaN:v,Promise:I,PromiseReject:A,PromiseResolve:O,PromisePrototypeThen:C,Symbol:x}=r(45030),T=x("kEmpty"),N=x("kEof");function D(e,t){if(null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),_(e)&&!g(e))throw new i("stream",e,"must be writable");const r=b(this,e);return null!==t&&void 0!==t&&t.signal&&y(t.signal,r),r}function L(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal");let n=1;null!=(null===t||void 0===t?void 0:t.concurrency)&&(n=S(t.concurrency));let i=n-1;return null!=(null===t||void 0===t?void 0:t.highWaterMark)&&(i=S(t.highWaterMark)),u(n,"options.concurrency",1),u(i,"options.highWaterMark",0),i+=n,async function*(){const o=r(29654).AbortSignalAny([null===t||void 0===t?void 0:t.signal].filter(m)),a=this,s=[],d={signal:o};let u,c,f=!1,h=0;function p(){f=!0,b()}function b(){h-=1,y()}function y(){c&&!f&&h=i||h>=n)&&await new I((e=>{c=e}))}s.push(N)}catch(t){const e=A(t);C(e,b,p),s.push(e)}finally{f=!0,u&&(u(),u=null)}}g();try{while(1){while(s.length>0){const e=await s[0];if(e===N)return;if(o.aborted)throw new l;e!==T&&(yield e),s.shift(),y()}await new I((e=>{u=e}))}}finally{f=!0,c&&(c(),c=null)}}.call(this)}function P(e=void 0){return null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal"),async function*(){let t=0;for await(const n of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new l({cause:e.signal.reason});yield[t++,n]}}.call(this)}async function k(e,t=void 0){for await(const r of F.call(this,e,t))return!0;return!1}async function j(e,t=void 0){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);return!await k.call(this,(async(...t)=>!await e(...t)),t)}async function M(e,t){for await(const r of F.call(this,e,t))return r}async function V(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r),T}for await(const n of L.call(this,r,t));}function F(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r)?t:T}return L.call(this,r,t)}class U extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function $(e,t,r){var i;if("function"!==typeof e)throw new o("reducer",["Function","AsyncFunction"],e);null!=r&&c(r,"options"),null!=(null===r||void 0===r?void 0:r.signal)&&d(r.signal,"options.signal");let a=arguments.length>1;if(null!==r&&void 0!==r&&null!==(i=r.signal)&&void 0!==i&&i.aborted){const e=new l(void 0,{cause:r.signal.reason});throw this.once("error",(()=>{})),await p(this.destroy(e)),e}const s=new n,u=s.signal;if(null!==r&&void 0!==r&&r.signal){const e={once:!0,[f]:this,[h]:!0};r.signal.addEventListener("abort",(()=>s.abort()),e)}let b=!1;try{for await(const n of this){var y;if(b=!0,null!==r&&void 0!==r&&null!==(y=r.signal)&&void 0!==y&&y.aborted)throw new l;a?t=await e(t,n,{signal:u}):(t=n,a=!0)}if(!b&&!a)throw new U}finally{s.abort()}return t}async function W(e){null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal");const t=[];for await(const n of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new l(void 0,{cause:e.signal.reason});E(t,n)}return t}function B(e,t){const r=L.call(this,e,t);return async function*(){for await(const e of r)yield*e}.call(this)}function G(e){if(e=R(e),v(e))return 0;if(e<0)throw new s("number",">= 0",e);return e}function H(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=G(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;for await(const i of this){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;e--<=0&&(yield i)}}.call(this)}function K(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=G(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;for await(const i of this){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;if(e-- >0&&(yield i),e<=0)return}}.call(this)}e.exports.streamReturningOperators={asIndexedPairs:w(P,"readable.asIndexedPairs will be removed in a future version."),drop:H,filter:F,flatMap:B,map:L,take:K,compose:D},e.exports.promiseReturningOperators={every:j,forEach:V,reduce:$,toArray:W,some:k,find:M}},59267:function(e,t,r){"use strict";const{ObjectSetPrototypeOf:n}=r(45030);e.exports=o;const i=r(14571);function o(e){if(!(this instanceof o))return new o(e);i.call(this,e)}n(o.prototype,i.prototype),n(o,i),o.prototype._transform=function(e,t,r){r(null,e)}},75340:function(e,t,r){const n=r(34155),{ArrayIsArray:i,Promise:o,SymbolAsyncIterator:a,SymbolDispose:s}=r(45030),l=r(20462),{once:d}=r(29654),u=r(49648),c=r(67510),{aggregateTwoErrors:f,codes:{ERR_INVALID_ARG_TYPE:h,ERR_INVALID_RETURN_VALUE:p,ERR_MISSING_ARGS:b,ERR_STREAM_DESTROYED:y,ERR_STREAM_PREMATURE_CLOSE:g},AbortError:_}=r(65123),{validateFunction:w,validateAbortSignal:E}=r(37852),{isIterable:m,isReadable:S,isReadableNodeStream:R,isNodeStream:v,isTransformStream:I,isWebStream:A,isReadableStream:O,isReadableFinished:C}=r(18724),x=globalThis.AbortController||r(28599).AbortController;let T,N,D;function L(e,t,r){let n=!1;e.on("close",(()=>{n=!0}));const i=l(e,{readable:t,writable:r},(e=>{n=!e}));return{destroy:t=>{n||(n=!0,u.destroyer(e,t||new y("pipe")))},cleanup:i}}function P(e){return w(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function k(e){if(m(e))return e;if(R(e))return j(e);throw new h("val",["Readable","Iterable","AsyncIterable"],e)}async function*j(e){N||(N=r(39126)),yield*N.prototype[a].call(e)}async function M(e,t,r,{end:n}){let i,a=null;const s=e=>{if(e&&(i=e),a){const e=a;a=null,e()}},d=()=>new o(((e,t)=>{i?t(i):a=()=>{i?t(i):e()}}));t.on("drain",s);const u=l(t,{readable:!1},s);try{t.writableNeedDrain&&await d();for await(const r of e)t.write(r)||await d();n&&(t.end(),await d()),r()}catch(c){r(i!==c?f(i,c):c)}finally{u(),t.off("drain",s)}}async function V(e,t,r,{end:n}){I(t)&&(t=t.writable);const i=t.getWriter();try{for await(const t of e)await i.ready,i.write(t).catch((()=>{}));await i.ready,n&&await i.close(),r()}catch(o){try{await i.abort(o),r(o)}catch(o){r(o)}}}function F(...e){return U(e,d(P(e)))}function U(e,t,o){if(1===e.length&&i(e[0])&&(e=e[0]),e.length<2)throw new b("streams");const a=new x,l=a.signal,d=null===o||void 0===o?void 0:o.signal,u=[];function f(){F(new _)}let y,g,w;E(d,"options.signal"),D=D||r(29654).addAbortListener,d&&(y=D(d,f));const C=[];let N,P=0;function j(e){F(e,0===--P)}function F(e,r){var i;if(!e||g&&"ERR_STREAM_PREMATURE_CLOSE"!==g.code||(g=e),g||r){while(C.length)C.shift()(g);null===(i=y)||void 0===i||i[s](),a.abort(),r&&(g||u.forEach((e=>e())),n.nextTick(t,g,w))}}for(let G=0;G0,Y=K||!1!==(null===o||void 0===o?void 0:o.end),q=G===e.length-1;if(v(H)){if(Y){const{destroy:X,cleanup:z}=L(H,K,J);C.push(X),S(H)&&q&&u.push(z)}function U(e){e&&"AbortError"!==e.name&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code&&j(e)}H.on("error",U),S(H)&&q&&u.push((()=>{H.removeListener("error",U)}))}if(0===G)if("function"===typeof H){if(N=H({signal:l}),!m(N))throw new p("Iterable, AsyncIterable or Stream","source",N)}else N=m(H)||R(H)||I(H)?H:c.from(H);else if("function"===typeof H){var W;if(I(N))N=k(null===(W=N)||void 0===W?void 0:W.readable);else N=k(N);if(N=H(N,{signal:l}),K){if(!m(N,!0))throw new p("AsyncIterable",`transform[${G-1}]`,N)}else{var B;T||(T=r(59267));const Q=new T({objectMode:!0}),Z=null===(B=N)||void 0===B?void 0:B.then;if("function"===typeof Z)P++,Z.call(N,(e=>{w=e,null!=e&&Q.write(e),Y&&Q.end(),n.nextTick(j)}),(e=>{Q.destroy(e),n.nextTick(j,e)}));else if(m(N,!0))P++,M(N,Q,j,{end:Y});else{if(!O(N)&&!I(N))throw new p("AsyncIterable or Promise","destination",N);{const re=N.readable||N;P++,M(re,Q,j,{end:Y})}}N=Q;const{destroy:ee,cleanup:te}=L(N,!1,!0);C.push(ee),q&&u.push(te)}}else if(v(H)){if(R(N)){P+=2;const ne=$(N,H,j,{end:Y});S(H)&&q&&u.push(ne)}else if(I(N)||O(N)){const ie=N.readable||N;P++,M(ie,H,j,{end:Y})}else{if(!m(N))throw new h("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],N);P++,M(N,H,j,{end:Y})}N=H}else if(A(H)){if(R(N))P++,V(k(N),H,j,{end:Y});else if(O(N)||m(N))P++,V(N,H,j,{end:Y});else{if(!I(N))throw new h("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],N);P++,V(N.readable,H,j,{end:Y})}N=H}else N=c.from(H)}return(null!==l&&void 0!==l&&l.aborted||null!==d&&void 0!==d&&d.aborted)&&n.nextTick(f),N}function $(e,t,r,{end:i}){let o=!1;if(t.on("close",(()=>{o||r(new g)})),e.pipe(t,{end:!1}),i){function a(){o=!0,t.end()}C(e)?n.nextTick(a):e.once("end",a)}else r();return l(e,{readable:!0,writable:!1},(t=>{const n=e._readableState;t&&"ERR_STREAM_PREMATURE_CLOSE"===t.code&&n&&n.ended&&!n.errored&&!n.errorEmitted?e.once("end",r).once("error",r):r(t)})),l(t,{readable:!1,writable:!0},r)}e.exports={pipelineImpl:U,pipeline:F}},39126:function(e,t,r){const n=r(34155),{ArrayPrototypeIndexOf:i,NumberIsInteger:o,NumberIsNaN:a,NumberParseInt:s,ObjectDefineProperties:l,ObjectKeys:d,ObjectSetPrototypeOf:u,Promise:c,SafeSet:f,SymbolAsyncDispose:h,SymbolAsyncIterator:p,Symbol:b}=r(45030);e.exports=se,se.ReadableState=ae;const{EventEmitter:y}=r(17187),{Stream:g,prependListener:_}=r(48195),{Buffer:w}=r(48764),{addAbortSignal:E}=r(27785),m=r(20462);let S=r(29654).debuglog("stream",(e=>{S=e}));const R=r(8413),v=r(49648),{getHighWaterMark:I,getDefaultHighWaterMark:A}=r(65128),{aggregateTwoErrors:O,codes:{ERR_INVALID_ARG_TYPE:C,ERR_METHOD_NOT_IMPLEMENTED:x,ERR_OUT_OF_RANGE:T,ERR_STREAM_PUSH_AFTER_EOF:N,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:D},AbortError:L}=r(65123),{validateObject:P}=r(37852),k=b("kPaused"),{StringDecoder:j}=r(32553),M=r(31014);u(se.prototype,g.prototype),u(se,g);const V=()=>{},{errorOrDestroy:F}=v,U=1,$=2,W=4,B=8,G=16,H=32,K=64,J=128,Y=256,q=512,X=1024,z=2048,Q=4096,Z=8192,ee=16384,te=32768,re=65536,ne=1<<17,ie=1<<18;function oe(e){return{enumerable:!1,get(){return 0!==(this.state&e)},set(t){t?this.state|=e:this.state&=~e}}}function ae(e,t,n){"boolean"!==typeof n&&(n=t instanceof r(67510)),this.state=z|Q|G|H,e&&e.objectMode&&(this.state|=U),n&&e&&e.readableObjectMode&&(this.state|=U),this.highWaterMark=e?I(this,e,"readableHighWaterMark",n):A(!1),this.buffer=new R,this.length=0,this.pipes=[],this.flowing=null,this[k]=null,e&&!1===e.emitClose&&(this.state&=~z),e&&!1===e.autoDestroy&&(this.state&=~Q),this.errored=null,this.defaultEncoding=e&&e.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,e&&e.encoding&&(this.decoder=new j(e.encoding),this.encoding=e.encoding)}function se(e){if(!(this instanceof se))return new se(e);const t=this instanceof r(67510);this._readableState=new ae(e,this,t),e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.construct&&(this._construct=e.construct),e.signal&&!t&&E(e.signal,this)),g.call(this,e),v.construct(this,(()=>{this._readableState.needReadable&&ye(this,this._readableState)}))}function le(e,t,r,n){S("readableAddChunk",t);const i=e._readableState;let o;if(0===(i.state&U)&&("string"===typeof t?(r=r||i.defaultEncoding,i.encoding!==r&&(n&&i.encoding?t=w.from(t,r).toString(i.encoding):(t=w.from(t,r),r=""))):t instanceof w?r="":g._isUint8Array(t)?(t=g._uint8ArrayToBuffer(t),r=""):null!=t&&(o=new C("chunk",["string","Buffer","Uint8Array"],t))),o)F(e,o);else if(null===t)i.state&=~B,he(e,i);else if(0!==(i.state&U)||t&&t.length>0)if(n)if(0!==(i.state&W))F(e,new D);else{if(i.destroyed||i.errored)return!1;de(e,i,t,!0)}else if(i.ended)F(e,new N);else{if(i.destroyed||i.errored)return!1;i.state&=~B,i.decoder&&!r?(t=i.decoder.write(t),i.objectMode||0!==t.length?de(e,i,t,!1):ye(e,i)):de(e,i,t,!1)}else n||(i.state&=~B,ye(e,i));return!i.ended&&(i.length0?(0!==(t.state&re)?t.awaitDrainWriters.clear():t.awaitDrainWriters=null,t.dataEmitted=!0,e.emit("data",r)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),0!==(t.state&K)&&pe(e)),ye(e,t)}l(ae.prototype,{objectMode:oe(U),ended:oe($),endEmitted:oe(W),reading:oe(B),constructed:oe(G),sync:oe(H),needReadable:oe(K),emittedReadable:oe(J),readableListening:oe(Y),resumeScheduled:oe(q),errorEmitted:oe(X),emitClose:oe(z),autoDestroy:oe(Q),destroyed:oe(Z),closed:oe(ee),closeEmitted:oe(te),multiAwaitDrain:oe(re),readingMore:oe(ne),dataEmitted:oe(ie)}),se.prototype.destroy=v.destroy,se.prototype._undestroy=v.undestroy,se.prototype._destroy=function(e,t){t(e)},se.prototype[y.captureRejectionSymbol]=function(e){this.destroy(e)},se.prototype[h]=function(){let e;return this.destroyed||(e=this.readableEnded?null:new L,this.destroy(e)),new c(((t,r)=>m(this,(n=>n&&n!==e?r(n):t(null)))))},se.prototype.push=function(e,t){return le(this,e,t,!1)},se.prototype.unshift=function(e,t){return le(this,e,t,!0)},se.prototype.isPaused=function(){const e=this._readableState;return!0===e[k]||!1===e.flowing},se.prototype.setEncoding=function(e){const t=new j(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;const r=this._readableState.buffer;let n="";for(const i of r)n+=t.write(i);return r.clear(),""!==n&&r.push(n),this._readableState.length=n.length,this};const ue=1073741824;function ce(e){if(e>ue)throw new T("size","<= 1GiB",e);return e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++,e}function fe(e,t){return e<=0||0===t.length&&t.ended?0:0!==(t.state&U)?1:a(e)?t.flowing&&t.length?t.buffer.first().length:t.length:e<=t.length?e:t.ended?t.length:0}function he(e,t){if(S("onEofChunk"),!t.ended){if(t.decoder){const e=t.decoder.end();e&&e.length&&(t.buffer.push(e),t.length+=t.objectMode?1:e.length)}t.ended=!0,t.sync?pe(e):(t.needReadable=!1,t.emittedReadable=!0,be(e))}}function pe(e){const t=e._readableState;S("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(S("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(be,e))}function be(e){const t=e._readableState;S("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||t.errored||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,Re(e)}function ye(e,t){!t.readingMore&&t.constructed&&(t.readingMore=!0,n.nextTick(ge,e,t))}function ge(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!1===t[k]?t.flowing=!0:e.listenerCount("data")>0?e.resume():t.readableListening||(t.flowing=null)}function Ee(e){S("readable nexttick read 0"),e.read(0)}function me(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(Se,e,t))}function Se(e,t){S("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Re(e),t.flowing&&!t.reading&&e.read(0)}function Re(e){const t=e._readableState;S("flow",t.flowing);while(t.flowing&&null!==e.read());}function ve(e,t){"function"!==typeof e.read&&(e=se.wrap(e,{objectMode:!0}));const r=Ie(e,t);return r.stream=e,r}async function*Ie(e,t){let r,n=V;function i(t){this===e?(n(),n=V):n=t}e.on("readable",i);const o=m(e,{writable:!1},(e=>{r=e?O(r,e):null,n(),n=V}));try{while(1){const t=e.destroyed?null:e.read();if(null!==t)yield t;else{if(r)throw r;if(null===r)return;await new c(i)}}}catch(a){throw r=O(r,a),r}finally{!r&&!1===(null===t||void 0===t?void 0:t.destroyOnReturn)||void 0!==r&&!e._readableState.autoDestroy?(e.off("readable",i),o()):v.destroyer(e,null)}}function Ae(e,t){if(0===t.length)return null;let r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function Oe(e){const t=e._readableState;S("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(Ce,t,e))}function Ce(e,t){if(S("endReadableNT",e.endEmitted,e.length),!e.errored&&!e.closeEmitted&&!e.endEmitted&&0===e.length)if(e.endEmitted=!0,t.emit("end"),t.writable&&!1===t.allowHalfOpen)n.nextTick(xe,t);else if(e.autoDestroy){const e=t._writableState,r=!e||e.autoDestroy&&(e.finished||!1===e.writable);r&&t.destroy()}}function xe(e){const t=e.writable&&!e.writableEnded&&!e.destroyed;t&&e.end()}let Te;function Ne(){return void 0===Te&&(Te={}),Te}se.prototype.read=function(e){S("read",e),void 0===e?e=NaN:o(e)||(e=s(e,10));const t=this._readableState,r=e;if(e>t.highWaterMark&&(t.highWaterMark=ce(e)),0!==e&&(t.state&=~J),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return S("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?Oe(this):pe(this),null;if(e=fe(e,t),0===e&&t.ended)return 0===t.length&&Oe(this),null;let n,i=0!==(t.state&K);if(S("need readable",i),(0===t.length||t.length-e0?Ae(e,t):null,null===n?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&Oe(this)),null===n||t.errorEmitted||t.closeEmitted||(t.dataEmitted=!0,this.emit("data",n)),n},se.prototype._read=function(e){throw new x("_read()")},se.prototype.pipe=function(e,t){const r=this,i=this._readableState;1===i.pipes.length&&(i.multiAwaitDrain||(i.multiAwaitDrain=!0,i.awaitDrainWriters=new f(i.awaitDrainWriters?[i.awaitDrainWriters]:[]))),i.pipes.push(e),S("pipe count=%d opts=%j",i.pipes.length,t);const o=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr,a=o?l:w;function s(e,t){S("onunpipe"),e===r&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,c())}function l(){S("onend"),e.end()}let d;i.endEmitted?n.nextTick(a):r.once("end",a),e.on("unpipe",s);let u=!1;function c(){S("cleanup"),e.removeListener("close",y),e.removeListener("finish",g),d&&e.removeListener("drain",d),e.removeListener("error",b),e.removeListener("unpipe",s),r.removeListener("end",l),r.removeListener("end",w),r.removeListener("data",p),u=!0,d&&i.awaitDrainWriters&&(!e._writableState||e._writableState.needDrain)&&d()}function h(){u||(1===i.pipes.length&&i.pipes[0]===e?(S("false write response, pause",0),i.awaitDrainWriters=e,i.multiAwaitDrain=!1):i.pipes.length>1&&i.pipes.includes(e)&&(S("false write response, pause",i.awaitDrainWriters.size),i.awaitDrainWriters.add(e)),r.pause()),d||(d=_e(r,e),e.on("drain",d))}function p(t){S("ondata");const r=e.write(t);S("dest.write",r),!1===r&&h()}function b(t){if(S("onerror",t),w(),e.removeListener("error",b),0===e.listenerCount("error")){const r=e._writableState||e._readableState;r&&!r.errorEmitted?F(e,t):e.emit("error",t)}}function y(){e.removeListener("finish",g),w()}function g(){S("onfinish"),e.removeListener("close",y),w()}function w(){S("unpipe"),r.unpipe(e)}return r.on("data",p),_(e,"error",b),e.once("close",y),e.once("finish",g),e.emit("pipe",r),!0===e.writableNeedDrain?h():i.flowing||(S("pipe resume"),r.resume()),e},se.prototype.unpipe=function(e){const t=this._readableState,r={hasUnpiped:!1};if(0===t.pipes.length)return this;if(!e){const e=t.pipes;t.pipes=[],this.pause();for(let t=0;t0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,S("on readable",i.length,i.reading),i.length?pe(this):i.reading||n.nextTick(Ee,this))),r},se.prototype.addListener=se.prototype.on,se.prototype.removeListener=function(e,t){const r=g.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(we,this),r},se.prototype.off=se.prototype.removeListener,se.prototype.removeAllListeners=function(e){const t=g.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(we,this),t},se.prototype.resume=function(){const e=this._readableState;return e.flowing||(S("resume"),e.flowing=!e.readableListening,me(this,e)),e[k]=!1,this},se.prototype.pause=function(){return S("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(S("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[k]=!0,this},se.prototype.wrap=function(e){let t=!1;e.on("data",(r=>{!this.push(r)&&e.pause&&(t=!0,e.pause())})),e.on("end",(()=>{this.push(null)})),e.on("error",(e=>{F(this,e)})),e.on("close",(()=>{this.destroy()})),e.on("destroy",(()=>{this.destroy()})),this._read=()=>{t&&e.resume&&(t=!1,e.resume())};const r=d(e);for(let n=1;n{t?e?e(t):this.destroy(t):(null!=r&&this.push(r),this.push(null),e&&e())}))}function c(){this._final!==u&&u.call(this)}d.prototype._final=u,d.prototype._transform=function(e,t,r){throw new o("_transform()")},d.prototype._write=function(e,t,r){const n=this._readableState,i=this._writableState,o=n.length;this._transform(e,t,((e,t)=>{e?r(e):(null!=t&&this.push(t),i.ended||o===n.length||n.length{const e=this._writableState;e.writing||B(this,e),J(this,e)}))}function k(e,t,r,i){const o=e._writableState;if("function"===typeof r)i=r,r=o.defaultEncoding;else{if(r){if("buffer"!==r&&!b.isEncoding(r))throw new C(r)}else r=o.defaultEncoding;"function"!==typeof i&&(i=T)}if(null===t)throw new A;if(!o.objectMode)if("string"===typeof t)!1!==o.decodeStrings&&(t=b.from(t,r),r="buffer");else if(t instanceof b)r="buffer";else{if(!p._isUint8Array(t))throw new E("chunk",["string","Buffer","Uint8Array"],t);t=p._uint8ArrayToBuffer(t),r="buffer"}let a;return o.ending?a=new O:o.destroyed&&(a=new v("write")),a?(n.nextTick(i,a),x(e,a,!0),a):(o.pendingcb++,j(e,o,t,r,i))}function j(e,t,r,n,i){const o=t.objectMode?1:r.length;t.length+=o;const a=t.lengthr.bufferedIndex&&B(e,r),i?null!==r.afterWriteTickInfo&&r.afterWriteTickInfo.cb===o?r.afterWriteTickInfo.count++:(r.afterWriteTickInfo={count:1,cb:o,stream:e,state:r},n.nextTick(U,r.afterWriteTickInfo)):$(e,r,1,o))):x(e,new S)}function U({stream:e,state:t,count:r,cb:n}){return t.afterWriteTickInfo=null,$(e,t,r,n)}function $(e,t,r,n){const i=!t.ending&&!e.destroyed&&0===t.length&&t.needDrain;i&&(t.needDrain=!1,e.emit("drain"));while(r-- >0)t.pendingcb--,n();t.destroyed&&W(t),J(e,t)}function W(e){if(e.writing)return;for(let i=e.bufferedIndex;i1&&e._writev){t.pendingcb-=a-1;const n=t.allNoop?T:e=>{for(let t=s;t256?(r.splice(0,s),t.bufferedIndex=0):t.bufferedIndex=s}t.bufferProcessing=!1}function G(e){return e.ending&&!e.destroyed&&e.constructed&&0===e.length&&!e.errored&&0===e.buffered.length&&!e.finished&&!e.writing&&!e.errorEmitted&&!e.closeEmitted}function H(e,t){let r=!1;function i(i){if(r)x(e,null!==i&&void 0!==i?i:S());else if(r=!0,t.pendingcb--,i){const r=t[N].splice(0);for(let e=0;e{G(t)?Y(e,t):t.pendingcb--}),e,t)):G(t)&&(t.pendingcb++,Y(e,t))))}function Y(e,t){t.pendingcb--,t.finished=!0;const r=t[N].splice(0);for(let n=0;n>>0}const x=/^[0-7]+$/,T="must be a 32-bit unsigned integer or an octal string";function N(e,t,r){if("undefined"===typeof e&&(e=r),"string"===typeof e){if(null===h(x,e))throw new E(t,e,T);e=c(e,8)}return P(e,t),e}const D=g(((e,t,r=u,n=d)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new m(t,"an integer",e);if(en)throw new m(t,`>= ${r} && <= ${n}`,e)})),L=g(((e,t,r=-2147483648,n=2147483647)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new m(t,"an integer",e);if(en)throw new m(t,`>= ${r} && <= ${n}`,e)})),P=g(((e,t,r=!1)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new m(t,"an integer",e);const n=r?1:0,i=4294967295;if(ei)throw new m(t,`>= ${n} && <= ${i}`,e)}));function k(e,t){if("string"!==typeof e)throw new w(t,"string",e)}function j(e,t,r=void 0,n){if("number"!==typeof e)throw new w(t,"number",e);if(null!=r&&en||(null!=r||null!=n)&&l(e))throw new m(t,`${null!=r?`>= ${r}`:""}${null!=r&&null!=n?" && ":""}${null!=n?`<= ${n}`:""}`,e)}const M=g(((e,t,r)=>{if(!i(r,e)){const n=o(a(r,(e=>"string"===typeof e?`'${e}'`:p(e))),", "),i="must be one of: "+n;throw new E(t,e,i)}}));function V(e,t){if("boolean"!==typeof e)throw new w(t,"boolean",e)}function F(e,t,r){return null!=e&&f(e,t)?e[t]:r}const U=g(((e,t,r=null)=>{const i=F(r,"allowArray",!1),o=F(r,"allowFunction",!1),a=F(r,"nullable",!1);if(!a&&null===e||!i&&n(e)||"object"!==typeof e&&(!o||"function"!==typeof e))throw new w(t,"Object",e)})),$=g(((e,t)=>{if(null!=e&&"object"!==typeof e&&"function"!==typeof e)throw new w(t,"a dictionary",e)})),W=g(((e,t,r=0)=>{if(!n(e))throw new w(t,"Array",e);if(e.length{if(!I(e))throw new w(t,["Buffer","TypedArray","DataView"],e)}));function Y(e,t){const r=R(t),n=e.length;if("hex"===r&&n%2!==0)throw new E("encoding",t,`is invalid for data of length ${n}`)}function q(e,t="Port",r=!0){if("number"!==typeof e&&"string"!==typeof e||"string"===typeof e&&0===y(e).length||+e!==+e>>>0||e>65535||0===e&&!r)throw new _(t,e,r);return 0|e}const X=g(((e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new w(t,"AbortSignal",e)})),z=g(((e,t)=>{if("function"!==typeof e)throw new w(t,"Function",e)})),Q=g(((e,t)=>{if("function"!==typeof e||v(e))throw new w(t,"Function",e)})),Z=g(((e,t)=>{if(void 0!==e)throw new w(t,"undefined",e)}));function ee(e,t,r){if(!i(r,e))throw new w(t,`('${o(r,"|")}')`,e)}const te=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function re(e,t){if("undefined"===typeof e||!h(te,e))throw new E(t,e,'must be an array or string of format "; rel=preload; as=style"')}function ne(e){if("string"===typeof e)return re(e,"hints"),e;if(n(e)){const t=e.length;let r="";if(0===t)return r;for(let n=0;n; rel=preload; as=style"')}e.exports={isInt32:O,isUint32:C,parseFileMode:N,validateArray:W,validateStringArray:B,validateBooleanArray:G,validateAbortSignalArray:H,validateBoolean:V,validateBuffer:J,validateDictionary:$,validateEncoding:Y,validateFunction:z,validateInt32:L,validateInteger:D,validateNumber:j,validateObject:U,validateOneOf:M,validatePlainFunction:Q,validatePort:q,validateSignalName:K,validateString:k,validateUint32:P,validateUndefined:Z,validateUnion:ee,validateAbortSignal:X,validateLinkHeaderValue:ne}},31036:function(e,t,r){"use strict";const n=r(75803),i=r(18442),o=n.Readable.destroy;e.exports=n.Readable,e.exports._uint8ArrayToBuffer=n._uint8ArrayToBuffer,e.exports._isUint8Array=n._isUint8Array,e.exports.isDisturbed=n.isDisturbed,e.exports.isErrored=n.isErrored,e.exports.isReadable=n.isReadable,e.exports.Readable=n.Readable,e.exports.Writable=n.Writable,e.exports.Duplex=n.Duplex,e.exports.Transform=n.Transform,e.exports.PassThrough=n.PassThrough,e.exports.addAbortSignal=n.addAbortSignal,e.exports.finished=n.finished,e.exports.destroy=n.destroy,e.exports.destroy=o,e.exports.pipeline=n.pipeline,e.exports.compose=n.compose,Object.defineProperty(n,"promises",{configurable:!0,enumerable:!0,get(){return i}}),e.exports.Stream=n.Stream,e.exports["default"]=e.exports},65123:function(e,t,r){"use strict";const{format:n,inspect:i,AggregateError:o}=r(29654),a=globalThis.AggregateError||o,s=Symbol("kIsNodeError"),l=["string","function","number","object","Function","Object","boolean","bigint","symbol"],d=/^([A-Z][a-z0-9]*)+$/,u="__node_internal_",c={};function f(e,t){if(!e)throw new c.ERR_INTERNAL_ASSERTION(t)}function h(e){let t="",r=e.length;const n="-"===e[0]?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function p(e,t,r){if("function"===typeof t)return f(t.length<=r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${t.length}).`),t(...r);const i=(t.match(/%[dfijoOs]/g)||[]).length;return f(i===r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${i}).`),0===r.length?t:n(t,...r)}function b(e,t,r){r||(r=Error);class n extends r{constructor(...r){super(p(e,t,r))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(n.prototype,{name:{value:r.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),n.prototype.code=e,n.prototype[s]=!0,c[e]=n}function y(e){const t=u+e.name;return Object.defineProperty(e,"name",{value:t}),e}function g(e,t){if(e&&t&&e!==t){if(Array.isArray(t.errors))return t.errors.push(e),t;const r=new a([t,e],t.message);return r.code=t.code,r}return e||t}class _ extends Error{constructor(e="The operation was aborted",t=void 0){if(void 0!==t&&"object"!==typeof t)throw new c.ERR_INVALID_ARG_TYPE("options","Object",t);super(e,t),this.code="ABORT_ERR",this.name="AbortError"}}b("ERR_ASSERTION","%s",Error),b("ERR_INVALID_ARG_TYPE",((e,t,r)=>{f("string"===typeof e,"'name' must be a string"),Array.isArray(t)||(t=[t]);let n="The ";e.endsWith(" argument")?n+=`${e} `:n+=`"${e}" ${e.includes(".")?"property":"argument"} `,n+="must be ";const o=[],a=[],s=[];for(const i of t)f("string"===typeof i,"All expected entries have to be of type string"),l.includes(i)?o.push(i.toLowerCase()):d.test(i)?a.push(i):(f("object"!==i,'The value "object" should be written as "Object"'),s.push(i));if(a.length>0){const e=o.indexOf("object");-1!==e&&(o.splice(o,e,1),a.push("Object"))}if(o.length>0){switch(o.length){case 1:n+=`of type ${o[0]}`;break;case 2:n+=`one of type ${o[0]} or ${o[1]}`;break;default:{const e=o.pop();n+=`one of type ${o.join(", ")}, or ${e}`}}(a.length>0||s.length>0)&&(n+=" or ")}if(a.length>0){switch(a.length){case 1:n+=`an instance of ${a[0]}`;break;case 2:n+=`an instance of ${a[0]} or ${a[1]}`;break;default:{const e=a.pop();n+=`an instance of ${a.join(", ")}, or ${e}`}}s.length>0&&(n+=" or ")}switch(s.length){case 0:break;case 1:s[0].toLowerCase()!==s[0]&&(n+="an "),n+=`${s[0]}`;break;case 2:n+=`one of ${s[0]} or ${s[1]}`;break;default:{const e=s.pop();n+=`one of ${s.join(", ")}, or ${e}`}}if(null==r)n+=`. Received ${r}`;else if("function"===typeof r&&r.name)n+=`. Received function ${r.name}`;else if("object"===typeof r){var u;if(null!==(u=r.constructor)&&void 0!==u&&u.name)n+=`. Received an instance of ${r.constructor.name}`;else{const e=i(r,{depth:-1});n+=`. Received ${e}`}}else{let e=i(r,{colors:!1});e.length>25&&(e=`${e.slice(0,25)}...`),n+=`. Received type ${typeof r} (${e})`}return n}),TypeError),b("ERR_INVALID_ARG_VALUE",((e,t,r="is invalid")=>{let n=i(t);n.length>128&&(n=n.slice(0,128)+"...");const o=e.includes(".")?"property":"argument";return`The ${o} '${e}' ${r}. Received ${n}`}),TypeError),b("ERR_INVALID_RETURN_VALUE",((e,t,r)=>{var n;const i=null!==r&&void 0!==r&&null!==(n=r.constructor)&&void 0!==n&&n.name?`instance of ${r.constructor.name}`:"type "+typeof r;return`Expected ${e} to be returned from the "${t}" function but got ${i}.`}),TypeError),b("ERR_MISSING_ARGS",((...e)=>{let t;f(e.length>0,"At least one arg needs to be specified");const r=e.length;switch(e=(Array.isArray(e)?e:[e]).map((e=>`"${e}"`)).join(" or "),r){case 1:t+=`The ${e[0]} argument`;break;case 2:t+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const r=e.pop();t+=`The ${e.join(", ")}, and ${r} arguments`}break}return`${t} must be specified`}),TypeError),b("ERR_OUT_OF_RANGE",((e,t,r)=>{let n;return f(t,'Missing "range" argument'),Number.isInteger(r)&&Math.abs(r)>2**32?n=h(String(r)):"bigint"===typeof r?(n=String(r),(r>2n**32n||r<-(2n**32n))&&(n=h(n)),n+="n"):n=i(r),`The value of "${e}" is out of range. It must be ${t}. Received ${n}`}),RangeError),b("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),b("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),b("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),b("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),b("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),b("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),b("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),b("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),b("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),b("ERR_STREAM_WRITE_AFTER_END","write after end",Error),b("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:_,aggregateTwoErrors:y(g),hideStackFrames:y,codes:c}},45030:function(e){"use strict";e.exports={ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,t){return e.includes(t)},ArrayPrototypeIndexOf(e,t){return e.indexOf(t)},ArrayPrototypeJoin(e,t){return e.join(t)},ArrayPrototypeMap(e,t){return e.map(t)},ArrayPrototypePop(e,t){return e.pop(t)},ArrayPrototypePush(e,t){return e.push(t)},ArrayPrototypeSlice(e,t,r){return e.slice(t,r)},Error:Error,FunctionPrototypeCall(e,t,...r){return e.call(t,...r)},FunctionPrototypeSymbolHasInstance(e,t){return Function.prototype[Symbol.hasInstance].call(e,t)},MathFloor:Math.floor,Number:Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(e,t){return Object.defineProperties(e,t)},ObjectDefineProperty(e,t,r){return Object.defineProperty(e,t,r)},ObjectGetOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,t){return Object.setPrototypeOf(e,t)},Promise:Promise,PromisePrototypeCatch(e,t){return e.catch(t)},PromisePrototypeThen(e,t,r){return e.then(t,r)},PromiseReject(e){return Promise.reject(e)},PromiseResolve(e){return Promise.resolve(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,t){return e.test(t)},SafeSet:Set,String:String,StringPrototypeSlice(e,t,r){return e.slice(t,r)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol:Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,SymbolDispose:Symbol.dispose||Symbol("Symbol.dispose"),SymbolAsyncDispose:Symbol.asyncDispose||Symbol("Symbol.asyncDispose"),TypedArrayPrototypeSet(e,t,r){return e.set(t,r)},Boolean:Boolean,Uint8Array:Uint8Array}},29654:function(e,t,r){"use strict";const n=r(48764),{kResistStopPropagation:i,SymbolDispose:o}=r(45030),a=globalThis.AbortSignal||r(28599).AbortSignal,s=globalThis.AbortController||r(28599).AbortController,l=Object.getPrototypeOf((async function(){})).constructor,d=globalThis.Blob||n.Blob,u="undefined"!==typeof d?function(e){return e instanceof d}:function(e){return!1},c=(e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new ERR_INVALID_ARG_TYPE(t,"AbortSignal",e)},f=(e,t)=>{if("function"!==typeof e)throw new ERR_INVALID_ARG_TYPE(t,"Function",e)};class h extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t="";for(let r=0;r{e=r,t=n}));return{promise:r,resolve:e,reject:t}},promisify(e){return new Promise(((t,r)=>{e(((e,...n)=>e?r(e):t(...n)))}))},debuglog(){return function(){}},format(e,...t){return e.replace(/%([sdifj])/g,(function(...[e,r]){const n=t.shift();if("f"===r)return n.toFixed(6);if("j"===r)return JSON.stringify(n);if("s"===r&&"object"===typeof n){const e=n.constructor!==Object?n.constructor.name:"";return`${e} {}`.trim()}return n.toString()}))},inspect(e){switch(typeof e){case"string":if(e.includes("'")){if(!e.includes('"'))return`"${e}"`;if(!e.includes("`")&&!e.includes("${"))return`\`${e}\``}return`'${e}'`;case"number":return isNaN(e)?"NaN":Object.is(e,-0)?String(e):e;case"bigint":return`${String(e)}n`;case"boolean":case"undefined":return String(e);case"object":return"{}"}},types:{isAsyncFunction(e){return e instanceof l},isArrayBufferView(e){return ArrayBuffer.isView(e)}},isBlob:u,deprecate(e,t){return e},addAbortListener:r(17187).addAbortListener||function(e,t){if(void 0===e)throw new ERR_INVALID_ARG_TYPE("signal","AbortSignal",e);let r;return c(e,"signal"),f(t,"listener"),e.aborted?queueMicrotask((()=>t())):(e.addEventListener("abort",t,{__proto__:null,once:!0,[i]:!0}),r=()=>{e.removeEventListener("abort",t)}),{__proto__:null,[o](){var e;null===(e=r)||void 0===e||e()}}},AbortSignalAny:a.any||function(e){if(1===e.length)return e[0];const t=new s,r=()=>t.abort();return e.forEach((e=>{c(e,"signals"),e.addEventListener("abort",r,{once:!0})})),t.signal.addEventListener("abort",(()=>{e.forEach((e=>e.removeEventListener("abort",r)))}),{once:!0}),t.signal}},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},75803:function(e,t,r){const{Buffer:n}=r(48764),{ObjectDefineProperty:i,ObjectKeys:o,ReflectApply:a}=r(45030),{promisify:{custom:s}}=r(29654),{streamReturningOperators:l,promiseReturningOperators:d}=r(56565),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=r(65123),c=r(14811),{setDefaultHighWaterMark:f,getDefaultHighWaterMark:h}=r(65128),{pipeline:p}=r(75340),{destroyer:b}=r(49648),y=r(20462),g=r(18442),_=r(18724),w=e.exports=r(48195).Stream;w.isDestroyed=_.isDestroyed,w.isDisturbed=_.isDisturbed,w.isErrored=_.isErrored,w.isReadable=_.isReadable,w.isWritable=_.isWritable,w.Readable=r(39126);for(const S of o(l)){const R=l[S];function E(...e){if(new.target)throw u();return w.Readable.from(a(R,this,e))}i(E,"name",{__proto__:null,value:R.name}),i(E,"length",{__proto__:null,value:R.length}),i(w.Readable.prototype,S,{__proto__:null,value:E,enumerable:!1,configurable:!0,writable:!0})}for(const v of o(d)){const I=d[v];function E(...e){if(new.target)throw u();return a(I,this,e)}i(E,"name",{__proto__:null,value:I.name}),i(E,"length",{__proto__:null,value:I.length}),i(w.Readable.prototype,v,{__proto__:null,value:E,enumerable:!1,configurable:!0,writable:!0})}w.Writable=r(10601),w.Duplex=r(67510),w.Transform=r(14571),w.PassThrough=r(59267),w.pipeline=p;const{addAbortSignal:m}=r(27785);w.addAbortSignal=m,w.finished=y,w.destroy=b,w.compose=c,w.setDefaultHighWaterMark=f,w.getDefaultHighWaterMark=h,i(w,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return g}}),i(p,s,{__proto__:null,enumerable:!0,get(){return g.pipeline}}),i(y,s,{__proto__:null,enumerable:!0,get(){return g.finished}}),w.Stream=w,w._isUint8Array=function(e){return e instanceof Uint8Array},w._uint8ArrayToBuffer=function(e){return n.from(e.buffer,e.byteOffset,e.byteLength)}},18442:function(e,t,r){"use strict";const{ArrayPrototypePop:n,Promise:i}=r(45030),{isIterable:o,isNodeStream:a,isWebStream:s}=r(18724),{pipelineImpl:l}=r(75340),{finished:d}=r(20462);function u(...e){return new i(((t,r)=>{let i,d;const u=e[e.length-1];if(u&&"object"===typeof u&&!a(u)&&!o(u)&&!s(u)){const t=n(e);i=t.signal,d=t.end}l(e,((e,n)=>{e?r(e):t(n)}),{signal:i,end:d})}))}r(75803),e.exports={finished:d,pipeline:u}},41640:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(7970),t),i(r(37498),t),i(r(16381),t),i(r(72808),t),i(r(92016),t),i(r(63387),t),i(r(71573),t)},7970:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BlankNode=void 0;class r{constructor(e){this.termType="BlankNode",this.value=e}equals(e){return!!e&&"BlankNode"===e.termType&&e.value===this.value}}t.BlankNode=r},37498:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataFactory=void 0;const n=r(7970),i=r(16381),o=r(72808),a=r(92016),s=r(63387),l=r(71573);let d=0;class u{constructor(e){this.blankNodeCounter=0,e=e||{},this.blankNodePrefix=e.blankNodePrefix||`df_${d++}_`}namedNode(e){return new a.NamedNode(e)}blankNode(e){return new n.BlankNode(e||`${this.blankNodePrefix}${this.blankNodeCounter++}`)}literal(e,t){return new o.Literal(e,t)}variable(e){return new l.Variable(e)}defaultGraph(){return i.DefaultGraph.INSTANCE}quad(e,t,r,n){return new s.Quad(e,t,r,n||this.defaultGraph())}fromTerm(e){switch(e.termType){case"NamedNode":return this.namedNode(e.value);case"BlankNode":return this.blankNode(e.value);case"Literal":return e.language?this.literal(e.value,e.language):e.datatype.equals(o.Literal.XSD_STRING)?this.literal(e.value):this.literal(e.value,this.fromTerm(e.datatype));case"Variable":return this.variable(e.value);case"DefaultGraph":return this.defaultGraph();case"Quad":return this.quad(this.fromTerm(e.subject),this.fromTerm(e.predicate),this.fromTerm(e.object),this.fromTerm(e.graph))}}fromQuad(e){return this.fromTerm(e)}resetBlankNodeCounter(){this.blankNodeCounter=0}}t.DataFactory=u},16381:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultGraph=void 0;class r{constructor(){this.termType="DefaultGraph",this.value=""}equals(e){return!!e&&"DefaultGraph"===e.termType}}t.DefaultGraph=r,r.INSTANCE=new r},72808:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Literal=void 0;const n=r(92016);class i{constructor(e,t){this.termType="Literal",this.value=e,"string"===typeof t?(this.language=t,this.datatype=i.RDF_LANGUAGE_STRING):t?(this.language="",this.datatype=t):(this.language="",this.datatype=i.XSD_STRING)}equals(e){return!!e&&"Literal"===e.termType&&e.value===this.value&&e.language===this.language&&e.datatype.equals(this.datatype)}}t.Literal=i,i.RDF_LANGUAGE_STRING=new n.NamedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"),i.XSD_STRING=new n.NamedNode("http://www.w3.org/2001/XMLSchema#string")},92016:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NamedNode=void 0;class r{constructor(e){this.termType="NamedNode",this.value=e}equals(e){return!!e&&"NamedNode"===e.termType&&e.value===this.value}}t.NamedNode=r},63387:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Quad=void 0;class r{constructor(e,t,r,n){this.termType="Quad",this.value="",this.subject=e,this.predicate=t,this.object=r,this.graph=n}equals(e){return!!e&&("Quad"===e.termType||!e.termType)&&this.subject.equals(e.subject)&&this.predicate.equals(e.predicate)&&this.object.equals(e.object)&&this.graph.equals(e.graph)}}t.Quad=r},71573:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Variable=void 0;class r{constructor(e){this.termType="Variable",this.value=e}equals(e){return!!e&&"Variable"===e.termType&&e.value===this.value}}t.Variable=r},68912:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(9336),t)},9336:function(e,t){"use strict";function r(e,t){t=t||"";const r=t.indexOf("#");if(r>0&&(t=t.substr(0,r)),!e.length){if(t.indexOf(":")<0)throw new Error(`Found invalid baseIRI '${t}' for value '${e}'`);return t}if(e.startsWith("?")){const r=t.indexOf("?");return r>0&&(t=t.substr(0,r)),t+e}if(e.startsWith("#"))return t+e;if(!t.length){const t=e.indexOf(":");if(t<0)throw new Error(`Found invalid relative IRI '${e}' for a missing baseIRI`);return i(e,t)}const o=e.indexOf(":");if(o>=0)return i(e,o);const a=t.indexOf(":");if(a<0)throw new Error(`Found invalid baseIRI '${t}' for value '${e}'`);const s=t.substr(0,a+1);if(0===e.indexOf("//"))return s+i(e,o);let l;if(t.indexOf("//",a)===a+1){if(l=t.indexOf("/",a+3),l<0)return t.length>a+3?t+"/"+i(e,o):s+i(e,o)}else if(l=t.indexOf("/",a+1),l<0)return s+i(e,o);if(0===e.indexOf("/"))return t.substr(0,l)+n(e);let d=t.substr(l);const u=d.lastIndexOf("/");return u>=0&&ue.join(""))).join("/")}function i(e,t){let r=t+1;t>=0?"/"===e[t+1]&&"/"===e[t+2]&&(r=t+3):"/"===e[0]&&"/"===e[1]&&(r=2);const i=e.indexOf("/",r);if(i<0)return e;const o=e.substr(0,i),a=e.substr(i);return o+n(a)}function o(e){return!e||"#"===e||"?"===e||"/"===e}Object.defineProperty(t,"__esModule",{value:!0}),t.removeDotSegmentsOfPath=t.removeDotSegments=t.resolve=void 0,t.resolve=r,t.removeDotSegments=n,t.removeDotSegmentsOfPath=i},24042:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return p}});var n=r(90540),i=r(50505),o=r(54350),a=r(95758),s=r(45024);const l="null:";function d(e){return t=>"NamedNode"!==t.termType?null:t.value.startsWith(l)?e.namedNode(t.value.slice(l.length)):null}function u(e){const t=d(e);return r=>{const n=t(r.subject),i=t(r.predicate),o=t(r.object),a=t(r.graph);return n||i||o||a?e.quad(n||r.subject,i||r.predicate,o||r.object,a||r.graph):r}}class c{constructor(e,{baseIRI:t=l,context:r=null,documentLoader:n,factory:d=i.Z}={}){const c=new a.JsonLdParser({baseIRI:t,context:r,dataFactory:d,documentLoader:n,streamingProfile:!1});e.pipe(c);const f=u(d),h=new s.Transform({objectMode:!0,transform:(e,t,r)=>{r(null,f(e))}});return c.on("context",(e=>{Object.entries(e).forEach((([e,t])=>{h.emit("prefix",e,d.namedNode(t))}))})),c.on("error",(e=>h.destroy(e))),c.pipe(h),(0,o.Z)(h)}}var f=c;class h extends n.Z{constructor(e){super(f,e)}}var p=h}}]); +//# sourceMappingURL=42.17774fbd.js.map \ No newline at end of file diff --git a/js/42.17774fbd.js.map b/js/42.17774fbd.js.map new file mode 100644 index 0000000..2454d18 --- /dev/null +++ b/js/42.17774fbd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/42.17774fbd.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/compose.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/from.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/operators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/readable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/state.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/transform.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/utils.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/writable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/validators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/ours/browser.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/ours/errors.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/ours/primordials.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/ours/util.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/stream/promises.js","webpack://@zazuko/spex/./node_modules/canonicalize/lib/canonicalize.js","webpack://@zazuko/spex/./node_modules/cross-fetch/dist/browser-polyfill.js","webpack://@zazuko/spex/./node_modules/http-link-header/lib/link.js","webpack://@zazuko/spex/./node_modules/jsonld-context-parser/index.js","webpack://@zazuko/spex/./node_modules/jsonld-context-parser/lib/ContextParser.js","webpack://@zazuko/spex/./node_modules/jsonld-context-parser/lib/ErrorCoded.js","webpack://@zazuko/spex/./node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js","webpack://@zazuko/spex/./node_modules/jsonld-context-parser/lib/IDocumentLoader.js","webpack://@zazuko/spex/./node_modules/jsonld-context-parser/lib/JsonLdContext.js","webpack://@zazuko/spex/./node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js","webpack://@zazuko/spex/./node_modules/jsonld-context-parser/lib/Util.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/index.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/ContextTree.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/JsonLdParser.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/ParsingContext.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/Util.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIdentifier.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIndex.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerLanguage.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerType.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerArrayValue.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerContainer.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerInvalidFallback.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordAnnotation.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordContext.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordGraph.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordId.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordIncluded.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordNest.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordType.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordUnknownFallback.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordValue.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/compose.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/from.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/operators.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/readable.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/state.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/transform.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/utils.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/writable.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/validators.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/ours/browser.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/ours/errors.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/ours/primordials.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/ours/util.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/stream.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/stream/promises.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/index.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/BlankNode.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/DataFactory.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/DefaultGraph.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/Literal.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/NamedNode.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/Quad.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/Variable.js","webpack://@zazuko/spex/./node_modules/relative-to-absolute-iri/index.js","webpack://@zazuko/spex/./node_modules/relative-to-absolute-iri/lib/Resolve.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/lib/ParserStream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/index.js"],"sourcesContent":["'use strict'\n\nconst { SymbolDispose } = require('../../ours/primordials')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\nlet addAbortListener\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(signal, onAbort)\n eos(stream, disposable[SymbolDispose])\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.readableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kIsDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream,\n isReadableStream,\n isWritableStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n if (isReadableStream(body)) {\n return _duplexify({\n readable: Readable.fromWeb(body)\n })\n }\n if (isWritableStream(body)) {\n return _duplexify({\n writable: Writable.fromWeb(body)\n })\n }\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n if (\n isReadableStream(body === null || body === undefined ? undefined : body.readable) &&\n isWritableStream(body === null || body === undefined ? undefined : body.writable)\n ) {\n return Duplexify.fromWeb(body)\n }\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen, SymbolDispose } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nlet addAbortListener\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst kResistStopPropagation = require('../../ours/primordials').Symbol('kResistStopPropagation')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst { deprecate } = require('../../ours/util')\nconst {\n ArrayPrototypePush,\n Boolean,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromiseResolve,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n let highWaterMark = concurrency - 1\n if ((options === null || options === undefined ? undefined : options.highWaterMark) != null) {\n highWaterMark = MathFloor(options.highWaterMark)\n }\n validateInteger(concurrency, 'options.concurrency', 1)\n validateInteger(highWaterMark, 'options.highWaterMark', 0)\n highWaterMark += concurrency\n return async function* map() {\n const signal = require('../../ours/util').AbortSignalAny(\n [options === null || options === undefined ? undefined : options.signal].filter(Boolean)\n )\n const stream = this\n const queue = []\n const signalOpt = {\n signal\n }\n let next\n let resume\n let done = false\n let cnt = 0\n function onCatch() {\n done = true\n afterItemProcessed()\n }\n function afterItemProcessed() {\n cnt -= 1\n maybeResume()\n }\n function maybeResume() {\n if (resume && !done && cnt < concurrency && queue.length < highWaterMark) {\n resume()\n resume = null\n }\n }\n async function pump() {\n try {\n for await (let val of stream) {\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n if (val === kEmpty) {\n continue\n }\n val = PromiseResolve(val)\n } catch (err) {\n val = PromiseReject(err)\n }\n cnt += 1\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && (queue.length >= highWaterMark || cnt >= concurrency)) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n } finally {\n done = true\n if (next) {\n next()\n next = null\n }\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n maybeResume()\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal2\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal2 = options.signal) !== null &&\n _options$signal2 !== undefined &&\n _options$signal2.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this,\n [kResistStopPropagation]: true\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal3\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal3 = options.signal) !== null &&\n _options$signal3 !== undefined &&\n _options$signal3.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal5\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal6\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n }\n\n // Don't get another item from iterator in case we reached the end\n if (number <= 0) {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs: deprecate(asIndexedPairs, 'readable.asIndexedPairs will be removed in a future version.'),\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator, SymbolDispose } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableFinished\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nlet addAbortListener\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n await wait()\n }\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n let disposable\n if (outerSignal) {\n disposable = addAbortListener(outerSignal, abort)\n }\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n var _disposable\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n ;(_disposable = disposable) === null || _disposable === undefined ? undefined : _disposable[SymbolDispose]()\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableFinished(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncDispose,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nconst kObjectMode = 1 << 0\nconst kEnded = 1 << 1\nconst kEndEmitted = 1 << 2\nconst kReading = 1 << 3\nconst kConstructed = 1 << 4\nconst kSync = 1 << 5\nconst kNeedReadable = 1 << 6\nconst kEmittedReadable = 1 << 7\nconst kReadableListening = 1 << 8\nconst kResumeScheduled = 1 << 9\nconst kErrorEmitted = 1 << 10\nconst kEmitClose = 1 << 11\nconst kAutoDestroy = 1 << 12\nconst kDestroyed = 1 << 13\nconst kClosed = 1 << 14\nconst kCloseEmitted = 1 << 15\nconst kMultiAwaitDrain = 1 << 16\nconst kReadingMore = 1 << 17\nconst kDataEmitted = 1 << 18\n\n// TODO(benjamingr) it is likely slower to do it this way than with free functions\nfunction makeBitMapDescriptor(bit) {\n return {\n enumerable: false,\n get() {\n return (this.state & bit) !== 0\n },\n set(value) {\n if (value) this.state |= bit\n else this.state &= ~bit\n }\n }\n}\nObjectDefineProperties(ReadableState.prototype, {\n objectMode: makeBitMapDescriptor(kObjectMode),\n ended: makeBitMapDescriptor(kEnded),\n endEmitted: makeBitMapDescriptor(kEndEmitted),\n reading: makeBitMapDescriptor(kReading),\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n constructed: makeBitMapDescriptor(kConstructed),\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n sync: makeBitMapDescriptor(kSync),\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n needReadable: makeBitMapDescriptor(kNeedReadable),\n emittedReadable: makeBitMapDescriptor(kEmittedReadable),\n readableListening: makeBitMapDescriptor(kReadableListening),\n resumeScheduled: makeBitMapDescriptor(kResumeScheduled),\n // True if the error was already emitted and should not be thrown again.\n errorEmitted: makeBitMapDescriptor(kErrorEmitted),\n emitClose: makeBitMapDescriptor(kEmitClose),\n autoDestroy: makeBitMapDescriptor(kAutoDestroy),\n // Has it been destroyed.\n destroyed: makeBitMapDescriptor(kDestroyed),\n // Indicates whether the stream has finished destroying.\n closed: makeBitMapDescriptor(kClosed),\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n closeEmitted: makeBitMapDescriptor(kCloseEmitted),\n multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain),\n // If true, a maybeReadMore has been scheduled.\n readingMore: makeBitMapDescriptor(kReadingMore),\n dataEmitted: makeBitMapDescriptor(kDataEmitted)\n})\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Bit map field to store ReadableState more effciently with 1 bit per field\n // instead of a V8 slot per field.\n this.state = kEmitClose | kAutoDestroy | kConstructed | kSync\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n if (options && options.objectMode) this.state |= kObjectMode\n if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this[kPaused] = null\n\n // Should close be emitted on destroy. Defaults to true.\n if (options && options.emitClose === false) this.state &= ~kEmitClose\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nReadable.prototype[SymbolAsyncDispose] = function () {\n let error\n if (!this.destroyed) {\n error = this.readableEnded ? null : new AbortError()\n this.destroy(error)\n }\n return new Promise((resolve, reject) => eos(this, (err) => (err && err !== error ? reject(err) : resolve(null))))\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if ((state.state & kObjectMode) === 0) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.state &= ~kReading\n onEofChunk(stream, state)\n } else if ((state.state & kObjectMode) !== 0 || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.state &= ~kReading\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.state &= ~kReading\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if ((state.state & kMultiAwaitDrain) !== 0) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if ((state.state & kNeedReadable) !== 0) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if ((state.state & kObjectMode) !== 0) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.state &= ~kEmittedReadable\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = (state.state & kNeedReadable) !== 0\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.state |= kReading | kSync\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.state |= kNeedReadable\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.state &= ~kSync\n\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n pause()\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { validateInteger } = require('../validators')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nlet defaultHighWaterMarkBytes = 16 * 1024\nlet defaultHighWaterMarkObjectMode = 16\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? defaultHighWaterMarkObjectMode : defaultHighWaterMarkBytes\n}\nfunction setDefaultHighWaterMark(objectMode, value) {\n validateInteger(value, 'value', 0)\n if (objectMode) {\n defaultHighWaterMarkObjectMode = value\n } else {\n defaultHighWaterMarkBytes = value\n }\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark,\n setDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\n\n// We need to use SymbolFor to make these globally available\n// for interopt with readable-stream, i.e. readable-stream\n// and node core needs to be able to read/write private state\n// from each other for proper interoperability.\nconst kIsDestroyed = SymbolFor('nodejs.stream.destroyed')\nconst kIsErrored = SymbolFor('nodejs.stream.errored')\nconst kIsReadable = SymbolFor('nodejs.stream.readable')\nconst kIsWritable = SymbolFor('nodejs.stream.writable')\nconst kIsDisturbed = SymbolFor('nodejs.stream.disturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kIsDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (stream && stream[kIsWritable] != null) return stream[kIsWritable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n isDestroyed,\n kIsDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n kIsWritable,\n isClosed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateAbortSignalArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is AbortSignal[]}\n */\n\n/** @type {validateAbortSignalArray} */\nfunction validateAbortSignalArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n const signal = value[i]\n const indexedName = `${name}[${i}]`\n if (signal == null) {\n throw new ERR_INVALID_ARG_TYPE(indexedName, 'AbortSignal', signal)\n }\n validateAbortSignal(signal, indexedName)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateAbortSignalArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n PromiseResolve(val) {\n return Promise.resolve(val)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n SymbolDispose: Symbol.dispose || Symbol('Symbol.dispose'),\n SymbolAsyncDispose: Symbol.asyncDispose || Symbol('Symbol.asyncDispose'),\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Boolean: Boolean,\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst { kResistStopPropagation, SymbolDispose } = require('./primordials')\nconst AbortSignal = globalThis.AbortSignal || require('abort-controller').AbortSignal\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\nconst validateAbortSignal = (signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nconst validateFunction = (value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n}\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob,\n deprecate(fn, message) {\n return fn\n },\n addAbortListener:\n require('events').addAbortListener ||\n function addAbortListener(signal, listener) {\n if (signal === undefined) {\n throw new ERR_INVALID_ARG_TYPE('signal', 'AbortSignal', signal)\n }\n validateAbortSignal(signal, 'signal')\n validateFunction(listener, 'listener')\n let removeEventListener\n if (signal.aborted) {\n queueMicrotask(() => listener())\n } else {\n signal.addEventListener('abort', listener, {\n __proto__: null,\n once: true,\n [kResistStopPropagation]: true\n })\n removeEventListener = () => {\n signal.removeEventListener('abort', listener)\n }\n }\n return {\n __proto__: null,\n [SymbolDispose]() {\n var _removeEventListener\n ;(_removeEventListener = removeEventListener) === null || _removeEventListener === undefined\n ? undefined\n : _removeEventListener()\n }\n }\n },\n AbortSignalAny:\n AbortSignal.any ||\n function AbortSignalAny(signals) {\n // Fast path if there is only one signal.\n if (signals.length === 1) {\n return signals[0]\n }\n const ac = new AbortController()\n const abort = () => ac.abort()\n signals.forEach((signal) => {\n validateAbortSignal(signal, 'signals')\n signal.addEventListener('abort', abort, {\n once: true\n })\n })\n ac.signal.addEventListener(\n 'abort',\n () => {\n signals.forEach((signal) => signal.removeEventListener('abort', abort))\n },\n {\n once: true\n }\n )\n return ac.signal\n }\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { setDefaultHighWaterMark, getDefaultHighWaterMark } = require('./internal/streams/state')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDestroyed = utils.isDestroyed\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.isWritable = utils.isWritable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nStream.setDefaultHighWaterMark = setDefaultHighWaterMark\nStream.getDefaultHighWaterMark = getDefaultHighWaterMark\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('../../lib/stream.js')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","/* jshint esversion: 6 */\n/* jslint node: true */\n'use strict';\n\nmodule.exports = function serialize (object) {\n if (object === null || typeof object !== 'object' || object.toJSON != null) {\n return JSON.stringify(object);\n }\n\n if (Array.isArray(object)) {\n return '[' + object.reduce((t, cv, ci) => {\n const comma = ci === 0 ? '' : ',';\n const value = cv === undefined || typeof cv === 'symbol' ? null : cv;\n return t + comma + serialize(value);\n }, '') + ']';\n }\n\n return '{' + Object.keys(object).sort().reduce((t, cv, ci) => {\n if (object[cv] === undefined ||\n typeof object[cv] === 'symbol') {\n return t;\n }\n const comma = t.length === 0 ? '' : ',';\n return t + comma + serialize(cv) + ':' + serialize(object[cv]);\n }, '') + '}';\n};\n","(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(typeof self !== 'undefined' ? self : this);\n","'use strict'\n\nvar COMPATIBLE_ENCODING_PATTERN = /^utf-?8|ascii|utf-?16-?le|ucs-?2|base-?64|latin-?1$/i\nvar WS_TRIM_PATTERN = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g\nvar WS_CHAR_PATTERN = /\\s|\\uFEFF|\\xA0/\nvar WS_FOLD_PATTERN = /\\r?\\n[\\x20\\x09]+/g\nvar DELIMITER_PATTERN = /[;,\"]/\nvar WS_DELIMITER_PATTERN = /[;,\"]|\\s/\n\n/**\n * Token character pattern\n * @type {RegExp}\n * @see https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nvar TOKEN_PATTERN = /^[!#$%&'*+\\-\\.^_`|~\\da-zA-Z]+$/\n\nvar STATE = {\n IDLE: 1 << 0,\n URI: 1 << 1,\n ATTR: 1 << 2,\n}\n\nfunction trim( value ) {\n return value.replace( WS_TRIM_PATTERN, '' )\n}\n\nfunction hasWhitespace( value ) {\n return WS_CHAR_PATTERN.test( value )\n}\n\nfunction skipWhitespace( value, offset ) {\n while( hasWhitespace( value[offset] ) ) {\n offset++\n }\n return offset\n}\n\nfunction needsQuotes( value ) {\n return WS_DELIMITER_PATTERN.test( value ) ||\n !TOKEN_PATTERN.test( value )\n}\n\n/**\n * Shallow compares two objects to check if their properties match.\n * @param {object} object1 First object to compare.\n * @param {object} object2 Second object to compare.\n * @returns {boolean} Do the objects have matching properties.\n */\nfunction shallowCompareObjects( object1, object2 ) {\n return (\n Object.keys( object1 ).length === Object.keys( object2 ).length &&\n Object.keys( object1 ).every(\n ( key ) => key in object2 && object1[ key ] === object2[ key ]\n )\n );\n}\n\nclass Link {\n\n /**\n * Link\n * @constructor\n * @param {String} [value]\n * @returns {Link}\n */\n constructor( value ) {\n\n /** @type {Array} URI references */\n this.refs = []\n\n if( value ) {\n this.parse( value )\n }\n\n }\n\n /**\n * Get refs with given relation type\n * @param {String} value\n * @returns {Array}\n */\n rel( value ) {\n\n var links = []\n var type = value.toLowerCase()\n\n for( var i = 0; i < this.refs.length; i++ ) {\n if( this.refs[ i ].rel.toLowerCase() === type ) {\n links.push( this.refs[ i ] )\n }\n }\n\n return links\n\n }\n\n /**\n * Get refs where given attribute has a given value\n * @param {String} attr\n * @param {String} value\n * @returns {Array}\n */\n get( attr, value ) {\n\n attr = attr.toLowerCase()\n\n var links = []\n\n for( var i = 0; i < this.refs.length; i++ ) {\n if( this.refs[ i ][ attr ] === value ) {\n links.push( this.refs[ i ] )\n }\n }\n\n return links\n\n }\n\n /** Sets a reference. */\n set( link ) {\n this.refs.push( link )\n return this\n }\n\n /**\n * Sets a reference if a reference with similar properties isn’t already set.\n */\n setUnique( link ) {\n\n if( !this.refs.some(( ref ) => shallowCompareObjects( ref, link )) ) {\n this.refs.push( link )\n }\n\n return this\n\n }\n\n has( attr, value ) {\n\n attr = attr.toLowerCase()\n\n for( var i = 0; i < this.refs.length; i++ ) {\n if( this.refs[ i ][ attr ] === value ) {\n return true\n }\n }\n\n return false\n\n }\n\n parse( value, offset ) {\n\n offset = offset || 0\n value = offset ? value.slice( offset ) : value\n\n // Trim & unfold folded lines\n value = trim( value ).replace( WS_FOLD_PATTERN, '' )\n\n var state = STATE.IDLE\n var length = value.length\n var offset = 0\n var ref = null\n\n while( offset < length ) {\n if( state === STATE.IDLE ) {\n if( hasWhitespace( value[offset] ) ) {\n offset++\n continue\n } else if( value[offset] === '<' ) {\n if( ref != null ) {\n ref.rel != null ?\n this.refs.push( ...Link.expandRelations( ref ) ) :\n this.refs.push( ref )\n }\n var end = value.indexOf( '>', offset )\n if( end === -1 ) throw new Error( 'Expected end of URI delimiter at offset ' + offset )\n ref = { uri: value.slice( offset + 1, end ) }\n // this.refs.push( ref )\n offset = end\n state = STATE.URI\n } else {\n throw new Error( 'Unexpected character \"' + value[offset] + '\" at offset ' + offset )\n }\n offset++\n } else if( state === STATE.URI ) {\n if( hasWhitespace( value[offset] ) ) {\n offset++\n continue\n } else if( value[offset] === ';' ) {\n state = STATE.ATTR\n offset++\n } else if( value[offset] === ',' ) {\n state = STATE.IDLE\n offset++\n } else {\n throw new Error( 'Unexpected character \"' + value[offset] + '\" at offset ' + offset )\n }\n } else if( state === STATE.ATTR ) {\n if( value[offset] ===';' || hasWhitespace( value[offset] ) ) {\n offset++\n continue\n }\n var end = value.indexOf( '=', offset )\n if( end === -1 ) end = value.indexOf( ';', offset )\n if( end === -1 ) end = value.length\n var attr = trim( value.slice( offset, end ) ).toLowerCase()\n var attrValue = ''\n offset = end + 1\n offset = skipWhitespace( value, offset )\n if( value[offset] === '\"' ) {\n offset++\n while( offset < length ) {\n if( value[offset] === '\"' ) {\n offset++; break\n }\n if( value[offset] === '\\\\' ) {\n offset++\n }\n attrValue += value[offset]\n offset++\n }\n } else {\n var end = offset + 1\n while( !DELIMITER_PATTERN.test( value[end] ) && end < length ) {\n end++\n }\n attrValue = value.slice( offset, end )\n offset = end\n }\n if( ref[ attr ] && Link.isSingleOccurenceAttr( attr ) ) {\n // Ignore multiples of attributes which may only appear once\n } else if( attr[ attr.length - 1 ] === '*' ) {\n ref[ attr ] = Link.parseExtendedValue( attrValue )\n } else {\n attrValue = attr === 'type' ?\n attrValue.toLowerCase() : attrValue\n if( ref[ attr ] != null ) {\n if( Array.isArray( ref[ attr ] ) ) {\n ref[ attr ].push( attrValue )\n } else {\n ref[ attr ] = [ ref[ attr ], attrValue ]\n }\n } else {\n ref[ attr ] = attrValue\n }\n }\n switch( value[offset] ) {\n case ',': state = STATE.IDLE; break\n case ';': state = STATE.ATTR; break\n }\n offset++\n } else {\n throw new Error( 'Unknown parser state \"' + state + '\"' )\n }\n }\n\n if( ref != null ) {\n ref.rel != null ?\n this.refs.push( ...Link.expandRelations( ref ) ) :\n this.refs.push( ref )\n }\n\n ref = null\n\n return this\n\n }\n\n toString() {\n\n var refs = []\n var link = ''\n var ref = null\n\n for( var i = 0; i < this.refs.length; i++ ) {\n ref = this.refs[i]\n link = Object.keys( this.refs[i] ).reduce( function( link, attr ) {\n if( attr === 'uri' ) return link\n return link + '; ' + Link.formatAttribute( attr, ref[ attr ] )\n }, '<' + ref.uri + '>' )\n refs.push( link )\n }\n\n return refs.join( ', ' )\n\n }\n\n}\n\n/**\n * Determines whether an encoding can be\n * natively handled with a `Buffer`\n * @param {String} value\n * @returns {Boolean}\n */\nLink.isCompatibleEncoding = function( value ) {\n return COMPATIBLE_ENCODING_PATTERN.test( value )\n}\n\nLink.parse = function( value, offset ) {\n return new Link().parse( value, offset )\n}\n\nLink.isSingleOccurenceAttr = function( attr ) {\n return attr === 'rel' || attr === 'type' || attr === 'media' ||\n attr === 'title' || attr === 'title*'\n}\n\nLink.isTokenAttr = function( attr ) {\n return attr === 'rel' || attr === 'type' || attr === 'anchor'\n}\n\nLink.escapeQuotes = function( value ) {\n return value.replace( /\"/g, '\\\\\"' )\n}\n\nLink.expandRelations = function( ref ) {\n var rels = ref.rel.split( ' ' )\n return rels.map( function( rel ) {\n var value = Object.assign( {}, ref )\n value.rel = rel\n return value\n })\n}\n\n/**\n * Parses an extended value and attempts to decode it\n * @internal\n * @param {String} value\n * @return {Object}\n */\nLink.parseExtendedValue = function( value ) {\n var parts = /([^']+)?(?:'([^']*)')?(.+)/.exec( value )\n return {\n language: parts[2].toLowerCase(),\n encoding: Link.isCompatibleEncoding( parts[1] ) ?\n null : parts[1].toLowerCase(),\n value: Link.isCompatibleEncoding( parts[1] ) ?\n decodeURIComponent( parts[3] ) : parts[3]\n }\n}\n\n/**\n * Format a given extended attribute and it's value\n * @param {String} attr\n * @param {Object} data\n * @return {String}\n */\nLink.formatExtendedAttribute = function( attr, data ) {\n\n var encoding = ( data.encoding || 'utf-8' ).toUpperCase()\n var language = data.language || 'en'\n\n var encodedValue = ''\n\n if( Buffer.isBuffer( data.value ) && Link.isCompatibleEncoding( encoding ) ) {\n encodedValue = data.value.toString( encoding )\n } else if( Buffer.isBuffer( data.value ) ) {\n encodedValue = data.value.toString( 'hex' )\n .replace( /[0-9a-f]{2}/gi, '%$1' )\n } else {\n encodedValue = encodeURIComponent( data.value )\n }\n\n return attr + '=' + encoding + '\\'' +\n language + '\\'' + encodedValue\n\n}\n\n/**\n * Format a given attribute and it's value\n * @param {String} attr\n * @param {String|Object} value\n * @return {String}\n */\nLink.formatAttribute = function( attr, value ) {\n\n if( Array.isArray( value ) ) {\n return value.map(( item ) => {\n return Link.formatAttribute( attr, item )\n }).join( '; ' )\n }\n\n if( attr[ attr.length - 1 ] === '*' || typeof value !== 'string' ) {\n return Link.formatExtendedAttribute( attr, value )\n }\n\n if( Link.isTokenAttr( attr ) ) {\n value = needsQuotes( value ) ?\n '\"' + Link.escapeQuotes( value ) + '\"' :\n Link.escapeQuotes( value )\n } else if( needsQuotes( value ) ) {\n value = encodeURIComponent( value )\n // We don't need to escape <,> <;> within quotes\n value = value\n .replace( /%20/g, ' ' )\n .replace( /%2C/g, ',' )\n .replace( /%3B/g, ';' )\n\n value = '\"' + value + '\"'\n }\n\n return attr + '=' + value\n\n}\n\nmodule.exports = Link\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/ContextParser\"), exports);\n__exportStar(require(\"./lib/ErrorCoded\"), exports);\n__exportStar(require(\"./lib/FetchDocumentLoader\"), exports);\n__exportStar(require(\"./lib/IDocumentLoader\"), exports);\n__exportStar(require(\"./lib/JsonLdContext\"), exports);\n__exportStar(require(\"./lib/JsonLdContextNormalized\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextParser = void 0;\nrequire(\"cross-fetch/polyfill\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst FetchDocumentLoader_1 = require(\"./FetchDocumentLoader\");\nconst JsonLdContextNormalized_1 = require(\"./JsonLdContextNormalized\");\nconst Util_1 = require(\"./Util\");\n/**\n * Parses JSON-LD contexts.\n */\nclass ContextParser {\n constructor(options) {\n options = options || {};\n this.documentLoader = options.documentLoader || new FetchDocumentLoader_1.FetchDocumentLoader();\n this.documentCache = {};\n this.validateContext = !options.skipValidation;\n this.expandContentTypeToBase = !!options.expandContentTypeToBase;\n this.remoteContextsDepthLimit = options.remoteContextsDepthLimit || 32;\n this.redirectSchemaOrgHttps = 'redirectSchemaOrgHttps' in options ? !!options.redirectSchemaOrgHttps : true;\n }\n /**\n * Validate the given @language value.\n * An error will be thrown if it is invalid.\n * @param value An @language value.\n * @param {boolean} strictRange If the string value should be strictly checked against a regex.\n * @param {string} errorCode The error code to emit on errors.\n * @return {boolean} If validation passed.\n * Can only be false if strictRange is false and the string value did not pass the regex.\n */\n static validateLanguage(value, strictRange, errorCode) {\n if (typeof value !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a string, got '${JSON.stringify(value)}'`, errorCode);\n }\n if (!Util_1.Util.REGEX_LANGUAGE_TAG.test(value)) {\n if (strictRange) {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a valid language tag, got '${JSON.stringify(value)}'`, errorCode);\n }\n else {\n return false;\n }\n }\n return true;\n }\n /**\n * Validate the given @direction value.\n * An error will be thrown if it is invalid.\n * @param value An @direction value.\n * @param {boolean} strictValues If the string value should be strictly checked against a regex.\n * @return {boolean} If validation passed.\n * Can only be false if strictRange is false and the string value did not pass the regex.\n */\n static validateDirection(value, strictValues) {\n if (typeof value !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be a string, got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n }\n if (!Util_1.Util.REGEX_DIRECTION_TAG.test(value)) {\n if (strictValues) {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be 'ltr' or 'rtl', got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n }\n else {\n return false;\n }\n }\n return true;\n }\n /**\n * Add an @id term for all @reverse terms.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n */\n idifyReverseTerms(context) {\n for (const key of Object.keys(context)) {\n let value = context[key];\n if (value && typeof value === 'object') {\n if (value['@reverse'] && !value['@id']) {\n if (typeof value['@reverse'] !== 'string' || Util_1.Util.isValidKeyword(value['@reverse'])) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid @reverse value, must be absolute IRI or blank node: '${value['@reverse']}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n value = context[key] = Object.assign(Object.assign({}, value), { '@id': value['@reverse'] });\n value['@id'] = value['@reverse'];\n if (Util_1.Util.isPotentialKeyword(value['@reverse'])) {\n delete value['@reverse'];\n }\n else {\n value['@reverse'] = true;\n }\n }\n }\n }\n return context;\n }\n /**\n * Expand all prefixed terms in the given context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {boolean} expandContentTypeToBase If @type inside the context may be expanded\n * via @base if @vocab is set to null.\n * @param {string[]} keys Optional set of keys from the context to expand. If left undefined, all\n * keys in the context will be expanded.\n */\n expandPrefixedTerms(context, expandContentTypeToBase, keys) {\n const contextRaw = context.getContextRaw();\n for (const key of (keys || Object.keys(contextRaw))) {\n // Only expand allowed keys\n if (Util_1.Util.EXPAND_KEYS_BLACKLIST.indexOf(key) < 0 && !Util_1.Util.isReservedInternalKeyword(key)) {\n // Error if we try to alias a keyword to something else.\n const keyValue = contextRaw[key];\n if (Util_1.Util.isPotentialKeyword(key) && Util_1.Util.ALIAS_DOMAIN_BLACKLIST.indexOf(key) >= 0) {\n if (key !== '@type' || typeof contextRaw[key] === 'object'\n && !(contextRaw[key]['@protected'] || contextRaw[key]['@container'] === '@set')) {\n throw new ErrorCoded_1.ErrorCoded(`Keywords can not be aliased to something else.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n }\n }\n // Error if we try to alias to an illegal keyword\n if (Util_1.Util.ALIAS_RANGE_BLACKLIST.indexOf(Util_1.Util.getContextValueId(keyValue)) >= 0) {\n throw new ErrorCoded_1.ErrorCoded(`Aliasing to certain keywords is not allowed.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.INVALID_KEYWORD_ALIAS);\n }\n // Error if this term was marked as prefix as well\n if (keyValue && Util_1.Util.isPotentialKeyword(Util_1.Util.getContextValueId(keyValue))\n && keyValue['@prefix'] === true) {\n throw new ErrorCoded_1.ErrorCoded(`Tried to use keyword aliases as prefix: '${key}': '${JSON.stringify(keyValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n // Loop because prefixes might be nested\n while (Util_1.Util.isPrefixValue(contextRaw[key])) {\n const value = contextRaw[key];\n let changed = false;\n if (typeof value === 'string') {\n contextRaw[key] = context.expandTerm(value, true);\n changed = changed || value !== contextRaw[key];\n }\n else {\n const id = value['@id'];\n const type = value['@type'];\n // If @id is missing, don't allow @id to be added if @prefix: true and key not being a valid IRI.\n const canAddIdEntry = !('@prefix' in value) || Util_1.Util.isValidIri(key);\n if ('@id' in value) {\n // Use @id value for expansion\n if (id !== undefined && id !== null && typeof id === 'string') {\n contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': context.expandTerm(id, true) });\n changed = changed || id !== contextRaw[key]['@id'];\n }\n }\n else if (!Util_1.Util.isPotentialKeyword(key) && canAddIdEntry) {\n // Add an explicit @id value based on the expanded key value\n const newId = context.expandTerm(key, true);\n if (newId !== key) {\n // Don't set @id if expansion failed\n contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': newId });\n changed = true;\n }\n }\n if (type && typeof type === 'string' && type !== '@vocab'\n && (!value['@container'] || !value['@container']['@type'])\n && canAddIdEntry) {\n // First check @vocab, then fallback to @base\n let expandedType = context.expandTerm(type, true);\n if (expandContentTypeToBase && type === expandedType) {\n expandedType = context.expandTerm(type, false);\n }\n if (expandedType !== type) {\n changed = true;\n contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@type': expandedType });\n }\n }\n }\n if (!changed) {\n break;\n }\n }\n }\n }\n }\n /**\n * Normalize the @language entries in the given context to lowercase.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {IParseOptions} parseOptions The parsing options.\n */\n normalize(context, { processingMode, normalizeLanguageTags }) {\n // Lowercase language keys in 1.0\n if (normalizeLanguageTags || processingMode === 1.0) {\n for (const key of Object.keys(context)) {\n if (key === '@language' && typeof context[key] === 'string') {\n context[key] = context[key].toLowerCase();\n }\n else {\n const value = context[key];\n if (value && typeof value === 'object') {\n if (typeof value['@language'] === 'string') {\n const lowercase = value['@language'].toLowerCase();\n if (lowercase !== value['@language']) {\n context[key] = Object.assign(Object.assign({}, value), { '@language': lowercase });\n }\n }\n }\n }\n }\n }\n }\n /**\n * Convert all @container strings and array values to hash-based values.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n */\n containersToHash(context) {\n for (const key of Object.keys(context)) {\n const value = context[key];\n if (value && typeof value === 'object') {\n if (typeof value['@container'] === 'string') {\n context[key] = Object.assign(Object.assign({}, value), { '@container': { [value['@container']]: true } });\n }\n else if (Array.isArray(value['@container'])) {\n const newValue = {};\n for (const containerValue of value['@container']) {\n newValue[containerValue] = true;\n }\n context[key] = Object.assign(Object.assign({}, value), { '@container': newValue });\n }\n }\n }\n }\n /**\n * Normalize and apply context-level @protected terms onto each term separately.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {number} processingMode The processing mode.\n */\n applyScopedProtected(context, { processingMode }, expandOptions) {\n if (processingMode && processingMode >= 1.1) {\n if (context['@protected']) {\n for (const key of Object.keys(context)) {\n if (Util_1.Util.isReservedInternalKeyword(key)) {\n continue;\n }\n if (!Util_1.Util.isPotentialKeyword(key) && !Util_1.Util.isTermProtected(context, key)) {\n const value = context[key];\n if (value && typeof value === 'object') {\n if (!('@protected' in context[key])) {\n // Mark terms with object values as protected if they don't have an @protected: false annotation\n context[key] = Object.assign(Object.assign({}, context[key]), { '@protected': true });\n }\n }\n else {\n // Convert string-based term values to object-based values with @protected: true\n context[key] = {\n '@id': value,\n '@protected': true,\n };\n if (Util_1.Util.isSimpleTermDefinitionPrefix(value, expandOptions)) {\n context[key] = Object.assign(Object.assign({}, context[key]), { '@prefix': true });\n }\n }\n }\n }\n delete context['@protected'];\n }\n }\n }\n /**\n * Check if the given context inheritance does not contain any overrides of protected terms.\n * @param {IJsonLdContextNormalizedRaw} contextBefore The context that may contain some protected terms.\n * @param {IJsonLdContextNormalizedRaw} contextAfter A new context that is being applied on the first one.\n * @param {IExpandOptions} expandOptions Options that are needed for any expansions during this validation.\n * @param {string[]} keys Optional set of keys from the context to validate. If left undefined, all\n * keys defined in contextAfter will be checked.\n */\n validateKeywordRedefinitions(contextBefore, contextAfter, expandOptions, keys) {\n for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(contextAfter))) {\n if (Util_1.Util.isTermProtected(contextBefore, key)) {\n // The entry in the context before will always be in object-mode\n // If the new entry is in string-mode, convert it to object-mode\n // before checking if it is identical.\n if (typeof contextAfter[key] === 'string') {\n contextAfter[key] = { '@id': contextAfter[key], '@protected': true };\n }\n else {\n // We modify this deliberately,\n // as we need it for the value comparison (they must be identical modulo '@protected')),\n // and for the fact that this new value will override the first one.\n contextAfter[key] = Object.assign(Object.assign({}, contextAfter[key]), { '@protected': true });\n }\n // Error if they are not identical\n if (!Util_1.Util.deepEqual(contextBefore[key], contextAfter[key])) {\n throw new ErrorCoded_1.ErrorCoded(`Attempted to override the protected keyword ${key} from ${JSON.stringify(Util_1.Util.getContextValueId(contextBefore[key]))} to ${JSON.stringify(Util_1.Util.getContextValueId(contextAfter[key]))}`, ErrorCoded_1.ERROR_CODES.PROTECTED_TERM_REDEFINITION);\n }\n }\n }\n }\n /**\n * Validate the entries of the given context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {IParseOptions} options The parse options.\n */\n validate(context, { processingMode }) {\n for (const key of Object.keys(context)) {\n // Ignore reserved internal keywords.\n if (Util_1.Util.isReservedInternalKeyword(key)) {\n continue;\n }\n // Do not allow empty term\n if (key === '') {\n throw new ErrorCoded_1.ErrorCoded(`The empty term is not allowed, got: '${key}': '${JSON.stringify(context[key])}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n const value = context[key];\n const valueType = typeof value;\n // First check if the key is a keyword\n if (Util_1.Util.isPotentialKeyword(key)) {\n switch (key.substr(1)) {\n case 'vocab':\n if (value !== null && valueType !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @vocab IRI: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n }\n break;\n case 'base':\n if (value !== null && valueType !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @base IRI: ${context[key]}`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_IRI);\n }\n break;\n case 'language':\n if (value !== null) {\n ContextParser.validateLanguage(value, true, ErrorCoded_1.ERROR_CODES.INVALID_DEFAULT_LANGUAGE);\n }\n break;\n case 'version':\n if (value !== null && valueType !== 'number') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @version number: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n }\n break;\n case 'direction':\n if (value !== null) {\n ContextParser.validateDirection(value, true);\n }\n break;\n case 'propagate':\n if (processingMode === 1.0) {\n throw new ErrorCoded_1.ErrorCoded(`Found an illegal @propagate keyword: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n }\n if (value !== null && valueType !== 'boolean') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @propagate value: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_PROPAGATE_VALUE);\n }\n break;\n }\n // Don't allow keywords to be overridden\n if (Util_1.Util.isValidKeyword(key) && Util_1.Util.isValidKeyword(Util_1.Util.getContextValueId(value))) {\n throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${Util_1.Util\n .getContextValueId(value)}'`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n }\n continue;\n }\n // Otherwise, consider the key a term\n if (value !== null) {\n switch (valueType) {\n case 'string':\n if (Util_1.Util.getPrefix(value, context) === key) {\n throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n }\n if (Util_1.Util.isValidIriWeak(key)) {\n if (value === '@type') {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n else if (Util_1.Util.isValidIri(value) && value !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n }\n break;\n case 'object':\n if (!Util_1.Util.isCompactIri(key) && !('@id' in value)\n && (value['@type'] === '@id' ? !context['@base'] : !context['@vocab'])) {\n throw new ErrorCoded_1.ErrorCoded(`Missing @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n for (const objectKey of Object.keys(value)) {\n const objectValue = value[objectKey];\n if (!objectValue) {\n continue;\n }\n switch (objectKey) {\n case '@id':\n if (Util_1.Util.isValidKeyword(objectValue)\n && objectValue !== '@type' && objectValue !== '@id' && objectValue !== '@graph' && objectValue !== '@nest') {\n throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n if (Util_1.Util.isValidIriWeak(key)) {\n if (objectValue === '@type') {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n else if (Util_1.Util.isValidIri(objectValue)\n && objectValue !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n }\n if (typeof objectValue !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`Detected non-string @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n if (Util_1.Util.getPrefix(objectValue, context) === key) {\n throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n }\n break;\n case '@type':\n if (value['@container'] === '@type' && objectValue !== '@id' && objectValue !== '@vocab') {\n throw new ErrorCoded_1.ErrorCoded(`@container: @type only allows @type: @id or @vocab, but got: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n }\n if (typeof objectValue !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n }\n if (objectValue !== '@id' && objectValue !== '@vocab'\n && (processingMode === 1.0 || objectValue !== '@json')\n && (processingMode === 1.0 || objectValue !== '@none')\n && (objectValue[0] === '_' || !Util_1.Util.isValidIri(objectValue))) {\n throw new ErrorCoded_1.ErrorCoded(`A context @type must be an absolute IRI, found: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n }\n break;\n case '@reverse':\n if (typeof objectValue === 'string' && value['@id'] && value['@id'] !== objectValue) {\n throw new ErrorCoded_1.ErrorCoded(`Found non-matching @id and @reverse term values in '${key}':\\\n'${objectValue}' and '${value['@id']}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n }\n if ('@nest' in value) {\n throw new ErrorCoded_1.ErrorCoded(`@nest is not allowed in the reverse property '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n }\n break;\n case '@container':\n if (processingMode === 1.0) {\n if (Object.keys(objectValue).length > 1\n || Util_1.Util.CONTAINERS_1_0.indexOf(Object.keys(objectValue)[0]) < 0) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${Object.keys(objectValue)}') in 1.0, \\\nmust be only one of ${Util_1.Util.CONTAINERS_1_0.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n }\n }\n for (const containerValue of Object.keys(objectValue)) {\n if (containerValue === '@list' && value['@reverse']) {\n throw new ErrorCoded_1.ErrorCoded(`Term value can not be @container: @list and @reverse at the same time on '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n }\n if (Util_1.Util.CONTAINERS.indexOf(containerValue) < 0) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${containerValue}'), \\\nmust be one of ${Util_1.Util.CONTAINERS.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n }\n }\n break;\n case '@language':\n ContextParser.validateLanguage(objectValue, true, ErrorCoded_1.ERROR_CODES.INVALID_LANGUAGE_MAPPING);\n break;\n case '@direction':\n ContextParser.validateDirection(objectValue, true);\n break;\n case '@prefix':\n if (objectValue !== null && typeof objectValue !== 'boolean') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @prefix boolean in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_PREFIX_VALUE);\n }\n if (!('@id' in value) && !Util_1.Util.isValidIri(key)) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid @prefix definition for '${key}' ('${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n break;\n case '@index':\n if (processingMode === 1.0 || !value['@container'] || !value['@container']['@index']) {\n throw new ErrorCoded_1.ErrorCoded(`Attempt to add illegal key to value object: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n break;\n case '@nest':\n if (Util_1.Util.isPotentialKeyword(objectValue) && objectValue !== '@nest') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @nest value in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_NEST_VALUE);\n }\n }\n }\n break;\n default:\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid term value: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n }\n }\n }\n /**\n * Apply the @base context entry to the given context under certain circumstances.\n * @param context A context.\n * @param options Parsing options.\n * @param inheritFromParent If the @base value from the parent context can be inherited.\n * @return The given context.\n */\n applyBaseEntry(context, options, inheritFromParent) {\n // In some special cases, this can be a string, so ignore those.\n if (typeof context === 'string') {\n return context;\n }\n // Give priority to @base in the parent context\n if (inheritFromParent && !('@base' in context) && options.parentContext\n && typeof options.parentContext === 'object' && '@base' in options.parentContext) {\n context['@base'] = options.parentContext['@base'];\n if (options.parentContext['@__baseDocument']) {\n context['@__baseDocument'] = true;\n }\n }\n // Override the base IRI if provided.\n if (options.baseIRI && !options.external) {\n if (!('@base' in context)) {\n // The context base is the document base\n context['@base'] = options.baseIRI;\n context['@__baseDocument'] = true;\n }\n else if (context['@base'] !== null && typeof context['@base'] === 'string'\n && !Util_1.Util.isValidIri(context['@base'])) {\n // The context base is relative to the document base\n context['@base'] = (0, relative_to_absolute_iri_1.resolve)(context['@base'], options.parentContext && options.parentContext['@base'] || options.baseIRI);\n }\n }\n return context;\n }\n /**\n * Resolve relative context IRIs, or return full IRIs as-is.\n * @param {string} contextIri A context IRI.\n * @param {string} baseIRI A base IRI.\n * @return {string} The normalized context IRI.\n */\n normalizeContextIri(contextIri, baseIRI) {\n if (!Util_1.Util.isValidIri(contextIri)) {\n try {\n contextIri = (0, relative_to_absolute_iri_1.resolve)(contextIri, baseIRI);\n }\n catch (_a) {\n throw new Error(`Invalid context IRI: ${contextIri}`);\n }\n }\n // TODO: Temporary workaround for fixing schema.org CORS issues (https://github.com/schemaorg/schemaorg/issues/2578#issuecomment-652324465)\n if (this.redirectSchemaOrgHttps && contextIri.startsWith('http://schema.org')) {\n contextIri = 'https://schema.org/';\n }\n return contextIri;\n }\n /**\n * Parse scoped contexts in the given context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {IParseOptions} options Parsing options.\n * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n * @param {string[]} keys Optional set of keys from the context to parseInnerContexts of. If left undefined, all\n * keys in the context will be iterated over.\n */\n async parseInnerContexts(context, options, keys) {\n for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(context))) {\n const value = context[key];\n if (value && typeof value === 'object') {\n if ('@context' in value && value['@context'] !== null && !options.ignoreScopedContexts) {\n // Simulate a processing based on the parent context to check if there are any (potential errors).\n // Honestly, I find it a bit weird to do this here, as the context may be unused,\n // and the final effective context may differ based on any other embedded/scoped contexts.\n // But hey, it's part of the spec, so we have no choice...\n // https://w3c.github.io/json-ld-api/#h-note-10\n if (this.validateContext) {\n try {\n const parentContext = Object.assign(Object.assign({}, context), { [key]: Object.assign({}, context[key]) });\n delete parentContext[key]['@context'];\n await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, parentContext, ignoreProtection: true, ignoreRemoteScopedContexts: true, ignoreScopedContexts: true }));\n }\n catch (e) {\n throw new ErrorCoded_1.ErrorCoded(e.message, ErrorCoded_1.ERROR_CODES.INVALID_SCOPED_CONTEXT);\n }\n }\n context[key] = Object.assign(Object.assign({}, value), { '@context': (await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, minimalProcessing: true, ignoreRemoteScopedContexts: true, parentContext: context })))\n .getContextRaw() });\n }\n }\n }\n return context;\n }\n async parse(context, options = {}, \n // These options are only for internal use on recursive calls and should not be used by\n // libraries consuming this function\n internalOptions = {}) {\n const { baseIRI, parentContext, external, processingMode = ContextParser.DEFAULT_PROCESSING_MODE, normalizeLanguageTags, ignoreProtection, minimalProcessing, } = options;\n const remoteContexts = options.remoteContexts || {};\n // Avoid remote context overflows\n if (Object.keys(remoteContexts).length >= this.remoteContextsDepthLimit) {\n throw new ErrorCoded_1.ErrorCoded('Detected an overflow in remote context inclusions: ' + Object.keys(remoteContexts), ErrorCoded_1.ERROR_CODES.CONTEXT_OVERFLOW);\n }\n if (context === null || context === undefined) {\n // Don't allow context nullification and there are protected terms\n if (!ignoreProtection && parentContext && Util_1.Util.hasProtectedTerms(parentContext)) {\n throw new ErrorCoded_1.ErrorCoded('Illegal context nullification when terms are protected', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_NULLIFICATION);\n }\n // Context that are explicitly set to null are empty.\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(this.applyBaseEntry({}, options, false));\n }\n else if (typeof context === 'string') {\n const contextIri = this.normalizeContextIri(context, baseIRI);\n const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n if (overriddenLoad) {\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(overriddenLoad);\n }\n const parsedStringContext = await this.parse(await this.load(contextIri), Object.assign(Object.assign({}, options), { baseIRI: contextIri, external: true, remoteContexts: Object.assign(Object.assign({}, remoteContexts), { [contextIri]: true }) }));\n this.applyBaseEntry(parsedStringContext.getContextRaw(), options, true);\n return parsedStringContext;\n }\n else if (Array.isArray(context)) {\n // As a performance consideration, first load all external contexts in parallel.\n const contextIris = [];\n const contexts = await Promise.all(context.map((subContext, i) => {\n if (typeof subContext === 'string') {\n const contextIri = this.normalizeContextIri(subContext, baseIRI);\n contextIris[i] = contextIri;\n const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n if (overriddenLoad) {\n return overriddenLoad;\n }\n return this.load(contextIri);\n }\n else {\n return subContext;\n }\n }));\n // Don't apply inheritance logic on minimal processing\n if (minimalProcessing) {\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(contexts);\n }\n const reducedContexts = await contexts.reduce((accContextPromise, contextEntry, i) => accContextPromise\n .then((accContext) => this.parse(contextEntry, Object.assign(Object.assign({}, options), { baseIRI: contextIris[i] || options.baseIRI, external: !!contextIris[i] || options.external, parentContext: accContext.getContextRaw(), remoteContexts: contextIris[i] ? Object.assign(Object.assign({}, remoteContexts), { [contextIris[i]]: true }) : remoteContexts }), \n // @ts-expect-error: This third argument causes a type error because we have hidden it from consumers\n {\n skipValidation: i < contexts.length - 1,\n })), Promise.resolve(new JsonLdContextNormalized_1.JsonLdContextNormalized(parentContext || {})));\n // Override the base IRI if provided.\n this.applyBaseEntry(reducedContexts.getContextRaw(), options, true);\n return reducedContexts;\n }\n else if (typeof context === 'object') {\n if ('@context' in context) {\n return await this.parse(context['@context'], options);\n }\n // Make a deep clone of the given context, to avoid modifying it.\n context = Object.assign({}, context);\n // According to the JSON-LD spec, @base must be ignored from external contexts.\n if (external) {\n delete context['@base'];\n }\n // Override the base IRI if provided.\n this.applyBaseEntry(context, options, true);\n // Hashify container entries\n // Do this before protected term validation as that influences term format\n this.containersToHash(context);\n // Don't perform any other modifications if only minimal processing is needed.\n if (minimalProcessing) {\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(context);\n }\n // In JSON-LD 1.1, load @import'ed context prior to processing.\n let importContext = {};\n if ('@import' in context) {\n if (processingMode >= 1.1) {\n // Only accept string values\n if (typeof context['@import'] !== 'string') {\n throw new ErrorCoded_1.ErrorCoded('An @import value must be a string, but got ' + typeof context['@import'], ErrorCoded_1.ERROR_CODES.INVALID_IMPORT_VALUE);\n }\n // Load context\n importContext = await this.loadImportContext(this.normalizeContextIri(context['@import'], baseIRI));\n delete context['@import'];\n }\n else {\n throw new ErrorCoded_1.ErrorCoded('Context importing is not supported in JSON-LD 1.0', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n }\n }\n this.applyScopedProtected(importContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n const newContext = Object.assign(importContext, context);\n // Handle terms (before protection checks)\n this.idifyReverseTerms(newContext);\n this.normalize(newContext, { processingMode, normalizeLanguageTags });\n this.applyScopedProtected(newContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n const keys = Object.keys(newContext);\n const overlappingKeys = [];\n if (typeof parentContext === 'object') {\n // Merge different parts of the final context in order\n for (const key in parentContext) {\n if (key in newContext) {\n overlappingKeys.push(key);\n }\n else {\n newContext[key] = parentContext[key];\n }\n }\n }\n // Parse inner contexts with minimal processing\n await this.parseInnerContexts(newContext, options, keys);\n const newContextWrapped = new JsonLdContextNormalized_1.JsonLdContextNormalized(newContext);\n // In JSON-LD 1.1, @vocab can be relative to @vocab in the parent context, or a compact IRI.\n if ((newContext && newContext['@version'] || ContextParser.DEFAULT_PROCESSING_MODE) >= 1.1\n && ((context['@vocab'] && typeof context['@vocab'] === 'string') || context['@vocab'] === '')) {\n if (parentContext && '@vocab' in parentContext && context['@vocab'].indexOf(':') < 0) {\n newContext['@vocab'] = parentContext['@vocab'] + context['@vocab'];\n }\n else if (Util_1.Util.isCompactIri(context['@vocab']) || context['@vocab'] in newContext) {\n // @vocab is a compact IRI or refers exactly to a prefix\n newContext['@vocab'] = newContextWrapped.expandTerm(context['@vocab'], true);\n }\n }\n this.expandPrefixedTerms(newContextWrapped, this.expandContentTypeToBase, keys);\n // In JSON-LD 1.1, check if we are not redefining any protected keywords\n if (!ignoreProtection && parentContext && processingMode >= 1.1) {\n this.validateKeywordRedefinitions(parentContext, newContext, JsonLdContextNormalized_1.defaultExpandOptions, overlappingKeys);\n }\n if (this.validateContext && !internalOptions.skipValidation) {\n this.validate(newContext, { processingMode });\n }\n return newContextWrapped;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded(`Tried parsing a context that is not a string, array or object, but got ${context}`, ErrorCoded_1.ERROR_CODES.INVALID_LOCAL_CONTEXT);\n }\n }\n /**\n * Fetch the given URL as a raw JSON-LD context.\n * @param url An URL.\n * @return A promise resolving to a raw JSON-LD context.\n */\n async load(url) {\n // First try to retrieve the context from cache\n const cached = this.documentCache[url];\n if (cached) {\n return cached;\n }\n // If not in cache, load it\n let document;\n try {\n document = await this.documentLoader.load(url);\n }\n catch (e) {\n throw new ErrorCoded_1.ErrorCoded(`Failed to load remote context ${url}: ${e.message}`, ErrorCoded_1.ERROR_CODES.LOADING_REMOTE_CONTEXT_FAILED);\n }\n // Validate the context\n if (!('@context' in document)) {\n throw new ErrorCoded_1.ErrorCoded(`Missing @context in remote context at ${url}`, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n }\n return this.documentCache[url] = document['@context'];\n }\n /**\n * Override the given context that may be loaded.\n *\n * This will check whether or not the url is recursively being loaded.\n * @param url An URL.\n * @param options Parsing options.\n * @return An overridden context, or null.\n * Optionally an error can be thrown if a cyclic context is detected.\n */\n getOverriddenLoad(url, options) {\n if (url in (options.remoteContexts || {})) {\n if (options.ignoreRemoteScopedContexts) {\n return url;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded('Detected a cyclic context inclusion of ' + url, ErrorCoded_1.ERROR_CODES.RECURSIVE_CONTEXT_INCLUSION);\n }\n }\n return null;\n }\n /**\n * Load an @import'ed context.\n * @param importContextIri The full URI of an @import value.\n */\n async loadImportContext(importContextIri) {\n // Load the context - and do a deep clone since we are about to mutate it\n let importContext = await this.load(importContextIri);\n // Require the context to be a non-array object\n if (typeof importContext !== 'object' || Array.isArray(importContext)) {\n throw new ErrorCoded_1.ErrorCoded('An imported context must be a single object: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n }\n // Error if the context contains another @import\n if ('@import' in importContext) {\n throw new ErrorCoded_1.ErrorCoded('An imported context can not import another context: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n }\n importContext = Object.assign({}, importContext);\n // Containers have to be converted into hash values the same way as for the importing context\n // Otherwise context validation will fail for container values\n this.containersToHash(importContext);\n return importContext;\n }\n}\nContextParser.DEFAULT_PROCESSING_MODE = 1.1;\nexports.ContextParser = ContextParser;\n//# sourceMappingURL=ContextParser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ERROR_CODES = exports.ErrorCoded = void 0;\n/**\n * An error that has a certain error code.\n *\n * The error code can be any string.\n * All standardized error codes are listed in {@link ERROR_CODES}.\n */\nclass ErrorCoded extends Error {\n /* istanbul ignore next */\n constructor(message, code) {\n super(message);\n this.code = code;\n }\n}\nexports.ErrorCoded = ErrorCoded;\n/**\n * All standardized JSON-LD error codes.\n * @see https://w3c.github.io/json-ld-api/#dom-jsonlderrorcode\n */\n// tslint:disable:object-literal-sort-keys\nvar ERROR_CODES;\n(function (ERROR_CODES) {\n ERROR_CODES[\"COLLIDING_KEYWORDS\"] = \"colliding keywords\";\n ERROR_CODES[\"CONFLICTING_INDEXES\"] = \"conflicting indexes\";\n ERROR_CODES[\"CYCLIC_IRI_MAPPING\"] = \"cyclic IRI mapping\";\n ERROR_CODES[\"INVALID_ID_VALUE\"] = \"invalid @id value\";\n ERROR_CODES[\"INVALID_INDEX_VALUE\"] = \"invalid @index value\";\n ERROR_CODES[\"INVALID_NEST_VALUE\"] = \"invalid @nest value\";\n ERROR_CODES[\"INVALID_PREFIX_VALUE\"] = \"invalid @prefix value\";\n ERROR_CODES[\"INVALID_PROPAGATE_VALUE\"] = \"invalid @propagate value\";\n ERROR_CODES[\"INVALID_REVERSE_VALUE\"] = \"invalid @reverse value\";\n ERROR_CODES[\"INVALID_IMPORT_VALUE\"] = \"invalid @import value\";\n ERROR_CODES[\"INVALID_VERSION_VALUE\"] = \"invalid @version value\";\n ERROR_CODES[\"INVALID_BASE_IRI\"] = \"invalid base IRI\";\n ERROR_CODES[\"INVALID_CONTAINER_MAPPING\"] = \"invalid container mapping\";\n ERROR_CODES[\"INVALID_CONTEXT_ENTRY\"] = \"invalid context entry\";\n ERROR_CODES[\"INVALID_CONTEXT_NULLIFICATION\"] = \"invalid context nullification\";\n ERROR_CODES[\"INVALID_DEFAULT_LANGUAGE\"] = \"invalid default language\";\n ERROR_CODES[\"INVALID_INCLUDED_VALUE\"] = \"invalid @included value\";\n ERROR_CODES[\"INVALID_IRI_MAPPING\"] = \"invalid IRI mapping\";\n ERROR_CODES[\"INVALID_JSON_LITERAL\"] = \"invalid JSON literal\";\n ERROR_CODES[\"INVALID_KEYWORD_ALIAS\"] = \"invalid keyword alias\";\n ERROR_CODES[\"INVALID_LANGUAGE_MAP_VALUE\"] = \"invalid language map value\";\n ERROR_CODES[\"INVALID_LANGUAGE_MAPPING\"] = \"invalid language mapping\";\n ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_STRING\"] = \"invalid language-tagged string\";\n ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_VALUE\"] = \"invalid language-tagged value\";\n ERROR_CODES[\"INVALID_LOCAL_CONTEXT\"] = \"invalid local context\";\n ERROR_CODES[\"INVALID_REMOTE_CONTEXT\"] = \"invalid remote context\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY\"] = \"invalid reverse property\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY_MAP\"] = \"invalid reverse property map\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY_VALUE\"] = \"invalid reverse property value\";\n ERROR_CODES[\"INVALID_SCOPED_CONTEXT\"] = \"invalid scoped context\";\n ERROR_CODES[\"INVALID_SCRIPT_ELEMENT\"] = \"invalid script element\";\n ERROR_CODES[\"INVALID_SET_OR_LIST_OBJECT\"] = \"invalid set or list object\";\n ERROR_CODES[\"INVALID_TERM_DEFINITION\"] = \"invalid term definition\";\n ERROR_CODES[\"INVALID_TYPE_MAPPING\"] = \"invalid type mapping\";\n ERROR_CODES[\"INVALID_TYPE_VALUE\"] = \"invalid type value\";\n ERROR_CODES[\"INVALID_TYPED_VALUE\"] = \"invalid typed value\";\n ERROR_CODES[\"INVALID_VALUE_OBJECT\"] = \"invalid value object\";\n ERROR_CODES[\"INVALID_VALUE_OBJECT_VALUE\"] = \"invalid value object value\";\n ERROR_CODES[\"INVALID_VOCAB_MAPPING\"] = \"invalid vocab mapping\";\n ERROR_CODES[\"IRI_CONFUSED_WITH_PREFIX\"] = \"IRI confused with prefix\";\n ERROR_CODES[\"KEYWORD_REDEFINITION\"] = \"keyword redefinition\";\n ERROR_CODES[\"LOADING_DOCUMENT_FAILED\"] = \"loading document failed\";\n ERROR_CODES[\"LOADING_REMOTE_CONTEXT_FAILED\"] = \"loading remote context failed\";\n ERROR_CODES[\"MULTIPLE_CONTEXT_LINK_HEADERS\"] = \"multiple context link headers\";\n ERROR_CODES[\"PROCESSING_MODE_CONFLICT\"] = \"processing mode conflict\";\n ERROR_CODES[\"PROTECTED_TERM_REDEFINITION\"] = \"protected term redefinition\";\n ERROR_CODES[\"CONTEXT_OVERFLOW\"] = \"context overflow\";\n ERROR_CODES[\"INVALID_BASE_DIRECTION\"] = \"invalid base direction\";\n ERROR_CODES[\"RECURSIVE_CONTEXT_INCLUSION\"] = \"recursive context inclusion\";\n ERROR_CODES[\"INVALID_STREAMING_KEY_ORDER\"] = \"invalid streaming key order\";\n /**\n * JSON-LD-star\n */\n ERROR_CODES[\"INVALID_EMBEDDED_NODE\"] = \"invalid embedded node\";\n ERROR_CODES[\"INVALID_ANNOTATION\"] = \"invalid annotation\";\n})(ERROR_CODES = exports.ERROR_CODES || (exports.ERROR_CODES = {}));\n//# sourceMappingURL=ErrorCoded.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FetchDocumentLoader = void 0;\nrequire(\"cross-fetch/polyfill\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst http_link_header_1 = require(\"http-link-header\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * Loads documents via the fetch API.\n */\nclass FetchDocumentLoader {\n constructor(fetcher) {\n this.fetcher = fetcher;\n }\n async load(url) {\n const response = await (this.fetcher || fetch)(url, { headers: new Headers({ accept: 'application/ld+json' }) });\n if (response.ok && response.headers) {\n let mediaType = response.headers.get('Content-Type');\n if (mediaType) {\n const colonPos = mediaType.indexOf(';');\n if (colonPos > 0) {\n mediaType = mediaType.substr(0, colonPos);\n }\n }\n if (mediaType === 'application/ld+json') {\n // Return JSON-LD if proper content type was returned\n return (await response.json());\n }\n else {\n // Check for alternate link for a non-JSON-LD response\n if (response.headers.has('Link')) {\n let alternateUrl;\n response.headers.forEach((value, key) => {\n if (key === 'link') {\n const linkHeader = (0, http_link_header_1.parse)(value);\n for (const link of linkHeader.get('type', 'application/ld+json')) {\n if (link.rel === 'alternate') {\n if (alternateUrl) {\n throw new Error('Multiple JSON-LD alternate links were found on ' + url);\n }\n alternateUrl = (0, relative_to_absolute_iri_1.resolve)(link.uri, url);\n }\n }\n }\n });\n if (alternateUrl) {\n return this.load(alternateUrl);\n }\n }\n throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, ErrorCoded_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n }\n else {\n throw new Error(response.statusText || `Status code: ${response.status}`);\n }\n }\n}\nexports.FetchDocumentLoader = FetchDocumentLoader;\n//# sourceMappingURL=FetchDocumentLoader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IDocumentLoader.js.map","\"use strict\";\n// tslint:disable:max-line-length\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=JsonLdContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultExpandOptions = exports.JsonLdContextNormalized = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst Util_1 = require(\"./Util\");\n/**\n * A class exposing operations over a normalized JSON-LD context.\n */\nclass JsonLdContextNormalized {\n constructor(contextRaw) {\n this.contextRaw = contextRaw;\n }\n /**\n * @return The raw inner context.\n */\n getContextRaw() {\n return this.contextRaw;\n }\n /**\n * Expand the term or prefix of the given term if it has one,\n * otherwise return the term as-is.\n *\n * This will try to expand the IRI as much as possible.\n *\n * Iff in vocab-mode, then other references to other terms in the context can be used,\n * such as to `myTerm`:\n * ```\n * {\n * \"myTerm\": \"http://example.org/myLongTerm\"\n * }\n * ```\n *\n * @param {string} term A term that is an URL or a prefixed URL.\n * @param {boolean} expandVocab If the term is a predicate or type and should be expanded based on @vocab,\n * otherwise it is considered a regular term that is expanded based on @base.\n * @param {IExpandOptions} options Options that define the way how expansion must be done.\n * @return {string} The expanded term, the term as-is, or null if it was explicitly disabled in the context.\n * @throws If the term is aliased to an invalid value (not a string, IRI or keyword).\n */\n expandTerm(term, expandVocab, options = exports.defaultExpandOptions) {\n const contextValue = this.contextRaw[term];\n // Immediately return if the term was disabled in the context\n if (contextValue === null || (contextValue && contextValue['@id'] === null)) {\n return null;\n }\n // Check the @id\n let validIriMapping = true;\n if (contextValue && expandVocab) {\n const value = Util_1.Util.getContextValueId(contextValue);\n if (value && value !== term) {\n if (typeof value !== 'string' || (!Util_1.Util.isValidIri(value) && !Util_1.Util.isValidKeyword(value))) {\n // Don't mark this mapping as invalid if we have an unknown keyword, but of the correct form.\n if (!Util_1.Util.isPotentialKeyword(value)) {\n validIriMapping = false;\n }\n }\n else {\n return value;\n }\n }\n }\n // Check if the term is prefixed\n const prefix = Util_1.Util.getPrefix(term, this.contextRaw);\n const vocab = this.contextRaw['@vocab'];\n const vocabRelative = (!!vocab || vocab === '') && vocab.indexOf(':') < 0;\n const base = this.contextRaw['@base'];\n const potentialKeyword = Util_1.Util.isPotentialKeyword(term);\n if (prefix) {\n const contextPrefixValue = this.contextRaw[prefix];\n const value = Util_1.Util.getContextValueId(contextPrefixValue);\n if (value) {\n if (typeof contextPrefixValue === 'string' || !options.allowPrefixForcing) {\n // If we have a simple term definition,\n // check the last character of the prefix to determine whether or not it is a prefix.\n // Validate that prefix ends with gen-delim character, unless @prefix is true\n if (!Util_1.Util.isSimpleTermDefinitionPrefix(value, options)) {\n // Treat the term as an absolute IRI\n return term;\n }\n }\n else {\n // If we have an expanded term definition, default to @prefix: false\n if (value[0] !== '_' && !potentialKeyword && !contextPrefixValue['@prefix'] && !(term in this.contextRaw)) {\n // Treat the term as an absolute IRI\n return term;\n }\n }\n return value + term.substr(prefix.length + 1);\n }\n }\n else if (expandVocab && ((vocab || vocab === '') || (options.allowVocabRelativeToBase && (base && vocabRelative)))\n && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n if (vocabRelative) {\n if (options.allowVocabRelativeToBase) {\n return ((vocab || base) ? (0, relative_to_absolute_iri_1.resolve)(vocab, base) : '') + term;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded(`Relative vocab expansion for term '${term}' with vocab '${vocab}' is not allowed.`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n }\n }\n else {\n return vocab + term;\n }\n }\n else if (!expandVocab && base && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n return (0, relative_to_absolute_iri_1.resolve)(term, base);\n }\n // Return the term as-is, unless we discovered an invalid IRI mapping for this term in the context earlier.\n if (validIriMapping) {\n return term;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded(`Invalid IRI mapping found for context entry '${term}': '${JSON.stringify(contextValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n }\n /**\n * Compact the given term using @base, @vocab, an aliased term, or a prefixed term.\n *\n * This will try to compact the IRI as much as possible.\n *\n * @param {string} iri An IRI to compact.\n * @param {boolean} vocab If the term is a predicate or type and should be compacted based on @vocab,\n * otherwise it is considered a regular term that is compacted based on @base.\n * @return {string} The compacted term or the IRI as-is.\n */\n compactIri(iri, vocab) {\n // Try @vocab compacting\n if (vocab && this.contextRaw['@vocab'] && iri.startsWith(this.contextRaw['@vocab'])) {\n return iri.substr(this.contextRaw['@vocab'].length);\n }\n // Try @base compacting\n if (!vocab && this.contextRaw['@base'] && iri.startsWith(this.contextRaw['@base'])) {\n return iri.substr(this.contextRaw['@base'].length);\n }\n // Loop over all terms in the context\n // This will try to prefix as short as possible.\n // Once a fully compacted alias is found, return immediately, as we can not go any shorter.\n const shortestPrefixing = { prefix: '', suffix: iri };\n for (const key in this.contextRaw) {\n const value = this.contextRaw[key];\n if (value && !Util_1.Util.isPotentialKeyword(key)) {\n const contextIri = Util_1.Util.getContextValueId(value);\n if (iri.startsWith(contextIri)) {\n const suffix = iri.substr(contextIri.length);\n if (!suffix) {\n if (vocab) {\n // Immediately return on compacted alias\n return key;\n }\n }\n else if (suffix.length < shortestPrefixing.suffix.length) {\n // Overwrite the shortest prefix\n shortestPrefixing.prefix = key;\n shortestPrefixing.suffix = suffix;\n }\n }\n }\n }\n // Return the shortest prefix\n if (shortestPrefixing.prefix) {\n return shortestPrefixing.prefix + ':' + shortestPrefixing.suffix;\n }\n return iri;\n }\n}\nexports.JsonLdContextNormalized = JsonLdContextNormalized;\nexports.defaultExpandOptions = {\n allowPrefixForcing: true,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: true,\n};\n//# sourceMappingURL=JsonLdContextNormalized.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nclass Util {\n /**\n * Check if the given term is a valid compact IRI.\n * Otherwise, it may be an IRI.\n * @param {string} term A term.\n * @return {boolean} If it is a compact IRI.\n */\n static isCompactIri(term) {\n return term.indexOf(':') > 0 && !(term && term[0] === '#');\n }\n /**\n * Get the prefix from the given term.\n * @see https://json-ld.org/spec/latest/json-ld/#compact-iris\n * @param {string} term A term that is an URL or a prefixed URL.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @return {string} The prefix or null.\n */\n static getPrefix(term, context) {\n // Do not consider relative IRIs starting with a hash as compact IRIs\n if (term && term[0] === '#') {\n return null;\n }\n const separatorPos = term.indexOf(':');\n if (separatorPos >= 0) {\n // Suffix can not begin with two slashes\n if (term.length > separatorPos + 1\n && term.charAt(separatorPos + 1) === '/'\n && term.charAt(separatorPos + 2) === '/') {\n return null;\n }\n const prefix = term.substr(0, separatorPos);\n // Prefix can not be an underscore (this is a blank node)\n if (prefix === '_') {\n return null;\n }\n // Prefix must match a term in the active context\n if (context[prefix]) {\n return prefix;\n }\n }\n return null;\n }\n /**\n * From a given context entry value, get the string value, or the @id field.\n * @param contextValue A value for a term in a context.\n * @return {string} The id value, or null.\n */\n static getContextValueId(contextValue) {\n if (contextValue === null || typeof contextValue === 'string') {\n return contextValue;\n }\n const id = contextValue['@id'];\n return id ? id : null;\n }\n /**\n * Check if the given simple term definition (string-based value of a context term)\n * should be considered a prefix.\n * @param value A simple term definition value.\n * @param options Options that define the way how expansion must be done.\n */\n static isSimpleTermDefinitionPrefix(value, options) {\n return !Util.isPotentialKeyword(value)\n && (options.allowPrefixNonGenDelims || (typeof value === 'string' && (value[0] === '_' || Util.isPrefixIriEndingWithGenDelim(value))));\n }\n /**\n * Check if the given keyword is of the keyword format \"@\"1*ALPHA.\n * @param {string} keyword A potential keyword.\n * @return {boolean} If the given keyword is of the keyword format.\n */\n static isPotentialKeyword(keyword) {\n return typeof keyword === 'string' && Util.KEYWORD_REGEX.test(keyword);\n }\n /**\n * Check if the given prefix ends with a gen-delim character.\n * @param {string} prefixIri A prefix IRI.\n * @return {boolean} If the given prefix IRI is valid.\n */\n static isPrefixIriEndingWithGenDelim(prefixIri) {\n return Util.ENDS_WITH_GEN_DELIM.test(prefixIri);\n }\n /**\n * Check if the given context value can be a prefix value.\n * @param value A context value.\n * @return {boolean} If it can be a prefix value.\n */\n static isPrefixValue(value) {\n return value && (typeof value === 'string' || (value && typeof value === 'object'));\n }\n /**\n * Check if the given IRI is valid.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIri(iri) {\n return Boolean(iri && Util.IRI_REGEX.test(iri));\n }\n /**\n * Check if the given IRI is valid, this includes the possibility of being a relative IRI.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIriWeak(iri) {\n return !!iri && iri[0] !== ':' && Util.IRI_REGEX_WEAK.test(iri);\n }\n /**\n * Check if the given keyword is a defined according to the JSON-LD specification.\n * @param {string} keyword A potential keyword.\n * @return {boolean} If the given keyword is valid.\n */\n static isValidKeyword(keyword) {\n return Util.VALID_KEYWORDS[keyword];\n }\n /**\n * Check if the given term is protected in the context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {string} key A context term.\n * @return {boolean} If the given term has an @protected flag.\n */\n static isTermProtected(context, key) {\n const value = context[key];\n return !(typeof value === 'string') && value && value['@protected'];\n }\n /**\n * Check if the given context has at least one protected term.\n * @param context A context.\n * @return If the context has a protected term.\n */\n static hasProtectedTerms(context) {\n for (const key of Object.keys(context)) {\n if (Util.isTermProtected(context, key)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Check if the given key is an internal reserved keyword.\n * @param key A context key.\n */\n static isReservedInternalKeyword(key) {\n return key.startsWith('@__');\n }\n /**\n * Check if two objects are deepEqual to on another.\n * @param object1 The first object to test.\n * @param object2 The second object to test.\n */\n static deepEqual(object1, object2) {\n const objKeys1 = Object.keys(object1);\n const objKeys2 = Object.keys(object2);\n if (objKeys1.length !== objKeys2.length)\n return false;\n return objKeys1.every((key) => {\n const value1 = object1[key];\n const value2 = object2[key];\n return (value1 === value2) || (value1 !== null &&\n value2 !== null &&\n typeof value1 === \"object\" &&\n typeof value2 === \"object\" &&\n this.deepEqual(value1, value2));\n });\n }\n ;\n}\n// Regex for valid IRIs\nUtil.IRI_REGEX = /^([A-Za-z][A-Za-z0-9+-.]*|_):[^ \"<>{}|\\\\\\[\\]`#]*(#[^#]*)?$/;\n// Weaker regex for valid IRIs, this includes relative IRIs\nUtil.IRI_REGEX_WEAK = /(?::[^:])|\\//;\n// Regex for keyword form\nUtil.KEYWORD_REGEX = /^@[a-z]+$/i;\n// Regex to see if an IRI ends with a gen-delim character (see RFC 3986)\nUtil.ENDS_WITH_GEN_DELIM = /[:/?#\\[\\]@]$/;\n// Regex for language tags\nUtil.REGEX_LANGUAGE_TAG = /^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/;\n// Regex for base directions\nUtil.REGEX_DIRECTION_TAG = /^(ltr)|(rtl)$/;\n// All known valid JSON-LD keywords\n// @see https://www.w3.org/TR/json-ld11/#keywords\nUtil.VALID_KEYWORDS = {\n '@annotation': true,\n '@base': true,\n '@container': true,\n '@context': true,\n '@direction': true,\n '@graph': true,\n '@id': true,\n '@import': true,\n '@included': true,\n '@index': true,\n '@json': true,\n '@language': true,\n '@list': true,\n '@nest': true,\n '@none': true,\n '@prefix': true,\n '@propagate': true,\n '@protected': true,\n '@reverse': true,\n '@set': true,\n '@type': true,\n '@value': true,\n '@version': true,\n '@vocab': true,\n};\n// Keys in the contexts that will not be expanded based on the base IRI\nUtil.EXPAND_KEYS_BLACKLIST = [\n '@base',\n '@vocab',\n '@language',\n '@version',\n '@direction',\n];\n// Keys in the contexts that may not be aliased from\nUtil.ALIAS_DOMAIN_BLACKLIST = [\n '@container',\n '@graph',\n '@id',\n '@index',\n '@list',\n '@nest',\n '@none',\n '@prefix',\n '@reverse',\n '@set',\n '@type',\n '@value',\n '@version',\n];\n// Keys in the contexts that may not be aliased to\nUtil.ALIAS_RANGE_BLACKLIST = [\n '@context',\n '@preserve',\n];\n// All valid @container values\nUtil.CONTAINERS = [\n '@list',\n '@set',\n '@index',\n '@language',\n '@graph',\n '@id',\n '@type',\n];\n// All valid @container values under processing mode 1.0\nUtil.CONTAINERS_1_0 = [\n '@list',\n '@set',\n '@index',\n];\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/JsonLdParser\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextTree = void 0;\n/**\n * A tree structure that holds all contexts,\n * based on their position in the JSON object.\n *\n * Positions are identified by a path of keys.\n */\nclass ContextTree {\n constructor() {\n this.subTrees = {};\n }\n getContext(keys) {\n if (keys.length > 0) {\n const [head, ...tail] = keys;\n const subTree = this.subTrees[head];\n if (subTree) {\n const subContext = subTree.getContext(tail);\n if (subContext) {\n return subContext.then(({ context, depth }) => ({ context, depth: depth + 1 }));\n }\n }\n }\n return this.context ? this.context.then((context) => ({ context, depth: 0 })) : null;\n }\n setContext(keys, context) {\n if (keys.length === 0) {\n this.context = context;\n }\n else {\n const [head, ...tail] = keys;\n let subTree = this.subTrees[head];\n if (!subTree) {\n subTree = this.subTrees[head] = new ContextTree();\n }\n subTree.setContext(tail, context);\n }\n }\n removeContext(path) {\n this.setContext(path, null);\n }\n}\nexports.ContextTree = ContextTree;\n//# sourceMappingURL=ContextTree.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonLdParser = void 0;\n// tslint:disable-next-line:no-var-requires\nconst Parser = require('@bergos/jsonparse');\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst EntryHandlerArrayValue_1 = require(\"./entryhandler/EntryHandlerArrayValue\");\nconst EntryHandlerContainer_1 = require(\"./entryhandler/EntryHandlerContainer\");\nconst EntryHandlerInvalidFallback_1 = require(\"./entryhandler/EntryHandlerInvalidFallback\");\nconst EntryHandlerPredicate_1 = require(\"./entryhandler/EntryHandlerPredicate\");\nconst EntryHandlerKeywordContext_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordContext\");\nconst EntryHandlerKeywordGraph_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordGraph\");\nconst EntryHandlerKeywordId_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordId\");\nconst EntryHandlerKeywordIncluded_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordIncluded\");\nconst EntryHandlerKeywordNest_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordNest\");\nconst EntryHandlerKeywordType_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordType\");\nconst EntryHandlerKeywordUnknownFallback_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordUnknownFallback\");\nconst EntryHandlerKeywordValue_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordValue\");\nconst ParsingContext_1 = require(\"./ParsingContext\");\nconst Util_1 = require(\"./Util\");\nconst http_link_header_1 = require(\"http-link-header\");\nconst EntryHandlerKeywordAnnotation_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordAnnotation\");\n/**\n * A stream transformer that parses JSON-LD (text) streams to an {@link RDF.Stream}.\n */\nclass JsonLdParser extends readable_stream_1.Transform {\n constructor(options) {\n super({ readableObjectMode: true });\n options = options || {};\n this.options = options;\n this.parsingContext = new ParsingContext_1.ParsingContext(Object.assign({ parser: this }, options));\n this.util = new Util_1.Util({ dataFactory: options.dataFactory, parsingContext: this.parsingContext });\n this.jsonParser = new Parser();\n this.contextJobs = [];\n this.typeJobs = [];\n this.contextAwaitingJobs = [];\n this.lastDepth = 0;\n this.lastKeys = [];\n this.lastOnValueJob = Promise.resolve();\n this.attachJsonParserListeners();\n this.on('end', () => {\n if (typeof this.jsonParser.mode !== 'undefined') {\n this.emit('error', new Error('Unclosed document'));\n }\n });\n }\n /**\n * Construct a JsonLdParser from the given HTTP response.\n *\n * This will throw an error if no valid JSON response is received\n * (application/ld+json, application/json, or something+json).\n *\n * For raw JSON responses, exactly one link header pointing to a JSON-LD context is required.\n *\n * This method is not responsible for handling redirects.\n *\n * @param baseIRI The URI of the received response.\n * @param mediaType The received content type.\n * @param headers Optional HTTP headers.\n * @param options Optional parser options.\n */\n static fromHttpResponse(baseIRI, mediaType, headers, options) {\n let context;\n let wellKnownMediaTypes = ['application/activity+json'];\n if (options && options.wellKnownMediaTypes) {\n wellKnownMediaTypes = options.wellKnownMediaTypes;\n }\n // Special cases when receiving something else than the JSON-LD media type or the wellKnownMediaTypes\n if (mediaType !== 'application/ld+json' && !wellKnownMediaTypes.includes(mediaType)) {\n // Only accept JSON or JSON extension types\n if (mediaType !== 'application/json' && !mediaType.endsWith('+json')) {\n throw new jsonld_context_parser_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n // We need exactly one JSON-LD context in the link header\n if (headers && headers.has('Link')) {\n headers.forEach((value, key) => {\n if (key === 'link') {\n const linkHeader = (0, http_link_header_1.parse)(value);\n for (const link of linkHeader.get('rel', 'http://www.w3.org/ns/json-ld#context')) {\n if (context) {\n throw new jsonld_context_parser_1.ErrorCoded('Multiple JSON-LD context link headers were found on ' + baseIRI, jsonld_context_parser_1.ERROR_CODES.MULTIPLE_CONTEXT_LINK_HEADERS);\n }\n context = link.uri;\n }\n }\n });\n }\n if (!context && !(options === null || options === void 0 ? void 0 : options.ignoreMissingContextLinkHeader)) {\n throw new jsonld_context_parser_1.ErrorCoded(`Missing context link header for media type ${mediaType} on ${baseIRI}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n }\n // Check if the streaming profile is present\n let streamingProfile;\n if (headers && headers.has('Content-Type')) {\n const contentType = headers.get('Content-Type');\n const match = /; *profile=([^\"]*)/.exec(contentType);\n if (match && match[1] === 'http://www.w3.org/ns/json-ld#streaming') {\n streamingProfile = true;\n }\n }\n return new JsonLdParser(Object.assign({ baseIRI,\n context,\n streamingProfile }, options ? options : {}));\n }\n /**\n * Parses the given text stream into a quad stream.\n * @param {NodeJS.EventEmitter} stream A text stream.\n * @return {RDF.Stream} A quad stream.\n */\n import(stream) {\n if ('pipe' in stream) {\n stream.on('error', (error) => parsed.emit('error', error));\n const parsed = stream.pipe(new JsonLdParser(this.options));\n return parsed;\n }\n else {\n const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n stream.on('error', (error) => parsed.emit('error', error));\n stream.on('data', (data) => output.push(data));\n stream.on('end', () => output.push(null));\n const parsed = output.pipe(new JsonLdParser(this.options));\n return parsed;\n }\n }\n _transform(chunk, encoding, callback) {\n this.jsonParser.write(chunk);\n this.lastOnValueJob\n .then(() => callback(), (error) => callback(error));\n }\n /**\n * Start a new job for parsing the given value.\n *\n * This will let the first valid {@link IEntryHandler} handle the entry.\n *\n * @param {any[]} keys The stack of keys.\n * @param value The value to parse.\n * @param {number} depth The depth to parse at.\n * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n * @return {Promise} A promise resolving when the job is done.\n */\n async newOnValueJob(keys, value, depth, lastDepthCheck) {\n let flushStacks = true;\n // When we go up the stack, emit all unidentified values\n // We need to do this before the new job, because the new job may require determined values from the flushed jobs.\n if (lastDepthCheck && depth < this.lastDepth) {\n // Check if we had any RDF lists that need to be terminated with an rdf:nil\n const listPointer = this.parsingContext.listPointerStack[this.lastDepth];\n if (listPointer) {\n // Terminate the list if the had at least one value\n if (listPointer.value) {\n this.push(this.util.dataFactory.quad(listPointer.value, this.util.rdfRest, this.util.rdfNil, this.util.getDefaultGraph()));\n }\n // Add the list id to the id stack, so it can be used higher up in the stack\n listPointer.listId.listHead = true;\n this.parsingContext.idStack[listPointer.listRootDepth + 1] = [listPointer.listId];\n this.parsingContext.listPointerStack.splice(this.lastDepth, 1);\n }\n // Flush the buffer for lastDepth\n // If the parent key is a special type of container, postpone flushing until that parent is handled.\n if (await EntryHandlerContainer_1.EntryHandlerContainer.isBufferableContainerHandler(this.parsingContext, this.lastKeys, this.lastDepth)) {\n this.parsingContext.pendingContainerFlushBuffers\n .push({ depth: this.lastDepth, keys: this.lastKeys.slice(0, this.lastKeys.length) });\n flushStacks = false;\n }\n else {\n await this.flushBuffer(this.lastDepth, this.lastKeys);\n }\n }\n const key = await this.util.unaliasKeyword(keys[depth], keys, depth);\n const parentKey = await this.util.unaliasKeywordParent(keys, depth);\n this.parsingContext.emittedStack[depth] = true;\n let handleKey = true;\n // Keywords inside @reverse is not allowed apart from @context\n if (jsonld_context_parser_1.Util.isValidKeyword(key) && parentKey === '@reverse' && key !== '@context') {\n this.emit('error', new jsonld_context_parser_1.ErrorCoded(`Found the @id '${value}' inside an @reverse property`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_MAP));\n }\n // Skip further processing if one of the parent nodes are invalid.\n // We use the validationStack to reuse validation results that were produced before with common key stacks.\n let inProperty = false;\n if (this.parsingContext.validationStack.length > 1) {\n inProperty = this.parsingContext.validationStack[this.parsingContext.validationStack.length - 1].property;\n }\n for (let i = Math.max(1, this.parsingContext.validationStack.length - 1); i < keys.length - 1; i++) {\n const validationResult = this.parsingContext.validationStack[i]\n || (this.parsingContext.validationStack[i] = await this.validateKey(keys.slice(0, i + 1), i, inProperty));\n if (!validationResult.valid) {\n this.parsingContext.emittedStack[depth] = false;\n handleKey = false;\n break;\n }\n else if (!inProperty && validationResult.property) {\n inProperty = true;\n }\n }\n // Skip further processing if this node is part of a literal\n if (await this.util.isLiteral(keys, depth)) {\n handleKey = false;\n }\n // Get handler\n if (handleKey) {\n for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n const testResult = await entryHandler.test(this.parsingContext, this.util, key, keys, depth);\n if (testResult) {\n // Pass processing over to the handler\n await entryHandler.handle(this.parsingContext, this.util, key, keys, value, depth, testResult);\n // Flag that this depth is processed\n if (entryHandler.isStackProcessor()) {\n this.parsingContext.processingStack[depth] = true;\n }\n break;\n }\n }\n }\n // Validate value indexes on the root.\n if (depth === 0 && Array.isArray(value)) {\n await this.util.validateValueIndexes(value);\n }\n // When we go up the stack, flush the old stack\n if (flushStacks && depth < this.lastDepth) {\n // Reset our stacks\n this.flushStacks(this.lastDepth);\n }\n this.lastDepth = depth;\n this.lastKeys = keys;\n // Clear the keyword cache at this depth, and everything underneath.\n this.parsingContext.unaliasedKeywordCacheStack.splice(depth - 1);\n }\n /**\n * Flush the processing stacks at the given depth.\n * @param {number} depth A depth.\n */\n flushStacks(depth) {\n this.parsingContext.processingStack.splice(depth, 1);\n this.parsingContext.processingType.splice(depth, 1);\n this.parsingContext.emittedStack.splice(depth, 1);\n this.parsingContext.idStack.splice(depth, 1);\n this.parsingContext.graphStack.splice(depth + 1, 1);\n this.parsingContext.graphContainerTermStack.splice(depth, 1);\n this.parsingContext.jsonLiteralStack.splice(depth, 1);\n this.parsingContext.validationStack.splice(depth - 1, 2);\n this.parsingContext.literalStack.splice(depth, this.parsingContext.literalStack.length - depth);\n this.parsingContext.annotationsBuffer.splice(depth, 1);\n // TODO: just like the literal stack, splice all other stack until the end as well?\n }\n /**\n * Flush buffers for the given depth.\n *\n * This should be called after the last entry at a given depth was processed.\n *\n * @param {number} depth A depth.\n * @param {any[]} keys A stack of keys.\n * @return {Promise} A promise resolving if flushing is done.\n */\n async flushBuffer(depth, keys) {\n let subjects = this.parsingContext.idStack[depth];\n const subjectsWasDefined = !!subjects;\n if (!subjectsWasDefined) {\n subjects = this.parsingContext.idStack[depth] = [this.util.dataFactory.blankNode()];\n }\n // Flush values at this level\n const valueBuffer = this.parsingContext.unidentifiedValuesBuffer[depth];\n if (valueBuffer) {\n for (const subject of subjects) {\n const depthOffsetGraph = await this.util.getDepthOffsetGraph(depth, keys);\n const graphs = (this.parsingContext.graphStack[depth] || depthOffsetGraph >= 0)\n ? this.parsingContext.idStack[depth - depthOffsetGraph - 1]\n : [await this.util.getGraphContainerValue(keys, depth)];\n if (graphs) {\n for (const graph of graphs) {\n // Flush values to stream if the graph @id is known\n this.parsingContext.emittedStack[depth] = true;\n for (const bufferedValue of valueBuffer) {\n this.util.emitQuadChecked(depth, subject, bufferedValue.predicate, bufferedValue.object, graph, bufferedValue.reverse, bufferedValue.isEmbedded);\n }\n }\n }\n else {\n // Place the values in the graphs buffer if the graph @id is not yet known\n const subGraphBuffer = this.parsingContext.getUnidentifiedGraphBufferSafe(depth - await this.util.getDepthOffsetGraph(depth, keys) - 1);\n for (const bufferedValue of valueBuffer) {\n if (bufferedValue.reverse) {\n subGraphBuffer.push({\n object: subject,\n predicate: bufferedValue.predicate,\n subject: bufferedValue.object,\n isEmbedded: bufferedValue.isEmbedded,\n });\n }\n else {\n subGraphBuffer.push({\n object: bufferedValue.object,\n predicate: bufferedValue.predicate,\n subject,\n isEmbedded: bufferedValue.isEmbedded,\n });\n }\n }\n }\n }\n this.parsingContext.unidentifiedValuesBuffer.splice(depth, 1);\n this.parsingContext.literalStack.splice(depth, 1);\n this.parsingContext.jsonLiteralStack.splice(depth, 1);\n }\n // Flush graphs at this level\n const graphBuffer = this.parsingContext.unidentifiedGraphsBuffer[depth];\n if (graphBuffer) {\n for (const subject of subjects) {\n // A @graph statement at the root without @id relates to the default graph,\n // unless there are top-level properties,\n // others relate to blank nodes.\n const graph = depth === 1 && subject.termType === 'BlankNode'\n && !this.parsingContext.topLevelProperties ? this.util.getDefaultGraph() : subject;\n this.parsingContext.emittedStack[depth] = true;\n for (const bufferedValue of graphBuffer) {\n this.parsingContext.emitQuad(depth, this.util.dataFactory.quad(bufferedValue.subject, bufferedValue.predicate, bufferedValue.object, graph));\n }\n }\n this.parsingContext.unidentifiedGraphsBuffer.splice(depth, 1);\n }\n // Push unhandled annotations up the stack as nested annotations\n const annotationsBuffer = this.parsingContext.annotationsBuffer[depth];\n if (annotationsBuffer) {\n // Throw an error if we reach the top, and still have annotations\n if (annotationsBuffer.length > 0 && depth === 1) {\n this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Annotations can not be made on top-level nodes`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Pass the annotations buffer up one level in the stack\n const annotationsBufferParent = this.parsingContext.getAnnotationsBufferSafe(depth - 1);\n for (const annotation of annotationsBuffer) {\n annotationsBufferParent.push(annotation);\n }\n delete this.parsingContext.annotationsBuffer[depth];\n }\n }\n /**\n * Check if at least one {@link IEntryHandler} validates the entry to true.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth A depth.\n * @param {boolean} inProperty If the current depth is part of a valid property node.\n * @return {Promise<{ valid: boolean, property: boolean }>} A promise resolving to true or false.\n */\n async validateKey(keys, depth, inProperty) {\n for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n if (await entryHandler.validate(this.parsingContext, this.util, keys, depth, inProperty)) {\n return { valid: true, property: inProperty || entryHandler.isPropertyHandler() };\n }\n }\n return { valid: false, property: false };\n }\n /**\n * Attach all required listeners to the JSON parser.\n *\n * This should only be called once.\n */\n attachJsonParserListeners() {\n // Listen to json parser events\n this.jsonParser.onValue = (value) => {\n const depth = this.jsonParser.stack.length;\n const keys = (new Array(depth + 1).fill(0)).map((v, i) => {\n return i === depth ? this.jsonParser.key : this.jsonParser.stack[i].key;\n });\n if (!this.isParsingContextInner(depth)) { // Don't parse inner nodes inside @context\n const valueJobCb = () => this.newOnValueJob(keys, value, depth, true);\n if (!this.parsingContext.streamingProfile\n && !this.parsingContext.contextTree.getContext(keys.slice(0, -1))) {\n // If an out-of-order context is allowed,\n // we have to buffer everything.\n // We store jobs for @context's and @type's separately,\n // because at the end, we have to process them first.\n // We also handle @type because these *could* introduce a type-scoped context.\n if (keys[depth] === '@context') {\n let jobs = this.contextJobs[depth];\n if (!jobs) {\n jobs = this.contextJobs[depth] = [];\n }\n jobs.push(valueJobCb);\n }\n else {\n this.contextAwaitingJobs.push({ job: valueJobCb, keys, depth });\n }\n }\n else {\n // Make sure that our value jobs are chained synchronously\n this.lastOnValueJob = this.lastOnValueJob.then(valueJobCb);\n }\n // Execute all buffered jobs on deeper levels\n if (!this.parsingContext.streamingProfile && depth === 0) {\n this.lastOnValueJob = this.lastOnValueJob\n .then(() => this.executeBufferedJobs());\n }\n }\n };\n this.jsonParser.onError = (error) => {\n this.emit('error', error);\n };\n }\n /**\n * Check if the parser is currently parsing an element that is part of an @context entry.\n * @param {number} depth A depth.\n * @return {boolean} A boolean.\n */\n isParsingContextInner(depth) {\n for (let i = depth; i > 0; i--) {\n if (this.jsonParser.stack[i - 1].key === '@context') {\n return true;\n }\n }\n return false;\n }\n /**\n * Execute all buffered jobs.\n * @return {Promise} A promise resolving if all jobs are finished.\n */\n async executeBufferedJobs() {\n // Handle context jobs\n for (const jobs of this.contextJobs) {\n if (jobs) {\n for (const job of jobs) {\n await job();\n }\n }\n }\n // Clear the keyword cache.\n this.parsingContext.unaliasedKeywordCacheStack.splice(0);\n const contextAwaitingJobs = [];\n for (const job of this.contextAwaitingJobs) {\n if ((await this.util.unaliasKeyword(job.keys[job.depth], job.keys, job.depth, true)) === '@type'\n || typeof job.keys[job.depth] === 'number' && (await this.util.unaliasKeyword(job.keys[job.depth - 1], job.keys, job.depth - 1, true)) === '@type') { // Also capture @type with array values\n // Remove @type from keys, because we want it to apply to parent later on\n this.typeJobs.push({ job: job.job, keys: job.keys.slice(0, job.keys.length - 1) });\n }\n else {\n contextAwaitingJobs.push(job);\n }\n }\n // Handle non-context jobs\n for (const job of contextAwaitingJobs) {\n // Check if we have a type (with possible type-scoped context) that should be handled before.\n // We check all possible parent nodes for the current job, from root to leaves.\n if (this.typeJobs.length > 0) {\n // First collect all applicable type jobs\n const applicableTypeJobs = [];\n const applicableTypeJobIds = [];\n for (let i = 0; i < this.typeJobs.length; i++) {\n const typeJob = this.typeJobs[i];\n if (Util_1.Util.isPrefixArray(typeJob.keys, job.keys)) {\n applicableTypeJobs.push(typeJob);\n applicableTypeJobIds.push(i);\n }\n }\n // Next, sort the jobs from short to long key length (to ensure types higher up in the tree to be handled first)\n const sortedTypeJobs = applicableTypeJobs.sort((job1, job2) => job1.keys.length - job2.keys.length);\n // Finally, execute the jobs in order\n for (const typeJob of sortedTypeJobs) {\n await typeJob.job();\n }\n // Remove the executed type jobs\n // Sort first, so we can efficiently splice\n const sortedApplicableTypeJobIds = applicableTypeJobIds.sort().reverse();\n for (const jobId of sortedApplicableTypeJobIds) {\n this.typeJobs.splice(jobId, 1);\n }\n }\n await job.job();\n }\n }\n}\nJsonLdParser.DEFAULT_PROCESSING_MODE = '1.1';\nJsonLdParser.ENTRY_HANDLERS = [\n new EntryHandlerArrayValue_1.EntryHandlerArrayValue(),\n new EntryHandlerKeywordContext_1.EntryHandlerKeywordContext(),\n new EntryHandlerKeywordId_1.EntryHandlerKeywordId(),\n new EntryHandlerKeywordIncluded_1.EntryHandlerKeywordIncluded(),\n new EntryHandlerKeywordGraph_1.EntryHandlerKeywordGraph(),\n new EntryHandlerKeywordNest_1.EntryHandlerKeywordNest(),\n new EntryHandlerKeywordType_1.EntryHandlerKeywordType(),\n new EntryHandlerKeywordValue_1.EntryHandlerKeywordValue(),\n new EntryHandlerKeywordAnnotation_1.EntryHandlerKeywordAnnotation(),\n new EntryHandlerContainer_1.EntryHandlerContainer(),\n new EntryHandlerKeywordUnknownFallback_1.EntryHandlerKeywordUnknownFallback(),\n new EntryHandlerPredicate_1.EntryHandlerPredicate(),\n new EntryHandlerInvalidFallback_1.EntryHandlerInvalidFallback(),\n];\nexports.JsonLdParser = JsonLdParser;\n//# sourceMappingURL=JsonLdParser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParsingContext = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst ErrorCoded_1 = require(\"jsonld-context-parser/lib/ErrorCoded\");\nconst ContextTree_1 = require(\"./ContextTree\");\nconst JsonLdParser_1 = require(\"./JsonLdParser\");\n/**\n * Data holder for parsing information.\n */\nclass ParsingContext {\n constructor(options) {\n // Initialize settings\n this.contextParser = new jsonld_context_parser_1.ContextParser({ documentLoader: options.documentLoader, skipValidation: options.skipContextValidation });\n this.streamingProfile = !!options.streamingProfile;\n this.baseIRI = options.baseIRI;\n this.produceGeneralizedRdf = !!options.produceGeneralizedRdf;\n this.allowSubjectList = !!options.allowSubjectList;\n this.processingMode = options.processingMode || JsonLdParser_1.JsonLdParser.DEFAULT_PROCESSING_MODE;\n this.strictValues = !!options.strictValues;\n this.validateValueIndexes = !!options.validateValueIndexes;\n this.defaultGraph = options.defaultGraph;\n this.rdfDirection = options.rdfDirection;\n this.normalizeLanguageTags = options.normalizeLanguageTags;\n this.streamingProfileAllowOutOfOrderPlainType = options.streamingProfileAllowOutOfOrderPlainType;\n this.rdfstar = options.rdfstar !== false;\n this.rdfstarReverseInEmbedded = options.rdfstarReverseInEmbedded;\n this.topLevelProperties = false;\n this.activeProcessingMode = parseFloat(this.processingMode);\n // Initialize stacks\n this.processingStack = [];\n this.processingType = [];\n this.emittedStack = [];\n this.idStack = [];\n this.graphStack = [];\n this.graphContainerTermStack = [];\n this.listPointerStack = [];\n this.contextTree = new ContextTree_1.ContextTree();\n this.literalStack = [];\n this.validationStack = [];\n this.unaliasedKeywordCacheStack = [];\n this.jsonLiteralStack = [];\n this.unidentifiedValuesBuffer = [];\n this.unidentifiedGraphsBuffer = [];\n this.annotationsBuffer = [];\n this.pendingContainerFlushBuffers = [];\n this.parser = options.parser;\n if (options.context) {\n this.rootContext = this.parseContext(options.context);\n this.rootContext.then((context) => this.validateContext(context));\n }\n else {\n this.rootContext = Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(this.baseIRI ? { '@base': this.baseIRI, '@__baseDocument': true } : {}));\n }\n }\n /**\n * Parse the given context with the configured options.\n * @param {JsonLdContext} context A context to parse.\n * @param {JsonLdContextNormalized} parentContext An optional parent context.\n * @param {boolean} ignoreProtection If @protected term checks should be ignored.\n * @return {Promise} A promise resolving to the parsed context.\n */\n async parseContext(context, parentContext, ignoreProtection) {\n return this.contextParser.parse(context, {\n baseIRI: this.baseIRI,\n ignoreProtection,\n normalizeLanguageTags: this.normalizeLanguageTags,\n parentContext,\n processingMode: this.activeProcessingMode,\n });\n }\n /**\n * Check if the given context is valid.\n * If not, an error will be thrown.\n * @param {JsonLdContextNormalized} context A context.\n */\n validateContext(context) {\n const activeVersion = context.getContextRaw()['@version'];\n if (activeVersion) {\n if (this.activeProcessingMode && activeVersion > this.activeProcessingMode) {\n throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD version '${activeVersion}' under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.PROCESSING_MODE_CONFLICT);\n }\n else {\n if (this.activeProcessingMode && activeVersion < this.activeProcessingMode) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid JSON-LD version ${activeVersion} under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n }\n this.activeProcessingMode = activeVersion;\n }\n }\n }\n /**\n * Get the context at the given path.\n * @param {keys} keys The path of keys to get the context at.\n * @param {number} offset The path offset, defaults to 1.\n * @return {Promise} A promise resolving to a context.\n */\n async getContext(keys, offset = 1) {\n const keysOriginal = keys;\n // Ignore array keys at the end\n while (typeof keys[keys.length - 1] === 'number') {\n keys = keys.slice(0, keys.length - 1);\n }\n // Handle offset on keys\n if (offset) {\n keys = keys.slice(0, -offset);\n }\n // Determine the closest context\n const contextData = await this.getContextPropagationAware(keys);\n const context = contextData.context;\n // Process property-scoped contexts (high-to-low)\n let contextRaw = context.getContextRaw();\n for (let i = contextData.depth; i < keysOriginal.length - offset; i++) {\n const key = keysOriginal[i];\n const contextKeyEntry = contextRaw[key];\n if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n const scopedContext = (await this.parseContext(contextKeyEntry, contextRaw, true)).getContextRaw();\n const propagate = !(key in scopedContext)\n || scopedContext[key]['@context']['@propagate']; // Propagation is true by default\n if (propagate !== false || i === keysOriginal.length - 1 - offset) {\n contextRaw = Object.assign({}, scopedContext);\n // Clean up final context\n delete contextRaw['@propagate'];\n contextRaw[key] = Object.assign({}, contextRaw[key]);\n if ('@id' in contextKeyEntry) {\n contextRaw[key]['@id'] = contextKeyEntry['@id'];\n }\n delete contextRaw[key]['@context'];\n if (propagate !== false) {\n this.contextTree.setContext(keysOriginal.slice(0, i + offset), Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw)));\n }\n }\n }\n }\n return new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw);\n }\n /**\n * Get the context at the given path.\n * Non-propagating contexts will be skipped,\n * unless the context at that exact depth is retrieved.\n *\n * This ONLY takes into account context propagation logic,\n * so this should usually not be called directly,\n * call {@link #getContext} instead.\n *\n * @param keys The path of keys to get the context at.\n * @return {Promise<{ context: JsonLdContextNormalized, depth: number }>} A context and its depth.\n */\n async getContextPropagationAware(keys) {\n const originalDepth = keys.length;\n let contextData = null;\n let hasApplicablePropertyScopedContext;\n do {\n hasApplicablePropertyScopedContext = false;\n if (contextData && '@__propagateFallback' in contextData.context.getContextRaw()) {\n // If a propagation fallback context has been set,\n // fallback to that context and retry for the same depth.\n contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized(contextData.context.getContextRaw()['@__propagateFallback']);\n }\n else {\n if (contextData) {\n // If we had a previous iteration, jump to the parent of context depth.\n // We must do this because once we get here, last context had propagation disabled,\n // so we check its first parent instead.\n keys = keys.slice(0, contextData.depth - 1);\n }\n contextData = await this.contextTree.getContext(keys) || { context: await this.rootContext, depth: 0 };\n }\n // Allow non-propagating contexts to propagate one level deeper\n // if it defines a property-scoped context that is applicable for the current key.\n // @see https://w3c.github.io/json-ld-api/tests/toRdf-manifest#tc012\n const lastKey = keys[keys.length - 1];\n if (lastKey in contextData.context.getContextRaw()) {\n const lastKeyValue = contextData.context.getContextRaw()[lastKey];\n if (lastKeyValue && typeof lastKeyValue === 'object' && '@context' in lastKeyValue) {\n hasApplicablePropertyScopedContext = true;\n }\n }\n } while (contextData.depth > 0 // Root context has a special case\n && contextData.context.getContextRaw()['@propagate'] === false // Stop loop if propagation is true\n && contextData.depth !== originalDepth // Stop loop if requesting exact depth of non-propagating\n && !hasApplicablePropertyScopedContext);\n // Special case for root context that does not allow propagation.\n // Fallback to empty context in that case.\n if (contextData.depth === 0\n && contextData.context.getContextRaw()['@propagate'] === false\n && contextData.depth !== originalDepth) {\n contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized({});\n }\n return contextData;\n }\n /**\n * Start a new job for parsing the given value.\n * @param {any[]} keys The stack of keys.\n * @param value The value to parse.\n * @param {number} depth The depth to parse at.\n * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n * @return {Promise} A promise resolving when the job is done.\n */\n async newOnValueJob(keys, value, depth, lastDepthCheck) {\n await this.parser.newOnValueJob(keys, value, depth, lastDepthCheck);\n }\n /**\n * Flush the pending container flush buffers\n * @return {boolean} If any pending buffers were flushed.\n */\n async handlePendingContainerFlushBuffers() {\n if (this.pendingContainerFlushBuffers.length > 0) {\n for (const pendingFlushBuffer of this.pendingContainerFlushBuffers) {\n await this.parser.flushBuffer(pendingFlushBuffer.depth, pendingFlushBuffer.keys);\n this.parser.flushStacks(pendingFlushBuffer.depth);\n }\n this.pendingContainerFlushBuffers.splice(0, this.pendingContainerFlushBuffers.length);\n return true;\n }\n else {\n return false;\n }\n }\n /**\n * Emit the given quad into the output stream.\n * @param {number} depth The depth the quad was generated at.\n * @param {Quad} quad A quad to emit.\n */\n emitQuad(depth, quad) {\n if (depth === 1) {\n this.topLevelProperties = true;\n }\n this.parser.push(quad);\n }\n /**\n * Emit the given error into the output stream.\n * @param {Error} error An error to emit.\n */\n emitError(error) {\n this.parser.emit('error', error);\n }\n /**\n * Emit the given context into the output stream under the 'context' event.\n * @param {JsonLdContext} context A context to emit.\n */\n emitContext(context) {\n this.parser.emit('context', context);\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.unidentifiedValuesBuffer}.\n * @param {number} depth A depth.\n * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n * {@link ParsingContext.unidentifiedValuesBuffer}.\n */\n getUnidentifiedValueBufferSafe(depth) {\n let buffer = this.unidentifiedValuesBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.unidentifiedValuesBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.unidentifiedGraphsBuffer}.\n * @param {number} depth A depth.\n * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n * {@link ParsingContext.unidentifiedGraphsBuffer}.\n */\n getUnidentifiedGraphBufferSafe(depth) {\n let buffer = this.unidentifiedGraphsBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.unidentifiedGraphsBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.annotationsBuffer}.\n * @param {number} depth A depth.\n * @return {} An element of {@link ParsingContext.annotationsBuffer}.\n */\n getAnnotationsBufferSafe(depth) {\n let buffer = this.annotationsBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.annotationsBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * @return IExpandOptions The expand options for the active processing mode.\n */\n getExpandOptions() {\n return ParsingContext.EXPAND_OPTIONS[this.activeProcessingMode];\n }\n /**\n * Shift the stack at the given offset to the given depth.\n *\n * This will override anything in the stack at `depth`,\n * and this will remove anything at `depth + depthOffset`\n *\n * @param depth The target depth.\n * @param depthOffset The origin depth, relative to `depth`.\n */\n shiftStack(depth, depthOffset) {\n // Copy the id stack value up one level so that the next job can access the id.\n const deeperIdStack = this.idStack[depth + depthOffset];\n if (deeperIdStack) {\n this.idStack[depth] = deeperIdStack;\n this.emittedStack[depth] = true;\n delete this.idStack[depth + depthOffset];\n }\n // Shorten key stack\n if (this.pendingContainerFlushBuffers.length) {\n for (const buffer of this.pendingContainerFlushBuffers) {\n if (buffer.depth >= depth + depthOffset) {\n buffer.depth -= depthOffset;\n buffer.keys.splice(depth, depthOffset);\n }\n }\n }\n // Splice stacks\n if (this.unidentifiedValuesBuffer[depth + depthOffset]) {\n this.unidentifiedValuesBuffer[depth] = this.unidentifiedValuesBuffer[depth + depthOffset];\n delete this.unidentifiedValuesBuffer[depth + depthOffset];\n }\n if (this.annotationsBuffer[depth + depthOffset - 1]) {\n if (!this.annotationsBuffer[depth - 1]) {\n this.annotationsBuffer[depth - 1] = [];\n }\n this.annotationsBuffer[depth - 1] = [\n ...this.annotationsBuffer[depth - 1],\n ...this.annotationsBuffer[depth + depthOffset - 1],\n ];\n delete this.annotationsBuffer[depth + depthOffset - 1];\n }\n // TODO: also do the same for other stacks\n }\n}\nParsingContext.EXPAND_OPTIONS = {\n 1.0: {\n allowPrefixForcing: false,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: false,\n },\n 1.1: {\n allowPrefixForcing: true,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: true,\n },\n};\nexports.ParsingContext = ParsingContext;\n//# sourceMappingURL=ParsingContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst EntryHandlerContainer_1 = require(\"./entryhandler/EntryHandlerContainer\");\n// tslint:disable-next-line:no-var-requires\nconst canonicalizeJson = require('canonicalize');\n/**\n * Utility functions and methods.\n */\nclass Util {\n constructor(options) {\n this.parsingContext = options.parsingContext;\n this.dataFactory = options.dataFactory || new rdf_data_factory_1.DataFactory();\n this.rdfFirst = this.dataFactory.namedNode(Util.RDF + 'first');\n this.rdfRest = this.dataFactory.namedNode(Util.RDF + 'rest');\n this.rdfNil = this.dataFactory.namedNode(Util.RDF + 'nil');\n this.rdfType = this.dataFactory.namedNode(Util.RDF + 'type');\n this.rdfJson = this.dataFactory.namedNode(Util.RDF + 'JSON');\n }\n /**\n * Helper function to get the value of a context entry,\n * or fallback to a certain value.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} contextKey A pre-defined JSON-LD key in context entries.\n * @param {string} key A context entry key.\n * @param {string} fallback A fallback value for when the given contextKey\n * could not be found in the value with the given key.\n * @return {string} The value of the given contextKey in the entry behind key in the given context,\n * or the given fallback value.\n */\n static getContextValue(context, contextKey, key, fallback) {\n const entry = context.getContextRaw()[key];\n if (!entry) {\n return fallback;\n }\n const type = entry[contextKey];\n return type === undefined ? fallback : type;\n }\n /**\n * Get the container type of the given key in the context.\n *\n * Should any context-scoping bugs should occur related to this in the future,\n * it may be required to increase the offset from the depth at which the context is retrieved by one (to 2).\n * This is because containers act 2 levels deep.\n *\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The container type.\n */\n static getContextValueContainer(context, key) {\n return Util.getContextValue(context, '@container', key, { '@set': true });\n }\n /**\n * Get the value type of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueType(context, key) {\n const valueType = Util.getContextValue(context, '@type', key, null);\n if (valueType === '@none') {\n return null;\n }\n return valueType;\n }\n /**\n * Get the language of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueLanguage(context, key) {\n return Util.getContextValue(context, '@language', key, context.getContextRaw()['@language'] || null);\n }\n /**\n * Get the direction of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueDirection(context, key) {\n return Util.getContextValue(context, '@direction', key, context.getContextRaw()['@direction'] || null);\n }\n /**\n * Check if the given key in the context is a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {boolean} If the context value has a @reverse key.\n */\n static isContextValueReverse(context, key) {\n return !!Util.getContextValue(context, '@reverse', key, null);\n }\n /**\n * Get the @index of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The index.\n */\n static getContextValueIndex(context, key) {\n return Util.getContextValue(context, '@index', key, context.getContextRaw()['@index'] || null);\n }\n /**\n * Check if the given key refers to a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The property key.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property must be reversed.\n */\n static isPropertyReverse(context, key, parentKey) {\n // '!==' is needed because reversed properties in a @reverse container should cancel each other out.\n return parentKey === '@reverse' !== Util.isContextValueReverse(context, key);\n }\n /**\n * Check if the given key exists inside an embedded node as direct child.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property is embedded.\n */\n static isPropertyInEmbeddedNode(parentKey) {\n return parentKey === '@id';\n }\n /**\n * Check if the given key exists inside an annotation object as direct child.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property is an annotation.\n */\n static isPropertyInAnnotationObject(parentKey) {\n return parentKey === '@annotation';\n }\n /**\n * Check if the given IRI is valid.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIri(iri) {\n return iri !== null && jsonld_context_parser_1.Util.isValidIri(iri);\n }\n /**\n * Check if the given first array (needle) is a prefix of the given second array (haystack).\n * @param needle An array to check if it is a prefix.\n * @param haystack An array to look in.\n */\n static isPrefixArray(needle, haystack) {\n if (needle.length > haystack.length) {\n return false;\n }\n for (let i = 0; i < needle.length; i++) {\n if (needle[i] !== haystack[i]) {\n return false;\n }\n }\n return true;\n }\n /**\n * Make sure that @id-@index pairs are equal over all array values.\n * Reject otherwise.\n * @param {any[]} value An array value.\n * @return {Promise} A promise rejecting if conflicts are present.\n */\n async validateValueIndexes(value) {\n if (this.parsingContext.validateValueIndexes) {\n const indexHashes = {};\n for (const entry of value) {\n if (entry && typeof entry === 'object') {\n const id = entry['@id'];\n const index = entry['@index'];\n if (id && index) {\n const existingIndexValue = indexHashes[id];\n if (existingIndexValue && existingIndexValue !== index) {\n throw new jsonld_context_parser_1.ErrorCoded(`Conflicting @index value for ${id}`, jsonld_context_parser_1.ERROR_CODES.CONFLICTING_INDEXES);\n }\n indexHashes[id] = index;\n }\n }\n }\n }\n }\n /**\n * Convert a given JSON value to an RDF term.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param value A JSON value.\n * @param {number} depth The depth the value is at.\n * @param {string[]} keys The path of keys.\n * @return {Promise} An RDF term array.\n */\n async valueToTerm(context, key, value, depth, keys) {\n // Skip further processing if we have an @type: @json\n if (Util.getContextValueType(context, key) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(value), this.rdfJson)];\n }\n const type = typeof value;\n switch (type) {\n case 'object':\n // Skip if we have a null or undefined object\n if (value === null || value === undefined) {\n return [];\n }\n // Special case for arrays\n if (Array.isArray(value)) {\n // We handle arrays at value level so we can emit earlier, so this is handled already when we get here.\n // Empty context-based lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if ('@list' in Util.getContextValueContainer(context, key)) {\n if (value.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n await this.validateValueIndexes(value);\n return [];\n }\n // Handle property-scoped contexts\n context = await this.getContextSelfOrPropertyScoped(context, key);\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], (await this.parsingContext.getContext(keys, 0)).getContextRaw());\n }\n // In all other cases, we have a hash\n value = await this.unaliasKeywords(value, keys, depth, context); // Un-alias potential keywords in this hash\n if ('@value' in value) {\n let val;\n let valueLanguage;\n let valueDirection;\n let valueType;\n let valueIndex; // We don't use the index, but we need to check its type for spec-compliance\n for (key in value) {\n const subValue = value[key];\n switch (key) {\n case '@value':\n val = subValue;\n break;\n case '@language':\n valueLanguage = subValue;\n break;\n case '@direction':\n valueDirection = subValue;\n break;\n case '@type':\n valueType = subValue;\n break;\n case '@index':\n valueIndex = subValue;\n break;\n case '@annotation':\n // This keyword is allowed, but is processed like normal nodes\n break;\n default:\n throw new jsonld_context_parser_1.ErrorCoded(`Unknown value entry '${key}' in @value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n }\n // Skip further processing if we have an @type: @json\n if (await this.unaliasKeyword(valueType, keys, depth, true, context) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(val), this.rdfJson)];\n }\n // Validate @value\n if (val === null) {\n return [];\n }\n if (typeof val === 'object') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@value' can not be an object, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT_VALUE);\n }\n // Validate @index\n if (this.parsingContext.validateValueIndexes && valueIndex && typeof valueIndex !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@index' must be a string, got '${JSON.stringify(valueIndex)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE);\n }\n // Validate @language and @direction\n if (valueLanguage) {\n if (typeof val !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`When an '@language' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_VALUE);\n }\n if (!jsonld_context_parser_1.ContextParser.validateLanguage(valueLanguage, this.parsingContext.strictValues, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_STRING)) {\n return [];\n }\n // Language tags are always normalized to lowercase in 1.0.\n if (this.parsingContext.normalizeLanguageTags || this.parsingContext.activeProcessingMode === 1.0) {\n valueLanguage = valueLanguage.toLowerCase();\n }\n }\n if (valueDirection) {\n if (typeof val !== 'string') {\n throw new Error(`When an '@direction' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`);\n }\n if (!jsonld_context_parser_1.ContextParser.validateDirection(valueDirection, this.parsingContext.strictValues)) {\n return [];\n }\n }\n // Check @language and @direction\n if (valueLanguage && valueDirection && this.parsingContext.rdfDirection) {\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have '@language', '@direction' and '@type' in a value: '${JSON\n .stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueLanguage) { // Check @language\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@language' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return [this.dataFactory.literal(val, valueLanguage)];\n }\n else if (valueDirection && this.parsingContext.rdfDirection) { // Check @direction\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@direction' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueType) { // Validate @type\n if (typeof valueType !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n const typeTerm = this.createVocabOrBaseTerm(context, valueType);\n if (!typeTerm) {\n throw new jsonld_context_parser_1.ErrorCoded(`Invalid '@type' value, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n if (typeTerm.termType !== 'NamedNode') {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal value type (${typeTerm.termType}): ${valueType}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n return [this.dataFactory.literal(val, typeTerm)];\n }\n // We don't pass the context, because context-based things like @language should be ignored\n return await this.valueToTerm(new jsonld_context_parser_1.JsonLdContextNormalized({}), key, val, depth, keys);\n }\n else if ('@set' in value) {\n // No other entries are allow in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n // No need to do anything here, this is handled at the deeper level.\n return [];\n }\n else if ('@list' in value) {\n // No other entries are allowed in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n const listValue = value[\"@list\"];\n // We handle lists at value level so we can emit earlier, so this is handled already when we get here.\n // Empty anonymous lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if (Array.isArray(listValue)) {\n if (listValue.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n else {\n // We only have a single list element here, so emit this directly as single element\n return await this.valueToTerm(await this.parsingContext.getContext(keys), key, listValue, depth - 1, keys.slice(0, -1));\n }\n }\n else if ('@reverse' in value && typeof value['@reverse'] === 'boolean') {\n // We handle reverse properties at value level so we can emit earlier,\n // so this is handled already when we get here.\n return [];\n }\n else if ('@graph' in Util.getContextValueContainer(await this.parsingContext.getContext(keys), key)) {\n // We are processing a graph container\n const graphContainerEntries = this.parsingContext.graphContainerTermStack[depth + 1];\n return graphContainerEntries ? Object.values(graphContainerEntries) : [this.dataFactory.blankNode()];\n }\n else if (\"@id\" in value) {\n // Use deeper context if the value node contains other properties next to @id.\n if (Object.keys(value).length > 1) {\n context = await this.parsingContext.getContext(keys, 0);\n }\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], context.getContextRaw());\n }\n if (value[\"@type\"] === '@vocab') {\n return this.nullableTermToArray(this.createVocabOrBaseTerm(context, value[\"@id\"]));\n }\n else {\n const valueId = value[\"@id\"];\n let valueTerm;\n if (typeof valueId === 'object') {\n if (this.parsingContext.rdfstar) {\n valueTerm = this.parsingContext.idStack[depth + 1][0];\n }\n else {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal @id '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_ID_VALUE);\n }\n }\n else {\n valueTerm = this.resourceToTerm(context, valueId);\n }\n return this.nullableTermToArray(valueTerm);\n }\n }\n else {\n // Only make a blank node if at least one triple was emitted at the value's level.\n if (this.parsingContext.emittedStack[depth + 1]\n || (value && typeof value === 'object' && Object.keys(value).length === 0)) {\n return (this.parsingContext.idStack[depth + 1]\n || (this.parsingContext.idStack[depth + 1] = [this.dataFactory.blankNode()]));\n }\n else {\n return [];\n }\n }\n case 'string':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, null));\n case 'boolean':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, Boolean(value).toString(), this.dataFactory.namedNode(Util.XSD_BOOLEAN)));\n case 'number':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, this.dataFactory.namedNode(value % 1 === 0 && value < 1e21 ? Util.XSD_INTEGER : Util.XSD_DOUBLE)));\n default:\n this.parsingContext.emitError(new Error(`Could not determine the RDF type of a ${type}`));\n return [];\n }\n }\n /**\n * If the context defines a property-scoped context for the given key,\n * that context will be returned.\n * Otherwise, the given context will be returned as-is.\n *\n * This should be used for valueToTerm cases that are not objects.\n * @param context A context.\n * @param key A JSON key.\n */\n async getContextSelfOrPropertyScoped(context, key) {\n const contextKeyEntry = context.getContextRaw()[key];\n if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n context = await this.parsingContext.parseContext(contextKeyEntry, context.getContextRaw(), true);\n }\n return context;\n }\n /**\n * If the given term is null, return an empty array, otherwise return an array with the single given term.\n * @param term A term.\n */\n nullableTermToArray(term) {\n return term ? [term] : [];\n }\n /**\n * Convert a given JSON key to an RDF predicate term,\n * based on @vocab.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node.\n */\n predicateToTerm(context, key) {\n const expanded = context.expandTerm(key, true, this.parsingContext.getExpandOptions());\n // Immediately return if the predicate was disabled in the context\n if (!expanded) {\n return null;\n }\n // Check if the predicate is a blank node\n if (expanded[0] === '_' && expanded[1] === ':') {\n if (this.parsingContext.produceGeneralizedRdf) {\n return this.dataFactory.blankNode(expanded.substr(2));\n }\n else {\n return null;\n }\n }\n // Check if the predicate is a valid IRI\n if (Util.isValidIri(expanded)) {\n return this.dataFactory.namedNode(expanded);\n }\n else {\n if (expanded && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid predicate IRI: ${expanded}`, jsonld_context_parser_1.ERROR_CODES.INVALID_IRI_MAPPING));\n }\n else {\n return null;\n }\n }\n return null;\n }\n /**\n * Convert a given JSON key to an RDF resource term or blank node,\n * based on @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n resourceToTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const iri = context.expandTerm(key, false, this.parsingContext.getExpandOptions());\n if (!Util.isValidIri(iri)) {\n if (iri && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new Error(`Invalid resource IRI: ${iri}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(iri);\n }\n /**\n * Convert a given JSON key to an RDF resource term.\n * It will do this based on the @vocab,\n * and fallback to @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n createVocabOrBaseTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const expandOptions = this.parsingContext.getExpandOptions();\n let expanded = context.expandTerm(key, true, expandOptions);\n if (expanded === key) {\n expanded = context.expandTerm(key, false, expandOptions);\n }\n if (!Util.isValidIri(expanded)) {\n if (expanded && this.parsingContext.strictValues && !expanded.startsWith('@')) {\n this.parsingContext.emitError(new Error(`Invalid term IRI: ${expanded}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(expanded);\n }\n /**\n * Ensure that the given value becomes a string.\n * @param {string | number} value A string or number.\n * @param {NamedNode} datatype The intended datatype.\n * @return {string} The returned string.\n */\n intToString(value, datatype) {\n if (typeof value === 'number') {\n if (Number.isFinite(value)) {\n const isInteger = value % 1 === 0;\n if (isInteger && (!datatype || datatype.value !== Util.XSD_DOUBLE)) {\n return Number(value).toString();\n }\n else {\n return value.toExponential(15).replace(/(\\d)0*e\\+?/, '$1E');\n }\n }\n else {\n return value > 0 ? 'INF' : '-INF';\n }\n }\n else {\n return value;\n }\n }\n /**\n * Convert a given JSON string value to an RDF term.\n * @param {number} depth The current stack depth.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param {string} value A JSON value.\n * @param {NamedNode} defaultDatatype The default datatype for the given value.\n * @return {RDF.Term} An RDF term or null.\n */\n stringValueToTerm(depth, context, key, value, defaultDatatype) {\n // Check the datatype from the context\n const contextType = Util.getContextValueType(context, key);\n if (contextType) {\n if (contextType === '@id') {\n if (!defaultDatatype) {\n return this.resourceToTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else if (contextType === '@vocab') {\n if (!defaultDatatype) {\n return this.createVocabOrBaseTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else {\n defaultDatatype = this.dataFactory.namedNode(contextType);\n }\n }\n // If we don't find such a datatype, check the language from the context\n if (!defaultDatatype) {\n const contextLanguage = Util.getContextValueLanguage(context, key);\n const contextDirection = Util.getContextValueDirection(context, key);\n if (contextDirection && this.parsingContext.rdfDirection) {\n return this.createLanguageDirectionLiteral(depth, this.intToString(value, defaultDatatype), contextLanguage, contextDirection);\n }\n else {\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), contextLanguage);\n }\n }\n // If all else fails, make a literal based on the default content type\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), defaultDatatype);\n }\n /**\n * Create a literal for the given value with the given language and direction.\n * Auxiliary quads may be emitted.\n * @param {number} depth The current stack depth.\n * @param {string} value A string value.\n * @param {string} language A language tag.\n * @param {string} direction A direction.\n * @return {Term} An RDF term.\n */\n createLanguageDirectionLiteral(depth, value, language, direction) {\n if (this.parsingContext.rdfDirection === 'i18n-datatype') {\n // Create a datatyped literal, by encoding the language and direction into https://www.w3.org/ns/i18n#.\n if (!language) {\n language = '';\n }\n return this.dataFactory.literal(value, this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${language}_${direction}`));\n }\n else {\n // Reify the literal.\n const valueNode = this.dataFactory.blankNode();\n const graph = this.getDefaultGraph();\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'value'), this.dataFactory.literal(value), graph));\n if (language) {\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'language'), this.dataFactory.literal(language), graph));\n }\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'direction'), this.dataFactory.literal(direction), graph));\n return valueNode;\n }\n }\n /**\n * Stringify the given JSON object to a canonical JSON string.\n * @param value Any valid JSON value.\n * @return {string} A canonical JSON string.\n */\n valueToJsonString(value) {\n return canonicalizeJson(value);\n }\n /**\n * If the key is not a keyword, try to check if it is an alias for a keyword,\n * and if so, un-alias it.\n * @param {string} key A key, can be falsy.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth to\n * @param {boolean} disableCache If the cache should be disabled\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise} A promise resolving to the key itself, or another key.\n */\n async unaliasKeyword(key, keys, depth, disableCache, context) {\n // Numbers can not be an alias\n if (Number.isInteger(key)) {\n return key;\n }\n // Try to grab from cache if it was already un-aliased before.\n if (!disableCache) {\n const cachedUnaliasedKeyword = this.parsingContext.unaliasedKeywordCacheStack[depth];\n if (cachedUnaliasedKeyword) {\n return cachedUnaliasedKeyword;\n }\n }\n if (!jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n context = context || await this.parsingContext.getContext(keys);\n let unliased = context.getContextRaw()[key];\n if (unliased && typeof unliased === 'object') {\n unliased = unliased['@id'];\n }\n if (jsonld_context_parser_1.Util.isValidKeyword(unliased)) {\n key = unliased;\n }\n }\n return disableCache ? key : (this.parsingContext.unaliasedKeywordCacheStack[depth] = key);\n }\n /**\n * Unalias the keyword of the parent.\n * This adds a safety check if no parent exist.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @return {Promise} A promise resolving to the parent key, or another key.\n */\n async unaliasKeywordParent(keys, depth) {\n return await this.unaliasKeyword(depth > 0 && keys[depth - 1], keys, depth - 1);\n }\n /**\n * Un-alias all keywords in the given hash.\n * @param {{[p: string]: any}} hash A hash object.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth.\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise<{[p: string]: any}>} A promise resolving to the new hash.\n */\n async unaliasKeywords(hash, keys, depth, context) {\n const newHash = {};\n for (const key in hash) {\n newHash[await this.unaliasKeyword(key, keys, depth + 1, true, context)] = hash[key];\n }\n return newHash;\n }\n /**\n * Check if we are processing a literal (including JSON literals) at the given depth.\n * This will also check higher levels,\n * because if a parent is a literal,\n * then the deeper levels are definitely a literal as well.\n * @param {any[]} keys The keys.\n * @param {number} depth The depth.\n * @return {boolean} If we are processing a literal.\n */\n async isLiteral(keys, depth) {\n for (let i = depth; i >= 0; i--) {\n if (await this.unaliasKeyword(keys[i], keys, i) === '@annotation') {\n // Literals may have annotations, which require processing of inner nodes.\n return false;\n }\n if (this.parsingContext.literalStack[i] || this.parsingContext.jsonLiteralStack[i]) {\n return true;\n }\n }\n return false;\n }\n /**\n * Check how many parents should be skipped for checking the @graph for the given node.\n *\n * @param {number} depth The depth of the node.\n * @param {any[]} keys An array of keys.\n * @return {number} The graph depth offset.\n */\n async getDepthOffsetGraph(depth, keys) {\n for (let i = depth - 1; i > 0; i--) {\n if (await this.unaliasKeyword(keys[i], keys, i) === '@graph') {\n // Skip further processing if we are already in an @graph-@id or @graph-@index container\n const containers = (await EntryHandlerContainer_1.EntryHandlerContainer.getContainerHandler(this.parsingContext, keys, i)).containers;\n if (EntryHandlerContainer_1.EntryHandlerContainer.isComplexGraphContainer(containers)) {\n return -1;\n }\n return depth - i - 1;\n }\n }\n return -1;\n }\n /**\n * Check if the given subject is of a valid type.\n * This should be called when applying @reverse'd properties.\n * @param {Term} subject A subject.\n */\n validateReverseSubject(subject) {\n if (subject.termType === 'Literal') {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal literal in subject position: ${subject.value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n /**\n * Get the default graph.\n * @return {Term} An RDF term.\n */\n getDefaultGraph() {\n return this.parsingContext.defaultGraph || this.dataFactory.defaultGraph();\n }\n /**\n * Get the current graph, while taking into account a graph that can be defined via @container: @graph.\n * If not within a graph container, the default graph will be returned.\n * @param keys The current keys.\n * @param depth The current depth.\n */\n async getGraphContainerValue(keys, depth) {\n // Default to default graph\n let graph = this.getDefaultGraph();\n // Check if we are in an @container: @graph.\n const { containers, depth: depthContainer } = await EntryHandlerContainer_1.EntryHandlerContainer\n .getContainerHandler(this.parsingContext, keys, depth);\n if ('@graph' in containers) {\n // Get the graph from the stack.\n const graphContainerIndex = EntryHandlerContainer_1.EntryHandlerContainer.getContainerGraphIndex(containers, depthContainer, keys);\n const entry = this.parsingContext.graphContainerTermStack[depthContainer];\n graph = entry ? entry[graphContainerIndex] : null;\n // Set the graph in the stack if none has been set yet.\n if (!graph) {\n let graphId = null;\n if ('@id' in containers) {\n const keyUnaliased = await this.getContainerKey(keys[depthContainer], keys, depthContainer);\n if (keyUnaliased !== null) {\n graphId = await this.resourceToTerm(await this.parsingContext.getContext(keys), keyUnaliased);\n }\n }\n if (!graphId) {\n graphId = this.dataFactory.blankNode();\n }\n if (!this.parsingContext.graphContainerTermStack[depthContainer]) {\n this.parsingContext.graphContainerTermStack[depthContainer] = {};\n }\n graph = this.parsingContext.graphContainerTermStack[depthContainer][graphContainerIndex] = graphId;\n }\n }\n return graph;\n }\n /**\n * Get the properties depth for retrieving properties.\n *\n * Typically, the properties depth will be identical to the given depth.\n *\n * The following exceptions apply:\n * * When the parent is @reverse, the depth is decremented by one.\n * * When @nest parents are found, the depth is decremented by the number of @nest parents.\n * If in combination with the exceptions above an intermediary array is discovered,\n * the depth is also decremented by this number of arrays.\n *\n * @param keys The current key chain.\n * @param depth The current depth.\n */\n async getPropertiesDepth(keys, depth) {\n let lastValidDepth = depth;\n for (let i = depth - 1; i > 0; i--) {\n if (typeof keys[i] !== 'number') { // Skip array keys\n const parentKey = await this.unaliasKeyword(keys[i], keys, i);\n if (parentKey === '@reverse') {\n return i;\n }\n else if (parentKey === '@nest') {\n lastValidDepth = i;\n }\n else {\n return lastValidDepth;\n }\n }\n }\n return lastValidDepth;\n }\n /**\n * Get the key for the current container entry.\n * @param key A key, can be falsy.\n * @param keys The key chain.\n * @param depth The current depth to get the key from.\n * @return Promise resolving to the key.\n * Null will be returned for @none entries, with aliasing taken into account.\n */\n async getContainerKey(key, keys, depth) {\n const keyUnaliased = await this.unaliasKeyword(key, keys, depth);\n return keyUnaliased === '@none' ? null : keyUnaliased;\n }\n /**\n * Check if no reverse properties are present in embedded nodes.\n * @param key The current key.\n * @param reverse If a reverse property is active.\n * @param isEmbedded If we're in an embedded node.\n */\n validateReverseInEmbeddedNode(key, reverse, isEmbedded) {\n if (isEmbedded && reverse && !this.parsingContext.rdfstarReverseInEmbedded) {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal reverse property in embedded node in ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE);\n }\n }\n /**\n * Emit a quad, with checks.\n * @param depth The current depth.\n * @param subject S\n * @param predicate P\n * @param object O\n * @param graph G\n * @param reverse If a reverse property is active.\n * @param isEmbedded If we're in an embedded node.\n */\n emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded) {\n // Create a quad\n let quad;\n if (reverse) {\n this.validateReverseSubject(object);\n quad = this.dataFactory.quad(object, predicate, subject, graph);\n }\n else {\n quad = this.dataFactory.quad(subject, predicate, object, graph);\n }\n // Emit the quad, unless it was created in an embedded node\n if (isEmbedded) {\n // Embedded nodes don't inherit the active graph\n if (quad.graph.termType !== 'DefaultGraph') {\n quad = this.dataFactory.quad(quad.subject, quad.predicate, quad.object);\n }\n // Multiple embedded nodes are not allowed\n if (this.parsingContext.idStack[depth - 1]) {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal multiple properties in an embedded node`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE);\n }\n this.parsingContext.idStack[depth - 1] = [quad];\n }\n else {\n this.parsingContext.emitQuad(depth, quad);\n }\n // Flush annotations\n const annotationsBuffer = this.parsingContext.annotationsBuffer[depth];\n if (annotationsBuffer) {\n for (const annotation of annotationsBuffer) {\n this.emitAnnotation(depth, quad, annotation);\n }\n delete this.parsingContext.annotationsBuffer[depth];\n }\n }\n // This is a separate function to enable recursion\n emitAnnotation(depth, quad, annotation) {\n // Construct annotation quad\n let annotationQuad;\n if (annotation.reverse) {\n this.validateReverseSubject(annotation.object);\n annotationQuad = this.dataFactory.quad(annotation.object, annotation.predicate, quad);\n }\n else {\n annotationQuad = this.dataFactory.quad(quad, annotation.predicate, annotation.object);\n }\n // Emit annotated quad\n this.parsingContext.emitQuad(depth, annotationQuad);\n // Also emit nested annotations\n for (const nestedAnnotation of annotation.nestedAnnotations) {\n this.emitAnnotation(depth, annotationQuad, nestedAnnotation);\n }\n }\n}\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.XSD_BOOLEAN = Util.XSD + 'boolean';\nUtil.XSD_INTEGER = Util.XSD + 'integer';\nUtil.XSD_DOUBLE = Util.XSD + 'double';\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerIdentifier = void 0;\n/**\n * Container handler for @id.\n *\n * It assumes that the current key is the identifier of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerIdentifier {\n canCombineWithGraph() {\n return true;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n let id;\n // First check if the child node already has a defined id.\n if (parsingContext.emittedStack[depth + 1] && parsingContext.idStack[depth + 1]) {\n // Use the existing identifier\n id = parsingContext.idStack[depth + 1][0];\n }\n else {\n // Create the identifier\n const keyUnaliased = await util.getContainerKey(keys[depth], keys, depth);\n const maybeId = keyUnaliased !== null\n ? await util.resourceToTerm(await parsingContext.getContext(keys), keys[depth])\n : util.dataFactory.blankNode();\n // Do nothing if the id is invalid\n if (!maybeId) {\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n return;\n }\n id = maybeId;\n // Insert the id into the stack so that buffered children can make us of it.\n parsingContext.idStack[depth + 1] = [id];\n }\n // Insert the id into the stack so that parents can make use of it.\n // Insert it as an array because multiple id container entries may exist\n let ids = parsingContext.idStack[depth];\n if (!ids) {\n ids = parsingContext.idStack[depth] = [];\n }\n // Only insert the term if it does not exist yet in the array.\n if (!ids.some((term) => term.equals(id))) {\n ids.push(id);\n }\n // Flush any pending flush buffers\n if (!await parsingContext.handlePendingContainerFlushBuffers()) {\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n }\n }\n}\nexports.ContainerHandlerIdentifier = ContainerHandlerIdentifier;\n//# sourceMappingURL=ContainerHandlerIdentifier.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerIndex = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerPredicate_1 = require(\"../entryhandler/EntryHandlerPredicate\");\nconst Util_1 = require(\"../Util\");\n/**\n * Container handler for @index.\n *\n * This will ignore the current key and add this entry to the parent node.\n */\nclass ContainerHandlerIndex {\n canCombineWithGraph() {\n return true;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n if (!Array.isArray(value)) {\n const graphContainer = '@graph' in containers;\n // Check if the container is a property-based container by checking if there is a valid @index.\n const context = await parsingContext.getContext(keys);\n const indexKey = keys[depth - 1];\n const indexPropertyRaw = Util_1.Util.getContextValueIndex(context, indexKey);\n if (indexPropertyRaw) {\n // Validate the @index value\n if (jsonld_context_parser_1.Util.isPotentialKeyword(indexPropertyRaw)) {\n throw new jsonld_context_parser_1.ErrorCoded(`Keywords can not be used as @index value, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n if (typeof indexPropertyRaw !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`@index values must be strings, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n // When @index is used, values must be node values, unless @type: @id is defined in the context\n if (typeof value !== 'object') {\n // Error if we don't have @type: @id\n if (Util_1.Util.getContextValueType(context, indexKey) !== '@id') {\n throw new jsonld_context_parser_1.ErrorCoded(`Property-based index containers require nodes as values or strings with @type: @id, but got: ${value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n // Add an @id to the stack, so our expanded @index value can make use of it\n const id = util.resourceToTerm(context, value);\n if (id) {\n parsingContext.idStack[depth + 1] = [id];\n }\n }\n // Expand the @index value\n const indexProperty = util.createVocabOrBaseTerm(context, indexPropertyRaw);\n if (indexProperty) {\n const indexValues = await util.valueToTerm(context, indexPropertyRaw, await util.getContainerKey(keys[depth], keys, depth), depth, keys);\n if (graphContainer) {\n // When we're in a graph container, attach the index to the graph identifier\n const graphId = await util.getGraphContainerValue(keys, depth + 1);\n for (const indexValue of indexValues) {\n parsingContext.emitQuad(depth, util.dataFactory.quad(graphId, indexProperty, indexValue, util.getDefaultGraph()));\n }\n }\n else {\n // Otherwise, attach the index to the node identifier\n for (const indexValue of indexValues) {\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, indexProperty, indexValue, false, false, false);\n }\n }\n }\n }\n const depthOffset = graphContainer ? 2 : 1;\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - depthOffset), value, depth - depthOffset, true);\n // Flush any pending flush buffers\n await parsingContext.handlePendingContainerFlushBuffers();\n }\n parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n }\n}\nexports.ContainerHandlerIndex = ContainerHandlerIndex;\n//# sourceMappingURL=ContainerHandlerIndex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerLanguage = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Container handler for @language.\n *\n * It assumes that the current key is the language of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerLanguage {\n canCombineWithGraph() {\n return false;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n const language = await util.getContainerKey(keys[depth], keys, depth);\n if (Array.isArray(value)) {\n // No type-checking needed, will be handled on each value when this handler is called recursively.\n value = value.map((subValue) => ({ '@value': subValue, '@language': language }));\n }\n else {\n if (typeof value !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`Got invalid language map value, got '${JSON.stringify(value)}', but expected string`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_MAP_VALUE);\n }\n value = { '@value': value, '@language': language };\n }\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n }\n}\nexports.ContainerHandlerLanguage = ContainerHandlerLanguage;\n//# sourceMappingURL=ContainerHandlerLanguage.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerType = void 0;\nconst EntryHandlerPredicate_1 = require(\"../entryhandler/EntryHandlerPredicate\");\nconst Util_1 = require(\"../Util\");\n/**\n * Container handler for @type.\n *\n * This will add this entry to the parent node, and use the current key as an rdf:type value.\n */\nclass ContainerHandlerType {\n canCombineWithGraph() {\n return false;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n if (!Array.isArray(value)) {\n if (typeof value === 'string') {\n // Determine the @type of the container\n const context = await parsingContext.getContext(keys);\n const containerTypeType = Util_1.Util.getContextValueType(context, keys[depth - 1]);\n // String values refer to node references\n const id = containerTypeType === '@vocab'\n ? await util.createVocabOrBaseTerm(context, value)\n : await util.resourceToTerm(context, value);\n if (id) {\n // Handle the value of this node as @id, which will also cause the predicate from above to be emitted.\n const subValue = { '@id': id.termType === 'NamedNode' ? id.value : value };\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), subValue, depth - 1, true);\n // Set the id in the stack so it can be used for the rdf:type handling later on\n parsingContext.idStack[depth + 1] = [id];\n }\n }\n else {\n // Other values are handled by handling them as a proper job\n // Check needed for cases where entries don't have an explicit @id\n const entryHasIdentifier = !!parsingContext.idStack[depth + 1];\n // Handle the value of this node, which will also cause the predicate from above to be emitted.\n if (!entryHasIdentifier) {\n delete parsingContext.idStack[depth]; // Force new (blank node) identifier\n }\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n if (!entryHasIdentifier) {\n parsingContext.idStack[depth + 1] = parsingContext.idStack[depth]; // Copy the id to the child node, for @type\n }\n }\n // Identify the type to emit.\n const keyOriginal = await util.getContainerKey(keys[depth], keys, depth);\n const type = keyOriginal !== null\n ? util.createVocabOrBaseTerm(await parsingContext.getContext(keys), keyOriginal)\n : null;\n if (type) {\n // Push the type to the stack using the rdf:type predicate\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, util.rdfType, type, false, false, false);\n }\n // Flush any pending flush buffers\n await parsingContext.handlePendingContainerFlushBuffers();\n }\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n }\n}\nexports.ContainerHandlerType = ContainerHandlerType;\n//# sourceMappingURL=ContainerHandlerType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerArrayValue = void 0;\nconst Util_1 = require(\"../Util\");\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Handles values that are part of an array.\n */\nclass EntryHandlerArrayValue {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return this.test(parsingContext, util, null, keys, depth);\n }\n async test(parsingContext, util, key, keys, depth) {\n return typeof keys[depth] === 'number';\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n let parentKey = await util.unaliasKeywordParent(keys, depth);\n // Check if we have an anonymous list\n if (parentKey === '@list') {\n // Our value is part of an array\n // Determine the list root key\n let listRootKey = null;\n let listRootDepth = 0;\n for (let i = depth - 2; i > 0; i--) {\n const keyOption = keys[i];\n if (typeof keyOption === 'string' || typeof keyOption === 'number') {\n listRootDepth = i;\n listRootKey = keyOption;\n break;\n }\n }\n if (listRootKey !== null) {\n // Emit the given objects as list elements\n const values = await util.valueToTerm(await parsingContext.getContext(keys), listRootKey, value, depth, keys);\n for (const object of values) {\n await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n }\n // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n if (values.length === 0) {\n await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n }\n }\n }\n else if (parentKey === '@set') {\n // Our value is part of a set, so we just add it to the parent-parent\n await parsingContext.newOnValueJob(keys.slice(0, -2), value, depth - 2, false);\n }\n else if (parentKey !== undefined && parentKey !== '@type') {\n // Buffer our value using the parent key as predicate\n // Determine the first parent key that is *not* an array key\n // This is needed in case we have an @list container with nested arrays,\n // where each of them should produce nested RDF lists.\n for (let i = depth - 1; i > 0; i--) {\n if (typeof keys[i] !== 'number') {\n parentKey = await util.unaliasKeyword(keys[i], keys, i);\n break;\n }\n }\n // Check if the predicate is marked as an @list in the context\n const parentContext = await parsingContext.getContext(keys.slice(0, -1));\n if ('@list' in Util_1.Util.getContextValueContainer(parentContext, parentKey)) {\n // Our value is part of an array\n // Emit the given objects as list elements\n parsingContext.emittedStack[depth + 1] = true; // Ensure the creation of bnodes for empty nodes\n const values = await util.valueToTerm(await parsingContext.getContext(keys), parentKey, value, depth, keys);\n for (const object of values) {\n await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, -1), depth - 1);\n }\n // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n if (values.length === 0) {\n await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, -1), depth - 1);\n }\n }\n else {\n // Copy the stack values up one level so that the next job can access them.\n parsingContext.shiftStack(depth, 1);\n // Execute the job one level higher\n await parsingContext.newOnValueJob(keys.slice(0, -1), value, depth - 1, false);\n // Remove any defined contexts at this level to avoid it to propagate to the next array element.\n parsingContext.contextTree.removeContext(keys.slice(0, -1));\n }\n }\n }\n async handleListElement(parsingContext, util, value, valueOriginal, depth, listRootKeys, listRootDepth) {\n // Buffer our value as an RDF list using the listRootKey as predicate\n let listPointer = parsingContext.listPointerStack[depth];\n if (valueOriginal !== null && (await util.unaliasKeywords(valueOriginal, listRootKeys, depth))['@value'] !== null) {\n if (!listPointer || !listPointer.value) {\n const linkTerm = util.dataFactory.blankNode();\n listPointer = { value: linkTerm, listRootDepth, listId: linkTerm };\n }\n else {\n // rdf:rest links are always emitted before the next element,\n // as the blank node identifier is only created at that point.\n // Because of this reason, the final rdf:nil is emitted when the stack depth is decreased.\n const newLinkTerm = util.dataFactory.blankNode();\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfRest, newLinkTerm, util.getDefaultGraph()));\n // Update the list pointer for the next element\n listPointer.value = newLinkTerm;\n }\n // Emit a list element for the current value\n // Omit rdf:first if the value is invalid\n if (value) {\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfFirst, value, util.getDefaultGraph()));\n }\n }\n else {\n // A falsy list element if found.\n // Mark it as an rdf:nil list until another valid list element comes in\n if (!listPointer) {\n listPointer = { listRootDepth, listId: util.rdfNil };\n }\n }\n parsingContext.listPointerStack[depth] = listPointer;\n // Error if an annotation was defined\n if (parsingContext.rdfstar && parsingContext.annotationsBuffer[depth]) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal annotation inside a list`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n}\nexports.EntryHandlerArrayValue = EntryHandlerArrayValue;\n//# sourceMappingURL=EntryHandlerArrayValue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerContainer = void 0;\nconst ContainerHandlerIdentifier_1 = require(\"../containerhandler/ContainerHandlerIdentifier\");\nconst ContainerHandlerIndex_1 = require(\"../containerhandler/ContainerHandlerIndex\");\nconst ContainerHandlerLanguage_1 = require(\"../containerhandler/ContainerHandlerLanguage\");\nconst ContainerHandlerType_1 = require(\"../containerhandler/ContainerHandlerType\");\nconst Util_1 = require(\"../Util\");\n/**\n * Handles values that are part of a container type (like @index),\n * as specified by {@link IContainerHandler}.\n */\nclass EntryHandlerContainer {\n /**\n * Check fit the given container is a simple @graph container.\n * Concretely, it will check if no @index or @id is active as well.\n * @param containers A container hash.\n */\n static isSimpleGraphContainer(containers) {\n return '@graph' in containers\n && (('@set' in containers && Object.keys(containers).length === 2) || Object.keys(containers).length === 1);\n }\n /**\n * Check fit the given container is a complex @graph container.\n * Concretely, it will check if @index or @id is active as well next to @graph.\n * @param containers A container hash.\n */\n static isComplexGraphContainer(containers) {\n return '@graph' in containers\n && (('@set' in containers && Object.keys(containers).length > 2)\n || (!('@set' in containers) && Object.keys(containers).length > 1));\n }\n /**\n * Create an graph container index that can be used for identifying a graph term inside the graphContainerTermStack.\n * @param containers The applicable containers.\n * @param depth The container depth.\n * @param keys The array of keys.\n * @return The graph index.\n */\n static getContainerGraphIndex(containers, depth, keys) {\n let isSimpleGraphContainer = EntryHandlerContainer.isSimpleGraphContainer(containers);\n let index = '';\n for (let i = depth; i < keys.length; i++) {\n if (!isSimpleGraphContainer || typeof keys[i] === 'number') {\n index += ':' + keys[i];\n }\n // Only allow a second 'real' key if in a non-simple graph container.\n if (!isSimpleGraphContainer && typeof keys[i] !== 'number') {\n isSimpleGraphContainer = true;\n }\n }\n return index;\n }\n /**\n * Return the applicable container type at the given depth.\n *\n * This will ignore any arrays in the key chain.\n *\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {any[]} keys The array of keys.\n * @param {number} depth The current depth.\n * @return {Promise<{ containers: {[typeName: string]: boolean}, depth: number, fallback: boolean }>}\n * All applicable containers for the given depth,\n * the `depth` of the container root (can change when arrays are in the key chain),\n * and the `fallback` flag that indicates if the default container type was returned\n * (i.e., no dedicated container type is defined).\n */\n static async getContainerHandler(parsingContext, keys, depth) {\n const fallback = {\n containers: { '@set': true },\n depth,\n fallback: true,\n };\n // A flag that is enabled when @graph container should be tested in next iteration\n let checkGraphContainer = false;\n // Iterate from deeper to higher\n const context = await parsingContext.getContext(keys, 2);\n for (let i = depth - 1; i >= 0; i--) {\n if (typeof keys[i] !== 'number') { // Skip array keys\n // @graph containers without any other types are one level less deep, and require special handling\n const containersSelf = Util_1.Util.getContextValue(context, '@container', keys[i], false);\n if (containersSelf && EntryHandlerContainer.isSimpleGraphContainer(containersSelf)) {\n return {\n containers: containersSelf,\n depth: i + 1,\n fallback: false,\n };\n }\n const containersParent = Util_1.Util.getContextValue(context, '@container', keys[i - 1], false);\n if (!containersParent) { // If we have the fallback container value\n if (checkGraphContainer) {\n // Return false if we were already expecting a @graph-@id of @graph-@index container\n return fallback;\n }\n // Check parent-parent, we may be in a @graph-@id of @graph-@index container, which have two levels\n checkGraphContainer = true;\n }\n else {\n // We had an invalid container next iteration, so we now have to check if we were in an @graph container\n const graphContainer = '@graph' in containersParent;\n // We're in a regular container\n for (const containerHandleName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n if (containersParent[containerHandleName]) {\n if (graphContainer) {\n // Only accept graph containers if their combined handlers can handle them.\n if (EntryHandlerContainer.CONTAINER_HANDLERS[containerHandleName].canCombineWithGraph()) {\n return {\n containers: containersParent,\n depth: i,\n fallback: false,\n };\n }\n else {\n return fallback;\n }\n }\n else {\n // Only accept if we were not expecting a @graph-@id of @graph-@index container\n if (checkGraphContainer) {\n return fallback;\n }\n else {\n return {\n containers: containersParent,\n depth: i,\n fallback: false,\n };\n }\n }\n }\n }\n // Fail if no valid container handlers were found\n return fallback;\n }\n }\n }\n return fallback;\n }\n /**\n * Check if we are handling a value at the given depth\n * that is part of something that should be handled as a container,\n * AND if this container should be buffered, so that it can be handled by a dedicated container handler.\n *\n * For instance, any container with @graph will NOT be buffered.\n *\n * This will ignore any arrays in the key chain.\n *\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {any[]} keys The array of keys.\n * @param {number} depth The current depth.\n * @return {Promise} If we are in the scope of a container handler.\n */\n static async isBufferableContainerHandler(parsingContext, keys, depth) {\n const handler = await EntryHandlerContainer.getContainerHandler(parsingContext, keys, depth);\n return !handler.fallback && !('@graph' in handler.containers);\n }\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return !!await this.test(parsingContext, util, null, keys, depth);\n }\n async test(parsingContext, util, key, keys, depth) {\n const containers = Util_1.Util.getContextValueContainer(await parsingContext.getContext(keys, 2), keys[depth - 1]);\n for (const containerName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n if (containers[containerName]) {\n return {\n containers,\n handler: EntryHandlerContainer.CONTAINER_HANDLERS[containerName],\n };\n }\n }\n return null;\n }\n async handle(parsingContext, util, key, keys, value, depth, testResult) {\n return testResult.handler.handle(testResult.containers, parsingContext, util, keys, value, depth);\n }\n}\nEntryHandlerContainer.CONTAINER_HANDLERS = {\n '@id': new ContainerHandlerIdentifier_1.ContainerHandlerIdentifier(),\n '@index': new ContainerHandlerIndex_1.ContainerHandlerIndex(),\n '@language': new ContainerHandlerLanguage_1.ContainerHandlerLanguage(),\n '@type': new ContainerHandlerType_1.ContainerHandlerType(),\n};\nexports.EntryHandlerContainer = EntryHandlerContainer;\n//# sourceMappingURL=EntryHandlerContainer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerInvalidFallback = void 0;\n/**\n * A catch-all for properties, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerInvalidFallback {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return true;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerInvalidFallback = EntryHandlerInvalidFallback;\n//# sourceMappingURL=EntryHandlerInvalidFallback.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerPredicate = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst Util_1 = require(\"../Util\");\n/**\n * Interprets keys as predicates.\n * The most common case in JSON-LD processing.\n */\nclass EntryHandlerPredicate {\n /**\n * Handle the given predicate-object by either emitting it,\n * or by placing it in the appropriate stack for later emission when no @graph and/or @id has been defined.\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {Util} util A utility instance.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @param {Term} predicate The predicate.\n * @param {Term} object The object.\n * @param {boolean} reverse If the property is reversed.\n * @param {boolean} isEmbedded If the property exists in an embedded node as direct child.\n * @param {boolean} isAnnotation If the property exists in an annotation object.\n * @return {Promise} A promise resolving when handling is done.\n */\n static async handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse, isEmbedded, isAnnotation) {\n const depthProperties = await util.getPropertiesDepth(keys, depth);\n const depthOffsetGraph = await util.getDepthOffsetGraph(depth, keys);\n const depthPropertiesGraph = depth - depthOffsetGraph;\n const subjects = parsingContext.idStack[depthProperties];\n if (subjects && !isAnnotation) {\n // Emit directly if the @id was already defined\n for (const subject of subjects) {\n // Check if we're in a @graph context\n const atGraph = depthOffsetGraph >= 0;\n if (atGraph) {\n const graphs = parsingContext.idStack[depthPropertiesGraph - 1];\n if (graphs) {\n for (const graph of graphs) {\n // Emit our quad if graph @id is known\n util.emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded);\n }\n }\n else {\n // Buffer our triple if graph @id is not known yet.\n if (reverse) {\n util.validateReverseSubject(object);\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1).push({ subject: object, predicate, object: subject, isEmbedded });\n }\n else {\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1)\n .push({ subject, predicate, object, isEmbedded });\n }\n }\n }\n else {\n // Emit if no @graph was applicable\n const graph = await util.getGraphContainerValue(keys, depthProperties);\n util.emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded);\n }\n }\n }\n else {\n // Buffer until our @id becomes known, or we go up the stack\n if (reverse) {\n util.validateReverseSubject(object);\n }\n // Either push to the annotations or the actual value buffer\n if (isAnnotation) {\n // Only add to buffer if rdfstar is enabled\n if (parsingContext.rdfstar) {\n // Error if an @id was defined\n if (parsingContext.idStack[depth]) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @id inside an annotation: ${parsingContext.idStack[depth][0].value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Error if we're in an embedded node\n for (let i = 0; i < depth; i++) {\n if (await util.unaliasKeyword(keys[i], keys, i) === '@id') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal annotation inside an embedded node`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n // Store new annotation in the buffer\n const annotationsBuffer = parsingContext.getAnnotationsBufferSafe(depthProperties);\n const newAnnotation = { predicate, object, reverse, nestedAnnotations: [], depth: depthProperties };\n annotationsBuffer.push(newAnnotation);\n // Check in the buffer if any annotations were defined at a deeper depth,\n // if so, they are considered nested annotations.\n for (let i = annotationsBuffer.length - 2; i >= 0; i--) {\n // We iterate in reverse order, to enable easy item removal from the back.\n const existingAnnotation = annotationsBuffer[i];\n if (existingAnnotation.depth > depthProperties) {\n newAnnotation.nestedAnnotations.push(existingAnnotation);\n annotationsBuffer.splice(i, 1);\n }\n }\n }\n }\n else {\n parsingContext.getUnidentifiedValueBufferSafe(depthProperties).push({ predicate, object, reverse, isEmbedded });\n }\n }\n }\n isPropertyHandler() {\n return true;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n const key = keys[depth];\n if (key) {\n const context = await parsingContext.getContext(keys);\n if (!parsingContext.jsonLiteralStack[depth] && await util.predicateToTerm(context, keys[depth])) {\n // If this valid predicate is of type @json, mark it so in the stack so that no deeper handling of nodes occurs.\n if (Util_1.Util.getContextValueType(context, key) === '@json') {\n parsingContext.jsonLiteralStack[depth + 1] = true;\n }\n return true;\n }\n }\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return keys[depth];\n }\n async handle(parsingContext, util, key, keys, value, depth, testResult) {\n const keyOriginal = keys[depth];\n const context = await parsingContext.getContext(keys);\n const predicate = await util.predicateToTerm(context, key);\n if (predicate) {\n const objects = await util.valueToTerm(context, key, value, depth, keys);\n if (objects.length) {\n for (let object of objects) {\n // Based on parent key, check if reverse, embedded, and annotation.\n let parentKey = await util.unaliasKeywordParent(keys, depth);\n const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, parentKey);\n let parentDepthOffset = 0;\n while (parentKey === '@reverse' || typeof parentKey === 'number') {\n // Check parent of parent when checking while we're in an array or in @reverse\n if (typeof parentKey === 'number') {\n parentDepthOffset++;\n }\n else {\n depth--;\n }\n parentKey = await util.unaliasKeywordParent(keys, depth - parentDepthOffset);\n }\n const isEmbedded = Util_1.Util.isPropertyInEmbeddedNode(parentKey);\n util.validateReverseInEmbeddedNode(key, reverse, isEmbedded);\n const isAnnotation = Util_1.Util.isPropertyInAnnotationObject(parentKey);\n if (value) {\n // Special case if our term was defined as an @list, but does not occur in an array,\n // In that case we just emit it as an RDF list with a single element.\n const listValueContainer = '@list' in Util_1.Util.getContextValueContainer(context, key);\n if (listValueContainer || value['@list']) {\n if (((listValueContainer && !Array.isArray(value) && !value['@list'])\n || (value['@list'] && !Array.isArray(value['@list'])))\n && object !== util.rdfNil) {\n const listPointer = util.dataFactory.blankNode();\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfRest, util.rdfNil, util.getDefaultGraph()));\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfFirst, object, util.getDefaultGraph()));\n object = listPointer;\n }\n // Lists are not allowed in @reverse'd properties\n if (reverse && !parsingContext.allowSubjectList) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal list value in subject position at ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n }\n await EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse, isEmbedded, isAnnotation);\n }\n }\n }\n }\n}\nexports.EntryHandlerPredicate = EntryHandlerPredicate;\n//# sourceMappingURL=EntryHandlerPredicate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeyword = void 0;\n/**\n * An abstract keyword entry handler.\n */\nclass EntryHandlerKeyword {\n constructor(keyword) {\n this.keyword = keyword;\n }\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return key === this.keyword;\n }\n}\nexports.EntryHandlerKeyword = EntryHandlerKeyword;\n//# sourceMappingURL=EntryHandlerKeyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordAnnotation = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Handles @annotation entries.\n */\nclass EntryHandlerKeywordAnnotation extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@annotation');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // Validate value\n if (typeof value === 'string' || (typeof value === 'object' && value['@value'])) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal annotation value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Rest of the processing is done as regular nodes\n }\n}\nexports.EntryHandlerKeywordAnnotation = EntryHandlerKeywordAnnotation;\n//# sourceMappingURL=EntryHandlerKeywordAnnotation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordContext = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @context entries.\n */\nclass EntryHandlerKeywordContext extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@context');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // Error if an out-of-order context was found when support is not enabled.\n if (parsingContext.streamingProfile\n && (parsingContext.processingStack[depth]\n || parsingContext.processingType[depth]\n || parsingContext.idStack[depth] !== undefined)) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order context, while streaming is enabled.' +\n '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n }\n // Find the parent context to inherit from.\n // We actually request a context for the current depth (with fallback to parent)\n // because we want to take into account any property-scoped contexts that are defined for this depth.\n const parentContext = parsingContext.getContext(keys);\n // Set the context for this scope\n const context = parsingContext.parseContext(value, (await parentContext).getContextRaw());\n parsingContext.contextTree.setContext(keys.slice(0, -1), context);\n parsingContext.emitContext(value);\n await parsingContext.validateContext(await context);\n }\n}\nexports.EntryHandlerKeywordContext = EntryHandlerKeywordContext;\n//# sourceMappingURL=EntryHandlerKeywordContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordGraph = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordGraph extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@graph');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // The current identifier identifies a graph for the deeper level.\n parsingContext.graphStack[depth + 1] = true;\n }\n}\nexports.EntryHandlerKeywordGraph = EntryHandlerKeywordGraph;\n//# sourceMappingURL=EntryHandlerKeywordGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordId = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @id entries.\n */\nclass EntryHandlerKeywordId extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@id');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'string') {\n // JSON-LD-star allows @id object values\n if (parsingContext.rdfstar && typeof value === 'object') {\n const valueKeys = Object.keys(value);\n if (valueKeys.length === 1 && valueKeys[0] === '@id') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid embedded node without property with @id ${value['@id']}`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE));\n }\n }\n else {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @id '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_ID_VALUE));\n }\n return;\n }\n // Determine the canonical place for this id.\n // For example, @nest parents should be ignored.\n const depthProperties = await util.getPropertiesDepth(keys, depth);\n // Error if an @id for this node already existed.\n if (parsingContext.idStack[depthProperties] !== undefined) {\n if (parsingContext.idStack[depthProperties][0].listHead) {\n // Error if an @list was already defined for this node\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${keys[depth - 1]}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT));\n }\n else {\n // Otherwise, the previous id was just because of an @id entry.\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found duplicate @ids '${parsingContext\n .idStack[depthProperties][0].value}' and '${value}'`, jsonld_context_parser_1.ERROR_CODES.COLLIDING_KEYWORDS));\n }\n }\n // Error if an annotation was defined\n if (parsingContext.rdfstar && parsingContext.annotationsBuffer[depth]) {\n for (const annotation of parsingContext.annotationsBuffer[depth]) {\n if (annotation.depth === depth) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @id inside an annotation: ${value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n }\n // Save our @id on the stack\n parsingContext.idStack[depthProperties] = util.nullableTermToArray(await util.resourceToTerm(await parsingContext.getContext(keys), value));\n }\n}\nexports.EntryHandlerKeywordId = EntryHandlerKeywordId;\n//# sourceMappingURL=EntryHandlerKeywordId.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordIncluded = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @included entries.\n */\nclass EntryHandlerKeywordIncluded extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@included');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'object') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @included '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n const valueUnliased = await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys));\n if ('@value' in valueUnliased) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @value node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n if ('@list' in valueUnliased) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @list node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordIncluded = EntryHandlerKeywordIncluded;\n//# sourceMappingURL=EntryHandlerKeywordIncluded.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordNest = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @nest entries.\n */\nclass EntryHandlerKeywordNest extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@nest');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'object') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found invalid @nest entry for '${key}': '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n }\n if ('@value' in await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys))) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an invalid @value node for '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordNest = EntryHandlerKeywordNest;\n//# sourceMappingURL=EntryHandlerKeywordNest.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordType = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst Util_1 = require(\"../../Util\");\nconst EntryHandlerPredicate_1 = require(\"../EntryHandlerPredicate\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordType extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@type');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n const keyOriginal = keys[depth];\n // The current identifier identifies an rdf:type predicate.\n // But we only emit it once the node closes,\n // as it's possible that the @type is used to identify the datatype of a literal, which we ignore here.\n const context = await parsingContext.getContext(keys);\n const predicate = util.rdfType;\n const parentKey = await util.unaliasKeywordParent(keys, depth);\n const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, parentKey);\n const isEmbedded = Util_1.Util.isPropertyInEmbeddedNode(parentKey);\n util.validateReverseInEmbeddedNode(key, reverse, isEmbedded);\n const isAnnotation = Util_1.Util.isPropertyInAnnotationObject(parentKey);\n // Handle multiple values if the value is an array\n const elements = Array.isArray(value) ? value : [value];\n for (const element of elements) {\n if (typeof element !== 'string') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @type '${element}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPE_VALUE));\n }\n const type = util.createVocabOrBaseTerm(context, element);\n if (type) {\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, type, reverse, isEmbedded, isAnnotation);\n }\n }\n // Collect type-scoped contexts if they exist\n let scopedContext = Promise.resolve(context);\n let hasTypedScopedContext = false;\n for (const element of elements.sort()) { // Spec requires lexicographical ordering\n const typeContext = Util_1.Util.getContextValue(context, '@context', element, null);\n if (typeContext) {\n hasTypedScopedContext = true;\n scopedContext = scopedContext.then((c) => parsingContext.parseContext(typeContext, c.getContextRaw()));\n }\n }\n // Error if an out-of-order type-scoped context was found when support is not enabled.\n if (parsingContext.streamingProfile\n && (hasTypedScopedContext || !parsingContext.streamingProfileAllowOutOfOrderPlainType)\n && (parsingContext.processingStack[depth] || parsingContext.idStack[depth])) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order type-scoped context, while streaming is enabled.' +\n '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n }\n // If at least least one type-scoped context applies, set them in the tree.\n if (hasTypedScopedContext) {\n // Do not propagate by default\n scopedContext = scopedContext.then((c) => {\n // Set the original context at this depth as a fallback\n // This is needed when a context was already defined at the given depth,\n // and this context needs to remain accessible from child nodes when propagation is disabled.\n if (c.getContextRaw()['@propagate'] !== true) {\n return new jsonld_context_parser_1.JsonLdContextNormalized(Object.assign(Object.assign({}, c.getContextRaw()), { '@propagate': false, '@__propagateFallback': context.getContextRaw() }));\n }\n return c;\n });\n // Set the new context in the context tree\n parsingContext.contextTree.setContext(keys.slice(0, keys.length - 1), scopedContext);\n }\n // Flag that type has been processed at this depth\n parsingContext.processingType[depth] = true;\n }\n}\nexports.EntryHandlerKeywordType = EntryHandlerKeywordType;\n//# sourceMappingURL=EntryHandlerKeywordType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordUnknownFallback = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * A catch-all for keywords, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerKeywordUnknownFallback {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n const key = await util.unaliasKeyword(keys[depth], keys, depth);\n if (jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n // Don't emit anything inside free-floating lists\n if (!inProperty) {\n if (key === '@list') {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return jsonld_context_parser_1.Util.isPotentialKeyword(key);\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n const keywordType = EntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES[key];\n if (keywordType !== undefined) {\n if (keywordType && typeof value !== keywordType.type) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid value type for '${key}' with value '${value}'`, keywordType.errorCode));\n }\n }\n else if (parsingContext.strictValues) {\n parsingContext.emitError(new Error(`Unknown keyword '${key}' with value '${value}'`));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nEntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES = {\n '@index': { type: 'string', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE },\n '@list': null,\n '@reverse': { type: 'object', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_VALUE },\n '@set': null,\n '@value': null,\n};\nexports.EntryHandlerKeywordUnknownFallback = EntryHandlerKeywordUnknownFallback;\n//# sourceMappingURL=EntryHandlerKeywordUnknownFallback.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordValue = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @value entries.\n */\nclass EntryHandlerKeywordValue extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@value');\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n // If this is @value, mark it so in the stack so that no deeper handling of nodes occurs.\n const key = keys[depth];\n if (key && !parsingContext.literalStack[depth] && await this.test(parsingContext, util, key, keys, depth)) {\n parsingContext.literalStack[depth] = true;\n }\n return super.validate(parsingContext, util, keys, depth, inProperty);\n }\n async test(parsingContext, util, key, keys, depth) {\n return await util.unaliasKeyword(keys[depth], keys.slice(0, keys.length - 1), depth - 1, true) === '@value';\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // If the value is valid, indicate that we are processing a literal.\n // The actual value will be determined at the parent level when the @value is part of an object,\n // because we may want to take into account additional entries such as @language.\n // See {@link Util.valueToTerm}\n // Indicate that we are processing a literal, and that no later predicates should be parsed at this depth.\n parsingContext.literalStack[depth] = true;\n // Void any buffers that we may have accumulated up until now\n delete parsingContext.unidentifiedValuesBuffer[depth];\n delete parsingContext.unidentifiedGraphsBuffer[depth];\n // Indicate that we have not emitted at this depth\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordValue = EntryHandlerKeywordValue;\n//# sourceMappingURL=EntryHandlerKeywordValue.js.map","'use strict'\n\nconst { SymbolDispose } = require('../../ours/primordials')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\nlet addAbortListener\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(signal, onAbort)\n eos(stream, disposable[SymbolDispose])\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.readableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kIsDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream,\n isReadableStream,\n isWritableStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n if (isReadableStream(body)) {\n return _duplexify({\n readable: Readable.fromWeb(body)\n })\n }\n if (isWritableStream(body)) {\n return _duplexify({\n writable: Writable.fromWeb(body)\n })\n }\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n if (\n isReadableStream(body === null || body === undefined ? undefined : body.readable) &&\n isWritableStream(body === null || body === undefined ? undefined : body.writable)\n ) {\n return Duplexify.fromWeb(body)\n }\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen, SymbolDispose } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nlet addAbortListener\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst kResistStopPropagation = require('../../ours/primordials').Symbol('kResistStopPropagation')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst { deprecate } = require('../../ours/util')\nconst {\n ArrayPrototypePush,\n Boolean,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromiseResolve,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n let highWaterMark = concurrency - 1\n if ((options === null || options === undefined ? undefined : options.highWaterMark) != null) {\n highWaterMark = MathFloor(options.highWaterMark)\n }\n validateInteger(concurrency, 'options.concurrency', 1)\n validateInteger(highWaterMark, 'options.highWaterMark', 0)\n highWaterMark += concurrency\n return async function* map() {\n const signal = require('../../ours/util').AbortSignalAny(\n [options === null || options === undefined ? undefined : options.signal].filter(Boolean)\n )\n const stream = this\n const queue = []\n const signalOpt = {\n signal\n }\n let next\n let resume\n let done = false\n let cnt = 0\n function onCatch() {\n done = true\n afterItemProcessed()\n }\n function afterItemProcessed() {\n cnt -= 1\n maybeResume()\n }\n function maybeResume() {\n if (resume && !done && cnt < concurrency && queue.length < highWaterMark) {\n resume()\n resume = null\n }\n }\n async function pump() {\n try {\n for await (let val of stream) {\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n if (val === kEmpty) {\n continue\n }\n val = PromiseResolve(val)\n } catch (err) {\n val = PromiseReject(err)\n }\n cnt += 1\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && (queue.length >= highWaterMark || cnt >= concurrency)) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n } finally {\n done = true\n if (next) {\n next()\n next = null\n }\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n maybeResume()\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal2\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal2 = options.signal) !== null &&\n _options$signal2 !== undefined &&\n _options$signal2.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this,\n [kResistStopPropagation]: true\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal3\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal3 = options.signal) !== null &&\n _options$signal3 !== undefined &&\n _options$signal3.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal5\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal6\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n }\n\n // Don't get another item from iterator in case we reached the end\n if (number <= 0) {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs: deprecate(asIndexedPairs, 'readable.asIndexedPairs will be removed in a future version.'),\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator, SymbolDispose } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableFinished\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nlet addAbortListener\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n await wait()\n }\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n let disposable\n if (outerSignal) {\n disposable = addAbortListener(outerSignal, abort)\n }\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n var _disposable\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n ;(_disposable = disposable) === null || _disposable === undefined ? undefined : _disposable[SymbolDispose]()\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableFinished(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncDispose,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nconst kObjectMode = 1 << 0\nconst kEnded = 1 << 1\nconst kEndEmitted = 1 << 2\nconst kReading = 1 << 3\nconst kConstructed = 1 << 4\nconst kSync = 1 << 5\nconst kNeedReadable = 1 << 6\nconst kEmittedReadable = 1 << 7\nconst kReadableListening = 1 << 8\nconst kResumeScheduled = 1 << 9\nconst kErrorEmitted = 1 << 10\nconst kEmitClose = 1 << 11\nconst kAutoDestroy = 1 << 12\nconst kDestroyed = 1 << 13\nconst kClosed = 1 << 14\nconst kCloseEmitted = 1 << 15\nconst kMultiAwaitDrain = 1 << 16\nconst kReadingMore = 1 << 17\nconst kDataEmitted = 1 << 18\n\n// TODO(benjamingr) it is likely slower to do it this way than with free functions\nfunction makeBitMapDescriptor(bit) {\n return {\n enumerable: false,\n get() {\n return (this.state & bit) !== 0\n },\n set(value) {\n if (value) this.state |= bit\n else this.state &= ~bit\n }\n }\n}\nObjectDefineProperties(ReadableState.prototype, {\n objectMode: makeBitMapDescriptor(kObjectMode),\n ended: makeBitMapDescriptor(kEnded),\n endEmitted: makeBitMapDescriptor(kEndEmitted),\n reading: makeBitMapDescriptor(kReading),\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n constructed: makeBitMapDescriptor(kConstructed),\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n sync: makeBitMapDescriptor(kSync),\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n needReadable: makeBitMapDescriptor(kNeedReadable),\n emittedReadable: makeBitMapDescriptor(kEmittedReadable),\n readableListening: makeBitMapDescriptor(kReadableListening),\n resumeScheduled: makeBitMapDescriptor(kResumeScheduled),\n // True if the error was already emitted and should not be thrown again.\n errorEmitted: makeBitMapDescriptor(kErrorEmitted),\n emitClose: makeBitMapDescriptor(kEmitClose),\n autoDestroy: makeBitMapDescriptor(kAutoDestroy),\n // Has it been destroyed.\n destroyed: makeBitMapDescriptor(kDestroyed),\n // Indicates whether the stream has finished destroying.\n closed: makeBitMapDescriptor(kClosed),\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n closeEmitted: makeBitMapDescriptor(kCloseEmitted),\n multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain),\n // If true, a maybeReadMore has been scheduled.\n readingMore: makeBitMapDescriptor(kReadingMore),\n dataEmitted: makeBitMapDescriptor(kDataEmitted)\n})\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Bit map field to store ReadableState more effciently with 1 bit per field\n // instead of a V8 slot per field.\n this.state = kEmitClose | kAutoDestroy | kConstructed | kSync\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n if (options && options.objectMode) this.state |= kObjectMode\n if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this[kPaused] = null\n\n // Should close be emitted on destroy. Defaults to true.\n if (options && options.emitClose === false) this.state &= ~kEmitClose\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nReadable.prototype[SymbolAsyncDispose] = function () {\n let error\n if (!this.destroyed) {\n error = this.readableEnded ? null : new AbortError()\n this.destroy(error)\n }\n return new Promise((resolve, reject) => eos(this, (err) => (err && err !== error ? reject(err) : resolve(null))))\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if ((state.state & kObjectMode) === 0) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.state &= ~kReading\n onEofChunk(stream, state)\n } else if ((state.state & kObjectMode) !== 0 || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.state &= ~kReading\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.state &= ~kReading\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if ((state.state & kMultiAwaitDrain) !== 0) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if ((state.state & kNeedReadable) !== 0) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if ((state.state & kObjectMode) !== 0) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.state &= ~kEmittedReadable\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = (state.state & kNeedReadable) !== 0\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.state |= kReading | kSync\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.state |= kNeedReadable\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.state &= ~kSync\n\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n pause()\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { validateInteger } = require('../validators')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nlet defaultHighWaterMarkBytes = 16 * 1024\nlet defaultHighWaterMarkObjectMode = 16\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? defaultHighWaterMarkObjectMode : defaultHighWaterMarkBytes\n}\nfunction setDefaultHighWaterMark(objectMode, value) {\n validateInteger(value, 'value', 0)\n if (objectMode) {\n defaultHighWaterMarkObjectMode = value\n } else {\n defaultHighWaterMarkBytes = value\n }\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark,\n setDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\n\n// We need to use SymbolFor to make these globally available\n// for interopt with readable-stream, i.e. readable-stream\n// and node core needs to be able to read/write private state\n// from each other for proper interoperability.\nconst kIsDestroyed = SymbolFor('nodejs.stream.destroyed')\nconst kIsErrored = SymbolFor('nodejs.stream.errored')\nconst kIsReadable = SymbolFor('nodejs.stream.readable')\nconst kIsWritable = SymbolFor('nodejs.stream.writable')\nconst kIsDisturbed = SymbolFor('nodejs.stream.disturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kIsDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (stream && stream[kIsWritable] != null) return stream[kIsWritable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n isDestroyed,\n kIsDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n kIsWritable,\n isClosed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateAbortSignalArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is AbortSignal[]}\n */\n\n/** @type {validateAbortSignalArray} */\nfunction validateAbortSignalArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n const signal = value[i]\n const indexedName = `${name}[${i}]`\n if (signal == null) {\n throw new ERR_INVALID_ARG_TYPE(indexedName, 'AbortSignal', signal)\n }\n validateAbortSignal(signal, indexedName)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateAbortSignalArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n PromiseResolve(val) {\n return Promise.resolve(val)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n SymbolDispose: Symbol.dispose || Symbol('Symbol.dispose'),\n SymbolAsyncDispose: Symbol.asyncDispose || Symbol('Symbol.asyncDispose'),\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Boolean: Boolean,\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst { kResistStopPropagation, SymbolDispose } = require('./primordials')\nconst AbortSignal = globalThis.AbortSignal || require('abort-controller').AbortSignal\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\nconst validateAbortSignal = (signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nconst validateFunction = (value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n}\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob,\n deprecate(fn, message) {\n return fn\n },\n addAbortListener:\n require('events').addAbortListener ||\n function addAbortListener(signal, listener) {\n if (signal === undefined) {\n throw new ERR_INVALID_ARG_TYPE('signal', 'AbortSignal', signal)\n }\n validateAbortSignal(signal, 'signal')\n validateFunction(listener, 'listener')\n let removeEventListener\n if (signal.aborted) {\n queueMicrotask(() => listener())\n } else {\n signal.addEventListener('abort', listener, {\n __proto__: null,\n once: true,\n [kResistStopPropagation]: true\n })\n removeEventListener = () => {\n signal.removeEventListener('abort', listener)\n }\n }\n return {\n __proto__: null,\n [SymbolDispose]() {\n var _removeEventListener\n ;(_removeEventListener = removeEventListener) === null || _removeEventListener === undefined\n ? undefined\n : _removeEventListener()\n }\n }\n },\n AbortSignalAny:\n AbortSignal.any ||\n function AbortSignalAny(signals) {\n // Fast path if there is only one signal.\n if (signals.length === 1) {\n return signals[0]\n }\n const ac = new AbortController()\n const abort = () => ac.abort()\n signals.forEach((signal) => {\n validateAbortSignal(signal, 'signals')\n signal.addEventListener('abort', abort, {\n once: true\n })\n })\n ac.signal.addEventListener(\n 'abort',\n () => {\n signals.forEach((signal) => signal.removeEventListener('abort', abort))\n },\n {\n once: true\n }\n )\n return ac.signal\n }\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { setDefaultHighWaterMark, getDefaultHighWaterMark } = require('./internal/streams/state')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDestroyed = utils.isDestroyed\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.isWritable = utils.isWritable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nStream.setDefaultHighWaterMark = setDefaultHighWaterMark\nStream.getDefaultHighWaterMark = getDefaultHighWaterMark\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('../../lib/stream.js')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/BlankNode\"), exports);\n__exportStar(require(\"./lib/DataFactory\"), exports);\n__exportStar(require(\"./lib/DefaultGraph\"), exports);\n__exportStar(require(\"./lib/Literal\"), exports);\n__exportStar(require(\"./lib/NamedNode\"), exports);\n__exportStar(require(\"./lib/Quad\"), exports);\n__exportStar(require(\"./lib/Variable\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlankNode = void 0;\n/**\n * A term that represents an RDF blank node with a label.\n */\nclass BlankNode {\n constructor(value) {\n this.termType = 'BlankNode';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'BlankNode' && other.value === this.value;\n }\n}\nexports.BlankNode = BlankNode;\n//# sourceMappingURL=BlankNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataFactory = void 0;\nconst BlankNode_1 = require(\"./BlankNode\");\nconst DefaultGraph_1 = require(\"./DefaultGraph\");\nconst Literal_1 = require(\"./Literal\");\nconst NamedNode_1 = require(\"./NamedNode\");\nconst Quad_1 = require(\"./Quad\");\nconst Variable_1 = require(\"./Variable\");\nlet dataFactoryCounter = 0;\n/**\n * A factory for instantiating RDF terms and quads.\n */\nclass DataFactory {\n constructor(options) {\n this.blankNodeCounter = 0;\n options = options || {};\n this.blankNodePrefix = options.blankNodePrefix || `df_${dataFactoryCounter++}_`;\n }\n /**\n * @param value The IRI for the named node.\n * @return A new instance of NamedNode.\n * @see NamedNode\n */\n namedNode(value) {\n return new NamedNode_1.NamedNode(value);\n }\n /**\n * @param value The optional blank node identifier.\n * @return A new instance of BlankNode.\n * If the `value` parameter is undefined a new identifier\n * for the blank node is generated for each call.\n * @see BlankNode\n */\n blankNode(value) {\n return new BlankNode_1.BlankNode(value || `${this.blankNodePrefix}${this.blankNodeCounter++}`);\n }\n /**\n * @param value The literal value.\n * @param languageOrDatatype The optional language or datatype.\n * If `languageOrDatatype` is a NamedNode,\n * then it is used for the value of `NamedNode.datatype`.\n * Otherwise `languageOrDatatype` is used for the value\n * of `NamedNode.language`.\n * @return A new instance of Literal.\n * @see Literal\n */\n literal(value, languageOrDatatype) {\n return new Literal_1.Literal(value, languageOrDatatype);\n }\n /**\n * This method is optional.\n * @param value The variable name\n * @return A new instance of Variable.\n * @see Variable\n */\n variable(value) {\n return new Variable_1.Variable(value);\n }\n /**\n * @return An instance of DefaultGraph.\n */\n defaultGraph() {\n return DefaultGraph_1.DefaultGraph.INSTANCE;\n }\n /**\n * @param subject The quad subject term.\n * @param predicate The quad predicate term.\n * @param object The quad object term.\n * @param graph The quad graph term.\n * @return A new instance of Quad.\n * @see Quad\n */\n quad(subject, predicate, object, graph) {\n return new Quad_1.Quad(subject, predicate, object, graph || this.defaultGraph());\n }\n /**\n * Create a deep copy of the given term using this data factory.\n * @param original An RDF term.\n * @return A deep copy of the given term.\n */\n fromTerm(original) {\n // TODO: remove nasty any casts when this TS bug has been fixed:\n // https://github.com/microsoft/TypeScript/issues/26933\n switch (original.termType) {\n case 'NamedNode':\n return this.namedNode(original.value);\n case 'BlankNode':\n return this.blankNode(original.value);\n case 'Literal':\n if (original.language) {\n return this.literal(original.value, original.language);\n }\n if (!original.datatype.equals(Literal_1.Literal.XSD_STRING)) {\n return this.literal(original.value, this.fromTerm(original.datatype));\n }\n return this.literal(original.value);\n case 'Variable':\n return this.variable(original.value);\n case 'DefaultGraph':\n return this.defaultGraph();\n case 'Quad':\n return this.quad(this.fromTerm(original.subject), this.fromTerm(original.predicate), this.fromTerm(original.object), this.fromTerm(original.graph));\n }\n }\n /**\n * Create a deep copy of the given quad using this data factory.\n * @param original An RDF quad.\n * @return A deep copy of the given quad.\n */\n fromQuad(original) {\n return this.fromTerm(original);\n }\n /**\n * Reset the internal blank node counter.\n */\n resetBlankNodeCounter() {\n this.blankNodeCounter = 0;\n }\n}\nexports.DataFactory = DataFactory;\n//# sourceMappingURL=DataFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultGraph = void 0;\n/**\n * A singleton term instance that represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass DefaultGraph {\n constructor() {\n this.termType = 'DefaultGraph';\n this.value = '';\n // Private constructor\n }\n equals(other) {\n return !!other && other.termType === 'DefaultGraph';\n }\n}\nexports.DefaultGraph = DefaultGraph;\nDefaultGraph.INSTANCE = new DefaultGraph();\n//# sourceMappingURL=DefaultGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Literal = void 0;\nconst NamedNode_1 = require(\"./NamedNode\");\n/**\n * A term that represents an RDF literal, containing a string with an optional language tag or datatype.\n */\nclass Literal {\n constructor(value, languageOrDatatype) {\n this.termType = 'Literal';\n this.value = value;\n if (typeof languageOrDatatype === 'string') {\n this.language = languageOrDatatype;\n this.datatype = Literal.RDF_LANGUAGE_STRING;\n }\n else if (languageOrDatatype) {\n this.language = '';\n this.datatype = languageOrDatatype;\n }\n else {\n this.language = '';\n this.datatype = Literal.XSD_STRING;\n }\n }\n equals(other) {\n return !!other && other.termType === 'Literal' && other.value === this.value &&\n other.language === this.language && other.datatype.equals(this.datatype);\n }\n}\nexports.Literal = Literal;\nLiteral.RDF_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString');\nLiteral.XSD_STRING = new NamedNode_1.NamedNode('http://www.w3.org/2001/XMLSchema#string');\n//# sourceMappingURL=Literal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NamedNode = void 0;\n/**\n * A term that contains an IRI.\n */\nclass NamedNode {\n constructor(value) {\n this.termType = 'NamedNode';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'NamedNode' && other.value === this.value;\n }\n}\nexports.NamedNode = NamedNode;\n//# sourceMappingURL=NamedNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Quad = void 0;\n/**\n * An instance of DefaultGraph represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass Quad {\n constructor(subject, predicate, object, graph) {\n this.termType = 'Quad';\n this.value = '';\n this.subject = subject;\n this.predicate = predicate;\n this.object = object;\n this.graph = graph;\n }\n equals(other) {\n // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n return !!other && (other.termType === 'Quad' || !other.termType) &&\n this.subject.equals(other.subject) &&\n this.predicate.equals(other.predicate) &&\n this.object.equals(other.object) &&\n this.graph.equals(other.graph);\n }\n}\nexports.Quad = Quad;\n//# sourceMappingURL=Quad.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variable = void 0;\n/**\n * A term that represents a variable.\n */\nclass Variable {\n constructor(value) {\n this.termType = 'Variable';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'Variable' && other.value === this.value;\n }\n}\nexports.Variable = Variable;\n//# sourceMappingURL=Variable.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/Resolve\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeDotSegmentsOfPath = exports.removeDotSegments = exports.resolve = void 0;\n/**\n * Convert the given relative IRI to an absolute IRI\n * by taking into account the given optional baseIRI.\n *\n * @param {string} relativeIRI The relative IRI to convert to an absolute IRI.\n * @param {string} baseIRI The optional base IRI.\n * @return {string} an absolute IRI.\n */\nfunction resolve(relativeIRI, baseIRI) {\n baseIRI = baseIRI || '';\n const baseFragmentPos = baseIRI.indexOf('#');\n // Ignore any fragments in the base IRI\n if (baseFragmentPos > 0) {\n baseIRI = baseIRI.substr(0, baseFragmentPos);\n }\n // Convert empty value directly to base IRI\n if (!relativeIRI.length) {\n // At this point, the baseIRI MUST be absolute, otherwise we error\n if (baseIRI.indexOf(':') < 0) {\n throw new Error(`Found invalid baseIRI '${baseIRI}' for value '${relativeIRI}'`);\n }\n return baseIRI;\n }\n // If the value starts with a query character, concat directly (but strip the existing query)\n if (relativeIRI.startsWith('?')) {\n const baseQueryPos = baseIRI.indexOf('?');\n if (baseQueryPos > 0) {\n baseIRI = baseIRI.substr(0, baseQueryPos);\n }\n return baseIRI + relativeIRI;\n }\n // If the value starts with a fragment character, concat directly\n if (relativeIRI.startsWith('#')) {\n return baseIRI + relativeIRI;\n }\n // Ignore baseIRI if it is empty\n if (!baseIRI.length) {\n const relativeColonPos = relativeIRI.indexOf(':');\n if (relativeColonPos < 0) {\n throw new Error(`Found invalid relative IRI '${relativeIRI}' for a missing baseIRI`);\n }\n return removeDotSegmentsOfPath(relativeIRI, relativeColonPos);\n }\n // Ignore baseIRI if the value is absolute\n const valueColonPos = relativeIRI.indexOf(':');\n if (valueColonPos >= 0) {\n return removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n // At this point, the baseIRI MUST be absolute, otherwise we error\n const baseColonPos = baseIRI.indexOf(':');\n if (baseColonPos < 0) {\n throw new Error(`Found invalid baseIRI '${baseIRI}' for value '${relativeIRI}'`);\n }\n const baseIRIScheme = baseIRI.substr(0, baseColonPos + 1);\n // Inherit the baseIRI scheme if the value starts with '//'\n if (relativeIRI.indexOf('//') === 0) {\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n // Check cases where '://' occurs in the baseIRI, and where there is no '/' after a ':' anymore.\n let baseSlashAfterColonPos;\n if (baseIRI.indexOf('//', baseColonPos) === baseColonPos + 1) {\n // If there is no additional '/' after the '//'.\n baseSlashAfterColonPos = baseIRI.indexOf('/', baseColonPos + 3);\n if (baseSlashAfterColonPos < 0) {\n // If something other than a '/' follows the '://', append the value after a '/',\n // otherwise, prefix the value with only the baseIRI scheme.\n if (baseIRI.length > baseColonPos + 3) {\n return baseIRI + '/' + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n else {\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n }\n }\n else {\n // If there is not even a single '/' after the ':'\n baseSlashAfterColonPos = baseIRI.indexOf('/', baseColonPos + 1);\n if (baseSlashAfterColonPos < 0) {\n // If we don't have a '/' after the ':',\n // prefix the value with only the baseIRI scheme.\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n }\n // If the value starts with a '/', then prefix it with everything before the first effective slash of the base IRI.\n if (relativeIRI.indexOf('/') === 0) {\n return baseIRI.substr(0, baseSlashAfterColonPos) + removeDotSegments(relativeIRI);\n }\n let baseIRIPath = baseIRI.substr(baseSlashAfterColonPos);\n const baseIRILastSlashPos = baseIRIPath.lastIndexOf('/');\n // Ignore everything after the last '/' in the baseIRI path\n if (baseIRILastSlashPos >= 0 && baseIRILastSlashPos < baseIRIPath.length - 1) {\n baseIRIPath = baseIRIPath.substr(0, baseIRILastSlashPos + 1);\n // Also remove the first character of the relative path if it starts with '.' (and not '..' or './')\n // This change is only allowed if there is something else following the path\n if (relativeIRI[0] === '.' && relativeIRI[1] !== '.' && relativeIRI[1] !== '/' && relativeIRI[2]) {\n relativeIRI = relativeIRI.substr(1);\n }\n }\n // Prefix the value with the baseIRI path where\n relativeIRI = baseIRIPath + relativeIRI;\n // Remove dot segment from the IRI\n relativeIRI = removeDotSegments(relativeIRI);\n // Prefix our transformed value with the part of the baseIRI until the first '/' after the first ':'.\n return baseIRI.substr(0, baseSlashAfterColonPos) + relativeIRI;\n}\nexports.resolve = resolve;\n/**\n * Remove dot segments from the given path,\n * as described in https://www.ietf.org/rfc/rfc3986.txt (page 32).\n * @param {string} path An IRI path.\n * @return {string} A path, will always start with a '/'.\n */\nfunction removeDotSegments(path) {\n // Prepare a buffer with segments between each '/.\n // Each segment represents an array of characters.\n const segmentBuffers = [];\n let i = 0;\n while (i < path.length) {\n // Remove '/.' or '/..'\n switch (path[i]) {\n case '/':\n if (path[i + 1] === '.') {\n if (path[i + 2] === '.') {\n // Start a new segment if we find an invalid character after the '.'\n if (!isCharacterAllowedAfterRelativePathSegment(path[i + 3])) {\n segmentBuffers.push([]);\n i++;\n break;\n }\n // Go to parent directory,\n // so we remove a parent segment\n segmentBuffers.pop();\n // Ensure that we end with a slash if there is a trailing '/..'\n if (!path[i + 3]) {\n segmentBuffers.push([]);\n }\n i += 3;\n }\n else {\n // Start a new segment if we find an invalid character after the '.'\n if (!isCharacterAllowedAfterRelativePathSegment(path[i + 2])) {\n segmentBuffers.push([]);\n i++;\n break;\n }\n // Ensure that we end with a slash if there is a trailing '/.'\n if (!path[i + 2]) {\n segmentBuffers.push([]);\n }\n // Go to the current directory,\n // so we do nothing\n i += 2;\n }\n }\n else {\n // Start a new segment\n segmentBuffers.push([]);\n i++;\n }\n break;\n case '#':\n case '?':\n // Query and fragment string should be appended unchanged\n if (!segmentBuffers.length) {\n segmentBuffers.push([]);\n }\n segmentBuffers[segmentBuffers.length - 1].push(path.substr(i));\n // Break the while loop\n i = path.length;\n break;\n default:\n // Not a special character, just append it to our buffer\n if (!segmentBuffers.length) {\n segmentBuffers.push([]);\n }\n segmentBuffers[segmentBuffers.length - 1].push(path[i]);\n i++;\n break;\n }\n }\n return '/' + segmentBuffers.map((buffer) => buffer.join('')).join('/');\n}\nexports.removeDotSegments = removeDotSegments;\n/**\n * Removes dot segments of the given IRI.\n * @param {string} iri An IRI (or part of IRI).\n * @param {number} colonPosition The position of the first ':' in the IRI.\n * @return {string} The IRI where dot segments were removed.\n */\nfunction removeDotSegmentsOfPath(iri, colonPosition) {\n // Determine where we should start looking for the first '/' that indicates the start of the path\n let searchOffset = colonPosition + 1;\n if (colonPosition >= 0) {\n if (iri[colonPosition + 1] === '/' && iri[colonPosition + 2] === '/') {\n searchOffset = colonPosition + 3;\n }\n }\n else {\n if (iri[0] === '/' && iri[1] === '/') {\n searchOffset = 2;\n }\n }\n // Determine the path\n const pathSeparator = iri.indexOf('/', searchOffset);\n if (pathSeparator < 0) {\n return iri;\n }\n const base = iri.substr(0, pathSeparator);\n const path = iri.substr(pathSeparator);\n // Remove dot segments from the path\n return base + removeDotSegments(path);\n}\nexports.removeDotSegmentsOfPath = removeDotSegmentsOfPath;\nfunction isCharacterAllowedAfterRelativePathSegment(character) {\n return !character || character === '#' || character === '?' || character === '/';\n}\n//# sourceMappingURL=Resolve.js.map","import rdf from '@rdfjs/data-model'\nimport toReadable from 'duplex-to/readable.js'\nimport { JsonLdParser } from 'jsonld-streaming-parser'\nimport { Transform } from 'readable-stream'\n\nconst relativeIriProtocol = 'null:'\n\nfunction termCleanup (factory) {\n return term => {\n if (term.termType !== 'NamedNode') {\n return null\n }\n\n if (!term.value.startsWith(relativeIriProtocol)) {\n return null\n }\n\n // remove dummy protocol workaround for relative IRIs\n return factory.namedNode(term.value.slice(relativeIriProtocol.length))\n }\n}\n\nfunction quadCleanup (factory) {\n const cleanup = termCleanup(factory)\n\n return quad => {\n const subject = cleanup(quad.subject)\n const predicate = cleanup(quad.predicate)\n const object = cleanup(quad.object)\n const graph = cleanup(quad.graph)\n\n if (subject || predicate || object || graph) {\n return factory.quad(\n subject || quad.subject,\n predicate || quad.predicate,\n object || quad.object,\n graph || quad.graph\n )\n }\n\n return quad\n }\n}\n\nclass ParserStream {\n constructor (input, { baseIRI = relativeIriProtocol, context = null, documentLoader, factory = rdf } = {}) {\n const parser = new JsonLdParser({\n baseIRI,\n context,\n dataFactory: factory,\n documentLoader,\n streamingProfile: false\n })\n\n input.pipe(parser)\n\n const cleanup = quadCleanup(factory)\n\n const transform = new Transform({\n objectMode: true,\n transform: (quad, encoding, callback) => {\n callback(null, cleanup(quad))\n }\n })\n\n parser.on('context', context => {\n Object.entries(context).forEach(([prefix, iri]) => {\n transform.emit('prefix', prefix, factory.namedNode(iri))\n })\n })\n parser.on('error', err => transform.destroy(err))\n parser.pipe(transform)\n\n return toReadable(transform)\n }\n}\n\nexport default ParserStream\n","import Sink from '@rdfjs/sink'\nimport ParserStream from './lib/ParserStream.js'\n\nclass Parser extends Sink {\n constructor (options) {\n super(ParserStream, options)\n }\n}\n\nexport default Parser\n"],"names":["SymbolDispose","AbortError","codes","isNodeStream","isWebStream","kControllerErrorFunction","eos","ERR_INVALID_ARG_TYPE","addAbortListener","validateAbortSignal","signal","name","module","exports","addAbortSignal","stream","addAbortSignalNoValidate","onAbort","destroy","undefined","cause","reason","aborted","disposable","StringPrototypeSlice","SymbolIterator","TypedArrayPrototypeSet","Uint8Array","Buffer","inspect","constructor","this","head","tail","length","push","v","entry","data","next","unshift","shift","ret","clear","join","s","p","concat","n","alloc","allocUnsafe","i","consume","hasStrings","slice","_getString","_getBuffer","first","c","str","retLen","buf","buffer","byteOffset","Symbol","for","_","options","depth","customInspect","pipeline","Duplex","destroyer","isReadable","isWritable","isTransformStream","isWritableStream","isReadableStream","ERR_INVALID_ARG_VALUE","ERR_MISSING_ARGS","streams","from","orgStreams","idx","ondrain","onfinish","onreadable","onclose","d","onfinished","err","cb","readable","writable","writableObjectMode","readableObjectMode","_write","chunk","encoding","callback","write","_final","end","on","writer","getWriter","async","ready","catch","close","toRead","_read","read","reader","getReader","value","done","_destroy","process","aggregateTwoErrors","ERR_MULTIPLE_CALLBACK","kIsDestroyed","isDestroyed","isFinished","isServerRequest","kDestroy","kConstruct","checkError","w","r","stack","errored","_readableState","_writableState","destroyed","constructed","once","er","self","called","onDestroy","closed","nextTick","emitErrorCloseNT","emitCloseNT","emitErrorNT","closeEmitted","emitClose","emit","errorEmitted","undestroy","reading","ended","endEmitted","finalCalled","prefinished","ending","finished","errorOrDestroy","sync","autoDestroy","construct","_construct","listenerCount","constructNT","onConstruct","emitConstructNT","isRequest","setHeader","abort","emitCloseLegacy","emitErrorCloseLegacy","socket","req","ObjectDefineProperties","ObjectGetOwnPropertyDescriptor","ObjectKeys","ObjectSetPrototypeOf","Readable","Writable","prototype","keys","method","call","allowHalfOpen","webStreamsAdapters","duplexify","lazyWebStreams","__proto__","writableHighWaterMark","writableBuffer","writableLength","writableFinished","writableCorked","writableEnded","writableNeedDrain","get","set","fromWeb","pair","newStreamDuplexFromReadableWritablePair","toWeb","duplex","newReadableWritablePairFromDuplex","body","bufferModule","isIterable","isReadableNodeStream","isWritableNodeStream","isDuplexNodeStream","ERR_INVALID_RETURN_VALUE","createDeferredPromise","Blob","globalThis","isBlob","b","AbortController","FunctionPrototypeCall","Duplexify","super","fromAsyncGen","fn","promise","resolve","ac","_promise","_resolve","final","_duplexify","wrap","objectMode","then","val","arrayBuffer","ERR_STREAM_PREMATURE_CLOSE","kEmptyObject","validateFunction","validateObject","validateBoolean","Promise","PromisePrototypeThen","isClosed","isReadableFinished","isReadableErrored","isWritableFinished","isWritableErrored","willEmitClose","_willEmitClose","kIsClosedPromise","nop","_options$readable","_options$writable","arguments","eosWeb","wState","rState","onlegacyfinish","readableFinished","onend","onerror","onclosed","onrequest","error","cleanup","removeListener","endCallback","originalCallback","args","apply","isAborted","resolverFn","opts","_opts","autoCleanup","reject","SymbolAsyncIterator","ERR_STREAM_NULL_VALUES","iterable","iterator","isAsync","highWaterMark","hadError","hasThrow","throw","return","res","e","ArrayIsArray","EventEmitter","EE","Stream","prependListener","emitter","event","_events","pipe","dest","source","ondata","pause","resume","_isStdio","didOnEnd","ERR_OUT_OF_RANGE","validateInteger","kWeakHandler","kResistStopPropagation","staticCompose","deprecate","ArrayPrototypePush","Boolean","MathFloor","Number","NumberIsNaN","PromiseReject","PromiseResolve","kEmpty","kEof","compose","composedStream","map","concurrency","filter","queue","signalOpt","cnt","onCatch","afterItemProcessed","maybeResume","pump","asIndexedPairs","index","_options$signal","some","unused","every","find","result","forEach","forEachFn","filterFn","ReduceAwareErrMissingArgs","message","reduce","reducer","initialValue","_options$signal2","hasInitialValue","addEventListener","gotAnyItemFromStream","_options$signal3","toArray","_options$signal4","flatMap","values","toIntegerOrInfinity","number","drop","_options$signal5","_options$signal6","take","_options$signal7","_options$signal8","streamReturningOperators","promiseReturningOperators","PassThrough","Transform","_transform","destroyImpl","ERR_STREAM_DESTROYED","writing","popCallback","pop","makeAsyncIterable","fromReadable","pumpToNode","finish","onresolve","wait","off","pumpToWeb","pipelineImpl","outerSignal","lastStreamCleanup","finishImpl","destroys","finishCount","_disposable","code","isLastStream","onError","_ret","_ret2","pt","src","dst","endFn","ArrayPrototypeIndexOf","NumberIsInteger","NumberParseInt","SafeSet","SymbolAsyncDispose","ReadableState","debug","BufferList","getHighWaterMark","getDefaultHighWaterMark","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kPaused","StringDecoder","kObjectMode","kEnded","kEndEmitted","kReading","kConstructed","kSync","kNeedReadable","kEmittedReadable","kReadableListening","kResumeScheduled","kErrorEmitted","kEmitClose","kAutoDestroy","kDestroyed","kClosed","kCloseEmitted","kMultiAwaitDrain","kReadingMore","kDataEmitted","makeBitMapDescriptor","bit","enumerable","state","isDuplex","pipes","flowing","defaultEncoding","awaitDrainWriters","decoder","needReadable","maybeReadMore","readableAddChunk","addToFront","toString","_isUint8Array","_uint8ArrayToBuffer","onEofChunk","addChunk","dataEmitted","emitReadable","emittedReadable","readableListening","resumeScheduled","multiAwaitDrain","readingMore","_undestroy","captureRejectionSymbol","readableEnded","isPaused","setEncoding","enc","content","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","len","pipeOnDrain","size","delete","updateReadableListening","nReadingNextTick","resume_","streamToAsyncIterator","iter","createAsyncIterator","destroyOnReturn","fromList","endReadable","endReadableNT","endWritableNT","NaN","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanedUp","needDrain","includes","add","dests","splice","ev","addListener","removeAllListeners","paused","streamKeys","j","bind","readableDidRead","readableAborted","readableHighWaterMark","readableBuffer","readableFlowing","readableLength","readableEncoding","pipesCount","_fromList","readableStream","newStreamReadableFromReadableStream","streamReadable","newReadableStreamFromStreamReadable","_ref","_src$readableObjectMo","defaultHighWaterMarkBytes","defaultHighWaterMarkObjectMode","highWaterMarkFrom","duplexKey","setDefaultHighWaterMark","hwm","kCallback","transform","flush","_flush","prefinish","SymbolFor","kIsErrored","kIsReadable","kIsWritable","kIsDisturbed","obj","strict","_obj$_readableState","_obj$_writableState","pipeThrough","cancel","isWritableEnded","isReadableEnded","_stream$_writableStat","_stream$_writableStat2","writableErrored","_stream$_readableStat","_stream$_readableStat2","readableErrored","_closed","isOutgoingMessage","_defaultKeepAlive","_removedConnection","_removedContLen","isServerResponse","_sent100","_stream$req","_consuming","_dumped","upgradeOrConnect","isDisturbed","_stream$kIsDisturbed","isErrored","_ref2","_ref3","_ref4","_ref5","_stream$kIsErrored","_stream$_readableStat3","_stream$_writableStat3","_stream$_readableStat4","_stream$_writableStat4","ArrayPrototypeSlice","Error","FunctionPrototypeSymbolHasInstance","ObjectDefineProperty","StringPrototypeToLowerCase","SymbolHasInstance","WritableState","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_ALREADY_FINISHED","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","kOnFinished","noDecode","decodeStrings","corked","bufferProcessing","onwrite","writecb","writelen","afterWriteTickInfo","resetBuffer","pendingcb","buffered","bufferedIndex","allBuffers","allNoop","writev","_writev","clearBuffer","finishMaybe","isEncoding","writeOrBuffer","doWrite","onwriteError","errorBuffer","count","afterWriteTick","afterWrite","_state$errored","onfinishCallbacks","_state$errored2","bufferedLength","chunks","needFinish","callFinal","onFinish","getBuffer","object","cork","uncork","setDefaultEncoding","writableAborted","writableStream","newStreamWritableFromWritableStream","streamWritable","newWritableStreamFromStreamWritable","ArrayPrototypeIncludes","ArrayPrototypeJoin","ArrayPrototypeMap","NumberMAX_SAFE_INTEGER","NumberMIN_SAFE_INTEGER","ObjectPrototypeHasOwnProperty","RegExpPrototypeExec","String","StringPrototypeToUpperCase","StringPrototypeTrim","hideStackFrames","ERR_SOCKET_BAD_PORT","ERR_UNKNOWN_SIGNAL","normalizeEncoding","isAsyncFunction","isArrayBufferView","signals","isInt32","isUint32","octalReg","modeDesc","parseFileMode","def","validateUint32","min","max","validateInt32","positive","validateString","validateNumber","validateOneOf","oneOf","allowed","getOwnPropertyValueOrDefault","key","defaultValue","allowArray","allowFunction","nullable","validateDictionary","validateArray","minLength","validateStringArray","validateBooleanArray","validateAbortSignalArray","indexedName","validateSignalName","validateBuffer","validateEncoding","normalizedEncoding","validatePort","port","allowZero","validatePlainFunction","validateUndefined","validateUnion","union","linkValueRegExp","validateLinkHeaderFormat","validateLinkHeaderValue","hints","hintsLength","link","CustomStream","promises","originalDestroy","Object","defineProperty","configurable","format","AggregateError","CustomAggregateError","kIsNodeError","kTypes","classRegExp","nodeInternalPrefix","assert","ERR_INTERNAL_ASSERTION","addNumericalSeparator","start","getMessage","msg","expectedLength","match","E","Base","NodeError","defineProperties","hidden","innerError","outerError","Array","isArray","errors","expected","actual","endsWith","types","instances","other","toLowerCase","test","pos","indexOf","last","_actual$constructor","inspected","colors","TypeError","type","input","_value$constructor","a","range","received","isInteger","Math","abs","RangeError","el","sep","ArrayPrototypePop","thisArgs","instance","Function","hasInstance","floor","isNaN","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseInt","props","prop","getOwnPropertyDescriptor","target","proto","setPrototypeOf","PromisePrototypeCatch","thenFn","catchFn","ReflectApply","Reflect","RegExpPrototypeTest","Set","toUpperCase","trim","asyncIterator","dispose","asyncDispose","AbortSignal","AsyncFunction","getPrototypeOf","freeze","rej","promisify","debuglog","replace","_unused","replacement","toFixed","JSON","stringify","ctor","is","arr","ArrayBuffer","isView","listener","removeEventListener","queueMicrotask","_removeEventListener","AbortSignalAny","any","custom","customPromisify","ERR_ILLEGAL_CONSTRUCTOR","utils","op","byteLength","pl","lastArg","serialize","toJSON","t","cv","ci","comma","sort","support","searchParams","blob","formData","isDataView","DataView","isPrototypeOf","viewClasses","normalizeName","normalizeValue","iteratorFor","items","Headers","headers","append","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","onload","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","view","chars","fromCharCode","bufferClone","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","rejected","text","decode","json","parse","oldValue","has","hasOwnProperty","thisArg","entries","methods","normalizeMethod","upcased","Request","url","credentials","mode","referrer","form","split","bytes","decodeURIComponent","parseHeaders","rawHeaders","preProcessedHeaders","line","parts","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","location","DOMException","create","fetch","init","request","xhr","XMLHttpRequest","abortXhr","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","onreadystatechange","readyState","send","polyfill","COMPATIBLE_ENCODING_PATTERN","WS_TRIM_PATTERN","WS_CHAR_PATTERN","WS_FOLD_PATTERN","DELIMITER_PATTERN","WS_DELIMITER_PATTERN","TOKEN_PATTERN","STATE","IDLE","URI","ATTR","hasWhitespace","skipWhitespace","offset","needsQuotes","shallowCompareObjects","object1","object2","Link","refs","rel","links","attr","setUnique","ref","expandRelations","uri","attrValue","isSingleOccurenceAttr","parseExtendedValue","formatAttribute","isCompatibleEncoding","isTokenAttr","escapeQuotes","rels","assign","exec","language","formatExtendedAttribute","encodedValue","isBuffer","encodeURIComponent","item","__createBinding","o","m","k","k2","desc","__esModule","__exportStar","ContextParser","relative_to_absolute_iri_1","ErrorCoded_1","FetchDocumentLoader_1","JsonLdContextNormalized_1","Util_1","documentLoader","FetchDocumentLoader","documentCache","validateContext","skipValidation","expandContentTypeToBase","remoteContextsDepthLimit","redirectSchemaOrgHttps","static","strictRange","errorCode","ErrorCoded","Util","REGEX_LANGUAGE_TAG","strictValues","ERROR_CODES","INVALID_BASE_DIRECTION","REGEX_DIRECTION_TAG","idifyReverseTerms","context","isValidKeyword","INVALID_IRI_MAPPING","isPotentialKeyword","expandPrefixedTerms","contextRaw","getContextRaw","EXPAND_KEYS_BLACKLIST","isReservedInternalKeyword","keyValue","ALIAS_DOMAIN_BLACKLIST","KEYWORD_REDEFINITION","ALIAS_RANGE_BLACKLIST","getContextValueId","INVALID_KEYWORD_ALIAS","INVALID_TERM_DEFINITION","isPrefixValue","changed","expandTerm","id","canAddIdEntry","isValidIri","newId","expandedType","normalize","processingMode","normalizeLanguageTags","lowercase","containersToHash","newValue","containerValue","applyScopedProtected","expandOptions","isTermProtected","isSimpleTermDefinitionPrefix","validateKeywordRedefinitions","contextBefore","contextAfter","deepEqual","PROTECTED_TERM_REDEFINITION","validate","valueType","substr","INVALID_VOCAB_MAPPING","INVALID_BASE_IRI","validateLanguage","INVALID_DEFAULT_LANGUAGE","INVALID_VERSION_VALUE","validateDirection","INVALID_CONTEXT_ENTRY","INVALID_PROPAGATE_VALUE","getPrefix","CYCLIC_IRI_MAPPING","isValidIriWeak","JsonLdContextNormalized","isCompactIri","objectKey","objectValue","INVALID_TYPE_MAPPING","INVALID_REVERSE_PROPERTY","CONTAINERS_1_0","INVALID_CONTAINER_MAPPING","CONTAINERS","INVALID_LANGUAGE_MAPPING","INVALID_PREFIX_VALUE","INVALID_NEST_VALUE","applyBaseEntry","inheritFromParent","parentContext","baseIRI","external","normalizeContextIri","contextIri","_a","startsWith","ignoreScopedContexts","ignoreProtection","ignoreRemoteScopedContexts","INVALID_SCOPED_CONTEXT","minimalProcessing","internalOptions","DEFAULT_PROCESSING_MODE","remoteContexts","CONTEXT_OVERFLOW","hasProtectedTerms","INVALID_CONTEXT_NULLIFICATION","overriddenLoad","getOverriddenLoad","parsedStringContext","load","contextIris","contexts","all","subContext","reducedContexts","accContextPromise","contextEntry","accContext","importContext","INVALID_IMPORT_VALUE","loadImportContext","defaultExpandOptions","newContext","overlappingKeys","parseInnerContexts","newContextWrapped","INVALID_LOCAL_CONTEXT","cached","document","LOADING_REMOTE_CONTEXT_FAILED","INVALID_REMOTE_CONTEXT","RECURSIVE_CONTEXT_INCLUSION","importContextIri","http_link_header_1","fetcher","accept","mediaType","colonPos","alternateUrl","linkHeader","LOADING_DOCUMENT_FAILED","term","expandVocab","contextValue","validIriMapping","prefix","vocab","vocabRelative","base","potentialKeyword","contextPrefixValue","allowPrefixForcing","allowVocabRelativeToBase","compactIri","iri","shortestPrefixing","suffix","allowPrefixNonGenDelims","separatorPos","charAt","isPrefixIriEndingWithGenDelim","keyword","KEYWORD_REGEX","prefixIri","ENDS_WITH_GEN_DELIM","IRI_REGEX","IRI_REGEX_WEAK","VALID_KEYWORDS","objKeys1","objKeys2","value1","value2","ContextTree","subTrees","getContext","subTree","setContext","removeContext","path","JsonLdParser","Parser","jsonld_context_parser_1","readable_stream_1","EntryHandlerArrayValue_1","EntryHandlerContainer_1","EntryHandlerInvalidFallback_1","EntryHandlerPredicate_1","EntryHandlerKeywordContext_1","EntryHandlerKeywordGraph_1","EntryHandlerKeywordId_1","EntryHandlerKeywordIncluded_1","EntryHandlerKeywordNest_1","EntryHandlerKeywordType_1","EntryHandlerKeywordUnknownFallback_1","EntryHandlerKeywordValue_1","ParsingContext_1","EntryHandlerKeywordAnnotation_1","parsingContext","ParsingContext","parser","util","dataFactory","jsonParser","contextJobs","typeJobs","contextAwaitingJobs","lastDepth","lastKeys","lastOnValueJob","attachJsonParserListeners","streamingProfile","wellKnownMediaTypes","MULTIPLE_CONTEXT_LINK_HEADERS","ignoreMissingContextLinkHeader","contentType","import","parsed","output","lastDepthCheck","flushStacks","listPointer","listPointerStack","quad","rdfRest","rdfNil","getDefaultGraph","listId","listHead","idStack","listRootDepth","EntryHandlerContainer","isBufferableContainerHandler","pendingContainerFlushBuffers","flushBuffer","unaliasKeyword","parentKey","unaliasKeywordParent","emittedStack","handleKey","INVALID_REVERSE_PROPERTY_MAP","inProperty","validationStack","property","validationResult","validateKey","valid","isLiteral","entryHandler","ENTRY_HANDLERS","testResult","handle","isStackProcessor","processingStack","validateValueIndexes","unaliasedKeywordCacheStack","processingType","graphStack","graphContainerTermStack","jsonLiteralStack","literalStack","annotationsBuffer","subjects","subjectsWasDefined","blankNode","valueBuffer","unidentifiedValuesBuffer","subject","depthOffsetGraph","getDepthOffsetGraph","graphs","getGraphContainerValue","graph","bufferedValue","emitQuadChecked","predicate","reverse","isEmbedded","subGraphBuffer","getUnidentifiedGraphBufferSafe","graphBuffer","unidentifiedGraphsBuffer","termType","topLevelProperties","emitQuad","emitError","INVALID_ANNOTATION","annotationsBufferParent","getAnnotationsBufferSafe","annotation","isPropertyHandler","onValue","fill","isParsingContextInner","valueJobCb","newOnValueJob","contextTree","jobs","job","executeBufferedJobs","applicableTypeJobs","applicableTypeJobIds","typeJob","isPrefixArray","sortedTypeJobs","job1","job2","sortedApplicableTypeJobIds","jobId","EntryHandlerArrayValue","EntryHandlerKeywordContext","EntryHandlerKeywordId","EntryHandlerKeywordIncluded","EntryHandlerKeywordGraph","EntryHandlerKeywordNest","EntryHandlerKeywordType","EntryHandlerKeywordValue","EntryHandlerKeywordAnnotation","EntryHandlerKeywordUnknownFallback","EntryHandlerPredicate","EntryHandlerInvalidFallback","ContextTree_1","JsonLdParser_1","contextParser","skipContextValidation","produceGeneralizedRdf","allowSubjectList","defaultGraph","rdfDirection","streamingProfileAllowOutOfOrderPlainType","rdfstar","rdfstarReverseInEmbedded","activeProcessingMode","parseFloat","rootContext","parseContext","activeVersion","PROCESSING_MODE_CONFLICT","keysOriginal","contextData","getContextPropagationAware","contextKeyEntry","scopedContext","propagate","originalDepth","hasApplicablePropertyScopedContext","lastKey","lastKeyValue","pendingFlushBuffer","emitContext","getUnidentifiedValueBufferSafe","getExpandOptions","EXPAND_OPTIONS","shiftStack","depthOffset","deeperIdStack","rdf_data_factory_1","canonicalizeJson","DataFactory","rdfFirst","namedNode","RDF","rdfType","rdfJson","contextKey","fallback","getContextValue","isContextValueReverse","needle","haystack","indexHashes","existingIndexValue","CONFLICTING_INDEXES","getContextValueType","literal","valueToJsonString","getContextValueContainer","getContextSelfOrPropertyScoped","unaliasKeywords","valueLanguage","valueDirection","valueIndex","subValue","INVALID_VALUE_OBJECT","INVALID_VALUE_OBJECT_VALUE","INVALID_INDEX_VALUE","INVALID_LANGUAGE_TAGGED_VALUE","INVALID_LANGUAGE_TAGGED_STRING","nullableTermToArray","createLanguageDirectionLiteral","INVALID_TYPED_VALUE","typeTerm","createVocabOrBaseTerm","valueToTerm","INVALID_SET_OR_LIST_OBJECT","listValue","graphContainerEntries","valueId","valueTerm","INVALID_ID_VALUE","resourceToTerm","stringValueToTerm","XSD_BOOLEAN","XSD_INTEGER","XSD_DOUBLE","predicateToTerm","expanded","intToString","datatype","isFinite","toExponential","defaultDatatype","contextType","contextLanguage","getContextValueLanguage","contextDirection","getContextValueDirection","direction","valueNode","disableCache","cachedUnaliasedKeyword","unliased","hash","newHash","containers","getContainerHandler","isComplexGraphContainer","validateReverseSubject","INVALID_REVERSE_PROPERTY_VALUE","depthContainer","graphContainerIndex","getContainerGraphIndex","graphId","keyUnaliased","getContainerKey","lastValidDepth","validateReverseInEmbeddedNode","INVALID_EMBEDDED_NODE","emitAnnotation","annotationQuad","nestedAnnotation","nestedAnnotations","XSD","ContainerHandlerIdentifier","canCombineWithGraph","maybeId","ids","equals","handlePendingContainerFlushBuffers","ContainerHandlerIndex","graphContainer","indexKey","indexPropertyRaw","getContextValueIndex","indexProperty","indexValues","indexValue","handlePredicateObject","ContainerHandlerLanguage","INVALID_LANGUAGE_MAP_VALUE","ContainerHandlerType","containerTypeType","entryHasIdentifier","keyOriginal","listRootKey","keyOption","handleListElement","valueOriginal","listRootKeys","newLinkTerm","linkTerm","ContainerHandlerIdentifier_1","ContainerHandlerIndex_1","ContainerHandlerLanguage_1","ContainerHandlerType_1","isSimpleGraphContainer","checkGraphContainer","containersSelf","containersParent","containerHandleName","CONTAINER_HANDLERS","handler","containerName","isAnnotation","depthProperties","getPropertiesDepth","depthPropertiesGraph","atGraph","newAnnotation","existingAnnotation","objects","isPropertyReverse","parentDepthOffset","isPropertyInEmbeddedNode","isPropertyInAnnotationObject","listValueContainer","EntryHandlerKeyword","EntryHandlerKeyword_1","INVALID_STREAMING_KEY_ORDER","valueKeys","COLLIDING_KEYWORDS","INVALID_INCLUDED_VALUE","valueUnliased","elements","element","INVALID_TYPE_VALUE","hasTypedScopedContext","typeContext","keywordType","VALID_KEYWORDS_TYPES","INVALID_REVERSE_VALUE","BlankNode","BlankNode_1","DefaultGraph_1","Literal_1","NamedNode_1","Quad_1","Variable_1","dataFactoryCounter","blankNodeCounter","blankNodePrefix","NamedNode","languageOrDatatype","Literal","variable","Variable","DefaultGraph","INSTANCE","Quad","fromTerm","original","XSD_STRING","fromQuad","resetBlankNodeCounter","RDF_LANGUAGE_STRING","relativeIRI","baseFragmentPos","baseQueryPos","relativeColonPos","removeDotSegmentsOfPath","valueColonPos","baseColonPos","baseIRIScheme","baseSlashAfterColonPos","removeDotSegments","baseIRIPath","baseIRILastSlashPos","lastIndexOf","segmentBuffers","isCharacterAllowedAfterRelativePathSegment","colonPosition","searchOffset","pathSeparator","character","relativeIriProtocol","termCleanup","factory","quadCleanup","ParserStream"],"sourceRoot":""} \ No newline at end of file diff --git a/js/42.4800fe99.js b/js/42.4800fe99.js deleted file mode 100644 index 9a906b7..0000000 --- a/js/42.4800fe99.js +++ /dev/null @@ -1,2 +0,0 @@ -(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[42],{26713:function(e,t,n){var{Buffer:r}=n(48764),o={},a=o.LEFT_BRACE=1,s=o.RIGHT_BRACE=2,l=o.LEFT_BRACKET=3,d=o.RIGHT_BRACKET=4,u=o.COLON=5,c=o.COMMA=6,f=o.TRUE=7,h=o.FALSE=8,p=o.NULL=9,b=o.STRING=10,g=o.NUMBER=11,y=o.START=17,w=o.STOP=18,_=o.TRUE1=33,m=o.TRUE2=34,S=o.TRUE3=35,E=o.FALSE1=49,v=o.FALSE2=50,R=o.FALSE3=51,A=o.FALSE4=52,C=o.NULL1=65,x=o.NULL2=66,T=o.NULL3=67,k=o.NUMBER1=81,I=o.NUMBER3=83,O=o.STRING1=97,N=o.STRING2=98,D=o.STRING3=99,L=o.STRING4=100,P=o.STRING5=101,j=o.STRING6=102,M=o.VALUE=113,F=o.KEY=114,V=o.OBJECT=129,$=o.ARRAY=130,W="\\".charCodeAt(0),U="/".charCodeAt(0),B="\b".charCodeAt(0),H="\f".charCodeAt(0),G="\n".charCodeAt(0),K="\r".charCodeAt(0),J="\t".charCodeAt(0),q=65536;function Y(e){return r.alloc?r.alloc(e):new r(e)}function z(){this.tState=y,this.value=void 0,this.string=void 0,this.stringBuffer=Y(q),this.stringBufferOffset=0,this.unicode=void 0,this.highSurrogate=void 0,this.key=void 0,this.mode=void 0,this.stack=[],this.state=M,this.bytes_remaining=0,this.bytes_in_sequence=0,this.temp_buffs={2:Y(2),3:Y(3),4:Y(4)},this.offset=-1}z.toknam=function(e){for(var t=Object.keys(o),n=0,r=t.length;n=q&&(this.string+=this.stringBuffer.toString("utf8"),this.stringBufferOffset=0),this.stringBuffer[this.stringBufferOffset++]=e},X.appendStringBuf=function(e,t,n){var r=e.length;"number"===typeof t&&(r="number"===typeof n?n<0?e.length-t+n:n-t:e.length-t),r<0&&(r=0),this.stringBufferOffset+r>q&&(this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0),e.copy(this.stringBuffer,this.stringBufferOffset,t,n),this.stringBufferOffset+=r},X.write=function(e){var t;"string"===typeof e&&(e=new r(e));for(var n=0,i=e.length;n=48&&t<64)this.string=String.fromCharCode(t),this.tState=I;else if(32!==t&&9!==t&&10!==t&&13!==t)return this.charError(e,n)}else if(this.tState===O)if(t=e[n],this.bytes_remaining>0){for(var o=0;o=128){if(t<=193||t>244)return this.onError(new Error("Invalid UTF-8 character at position "+n+" in state "+z.toknam(this.tState)));if(t>=194&&t<=223&&(this.bytes_in_sequence=2),t>=224&&t<=239&&(this.bytes_in_sequence=3),t>=240&&t<=244&&(this.bytes_in_sequence=4),this.bytes_in_sequence+n>e.length){for(var g=0;g<=e.length-1-n;g++)this.temp_buffs[this.bytes_in_sequence][g]=e[n+g];this.bytes_remaining=n+this.bytes_in_sequence-e.length,n=e.length-1}else this.appendStringBuf(e,n,n+this.bytes_in_sequence),n=n+this.bytes_in_sequence-1}else if(34===t)this.tState=y,this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0,this.onToken(b,this.string),this.offset+=r.byteLength(this.string,"utf8")+1,this.string=void 0;else if(92===t)this.tState=N;else{if(!(t>=32))return this.charError(e,n);this.appendStringChar(t)}else if(this.tState===N)if(t=e[n],34===t)this.appendStringChar(t),this.tState=O;else if(92===t)this.appendStringChar(W),this.tState=O;else if(47===t)this.appendStringChar(U),this.tState=O;else if(98===t)this.appendStringChar(B),this.tState=O;else if(102===t)this.appendStringChar(H),this.tState=O;else if(110===t)this.appendStringChar(G),this.tState=O;else if(114===t)this.appendStringChar(K),this.tState=O;else if(116===t)this.appendStringChar(J),this.tState=O;else{if(117!==t)return this.charError(e,n);this.unicode="",this.tState=D}else if(this.tState===D||this.tState===L||this.tState===P||this.tState===j){if(t=e[n],!(t>=48&&t<64||t>64&&t<=70||t>96&&t<=102))return this.charError(e,n);if(this.unicode+=String.fromCharCode(t),this.tState++===j){var w=parseInt(this.unicode,16);this.unicode=void 0,void 0!==this.highSurrogate&&w>=56320&&w<57344?(this.appendStringBuf(new r(String.fromCharCode(this.highSurrogate,w))),this.highSurrogate=void 0):void 0===this.highSurrogate&&w>=55296&&w<56320?this.highSurrogate=w:(void 0!==this.highSurrogate&&(this.appendStringBuf(new r(String.fromCharCode(this.highSurrogate))),this.highSurrogate=void 0),this.appendStringBuf(new r(String.fromCharCode(w)))),this.tState=O}}else if(this.tState===k||this.tState===I)switch(t=e[n],t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 46:case 101:case 69:case 43:case 45:this.string+=String.fromCharCode(t),this.tState=I;break;default:this.tState=y;var M=this.numberReviver(this.string);if(M)return M;this.offset+=this.string.length-1,this.string=void 0,n--;break}else if(this.tState===_){if(114!==e[n])return this.charError(e,n);this.tState=m}else if(this.tState===m){if(117!==e[n])return this.charError(e,n);this.tState=S}else if(this.tState===S){if(101!==e[n])return this.charError(e,n);this.tState=y,this.onToken(f,!0),this.offset+=3}else if(this.tState===E){if(97!==e[n])return this.charError(e,n);this.tState=v}else if(this.tState===v){if(108!==e[n])return this.charError(e,n);this.tState=R}else if(this.tState===R){if(115!==e[n])return this.charError(e,n);this.tState=A}else if(this.tState===A){if(101!==e[n])return this.charError(e,n);this.tState=y,this.onToken(h,!1),this.offset+=4}else if(this.tState===C){if(117!==e[n])return this.charError(e,n);this.tState=x}else if(this.tState===x){if(108!==e[n])return this.charError(e,n);this.tState=T}else if(this.tState===T){if(108!==e[n])return this.charError(e,n);this.tState=y,this.onToken(p,null),this.offset+=3}},X.onToken=function(e,t){},X.parseError=function(e,t){this.tState=w,this.onError(new Error("Unexpected "+z.toknam(e)+(t?"("+JSON.stringify(t)+")":"")+" in state "+z.toknam(this.state)))},X.push=function(){this.stack.push({value:this.value,key:this.key,mode:this.mode})},X.pop=function(){var e=this.value,t=this.stack.pop();this.value=t.value,this.key=t.key,this.mode=t.mode,this.emit(e),this.mode||(this.state=M)},X.emit=function(e){this.mode&&(this.state=c),this.onValue(e)},X.onValue=function(e){},X.onToken=function(e,t){if(this.state===M)if(e===b||e===g||e===f||e===h||e===p)this.value&&(this.value[this.key]=t),this.emit(t);else if(e===a)this.push(),this.value?this.value=this.value[this.key]={}:this.value={},this.key=void 0,this.state=F,this.mode=V;else if(e===l)this.push(),this.value?this.value=this.value[this.key]=[]:this.value=[],this.key=0,this.mode=$,this.state=M;else if(e===s){if(this.mode!==V)return this.parseError(e,t);this.pop()}else{if(e!==d)return this.parseError(e,t);if(this.mode!==$)return this.parseError(e,t);this.pop()}else if(this.state===F)if(e===b)this.key=t,this.state=u;else{if(e!==s)return this.parseError(e,t);this.pop()}else if(this.state===u){if(e!==u)return this.parseError(e,t);this.state=M}else{if(this.state!==c)return this.parseError(e,t);if(e===c)this.mode===$?(this.key++,this.state=M):this.mode===V&&(this.state=F);else{if(!(e===d&&this.mode===$||e===s&&this.mode===V))return this.parseError(e,t);this.pop()}}},X.numberReviver=function(e){var t=Number(e);if(isNaN(t))return this.charError(buffer,i);e.match(/[0-9]+/)==e&&t.toString()!=e?this.onToken(b,e):this.onToken(g,t)},z.C=o,e.exports=z},16720:function(e,t,n){"use strict";const{AbortError:r,codes:i}=n(59861),{isNodeStream:o,isWebStream:a,kControllerErrorFunction:s}=n(60488),l=n(81246),{ERR_INVALID_ARG_TYPE:d}=i,u=(e,t)=>{if("object"!==typeof e||!("aborted"in e))throw new d(t,"AbortSignal",e)};e.exports.addAbortSignal=function(t,n){if(u(t,"signal"),!o(n)&&!a(n))throw new d("stream",["ReadableStream","WritableStream","Stream"],n);return e.exports.addAbortSignalNoValidate(t,n)},e.exports.addAbortSignalNoValidate=function(e,t){if("object"!==typeof e||!("aborted"in e))return t;const n=o(t)?()=>{t.destroy(new r(void 0,{cause:e.reason}))}:()=>{t[s](new r(void 0,{cause:e.reason}))};return e.aborted?n():(e.addEventListener("abort",n),l(t,(()=>e.removeEventListener("abort",n)))),t}},67720:function(e,t,n){"use strict";const{StringPrototypeSlice:r,SymbolIterator:i,TypedArrayPrototypeSet:o,Uint8Array:a}=n(19015),{Buffer:s}=n(48764),{inspect:l}=n(41090);e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(e){const t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}shift(){if(0===this.length)return;const e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(0===this.length)return"";let t=this.head,n=""+t.data;while(null!==(t=t.next))n+=e+t.data;return n}concat(e){if(0===this.length)return s.alloc(0);const t=s.allocUnsafe(e>>>0);let n=this.head,r=0;while(n)o(t,n.data,r),r+=n.data.length,n=n.next;return t}consume(e,t){const n=this.head.data;if(eo.length)){e===o.length?(t+=o,++i,n.next?this.head=n.next:this.head=this.tail=null):(t+=r(o,0,e),this.head=n,n.data=r(o,e));break}t+=o,e-=o.length,++i}while(null!==(n=n.next));return this.length-=i,t}_getBuffer(e){const t=s.allocUnsafe(e),n=e;let r=this.head,i=0;do{const s=r.data;if(!(e>s.length)){e===s.length?(o(t,s,n-e),++i,r.next?this.head=r.next:this.head=this.tail=null):(o(t,new a(s.buffer,s.byteOffset,e),n-e),this.head=r,r.data=s.slice(e));break}o(t,s,n-e),e-=s.length,++i}while(null!==(r=r.next));return this.length-=i,t}[Symbol.for("nodejs.util.inspect.custom")](e,t){return l(this,{...t,depth:0,customInspect:!1})}}},35223:function(e,t,n){"use strict";const{pipeline:r}=n(45891),i=n(53880),{destroyer:o}=n(51662),{isNodeStream:a,isReadable:s,isWritable:l,isWebStream:d,isTransformStream:u,isWritableStream:c,isReadableStream:f}=n(60488),{AbortError:h,codes:{ERR_INVALID_ARG_VALUE:p,ERR_MISSING_ARGS:b}}=n(59861),g=n(81246);e.exports=function(...e){if(0===e.length)throw new b("streams");if(1===e.length)return i.from(e[0]);const t=[...e];if("function"===typeof e[0]&&(e[0]=i.from(e[0])),"function"===typeof e[e.length-1]){const t=e.length-1;e[t]=i.from(e[t])}for(let r=0;r0&&!(l(e[r])||c(e[r])||u(e[r])))throw new p(`streams[${r}]`,t[r],"must be writable")}let n,y,w,_,m;function S(e){const t=_;_=null,t?t(e):e?m.destroy(e):A||R||m.destroy()}const E=e[0],v=r(e,S),R=!!(l(E)||c(E)||u(E)),A=!!(s(v)||f(v)||u(v));if(m=new i({writableObjectMode:!(null===E||void 0===E||!E.writableObjectMode),readableObjectMode:!(null===v||void 0===v||!v.writableObjectMode),writable:R,readable:A}),R){if(a(E))m._write=function(e,t,r){E.write(e,t)?r():n=r},m._final=function(e){E.end(),y=e},E.on("drain",(function(){if(n){const e=n;n=null,e()}}));else if(d(E)){const e=u(E)?E.writable:E,t=e.getWriter();m._write=async function(e,n,r){try{await t.ready,t.write(e).catch((()=>{})),r()}catch(i){r(i)}},m._final=async function(e){try{await t.ready,t.close().catch((()=>{})),y=e}catch(n){e(n)}}}const e=u(v)?v.readable:v;g(e,(()=>{if(y){const e=y;y=null,e()}}))}if(A)if(a(v))v.on("readable",(function(){if(w){const e=w;w=null,e()}})),v.on("end",(function(){m.push(null)})),m._read=function(){while(1){const e=v.read();if(null===e)return void(w=m._read);if(!m.push(e))return}};else if(d(v)){const e=u(v)?v.readable:v,t=e.getReader();m._read=async function(){while(1)try{const{value:e,done:n}=await t.read();if(!m.push(e))return;if(n)return void m.push(null)}catch{return}}}return m._destroy=function(e,t){e||null===_||(e=new h),w=null,n=null,y=null,null===_?t(e):(_=t,a(v)&&o(v,e))},m}},51662:function(e,t,n){"use strict";const r=n(34155),{aggregateTwoErrors:i,codes:{ERR_MULTIPLE_CALLBACK:o},AbortError:a}=n(59861),{Symbol:s}=n(19015),{kDestroyed:l,isDestroyed:d,isFinished:u,isServerRequest:c}=n(60488),f=s("kDestroy"),h=s("kConstruct");function p(e,t,n){e&&(e.stack,t&&!t.errored&&(t.errored=e),n&&!n.errored&&(n.errored=e))}function b(e,t){const n=this._readableState,r=this._writableState,o=r||n;return null!==r&&void 0!==r&&r.destroyed||null!==n&&void 0!==n&&n.destroyed?("function"===typeof t&&t(),this):(p(e,r,n),r&&(r.destroyed=!0),n&&(n.destroyed=!0),o.constructed?g(this,e,t):this.once(f,(function(n){g(this,i(n,e),t)})),this)}function g(e,t,n){let i=!1;function o(t){if(i)return;i=!0;const o=e._readableState,a=e._writableState;p(t,a,o),a&&(a.closed=!0),o&&(o.closed=!0),"function"===typeof n&&n(t),t?r.nextTick(y,e,t):r.nextTick(w,e)}try{e._destroy(t||null,o)}catch(t){o(t)}}function y(e,t){_(e,t),w(e)}function w(e){const t=e._readableState,n=e._writableState;n&&(n.closeEmitted=!0),t&&(t.closeEmitted=!0),(null!==n&&void 0!==n&&n.emitClose||null!==t&&void 0!==t&&t.emitClose)&&e.emit("close")}function _(e,t){const n=e._readableState,r=e._writableState;null!==r&&void 0!==r&&r.errorEmitted||null!==n&&void 0!==n&&n.errorEmitted||(r&&(r.errorEmitted=!0),n&&(n.errorEmitted=!0),e.emit("error",t))}function m(){const e=this._readableState,t=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=!1===e.readable,e.endEmitted=!1===e.readable),t&&(t.constructed=!0,t.destroyed=!1,t.closed=!1,t.closeEmitted=!1,t.errored=null,t.errorEmitted=!1,t.finalCalled=!1,t.prefinished=!1,t.ended=!1===t.writable,t.ending=!1===t.writable,t.finished=!1===t.writable)}function S(e,t,n){const i=e._readableState,o=e._writableState;if(null!==o&&void 0!==o&&o.destroyed||null!==i&&void 0!==i&&i.destroyed)return this;null!==i&&void 0!==i&&i.autoDestroy||null!==o&&void 0!==o&&o.autoDestroy?e.destroy(t):t&&(t.stack,o&&!o.errored&&(o.errored=t),i&&!i.errored&&(i.errored=t),n?r.nextTick(_,e,t):_(e,t))}function E(e,t){if("function"!==typeof e._construct)return;const n=e._readableState,i=e._writableState;n&&(n.constructed=!1),i&&(i.constructed=!1),e.once(h,t),e.listenerCount(h)>1||r.nextTick(v,e)}function v(e){let t=!1;function n(n){if(t)return void S(e,null!==n&&void 0!==n?n:new o);t=!0;const i=e._readableState,a=e._writableState,s=a||i;i&&(i.constructed=!0),a&&(a.constructed=!0),s.destroyed?e.emit(f,n):n?S(e,n,!0):r.nextTick(R,e)}try{e._construct((e=>{r.nextTick(n,e)}))}catch(i){r.nextTick(n,i)}}function R(e){e.emit(h)}function A(e){return(null===e||void 0===e?void 0:e.setHeader)&&"function"===typeof e.abort}function C(e){e.emit("close")}function x(e,t){e.emit("error",t),r.nextTick(C,e)}function T(e,t){e&&!d(e)&&(t||u(e)||(t=new a),c(e)?(e.socket=null,e.destroy(t)):A(e)?e.abort():A(e.req)?e.req.abort():"function"===typeof e.destroy?e.destroy(t):"function"===typeof e.close?e.close():t?r.nextTick(x,e,t):r.nextTick(C,e),e.destroyed||(e[l]=!0))}e.exports={construct:E,destroyer:T,destroy:b,undestroy:m,errorOrDestroy:S}},53880:function(e,t,n){"use strict";const{ObjectDefineProperties:r,ObjectGetOwnPropertyDescriptor:i,ObjectKeys:o,ObjectSetPrototypeOf:a}=n(19015);e.exports=d;const s=n(41676),l=n(83906);a(d.prototype,s.prototype),a(d,s);{const e=o(l.prototype);for(let t=0;t{c=!1,e&&g(t,e),p(e)})),d._write=function(e,t,i){n.write(e,t)?i():r=i},d._final=function(e){n.end(),i=e},n.on("drain",(function(){if(r){const e=r;r=null,e()}})),n.on("finish",(function(){if(i){const e=i;i=null,e()}}))),u&&(f(t,(e=>{u=!1,e&&g(t,e),p(e)})),t.on("readable",(function(){if(s){const e=s;s=null,e()}})),t.on("end",(function(){d.push(null)})),d._read=function(){while(1){const e=t.read();if(null===e)return void(s=d._read);if(!d.push(e))return}}),d._destroy=function(e,o){e||null===l||(e=new h),s=null,r=null,i=null,null===l?o(e):(l=o,g(n,e),g(t,e))},d}e.exports=function e(t,n){if(c(t))return t;if(d(t))return x({readable:t});if(u(t))return x({writable:t});if(l(t))return x({writable:!1,readable:!1});if("function"===typeof t){const{value:e,write:i,final:o,destroy:a}=C(t);if(s(e))return m(A,e,{objectMode:!0,write:i,final:o,destroy:a});const l=null===e||void 0===e?void 0:e.then;if("function"===typeof l){let t;const n=R(l,e,(e=>{if(null!=e)throw new b("nully","body",e)}),(e=>{g(t,e)}));return t=new A({objectMode:!0,readable:!1,write:i,final(e){o((async()=>{try{await n,r.nextTick(e,null)}catch(t){r.nextTick(e,t)}}))},destroy:a})}throw new b("Iterable, AsyncIterable or AsyncFunction",n,e)}if(E(t))return e(t.arrayBuffer());if(s(t))return m(A,t,{objectMode:!0,writable:!1});if("object"===typeof(null===t||void 0===t?void 0:t.writable)||"object"===typeof(null===t||void 0===t?void 0:t.readable)){const n=null!==t&&void 0!==t&&t.readable?d(null===t||void 0===t?void 0:t.readable)?null===t||void 0===t?void 0:t.readable:e(t.readable):void 0,r=null!==t&&void 0!==t&&t.writable?u(null===t||void 0===t?void 0:t.writable)?null===t||void 0===t?void 0:t.writable:e(t.writable):void 0;return x({readable:n,writable:r})}const i=null===t||void 0===t?void 0:t.then;if("function"===typeof i){let e;return R(i,t,(t=>{null!=t&&e.push(t),e.push(null)}),(t=>{g(e,t)})),e=new A({objectMode:!0,writable:!1,read(){}})}throw new p(n,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],t)}},81246:function(e,t,n){const r=n(34155),{AbortError:i,codes:o}=n(59861),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:s}=o,{kEmptyObject:l,once:d}=n(41090),{validateAbortSignal:u,validateFunction:c,validateObject:f,validateBoolean:h}=n(46088),{Promise:p,PromisePrototypeThen:b}=n(19015),{isClosed:g,isReadable:y,isReadableNodeStream:w,isReadableStream:_,isReadableFinished:m,isReadableErrored:S,isWritable:E,isWritableNodeStream:v,isWritableStream:R,isWritableFinished:A,isWritableErrored:C,isNodeStream:x,willEmitClose:T,kIsClosedPromise:k}=n(60488);function I(e){return e.setHeader&&"function"===typeof e.abort}const O=()=>{};function N(e,t,n){var o,h;if(2===arguments.length?(n=t,t=l):null==t?t=l:f(t,"options"),c(n,"callback"),u(t.signal,"options.signal"),n=d(n),_(e)||R(e))return D(e,t,n);if(!x(e))throw new a("stream",["ReadableStream","WritableStream","Stream"],e);const p=null!==(o=t.readable)&&void 0!==o?o:w(e),b=null!==(h=t.writable)&&void 0!==h?h:v(e),k=e._writableState,N=e._readableState,L=()=>{e.writable||M()};let P=T(e)&&w(e)===p&&v(e)===b,j=A(e,!1);const M=()=>{j=!0,e.destroyed&&(P=!1),(!P||e.readable&&!p)&&(p&&!F||n.call(e))};let F=m(e,!1);const V=()=>{F=!0,e.destroyed&&(P=!1),(!P||e.writable&&!b)&&(b&&!j||n.call(e))},$=t=>{n.call(e,t)};let W=g(e);const U=()=>{W=!0;const t=C(e)||S(e);return t&&"boolean"!==typeof t?n.call(e,t):p&&!F&&w(e,!0)&&!m(e,!1)?n.call(e,new s):!b||j||A(e,!1)?void n.call(e):n.call(e,new s)},B=()=>{W=!0;const t=C(e)||S(e);if(t&&"boolean"!==typeof t)return n.call(e,t);n.call(e)},H=()=>{e.req.on("finish",M)};I(e)?(e.on("complete",M),P||e.on("abort",U),e.req?H():e.on("request",H)):b&&!k&&(e.on("end",L),e.on("close",L)),P||"boolean"!==typeof e.aborted||e.on("aborted",U),e.on("end",V),e.on("finish",M),!1!==t.error&&e.on("error",$),e.on("close",U),W?r.nextTick(U):null!==k&&void 0!==k&&k.errorEmitted||null!==N&&void 0!==N&&N.errorEmitted?P||r.nextTick(B):(p||P&&!y(e)||!j&&!1!==E(e))&&(b||P&&!E(e)||!F&&!1!==y(e))?N&&e.req&&e.aborted&&r.nextTick(B):r.nextTick(B);const G=()=>{n=O,e.removeListener("aborted",U),e.removeListener("complete",M),e.removeListener("abort",U),e.removeListener("request",H),e.req&&e.req.removeListener("finish",M),e.removeListener("end",L),e.removeListener("close",L),e.removeListener("finish",M),e.removeListener("end",V),e.removeListener("error",$),e.removeListener("close",U)};if(t.signal&&!W){const o=()=>{const r=n;G(),r.call(e,new i(void 0,{cause:t.signal.reason}))};if(t.signal.aborted)r.nextTick(o);else{const r=n;n=d(((...n)=>{t.signal.removeEventListener("abort",o),r.apply(e,n)})),t.signal.addEventListener("abort",o)}}return G}function D(e,t,n){let o=!1,a=O;if(t.signal)if(a=()=>{o=!0,n.call(e,new i(void 0,{cause:t.signal.reason}))},t.signal.aborted)r.nextTick(a);else{const r=n;n=d(((...n)=>{t.signal.removeEventListener("abort",a),r.apply(e,n)})),t.signal.addEventListener("abort",a)}const s=(...t)=>{o||r.nextTick((()=>n.apply(e,t)))};return b(e[k].promise,s,s),O}function L(e,t){var n;let r=!1;return null===t&&(t=l),null!==(n=t)&&void 0!==n&&n.cleanup&&(h(t.cleanup,"cleanup"),r=t.cleanup),new p(((n,i)=>{const o=N(e,t,(e=>{r&&o(),e?i(e):n()}))}))}e.exports=N,e.exports.finished=L},85293:function(e,t,n){"use strict";const r=n(34155),{PromisePrototypeThen:i,SymbolAsyncIterator:o,SymbolIterator:a}=n(19015),{Buffer:s}=n(48764),{ERR_INVALID_ARG_TYPE:l,ERR_STREAM_NULL_VALUES:d}=n(59861).codes;function u(e,t,n){let u,c;if("string"===typeof t||t instanceof s)return new e({objectMode:!0,...n,read(){this.push(t),this.push(null)}});if(t&&t[o])c=!0,u=t[o]();else{if(!t||!t[a])throw new l("iterable",["Iterable"],t);c=!1,u=t[a]()}const f=new e({objectMode:!0,highWaterMark:1,...n});let h=!1;async function p(e){const t=void 0!==e&&null!==e,n="function"===typeof u.throw;if(t&&n){const{value:t,done:n}=await u.throw(e);if(await t,n)return}if("function"===typeof u.return){const{value:e}=await u.return();await e}}async function b(){for(;;){try{const{value:e,done:t}=c?await u.next():u.next();if(t)f.push(null);else{const t=e&&"function"===typeof e.then?await e:e;if(null===t)throw h=!1,new d;if(f.push(t))continue;h=!1}}catch(e){f.destroy(e)}break}}return f._read=function(){h||(h=!0,b())},f._destroy=function(e,t){i(p(e),(()=>r.nextTick(t,e)),(n=>r.nextTick(t,n||e)))},f}e.exports=u},90634:function(e,t,n){"use strict";const{ArrayIsArray:r,ObjectSetPrototypeOf:i}=n(19015),{EventEmitter:o}=n(17187);function a(e){o.call(this,e)}function s(e,t,n){if("function"===typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?r(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}i(a.prototype,o.prototype),i(a,o),a.prototype.pipe=function(e,t){const n=this;function r(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function i(){n.readable&&n.resume&&n.resume()}n.on("data",r),e.on("drain",i),e._isStdio||t&&!1===t.end||(n.on("end",l),n.on("close",d));let a=!1;function l(){a||(a=!0,e.end())}function d(){a||(a=!0,"function"===typeof e.destroy&&e.destroy())}function u(e){c(),0===o.listenerCount(this,"error")&&this.emit("error",e)}function c(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",l),n.removeListener("close",d),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",c),n.removeListener("close",c),e.removeListener("close",c)}return s(n,"error",u),s(e,"error",u),n.on("end",c),n.on("close",c),e.on("close",c),e.emit("pipe",n),e},e.exports={Stream:a,prependListener:s}},19350:function(e,t,n){"use strict";const r=globalThis.AbortController||n(28599).AbortController,{codes:{ERR_INVALID_ARG_VALUE:i,ERR_INVALID_ARG_TYPE:o,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:s},AbortError:l}=n(59861),{validateAbortSignal:d,validateInteger:u,validateObject:c}=n(46088),f=n(19015).Symbol("kWeak"),{finished:h}=n(81246),p=n(35223),{addAbortSignalNoValidate:b}=n(16720),{isWritable:g,isNodeStream:y}=n(60488),{ArrayPrototypePush:w,MathFloor:_,Number:m,NumberIsNaN:S,Promise:E,PromiseReject:v,PromisePrototypeThen:R,Symbol:A}=n(19015),C=A("kEmpty"),x=A("kEof");function T(e,t){if(null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),y(e)&&!g(e))throw new i("stream",e,"must be writable");const n=p(this,e);return null!==t&&void 0!==t&&t.signal&&b(t.signal,n),n}function k(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal");let n=1;return null!=(null===t||void 0===t?void 0:t.concurrency)&&(n=_(t.concurrency)),u(n,"concurrency",1),async function*(){var i,o;const a=new r,s=this,d=[],u=a.signal,c={signal:u},f=()=>a.abort();let h,p;null!==t&&void 0!==t&&null!==(i=t.signal)&&void 0!==i&&i.aborted&&f(),null===t||void 0===t||null===(o=t.signal)||void 0===o||o.addEventListener("abort",f);let b=!1;function g(){b=!0}async function y(){try{for await(let t of s){var r;if(b)return;if(u.aborted)throw new l;try{t=e(t,c)}catch(o){t=v(o)}t!==C&&("function"===typeof(null===(r=t)||void 0===r?void 0:r.catch)&&t.catch(g),d.push(t),h&&(h(),h=null),!b&&d.length&&d.length>=n&&await new E((e=>{p=e})))}d.push(x)}catch(o){const e=v(o);R(e,void 0,g),d.push(e)}finally{var i;b=!0,h&&(h(),h=null),null===t||void 0===t||null===(i=t.signal)||void 0===i||i.removeEventListener("abort",f)}}y();try{while(1){while(d.length>0){const e=await d[0];if(e===x)return;if(u.aborted)throw new l;e!==C&&(yield e),d.shift(),p&&(p(),p=null)}await new E((e=>{h=e}))}}finally{a.abort(),b=!0,p&&(p(),p=null)}}.call(this)}function I(e=void 0){return null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal"),async function*(){let t=0;for await(const r of this){var n;if(null!==e&&void 0!==e&&null!==(n=e.signal)&&void 0!==n&&n.aborted)throw new l({cause:e.signal.reason});yield[t++,r]}}.call(this)}async function O(e,t=void 0){for await(const n of P.call(this,e,t))return!0;return!1}async function N(e,t=void 0){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);return!await O.call(this,(async(...t)=>!await e(...t)),t)}async function D(e,t){for await(const n of P.call(this,e,t))return n}async function L(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function n(t,n){return await e(t,n),C}for await(const r of k.call(this,n,t));}function P(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function n(t,n){return await e(t,n)?t:C}return k.call(this,n,t)}class j extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function M(e,t,n){var i;if("function"!==typeof e)throw new o("reducer",["Function","AsyncFunction"],e);null!=n&&c(n,"options"),null!=(null===n||void 0===n?void 0:n.signal)&&d(n.signal,"options.signal");let a=arguments.length>1;if(null!==n&&void 0!==n&&null!==(i=n.signal)&&void 0!==i&&i.aborted){const e=new l(void 0,{cause:n.signal.reason});throw this.once("error",(()=>{})),await h(this.destroy(e)),e}const s=new r,u=s.signal;if(null!==n&&void 0!==n&&n.signal){const e={once:!0,[f]:this};n.signal.addEventListener("abort",(()=>s.abort()),e)}let p=!1;try{for await(const r of this){var b;if(p=!0,null!==n&&void 0!==n&&null!==(b=n.signal)&&void 0!==b&&b.aborted)throw new l;a?t=await e(t,r,{signal:u}):(t=r,a=!0)}if(!p&&!a)throw new j}finally{s.abort()}return t}async function F(e){null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal");const t=[];for await(const r of this){var n;if(null!==e&&void 0!==e&&null!==(n=e.signal)&&void 0!==n&&n.aborted)throw new l(void 0,{cause:e.signal.reason});w(t,r)}return t}function V(e,t){const n=k.call(this,e,t);return async function*(){for await(const e of n)yield*e}.call(this)}function $(e){if(e=m(e),S(e))return 0;if(e<0)throw new s("number",">= 0",e);return e}function W(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=$(e),async function*(){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;for await(const i of this){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;e--<=0&&(yield i)}}.call(this)}function U(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=$(e),async function*(){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;for await(const i of this){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;if(!(e-- >0))return;yield i}}.call(this)}e.exports.streamReturningOperators={asIndexedPairs:I,drop:W,filter:P,flatMap:V,map:k,take:U,compose:T},e.exports.promiseReturningOperators={every:N,forEach:L,reduce:M,toArray:F,some:O,find:D}},43099:function(e,t,n){"use strict";const{ObjectSetPrototypeOf:r}=n(19015);e.exports=o;const i=n(95024);function o(e){if(!(this instanceof o))return new o(e);i.call(this,e)}r(o.prototype,i.prototype),r(o,i),o.prototype._transform=function(e,t,n){n(null,e)}},45891:function(e,t,n){const r=n(34155),{ArrayIsArray:i,Promise:o,SymbolAsyncIterator:a}=n(19015),s=n(81246),{once:l}=n(41090),d=n(51662),u=n(53880),{aggregateTwoErrors:c,codes:{ERR_INVALID_ARG_TYPE:f,ERR_INVALID_RETURN_VALUE:h,ERR_MISSING_ARGS:p,ERR_STREAM_DESTROYED:b,ERR_STREAM_PREMATURE_CLOSE:g},AbortError:y}=n(59861),{validateFunction:w,validateAbortSignal:_}=n(46088),{isIterable:m,isReadable:S,isReadableNodeStream:E,isNodeStream:v,isTransformStream:R,isWebStream:A,isReadableStream:C,isReadableEnded:x}=n(60488),T=globalThis.AbortController||n(28599).AbortController;let k,I;function O(e,t,n){let r=!1;e.on("close",(()=>{r=!0}));const i=s(e,{readable:t,writable:n},(e=>{r=!e}));return{destroy:t=>{r||(r=!0,d.destroyer(e,t||new b("pipe")))},cleanup:i}}function N(e){return w(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function D(e){if(m(e))return e;if(E(e))return L(e);throw new f("val",["Readable","Iterable","AsyncIterable"],e)}async function*L(e){I||(I=n(41676)),yield*I.prototype[a].call(e)}async function P(e,t,n,{end:r}){let i,a=null;const l=e=>{if(e&&(i=e),a){const e=a;a=null,e()}},d=()=>new o(((e,t)=>{i?t(i):a=()=>{i?t(i):e()}}));t.on("drain",l);const u=s(t,{readable:!1},l);try{t.writableNeedDrain&&await d();for await(const n of e)t.write(n)||await d();r&&t.end(),await d(),n()}catch(f){n(i!==f?c(i,f):f)}finally{u(),t.off("drain",l)}}async function j(e,t,n,{end:r}){R(t)&&(t=t.writable);const i=t.getWriter();try{for await(const t of e)await i.ready,i.write(t).catch((()=>{}));await i.ready,r&&await i.close(),n()}catch(o){try{await i.abort(o),n(o)}catch(o){n(o)}}}function M(...e){return F(e,l(N(e)))}function F(e,t,o){if(1===e.length&&i(e[0])&&(e=e[0]),e.length<2)throw new p("streams");const a=new T,s=a.signal,l=null===o||void 0===o?void 0:o.signal,d=[];function c(){L(new y)}let b,g;_(l,"options.signal"),null===l||void 0===l||l.addEventListener("abort",c);const w=[];let x,I=0;function N(e){L(e,0===--I)}function L(e,n){if(!e||b&&"ERR_STREAM_PREMATURE_CLOSE"!==b.code||(b=e),b||n){while(w.length)w.shift()(b);null===l||void 0===l||l.removeEventListener("abort",c),a.abort(),n&&(b||d.forEach((e=>e())),r.nextTick(t,b,g))}}for(let W=0;W0,G=B||!1!==(null===o||void 0===o?void 0:o.end),K=W===e.length-1;if(v(U)){if(G){const{destroy:J,cleanup:q}=O(U,B,H);w.push(J),S(U)&&K&&d.push(q)}function M(e){e&&"AbortError"!==e.name&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code&&N(e)}U.on("error",M),S(U)&&K&&d.push((()=>{U.removeListener("error",M)}))}if(0===W)if("function"===typeof U){if(x=U({signal:s}),!m(x))throw new h("Iterable, AsyncIterable or Stream","source",x)}else x=m(U)||E(U)||R(U)?U:u.from(U);else if("function"===typeof U){var F;if(R(x))x=D(null===(F=x)||void 0===F?void 0:F.readable);else x=D(x);if(x=U(x,{signal:s}),B){if(!m(x,!0))throw new h("AsyncIterable",`transform[${W-1}]`,x)}else{var $;k||(k=n(43099));const Y=new k({objectMode:!0}),z=null===($=x)||void 0===$?void 0:$.then;if("function"===typeof z)I++,z.call(x,(e=>{g=e,null!=e&&Y.write(e),G&&Y.end(),r.nextTick(N)}),(e=>{Y.destroy(e),r.nextTick(N,e)}));else if(m(x,!0))I++,P(x,Y,N,{end:G});else{if(!C(x)&&!R(x))throw new h("AsyncIterable or Promise","destination",x);{const Z=x.readable||x;I++,P(Z,Y,N,{end:G})}}x=Y;const{destroy:X,cleanup:Q}=O(x,!1,!0);w.push(X),K&&d.push(Q)}}else if(v(U)){if(E(x)){I+=2;const ee=V(x,U,N,{end:G});S(U)&&K&&d.push(ee)}else if(R(x)||C(x)){const te=x.readable||x;I++,P(te,U,N,{end:G})}else{if(!m(x))throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],x);I++,P(x,U,N,{end:G})}x=U}else if(A(U)){if(E(x))I++,j(D(x),U,N,{end:G});else if(C(x)||m(x))I++,j(x,U,N,{end:G});else{if(!R(x))throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],x);I++,j(x.readable,U,N,{end:G})}x=U}else x=u.from(U)}return(null!==s&&void 0!==s&&s.aborted||null!==l&&void 0!==l&&l.aborted)&&r.nextTick(c),x}function V(e,t,n,{end:i}){let o=!1;if(t.on("close",(()=>{o||n(new g)})),e.pipe(t,{end:!1}),i){function a(){o=!0,t.end()}x(e)?r.nextTick(a):e.once("end",a)}else n();return s(e,{readable:!0,writable:!1},(t=>{const r=e._readableState;t&&"ERR_STREAM_PREMATURE_CLOSE"===t.code&&r&&r.ended&&!r.errored&&!r.errorEmitted?e.once("end",n).once("error",n):n(t)})),s(t,{readable:!1,writable:!0},n)}e.exports={pipelineImpl:F,pipeline:M}},41676:function(e,t,n){const r=n(34155),{ArrayPrototypeIndexOf:i,NumberIsInteger:o,NumberIsNaN:a,NumberParseInt:s,ObjectDefineProperties:l,ObjectKeys:d,ObjectSetPrototypeOf:u,Promise:c,SafeSet:f,SymbolAsyncIterator:h,Symbol:p}=n(19015);e.exports=V,V.ReadableState=F;const{EventEmitter:b}=n(17187),{Stream:g,prependListener:y}=n(90634),{Buffer:w}=n(48764),{addAbortSignal:_}=n(16720),m=n(81246);let S=n(41090).debuglog("stream",(e=>{S=e}));const E=n(67720),v=n(51662),{getHighWaterMark:R,getDefaultHighWaterMark:A}=n(19234),{aggregateTwoErrors:C,codes:{ERR_INVALID_ARG_TYPE:x,ERR_METHOD_NOT_IMPLEMENTED:T,ERR_OUT_OF_RANGE:k,ERR_STREAM_PUSH_AFTER_EOF:I,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:O}}=n(59861),{validateObject:N}=n(46088),D=p("kPaused"),{StringDecoder:L}=n(32553),P=n(85293);u(V.prototype,g.prototype),u(V,g);const j=()=>{},{errorOrDestroy:M}=v;function F(e,t,r){"boolean"!==typeof r&&(r=t instanceof n(53880)),this.objectMode=!(!e||!e.objectMode),r&&(this.objectMode=this.objectMode||!(!e||!e.readableObjectMode)),this.highWaterMark=e?R(this,e,"readableHighWaterMark",r):A(!1),this.buffer=new E,this.length=0,this.pipes=[],this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.constructed=!0,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this[D]=null,this.errorEmitted=!1,this.emitClose=!e||!1!==e.emitClose,this.autoDestroy=!e||!1!==e.autoDestroy,this.destroyed=!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this.defaultEncoding=e&&e.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.multiAwaitDrain=!1,this.readingMore=!1,this.dataEmitted=!1,this.decoder=null,this.encoding=null,e&&e.encoding&&(this.decoder=new L(e.encoding),this.encoding=e.encoding)}function V(e){if(!(this instanceof V))return new V(e);const t=this instanceof n(53880);this._readableState=new F(e,this,t),e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.construct&&(this._construct=e.construct),e.signal&&!t&&_(e.signal,this)),g.call(this,e),v.construct(this,(()=>{this._readableState.needReadable&&q(this,this._readableState)}))}function $(e,t,n,r){S("readableAddChunk",t);const i=e._readableState;let o;if(i.objectMode||("string"===typeof t?(n=n||i.defaultEncoding,i.encoding!==n&&(r&&i.encoding?t=w.from(t,n).toString(i.encoding):(t=w.from(t,n),n=""))):t instanceof w?n="":g._isUint8Array(t)?(t=g._uint8ArrayToBuffer(t),n=""):null!=t&&(o=new x("chunk",["string","Buffer","Uint8Array"],t))),o)M(e,o);else if(null===t)i.reading=!1,G(e,i);else if(i.objectMode||t&&t.length>0)if(r)if(i.endEmitted)M(e,new O);else{if(i.destroyed||i.errored)return!1;W(e,i,t,!0)}else if(i.ended)M(e,new I);else{if(i.destroyed||i.errored)return!1;i.reading=!1,i.decoder&&!n?(t=i.decoder.write(t),i.objectMode||0!==t.length?W(e,i,t,!1):q(e,i)):W(e,i,t,!1)}else r||(i.reading=!1,q(e,i));return!i.ended&&(i.length0?(t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null,t.dataEmitted=!0,e.emit("data",n)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&K(e)),q(e,t)}V.prototype.destroy=v.destroy,V.prototype._undestroy=v.undestroy,V.prototype._destroy=function(e,t){t(e)},V.prototype[b.captureRejectionSymbol]=function(e){this.destroy(e)},V.prototype.push=function(e,t){return $(this,e,t,!1)},V.prototype.unshift=function(e,t){return $(this,e,t,!0)},V.prototype.isPaused=function(){const e=this._readableState;return!0===e[D]||!1===e.flowing},V.prototype.setEncoding=function(e){const t=new L(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;const n=this._readableState.buffer;let r="";for(const i of n)r+=t.write(i);return n.clear(),""!==r&&n.push(r),this._readableState.length=r.length,this};const U=1073741824;function B(e){if(e>U)throw new k("size","<= 1GiB",e);return e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++,e}function H(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:a(e)?t.flowing&&t.length?t.buffer.first().length:t.length:e<=t.length?e:t.ended?t.length:0}function G(e,t){if(S("onEofChunk"),!t.ended){if(t.decoder){const e=t.decoder.end();e&&e.length&&(t.buffer.push(e),t.length+=t.objectMode?1:e.length)}t.ended=!0,t.sync?K(e):(t.needReadable=!1,t.emittedReadable=!0,J(e))}}function K(e){const t=e._readableState;S("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(S("emitReadable",t.flowing),t.emittedReadable=!0,r.nextTick(J,e))}function J(e){const t=e._readableState;S("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||t.errored||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,te(e)}function q(e,t){!t.readingMore&&t.constructed&&(t.readingMore=!0,r.nextTick(Y,e,t))}function Y(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!1===t[D]?t.flowing=!0:e.listenerCount("data")>0?e.resume():t.readableListening||(t.flowing=null)}function Q(e){S("readable nexttick read 0"),e.read(0)}function Z(e,t){t.resumeScheduled||(t.resumeScheduled=!0,r.nextTick(ee,e,t))}function ee(e,t){S("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),te(e),t.flowing&&!t.reading&&e.read(0)}function te(e){const t=e._readableState;S("flow",t.flowing);while(t.flowing&&null!==e.read());}function ne(e,t){"function"!==typeof e.read&&(e=V.wrap(e,{objectMode:!0}));const n=re(e,t);return n.stream=e,n}async function*re(e,t){let n,r=j;function i(t){this===e?(r(),r=j):r=t}e.on("readable",i);const o=m(e,{writable:!1},(e=>{n=e?C(n,e):null,r(),r=j}));try{while(1){const t=e.destroyed?null:e.read();if(null!==t)yield t;else{if(n)throw n;if(null===n)return;await new c(i)}}}catch(a){throw n=C(n,a),n}finally{!n&&!1===(null===t||void 0===t?void 0:t.destroyOnReturn)||void 0!==n&&!e._readableState.autoDestroy?(e.off("readable",i),o()):v.destroyer(e,null)}}function ie(e,t){if(0===t.length)return null;let n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n}function oe(e){const t=e._readableState;S("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,r.nextTick(ae,t,e))}function ae(e,t){if(S("endReadableNT",e.endEmitted,e.length),!e.errored&&!e.closeEmitted&&!e.endEmitted&&0===e.length)if(e.endEmitted=!0,t.emit("end"),t.writable&&!1===t.allowHalfOpen)r.nextTick(se,t);else if(e.autoDestroy){const e=t._writableState,n=!e||e.autoDestroy&&(e.finished||!1===e.writable);n&&t.destroy()}}function se(e){const t=e.writable&&!e.writableEnded&&!e.destroyed;t&&e.end()}let le;function de(){return void 0===le&&(le={}),le}V.prototype.read=function(e){S("read",e),void 0===e?e=NaN:o(e)||(e=s(e,10));const t=this._readableState,n=e;if(e>t.highWaterMark&&(t.highWaterMark=B(e)),0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return S("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?oe(this):K(this),null;if(e=H(e,t),0===e&&t.ended)return 0===t.length&&oe(this),null;let r,i=t.needReadable;if(S("need readable",i),(0===t.length||t.length-e0?ie(e,t):null,null===r?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&oe(this)),null===r||t.errorEmitted||t.closeEmitted||(t.dataEmitted=!0,this.emit("data",r)),r},V.prototype._read=function(e){throw new T("_read()")},V.prototype.pipe=function(e,t){const n=this,i=this._readableState;1===i.pipes.length&&(i.multiAwaitDrain||(i.multiAwaitDrain=!0,i.awaitDrainWriters=new f(i.awaitDrainWriters?[i.awaitDrainWriters]:[]))),i.pipes.push(e),S("pipe count=%d opts=%j",i.pipes.length,t);const o=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr,a=o?l:_;function s(e,t){S("onunpipe"),e===n&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,c())}function l(){S("onend"),e.end()}let d;i.endEmitted?r.nextTick(a):n.once("end",a),e.on("unpipe",s);let u=!1;function c(){S("cleanup"),e.removeListener("close",g),e.removeListener("finish",w),d&&e.removeListener("drain",d),e.removeListener("error",b),e.removeListener("unpipe",s),n.removeListener("end",l),n.removeListener("end",_),n.removeListener("data",p),u=!0,d&&i.awaitDrainWriters&&(!e._writableState||e._writableState.needDrain)&&d()}function h(){u||(1===i.pipes.length&&i.pipes[0]===e?(S("false write response, pause",0),i.awaitDrainWriters=e,i.multiAwaitDrain=!1):i.pipes.length>1&&i.pipes.includes(e)&&(S("false write response, pause",i.awaitDrainWriters.size),i.awaitDrainWriters.add(e)),n.pause()),d||(d=z(n,e),e.on("drain",d))}function p(t){S("ondata");const n=e.write(t);S("dest.write",n),!1===n&&h()}function b(t){if(S("onerror",t),_(),e.removeListener("error",b),0===e.listenerCount("error")){const n=e._writableState||e._readableState;n&&!n.errorEmitted?M(e,t):e.emit("error",t)}}function g(){e.removeListener("finish",w),_()}function w(){S("onfinish"),e.removeListener("close",g),_()}function _(){S("unpipe"),n.unpipe(e)}return n.on("data",p),y(e,"error",b),e.once("close",g),e.once("finish",w),e.emit("pipe",n),!0===e.writableNeedDrain?i.flowing&&h():i.flowing||(S("pipe resume"),n.resume()),e},V.prototype.unpipe=function(e){const t=this._readableState,n={hasUnpiped:!1};if(0===t.pipes.length)return this;if(!e){const e=t.pipes;t.pipes=[],this.pause();for(let t=0;t0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,S("on readable",i.length,i.reading),i.length?K(this):i.reading||r.nextTick(Q,this))),n},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(e,t){const n=g.prototype.removeListener.call(this,e,t);return"readable"===e&&r.nextTick(X,this),n},V.prototype.off=V.prototype.removeListener,V.prototype.removeAllListeners=function(e){const t=g.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||r.nextTick(X,this),t},V.prototype.resume=function(){const e=this._readableState;return e.flowing||(S("resume"),e.flowing=!e.readableListening,Z(this,e)),e[D]=!1,this},V.prototype.pause=function(){return S("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(S("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[D]=!0,this},V.prototype.wrap=function(e){let t=!1;e.on("data",(n=>{!this.push(n)&&e.pause&&(t=!0,e.pause())})),e.on("end",(()=>{this.push(null)})),e.on("error",(e=>{M(this,e)})),e.on("close",(()=>{this.destroy()})),e.on("destroy",(()=>{this.destroy()})),this._read=()=>{t&&e.resume&&(t=!1,e.resume())};const n=d(e);for(let r=1;r{t?e?e(t):this.destroy(t):(null!=n&&this.push(n),this.push(null),e&&e())}))}function c(){this._final!==u&&u.call(this)}d.prototype._final=u,d.prototype._transform=function(e,t,n){throw new o("_transform()")},d.prototype._write=function(e,t,n){const r=this._readableState,i=this._writableState,o=r.length;this._transform(e,t,((e,t)=>{e?n(e):(null!=t&&this.push(t),i.ended||o===r.length||r.length{const e=this._writableState;e.writing||B(this,e),J(this,e)}))}function P(e,t,n,i){const o=e._writableState;if("function"===typeof n)i=n,n=o.defaultEncoding;else{if(n){if("buffer"!==n&&!b.isEncoding(n))throw new T(n)}else n=o.defaultEncoding;"function"!==typeof i&&(i=I)}if(null===t)throw new C;if(!o.objectMode)if("string"===typeof t)!1!==o.decodeStrings&&(t=b.from(t,n),n="buffer");else if(t instanceof b)n="buffer";else{if(!p._isUint8Array(t))throw new m("chunk",["string","Buffer","Uint8Array"],t);t=p._uint8ArrayToBuffer(t),n="buffer"}let a;return o.ending?a=new x:o.destroyed&&(a=new R("write")),a?(r.nextTick(i,a),k(e,a,!0),a):(o.pendingcb++,j(e,o,t,n,i))}function j(e,t,n,r,i){const o=t.objectMode?1:n.length;t.length+=o;const a=t.lengthn.bufferedIndex&&B(e,n),i?null!==n.afterWriteTickInfo&&n.afterWriteTickInfo.cb===o?n.afterWriteTickInfo.count++:(n.afterWriteTickInfo={count:1,cb:o,stream:e,state:n},r.nextTick($,n.afterWriteTickInfo)):W(e,n,1,o))):k(e,new E)}function $({stream:e,state:t,count:n,cb:r}){return t.afterWriteTickInfo=null,W(e,t,n,r)}function W(e,t,n,r){const i=!t.ending&&!e.destroyed&&0===t.length&&t.needDrain;i&&(t.needDrain=!1,e.emit("drain"));while(n-- >0)t.pendingcb--,r();t.destroyed&&U(t),J(e,t)}function U(e){if(e.writing)return;for(let i=e.bufferedIndex;i1&&e._writev){t.pendingcb-=a-1;const r=t.allNoop?I:e=>{for(let t=s;t256?(n.splice(0,s),t.bufferedIndex=0):t.bufferedIndex=s}t.bufferProcessing=!1}function H(e){return e.ending&&!e.destroyed&&e.constructed&&0===e.length&&!e.errored&&0===e.buffered.length&&!e.finished&&!e.writing&&!e.errorEmitted&&!e.closeEmitted}function G(e,t){let n=!1;function i(i){if(n)k(e,null!==i&&void 0!==i?i:E());else if(n=!0,t.pendingcb--,i){const n=t[O].splice(0);for(let e=0;e{H(t)?q(e,t):t.pendingcb--}),e,t)):H(t)&&(t.pendingcb++,q(e,t))))}function q(e,t){t.pendingcb--,t.finished=!0;const n=t[O].splice(0);for(let r=0;r>>0}const k=/^[0-7]+$/,I="must be a 32-bit unsigned integer or an octal string";function O(e,t,n){if("undefined"===typeof e&&(e=n),"string"===typeof e){if(null===h(k,e))throw new m(t,e,I);e=c(e,8)}return L(e,t),e}const N=y(((e,t,n=u,r=d)=>{if("number"!==typeof e)throw new _(t,"number",e);if(!s(e))throw new S(t,"an integer",e);if(er)throw new S(t,`>= ${n} && <= ${r}`,e)})),D=y(((e,t,n=-2147483648,r=2147483647)=>{if("number"!==typeof e)throw new _(t,"number",e);if(!s(e))throw new S(t,"an integer",e);if(er)throw new S(t,`>= ${n} && <= ${r}`,e)})),L=y(((e,t,n=!1)=>{if("number"!==typeof e)throw new _(t,"number",e);if(!s(e))throw new S(t,"an integer",e);const r=n?1:0,i=4294967295;if(ei)throw new S(t,`>= ${r} && <= ${i}`,e)}));function P(e,t){if("string"!==typeof e)throw new _(t,"string",e)}function j(e,t,n=void 0,r){if("number"!==typeof e)throw new _(t,"number",e);if(null!=n&&er||(null!=n||null!=r)&&l(e))throw new S(t,`${null!=n?`>= ${n}`:""}${null!=n&&null!=r?" && ":""}${null!=r?`<= ${r}`:""}`,e)}const M=y(((e,t,n)=>{if(!i(n,e)){const r=o(a(n,(e=>"string"===typeof e?`'${e}'`:p(e))),", "),i="must be one of: "+r;throw new m(t,e,i)}}));function F(e,t){if("boolean"!==typeof e)throw new _(t,"boolean",e)}function V(e,t,n){return null!=e&&f(e,t)?e[t]:n}const $=y(((e,t,n=null)=>{const i=V(n,"allowArray",!1),o=V(n,"allowFunction",!1),a=V(n,"nullable",!1);if(!a&&null===e||!i&&r(e)||"object"!==typeof e&&(!o||"function"!==typeof e))throw new _(t,"Object",e)})),W=y(((e,t)=>{if(null!=e&&"object"!==typeof e&&"function"!==typeof e)throw new _(t,"a dictionary",e)})),U=y(((e,t,n=0)=>{if(!r(e))throw new _(t,"Array",e);if(e.length{if(!A(e))throw new _(t,["Buffer","TypedArray","DataView"],e)}));function J(e,t){const n=v(t),r=e.length;if("hex"===n&&r%2!==0)throw new m("encoding",t,`is invalid for data of length ${r}`)}function q(e,t="Port",n=!0){if("number"!==typeof e&&"string"!==typeof e||"string"===typeof e&&0===g(e).length||+e!==+e>>>0||e>65535||0===e&&!n)throw new w(t,e,n);return 0|e}const Y=y(((e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new _(t,"AbortSignal",e)})),z=y(((e,t)=>{if("function"!==typeof e)throw new _(t,"Function",e)})),X=y(((e,t)=>{if("function"!==typeof e||R(e))throw new _(t,"Function",e)})),Q=y(((e,t)=>{if(void 0!==e)throw new _(t,"undefined",e)}));function Z(e,t,n){if(!i(n,e))throw new _(t,`('${o(n,"|")}')`,e)}const ee=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function te(e,t){if("undefined"===typeof e||!h(ee,e))throw new m(t,e,'must be an array or string of format "; rel=preload; as=style"')}function ne(e){if("string"===typeof e)return te(e,"hints"),e;if(r(e)){const t=e.length;let n="";if(0===t)return n;for(let r=0;r; rel=preload; as=style"')}e.exports={isInt32:x,isUint32:T,parseFileMode:O,validateArray:U,validateStringArray:B,validateBooleanArray:H,validateBoolean:F,validateBuffer:K,validateDictionary:W,validateEncoding:J,validateFunction:z,validateInt32:D,validateInteger:N,validateNumber:j,validateObject:$,validateOneOf:M,validatePlainFunction:X,validatePort:q,validateSignalName:G,validateString:P,validateUint32:L,validateUndefined:Q,validateUnion:Z,validateAbortSignal:Y,validateLinkHeaderValue:ne}},45024:function(e,t,n){"use strict";const r=n(56785),i=n(97864),o=r.Readable.destroy;e.exports=r.Readable,e.exports._uint8ArrayToBuffer=r._uint8ArrayToBuffer,e.exports._isUint8Array=r._isUint8Array,e.exports.isDisturbed=r.isDisturbed,e.exports.isErrored=r.isErrored,e.exports.isReadable=r.isReadable,e.exports.Readable=r.Readable,e.exports.Writable=r.Writable,e.exports.Duplex=r.Duplex,e.exports.Transform=r.Transform,e.exports.PassThrough=r.PassThrough,e.exports.addAbortSignal=r.addAbortSignal,e.exports.finished=r.finished,e.exports.destroy=r.destroy,e.exports.destroy=o,e.exports.pipeline=r.pipeline,e.exports.compose=r.compose,Object.defineProperty(r,"promises",{configurable:!0,enumerable:!0,get(){return i}}),e.exports.Stream=r.Stream,e.exports["default"]=e.exports},59861:function(e,t,n){"use strict";const{format:r,inspect:i,AggregateError:o}=n(41090),a=globalThis.AggregateError||o,s=Symbol("kIsNodeError"),l=["string","function","number","object","Function","Object","boolean","bigint","symbol"],d=/^([A-Z][a-z0-9]*)+$/,u="__node_internal_",c={};function f(e,t){if(!e)throw new c.ERR_INTERNAL_ASSERTION(t)}function h(e){let t="",n=e.length;const r="-"===e[0]?1:0;for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function p(e,t,n){if("function"===typeof t)return f(t.length<=n.length,`Code: ${e}; The provided arguments length (${n.length}) does not match the required ones (${t.length}).`),t(...n);const i=(t.match(/%[dfijoOs]/g)||[]).length;return f(i===n.length,`Code: ${e}; The provided arguments length (${n.length}) does not match the required ones (${i}).`),0===n.length?t:r(t,...n)}function b(e,t,n){n||(n=Error);class r extends n{constructor(...n){super(p(e,t,n))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(r.prototype,{name:{value:n.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),r.prototype.code=e,r.prototype[s]=!0,c[e]=r}function g(e){const t=u+e.name;return Object.defineProperty(e,"name",{value:t}),e}function y(e,t){if(e&&t&&e!==t){if(Array.isArray(t.errors))return t.errors.push(e),t;const n=new a([t,e],t.message);return n.code=t.code,n}return e||t}class w extends Error{constructor(e="The operation was aborted",t=void 0){if(void 0!==t&&"object"!==typeof t)throw new c.ERR_INVALID_ARG_TYPE("options","Object",t);super(e,t),this.code="ABORT_ERR",this.name="AbortError"}}b("ERR_ASSERTION","%s",Error),b("ERR_INVALID_ARG_TYPE",((e,t,n)=>{f("string"===typeof e,"'name' must be a string"),Array.isArray(t)||(t=[t]);let r="The ";e.endsWith(" argument")?r+=`${e} `:r+=`"${e}" ${e.includes(".")?"property":"argument"} `,r+="must be ";const o=[],a=[],s=[];for(const i of t)f("string"===typeof i,"All expected entries have to be of type string"),l.includes(i)?o.push(i.toLowerCase()):d.test(i)?a.push(i):(f("object"!==i,'The value "object" should be written as "Object"'),s.push(i));if(a.length>0){const e=o.indexOf("object");-1!==e&&(o.splice(o,e,1),a.push("Object"))}if(o.length>0){switch(o.length){case 1:r+=`of type ${o[0]}`;break;case 2:r+=`one of type ${o[0]} or ${o[1]}`;break;default:{const e=o.pop();r+=`one of type ${o.join(", ")}, or ${e}`}}(a.length>0||s.length>0)&&(r+=" or ")}if(a.length>0){switch(a.length){case 1:r+=`an instance of ${a[0]}`;break;case 2:r+=`an instance of ${a[0]} or ${a[1]}`;break;default:{const e=a.pop();r+=`an instance of ${a.join(", ")}, or ${e}`}}s.length>0&&(r+=" or ")}switch(s.length){case 0:break;case 1:s[0].toLowerCase()!==s[0]&&(r+="an "),r+=`${s[0]}`;break;case 2:r+=`one of ${s[0]} or ${s[1]}`;break;default:{const e=s.pop();r+=`one of ${s.join(", ")}, or ${e}`}}if(null==n)r+=`. Received ${n}`;else if("function"===typeof n&&n.name)r+=`. Received function ${n.name}`;else if("object"===typeof n){var u;if(null!==(u=n.constructor)&&void 0!==u&&u.name)r+=`. Received an instance of ${n.constructor.name}`;else{const e=i(n,{depth:-1});r+=`. Received ${e}`}}else{let e=i(n,{colors:!1});e.length>25&&(e=`${e.slice(0,25)}...`),r+=`. Received type ${typeof n} (${e})`}return r}),TypeError),b("ERR_INVALID_ARG_VALUE",((e,t,n="is invalid")=>{let r=i(t);r.length>128&&(r=r.slice(0,128)+"...");const o=e.includes(".")?"property":"argument";return`The ${o} '${e}' ${n}. Received ${r}`}),TypeError),b("ERR_INVALID_RETURN_VALUE",((e,t,n)=>{var r;const i=null!==n&&void 0!==n&&null!==(r=n.constructor)&&void 0!==r&&r.name?`instance of ${n.constructor.name}`:"type "+typeof n;return`Expected ${e} to be returned from the "${t}" function but got ${i}.`}),TypeError),b("ERR_MISSING_ARGS",((...e)=>{let t;f(e.length>0,"At least one arg needs to be specified");const n=e.length;switch(e=(Array.isArray(e)?e:[e]).map((e=>`"${e}"`)).join(" or "),n){case 1:t+=`The ${e[0]} argument`;break;case 2:t+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const n=e.pop();t+=`The ${e.join(", ")}, and ${n} arguments`}break}return`${t} must be specified`}),TypeError),b("ERR_OUT_OF_RANGE",((e,t,n)=>{let r;return f(t,'Missing "range" argument'),Number.isInteger(n)&&Math.abs(n)>2**32?r=h(String(n)):"bigint"===typeof n?(r=String(n),(n>2n**32n||n<-(2n**32n))&&(r=h(r)),r+="n"):r=i(n),`The value of "${e}" is out of range. It must be ${t}. Received ${r}`}),RangeError),b("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),b("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),b("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),b("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),b("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),b("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),b("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),b("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),b("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),b("ERR_STREAM_WRITE_AFTER_END","write after end",Error),b("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:w,aggregateTwoErrors:g(y),hideStackFrames:g,codes:c}},19015:function(e){"use strict";e.exports={ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,t){return e.includes(t)},ArrayPrototypeIndexOf(e,t){return e.indexOf(t)},ArrayPrototypeJoin(e,t){return e.join(t)},ArrayPrototypeMap(e,t){return e.map(t)},ArrayPrototypePop(e,t){return e.pop(t)},ArrayPrototypePush(e,t){return e.push(t)},ArrayPrototypeSlice(e,t,n){return e.slice(t,n)},Error:Error,FunctionPrototypeCall(e,t,...n){return e.call(t,...n)},FunctionPrototypeSymbolHasInstance(e,t){return Function.prototype[Symbol.hasInstance].call(e,t)},MathFloor:Math.floor,Number:Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(e,t){return Object.defineProperties(e,t)},ObjectDefineProperty(e,t,n){return Object.defineProperty(e,t,n)},ObjectGetOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,t){return Object.setPrototypeOf(e,t)},Promise:Promise,PromisePrototypeCatch(e,t){return e.catch(t)},PromisePrototypeThen(e,t,n){return e.then(t,n)},PromiseReject(e){return Promise.reject(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,t){return e.test(t)},SafeSet:Set,String:String,StringPrototypeSlice(e,t,n){return e.slice(t,n)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol:Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(e,t,n){return e.set(t,n)},Uint8Array:Uint8Array}},41090:function(e,t,n){"use strict";const r=n(48764),i=Object.getPrototypeOf((async function(){})).constructor,o=globalThis.Blob||r.Blob,a="undefined"!==typeof o?function(e){return e instanceof o}:function(e){return!1};class s extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t="";for(let n=0;n{e=n,t=r}));return{promise:n,resolve:e,reject:t}},promisify(e){return new Promise(((t,n)=>{e(((e,...r)=>e?n(e):t(...r)))}))},debuglog(){return function(){}},format(e,...t){return e.replace(/%([sdifj])/g,(function(...[e,n]){const r=t.shift();if("f"===n)return r.toFixed(6);if("j"===n)return JSON.stringify(r);if("s"===n&&"object"===typeof r){const e=r.constructor!==Object?r.constructor.name:"";return`${e} {}`.trim()}return r.toString()}))},inspect(e){switch(typeof e){case"string":if(e.includes("'")){if(!e.includes('"'))return`"${e}"`;if(!e.includes("`")&&!e.includes("${"))return`\`${e}\``}return`'${e}'`;case"number":return isNaN(e)?"NaN":Object.is(e,-0)?String(e):e;case"bigint":return`${String(e)}n`;case"boolean":case"undefined":return String(e);case"object":return"{}"}},types:{isAsyncFunction(e){return e instanceof i},isArrayBufferView(e){return ArrayBuffer.isView(e)}},isBlob:a},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},56785:function(e,t,n){const{Buffer:r}=n(48764),{ObjectDefineProperty:i,ObjectKeys:o,ReflectApply:a}=n(19015),{promisify:{custom:s}}=n(41090),{streamReturningOperators:l,promiseReturningOperators:d}=n(19350),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=n(59861),c=n(35223),{pipeline:f}=n(45891),{destroyer:h}=n(51662),p=n(81246),b=n(97864),g=n(60488),y=e.exports=n(90634).Stream;y.isDisturbed=g.isDisturbed,y.isErrored=g.isErrored,y.isReadable=g.isReadable,y.Readable=n(41676);for(const m of o(l)){const S=l[m];function w(...e){if(new.target)throw u();return y.Readable.from(a(S,this,e))}i(w,"name",{__proto__:null,value:S.name}),i(w,"length",{__proto__:null,value:S.length}),i(y.Readable.prototype,m,{__proto__:null,value:w,enumerable:!1,configurable:!0,writable:!0})}for(const E of o(d)){const v=d[E];function w(...e){if(new.target)throw u();return a(v,this,e)}i(w,"name",{__proto__:null,value:v.name}),i(w,"length",{__proto__:null,value:v.length}),i(y.Readable.prototype,E,{__proto__:null,value:w,enumerable:!1,configurable:!0,writable:!0})}y.Writable=n(83906),y.Duplex=n(53880),y.Transform=n(95024),y.PassThrough=n(43099),y.pipeline=f;const{addAbortSignal:_}=n(16720);y.addAbortSignal=_,y.finished=p,y.destroy=h,y.compose=c,i(y,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return b}}),i(f,s,{__proto__:null,enumerable:!0,get(){return b.pipeline}}),i(p,s,{__proto__:null,enumerable:!0,get(){return b.finished}}),y.Stream=y,y._isUint8Array=function(e){return e instanceof Uint8Array},y._uint8ArrayToBuffer=function(e){return r.from(e.buffer,e.byteOffset,e.byteLength)}},97864:function(e,t,n){"use strict";const{ArrayPrototypePop:r,Promise:i}=n(19015),{isIterable:o,isNodeStream:a,isWebStream:s}=n(60488),{pipelineImpl:l}=n(45891),{finished:d}=n(81246);function u(...e){return new i(((t,n)=>{let i,d;const u=e[e.length-1];if(u&&"object"===typeof u&&!a(u)&&!o(u)&&!s(u)){const t=r(e);i=t.signal,d=t.end}l(e,((e,r)=>{e?n(e):t(r)}),{signal:i,end:d})}))}n(42830),e.exports={finished:d,pipeline:u}},95758:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(55170),t)},98386:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContextTree=void 0;class n{constructor(){this.subTrees={}}getContext(e){if(e.length>0){const[t,...n]=e,r=this.subTrees[t];if(r){const e=r.getContext(n);if(e)return e.then((({context:e,depth:t})=>({context:e,depth:t+1})))}}return this.context?this.context.then((e=>({context:e,depth:0}))):null}setContext(e,t){if(0===e.length)this.context=t;else{const[r,...i]=e;let o=this.subTrees[r];o||(o=this.subTrees[r]=new n),o.setContext(i,t)}}removeContext(e){this.setContext(e,null)}}t.ContextTree=n},55170:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JsonLdParser=void 0;const r=n(26713),i=n(11288),o=n(31036),a=n(81889),s=n(36753),l=n(38215),d=n(49488),u=n(42613),c=n(73330),f=n(52709),h=n(67406),p=n(61323),b=n(51820),g=n(72963),y=n(93322),w=n(51478),_=n(22754),m=n(12475),S=n(60768);class E extends o.Transform{constructor(e){super({readableObjectMode:!0}),e=e||{},this.options=e,this.parsingContext=new w.ParsingContext(Object.assign({parser:this},e)),this.util=new _.Util({dataFactory:e.dataFactory,parsingContext:this.parsingContext}),this.jsonParser=new r,this.contextJobs=[],this.typeJobs=[],this.contextAwaitingJobs=[],this.lastDepth=0,this.lastKeys=[],this.lastOnValueJob=Promise.resolve(),this.attachJsonParserListeners(),this.on("end",(()=>{"undefined"!==typeof this.jsonParser.mode&&this.emit("error",new Error("Unclosed document"))}))}static fromHttpResponse(e,t,n,r){let o,a;if("application/ld+json"!==t){if("application/json"!==t&&!t.endsWith("+json"))throw new i.ErrorCoded(`Unsupported JSON-LD media type ${t}`,i.ERROR_CODES.LOADING_DOCUMENT_FAILED);if(n&&n.has("Link")&&n.forEach(((t,n)=>{if("link"===n){const n=(0,m.parse)(t);for(const t of n.get("rel","http://www.w3.org/ns/json-ld#context")){if(o)throw new i.ErrorCoded("Multiple JSON-LD context link headers were found on "+e,i.ERROR_CODES.MULTIPLE_CONTEXT_LINK_HEADERS);o=t.uri}}})),!o&&!(null===r||void 0===r?void 0:r.ignoreMissingContextLinkHeader))throw new i.ErrorCoded(`Missing context link header for media type ${t} on ${e}`,i.ERROR_CODES.LOADING_DOCUMENT_FAILED)}if(n&&n.has("Content-Type")){const e=n.get("Content-Type"),t=/; *profile=([^"]*)/.exec(e);t&&"http://www.w3.org/ns/json-ld#streaming"===t[1]&&(a=!0)}return new E(Object.assign({baseIRI:e,context:o,streamingProfile:a},r||{}))}import(e){if("pipe"in e){e.on("error",(e=>t.emit("error",e)));const t=e.pipe(new E(this.options));return t}{const t=new o.PassThrough({readableObjectMode:!0});e.on("error",(e=>n.emit("error",e))),e.on("data",(e=>t.push(e))),e.on("end",(()=>t.push(null)));const n=t.pipe(new E(this.options));return n}}_transform(e,t,n){this.jsonParser.write(e),this.lastOnValueJob.then((()=>n()),(e=>n(e)))}async newOnValueJob(e,t,n,r){let o=!0;if(r&&n1&&(u=this.parsingContext.validationStack[this.parsingContext.validationStack.length-1].property);for(let i=Math.max(1,this.parsingContext.validationStack.length-1);i=0?this.parsingContext.idStack[e-n-1]:[await this.util.getGraphContainerValue(t,e)];if(i)for(const t of i){this.parsingContext.emittedStack[e]=!0;for(const n of o)this.util.emitQuadChecked(e,r,n.predicate,n.object,t,n.reverse,n.isEmbedded)}else{const n=this.parsingContext.getUnidentifiedGraphBufferSafe(e-await this.util.getDepthOffsetGraph(e,t)-1);for(const e of o)e.reverse?n.push({object:r,predicate:e.predicate,subject:e.object,isEmbedded:e.isEmbedded}):n.push({object:e.object,predicate:e.predicate,subject:r,isEmbedded:e.isEmbedded})}}this.parsingContext.unidentifiedValuesBuffer.splice(e,1),this.parsingContext.literalStack.splice(e,1),this.parsingContext.jsonLiteralStack.splice(e,1)}const a=this.parsingContext.unidentifiedGraphsBuffer[e];if(a){for(const t of n){const n=1!==e||"BlankNode"!==t.termType||this.parsingContext.topLevelProperties?t:this.util.getDefaultGraph();this.parsingContext.emittedStack[e]=!0;for(const t of a)this.parsingContext.emitQuad(e,this.util.dataFactory.quad(t.subject,t.predicate,t.object,n))}this.parsingContext.unidentifiedGraphsBuffer.splice(e,1)}const s=this.parsingContext.annotationsBuffer[e];if(s){s.length>0&&1===e&&this.parsingContext.emitError(new i.ErrorCoded("Annotations can not be made on top-level nodes",i.ERROR_CODES.INVALID_ANNOTATION));const t=this.parsingContext.getAnnotationsBufferSafe(e-1);for(const e of s)t.push(e);delete this.parsingContext.annotationsBuffer[e]}}async validateKey(e,t,n){for(const r of E.ENTRY_HANDLERS)if(await r.validate(this.parsingContext,this.util,e,t,n))return{valid:!0,property:n||r.isPropertyHandler()};return{valid:!1,property:!1}}attachJsonParserListeners(){this.jsonParser.onValue=e=>{const t=this.jsonParser.stack.length,n=new Array(t+1).fill(0).map(((e,n)=>n===t?this.jsonParser.key:this.jsonParser.stack[n].key));if(!this.isParsingContextInner(t)){const r=()=>this.newOnValueJob(n,e,t,!0);if(this.parsingContext.streamingProfile||this.parsingContext.contextTree.getContext(n.slice(0,-1)))this.lastOnValueJob=this.lastOnValueJob.then(r);else if("@context"===n[t]){let e=this.contextJobs[t];e||(e=this.contextJobs[t]=[]),e.push(r)}else"@type"===n[t]||"number"===typeof n[t]&&"@type"===n[t-1]?this.typeJobs.push({job:r,keys:n.slice(0,n.length-1)}):this.contextAwaitingJobs.push({job:r,keys:n});this.parsingContext.streamingProfile||0!==t||(this.lastOnValueJob=this.lastOnValueJob.then((()=>this.executeBufferedJobs())))}},this.jsonParser.onError=e=>{this.emit("error",e)}}isParsingContextInner(e){for(let t=e;t>0;t--)if("@context"===this.jsonParser.stack[t-1].key)return!0;return!1}async executeBufferedJobs(){for(const e of this.contextJobs)if(e)for(const t of e)await t();this.parsingContext.unaliasedKeywordCacheStack.splice(0);for(const e of this.contextAwaitingJobs){if(this.typeJobs.length>0){const t=[],n=[];for(let o=0;oe.keys.length-t.keys.length));for(const e of r)await e.job();const i=n.sort().reverse();for(const e of i)this.typeJobs.splice(e,1)}await e.job()}}}t.JsonLdParser=E,E.DEFAULT_PROCESSING_MODE="1.1",E.ENTRY_HANDLERS=[new a.EntryHandlerArrayValue,new u.EntryHandlerKeywordContext,new f.EntryHandlerKeywordId,new h.EntryHandlerKeywordIncluded,new c.EntryHandlerKeywordGraph,new p.EntryHandlerKeywordNest,new b.EntryHandlerKeywordType,new y.EntryHandlerKeywordValue,new S.EntryHandlerKeywordAnnotation,new s.EntryHandlerContainer,new g.EntryHandlerKeywordUnknownFallback,new d.EntryHandlerPredicate,new l.EntryHandlerInvalidFallback]},51478:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ParsingContext=void 0;const r=n(11288),i=n(87011),o=n(98386),a=n(55170);class s{constructor(e){this.contextParser=new r.ContextParser({documentLoader:e.documentLoader,skipValidation:e.skipContextValidation}),this.streamingProfile=!!e.streamingProfile,this.baseIRI=e.baseIRI,this.produceGeneralizedRdf=!!e.produceGeneralizedRdf,this.allowSubjectList=!!e.allowSubjectList,this.processingMode=e.processingMode||a.JsonLdParser.DEFAULT_PROCESSING_MODE,this.strictValues=!!e.strictValues,this.validateValueIndexes=!!e.validateValueIndexes,this.defaultGraph=e.defaultGraph,this.rdfDirection=e.rdfDirection,this.normalizeLanguageTags=e.normalizeLanguageTags,this.streamingProfileAllowOutOfOrderPlainType=e.streamingProfileAllowOutOfOrderPlainType,this.rdfstar=!1!==e.rdfstar,this.rdfstarReverseInEmbedded=e.rdfstarReverseInEmbedded,this.topLevelProperties=!1,this.activeProcessingMode=parseFloat(this.processingMode),this.processingStack=[],this.processingType=[],this.emittedStack=[],this.idStack=[],this.graphStack=[],this.graphContainerTermStack=[],this.listPointerStack=[],this.contextTree=new o.ContextTree,this.literalStack=[],this.validationStack=[],this.unaliasedKeywordCacheStack=[],this.jsonLiteralStack=[],this.unidentifiedValuesBuffer=[],this.unidentifiedGraphsBuffer=[],this.annotationsBuffer=[],this.pendingContainerFlushBuffers=[],this.parser=e.parser,e.context?(this.rootContext=this.parseContext(e.context),this.rootContext.then((e=>this.validateContext(e)))):this.rootContext=Promise.resolve(new r.JsonLdContextNormalized(this.baseIRI?{"@base":this.baseIRI,"@__baseDocument":!0}:{}))}async parseContext(e,t,n){return this.contextParser.parse(e,{baseIRI:this.baseIRI,ignoreProtection:n,normalizeLanguageTags:this.normalizeLanguageTags,parentContext:t,processingMode:this.activeProcessingMode})}validateContext(e){const t=e.getContextRaw()["@version"];if(t){if(this.activeProcessingMode&&t>this.activeProcessingMode)throw new i.ErrorCoded(`Unsupported JSON-LD version '${t}' under active processing mode ${this.activeProcessingMode}.`,i.ERROR_CODES.PROCESSING_MODE_CONFLICT);if(this.activeProcessingMode&&t0&&!1===i.context.getContextRaw()["@propagate"]&&i.depth!==t&&!n);return 0===i.depth&&!1===i.context.getContextRaw()["@propagate"]&&i.depth!==t&&(i.context=new r.JsonLdContextNormalized({})),i}async newOnValueJob(e,t,n,r){await this.parser.newOnValueJob(e,t,n,r)}async handlePendingContainerFlushBuffers(){if(this.pendingContainerFlushBuffers.length>0){for(const e of this.pendingContainerFlushBuffers)await this.parser.flushBuffer(e.depth,e.keys),this.parser.flushStacks(e.depth);return this.pendingContainerFlushBuffers.splice(0,this.pendingContainerFlushBuffers.length),!0}return!1}emitQuad(e,t){1===e&&(this.topLevelProperties=!0),this.parser.push(t)}emitError(e){this.parser.emit("error",e)}emitContext(e){this.parser.emit("context",e)}getUnidentifiedValueBufferSafe(e){let t=this.unidentifiedValuesBuffer[e];return t||(t=[],this.unidentifiedValuesBuffer[e]=t),t}getUnidentifiedGraphBufferSafe(e){let t=this.unidentifiedGraphsBuffer[e];return t||(t=[],this.unidentifiedGraphsBuffer[e]=t),t}getAnnotationsBufferSafe(e){let t=this.annotationsBuffer[e];return t||(t=[],this.annotationsBuffer[e]=t),t}getExpandOptions(){return s.EXPAND_OPTIONS[this.activeProcessingMode]}shiftStack(e,t){const n=this.idStack[e+t];if(n&&(this.idStack[e]=n,this.emittedStack[e]=!0,delete this.idStack[e+t]),this.pendingContainerFlushBuffers.length)for(const r of this.pendingContainerFlushBuffers)r.depth>=e+t&&(r.depth-=t,r.keys.splice(e,t));this.unidentifiedValuesBuffer[e+t]&&(this.unidentifiedValuesBuffer[e]=this.unidentifiedValuesBuffer[e+t],delete this.unidentifiedValuesBuffer[e+t]),this.annotationsBuffer[e+t-1]&&(this.annotationsBuffer[e-1]||(this.annotationsBuffer[e-1]=[]),this.annotationsBuffer[e-1]=[...this.annotationsBuffer[e-1],...this.annotationsBuffer[e+t-1]],delete this.annotationsBuffer[e+t-1])}}t.ParsingContext=s,s.EXPAND_OPTIONS={1:{allowPrefixForcing:!1,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!1},1.1:{allowPrefixForcing:!0,allowPrefixNonGenDelims:!1,allowVocabRelativeToBase:!0}}},22754:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Util=void 0;const r=n(11288),i=n(41640),o=n(36753),a=n(95456);class s{constructor(e){this.parsingContext=e.parsingContext,this.dataFactory=e.dataFactory||new i.DataFactory,this.rdfFirst=this.dataFactory.namedNode(s.RDF+"first"),this.rdfRest=this.dataFactory.namedNode(s.RDF+"rest"),this.rdfNil=this.dataFactory.namedNode(s.RDF+"nil"),this.rdfType=this.dataFactory.namedNode(s.RDF+"type"),this.rdfJson=this.dataFactory.namedNode(s.RDF+"JSON")}static getContextValue(e,t,n,r){const i=e.getContextRaw()[n];if(!i)return r;const o=i[t];return void 0===o?r:o}static getContextValueContainer(e,t){return s.getContextValue(e,"@container",t,{"@set":!0})}static getContextValueType(e,t){const n=s.getContextValue(e,"@type",t,null);return"@none"===n?null:n}static getContextValueLanguage(e,t){return s.getContextValue(e,"@language",t,e.getContextRaw()["@language"]||null)}static getContextValueDirection(e,t){return s.getContextValue(e,"@direction",t,e.getContextRaw()["@direction"]||null)}static isContextValueReverse(e,t){return!!s.getContextValue(e,"@reverse",t,null)}static getContextValueIndex(e,t){return s.getContextValue(e,"@index",t,e.getContextRaw()["@index"]||null)}static isPropertyReverse(e,t,n){return"@reverse"===n!==s.isContextValueReverse(e,t)}static isPropertyInEmbeddedNode(e){return"@id"===e}static isPropertyInAnnotationObject(e){return"@annotation"===e}static isValidIri(e){return null!==e&&r.Util.isValidIri(e)}static isPrefixArray(e,t){if(e.length>t.length)return!1;for(let n=0;n1)throw new r.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${t}'`,r.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);return[]}if("@list"in n){if(Object.keys(n).length>1)throw new r.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${t}'`,r.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);const e=n["@list"];return Array.isArray(e)?0===e.length?[this.rdfNil]:this.parsingContext.idStack[i+1]||[]:await this.valueToTerm(await this.parsingContext.getContext(o),t,e,i-1,o.slice(0,-1))}if("@reverse"in n&&"boolean"===typeof n["@reverse"])return[];if("@graph"in s.getContextValueContainer(await this.parsingContext.getContext(o),t)){const e=this.parsingContext.graphContainerTermStack[i+1];return e?Object.values(e):[this.dataFactory.blankNode()]}if("@id"in n){if(Object.keys(n).length>1&&(e=await this.parsingContext.getContext(o,0)),"@context"in n&&(e=await this.parsingContext.parseContext(n["@context"],e.getContextRaw())),"@vocab"===n["@type"])return this.nullableTermToArray(this.createVocabOrBaseTerm(e,n["@id"]));{const t=n["@id"];let o;if("object"===typeof t){if(!this.parsingContext.rdfstar)throw new r.ErrorCoded(`Found illegal @id '${n}'`,r.ERROR_CODES.INVALID_ID_VALUE);o=this.parsingContext.idStack[i+1][0]}else o=this.resourceToTerm(e,t);return this.nullableTermToArray(o)}}return this.parsingContext.emittedStack[i+1]||n&&"object"===typeof n&&0===Object.keys(n).length?this.parsingContext.idStack[i+1]||(this.parsingContext.idStack[i+1]=[this.dataFactory.blankNode()]):[];case"string":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,n,null));case"boolean":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,Boolean(n).toString(),this.dataFactory.namedNode(s.XSD_BOOLEAN)));case"number":return this.nullableTermToArray(this.stringValueToTerm(i,await this.getContextSelfOrPropertyScoped(e,t),t,n,this.dataFactory.namedNode(n%1===0&&n<1e21?s.XSD_INTEGER:s.XSD_DOUBLE)));default:return this.parsingContext.emitError(new Error(`Could not determine the RDF type of a ${a}`)),[]}}async getContextSelfOrPropertyScoped(e,t){const n=e.getContextRaw()[t];return n&&"object"===typeof n&&"@context"in n&&(e=await this.parsingContext.parseContext(n,e.getContextRaw(),!0)),e}nullableTermToArray(e){return e?[e]:[]}predicateToTerm(e,t){const n=e.expandTerm(t,!0,this.parsingContext.getExpandOptions());return n?"_"===n[0]&&":"===n[1]?this.parsingContext.produceGeneralizedRdf?this.dataFactory.blankNode(n.substr(2)):null:s.isValidIri(n)?this.dataFactory.namedNode(n):n&&this.parsingContext.strictValues?(this.parsingContext.emitError(new r.ErrorCoded(`Invalid predicate IRI: ${n}`,r.ERROR_CODES.INVALID_IRI_MAPPING)),null):null:null}resourceToTerm(e,t){if(t.startsWith("_:"))return this.dataFactory.blankNode(t.substr(2));const n=e.expandTerm(t,!1,this.parsingContext.getExpandOptions());if(!s.isValidIri(n)){if(!n||!this.parsingContext.strictValues)return null;this.parsingContext.emitError(new Error(`Invalid resource IRI: ${n}`))}return this.dataFactory.namedNode(n)}createVocabOrBaseTerm(e,t){if(t.startsWith("_:"))return this.dataFactory.blankNode(t.substr(2));const n=this.parsingContext.getExpandOptions();let r=e.expandTerm(t,!0,n);if(r===t&&(r=e.expandTerm(t,!1,n)),!s.isValidIri(r)){if(!r||!this.parsingContext.strictValues||r.startsWith("@"))return null;this.parsingContext.emitError(new Error(`Invalid term IRI: ${r}`))}return this.dataFactory.namedNode(r)}intToString(e,t){if("number"===typeof e){if(Number.isFinite(e)){const n=e%1===0;return!n||t&&t.value===s.XSD_DOUBLE?e.toExponential(15).replace(/(\d)0*e\+?/,"$1E"):Number(e).toString()}return e>0?"INF":"-INF"}return e}stringValueToTerm(e,t,n,r,i){const o=s.getContextValueType(t,n);if(o)if("@id"===o){if(!i)return this.resourceToTerm(t,this.intToString(r,i))}else if("@vocab"===o){if(!i)return this.createVocabOrBaseTerm(t,this.intToString(r,i))}else i=this.dataFactory.namedNode(o);if(!i){const o=s.getContextValueLanguage(t,n),a=s.getContextValueDirection(t,n);return a&&this.parsingContext.rdfDirection?this.createLanguageDirectionLiteral(e,this.intToString(r,i),o,a):this.dataFactory.literal(this.intToString(r,i),o)}return this.dataFactory.literal(this.intToString(r,i),i)}createLanguageDirectionLiteral(e,t,n,r){if("i18n-datatype"===this.parsingContext.rdfDirection)return n||(n=""),this.dataFactory.literal(t,this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${n}_${r}`));{const i=this.dataFactory.blankNode(),o=this.getDefaultGraph();return this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(s.RDF+"value"),this.dataFactory.literal(t),o)),n&&this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(s.RDF+"language"),this.dataFactory.literal(n),o)),this.parsingContext.emitQuad(e,this.dataFactory.quad(i,this.dataFactory.namedNode(s.RDF+"direction"),this.dataFactory.literal(r),o)),i}}valueToJsonString(e){return a(e)}async unaliasKeyword(e,t,n,i,o){if(Number.isInteger(e))return e;if(!i){const e=this.parsingContext.unaliasedKeywordCacheStack[n];if(e)return e}if(!r.Util.isPotentialKeyword(e)){o=o||await this.parsingContext.getContext(t);let n=o.getContextRaw()[e];n&&"object"===typeof n&&(n=n["@id"]),r.Util.isValidKeyword(n)&&(e=n)}return i?e:this.parsingContext.unaliasedKeywordCacheStack[n]=e}async unaliasKeywordParent(e,t){return await this.unaliasKeyword(t>0&&e[t-1],e,t-1)}async unaliasKeywords(e,t,n,r){const i={};for(const o in e)i[await this.unaliasKeyword(o,t,n+1,!0,r)]=e[o];return i}async isLiteral(e,t){for(let n=t;n>=0;n--){if("@annotation"===await this.unaliasKeyword(e[n],e,n))return!1;if(this.parsingContext.literalStack[n]||this.parsingContext.jsonLiteralStack[n])return!0}return!1}async getDepthOffsetGraph(e,t){for(let n=e-1;n>0;n--)if("@graph"===await this.unaliasKeyword(t[n],t,n)){const r=(await o.EntryHandlerContainer.getContainerHandler(this.parsingContext,t,n)).containers;return o.EntryHandlerContainer.isComplexGraphContainer(r)?-1:e-n-1}return-1}validateReverseSubject(e){if("Literal"===e.termType)throw new r.ErrorCoded(`Found illegal literal in subject position: ${e.value}`,r.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE)}getDefaultGraph(){return this.parsingContext.defaultGraph||this.dataFactory.defaultGraph()}async getGraphContainerValue(e,t){let n=this.getDefaultGraph();const{containers:r,depth:i}=await o.EntryHandlerContainer.getContainerHandler(this.parsingContext,e,t);if("@graph"in r){const t=o.EntryHandlerContainer.getContainerGraphIndex(r,i,e),a=this.parsingContext.graphContainerTermStack[i];if(n=a?a[t]:null,!n){let o=null;if("@id"in r){const t=await this.getContainerKey(e[i],e,i);null!==t&&(o=await this.resourceToTerm(await this.parsingContext.getContext(e),t))}o||(o=this.dataFactory.blankNode()),this.parsingContext.graphContainerTermStack[i]||(this.parsingContext.graphContainerTermStack[i]={}),n=this.parsingContext.graphContainerTermStack[i][t]=o}}return n}async getPropertiesDepth(e,t){let n=t;for(let r=t-1;r>0;r--)if("number"!==typeof e[r]){const t=await this.unaliasKeyword(e[r],e,r);if("@reverse"===t)return r;if("@nest"!==t)return n;n=r}return n}async getContainerKey(e,t,n){const r=await this.unaliasKeyword(e,t,n);return"@none"===r?null:r}validateReverseInEmbeddedNode(e,t,n){if(n&&t&&!this.parsingContext.rdfstarReverseInEmbedded)throw new r.ErrorCoded(`Illegal reverse property in embedded node in ${e}`,r.ERROR_CODES.INVALID_EMBEDDED_NODE)}emitQuadChecked(e,t,n,i,o,a,s){let l;if(a?(this.validateReverseSubject(i),l=this.dataFactory.quad(i,n,t,o)):l=this.dataFactory.quad(t,n,i,o),s){if("DefaultGraph"!==l.graph.termType&&(l=this.dataFactory.quad(l.subject,l.predicate,l.object)),this.parsingContext.idStack[e-1])throw new r.ErrorCoded("Illegal multiple properties in an embedded node",r.ERROR_CODES.INVALID_EMBEDDED_NODE);this.parsingContext.idStack[e-1]=[l]}else this.parsingContext.emitQuad(e,l);const d=this.parsingContext.annotationsBuffer[e];if(d){for(const t of d)this.emitAnnotation(e,l,t);delete this.parsingContext.annotationsBuffer[e]}}emitAnnotation(e,t,n){let r;n.reverse?(this.validateReverseSubject(n.object),r=this.dataFactory.quad(n.object,n.predicate,t)):r=this.dataFactory.quad(t,n.predicate,n.object),this.parsingContext.emitQuad(e,r);for(const i of n.nestedAnnotations)this.emitAnnotation(e,r,i)}}t.Util=s,s.XSD="http://www.w3.org/2001/XMLSchema#",s.XSD_BOOLEAN=s.XSD+"boolean",s.XSD_INTEGER=s.XSD+"integer",s.XSD_DOUBLE=s.XSD+"double",s.RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"},70496:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerIdentifier=void 0;class n{canCombineWithGraph(){return!0}async handle(e,t,n,r,i,o){let a;if(t.emittedStack[o+1]&&t.idStack[o+1])a=t.idStack[o+1][0];else{const e=await n.getContainerKey(r[o],r,o),i=null!==e?await n.resourceToTerm(await t.getContext(r),r[o]):n.dataFactory.blankNode();if(!i)return void(t.emittedStack[o]=!1);a=i,t.idStack[o+1]=[a]}let s=t.idStack[o];s||(s=t.idStack[o]=[]),s.some((e=>e.equals(a)))||s.push(a),await t.handlePendingContainerFlushBuffers()||(t.emittedStack[o]=!1)}}t.ContainerHandlerIdentifier=n},34910:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerIndex=void 0;const r=n(11288),i=n(49488),o=n(22754);class a{canCombineWithGraph(){return!0}async handle(e,t,n,a,s,l){if(!Array.isArray(s)){const d="@graph"in e,u=await t.getContext(a),c=a[l-1],f=o.Util.getContextValueIndex(u,c);if(f){if(r.Util.isPotentialKeyword(f))throw new r.ErrorCoded(`Keywords can not be used as @index value, got: ${f}`,r.ERROR_CODES.INVALID_TERM_DEFINITION);if("string"!==typeof f)throw new r.ErrorCoded(`@index values must be strings, got: ${f}`,r.ERROR_CODES.INVALID_TERM_DEFINITION);if("object"!==typeof s){if("@id"!==o.Util.getContextValueType(u,c))throw new r.ErrorCoded(`Property-based index containers require nodes as values or strings with @type: @id, but got: ${s}`,r.ERROR_CODES.INVALID_VALUE_OBJECT);const e=n.resourceToTerm(u,s);e&&(t.idStack[l+1]=[e])}const e=n.createVocabOrBaseTerm(u,f);if(e){const r=await n.valueToTerm(u,f,await n.getContainerKey(a[l],a,l),l,a);if(d){const i=await n.getGraphContainerValue(a,l+1);for(const o of r)t.emitQuad(l,n.dataFactory.quad(i,e,o,n.getDefaultGraph()))}else for(const o of r)await i.EntryHandlerPredicate.handlePredicateObject(t,n,a,l+1,e,o,!1,!1,!1)}}const h=d?2:1;await t.newOnValueJob(a.slice(0,a.length-h),s,l-h,!0),await t.handlePendingContainerFlushBuffers()}t.emittedStack[l]=!1}}t.ContainerHandlerIndex=a},33275:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerLanguage=void 0;const r=n(11288);class i{canCombineWithGraph(){return!1}async handle(e,t,n,i,o,a){const s=await n.getContainerKey(i[a],i,a);if(Array.isArray(o))o=o.map((e=>({"@value":e,"@language":s})));else{if("string"!==typeof o)throw new r.ErrorCoded(`Got invalid language map value, got '${JSON.stringify(o)}', but expected string`,r.ERROR_CODES.INVALID_LANGUAGE_MAP_VALUE);o={"@value":o,"@language":s}}await t.newOnValueJob(i.slice(0,i.length-1),o,a-1,!0),t.emittedStack[a]=!1}}t.ContainerHandlerLanguage=i},8358:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerHandlerType=void 0;const r=n(49488),i=n(22754);class o{canCombineWithGraph(){return!1}async handle(e,t,n,o,a,s){if(!Array.isArray(a)){if("string"===typeof a){const e=await t.getContext(o),r=i.Util.getContextValueType(e,o[s-1]),l="@vocab"===r?await n.createVocabOrBaseTerm(e,a):await n.resourceToTerm(e,a);if(l){const e={"@id":"NamedNode"===l.termType?l.value:a};await t.newOnValueJob(o.slice(0,o.length-1),e,s-1,!0),t.idStack[s+1]=[l]}}else{const e=!!t.idStack[s+1];e||delete t.idStack[s],await t.newOnValueJob(o.slice(0,o.length-1),a,s-1,!0),e||(t.idStack[s+1]=t.idStack[s])}const e=await n.getContainerKey(o[s],o,s),l=null!==e?n.createVocabOrBaseTerm(await t.getContext(o),e):null;l&&await r.EntryHandlerPredicate.handlePredicateObject(t,n,o,s+1,n.rdfType,l,!1,!1,!1),await t.handlePendingContainerFlushBuffers()}t.emittedStack[s]=!1}}t.ContainerHandlerType=o},81889:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerArrayValue=void 0;const r=n(22754),i=n(11288);class o{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,n,r,i){return this.test(e,t,null,n,r)}async test(e,t,n,r,i){return"number"===typeof r[i]}async handle(e,t,n,i,o,a){let s=await t.unaliasKeywordParent(i,a);if("@list"===s){let n=null,r=0;for(let e=a-2;e>0;e--){const t=i[e];if("string"===typeof t||"number"===typeof t){r=e,n=t;break}}if(null!==n){const s=await t.valueToTerm(await e.getContext(i),n,o,a,i);for(const n of s)await this.handleListElement(e,t,n,o,a,i.slice(0,r),r);0===s.length&&await this.handleListElement(e,t,null,o,a,i.slice(0,r),r)}}else if("@set"===s)await e.newOnValueJob(i.slice(0,-2),o,a-2,!1);else if(void 0!==s&&"@type"!==s){for(let e=a-1;e>0;e--)if("number"!==typeof i[e]){s=await t.unaliasKeyword(i[e],i,e);break}const n=await e.getContext(i.slice(0,-1));if("@list"in r.Util.getContextValueContainer(n,s)){e.emittedStack[a+1]=!0;const n=await t.valueToTerm(await e.getContext(i),s,o,a,i);for(const r of n)await this.handleListElement(e,t,r,o,a,i.slice(0,-1),a-1);0===n.length&&await this.handleListElement(e,t,null,o,a,i.slice(0,-1),a-1)}else e.shiftStack(a,1),await e.newOnValueJob(i.slice(0,-1),o,a-1,!1),e.contextTree.removeContext(i.slice(0,-1))}}async handleListElement(e,t,n,r,o,a,s){let l=e.listPointerStack[o];if(null!==r&&null!==(await t.unaliasKeywords(r,a,o))["@value"]){if(l&&l.value){const n=t.dataFactory.blankNode();e.emitQuad(o,t.dataFactory.quad(l.value,t.rdfRest,n,t.getDefaultGraph())),l.value=n}else{const e=t.dataFactory.blankNode();l={value:e,listRootDepth:s,listId:e}}n&&e.emitQuad(o,t.dataFactory.quad(l.value,t.rdfFirst,n,t.getDefaultGraph()))}else l||(l={listRootDepth:s,listId:t.rdfNil});e.listPointerStack[o]=l,e.rdfstar&&e.annotationsBuffer[o]&&e.emitError(new i.ErrorCoded("Found an illegal annotation inside a list",i.ERROR_CODES.INVALID_ANNOTATION))}}t.EntryHandlerArrayValue=o},36753:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerContainer=void 0;const r=n(70496),i=n(34910),o=n(33275),a=n(8358),s=n(22754);class l{static isSimpleGraphContainer(e){return"@graph"in e&&("@set"in e&&2===Object.keys(e).length||1===Object.keys(e).length)}static isComplexGraphContainer(e){return"@graph"in e&&("@set"in e&&Object.keys(e).length>2||!("@set"in e)&&Object.keys(e).length>1)}static getContainerGraphIndex(e,t,n){let r=l.isSimpleGraphContainer(e),i="";for(let o=t;o=0;a--)if("number"!==typeof t[a]){const e=s.Util.getContextValue(o,"@container",t[a],!1);if(e&&l.isSimpleGraphContainer(e))return{containers:e,depth:a+1,fallback:!1};const n=s.Util.getContextValue(o,"@container",t[a-1],!1);if(n){const e="@graph"in n;for(const t in l.CONTAINER_HANDLERS)if(n[t])return e?l.CONTAINER_HANDLERS[t].canCombineWithGraph()?{containers:n,depth:a,fallback:!1}:r:i?r:{containers:n,depth:a,fallback:!1};return r}if(i)return r;i=!0}return r}static async isBufferableContainerHandler(e,t,n){const r=await l.getContainerHandler(e,t,n);return!r.fallback&&!("@graph"in r.containers)}isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,n,r,i){return!!await this.test(e,t,null,n,r)}async test(e,t,n,r,i){const o=s.Util.getContextValueContainer(await e.getContext(r,2),r[i-1]);for(const a in l.CONTAINER_HANDLERS)if(o[a])return{containers:o,handler:l.CONTAINER_HANDLERS[a]};return null}async handle(e,t,n,r,i,o,a){return a.handler.handle(a.containers,e,t,r,i,o)}}t.EntryHandlerContainer=l,l.CONTAINER_HANDLERS={"@id":new r.ContainerHandlerIdentifier,"@index":new i.ContainerHandlerIndex,"@language":new o.ContainerHandlerLanguage,"@type":new a.ContainerHandlerType}},38215:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerInvalidFallback=void 0;class n{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,n,r,i){return!1}async test(e,t,n,r,i){return!0}async handle(e,t,n,r,i,o){e.emittedStack[o]=!1}}t.EntryHandlerInvalidFallback=n},49488:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerPredicate=void 0;const r=n(11288),i=n(22754);class o{static async handlePredicateObject(e,t,n,i,o,a,s,l,d){const u=await t.getPropertiesDepth(n,i),c=await t.getDepthOffsetGraph(i,n),f=i-c,h=e.idStack[u];if(h&&!d)for(const r of h){const d=c>=0;if(d){const n=e.idStack[f-1];if(n)for(const e of n)t.emitQuadChecked(i,r,o,a,e,s,l);else s?(t.validateReverseSubject(a),e.getUnidentifiedGraphBufferSafe(f-1).push({subject:a,predicate:o,object:r,isEmbedded:l})):e.getUnidentifiedGraphBufferSafe(f-1).push({subject:r,predicate:o,object:a,isEmbedded:l})}else{const e=await t.getGraphContainerValue(n,u);t.emitQuadChecked(i,r,o,a,e,s,l)}}else if(s&&t.validateReverseSubject(a),d){if(e.rdfstar){e.idStack[i]&&e.emitError(new r.ErrorCoded(`Found an illegal @id inside an annotation: ${e.idStack[i][0].value}`,r.ERROR_CODES.INVALID_ANNOTATION));for(let o=0;o=0;e--){const t=l[e];t.depth>u&&(d.nestedAnnotations.push(t),l.splice(e,1))}}}else e.getUnidentifiedValueBufferSafe(u).push({predicate:o,object:a,reverse:s,isEmbedded:l})}isPropertyHandler(){return!0}isStackProcessor(){return!0}async validate(e,t,n,r,o){const a=n[r];if(a){const o=await e.getContext(n);if(!e.jsonLiteralStack[r]&&await t.predicateToTerm(o,n[r]))return"@json"===i.Util.getContextValueType(o,a)&&(e.jsonLiteralStack[r+1]=!0),!0}return!1}async test(e,t,n,r,i){return r[i]}async handle(e,t,n,a,s,l,d){const u=a[l],c=await e.getContext(a),f=await t.predicateToTerm(c,n);if(f){const d=await t.valueToTerm(c,n,s,l,a);if(d.length)for(let h of d){let d=await t.unaliasKeywordParent(a,l);const p=i.Util.isPropertyReverse(c,u,d);let b=0;while("@reverse"===d||"number"===typeof d)"number"===typeof d?b++:l--,d=await t.unaliasKeywordParent(a,l-b);const g=i.Util.isPropertyInEmbeddedNode(d);t.validateReverseInEmbeddedNode(n,p,g);const y=i.Util.isPropertyInAnnotationObject(d);if(s){const o="@list"in i.Util.getContextValueContainer(c,n);if(o||s["@list"]){if((o&&!Array.isArray(s)&&!s["@list"]||s["@list"]&&!Array.isArray(s["@list"]))&&h!==t.rdfNil){const n=t.dataFactory.blankNode();e.emitQuad(l,t.dataFactory.quad(n,t.rdfRest,t.rdfNil,t.getDefaultGraph())),e.emitQuad(l,t.dataFactory.quad(n,t.rdfFirst,h,t.getDefaultGraph())),h=n}if(p&&!e.allowSubjectList)throw new r.ErrorCoded(`Found illegal list value in subject position at ${n}`,r.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE)}}await o.handlePredicateObject(e,t,a,l,f,h,p,g,y)}}}}t.EntryHandlerPredicate=o},4479:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeyword=void 0;class n{constructor(e){this.keyword=e}isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,n,r,i){return!1}async test(e,t,n,r,i){return n===this.keyword}}t.EntryHandlerKeyword=n},60768:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordAnnotation=void 0;const r=n(4479),i=n(11288);class o extends r.EntryHandlerKeyword{constructor(){super("@annotation")}async handle(e,t,n,r,o,a){("string"===typeof o||"object"===typeof o&&o["@value"])&&e.emitError(new i.ErrorCoded(`Found illegal annotation value: ${JSON.stringify(o)}`,i.ERROR_CODES.INVALID_ANNOTATION))}}t.EntryHandlerKeywordAnnotation=o},42613:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordContext=void 0;const r=n(11288),i=n(4479);class o extends i.EntryHandlerKeyword{constructor(){super("@context")}isStackProcessor(){return!1}async handle(e,t,n,i,o,a){e.streamingProfile&&(e.processingStack[a]||e.processingType[a]||void 0!==e.idStack[a])&&e.emitError(new r.ErrorCoded("Found an out-of-order context, while streaming is enabled.(disable `streamingProfile`)",r.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));const s=e.getContext(i),l=e.parseContext(o,(await s).getContextRaw());e.contextTree.setContext(i.slice(0,-1),l),e.emitContext(o),await e.validateContext(await l)}}t.EntryHandlerKeywordContext=o},73330:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordGraph=void 0;const r=n(4479);class i extends r.EntryHandlerKeyword{constructor(){super("@graph")}async handle(e,t,n,r,i,o){e.graphStack[o+1]=!0}}t.EntryHandlerKeywordGraph=i},52709:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordId=void 0;const r=n(11288),i=n(4479);class o extends i.EntryHandlerKeyword{constructor(){super("@id")}isStackProcessor(){return!1}async handle(e,t,n,i,o,a){if("string"!==typeof o){if(e.rdfstar&&"object"===typeof o){const t=Object.keys(o);1===t.length&&"@id"===t[0]&&e.emitError(new r.ErrorCoded(`Invalid embedded node without property with @id ${o["@id"]}`,r.ERROR_CODES.INVALID_EMBEDDED_NODE))}else e.emitError(new r.ErrorCoded(`Found illegal @id '${o}'`,r.ERROR_CODES.INVALID_ID_VALUE));return}const s=await t.getPropertiesDepth(i,a);if(void 0!==e.idStack[s]&&(e.idStack[s][0].listHead?e.emitError(new r.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${i[a-1]}'`,r.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT)):e.emitError(new r.ErrorCoded(`Found duplicate @ids '${e.idStack[s][0].value}' and '${o}'`,r.ERROR_CODES.COLLIDING_KEYWORDS))),e.rdfstar&&e.annotationsBuffer[a])for(const l of e.annotationsBuffer[a])l.depth===a&&e.emitError(new r.ErrorCoded(`Found an illegal @id inside an annotation: ${o}`,r.ERROR_CODES.INVALID_ANNOTATION));e.idStack[s]=t.nullableTermToArray(await t.resourceToTerm(await e.getContext(i),o))}}t.EntryHandlerKeywordId=o},67406:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordIncluded=void 0;const r=n(11288),i=n(4479);class o extends i.EntryHandlerKeyword{constructor(){super("@included")}async handle(e,t,n,i,o,a){"object"!==typeof o&&e.emitError(new r.ErrorCoded(`Found illegal @included '${o}'`,r.ERROR_CODES.INVALID_INCLUDED_VALUE));const s=await t.unaliasKeywords(o,i,a,await e.getContext(i));"@value"in s&&e.emitError(new r.ErrorCoded(`Found an illegal @included @value node '${JSON.stringify(o)}'`,r.ERROR_CODES.INVALID_INCLUDED_VALUE)),"@list"in s&&e.emitError(new r.ErrorCoded(`Found an illegal @included @list node '${JSON.stringify(o)}'`,r.ERROR_CODES.INVALID_INCLUDED_VALUE)),e.emittedStack[a]=!1}}t.EntryHandlerKeywordIncluded=o},61323:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordNest=void 0;const r=n(11288),i=n(4479);class o extends i.EntryHandlerKeyword{constructor(){super("@nest")}async handle(e,t,n,i,o,a){"object"!==typeof o&&e.emitError(new r.ErrorCoded(`Found invalid @nest entry for '${n}': '${o}'`,r.ERROR_CODES.INVALID_NEST_VALUE)),"@value"in await t.unaliasKeywords(o,i,a,await e.getContext(i))&&e.emitError(new r.ErrorCoded(`Found an invalid @value node for '${n}'`,r.ERROR_CODES.INVALID_NEST_VALUE)),e.emittedStack[a]=!1}}t.EntryHandlerKeywordNest=o},51820:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordType=void 0;const r=n(11288),i=n(22754),o=n(49488),a=n(4479);class s extends a.EntryHandlerKeyword{constructor(){super("@type")}isStackProcessor(){return!1}async handle(e,t,n,a,s,l){const d=a[l],u=await e.getContext(a),c=t.rdfType,f=await t.unaliasKeywordParent(a,l),h=i.Util.isPropertyReverse(u,d,f),p=i.Util.isPropertyInEmbeddedNode(f);t.validateReverseInEmbeddedNode(n,h,p);const b=i.Util.isPropertyInAnnotationObject(f),g=Array.isArray(s)?s:[s];for(const i of g){"string"!==typeof i&&e.emitError(new r.ErrorCoded(`Found illegal @type '${i}'`,r.ERROR_CODES.INVALID_TYPE_VALUE));const n=t.createVocabOrBaseTerm(u,i);n&&await o.EntryHandlerPredicate.handlePredicateObject(e,t,a,l,c,n,h,p,b)}let y=Promise.resolve(u),w=!1;for(const r of g.sort()){const t=i.Util.getContextValue(u,"@context",r,null);t&&(w=!0,y=y.then((n=>e.parseContext(t,n.getContextRaw()))))}!e.streamingProfile||!w&&e.streamingProfileAllowOutOfOrderPlainType||!e.processingStack[l]&&!e.idStack[l]||e.emitError(new r.ErrorCoded("Found an out-of-order type-scoped context, while streaming is enabled.(disable `streamingProfile`)",r.ERROR_CODES.INVALID_STREAMING_KEY_ORDER)),w&&(y=y.then((e=>("@propagate"in e.getContextRaw()||(e.getContextRaw()["@propagate"]=!1),!1===e.getContextRaw()["@propagate"]&&(e.getContextRaw()["@__propagateFallback"]=u.getContextRaw()),e))),e.contextTree.setContext(a.slice(0,a.length-1),y)),e.processingType[l]=!0}}t.EntryHandlerKeywordType=s},72963:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordUnknownFallback=void 0;const r=n(11288);class i{isPropertyHandler(){return!1}isStackProcessor(){return!0}async validate(e,t,n,i,o){const a=await t.unaliasKeyword(n[i],n,i);return!!r.Util.isPotentialKeyword(a)&&!(!o&&"@list"===a)}async test(e,t,n,i,o){return r.Util.isPotentialKeyword(n)}async handle(e,t,n,o,a,s){const l=i.VALID_KEYWORDS_TYPES[n];void 0!==l?l&&typeof a!==l.type&&e.emitError(new r.ErrorCoded(`Invalid value type for '${n}' with value '${a}'`,l.errorCode)):e.strictValues&&e.emitError(new Error(`Unknown keyword '${n}' with value '${a}'`)),e.emittedStack[s]=!1}}t.EntryHandlerKeywordUnknownFallback=i,i.VALID_KEYWORDS_TYPES={"@index":{type:"string",errorCode:r.ERROR_CODES.INVALID_INDEX_VALUE},"@list":null,"@reverse":{type:"object",errorCode:r.ERROR_CODES.INVALID_REVERSE_VALUE},"@set":null,"@value":null}},93322:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EntryHandlerKeywordValue=void 0;const r=n(4479);class i extends r.EntryHandlerKeyword{constructor(){super("@value")}async validate(e,t,n,r,i){const o=n[r];return o&&!e.literalStack[r]&&await this.test(e,t,o,n,r)&&(e.literalStack[r]=!0),super.validate(e,t,n,r,i)}async test(e,t,n,r,i){return"@value"===await t.unaliasKeyword(r[i],r.slice(0,r.length-1),i-1,!0)}async handle(e,t,n,r,i,o){e.literalStack[o]=!0,delete e.unidentifiedValuesBuffer[o],delete e.unidentifiedGraphsBuffer[o],e.emittedStack[o]=!1}}t.EntryHandlerKeywordValue=i},27785:function(e,t,n){"use strict";const{AbortError:r,codes:i}=n(65123),{isNodeStream:o,isWebStream:a,kControllerErrorFunction:s}=n(18724),l=n(20462),{ERR_INVALID_ARG_TYPE:d}=i,u=(e,t)=>{if("object"!==typeof e||!("aborted"in e))throw new d(t,"AbortSignal",e)};e.exports.addAbortSignal=function(t,n){if(u(t,"signal"),!o(n)&&!a(n))throw new d("stream",["ReadableStream","WritableStream","Stream"],n);return e.exports.addAbortSignalNoValidate(t,n)},e.exports.addAbortSignalNoValidate=function(e,t){if("object"!==typeof e||!("aborted"in e))return t;const n=o(t)?()=>{t.destroy(new r(void 0,{cause:e.reason}))}:()=>{t[s](new r(void 0,{cause:e.reason}))};return e.aborted?n():(e.addEventListener("abort",n),l(t,(()=>e.removeEventListener("abort",n)))),t}},8413:function(e,t,n){"use strict";const{StringPrototypeSlice:r,SymbolIterator:i,TypedArrayPrototypeSet:o,Uint8Array:a}=n(45030),{Buffer:s}=n(48764),{inspect:l}=n(29654);e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(e){const t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}shift(){if(0===this.length)return;const e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(0===this.length)return"";let t=this.head,n=""+t.data;while(null!==(t=t.next))n+=e+t.data;return n}concat(e){if(0===this.length)return s.alloc(0);const t=s.allocUnsafe(e>>>0);let n=this.head,r=0;while(n)o(t,n.data,r),r+=n.data.length,n=n.next;return t}consume(e,t){const n=this.head.data;if(eo.length)){e===o.length?(t+=o,++i,n.next?this.head=n.next:this.head=this.tail=null):(t+=r(o,0,e),this.head=n,n.data=r(o,e));break}t+=o,e-=o.length,++i}while(null!==(n=n.next));return this.length-=i,t}_getBuffer(e){const t=s.allocUnsafe(e),n=e;let r=this.head,i=0;do{const s=r.data;if(!(e>s.length)){e===s.length?(o(t,s,n-e),++i,r.next?this.head=r.next:this.head=this.tail=null):(o(t,new a(s.buffer,s.byteOffset,e),n-e),this.head=r,r.data=s.slice(e));break}o(t,s,n-e),e-=s.length,++i}while(null!==(r=r.next));return this.length-=i,t}[Symbol.for("nodejs.util.inspect.custom")](e,t){return l(this,{...t,depth:0,customInspect:!1})}}},14811:function(e,t,n){"use strict";const{pipeline:r}=n(75340),i=n(67510),{destroyer:o}=n(49648),{isNodeStream:a,isReadable:s,isWritable:l,isWebStream:d,isTransformStream:u,isWritableStream:c,isReadableStream:f}=n(18724),{AbortError:h,codes:{ERR_INVALID_ARG_VALUE:p,ERR_MISSING_ARGS:b}}=n(65123),g=n(20462);e.exports=function(...e){if(0===e.length)throw new b("streams");if(1===e.length)return i.from(e[0]);const t=[...e];if("function"===typeof e[0]&&(e[0]=i.from(e[0])),"function"===typeof e[e.length-1]){const t=e.length-1;e[t]=i.from(e[t])}for(let r=0;r0&&!(l(e[r])||c(e[r])||u(e[r])))throw new p(`streams[${r}]`,t[r],"must be writable")}let n,y,w,_,m;function S(e){const t=_;_=null,t?t(e):e?m.destroy(e):A||R||m.destroy()}const E=e[0],v=r(e,S),R=!!(l(E)||c(E)||u(E)),A=!!(s(v)||f(v)||u(v));if(m=new i({writableObjectMode:!(null===E||void 0===E||!E.writableObjectMode),readableObjectMode:!(null===v||void 0===v||!v.writableObjectMode),writable:R,readable:A}),R){if(a(E))m._write=function(e,t,r){E.write(e,t)?r():n=r},m._final=function(e){E.end(),y=e},E.on("drain",(function(){if(n){const e=n;n=null,e()}}));else if(d(E)){const e=u(E)?E.writable:E,t=e.getWriter();m._write=async function(e,n,r){try{await t.ready,t.write(e).catch((()=>{})),r()}catch(i){r(i)}},m._final=async function(e){try{await t.ready,t.close().catch((()=>{})),y=e}catch(n){e(n)}}}const e=u(v)?v.readable:v;g(e,(()=>{if(y){const e=y;y=null,e()}}))}if(A)if(a(v))v.on("readable",(function(){if(w){const e=w;w=null,e()}})),v.on("end",(function(){m.push(null)})),m._read=function(){while(1){const e=v.read();if(null===e)return void(w=m._read);if(!m.push(e))return}};else if(d(v)){const e=u(v)?v.readable:v,t=e.getReader();m._read=async function(){while(1)try{const{value:e,done:n}=await t.read();if(!m.push(e))return;if(n)return void m.push(null)}catch{return}}}return m._destroy=function(e,t){e||null===_||(e=new h),w=null,n=null,y=null,null===_?t(e):(_=t,a(v)&&o(v,e))},m}},49648:function(e,t,n){"use strict";const r=n(34155),{aggregateTwoErrors:i,codes:{ERR_MULTIPLE_CALLBACK:o},AbortError:a}=n(65123),{Symbol:s}=n(45030),{kDestroyed:l,isDestroyed:d,isFinished:u,isServerRequest:c}=n(18724),f=s("kDestroy"),h=s("kConstruct");function p(e,t,n){e&&(e.stack,t&&!t.errored&&(t.errored=e),n&&!n.errored&&(n.errored=e))}function b(e,t){const n=this._readableState,r=this._writableState,o=r||n;return null!==r&&void 0!==r&&r.destroyed||null!==n&&void 0!==n&&n.destroyed?("function"===typeof t&&t(),this):(p(e,r,n),r&&(r.destroyed=!0),n&&(n.destroyed=!0),o.constructed?g(this,e,t):this.once(f,(function(n){g(this,i(n,e),t)})),this)}function g(e,t,n){let i=!1;function o(t){if(i)return;i=!0;const o=e._readableState,a=e._writableState;p(t,a,o),a&&(a.closed=!0),o&&(o.closed=!0),"function"===typeof n&&n(t),t?r.nextTick(y,e,t):r.nextTick(w,e)}try{e._destroy(t||null,o)}catch(t){o(t)}}function y(e,t){_(e,t),w(e)}function w(e){const t=e._readableState,n=e._writableState;n&&(n.closeEmitted=!0),t&&(t.closeEmitted=!0),(null!==n&&void 0!==n&&n.emitClose||null!==t&&void 0!==t&&t.emitClose)&&e.emit("close")}function _(e,t){const n=e._readableState,r=e._writableState;null!==r&&void 0!==r&&r.errorEmitted||null!==n&&void 0!==n&&n.errorEmitted||(r&&(r.errorEmitted=!0),n&&(n.errorEmitted=!0),e.emit("error",t))}function m(){const e=this._readableState,t=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=!1===e.readable,e.endEmitted=!1===e.readable),t&&(t.constructed=!0,t.destroyed=!1,t.closed=!1,t.closeEmitted=!1,t.errored=null,t.errorEmitted=!1,t.finalCalled=!1,t.prefinished=!1,t.ended=!1===t.writable,t.ending=!1===t.writable,t.finished=!1===t.writable)}function S(e,t,n){const i=e._readableState,o=e._writableState;if(null!==o&&void 0!==o&&o.destroyed||null!==i&&void 0!==i&&i.destroyed)return this;null!==i&&void 0!==i&&i.autoDestroy||null!==o&&void 0!==o&&o.autoDestroy?e.destroy(t):t&&(t.stack,o&&!o.errored&&(o.errored=t),i&&!i.errored&&(i.errored=t),n?r.nextTick(_,e,t):_(e,t))}function E(e,t){if("function"!==typeof e._construct)return;const n=e._readableState,i=e._writableState;n&&(n.constructed=!1),i&&(i.constructed=!1),e.once(h,t),e.listenerCount(h)>1||r.nextTick(v,e)}function v(e){let t=!1;function n(n){if(t)return void S(e,null!==n&&void 0!==n?n:new o);t=!0;const i=e._readableState,a=e._writableState,s=a||i;i&&(i.constructed=!0),a&&(a.constructed=!0),s.destroyed?e.emit(f,n):n?S(e,n,!0):r.nextTick(R,e)}try{e._construct((e=>{r.nextTick(n,e)}))}catch(i){r.nextTick(n,i)}}function R(e){e.emit(h)}function A(e){return(null===e||void 0===e?void 0:e.setHeader)&&"function"===typeof e.abort}function C(e){e.emit("close")}function x(e,t){e.emit("error",t),r.nextTick(C,e)}function T(e,t){e&&!d(e)&&(t||u(e)||(t=new a),c(e)?(e.socket=null,e.destroy(t)):A(e)?e.abort():A(e.req)?e.req.abort():"function"===typeof e.destroy?e.destroy(t):"function"===typeof e.close?e.close():t?r.nextTick(x,e,t):r.nextTick(C,e),e.destroyed||(e[l]=!0))}e.exports={construct:E,destroyer:T,destroy:b,undestroy:m,errorOrDestroy:S}},67510:function(e,t,n){"use strict";const{ObjectDefineProperties:r,ObjectGetOwnPropertyDescriptor:i,ObjectKeys:o,ObjectSetPrototypeOf:a}=n(45030);e.exports=d;const s=n(39126),l=n(10601);a(d.prototype,s.prototype),a(d,s);{const e=o(l.prototype);for(let t=0;t{c=!1,e&&g(t,e),p(e)})),d._write=function(e,t,i){n.write(e,t)?i():r=i},d._final=function(e){n.end(),i=e},n.on("drain",(function(){if(r){const e=r;r=null,e()}})),n.on("finish",(function(){if(i){const e=i;i=null,e()}}))),u&&(f(t,(e=>{u=!1,e&&g(t,e),p(e)})),t.on("readable",(function(){if(s){const e=s;s=null,e()}})),t.on("end",(function(){d.push(null)})),d._read=function(){while(1){const e=t.read();if(null===e)return void(s=d._read);if(!d.push(e))return}}),d._destroy=function(e,o){e||null===l||(e=new h),s=null,r=null,i=null,null===l?o(e):(l=o,g(n,e),g(t,e))},d}e.exports=function e(t,n){if(c(t))return t;if(d(t))return x({readable:t});if(u(t))return x({writable:t});if(l(t))return x({writable:!1,readable:!1});if("function"===typeof t){const{value:e,write:i,final:o,destroy:a}=C(t);if(s(e))return m(A,e,{objectMode:!0,write:i,final:o,destroy:a});const l=null===e||void 0===e?void 0:e.then;if("function"===typeof l){let t;const n=R(l,e,(e=>{if(null!=e)throw new b("nully","body",e)}),(e=>{g(t,e)}));return t=new A({objectMode:!0,readable:!1,write:i,final(e){o((async()=>{try{await n,r.nextTick(e,null)}catch(t){r.nextTick(e,t)}}))},destroy:a})}throw new b("Iterable, AsyncIterable or AsyncFunction",n,e)}if(E(t))return e(t.arrayBuffer());if(s(t))return m(A,t,{objectMode:!0,writable:!1});if("object"===typeof(null===t||void 0===t?void 0:t.writable)||"object"===typeof(null===t||void 0===t?void 0:t.readable)){const n=null!==t&&void 0!==t&&t.readable?d(null===t||void 0===t?void 0:t.readable)?null===t||void 0===t?void 0:t.readable:e(t.readable):void 0,r=null!==t&&void 0!==t&&t.writable?u(null===t||void 0===t?void 0:t.writable)?null===t||void 0===t?void 0:t.writable:e(t.writable):void 0;return x({readable:n,writable:r})}const i=null===t||void 0===t?void 0:t.then;if("function"===typeof i){let e;return R(i,t,(t=>{null!=t&&e.push(t),e.push(null)}),(t=>{g(e,t)})),e=new A({objectMode:!0,writable:!1,read(){}})}throw new p(n,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],t)}},20462:function(e,t,n){const r=n(34155),{AbortError:i,codes:o}=n(65123),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:s}=o,{kEmptyObject:l,once:d}=n(29654),{validateAbortSignal:u,validateFunction:c,validateObject:f,validateBoolean:h}=n(37852),{Promise:p,PromisePrototypeThen:b}=n(45030),{isClosed:g,isReadable:y,isReadableNodeStream:w,isReadableStream:_,isReadableFinished:m,isReadableErrored:S,isWritable:E,isWritableNodeStream:v,isWritableStream:R,isWritableFinished:A,isWritableErrored:C,isNodeStream:x,willEmitClose:T,kIsClosedPromise:k}=n(18724);function I(e){return e.setHeader&&"function"===typeof e.abort}const O=()=>{};function N(e,t,n){var o,h;if(2===arguments.length?(n=t,t=l):null==t?t=l:f(t,"options"),c(n,"callback"),u(t.signal,"options.signal"),n=d(n),_(e)||R(e))return D(e,t,n);if(!x(e))throw new a("stream",["ReadableStream","WritableStream","Stream"],e);const p=null!==(o=t.readable)&&void 0!==o?o:w(e),b=null!==(h=t.writable)&&void 0!==h?h:v(e),k=e._writableState,N=e._readableState,L=()=>{e.writable||M()};let P=T(e)&&w(e)===p&&v(e)===b,j=A(e,!1);const M=()=>{j=!0,e.destroyed&&(P=!1),(!P||e.readable&&!p)&&(p&&!F||n.call(e))};let F=m(e,!1);const V=()=>{F=!0,e.destroyed&&(P=!1),(!P||e.writable&&!b)&&(b&&!j||n.call(e))},$=t=>{n.call(e,t)};let W=g(e);const U=()=>{W=!0;const t=C(e)||S(e);return t&&"boolean"!==typeof t?n.call(e,t):p&&!F&&w(e,!0)&&!m(e,!1)?n.call(e,new s):!b||j||A(e,!1)?void n.call(e):n.call(e,new s)},B=()=>{W=!0;const t=C(e)||S(e);if(t&&"boolean"!==typeof t)return n.call(e,t);n.call(e)},H=()=>{e.req.on("finish",M)};I(e)?(e.on("complete",M),P||e.on("abort",U),e.req?H():e.on("request",H)):b&&!k&&(e.on("end",L),e.on("close",L)),P||"boolean"!==typeof e.aborted||e.on("aborted",U),e.on("end",V),e.on("finish",M),!1!==t.error&&e.on("error",$),e.on("close",U),W?r.nextTick(U):null!==k&&void 0!==k&&k.errorEmitted||null!==N&&void 0!==N&&N.errorEmitted?P||r.nextTick(B):(p||P&&!y(e)||!j&&!1!==E(e))&&(b||P&&!E(e)||!F&&!1!==y(e))?N&&e.req&&e.aborted&&r.nextTick(B):r.nextTick(B);const G=()=>{n=O,e.removeListener("aborted",U),e.removeListener("complete",M),e.removeListener("abort",U),e.removeListener("request",H),e.req&&e.req.removeListener("finish",M),e.removeListener("end",L),e.removeListener("close",L),e.removeListener("finish",M),e.removeListener("end",V),e.removeListener("error",$),e.removeListener("close",U)};if(t.signal&&!W){const o=()=>{const r=n;G(),r.call(e,new i(void 0,{cause:t.signal.reason}))};if(t.signal.aborted)r.nextTick(o);else{const r=n;n=d(((...n)=>{t.signal.removeEventListener("abort",o),r.apply(e,n)})),t.signal.addEventListener("abort",o)}}return G}function D(e,t,n){let o=!1,a=O;if(t.signal)if(a=()=>{o=!0,n.call(e,new i(void 0,{cause:t.signal.reason}))},t.signal.aborted)r.nextTick(a);else{const r=n;n=d(((...n)=>{t.signal.removeEventListener("abort",a),r.apply(e,n)})),t.signal.addEventListener("abort",a)}const s=(...t)=>{o||r.nextTick((()=>n.apply(e,t)))};return b(e[k].promise,s,s),O}function L(e,t){var n;let r=!1;return null===t&&(t=l),null!==(n=t)&&void 0!==n&&n.cleanup&&(h(t.cleanup,"cleanup"),r=t.cleanup),new p(((n,i)=>{const o=N(e,t,(e=>{r&&o(),e?i(e):n()}))}))}e.exports=N,e.exports.finished=L},31014:function(e,t,n){"use strict";const r=n(34155),{PromisePrototypeThen:i,SymbolAsyncIterator:o,SymbolIterator:a}=n(45030),{Buffer:s}=n(48764),{ERR_INVALID_ARG_TYPE:l,ERR_STREAM_NULL_VALUES:d}=n(65123).codes;function u(e,t,n){let u,c;if("string"===typeof t||t instanceof s)return new e({objectMode:!0,...n,read(){this.push(t),this.push(null)}});if(t&&t[o])c=!0,u=t[o]();else{if(!t||!t[a])throw new l("iterable",["Iterable"],t);c=!1,u=t[a]()}const f=new e({objectMode:!0,highWaterMark:1,...n});let h=!1;async function p(e){const t=void 0!==e&&null!==e,n="function"===typeof u.throw;if(t&&n){const{value:t,done:n}=await u.throw(e);if(await t,n)return}if("function"===typeof u.return){const{value:e}=await u.return();await e}}async function b(){for(;;){try{const{value:e,done:t}=c?await u.next():u.next();if(t)f.push(null);else{const t=e&&"function"===typeof e.then?await e:e;if(null===t)throw h=!1,new d;if(f.push(t))continue;h=!1}}catch(e){f.destroy(e)}break}}return f._read=function(){h||(h=!0,b())},f._destroy=function(e,t){i(p(e),(()=>r.nextTick(t,e)),(n=>r.nextTick(t,n||e)))},f}e.exports=u},48195:function(e,t,n){"use strict";const{ArrayIsArray:r,ObjectSetPrototypeOf:i}=n(45030),{EventEmitter:o}=n(17187);function a(e){o.call(this,e)}function s(e,t,n){if("function"===typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?r(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}i(a.prototype,o.prototype),i(a,o),a.prototype.pipe=function(e,t){const n=this;function r(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function i(){n.readable&&n.resume&&n.resume()}n.on("data",r),e.on("drain",i),e._isStdio||t&&!1===t.end||(n.on("end",l),n.on("close",d));let a=!1;function l(){a||(a=!0,e.end())}function d(){a||(a=!0,"function"===typeof e.destroy&&e.destroy())}function u(e){c(),0===o.listenerCount(this,"error")&&this.emit("error",e)}function c(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",l),n.removeListener("close",d),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",c),n.removeListener("close",c),e.removeListener("close",c)}return s(n,"error",u),s(e,"error",u),n.on("end",c),n.on("close",c),e.on("close",c),e.emit("pipe",n),e},e.exports={Stream:a,prependListener:s}},56565:function(e,t,n){"use strict";const r=globalThis.AbortController||n(28599).AbortController,{codes:{ERR_INVALID_ARG_VALUE:i,ERR_INVALID_ARG_TYPE:o,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:s},AbortError:l}=n(65123),{validateAbortSignal:d,validateInteger:u,validateObject:c}=n(37852),f=n(45030).Symbol("kWeak"),{finished:h}=n(20462),p=n(14811),{addAbortSignalNoValidate:b}=n(27785),{isWritable:g,isNodeStream:y}=n(18724),{ArrayPrototypePush:w,MathFloor:_,Number:m,NumberIsNaN:S,Promise:E,PromiseReject:v,PromisePrototypeThen:R,Symbol:A}=n(45030),C=A("kEmpty"),x=A("kEof");function T(e,t){if(null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),y(e)&&!g(e))throw new i("stream",e,"must be writable");const n=p(this,e);return null!==t&&void 0!==t&&t.signal&&b(t.signal,n),n}function k(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal");let n=1;return null!=(null===t||void 0===t?void 0:t.concurrency)&&(n=_(t.concurrency)),u(n,"concurrency",1),async function*(){var i,o;const a=new r,s=this,d=[],u=a.signal,c={signal:u},f=()=>a.abort();let h,p;null!==t&&void 0!==t&&null!==(i=t.signal)&&void 0!==i&&i.aborted&&f(),null===t||void 0===t||null===(o=t.signal)||void 0===o||o.addEventListener("abort",f);let b=!1;function g(){b=!0}async function y(){try{for await(let t of s){var r;if(b)return;if(u.aborted)throw new l;try{t=e(t,c)}catch(o){t=v(o)}t!==C&&("function"===typeof(null===(r=t)||void 0===r?void 0:r.catch)&&t.catch(g),d.push(t),h&&(h(),h=null),!b&&d.length&&d.length>=n&&await new E((e=>{p=e})))}d.push(x)}catch(o){const e=v(o);R(e,void 0,g),d.push(e)}finally{var i;b=!0,h&&(h(),h=null),null===t||void 0===t||null===(i=t.signal)||void 0===i||i.removeEventListener("abort",f)}}y();try{while(1){while(d.length>0){const e=await d[0];if(e===x)return;if(u.aborted)throw new l;e!==C&&(yield e),d.shift(),p&&(p(),p=null)}await new E((e=>{h=e}))}}finally{a.abort(),b=!0,p&&(p(),p=null)}}.call(this)}function I(e=void 0){return null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal"),async function*(){let t=0;for await(const r of this){var n;if(null!==e&&void 0!==e&&null!==(n=e.signal)&&void 0!==n&&n.aborted)throw new l({cause:e.signal.reason});yield[t++,r]}}.call(this)}async function O(e,t=void 0){for await(const n of P.call(this,e,t))return!0;return!1}async function N(e,t=void 0){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);return!await O.call(this,(async(...t)=>!await e(...t)),t)}async function D(e,t){for await(const n of P.call(this,e,t))return n}async function L(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function n(t,n){return await e(t,n),C}for await(const r of k.call(this,n,t));}function P(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function n(t,n){return await e(t,n)?t:C}return k.call(this,n,t)}class j extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function M(e,t,n){var i;if("function"!==typeof e)throw new o("reducer",["Function","AsyncFunction"],e);null!=n&&c(n,"options"),null!=(null===n||void 0===n?void 0:n.signal)&&d(n.signal,"options.signal");let a=arguments.length>1;if(null!==n&&void 0!==n&&null!==(i=n.signal)&&void 0!==i&&i.aborted){const e=new l(void 0,{cause:n.signal.reason});throw this.once("error",(()=>{})),await h(this.destroy(e)),e}const s=new r,u=s.signal;if(null!==n&&void 0!==n&&n.signal){const e={once:!0,[f]:this};n.signal.addEventListener("abort",(()=>s.abort()),e)}let p=!1;try{for await(const r of this){var b;if(p=!0,null!==n&&void 0!==n&&null!==(b=n.signal)&&void 0!==b&&b.aborted)throw new l;a?t=await e(t,r,{signal:u}):(t=r,a=!0)}if(!p&&!a)throw new j}finally{s.abort()}return t}async function F(e){null!=e&&c(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal");const t=[];for await(const r of this){var n;if(null!==e&&void 0!==e&&null!==(n=e.signal)&&void 0!==n&&n.aborted)throw new l(void 0,{cause:e.signal.reason});w(t,r)}return t}function V(e,t){const n=k.call(this,e,t);return async function*(){for await(const e of n)yield*e}.call(this)}function $(e){if(e=m(e),S(e))return 0;if(e<0)throw new s("number",">= 0",e);return e}function W(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=$(e),async function*(){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;for await(const i of this){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;e--<=0&&(yield i)}}.call(this)}function U(e,t=void 0){return null!=t&&c(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=$(e),async function*(){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;for await(const i of this){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;if(!(e-- >0))return;yield i}}.call(this)}e.exports.streamReturningOperators={asIndexedPairs:I,drop:W,filter:P,flatMap:V,map:k,take:U,compose:T},e.exports.promiseReturningOperators={every:N,forEach:L,reduce:M,toArray:F,some:O,find:D}},59267:function(e,t,n){"use strict";const{ObjectSetPrototypeOf:r}=n(45030);e.exports=o;const i=n(14571);function o(e){if(!(this instanceof o))return new o(e);i.call(this,e)}r(o.prototype,i.prototype),r(o,i),o.prototype._transform=function(e,t,n){n(null,e)}},75340:function(e,t,n){const r=n(34155),{ArrayIsArray:i,Promise:o,SymbolAsyncIterator:a}=n(45030),s=n(20462),{once:l}=n(29654),d=n(49648),u=n(67510),{aggregateTwoErrors:c,codes:{ERR_INVALID_ARG_TYPE:f,ERR_INVALID_RETURN_VALUE:h,ERR_MISSING_ARGS:p,ERR_STREAM_DESTROYED:b,ERR_STREAM_PREMATURE_CLOSE:g},AbortError:y}=n(65123),{validateFunction:w,validateAbortSignal:_}=n(37852),{isIterable:m,isReadable:S,isReadableNodeStream:E,isNodeStream:v,isTransformStream:R,isWebStream:A,isReadableStream:C,isReadableEnded:x}=n(18724),T=globalThis.AbortController||n(28599).AbortController;let k,I;function O(e,t,n){let r=!1;e.on("close",(()=>{r=!0}));const i=s(e,{readable:t,writable:n},(e=>{r=!e}));return{destroy:t=>{r||(r=!0,d.destroyer(e,t||new b("pipe")))},cleanup:i}}function N(e){return w(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function D(e){if(m(e))return e;if(E(e))return L(e);throw new f("val",["Readable","Iterable","AsyncIterable"],e)}async function*L(e){I||(I=n(39126)),yield*I.prototype[a].call(e)}async function P(e,t,n,{end:r}){let i,a=null;const l=e=>{if(e&&(i=e),a){const e=a;a=null,e()}},d=()=>new o(((e,t)=>{i?t(i):a=()=>{i?t(i):e()}}));t.on("drain",l);const u=s(t,{readable:!1},l);try{t.writableNeedDrain&&await d();for await(const n of e)t.write(n)||await d();r&&t.end(),await d(),n()}catch(f){n(i!==f?c(i,f):f)}finally{u(),t.off("drain",l)}}async function j(e,t,n,{end:r}){R(t)&&(t=t.writable);const i=t.getWriter();try{for await(const t of e)await i.ready,i.write(t).catch((()=>{}));await i.ready,r&&await i.close(),n()}catch(o){try{await i.abort(o),n(o)}catch(o){n(o)}}}function M(...e){return F(e,l(N(e)))}function F(e,t,o){if(1===e.length&&i(e[0])&&(e=e[0]),e.length<2)throw new p("streams");const a=new T,s=a.signal,l=null===o||void 0===o?void 0:o.signal,d=[];function c(){L(new y)}let b,g;_(l,"options.signal"),null===l||void 0===l||l.addEventListener("abort",c);const w=[];let x,I=0;function N(e){L(e,0===--I)}function L(e,n){if(!e||b&&"ERR_STREAM_PREMATURE_CLOSE"!==b.code||(b=e),b||n){while(w.length)w.shift()(b);null===l||void 0===l||l.removeEventListener("abort",c),a.abort(),n&&(b||d.forEach((e=>e())),r.nextTick(t,b,g))}}for(let W=0;W0,G=B||!1!==(null===o||void 0===o?void 0:o.end),K=W===e.length-1;if(v(U)){if(G){const{destroy:J,cleanup:q}=O(U,B,H);w.push(J),S(U)&&K&&d.push(q)}function M(e){e&&"AbortError"!==e.name&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code&&N(e)}U.on("error",M),S(U)&&K&&d.push((()=>{U.removeListener("error",M)}))}if(0===W)if("function"===typeof U){if(x=U({signal:s}),!m(x))throw new h("Iterable, AsyncIterable or Stream","source",x)}else x=m(U)||E(U)||R(U)?U:u.from(U);else if("function"===typeof U){var F;if(R(x))x=D(null===(F=x)||void 0===F?void 0:F.readable);else x=D(x);if(x=U(x,{signal:s}),B){if(!m(x,!0))throw new h("AsyncIterable",`transform[${W-1}]`,x)}else{var $;k||(k=n(59267));const Y=new k({objectMode:!0}),z=null===($=x)||void 0===$?void 0:$.then;if("function"===typeof z)I++,z.call(x,(e=>{g=e,null!=e&&Y.write(e),G&&Y.end(),r.nextTick(N)}),(e=>{Y.destroy(e),r.nextTick(N,e)}));else if(m(x,!0))I++,P(x,Y,N,{end:G});else{if(!C(x)&&!R(x))throw new h("AsyncIterable or Promise","destination",x);{const Z=x.readable||x;I++,P(Z,Y,N,{end:G})}}x=Y;const{destroy:X,cleanup:Q}=O(x,!1,!0);w.push(X),K&&d.push(Q)}}else if(v(U)){if(E(x)){I+=2;const ee=V(x,U,N,{end:G});S(U)&&K&&d.push(ee)}else if(R(x)||C(x)){const te=x.readable||x;I++,P(te,U,N,{end:G})}else{if(!m(x))throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],x);I++,P(x,U,N,{end:G})}x=U}else if(A(U)){if(E(x))I++,j(D(x),U,N,{end:G});else if(C(x)||m(x))I++,j(x,U,N,{end:G});else{if(!R(x))throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],x);I++,j(x.readable,U,N,{end:G})}x=U}else x=u.from(U)}return(null!==s&&void 0!==s&&s.aborted||null!==l&&void 0!==l&&l.aborted)&&r.nextTick(c),x}function V(e,t,n,{end:i}){let o=!1;if(t.on("close",(()=>{o||n(new g)})),e.pipe(t,{end:!1}),i){function a(){o=!0,t.end()}x(e)?r.nextTick(a):e.once("end",a)}else n();return s(e,{readable:!0,writable:!1},(t=>{const r=e._readableState;t&&"ERR_STREAM_PREMATURE_CLOSE"===t.code&&r&&r.ended&&!r.errored&&!r.errorEmitted?e.once("end",n).once("error",n):n(t)})),s(t,{readable:!1,writable:!0},n)}e.exports={pipelineImpl:F,pipeline:M}},39126:function(e,t,n){const r=n(34155),{ArrayPrototypeIndexOf:i,NumberIsInteger:o,NumberIsNaN:a,NumberParseInt:s,ObjectDefineProperties:l,ObjectKeys:d,ObjectSetPrototypeOf:u,Promise:c,SafeSet:f,SymbolAsyncIterator:h,Symbol:p}=n(45030);e.exports=V,V.ReadableState=F;const{EventEmitter:b}=n(17187),{Stream:g,prependListener:y}=n(48195),{Buffer:w}=n(48764),{addAbortSignal:_}=n(27785),m=n(20462);let S=n(29654).debuglog("stream",(e=>{S=e}));const E=n(8413),v=n(49648),{getHighWaterMark:R,getDefaultHighWaterMark:A}=n(65128),{aggregateTwoErrors:C,codes:{ERR_INVALID_ARG_TYPE:x,ERR_METHOD_NOT_IMPLEMENTED:T,ERR_OUT_OF_RANGE:k,ERR_STREAM_PUSH_AFTER_EOF:I,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:O}}=n(65123),{validateObject:N}=n(37852),D=p("kPaused"),{StringDecoder:L}=n(32553),P=n(31014);u(V.prototype,g.prototype),u(V,g);const j=()=>{},{errorOrDestroy:M}=v;function F(e,t,r){"boolean"!==typeof r&&(r=t instanceof n(67510)),this.objectMode=!(!e||!e.objectMode),r&&(this.objectMode=this.objectMode||!(!e||!e.readableObjectMode)),this.highWaterMark=e?R(this,e,"readableHighWaterMark",r):A(!1),this.buffer=new E,this.length=0,this.pipes=[],this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.constructed=!0,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this[D]=null,this.errorEmitted=!1,this.emitClose=!e||!1!==e.emitClose,this.autoDestroy=!e||!1!==e.autoDestroy,this.destroyed=!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this.defaultEncoding=e&&e.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.multiAwaitDrain=!1,this.readingMore=!1,this.dataEmitted=!1,this.decoder=null,this.encoding=null,e&&e.encoding&&(this.decoder=new L(e.encoding),this.encoding=e.encoding)}function V(e){if(!(this instanceof V))return new V(e);const t=this instanceof n(67510);this._readableState=new F(e,this,t),e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.construct&&(this._construct=e.construct),e.signal&&!t&&_(e.signal,this)),g.call(this,e),v.construct(this,(()=>{this._readableState.needReadable&&q(this,this._readableState)}))}function $(e,t,n,r){S("readableAddChunk",t);const i=e._readableState;let o;if(i.objectMode||("string"===typeof t?(n=n||i.defaultEncoding,i.encoding!==n&&(r&&i.encoding?t=w.from(t,n).toString(i.encoding):(t=w.from(t,n),n=""))):t instanceof w?n="":g._isUint8Array(t)?(t=g._uint8ArrayToBuffer(t),n=""):null!=t&&(o=new x("chunk",["string","Buffer","Uint8Array"],t))),o)M(e,o);else if(null===t)i.reading=!1,G(e,i);else if(i.objectMode||t&&t.length>0)if(r)if(i.endEmitted)M(e,new O);else{if(i.destroyed||i.errored)return!1;W(e,i,t,!0)}else if(i.ended)M(e,new I);else{if(i.destroyed||i.errored)return!1;i.reading=!1,i.decoder&&!n?(t=i.decoder.write(t),i.objectMode||0!==t.length?W(e,i,t,!1):q(e,i)):W(e,i,t,!1)}else r||(i.reading=!1,q(e,i));return!i.ended&&(i.length0?(t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null,t.dataEmitted=!0,e.emit("data",n)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&K(e)),q(e,t)}V.prototype.destroy=v.destroy,V.prototype._undestroy=v.undestroy,V.prototype._destroy=function(e,t){t(e)},V.prototype[b.captureRejectionSymbol]=function(e){this.destroy(e)},V.prototype.push=function(e,t){return $(this,e,t,!1)},V.prototype.unshift=function(e,t){return $(this,e,t,!0)},V.prototype.isPaused=function(){const e=this._readableState;return!0===e[D]||!1===e.flowing},V.prototype.setEncoding=function(e){const t=new L(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;const n=this._readableState.buffer;let r="";for(const i of n)r+=t.write(i);return n.clear(),""!==r&&n.push(r),this._readableState.length=r.length,this};const U=1073741824;function B(e){if(e>U)throw new k("size","<= 1GiB",e);return e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++,e}function H(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:a(e)?t.flowing&&t.length?t.buffer.first().length:t.length:e<=t.length?e:t.ended?t.length:0}function G(e,t){if(S("onEofChunk"),!t.ended){if(t.decoder){const e=t.decoder.end();e&&e.length&&(t.buffer.push(e),t.length+=t.objectMode?1:e.length)}t.ended=!0,t.sync?K(e):(t.needReadable=!1,t.emittedReadable=!0,J(e))}}function K(e){const t=e._readableState;S("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(S("emitReadable",t.flowing),t.emittedReadable=!0,r.nextTick(J,e))}function J(e){const t=e._readableState;S("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||t.errored||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,te(e)}function q(e,t){!t.readingMore&&t.constructed&&(t.readingMore=!0,r.nextTick(Y,e,t))}function Y(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!1===t[D]?t.flowing=!0:e.listenerCount("data")>0?e.resume():t.readableListening||(t.flowing=null)}function Q(e){S("readable nexttick read 0"),e.read(0)}function Z(e,t){t.resumeScheduled||(t.resumeScheduled=!0,r.nextTick(ee,e,t))}function ee(e,t){S("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),te(e),t.flowing&&!t.reading&&e.read(0)}function te(e){const t=e._readableState;S("flow",t.flowing);while(t.flowing&&null!==e.read());}function ne(e,t){"function"!==typeof e.read&&(e=V.wrap(e,{objectMode:!0}));const n=re(e,t);return n.stream=e,n}async function*re(e,t){let n,r=j;function i(t){this===e?(r(),r=j):r=t}e.on("readable",i);const o=m(e,{writable:!1},(e=>{n=e?C(n,e):null,r(),r=j}));try{while(1){const t=e.destroyed?null:e.read();if(null!==t)yield t;else{if(n)throw n;if(null===n)return;await new c(i)}}}catch(a){throw n=C(n,a),n}finally{!n&&!1===(null===t||void 0===t?void 0:t.destroyOnReturn)||void 0!==n&&!e._readableState.autoDestroy?(e.off("readable",i),o()):v.destroyer(e,null)}}function ie(e,t){if(0===t.length)return null;let n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n}function oe(e){const t=e._readableState;S("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,r.nextTick(ae,t,e))}function ae(e,t){if(S("endReadableNT",e.endEmitted,e.length),!e.errored&&!e.closeEmitted&&!e.endEmitted&&0===e.length)if(e.endEmitted=!0,t.emit("end"),t.writable&&!1===t.allowHalfOpen)r.nextTick(se,t);else if(e.autoDestroy){const e=t._writableState,n=!e||e.autoDestroy&&(e.finished||!1===e.writable);n&&t.destroy()}}function se(e){const t=e.writable&&!e.writableEnded&&!e.destroyed;t&&e.end()}let le;function de(){return void 0===le&&(le={}),le}V.prototype.read=function(e){S("read",e),void 0===e?e=NaN:o(e)||(e=s(e,10));const t=this._readableState,n=e;if(e>t.highWaterMark&&(t.highWaterMark=B(e)),0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return S("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?oe(this):K(this),null;if(e=H(e,t),0===e&&t.ended)return 0===t.length&&oe(this),null;let r,i=t.needReadable;if(S("need readable",i),(0===t.length||t.length-e0?ie(e,t):null,null===r?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&oe(this)),null===r||t.errorEmitted||t.closeEmitted||(t.dataEmitted=!0,this.emit("data",r)),r},V.prototype._read=function(e){throw new T("_read()")},V.prototype.pipe=function(e,t){const n=this,i=this._readableState;1===i.pipes.length&&(i.multiAwaitDrain||(i.multiAwaitDrain=!0,i.awaitDrainWriters=new f(i.awaitDrainWriters?[i.awaitDrainWriters]:[]))),i.pipes.push(e),S("pipe count=%d opts=%j",i.pipes.length,t);const o=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr,a=o?l:_;function s(e,t){S("onunpipe"),e===n&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,c())}function l(){S("onend"),e.end()}let d;i.endEmitted?r.nextTick(a):n.once("end",a),e.on("unpipe",s);let u=!1;function c(){S("cleanup"),e.removeListener("close",g),e.removeListener("finish",w),d&&e.removeListener("drain",d),e.removeListener("error",b),e.removeListener("unpipe",s),n.removeListener("end",l),n.removeListener("end",_),n.removeListener("data",p),u=!0,d&&i.awaitDrainWriters&&(!e._writableState||e._writableState.needDrain)&&d()}function h(){u||(1===i.pipes.length&&i.pipes[0]===e?(S("false write response, pause",0),i.awaitDrainWriters=e,i.multiAwaitDrain=!1):i.pipes.length>1&&i.pipes.includes(e)&&(S("false write response, pause",i.awaitDrainWriters.size),i.awaitDrainWriters.add(e)),n.pause()),d||(d=z(n,e),e.on("drain",d))}function p(t){S("ondata");const n=e.write(t);S("dest.write",n),!1===n&&h()}function b(t){if(S("onerror",t),_(),e.removeListener("error",b),0===e.listenerCount("error")){const n=e._writableState||e._readableState;n&&!n.errorEmitted?M(e,t):e.emit("error",t)}}function g(){e.removeListener("finish",w),_()}function w(){S("onfinish"),e.removeListener("close",g),_()}function _(){S("unpipe"),n.unpipe(e)}return n.on("data",p),y(e,"error",b),e.once("close",g),e.once("finish",w),e.emit("pipe",n),!0===e.writableNeedDrain?i.flowing&&h():i.flowing||(S("pipe resume"),n.resume()),e},V.prototype.unpipe=function(e){const t=this._readableState,n={hasUnpiped:!1};if(0===t.pipes.length)return this;if(!e){const e=t.pipes;t.pipes=[],this.pause();for(let t=0;t0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,S("on readable",i.length,i.reading),i.length?K(this):i.reading||r.nextTick(Q,this))),n},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(e,t){const n=g.prototype.removeListener.call(this,e,t);return"readable"===e&&r.nextTick(X,this),n},V.prototype.off=V.prototype.removeListener,V.prototype.removeAllListeners=function(e){const t=g.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||r.nextTick(X,this),t},V.prototype.resume=function(){const e=this._readableState;return e.flowing||(S("resume"),e.flowing=!e.readableListening,Z(this,e)),e[D]=!1,this},V.prototype.pause=function(){return S("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(S("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[D]=!0,this},V.prototype.wrap=function(e){let t=!1;e.on("data",(n=>{!this.push(n)&&e.pause&&(t=!0,e.pause())})),e.on("end",(()=>{this.push(null)})),e.on("error",(e=>{M(this,e)})),e.on("close",(()=>{this.destroy()})),e.on("destroy",(()=>{this.destroy()})),this._read=()=>{t&&e.resume&&(t=!1,e.resume())};const n=d(e);for(let r=1;r{t?e?e(t):this.destroy(t):(null!=n&&this.push(n),this.push(null),e&&e())}))}function c(){this._final!==u&&u.call(this)}d.prototype._final=u,d.prototype._transform=function(e,t,n){throw new o("_transform()")},d.prototype._write=function(e,t,n){const r=this._readableState,i=this._writableState,o=r.length;this._transform(e,t,((e,t)=>{e?n(e):(null!=t&&this.push(t),i.ended||o===r.length||r.length{const e=this._writableState;e.writing||B(this,e),J(this,e)}))}function P(e,t,n,i){const o=e._writableState;if("function"===typeof n)i=n,n=o.defaultEncoding;else{if(n){if("buffer"!==n&&!b.isEncoding(n))throw new T(n)}else n=o.defaultEncoding;"function"!==typeof i&&(i=I)}if(null===t)throw new C;if(!o.objectMode)if("string"===typeof t)!1!==o.decodeStrings&&(t=b.from(t,n),n="buffer");else if(t instanceof b)n="buffer";else{if(!p._isUint8Array(t))throw new m("chunk",["string","Buffer","Uint8Array"],t);t=p._uint8ArrayToBuffer(t),n="buffer"}let a;return o.ending?a=new x:o.destroyed&&(a=new R("write")),a?(r.nextTick(i,a),k(e,a,!0),a):(o.pendingcb++,j(e,o,t,n,i))}function j(e,t,n,r,i){const o=t.objectMode?1:n.length;t.length+=o;const a=t.lengthn.bufferedIndex&&B(e,n),i?null!==n.afterWriteTickInfo&&n.afterWriteTickInfo.cb===o?n.afterWriteTickInfo.count++:(n.afterWriteTickInfo={count:1,cb:o,stream:e,state:n},r.nextTick($,n.afterWriteTickInfo)):W(e,n,1,o))):k(e,new E)}function $({stream:e,state:t,count:n,cb:r}){return t.afterWriteTickInfo=null,W(e,t,n,r)}function W(e,t,n,r){const i=!t.ending&&!e.destroyed&&0===t.length&&t.needDrain;i&&(t.needDrain=!1,e.emit("drain"));while(n-- >0)t.pendingcb--,r();t.destroyed&&U(t),J(e,t)}function U(e){if(e.writing)return;for(let i=e.bufferedIndex;i1&&e._writev){t.pendingcb-=a-1;const r=t.allNoop?I:e=>{for(let t=s;t256?(n.splice(0,s),t.bufferedIndex=0):t.bufferedIndex=s}t.bufferProcessing=!1}function H(e){return e.ending&&!e.destroyed&&e.constructed&&0===e.length&&!e.errored&&0===e.buffered.length&&!e.finished&&!e.writing&&!e.errorEmitted&&!e.closeEmitted}function G(e,t){let n=!1;function i(i){if(n)k(e,null!==i&&void 0!==i?i:E());else if(n=!0,t.pendingcb--,i){const n=t[O].splice(0);for(let e=0;e{H(t)?q(e,t):t.pendingcb--}),e,t)):H(t)&&(t.pendingcb++,q(e,t))))}function q(e,t){t.pendingcb--,t.finished=!0;const n=t[O].splice(0);for(let r=0;r>>0}const k=/^[0-7]+$/,I="must be a 32-bit unsigned integer or an octal string";function O(e,t,n){if("undefined"===typeof e&&(e=n),"string"===typeof e){if(null===h(k,e))throw new m(t,e,I);e=c(e,8)}return L(e,t),e}const N=y(((e,t,n=u,r=d)=>{if("number"!==typeof e)throw new _(t,"number",e);if(!s(e))throw new S(t,"an integer",e);if(er)throw new S(t,`>= ${n} && <= ${r}`,e)})),D=y(((e,t,n=-2147483648,r=2147483647)=>{if("number"!==typeof e)throw new _(t,"number",e);if(!s(e))throw new S(t,"an integer",e);if(er)throw new S(t,`>= ${n} && <= ${r}`,e)})),L=y(((e,t,n=!1)=>{if("number"!==typeof e)throw new _(t,"number",e);if(!s(e))throw new S(t,"an integer",e);const r=n?1:0,i=4294967295;if(ei)throw new S(t,`>= ${r} && <= ${i}`,e)}));function P(e,t){if("string"!==typeof e)throw new _(t,"string",e)}function j(e,t,n=void 0,r){if("number"!==typeof e)throw new _(t,"number",e);if(null!=n&&er||(null!=n||null!=r)&&l(e))throw new S(t,`${null!=n?`>= ${n}`:""}${null!=n&&null!=r?" && ":""}${null!=r?`<= ${r}`:""}`,e)}const M=y(((e,t,n)=>{if(!i(n,e)){const r=o(a(n,(e=>"string"===typeof e?`'${e}'`:p(e))),", "),i="must be one of: "+r;throw new m(t,e,i)}}));function F(e,t){if("boolean"!==typeof e)throw new _(t,"boolean",e)}function V(e,t,n){return null!=e&&f(e,t)?e[t]:n}const $=y(((e,t,n=null)=>{const i=V(n,"allowArray",!1),o=V(n,"allowFunction",!1),a=V(n,"nullable",!1);if(!a&&null===e||!i&&r(e)||"object"!==typeof e&&(!o||"function"!==typeof e))throw new _(t,"Object",e)})),W=y(((e,t)=>{if(null!=e&&"object"!==typeof e&&"function"!==typeof e)throw new _(t,"a dictionary",e)})),U=y(((e,t,n=0)=>{if(!r(e))throw new _(t,"Array",e);if(e.length{if(!A(e))throw new _(t,["Buffer","TypedArray","DataView"],e)}));function J(e,t){const n=v(t),r=e.length;if("hex"===n&&r%2!==0)throw new m("encoding",t,`is invalid for data of length ${r}`)}function q(e,t="Port",n=!0){if("number"!==typeof e&&"string"!==typeof e||"string"===typeof e&&0===g(e).length||+e!==+e>>>0||e>65535||0===e&&!n)throw new w(t,e,n);return 0|e}const Y=y(((e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new _(t,"AbortSignal",e)})),z=y(((e,t)=>{if("function"!==typeof e)throw new _(t,"Function",e)})),X=y(((e,t)=>{if("function"!==typeof e||R(e))throw new _(t,"Function",e)})),Q=y(((e,t)=>{if(void 0!==e)throw new _(t,"undefined",e)}));function Z(e,t,n){if(!i(n,e))throw new _(t,`('${o(n,"|")}')`,e)}const ee=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function te(e,t){if("undefined"===typeof e||!h(ee,e))throw new m(t,e,'must be an array or string of format "; rel=preload; as=style"')}function ne(e){if("string"===typeof e)return te(e,"hints"),e;if(r(e)){const t=e.length;let n="";if(0===t)return n;for(let r=0;r; rel=preload; as=style"')}e.exports={isInt32:x,isUint32:T,parseFileMode:O,validateArray:U,validateStringArray:B,validateBooleanArray:H,validateBoolean:F,validateBuffer:K,validateDictionary:W,validateEncoding:J,validateFunction:z,validateInt32:D,validateInteger:N,validateNumber:j,validateObject:$,validateOneOf:M,validatePlainFunction:X,validatePort:q,validateSignalName:G,validateString:P,validateUint32:L,validateUndefined:Q,validateUnion:Z,validateAbortSignal:Y,validateLinkHeaderValue:ne}},31036:function(e,t,n){"use strict";const r=n(75803),i=n(18442),o=r.Readable.destroy;e.exports=r.Readable,e.exports._uint8ArrayToBuffer=r._uint8ArrayToBuffer,e.exports._isUint8Array=r._isUint8Array,e.exports.isDisturbed=r.isDisturbed,e.exports.isErrored=r.isErrored,e.exports.isReadable=r.isReadable,e.exports.Readable=r.Readable,e.exports.Writable=r.Writable,e.exports.Duplex=r.Duplex,e.exports.Transform=r.Transform,e.exports.PassThrough=r.PassThrough,e.exports.addAbortSignal=r.addAbortSignal,e.exports.finished=r.finished,e.exports.destroy=r.destroy,e.exports.destroy=o,e.exports.pipeline=r.pipeline,e.exports.compose=r.compose,Object.defineProperty(r,"promises",{configurable:!0,enumerable:!0,get(){return i}}),e.exports.Stream=r.Stream,e.exports["default"]=e.exports},65123:function(e,t,n){"use strict";const{format:r,inspect:i,AggregateError:o}=n(29654),a=globalThis.AggregateError||o,s=Symbol("kIsNodeError"),l=["string","function","number","object","Function","Object","boolean","bigint","symbol"],d=/^([A-Z][a-z0-9]*)+$/,u="__node_internal_",c={};function f(e,t){if(!e)throw new c.ERR_INTERNAL_ASSERTION(t)}function h(e){let t="",n=e.length;const r="-"===e[0]?1:0;for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function p(e,t,n){if("function"===typeof t)return f(t.length<=n.length,`Code: ${e}; The provided arguments length (${n.length}) does not match the required ones (${t.length}).`),t(...n);const i=(t.match(/%[dfijoOs]/g)||[]).length;return f(i===n.length,`Code: ${e}; The provided arguments length (${n.length}) does not match the required ones (${i}).`),0===n.length?t:r(t,...n)}function b(e,t,n){n||(n=Error);class r extends n{constructor(...n){super(p(e,t,n))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(r.prototype,{name:{value:n.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),r.prototype.code=e,r.prototype[s]=!0,c[e]=r}function g(e){const t=u+e.name;return Object.defineProperty(e,"name",{value:t}),e}function y(e,t){if(e&&t&&e!==t){if(Array.isArray(t.errors))return t.errors.push(e),t;const n=new a([t,e],t.message);return n.code=t.code,n}return e||t}class w extends Error{constructor(e="The operation was aborted",t=void 0){if(void 0!==t&&"object"!==typeof t)throw new c.ERR_INVALID_ARG_TYPE("options","Object",t);super(e,t),this.code="ABORT_ERR",this.name="AbortError"}}b("ERR_ASSERTION","%s",Error),b("ERR_INVALID_ARG_TYPE",((e,t,n)=>{f("string"===typeof e,"'name' must be a string"),Array.isArray(t)||(t=[t]);let r="The ";e.endsWith(" argument")?r+=`${e} `:r+=`"${e}" ${e.includes(".")?"property":"argument"} `,r+="must be ";const o=[],a=[],s=[];for(const i of t)f("string"===typeof i,"All expected entries have to be of type string"),l.includes(i)?o.push(i.toLowerCase()):d.test(i)?a.push(i):(f("object"!==i,'The value "object" should be written as "Object"'),s.push(i));if(a.length>0){const e=o.indexOf("object");-1!==e&&(o.splice(o,e,1),a.push("Object"))}if(o.length>0){switch(o.length){case 1:r+=`of type ${o[0]}`;break;case 2:r+=`one of type ${o[0]} or ${o[1]}`;break;default:{const e=o.pop();r+=`one of type ${o.join(", ")}, or ${e}`}}(a.length>0||s.length>0)&&(r+=" or ")}if(a.length>0){switch(a.length){case 1:r+=`an instance of ${a[0]}`;break;case 2:r+=`an instance of ${a[0]} or ${a[1]}`;break;default:{const e=a.pop();r+=`an instance of ${a.join(", ")}, or ${e}`}}s.length>0&&(r+=" or ")}switch(s.length){case 0:break;case 1:s[0].toLowerCase()!==s[0]&&(r+="an "),r+=`${s[0]}`;break;case 2:r+=`one of ${s[0]} or ${s[1]}`;break;default:{const e=s.pop();r+=`one of ${s.join(", ")}, or ${e}`}}if(null==n)r+=`. Received ${n}`;else if("function"===typeof n&&n.name)r+=`. Received function ${n.name}`;else if("object"===typeof n){var u;if(null!==(u=n.constructor)&&void 0!==u&&u.name)r+=`. Received an instance of ${n.constructor.name}`;else{const e=i(n,{depth:-1});r+=`. Received ${e}`}}else{let e=i(n,{colors:!1});e.length>25&&(e=`${e.slice(0,25)}...`),r+=`. Received type ${typeof n} (${e})`}return r}),TypeError),b("ERR_INVALID_ARG_VALUE",((e,t,n="is invalid")=>{let r=i(t);r.length>128&&(r=r.slice(0,128)+"...");const o=e.includes(".")?"property":"argument";return`The ${o} '${e}' ${n}. Received ${r}`}),TypeError),b("ERR_INVALID_RETURN_VALUE",((e,t,n)=>{var r;const i=null!==n&&void 0!==n&&null!==(r=n.constructor)&&void 0!==r&&r.name?`instance of ${n.constructor.name}`:"type "+typeof n;return`Expected ${e} to be returned from the "${t}" function but got ${i}.`}),TypeError),b("ERR_MISSING_ARGS",((...e)=>{let t;f(e.length>0,"At least one arg needs to be specified");const n=e.length;switch(e=(Array.isArray(e)?e:[e]).map((e=>`"${e}"`)).join(" or "),n){case 1:t+=`The ${e[0]} argument`;break;case 2:t+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const n=e.pop();t+=`The ${e.join(", ")}, and ${n} arguments`}break}return`${t} must be specified`}),TypeError),b("ERR_OUT_OF_RANGE",((e,t,n)=>{let r;return f(t,'Missing "range" argument'),Number.isInteger(n)&&Math.abs(n)>2**32?r=h(String(n)):"bigint"===typeof n?(r=String(n),(n>2n**32n||n<-(2n**32n))&&(r=h(r)),r+="n"):r=i(n),`The value of "${e}" is out of range. It must be ${t}. Received ${r}`}),RangeError),b("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),b("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),b("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),b("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),b("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),b("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),b("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),b("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),b("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),b("ERR_STREAM_WRITE_AFTER_END","write after end",Error),b("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:w,aggregateTwoErrors:g(y),hideStackFrames:g,codes:c}},45030:function(e){"use strict";e.exports={ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,t){return e.includes(t)},ArrayPrototypeIndexOf(e,t){return e.indexOf(t)},ArrayPrototypeJoin(e,t){return e.join(t)},ArrayPrototypeMap(e,t){return e.map(t)},ArrayPrototypePop(e,t){return e.pop(t)},ArrayPrototypePush(e,t){return e.push(t)},ArrayPrototypeSlice(e,t,n){return e.slice(t,n)},Error:Error,FunctionPrototypeCall(e,t,...n){return e.call(t,...n)},FunctionPrototypeSymbolHasInstance(e,t){return Function.prototype[Symbol.hasInstance].call(e,t)},MathFloor:Math.floor,Number:Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(e,t){return Object.defineProperties(e,t)},ObjectDefineProperty(e,t,n){return Object.defineProperty(e,t,n)},ObjectGetOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,t){return Object.setPrototypeOf(e,t)},Promise:Promise,PromisePrototypeCatch(e,t){return e.catch(t)},PromisePrototypeThen(e,t,n){return e.then(t,n)},PromiseReject(e){return Promise.reject(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,t){return e.test(t)},SafeSet:Set,String:String,StringPrototypeSlice(e,t,n){return e.slice(t,n)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol:Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(e,t,n){return e.set(t,n)},Uint8Array:Uint8Array}},29654:function(e,t,n){"use strict";const r=n(48764),i=Object.getPrototypeOf((async function(){})).constructor,o=globalThis.Blob||r.Blob,a="undefined"!==typeof o?function(e){return e instanceof o}:function(e){return!1};class s extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t="";for(let n=0;n{e=n,t=r}));return{promise:n,resolve:e,reject:t}},promisify(e){return new Promise(((t,n)=>{e(((e,...r)=>e?n(e):t(...r)))}))},debuglog(){return function(){}},format(e,...t){return e.replace(/%([sdifj])/g,(function(...[e,n]){const r=t.shift();if("f"===n)return r.toFixed(6);if("j"===n)return JSON.stringify(r);if("s"===n&&"object"===typeof r){const e=r.constructor!==Object?r.constructor.name:"";return`${e} {}`.trim()}return r.toString()}))},inspect(e){switch(typeof e){case"string":if(e.includes("'")){if(!e.includes('"'))return`"${e}"`;if(!e.includes("`")&&!e.includes("${"))return`\`${e}\``}return`'${e}'`;case"number":return isNaN(e)?"NaN":Object.is(e,-0)?String(e):e;case"bigint":return`${String(e)}n`;case"boolean":case"undefined":return String(e);case"object":return"{}"}},types:{isAsyncFunction(e){return e instanceof i},isArrayBufferView(e){return ArrayBuffer.isView(e)}},isBlob:a},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},75803:function(e,t,n){const{Buffer:r}=n(48764),{ObjectDefineProperty:i,ObjectKeys:o,ReflectApply:a}=n(45030),{promisify:{custom:s}}=n(29654),{streamReturningOperators:l,promiseReturningOperators:d}=n(56565),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=n(65123),c=n(14811),{pipeline:f}=n(75340),{destroyer:h}=n(49648),p=n(20462),b=n(18442),g=n(18724),y=e.exports=n(48195).Stream;y.isDisturbed=g.isDisturbed,y.isErrored=g.isErrored,y.isReadable=g.isReadable,y.Readable=n(39126);for(const m of o(l)){const S=l[m];function w(...e){if(new.target)throw u();return y.Readable.from(a(S,this,e))}i(w,"name",{__proto__:null,value:S.name}),i(w,"length",{__proto__:null,value:S.length}),i(y.Readable.prototype,m,{__proto__:null,value:w,enumerable:!1,configurable:!0,writable:!0})}for(const E of o(d)){const v=d[E];function w(...e){if(new.target)throw u();return a(v,this,e)}i(w,"name",{__proto__:null,value:v.name}),i(w,"length",{__proto__:null,value:v.length}),i(y.Readable.prototype,E,{__proto__:null,value:w,enumerable:!1,configurable:!0,writable:!0})}y.Writable=n(10601),y.Duplex=n(67510),y.Transform=n(14571),y.PassThrough=n(59267),y.pipeline=f;const{addAbortSignal:_}=n(27785);y.addAbortSignal=_,y.finished=p,y.destroy=h,y.compose=c,i(y,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return b}}),i(f,s,{__proto__:null,enumerable:!0,get(){return b.pipeline}}),i(p,s,{__proto__:null,enumerable:!0,get(){return b.finished}}),y.Stream=y,y._isUint8Array=function(e){return e instanceof Uint8Array},y._uint8ArrayToBuffer=function(e){return r.from(e.buffer,e.byteOffset,e.byteLength)}},18442:function(e,t,n){"use strict";const{ArrayPrototypePop:r,Promise:i}=n(45030),{isIterable:o,isNodeStream:a,isWebStream:s}=n(18724),{pipelineImpl:l}=n(75340),{finished:d}=n(20462);function u(...e){return new i(((t,n)=>{let i,d;const u=e[e.length-1];if(u&&"object"===typeof u&&!a(u)&&!o(u)&&!s(u)){const t=r(e);i=t.signal,d=t.end}l(e,((e,r)=>{e?n(e):t(r)}),{signal:i,end:d})}))}n(42830),e.exports={finished:d,pipeline:u}},24042:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return p}});var r=n(90540),i=n(50505),o=n(54350),a=n(95758),s=n(45024);const l="null:";function d(e){return t=>"NamedNode"!==t.termType?null:t.value.startsWith(l)?e.namedNode(t.value.slice(l.length)):null}function u(e){const t=d(e);return n=>{const r=t(n.subject),i=t(n.predicate),o=t(n.object),a=t(n.graph);return r||i||o||a?e.quad(r||n.subject,i||n.predicate,o||n.object,a||n.graph):n}}class c{constructor(e,{baseIRI:t=l,context:n=null,documentLoader:r,factory:d=i.Z}={}){const c=new a.JsonLdParser({baseIRI:t,context:n,dataFactory:d,documentLoader:r,streamingProfile:!1});e.pipe(c);const f=u(d),h=new s.Transform({objectMode:!0,transform:(e,t,n)=>{n(null,f(e))}});return c.on("context",(e=>{Object.entries(e).forEach((([e,t])=>{h.emit("prefix",e,d.namedNode(t))}))})),c.on("error",(e=>h.destroy(e))),c.pipe(h),(0,o.Z)(h)}}var f=c;class h extends r.Z{constructor(e){super(f,e)}}var p=h},90540:function(e,t){"use strict";class n{constructor(e,t){this.Impl=e,this.options=t}import(e,t){const n=new this.Impl(e,{...this.options,...t});return e.on("end",(()=>{n.readable||n.emit("end")})),e.on("error",(e=>{n.emit("error",e)})),n}}t.Z=n},54350:function(e,t){"use strict";const n=new Set(["_write","_writableState","writable"]);function r(e){return new Proxy(e,{has(e,t){return!n.has(t)&&Reflect.has(...arguments)},get(e,t){if(n.has(t))return;const r=Reflect.get(...arguments);return r&&"function"===typeof r.bind?r.bind(e):r},set(e,t,r){if(!n.has(t))return Reflect.set(...arguments)}})}t.Z=r}}]); -//# sourceMappingURL=42.4800fe99.js.map \ No newline at end of file diff --git a/js/42.4800fe99.js.map b/js/42.4800fe99.js.map deleted file mode 100644 index 5777c6f..0000000 --- a/js/42.4800fe99.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/42.4800fe99.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@bergos/jsonparse/jsonparse.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/compose.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/from.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/operators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/readable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/state.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/transform.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/utils.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/streams/writable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/internal/validators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/ours/browser.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/ours/errors.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/ours/primordials.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/ours/util.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/node_modules/readable-stream/lib/stream/promises.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/index.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/ContextTree.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/JsonLdParser.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/ParsingContext.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/Util.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIdentifier.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIndex.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerLanguage.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerType.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerArrayValue.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerContainer.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerInvalidFallback.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordAnnotation.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordContext.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordGraph.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordId.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordIncluded.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordNest.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordType.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordUnknownFallback.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordValue.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/compose.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/from.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/operators.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/readable.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/state.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/transform.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/utils.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/streams/writable.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/internal/validators.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/ours/browser.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/ours/errors.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/ours/primordials.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/ours/util.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/stream.js","webpack://@zazuko/spex/./node_modules/jsonld-streaming-parser/node_modules/readable-stream/lib/stream/promises.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/lib/ParserStream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/parser-jsonld/index.js","webpack://@zazuko/spex/./node_modules/@rdfjs/sink/index.js","webpack://@zazuko/spex/./node_modules/duplex-to/readable.js"],"sourcesContent":["var { Buffer } = require('buffer')\n// Named constants with unique integer values\nvar C = {};\n// Tokens\nvar LEFT_BRACE = C.LEFT_BRACE = 0x1;\nvar RIGHT_BRACE = C.RIGHT_BRACE = 0x2;\nvar LEFT_BRACKET = C.LEFT_BRACKET = 0x3;\nvar RIGHT_BRACKET = C.RIGHT_BRACKET = 0x4;\nvar COLON = C.COLON = 0x5;\nvar COMMA = C.COMMA = 0x6;\nvar TRUE = C.TRUE = 0x7;\nvar FALSE = C.FALSE = 0x8;\nvar NULL = C.NULL = 0x9;\nvar STRING = C.STRING = 0xa;\nvar NUMBER = C.NUMBER = 0xb;\n// Tokenizer States\nvar START = C.START = 0x11;\nvar STOP = C.STOP = 0x12;\nvar TRUE1 = C.TRUE1 = 0x21;\nvar TRUE2 = C.TRUE2 = 0x22;\nvar TRUE3 = C.TRUE3 = 0x23;\nvar FALSE1 = C.FALSE1 = 0x31;\nvar FALSE2 = C.FALSE2 = 0x32;\nvar FALSE3 = C.FALSE3 = 0x33;\nvar FALSE4 = C.FALSE4 = 0x34;\nvar NULL1 = C.NULL1 = 0x41;\nvar NULL2 = C.NULL2 = 0x42;\nvar NULL3 = C.NULL3 = 0x43;\nvar NUMBER1 = C.NUMBER1 = 0x51;\nvar NUMBER3 = C.NUMBER3 = 0x53;\nvar STRING1 = C.STRING1 = 0x61;\nvar STRING2 = C.STRING2 = 0x62;\nvar STRING3 = C.STRING3 = 0x63;\nvar STRING4 = C.STRING4 = 0x64;\nvar STRING5 = C.STRING5 = 0x65;\nvar STRING6 = C.STRING6 = 0x66;\n// Parser States\nvar VALUE = C.VALUE = 0x71;\nvar KEY = C.KEY = 0x72;\n// Parser Modes\nvar OBJECT = C.OBJECT = 0x81;\nvar ARRAY = C.ARRAY = 0x82;\n// Character constants\nvar BACK_SLASH = \"\\\\\".charCodeAt(0);\nvar FORWARD_SLASH = \"\\/\".charCodeAt(0);\nvar BACKSPACE = \"\\b\".charCodeAt(0);\nvar FORM_FEED = \"\\f\".charCodeAt(0);\nvar NEWLINE = \"\\n\".charCodeAt(0);\nvar CARRIAGE_RETURN = \"\\r\".charCodeAt(0);\nvar TAB = \"\\t\".charCodeAt(0);\n\nvar STRING_BUFFER_SIZE = 64 * 1024;\n\nfunction alloc(size) {\n return Buffer.alloc ? Buffer.alloc(size) : new Buffer(size);\n}\n\nfunction Parser() {\n this.tState = START;\n this.value = undefined;\n\n this.string = undefined; // string data\n this.stringBuffer = alloc(STRING_BUFFER_SIZE);\n this.stringBufferOffset = 0;\n this.unicode = undefined; // unicode escapes\n this.highSurrogate = undefined;\n\n this.key = undefined;\n this.mode = undefined;\n this.stack = [];\n this.state = VALUE;\n this.bytes_remaining = 0; // number of bytes remaining in multi byte utf8 char to read after split boundary\n this.bytes_in_sequence = 0; // bytes in multi byte utf8 char to read\n this.temp_buffs = { \"2\": alloc(2), \"3\": alloc(3), \"4\": alloc(4) }; // for rebuilding chars split before boundary is reached\n\n // Stream offset\n this.offset = -1;\n}\n\n// Slow code to string converter (only used when throwing syntax errors)\nParser.toknam = function (code) {\n var keys = Object.keys(C);\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n if (C[key] === code) { return key; }\n }\n return code && (\"0x\" + code.toString(16));\n};\n\nvar proto = Parser.prototype;\nproto.onError = function (err) { throw err; };\nproto.charError = function (buffer, i) {\n this.tState = STOP;\n this.onError(new Error(\"Unexpected \" + JSON.stringify(String.fromCharCode(buffer[i])) + \" at position \" + i + \" in state \" + Parser.toknam(this.tState)));\n};\nproto.appendStringChar = function (char) {\n if (this.stringBufferOffset >= STRING_BUFFER_SIZE) {\n this.string += this.stringBuffer.toString('utf8');\n this.stringBufferOffset = 0;\n }\n\n this.stringBuffer[this.stringBufferOffset++] = char;\n};\nproto.appendStringBuf = function (buf, start, end) {\n var size = buf.length;\n if (typeof start === 'number') {\n if (typeof end === 'number') {\n if (end < 0) {\n // adding a negative end decreeses the size\n size = buf.length - start + end;\n } else {\n size = end - start;\n }\n } else {\n size = buf.length - start;\n }\n }\n\n if (size < 0) {\n size = 0;\n }\n\n if (this.stringBufferOffset + size > STRING_BUFFER_SIZE) {\n this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset);\n this.stringBufferOffset = 0;\n }\n\n buf.copy(this.stringBuffer, this.stringBufferOffset, start, end);\n this.stringBufferOffset += size;\n};\nproto.write = function (buffer) {\n if (typeof buffer === \"string\") buffer = new Buffer(buffer);\n var n;\n for (var i = 0, l = buffer.length; i < l; i++) {\n if (this.tState === START){\n n = buffer[i];\n this.offset++;\n if(n === 0x7b){ this.onToken(LEFT_BRACE, \"{\"); // {\n }else if(n === 0x7d){ this.onToken(RIGHT_BRACE, \"}\"); // }\n }else if(n === 0x5b){ this.onToken(LEFT_BRACKET, \"[\"); // [\n }else if(n === 0x5d){ this.onToken(RIGHT_BRACKET, \"]\"); // ]\n }else if(n === 0x3a){ this.onToken(COLON, \":\"); // :\n }else if(n === 0x2c){ this.onToken(COMMA, \",\"); // ,\n }else if(n === 0x74){ this.tState = TRUE1; // t\n }else if(n === 0x66){ this.tState = FALSE1; // f\n }else if(n === 0x6e){ this.tState = NULL1; // n\n }else if(n === 0x22){ // \"\n this.string = \"\";\n this.stringBufferOffset = 0;\n this.tState = STRING1;\n }else if(n === 0x2d){ this.string = \"-\"; this.tState = NUMBER1; // -\n }else{\n if (n >= 0x30 && n < 0x40) { // 1-9\n this.string = String.fromCharCode(n); this.tState = NUMBER3;\n } else if (n === 0x20 || n === 0x09 || n === 0x0a || n === 0x0d) {\n // whitespace\n } else {\n return this.charError(buffer, i);\n }\n }\n }else if (this.tState === STRING1){ // After open quote\n n = buffer[i]; // get current byte from buffer\n // check for carry over of a multi byte char split between data chunks\n // & fill temp buffer it with start of this data chunk up to the boundary limit set in the last iteration\n if (this.bytes_remaining > 0) {\n for (var j = 0; j < this.bytes_remaining; j++) {\n this.temp_buffs[this.bytes_in_sequence][this.bytes_in_sequence - this.bytes_remaining + j] = buffer[j];\n }\n\n this.appendStringBuf(this.temp_buffs[this.bytes_in_sequence]);\n this.bytes_in_sequence = this.bytes_remaining = 0;\n i = i + j - 1;\n } else if (this.bytes_remaining === 0 && n >= 128) { // else if no remainder bytes carried over, parse multi byte (>=128) chars one at a time\n if (n <= 193 || n > 244) {\n return this.onError(new Error(\"Invalid UTF-8 character at position \" + i + \" in state \" + Parser.toknam(this.tState)));\n }\n if ((n >= 194) && (n <= 223)) this.bytes_in_sequence = 2;\n if ((n >= 224) && (n <= 239)) this.bytes_in_sequence = 3;\n if ((n >= 240) && (n <= 244)) this.bytes_in_sequence = 4;\n if ((this.bytes_in_sequence + i) > buffer.length) { // if bytes needed to complete char fall outside buffer length, we have a boundary split\n for (var k = 0; k <= (buffer.length - 1 - i); k++) {\n this.temp_buffs[this.bytes_in_sequence][k] = buffer[i + k]; // fill temp buffer of correct size with bytes available in this chunk\n }\n this.bytes_remaining = (i + this.bytes_in_sequence) - buffer.length;\n i = buffer.length - 1;\n } else {\n this.appendStringBuf(buffer, i, i + this.bytes_in_sequence);\n i = i + this.bytes_in_sequence - 1;\n }\n } else if (n === 0x22) {\n this.tState = START;\n this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset);\n this.stringBufferOffset = 0;\n this.onToken(STRING, this.string);\n this.offset += Buffer.byteLength(this.string, 'utf8') + 1;\n this.string = undefined;\n }\n else if (n === 0x5c) {\n this.tState = STRING2;\n }\n else if (n >= 0x20) { this.appendStringChar(n); }\n else {\n return this.charError(buffer, i);\n }\n }else if (this.tState === STRING2){ // After backslash\n n = buffer[i];\n if(n === 0x22){ this.appendStringChar(n); this.tState = STRING1;\n }else if(n === 0x5c){ this.appendStringChar(BACK_SLASH); this.tState = STRING1;\n }else if(n === 0x2f){ this.appendStringChar(FORWARD_SLASH); this.tState = STRING1;\n }else if(n === 0x62){ this.appendStringChar(BACKSPACE); this.tState = STRING1;\n }else if(n === 0x66){ this.appendStringChar(FORM_FEED); this.tState = STRING1;\n }else if(n === 0x6e){ this.appendStringChar(NEWLINE); this.tState = STRING1;\n }else if(n === 0x72){ this.appendStringChar(CARRIAGE_RETURN); this.tState = STRING1;\n }else if(n === 0x74){ this.appendStringChar(TAB); this.tState = STRING1;\n }else if(n === 0x75){ this.unicode = \"\"; this.tState = STRING3;\n }else{\n return this.charError(buffer, i);\n }\n }else if (this.tState === STRING3 || this.tState === STRING4 || this.tState === STRING5 || this.tState === STRING6){ // unicode hex codes\n n = buffer[i];\n // 0-9 A-F a-f\n if ((n >= 0x30 && n < 0x40) || (n > 0x40 && n <= 0x46) || (n > 0x60 && n <= 0x66)) {\n this.unicode += String.fromCharCode(n);\n if (this.tState++ === STRING6) {\n var intVal = parseInt(this.unicode, 16);\n this.unicode = undefined;\n if (this.highSurrogate !== undefined && intVal >= 0xDC00 && intVal < (0xDFFF + 1)) { //<56320,57343> - lowSurrogate\n this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate, intVal)));\n this.highSurrogate = undefined;\n } else if (this.highSurrogate === undefined && intVal >= 0xD800 && intVal < (0xDBFF + 1)) { //<55296,56319> - highSurrogate\n this.highSurrogate = intVal;\n } else {\n if (this.highSurrogate !== undefined) {\n this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate)));\n this.highSurrogate = undefined;\n }\n this.appendStringBuf(new Buffer(String.fromCharCode(intVal)));\n }\n this.tState = STRING1;\n }\n } else {\n return this.charError(buffer, i);\n }\n } else if (this.tState === NUMBER1 || this.tState === NUMBER3) {\n n = buffer[i];\n\n switch (n) {\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n case 0x2e: // .\n case 0x65: // e\n case 0x45: // E\n case 0x2b: // +\n case 0x2d: // -\n this.string += String.fromCharCode(n);\n this.tState = NUMBER3;\n break;\n default:\n this.tState = START;\n var error = this.numberReviver(this.string);\n if (error){\n return error;\n }\n\n this.offset += this.string.length - 1;\n this.string = undefined;\n i--;\n break;\n }\n }else if (this.tState === TRUE1){ // r\n if (buffer[i] === 0x72) { this.tState = TRUE2; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === TRUE2){ // u\n if (buffer[i] === 0x75) { this.tState = TRUE3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === TRUE3){ // e\n if (buffer[i] === 0x65) { this.tState = START; this.onToken(TRUE, true); this.offset+= 3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE1){ // a\n if (buffer[i] === 0x61) { this.tState = FALSE2; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE2){ // l\n if (buffer[i] === 0x6c) { this.tState = FALSE3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE3){ // s\n if (buffer[i] === 0x73) { this.tState = FALSE4; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE4){ // e\n if (buffer[i] === 0x65) { this.tState = START; this.onToken(FALSE, false); this.offset+= 4; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === NULL1){ // u\n if (buffer[i] === 0x75) { this.tState = NULL2; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === NULL2){ // l\n if (buffer[i] === 0x6c) { this.tState = NULL3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === NULL3){ // l\n if (buffer[i] === 0x6c) { this.tState = START; this.onToken(NULL, null); this.offset += 3; }\n else { return this.charError(buffer, i); }\n }\n }\n};\nproto.onToken = function (token, value) {\n // Override this to get events\n};\n\nproto.parseError = function (token, value) {\n this.tState = STOP;\n this.onError(new Error(\"Unexpected \" + Parser.toknam(token) + (value ? (\"(\" + JSON.stringify(value) + \")\") : \"\") + \" in state \" + Parser.toknam(this.state)));\n};\nproto.push = function () {\n this.stack.push({value: this.value, key: this.key, mode: this.mode});\n};\nproto.pop = function () {\n var value = this.value;\n var parent = this.stack.pop();\n this.value = parent.value;\n this.key = parent.key;\n this.mode = parent.mode;\n this.emit(value);\n if (!this.mode) { this.state = VALUE; }\n};\nproto.emit = function (value) {\n if (this.mode) { this.state = COMMA; }\n this.onValue(value);\n};\nproto.onValue = function (value) {\n // Override me\n};\nproto.onToken = function (token, value) {\n if(this.state === VALUE){\n if(token === STRING || token === NUMBER || token === TRUE || token === FALSE || token === NULL){\n if (this.value) {\n this.value[this.key] = value;\n }\n this.emit(value);\n }else if(token === LEFT_BRACE){\n this.push();\n if (this.value) {\n this.value = this.value[this.key] = {};\n } else {\n this.value = {};\n }\n this.key = undefined;\n this.state = KEY;\n this.mode = OBJECT;\n }else if(token === LEFT_BRACKET){\n this.push();\n if (this.value) {\n this.value = this.value[this.key] = [];\n } else {\n this.value = [];\n }\n this.key = 0;\n this.mode = ARRAY;\n this.state = VALUE;\n }else if(token === RIGHT_BRACE){\n if (this.mode === OBJECT) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else if(token === RIGHT_BRACKET){\n if (this.mode === ARRAY) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else{\n return this.parseError(token, value);\n }\n }else if(this.state === KEY){\n if (token === STRING) {\n this.key = value;\n this.state = COLON;\n } else if (token === RIGHT_BRACE) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else if(this.state === COLON){\n if (token === COLON) { this.state = VALUE; }\n else { return this.parseError(token, value); }\n }else if(this.state === COMMA){\n if (token === COMMA) {\n if (this.mode === ARRAY) { this.key++; this.state = VALUE; }\n else if (this.mode === OBJECT) { this.state = KEY; }\n\n } else if (token === RIGHT_BRACKET && this.mode === ARRAY || token === RIGHT_BRACE && this.mode === OBJECT) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else{\n return this.parseError(token, value);\n }\n};\n\n// Override to implement your own number reviver.\n// Any value returned is treated as error and will interrupt parsing.\nproto.numberReviver = function (text) {\n var result = Number(text);\n\n if (isNaN(result)) {\n return this.charError(buffer, i);\n }\n\n if ((text.match(/[0-9]+/) == text) && (result.toString() != text)) {\n // Long string of digits which is an ID string and not valid and/or safe JavaScript integer Number\n this.onToken(STRING, text);\n } else {\n this.onToken(NUMBER, result);\n }\n}\n\nParser.C = C;\n\nmodule.exports = Parser;\n","'use strict'\n\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n signal.addEventListener('abort', onAbort)\n eos(stream, () => signal.removeEventListener('abort', onAbort))\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.writableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n\n // TODO: Webstreams\n // if (isReadableStream(body)) {\n // return _duplexify({ readable: Readable.fromWeb(body) });\n // }\n\n // TODO: Webstreams\n // if (isWritableStream(body)) {\n // return _duplexify({ writable: Writable.fromWeb(body) });\n // }\n\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n\n // TODO: Webstreams.\n // if (\n // isReadableStream(body?.readable) &&\n // isWritableStream(body?.writable)\n // ) {\n // return Duplexify.fromWeb(body);\n // }\n\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst {\n ArrayPrototypePush,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n validateInteger(concurrency, 'concurrency', 1)\n return async function* map() {\n var _options$signal, _options$signal2\n const ac = new AbortController()\n const stream = this\n const queue = []\n const signal = ac.signal\n const signalOpt = {\n signal\n }\n const abort = () => ac.abort()\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n abort()\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal2 = options.signal) === null || _options$signal2 === undefined\n ? undefined\n : _options$signal2.addEventListener('abort', abort)\n let next\n let resume\n let done = false\n function onDone() {\n done = true\n }\n async function pump() {\n try {\n for await (let val of stream) {\n var _val\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n } catch (err) {\n val = PromiseReject(err)\n }\n if (val === kEmpty) {\n continue\n }\n if (typeof ((_val = val) === null || _val === undefined ? undefined : _val.catch) === 'function') {\n val.catch(onDone)\n }\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && queue.length && queue.length >= concurrency) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, undefined, onDone)\n queue.push(val)\n } finally {\n var _options$signal3\n done = true\n if (next) {\n next()\n next = null\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal3 = options.signal) === null || _options$signal3 === undefined\n ? undefined\n : _options$signal3.removeEventListener('abort', abort)\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n if (resume) {\n resume()\n resume = null\n }\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n ac.abort()\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal5\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal6\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal9\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal9 = options.signal) !== null &&\n _options$signal9 !== undefined &&\n _options$signal9.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal10\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal10 = options.signal) !== null &&\n _options$signal10 !== undefined &&\n _options$signal10.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal11\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal11 = options.signal) !== null &&\n _options$signal11 !== undefined &&\n _options$signal11.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n } else {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs,\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableEnded\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n }\n await wait()\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.addEventListener('abort', abort)\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.removeEventListener('abort', abort)\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableEnded(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n }\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.readableObjectMode)\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this.ended = false\n this.endEmitted = false\n this.reading = false\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true\n\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false\n this.emittedReadable = false\n this.readableListening = false\n this.resumeScheduled = false\n this[kPaused] = null\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Has it been destroyed.\n this.destroyed = false\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.multiAwaitDrain = false\n\n // If true, a maybeReadMore has been scheduled.\n this.readingMore = false\n this.dataEmitted = false\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.reading = false\n onEofChunk(stream, state)\n } else if (state.objectMode || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.reading = false\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.reading = false\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if (state.needReadable) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if (state.objectMode) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.emittedReadable = false\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = state.needReadable\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.reading = true\n state.sync = true\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.sync = false\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n if (state.flowing) {\n pause()\n }\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? 16 : 16 * 1024\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { Symbol, SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\nconst kDestroyed = Symbol('kDestroyed')\nconst kIsErrored = Symbol('kIsErrored')\nconst kIsReadable = Symbol('kIsReadable')\nconst kIsDisturbed = Symbol('kIsDisturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n kDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n isClosed,\n isDestroyed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n *\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('stream')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/JsonLdParser\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextTree = void 0;\n/**\n * A tree structure that holds all contexts,\n * based on their position in the JSON object.\n *\n * Positions are identified by a path of keys.\n */\nclass ContextTree {\n constructor() {\n this.subTrees = {};\n }\n getContext(keys) {\n if (keys.length > 0) {\n const [head, ...tail] = keys;\n const subTree = this.subTrees[head];\n if (subTree) {\n const subContext = subTree.getContext(tail);\n if (subContext) {\n return subContext.then(({ context, depth }) => ({ context, depth: depth + 1 }));\n }\n }\n }\n return this.context ? this.context.then((context) => ({ context, depth: 0 })) : null;\n }\n setContext(keys, context) {\n if (keys.length === 0) {\n this.context = context;\n }\n else {\n const [head, ...tail] = keys;\n let subTree = this.subTrees[head];\n if (!subTree) {\n subTree = this.subTrees[head] = new ContextTree();\n }\n subTree.setContext(tail, context);\n }\n }\n removeContext(path) {\n this.setContext(path, null);\n }\n}\nexports.ContextTree = ContextTree;\n//# sourceMappingURL=ContextTree.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonLdParser = void 0;\n// tslint:disable-next-line:no-var-requires\nconst Parser = require('@bergos/jsonparse');\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst EntryHandlerArrayValue_1 = require(\"./entryhandler/EntryHandlerArrayValue\");\nconst EntryHandlerContainer_1 = require(\"./entryhandler/EntryHandlerContainer\");\nconst EntryHandlerInvalidFallback_1 = require(\"./entryhandler/EntryHandlerInvalidFallback\");\nconst EntryHandlerPredicate_1 = require(\"./entryhandler/EntryHandlerPredicate\");\nconst EntryHandlerKeywordContext_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordContext\");\nconst EntryHandlerKeywordGraph_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordGraph\");\nconst EntryHandlerKeywordId_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordId\");\nconst EntryHandlerKeywordIncluded_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordIncluded\");\nconst EntryHandlerKeywordNest_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordNest\");\nconst EntryHandlerKeywordType_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordType\");\nconst EntryHandlerKeywordUnknownFallback_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordUnknownFallback\");\nconst EntryHandlerKeywordValue_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordValue\");\nconst ParsingContext_1 = require(\"./ParsingContext\");\nconst Util_1 = require(\"./Util\");\nconst http_link_header_1 = require(\"http-link-header\");\nconst EntryHandlerKeywordAnnotation_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordAnnotation\");\n/**\n * A stream transformer that parses JSON-LD (text) streams to an {@link RDF.Stream}.\n */\nclass JsonLdParser extends readable_stream_1.Transform {\n constructor(options) {\n super({ readableObjectMode: true });\n options = options || {};\n this.options = options;\n this.parsingContext = new ParsingContext_1.ParsingContext(Object.assign({ parser: this }, options));\n this.util = new Util_1.Util({ dataFactory: options.dataFactory, parsingContext: this.parsingContext });\n this.jsonParser = new Parser();\n this.contextJobs = [];\n this.typeJobs = [];\n this.contextAwaitingJobs = [];\n this.lastDepth = 0;\n this.lastKeys = [];\n this.lastOnValueJob = Promise.resolve();\n this.attachJsonParserListeners();\n this.on('end', () => {\n if (typeof this.jsonParser.mode !== 'undefined') {\n this.emit('error', new Error('Unclosed document'));\n }\n });\n }\n /**\n * Construct a JsonLdParser from the given HTTP response.\n *\n * This will throw an error if no valid JSON response is received\n * (application/ld+json, application/json, or something+json).\n *\n * For raw JSON responses, exactly one link header pointing to a JSON-LD context is required.\n *\n * This method is not responsible for handling redirects.\n *\n * @param baseIRI The URI of the received response.\n * @param mediaType The received content type.\n * @param headers Optional HTTP headers.\n * @param options Optional parser options.\n */\n static fromHttpResponse(baseIRI, mediaType, headers, options) {\n let context;\n // Special cases when receiving something else than the JSON-LD media type\n if (mediaType !== 'application/ld+json') {\n // Only accept JSON or JSON extension types\n if (mediaType !== 'application/json' && !mediaType.endsWith('+json')) {\n throw new jsonld_context_parser_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n // We need exactly one JSON-LD context in the link header\n if (headers && headers.has('Link')) {\n headers.forEach((value, key) => {\n if (key === 'link') {\n const linkHeader = (0, http_link_header_1.parse)(value);\n for (const link of linkHeader.get('rel', 'http://www.w3.org/ns/json-ld#context')) {\n if (context) {\n throw new jsonld_context_parser_1.ErrorCoded('Multiple JSON-LD context link headers were found on ' + baseIRI, jsonld_context_parser_1.ERROR_CODES.MULTIPLE_CONTEXT_LINK_HEADERS);\n }\n context = link.uri;\n }\n }\n });\n }\n if (!context && !(options === null || options === void 0 ? void 0 : options.ignoreMissingContextLinkHeader)) {\n throw new jsonld_context_parser_1.ErrorCoded(`Missing context link header for media type ${mediaType} on ${baseIRI}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n }\n // Check if the streaming profile is present\n let streamingProfile;\n if (headers && headers.has('Content-Type')) {\n const contentType = headers.get('Content-Type');\n const match = /; *profile=([^\"]*)/.exec(contentType);\n if (match && match[1] === 'http://www.w3.org/ns/json-ld#streaming') {\n streamingProfile = true;\n }\n }\n return new JsonLdParser(Object.assign({ baseIRI,\n context,\n streamingProfile }, options ? options : {}));\n }\n /**\n * Parses the given text stream into a quad stream.\n * @param {NodeJS.EventEmitter} stream A text stream.\n * @return {RDF.Stream} A quad stream.\n */\n import(stream) {\n if ('pipe' in stream) {\n stream.on('error', (error) => parsed.emit('error', error));\n const parsed = stream.pipe(new JsonLdParser(this.options));\n return parsed;\n }\n else {\n const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n stream.on('error', (error) => parsed.emit('error', error));\n stream.on('data', (data) => output.push(data));\n stream.on('end', () => output.push(null));\n const parsed = output.pipe(new JsonLdParser(this.options));\n return parsed;\n }\n }\n _transform(chunk, encoding, callback) {\n this.jsonParser.write(chunk);\n this.lastOnValueJob\n .then(() => callback(), (error) => callback(error));\n }\n /**\n * Start a new job for parsing the given value.\n *\n * This will let the first valid {@link IEntryHandler} handle the entry.\n *\n * @param {any[]} keys The stack of keys.\n * @param value The value to parse.\n * @param {number} depth The depth to parse at.\n * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n * @return {Promise} A promise resolving when the job is done.\n */\n async newOnValueJob(keys, value, depth, lastDepthCheck) {\n let flushStacks = true;\n // When we go up the stack, emit all unidentified values\n // We need to do this before the new job, because the new job may require determined values from the flushed jobs.\n if (lastDepthCheck && depth < this.lastDepth) {\n // Check if we had any RDF lists that need to be terminated with an rdf:nil\n const listPointer = this.parsingContext.listPointerStack[this.lastDepth];\n if (listPointer) {\n // Terminate the list if the had at least one value\n if (listPointer.value) {\n this.push(this.util.dataFactory.quad(listPointer.value, this.util.rdfRest, this.util.rdfNil, this.util.getDefaultGraph()));\n }\n // Add the list id to the id stack, so it can be used higher up in the stack\n listPointer.listId.listHead = true;\n this.parsingContext.idStack[listPointer.listRootDepth + 1] = [listPointer.listId];\n this.parsingContext.listPointerStack.splice(this.lastDepth, 1);\n }\n // Flush the buffer for lastDepth\n // If the parent key is a special type of container, postpone flushing until that parent is handled.\n if (await EntryHandlerContainer_1.EntryHandlerContainer.isBufferableContainerHandler(this.parsingContext, this.lastKeys, this.lastDepth)) {\n this.parsingContext.pendingContainerFlushBuffers\n .push({ depth: this.lastDepth, keys: this.lastKeys.slice(0, this.lastKeys.length) });\n flushStacks = false;\n }\n else {\n await this.flushBuffer(this.lastDepth, this.lastKeys);\n }\n }\n const key = await this.util.unaliasKeyword(keys[depth], keys, depth);\n const parentKey = await this.util.unaliasKeywordParent(keys, depth);\n this.parsingContext.emittedStack[depth] = true;\n let handleKey = true;\n // Keywords inside @reverse is not allowed apart from @context\n if (jsonld_context_parser_1.Util.isValidKeyword(key) && parentKey === '@reverse' && key !== '@context') {\n this.emit('error', new jsonld_context_parser_1.ErrorCoded(`Found the @id '${value}' inside an @reverse property`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_MAP));\n }\n // Skip further processing if one of the parent nodes are invalid.\n // We use the validationStack to reuse validation results that were produced before with common key stacks.\n let inProperty = false;\n if (this.parsingContext.validationStack.length > 1) {\n inProperty = this.parsingContext.validationStack[this.parsingContext.validationStack.length - 1].property;\n }\n for (let i = Math.max(1, this.parsingContext.validationStack.length - 1); i < keys.length - 1; i++) {\n const validationResult = this.parsingContext.validationStack[i]\n || (this.parsingContext.validationStack[i] = await this.validateKey(keys.slice(0, i + 1), i, inProperty));\n if (!validationResult.valid) {\n this.parsingContext.emittedStack[depth] = false;\n handleKey = false;\n break;\n }\n else if (!inProperty && validationResult.property) {\n inProperty = true;\n }\n }\n // Skip further processing if this node is part of a literal\n if (await this.util.isLiteral(keys, depth)) {\n handleKey = false;\n }\n // Get handler\n if (handleKey) {\n for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n const testResult = await entryHandler.test(this.parsingContext, this.util, key, keys, depth);\n if (testResult) {\n // Pass processing over to the handler\n await entryHandler.handle(this.parsingContext, this.util, key, keys, value, depth, testResult);\n // Flag that this depth is processed\n if (entryHandler.isStackProcessor()) {\n this.parsingContext.processingStack[depth] = true;\n }\n break;\n }\n }\n }\n // Validate value indexes on the root.\n if (depth === 0 && Array.isArray(value)) {\n await this.util.validateValueIndexes(value);\n }\n // When we go up the stack, flush the old stack\n if (flushStacks && depth < this.lastDepth) {\n // Reset our stacks\n this.flushStacks(this.lastDepth);\n }\n this.lastDepth = depth;\n this.lastKeys = keys;\n // Clear the keyword cache at this depth, and everything underneath.\n this.parsingContext.unaliasedKeywordCacheStack.splice(depth - 1);\n }\n /**\n * Flush the processing stacks at the given depth.\n * @param {number} depth A depth.\n */\n flushStacks(depth) {\n this.parsingContext.processingStack.splice(depth, 1);\n this.parsingContext.processingType.splice(depth, 1);\n this.parsingContext.emittedStack.splice(depth, 1);\n this.parsingContext.idStack.splice(depth, 1);\n this.parsingContext.graphStack.splice(depth + 1, 1);\n this.parsingContext.graphContainerTermStack.splice(depth, 1);\n this.parsingContext.jsonLiteralStack.splice(depth, 1);\n this.parsingContext.validationStack.splice(depth - 1, 2);\n this.parsingContext.literalStack.splice(depth, this.parsingContext.literalStack.length - depth);\n this.parsingContext.annotationsBuffer.splice(depth, 1);\n // TODO: just like the literal stack, splice all other stack until the end as well?\n }\n /**\n * Flush buffers for the given depth.\n *\n * This should be called after the last entry at a given depth was processed.\n *\n * @param {number} depth A depth.\n * @param {any[]} keys A stack of keys.\n * @return {Promise} A promise resolving if flushing is done.\n */\n async flushBuffer(depth, keys) {\n let subjects = this.parsingContext.idStack[depth];\n const subjectsWasDefined = !!subjects;\n if (!subjectsWasDefined) {\n subjects = this.parsingContext.idStack[depth] = [this.util.dataFactory.blankNode()];\n }\n // Flush values at this level\n const valueBuffer = this.parsingContext.unidentifiedValuesBuffer[depth];\n if (valueBuffer) {\n for (const subject of subjects) {\n const depthOffsetGraph = await this.util.getDepthOffsetGraph(depth, keys);\n const graphs = (this.parsingContext.graphStack[depth] || depthOffsetGraph >= 0)\n ? this.parsingContext.idStack[depth - depthOffsetGraph - 1]\n : [await this.util.getGraphContainerValue(keys, depth)];\n if (graphs) {\n for (const graph of graphs) {\n // Flush values to stream if the graph @id is known\n this.parsingContext.emittedStack[depth] = true;\n for (const bufferedValue of valueBuffer) {\n this.util.emitQuadChecked(depth, subject, bufferedValue.predicate, bufferedValue.object, graph, bufferedValue.reverse, bufferedValue.isEmbedded);\n }\n }\n }\n else {\n // Place the values in the graphs buffer if the graph @id is not yet known\n const subGraphBuffer = this.parsingContext.getUnidentifiedGraphBufferSafe(depth - await this.util.getDepthOffsetGraph(depth, keys) - 1);\n for (const bufferedValue of valueBuffer) {\n if (bufferedValue.reverse) {\n subGraphBuffer.push({\n object: subject,\n predicate: bufferedValue.predicate,\n subject: bufferedValue.object,\n isEmbedded: bufferedValue.isEmbedded,\n });\n }\n else {\n subGraphBuffer.push({\n object: bufferedValue.object,\n predicate: bufferedValue.predicate,\n subject,\n isEmbedded: bufferedValue.isEmbedded,\n });\n }\n }\n }\n }\n this.parsingContext.unidentifiedValuesBuffer.splice(depth, 1);\n this.parsingContext.literalStack.splice(depth, 1);\n this.parsingContext.jsonLiteralStack.splice(depth, 1);\n }\n // Flush graphs at this level\n const graphBuffer = this.parsingContext.unidentifiedGraphsBuffer[depth];\n if (graphBuffer) {\n for (const subject of subjects) {\n // A @graph statement at the root without @id relates to the default graph,\n // unless there are top-level properties,\n // others relate to blank nodes.\n const graph = depth === 1 && subject.termType === 'BlankNode'\n && !this.parsingContext.topLevelProperties ? this.util.getDefaultGraph() : subject;\n this.parsingContext.emittedStack[depth] = true;\n for (const bufferedValue of graphBuffer) {\n this.parsingContext.emitQuad(depth, this.util.dataFactory.quad(bufferedValue.subject, bufferedValue.predicate, bufferedValue.object, graph));\n }\n }\n this.parsingContext.unidentifiedGraphsBuffer.splice(depth, 1);\n }\n // Push unhandled annotations up the stack as nested annotations\n const annotationsBuffer = this.parsingContext.annotationsBuffer[depth];\n if (annotationsBuffer) {\n // Throw an error if we reach the top, and still have annotations\n if (annotationsBuffer.length > 0 && depth === 1) {\n this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Annotations can not be made on top-level nodes`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Pass the annotations buffer up one level in the stack\n const annotationsBufferParent = this.parsingContext.getAnnotationsBufferSafe(depth - 1);\n for (const annotation of annotationsBuffer) {\n annotationsBufferParent.push(annotation);\n }\n delete this.parsingContext.annotationsBuffer[depth];\n }\n }\n /**\n * Check if at least one {@link IEntryHandler} validates the entry to true.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth A depth.\n * @param {boolean} inProperty If the current depth is part of a valid property node.\n * @return {Promise<{ valid: boolean, property: boolean }>} A promise resolving to true or false.\n */\n async validateKey(keys, depth, inProperty) {\n for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n if (await entryHandler.validate(this.parsingContext, this.util, keys, depth, inProperty)) {\n return { valid: true, property: inProperty || entryHandler.isPropertyHandler() };\n }\n }\n return { valid: false, property: false };\n }\n /**\n * Attach all required listeners to the JSON parser.\n *\n * This should only be called once.\n */\n attachJsonParserListeners() {\n // Listen to json parser events\n this.jsonParser.onValue = (value) => {\n const depth = this.jsonParser.stack.length;\n const keys = (new Array(depth + 1).fill(0)).map((v, i) => {\n return i === depth ? this.jsonParser.key : this.jsonParser.stack[i].key;\n });\n if (!this.isParsingContextInner(depth)) { // Don't parse inner nodes inside @context\n const valueJobCb = () => this.newOnValueJob(keys, value, depth, true);\n if (!this.parsingContext.streamingProfile\n && !this.parsingContext.contextTree.getContext(keys.slice(0, -1))) {\n // If an out-of-order context is allowed,\n // we have to buffer everything.\n // We store jobs for @context's and @type's separately,\n // because at the end, we have to process them first.\n // We also handle @type because these *could* introduce a type-scoped context.\n if (keys[depth] === '@context') {\n let jobs = this.contextJobs[depth];\n if (!jobs) {\n jobs = this.contextJobs[depth] = [];\n }\n jobs.push(valueJobCb);\n }\n else if (keys[depth] === '@type'\n || typeof keys[depth] === 'number' && keys[depth - 1] === '@type') { // Also capture @type with array values\n // Remove @type from keys, because we want it to apply to parent later on\n this.typeJobs.push({ job: valueJobCb, keys: keys.slice(0, keys.length - 1) });\n }\n else {\n this.contextAwaitingJobs.push({ job: valueJobCb, keys });\n }\n }\n else {\n // Make sure that our value jobs are chained synchronously\n this.lastOnValueJob = this.lastOnValueJob.then(valueJobCb);\n }\n // Execute all buffered jobs on deeper levels\n if (!this.parsingContext.streamingProfile && depth === 0) {\n this.lastOnValueJob = this.lastOnValueJob\n .then(() => this.executeBufferedJobs());\n }\n }\n };\n this.jsonParser.onError = (error) => {\n this.emit('error', error);\n };\n }\n /**\n * Check if the parser is currently parsing an element that is part of an @context entry.\n * @param {number} depth A depth.\n * @return {boolean} A boolean.\n */\n isParsingContextInner(depth) {\n for (let i = depth; i > 0; i--) {\n if (this.jsonParser.stack[i - 1].key === '@context') {\n return true;\n }\n }\n return false;\n }\n /**\n * Execute all buffered jobs.\n * @return {Promise} A promise resolving if all jobs are finished.\n */\n async executeBufferedJobs() {\n // Handle context jobs\n for (const jobs of this.contextJobs) {\n if (jobs) {\n for (const job of jobs) {\n await job();\n }\n }\n }\n // Clear the keyword cache.\n this.parsingContext.unaliasedKeywordCacheStack.splice(0);\n // Handle non-context jobs\n for (const job of this.contextAwaitingJobs) {\n // Check if we have a type (with possible type-scoped context) that should be handled before.\n // We check all possible parent nodes for the current job, from root to leaves.\n if (this.typeJobs.length > 0) {\n // First collect all applicable type jobs\n const applicableTypeJobs = [];\n const applicableTypeJobIds = [];\n for (let i = 0; i < this.typeJobs.length; i++) {\n const typeJob = this.typeJobs[i];\n if (Util_1.Util.isPrefixArray(typeJob.keys, job.keys)) {\n applicableTypeJobs.push(typeJob);\n applicableTypeJobIds.push(i);\n }\n }\n // Next, sort the jobs from short to long key length (to ensure types higher up in the tree to be handled first)\n const sortedTypeJobs = applicableTypeJobs.sort((job1, job2) => job1.keys.length - job2.keys.length);\n // Finally, execute the jobs in order\n for (const typeJob of sortedTypeJobs) {\n await typeJob.job();\n }\n // Remove the executed type jobs\n // Sort first, so we can efficiently splice\n const sortedApplicableTypeJobIds = applicableTypeJobIds.sort().reverse();\n for (const jobId of sortedApplicableTypeJobIds) {\n this.typeJobs.splice(jobId, 1);\n }\n }\n await job.job();\n }\n }\n}\nexports.JsonLdParser = JsonLdParser;\nJsonLdParser.DEFAULT_PROCESSING_MODE = '1.1';\nJsonLdParser.ENTRY_HANDLERS = [\n new EntryHandlerArrayValue_1.EntryHandlerArrayValue(),\n new EntryHandlerKeywordContext_1.EntryHandlerKeywordContext(),\n new EntryHandlerKeywordId_1.EntryHandlerKeywordId(),\n new EntryHandlerKeywordIncluded_1.EntryHandlerKeywordIncluded(),\n new EntryHandlerKeywordGraph_1.EntryHandlerKeywordGraph(),\n new EntryHandlerKeywordNest_1.EntryHandlerKeywordNest(),\n new EntryHandlerKeywordType_1.EntryHandlerKeywordType(),\n new EntryHandlerKeywordValue_1.EntryHandlerKeywordValue(),\n new EntryHandlerKeywordAnnotation_1.EntryHandlerKeywordAnnotation(),\n new EntryHandlerContainer_1.EntryHandlerContainer(),\n new EntryHandlerKeywordUnknownFallback_1.EntryHandlerKeywordUnknownFallback(),\n new EntryHandlerPredicate_1.EntryHandlerPredicate(),\n new EntryHandlerInvalidFallback_1.EntryHandlerInvalidFallback(),\n];\n//# sourceMappingURL=JsonLdParser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParsingContext = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst ErrorCoded_1 = require(\"jsonld-context-parser/lib/ErrorCoded\");\nconst ContextTree_1 = require(\"./ContextTree\");\nconst JsonLdParser_1 = require(\"./JsonLdParser\");\n/**\n * Data holder for parsing information.\n */\nclass ParsingContext {\n constructor(options) {\n // Initialize settings\n this.contextParser = new jsonld_context_parser_1.ContextParser({ documentLoader: options.documentLoader, skipValidation: options.skipContextValidation });\n this.streamingProfile = !!options.streamingProfile;\n this.baseIRI = options.baseIRI;\n this.produceGeneralizedRdf = !!options.produceGeneralizedRdf;\n this.allowSubjectList = !!options.allowSubjectList;\n this.processingMode = options.processingMode || JsonLdParser_1.JsonLdParser.DEFAULT_PROCESSING_MODE;\n this.strictValues = !!options.strictValues;\n this.validateValueIndexes = !!options.validateValueIndexes;\n this.defaultGraph = options.defaultGraph;\n this.rdfDirection = options.rdfDirection;\n this.normalizeLanguageTags = options.normalizeLanguageTags;\n this.streamingProfileAllowOutOfOrderPlainType = options.streamingProfileAllowOutOfOrderPlainType;\n this.rdfstar = options.rdfstar !== false;\n this.rdfstarReverseInEmbedded = options.rdfstarReverseInEmbedded;\n this.topLevelProperties = false;\n this.activeProcessingMode = parseFloat(this.processingMode);\n // Initialize stacks\n this.processingStack = [];\n this.processingType = [];\n this.emittedStack = [];\n this.idStack = [];\n this.graphStack = [];\n this.graphContainerTermStack = [];\n this.listPointerStack = [];\n this.contextTree = new ContextTree_1.ContextTree();\n this.literalStack = [];\n this.validationStack = [];\n this.unaliasedKeywordCacheStack = [];\n this.jsonLiteralStack = [];\n this.unidentifiedValuesBuffer = [];\n this.unidentifiedGraphsBuffer = [];\n this.annotationsBuffer = [];\n this.pendingContainerFlushBuffers = [];\n this.parser = options.parser;\n if (options.context) {\n this.rootContext = this.parseContext(options.context);\n this.rootContext.then((context) => this.validateContext(context));\n }\n else {\n this.rootContext = Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(this.baseIRI ? { '@base': this.baseIRI, '@__baseDocument': true } : {}));\n }\n }\n /**\n * Parse the given context with the configured options.\n * @param {JsonLdContext} context A context to parse.\n * @param {JsonLdContextNormalized} parentContext An optional parent context.\n * @param {boolean} ignoreProtection If @protected term checks should be ignored.\n * @return {Promise} A promise resolving to the parsed context.\n */\n async parseContext(context, parentContext, ignoreProtection) {\n return this.contextParser.parse(context, {\n baseIRI: this.baseIRI,\n ignoreProtection,\n normalizeLanguageTags: this.normalizeLanguageTags,\n parentContext,\n processingMode: this.activeProcessingMode,\n });\n }\n /**\n * Check if the given context is valid.\n * If not, an error will be thrown.\n * @param {JsonLdContextNormalized} context A context.\n */\n validateContext(context) {\n const activeVersion = context.getContextRaw()['@version'];\n if (activeVersion) {\n if (this.activeProcessingMode && activeVersion > this.activeProcessingMode) {\n throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD version '${activeVersion}' under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.PROCESSING_MODE_CONFLICT);\n }\n else {\n if (this.activeProcessingMode && activeVersion < this.activeProcessingMode) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid JSON-LD version ${activeVersion} under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n }\n this.activeProcessingMode = activeVersion;\n }\n }\n }\n /**\n * Get the context at the given path.\n * @param {keys} keys The path of keys to get the context at.\n * @param {number} offset The path offset, defaults to 1.\n * @return {Promise} A promise resolving to a context.\n */\n async getContext(keys, offset = 1) {\n const keysOriginal = keys;\n // Ignore array keys at the end\n while (typeof keys[keys.length - 1] === 'number') {\n keys = keys.slice(0, keys.length - 1);\n }\n // Handle offset on keys\n if (offset) {\n keys = keys.slice(0, -offset);\n }\n // Determine the closest context\n const contextData = await this.getContextPropagationAware(keys);\n const context = contextData.context;\n // Process property-scoped contexts (high-to-low)\n let contextRaw = context.getContextRaw();\n for (let i = contextData.depth; i < keysOriginal.length - offset; i++) {\n const key = keysOriginal[i];\n const contextKeyEntry = contextRaw[key];\n if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n const scopedContext = (await this.parseContext(contextKeyEntry, contextRaw, true)).getContextRaw();\n const propagate = !(key in scopedContext)\n || scopedContext[key]['@context']['@propagate']; // Propagation is true by default\n if (propagate !== false || i === keysOriginal.length - 1 - offset) {\n contextRaw = scopedContext;\n // Clean up final context\n delete contextRaw['@propagate'];\n contextRaw[key] = Object.assign({}, contextRaw[key]);\n if ('@id' in contextKeyEntry) {\n contextRaw[key]['@id'] = contextKeyEntry['@id'];\n }\n delete contextRaw[key]['@context'];\n if (propagate !== false) {\n this.contextTree.setContext(keysOriginal.slice(0, i + offset), Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw)));\n }\n }\n }\n }\n return new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw);\n }\n /**\n * Get the context at the given path.\n * Non-propagating contexts will be skipped,\n * unless the context at that exact depth is retrieved.\n *\n * This ONLY takes into account context propagation logic,\n * so this should usually not be called directly,\n * call {@link #getContext} instead.\n *\n * @param keys The path of keys to get the context at.\n * @return {Promise<{ context: JsonLdContextNormalized, depth: number }>} A context and its depth.\n */\n async getContextPropagationAware(keys) {\n const originalDepth = keys.length;\n let contextData = null;\n let hasApplicablePropertyScopedContext;\n do {\n hasApplicablePropertyScopedContext = false;\n if (contextData && '@__propagateFallback' in contextData.context.getContextRaw()) {\n // If a propagation fallback context has been set,\n // fallback to that context and retry for the same depth.\n contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized(contextData.context.getContextRaw()['@__propagateFallback']);\n }\n else {\n if (contextData) {\n // If we had a previous iteration, jump to the parent of context depth.\n // We must do this because once we get here, last context had propagation disabled,\n // so we check its first parent instead.\n keys = keys.slice(0, contextData.depth - 1);\n }\n contextData = await this.contextTree.getContext(keys) || { context: await this.rootContext, depth: 0 };\n }\n // Allow non-propagating contexts to propagate one level deeper\n // if it defines a property-scoped context that is applicable for the current key.\n // @see https://w3c.github.io/json-ld-api/tests/toRdf-manifest#tc012\n const lastKey = keys[keys.length - 1];\n if (lastKey in contextData.context.getContextRaw()) {\n const lastKeyValue = contextData.context.getContextRaw()[lastKey];\n if (lastKeyValue && typeof lastKeyValue === 'object' && '@context' in lastKeyValue) {\n hasApplicablePropertyScopedContext = true;\n }\n }\n } while (contextData.depth > 0 // Root context has a special case\n && contextData.context.getContextRaw()['@propagate'] === false // Stop loop if propagation is true\n && contextData.depth !== originalDepth // Stop loop if requesting exact depth of non-propagating\n && !hasApplicablePropertyScopedContext);\n // Special case for root context that does not allow propagation.\n // Fallback to empty context in that case.\n if (contextData.depth === 0\n && contextData.context.getContextRaw()['@propagate'] === false\n && contextData.depth !== originalDepth) {\n contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized({});\n }\n return contextData;\n }\n /**\n * Start a new job for parsing the given value.\n * @param {any[]} keys The stack of keys.\n * @param value The value to parse.\n * @param {number} depth The depth to parse at.\n * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n * @return {Promise} A promise resolving when the job is done.\n */\n async newOnValueJob(keys, value, depth, lastDepthCheck) {\n await this.parser.newOnValueJob(keys, value, depth, lastDepthCheck);\n }\n /**\n * Flush the pending container flush buffers\n * @return {boolean} If any pending buffers were flushed.\n */\n async handlePendingContainerFlushBuffers() {\n if (this.pendingContainerFlushBuffers.length > 0) {\n for (const pendingFlushBuffer of this.pendingContainerFlushBuffers) {\n await this.parser.flushBuffer(pendingFlushBuffer.depth, pendingFlushBuffer.keys);\n this.parser.flushStacks(pendingFlushBuffer.depth);\n }\n this.pendingContainerFlushBuffers.splice(0, this.pendingContainerFlushBuffers.length);\n return true;\n }\n else {\n return false;\n }\n }\n /**\n * Emit the given quad into the output stream.\n * @param {number} depth The depth the quad was generated at.\n * @param {Quad} quad A quad to emit.\n */\n emitQuad(depth, quad) {\n if (depth === 1) {\n this.topLevelProperties = true;\n }\n this.parser.push(quad);\n }\n /**\n * Emit the given error into the output stream.\n * @param {Error} error An error to emit.\n */\n emitError(error) {\n this.parser.emit('error', error);\n }\n /**\n * Emit the given context into the output stream under the 'context' event.\n * @param {JsonLdContext} context A context to emit.\n */\n emitContext(context) {\n this.parser.emit('context', context);\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.unidentifiedValuesBuffer}.\n * @param {number} depth A depth.\n * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n * {@link ParsingContext.unidentifiedValuesBuffer}.\n */\n getUnidentifiedValueBufferSafe(depth) {\n let buffer = this.unidentifiedValuesBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.unidentifiedValuesBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.unidentifiedGraphsBuffer}.\n * @param {number} depth A depth.\n * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n * {@link ParsingContext.unidentifiedGraphsBuffer}.\n */\n getUnidentifiedGraphBufferSafe(depth) {\n let buffer = this.unidentifiedGraphsBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.unidentifiedGraphsBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.annotationsBuffer}.\n * @param {number} depth A depth.\n * @return {} An element of {@link ParsingContext.annotationsBuffer}.\n */\n getAnnotationsBufferSafe(depth) {\n let buffer = this.annotationsBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.annotationsBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * @return IExpandOptions The expand options for the active processing mode.\n */\n getExpandOptions() {\n return ParsingContext.EXPAND_OPTIONS[this.activeProcessingMode];\n }\n /**\n * Shift the stack at the given offset to the given depth.\n *\n * This will override anything in the stack at `depth`,\n * and this will remove anything at `depth + depthOffset`\n *\n * @param depth The target depth.\n * @param depthOffset The origin depth, relative to `depth`.\n */\n shiftStack(depth, depthOffset) {\n // Copy the id stack value up one level so that the next job can access the id.\n const deeperIdStack = this.idStack[depth + depthOffset];\n if (deeperIdStack) {\n this.idStack[depth] = deeperIdStack;\n this.emittedStack[depth] = true;\n delete this.idStack[depth + depthOffset];\n }\n // Shorten key stack\n if (this.pendingContainerFlushBuffers.length) {\n for (const buffer of this.pendingContainerFlushBuffers) {\n if (buffer.depth >= depth + depthOffset) {\n buffer.depth -= depthOffset;\n buffer.keys.splice(depth, depthOffset);\n }\n }\n }\n // Splice stacks\n if (this.unidentifiedValuesBuffer[depth + depthOffset]) {\n this.unidentifiedValuesBuffer[depth] = this.unidentifiedValuesBuffer[depth + depthOffset];\n delete this.unidentifiedValuesBuffer[depth + depthOffset];\n }\n if (this.annotationsBuffer[depth + depthOffset - 1]) {\n if (!this.annotationsBuffer[depth - 1]) {\n this.annotationsBuffer[depth - 1] = [];\n }\n this.annotationsBuffer[depth - 1] = [\n ...this.annotationsBuffer[depth - 1],\n ...this.annotationsBuffer[depth + depthOffset - 1],\n ];\n delete this.annotationsBuffer[depth + depthOffset - 1];\n }\n // TODO: also do the same for other stacks\n }\n}\nexports.ParsingContext = ParsingContext;\nParsingContext.EXPAND_OPTIONS = {\n 1.0: {\n allowPrefixForcing: false,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: false,\n },\n 1.1: {\n allowPrefixForcing: true,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: true,\n },\n};\n//# sourceMappingURL=ParsingContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst EntryHandlerContainer_1 = require(\"./entryhandler/EntryHandlerContainer\");\n// tslint:disable-next-line:no-var-requires\nconst canonicalizeJson = require('canonicalize');\n/**\n * Utility functions and methods.\n */\nclass Util {\n constructor(options) {\n this.parsingContext = options.parsingContext;\n this.dataFactory = options.dataFactory || new rdf_data_factory_1.DataFactory();\n this.rdfFirst = this.dataFactory.namedNode(Util.RDF + 'first');\n this.rdfRest = this.dataFactory.namedNode(Util.RDF + 'rest');\n this.rdfNil = this.dataFactory.namedNode(Util.RDF + 'nil');\n this.rdfType = this.dataFactory.namedNode(Util.RDF + 'type');\n this.rdfJson = this.dataFactory.namedNode(Util.RDF + 'JSON');\n }\n /**\n * Helper function to get the value of a context entry,\n * or fallback to a certain value.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} contextKey A pre-defined JSON-LD key in context entries.\n * @param {string} key A context entry key.\n * @param {string} fallback A fallback value for when the given contextKey\n * could not be found in the value with the given key.\n * @return {string} The value of the given contextKey in the entry behind key in the given context,\n * or the given fallback value.\n */\n static getContextValue(context, contextKey, key, fallback) {\n const entry = context.getContextRaw()[key];\n if (!entry) {\n return fallback;\n }\n const type = entry[contextKey];\n return type === undefined ? fallback : type;\n }\n /**\n * Get the container type of the given key in the context.\n *\n * Should any context-scoping bugs should occur related to this in the future,\n * it may be required to increase the offset from the depth at which the context is retrieved by one (to 2).\n * This is because containers act 2 levels deep.\n *\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The container type.\n */\n static getContextValueContainer(context, key) {\n return Util.getContextValue(context, '@container', key, { '@set': true });\n }\n /**\n * Get the value type of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueType(context, key) {\n const valueType = Util.getContextValue(context, '@type', key, null);\n if (valueType === '@none') {\n return null;\n }\n return valueType;\n }\n /**\n * Get the language of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueLanguage(context, key) {\n return Util.getContextValue(context, '@language', key, context.getContextRaw()['@language'] || null);\n }\n /**\n * Get the direction of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueDirection(context, key) {\n return Util.getContextValue(context, '@direction', key, context.getContextRaw()['@direction'] || null);\n }\n /**\n * Check if the given key in the context is a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {boolean} If the context value has a @reverse key.\n */\n static isContextValueReverse(context, key) {\n return !!Util.getContextValue(context, '@reverse', key, null);\n }\n /**\n * Get the @index of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The index.\n */\n static getContextValueIndex(context, key) {\n return Util.getContextValue(context, '@index', key, context.getContextRaw()['@index'] || null);\n }\n /**\n * Check if the given key refers to a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The property key.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property must be reversed.\n */\n static isPropertyReverse(context, key, parentKey) {\n // '!==' is needed because reversed properties in a @reverse container should cancel each other out.\n return parentKey === '@reverse' !== Util.isContextValueReverse(context, key);\n }\n /**\n * Check if the given key exists inside an embedded node as direct child.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property is embedded.\n */\n static isPropertyInEmbeddedNode(parentKey) {\n return parentKey === '@id';\n }\n /**\n * Check if the given key exists inside an annotation object as direct child.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property is an annotation.\n */\n static isPropertyInAnnotationObject(parentKey) {\n return parentKey === '@annotation';\n }\n /**\n * Check if the given IRI is valid.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIri(iri) {\n return iri !== null && jsonld_context_parser_1.Util.isValidIri(iri);\n }\n /**\n * Check if the given first array (needle) is a prefix of the given second array (haystack).\n * @param needle An array to check if it is a prefix.\n * @param haystack An array to look in.\n */\n static isPrefixArray(needle, haystack) {\n if (needle.length > haystack.length) {\n return false;\n }\n for (let i = 0; i < needle.length; i++) {\n if (needle[i] !== haystack[i]) {\n return false;\n }\n }\n return true;\n }\n /**\n * Make sure that @id-@index pairs are equal over all array values.\n * Reject otherwise.\n * @param {any[]} value An array value.\n * @return {Promise} A promise rejecting if conflicts are present.\n */\n async validateValueIndexes(value) {\n if (this.parsingContext.validateValueIndexes) {\n const indexHashes = {};\n for (const entry of value) {\n if (entry && typeof entry === 'object') {\n const id = entry['@id'];\n const index = entry['@index'];\n if (id && index) {\n const existingIndexValue = indexHashes[id];\n if (existingIndexValue && existingIndexValue !== index) {\n throw new jsonld_context_parser_1.ErrorCoded(`Conflicting @index value for ${id}`, jsonld_context_parser_1.ERROR_CODES.CONFLICTING_INDEXES);\n }\n indexHashes[id] = index;\n }\n }\n }\n }\n }\n /**\n * Convert a given JSON value to an RDF term.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param value A JSON value.\n * @param {number} depth The depth the value is at.\n * @param {string[]} keys The path of keys.\n * @return {Promise} An RDF term array.\n */\n async valueToTerm(context, key, value, depth, keys) {\n // Skip further processing if we have an @type: @json\n if (Util.getContextValueType(context, key) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(value), this.rdfJson)];\n }\n const type = typeof value;\n switch (type) {\n case 'object':\n // Skip if we have a null or undefined object\n if (value === null || value === undefined) {\n return [];\n }\n // Special case for arrays\n if (Array.isArray(value)) {\n // We handle arrays at value level so we can emit earlier, so this is handled already when we get here.\n // Empty context-based lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if ('@list' in Util.getContextValueContainer(context, key)) {\n if (value.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n await this.validateValueIndexes(value);\n return [];\n }\n // Handle property-scoped contexts\n context = await this.getContextSelfOrPropertyScoped(context, key);\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], (await this.parsingContext.getContext(keys, 0)).getContextRaw());\n }\n // In all other cases, we have a hash\n value = await this.unaliasKeywords(value, keys, depth, context); // Un-alias potential keywords in this hash\n if ('@value' in value) {\n let val;\n let valueLanguage;\n let valueDirection;\n let valueType;\n let valueIndex; // We don't use the index, but we need to check its type for spec-compliance\n for (key in value) {\n const subValue = value[key];\n switch (key) {\n case '@value':\n val = subValue;\n break;\n case '@language':\n valueLanguage = subValue;\n break;\n case '@direction':\n valueDirection = subValue;\n break;\n case '@type':\n valueType = subValue;\n break;\n case '@index':\n valueIndex = subValue;\n break;\n case '@annotation':\n // This keyword is allowed, but is processed like normal nodes\n break;\n default:\n throw new jsonld_context_parser_1.ErrorCoded(`Unknown value entry '${key}' in @value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n }\n // Skip further processing if we have an @type: @json\n if (await this.unaliasKeyword(valueType, keys, depth, true, context) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(val), this.rdfJson)];\n }\n // Validate @value\n if (val === null) {\n return [];\n }\n if (typeof val === 'object') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@value' can not be an object, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT_VALUE);\n }\n // Validate @index\n if (this.parsingContext.validateValueIndexes && valueIndex && typeof valueIndex !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@index' must be a string, got '${JSON.stringify(valueIndex)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE);\n }\n // Validate @language and @direction\n if (valueLanguage) {\n if (typeof val !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`When an '@language' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_VALUE);\n }\n if (!jsonld_context_parser_1.ContextParser.validateLanguage(valueLanguage, this.parsingContext.strictValues, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_STRING)) {\n return [];\n }\n // Language tags are always normalized to lowercase in 1.0.\n if (this.parsingContext.normalizeLanguageTags || this.parsingContext.activeProcessingMode === 1.0) {\n valueLanguage = valueLanguage.toLowerCase();\n }\n }\n if (valueDirection) {\n if (typeof val !== 'string') {\n throw new Error(`When an '@direction' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`);\n }\n if (!jsonld_context_parser_1.ContextParser.validateDirection(valueDirection, this.parsingContext.strictValues)) {\n return [];\n }\n }\n // Check @language and @direction\n if (valueLanguage && valueDirection && this.parsingContext.rdfDirection) {\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have '@language', '@direction' and '@type' in a value: '${JSON\n .stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueLanguage) { // Check @language\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@language' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return [this.dataFactory.literal(val, valueLanguage)];\n }\n else if (valueDirection && this.parsingContext.rdfDirection) { // Check @direction\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@direction' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueType) { // Validate @type\n if (typeof valueType !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n const typeTerm = this.createVocabOrBaseTerm(context, valueType);\n if (!typeTerm) {\n throw new jsonld_context_parser_1.ErrorCoded(`Invalid '@type' value, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n if (typeTerm.termType !== 'NamedNode') {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal value type (${typeTerm.termType}): ${valueType}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n return [this.dataFactory.literal(val, typeTerm)];\n }\n // We don't pass the context, because context-based things like @language should be ignored\n return await this.valueToTerm(new jsonld_context_parser_1.JsonLdContextNormalized({}), key, val, depth, keys);\n }\n else if ('@set' in value) {\n // No other entries are allow in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n // No need to do anything here, this is handled at the deeper level.\n return [];\n }\n else if ('@list' in value) {\n // No other entries are allowed in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n const listValue = value[\"@list\"];\n // We handle lists at value level so we can emit earlier, so this is handled already when we get here.\n // Empty anonymous lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if (Array.isArray(listValue)) {\n if (listValue.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n else {\n // We only have a single list element here, so emit this directly as single element\n return await this.valueToTerm(await this.parsingContext.getContext(keys), key, listValue, depth - 1, keys.slice(0, -1));\n }\n }\n else if ('@reverse' in value && typeof value['@reverse'] === 'boolean') {\n // We handle reverse properties at value level so we can emit earlier,\n // so this is handled already when we get here.\n return [];\n }\n else if ('@graph' in Util.getContextValueContainer(await this.parsingContext.getContext(keys), key)) {\n // We are processing a graph container\n const graphContainerEntries = this.parsingContext.graphContainerTermStack[depth + 1];\n return graphContainerEntries ? Object.values(graphContainerEntries) : [this.dataFactory.blankNode()];\n }\n else if (\"@id\" in value) {\n // Use deeper context if the value node contains other properties next to @id.\n if (Object.keys(value).length > 1) {\n context = await this.parsingContext.getContext(keys, 0);\n }\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], context.getContextRaw());\n }\n if (value[\"@type\"] === '@vocab') {\n return this.nullableTermToArray(this.createVocabOrBaseTerm(context, value[\"@id\"]));\n }\n else {\n const valueId = value[\"@id\"];\n let valueTerm;\n if (typeof valueId === 'object') {\n if (this.parsingContext.rdfstar) {\n valueTerm = this.parsingContext.idStack[depth + 1][0];\n }\n else {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal @id '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_ID_VALUE);\n }\n }\n else {\n valueTerm = this.resourceToTerm(context, valueId);\n }\n return this.nullableTermToArray(valueTerm);\n }\n }\n else {\n // Only make a blank node if at least one triple was emitted at the value's level.\n if (this.parsingContext.emittedStack[depth + 1]\n || (value && typeof value === 'object' && Object.keys(value).length === 0)) {\n return (this.parsingContext.idStack[depth + 1]\n || (this.parsingContext.idStack[depth + 1] = [this.dataFactory.blankNode()]));\n }\n else {\n return [];\n }\n }\n case 'string':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, null));\n case 'boolean':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, Boolean(value).toString(), this.dataFactory.namedNode(Util.XSD_BOOLEAN)));\n case 'number':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, this.dataFactory.namedNode(value % 1 === 0 && value < 1e21 ? Util.XSD_INTEGER : Util.XSD_DOUBLE)));\n default:\n this.parsingContext.emitError(new Error(`Could not determine the RDF type of a ${type}`));\n return [];\n }\n }\n /**\n * If the context defines a property-scoped context for the given key,\n * that context will be returned.\n * Otherwise, the given context will be returned as-is.\n *\n * This should be used for valueToTerm cases that are not objects.\n * @param context A context.\n * @param key A JSON key.\n */\n async getContextSelfOrPropertyScoped(context, key) {\n const contextKeyEntry = context.getContextRaw()[key];\n if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n context = await this.parsingContext.parseContext(contextKeyEntry, context.getContextRaw(), true);\n }\n return context;\n }\n /**\n * If the given term is null, return an empty array, otherwise return an array with the single given term.\n * @param term A term.\n */\n nullableTermToArray(term) {\n return term ? [term] : [];\n }\n /**\n * Convert a given JSON key to an RDF predicate term,\n * based on @vocab.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node.\n */\n predicateToTerm(context, key) {\n const expanded = context.expandTerm(key, true, this.parsingContext.getExpandOptions());\n // Immediately return if the predicate was disabled in the context\n if (!expanded) {\n return null;\n }\n // Check if the predicate is a blank node\n if (expanded[0] === '_' && expanded[1] === ':') {\n if (this.parsingContext.produceGeneralizedRdf) {\n return this.dataFactory.blankNode(expanded.substr(2));\n }\n else {\n return null;\n }\n }\n // Check if the predicate is a valid IRI\n if (Util.isValidIri(expanded)) {\n return this.dataFactory.namedNode(expanded);\n }\n else {\n if (expanded && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid predicate IRI: ${expanded}`, jsonld_context_parser_1.ERROR_CODES.INVALID_IRI_MAPPING));\n }\n else {\n return null;\n }\n }\n return null;\n }\n /**\n * Convert a given JSON key to an RDF resource term or blank node,\n * based on @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n resourceToTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const iri = context.expandTerm(key, false, this.parsingContext.getExpandOptions());\n if (!Util.isValidIri(iri)) {\n if (iri && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new Error(`Invalid resource IRI: ${iri}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(iri);\n }\n /**\n * Convert a given JSON key to an RDF resource term.\n * It will do this based on the @vocab,\n * and fallback to @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n createVocabOrBaseTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const expandOptions = this.parsingContext.getExpandOptions();\n let expanded = context.expandTerm(key, true, expandOptions);\n if (expanded === key) {\n expanded = context.expandTerm(key, false, expandOptions);\n }\n if (!Util.isValidIri(expanded)) {\n if (expanded && this.parsingContext.strictValues && !expanded.startsWith('@')) {\n this.parsingContext.emitError(new Error(`Invalid term IRI: ${expanded}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(expanded);\n }\n /**\n * Ensure that the given value becomes a string.\n * @param {string | number} value A string or number.\n * @param {NamedNode} datatype The intended datatype.\n * @return {string} The returned string.\n */\n intToString(value, datatype) {\n if (typeof value === 'number') {\n if (Number.isFinite(value)) {\n const isInteger = value % 1 === 0;\n if (isInteger && (!datatype || datatype.value !== Util.XSD_DOUBLE)) {\n return Number(value).toString();\n }\n else {\n return value.toExponential(15).replace(/(\\d)0*e\\+?/, '$1E');\n }\n }\n else {\n return value > 0 ? 'INF' : '-INF';\n }\n }\n else {\n return value;\n }\n }\n /**\n * Convert a given JSON string value to an RDF term.\n * @param {number} depth The current stack depth.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param {string} value A JSON value.\n * @param {NamedNode} defaultDatatype The default datatype for the given value.\n * @return {RDF.Term} An RDF term or null.\n */\n stringValueToTerm(depth, context, key, value, defaultDatatype) {\n // Check the datatype from the context\n const contextType = Util.getContextValueType(context, key);\n if (contextType) {\n if (contextType === '@id') {\n if (!defaultDatatype) {\n return this.resourceToTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else if (contextType === '@vocab') {\n if (!defaultDatatype) {\n return this.createVocabOrBaseTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else {\n defaultDatatype = this.dataFactory.namedNode(contextType);\n }\n }\n // If we don't find such a datatype, check the language from the context\n if (!defaultDatatype) {\n const contextLanguage = Util.getContextValueLanguage(context, key);\n const contextDirection = Util.getContextValueDirection(context, key);\n if (contextDirection && this.parsingContext.rdfDirection) {\n return this.createLanguageDirectionLiteral(depth, this.intToString(value, defaultDatatype), contextLanguage, contextDirection);\n }\n else {\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), contextLanguage);\n }\n }\n // If all else fails, make a literal based on the default content type\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), defaultDatatype);\n }\n /**\n * Create a literal for the given value with the given language and direction.\n * Auxiliary quads may be emitted.\n * @param {number} depth The current stack depth.\n * @param {string} value A string value.\n * @param {string} language A language tag.\n * @param {string} direction A direction.\n * @return {Term} An RDF term.\n */\n createLanguageDirectionLiteral(depth, value, language, direction) {\n if (this.parsingContext.rdfDirection === 'i18n-datatype') {\n // Create a datatyped literal, by encoding the language and direction into https://www.w3.org/ns/i18n#.\n if (!language) {\n language = '';\n }\n return this.dataFactory.literal(value, this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${language}_${direction}`));\n }\n else {\n // Reify the literal.\n const valueNode = this.dataFactory.blankNode();\n const graph = this.getDefaultGraph();\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'value'), this.dataFactory.literal(value), graph));\n if (language) {\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'language'), this.dataFactory.literal(language), graph));\n }\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'direction'), this.dataFactory.literal(direction), graph));\n return valueNode;\n }\n }\n /**\n * Stringify the given JSON object to a canonical JSON string.\n * @param value Any valid JSON value.\n * @return {string} A canonical JSON string.\n */\n valueToJsonString(value) {\n return canonicalizeJson(value);\n }\n /**\n * If the key is not a keyword, try to check if it is an alias for a keyword,\n * and if so, un-alias it.\n * @param {string} key A key, can be falsy.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth to\n * @param {boolean} disableCache If the cache should be disabled\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise} A promise resolving to the key itself, or another key.\n */\n async unaliasKeyword(key, keys, depth, disableCache, context) {\n // Numbers can not be an alias\n if (Number.isInteger(key)) {\n return key;\n }\n // Try to grab from cache if it was already un-aliased before.\n if (!disableCache) {\n const cachedUnaliasedKeyword = this.parsingContext.unaliasedKeywordCacheStack[depth];\n if (cachedUnaliasedKeyword) {\n return cachedUnaliasedKeyword;\n }\n }\n if (!jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n context = context || await this.parsingContext.getContext(keys);\n let unliased = context.getContextRaw()[key];\n if (unliased && typeof unliased === 'object') {\n unliased = unliased['@id'];\n }\n if (jsonld_context_parser_1.Util.isValidKeyword(unliased)) {\n key = unliased;\n }\n }\n return disableCache ? key : (this.parsingContext.unaliasedKeywordCacheStack[depth] = key);\n }\n /**\n * Unalias the keyword of the parent.\n * This adds a safety check if no parent exist.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @return {Promise} A promise resolving to the parent key, or another key.\n */\n async unaliasKeywordParent(keys, depth) {\n return await this.unaliasKeyword(depth > 0 && keys[depth - 1], keys, depth - 1);\n }\n /**\n * Un-alias all keywords in the given hash.\n * @param {{[p: string]: any}} hash A hash object.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth.\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise<{[p: string]: any}>} A promise resolving to the new hash.\n */\n async unaliasKeywords(hash, keys, depth, context) {\n const newHash = {};\n for (const key in hash) {\n newHash[await this.unaliasKeyword(key, keys, depth + 1, true, context)] = hash[key];\n }\n return newHash;\n }\n /**\n * Check if we are processing a literal (including JSON literals) at the given depth.\n * This will also check higher levels,\n * because if a parent is a literal,\n * then the deeper levels are definitely a literal as well.\n * @param {any[]} keys The keys.\n * @param {number} depth The depth.\n * @return {boolean} If we are processing a literal.\n */\n async isLiteral(keys, depth) {\n for (let i = depth; i >= 0; i--) {\n if (await this.unaliasKeyword(keys[i], keys, i) === '@annotation') {\n // Literals may have annotations, which require processing of inner nodes.\n return false;\n }\n if (this.parsingContext.literalStack[i] || this.parsingContext.jsonLiteralStack[i]) {\n return true;\n }\n }\n return false;\n }\n /**\n * Check how many parents should be skipped for checking the @graph for the given node.\n *\n * @param {number} depth The depth of the node.\n * @param {any[]} keys An array of keys.\n * @return {number} The graph depth offset.\n */\n async getDepthOffsetGraph(depth, keys) {\n for (let i = depth - 1; i > 0; i--) {\n if (await this.unaliasKeyword(keys[i], keys, i) === '@graph') {\n // Skip further processing if we are already in an @graph-@id or @graph-@index container\n const containers = (await EntryHandlerContainer_1.EntryHandlerContainer.getContainerHandler(this.parsingContext, keys, i)).containers;\n if (EntryHandlerContainer_1.EntryHandlerContainer.isComplexGraphContainer(containers)) {\n return -1;\n }\n return depth - i - 1;\n }\n }\n return -1;\n }\n /**\n * Check if the given subject is of a valid type.\n * This should be called when applying @reverse'd properties.\n * @param {Term} subject A subject.\n */\n validateReverseSubject(subject) {\n if (subject.termType === 'Literal') {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal literal in subject position: ${subject.value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n /**\n * Get the default graph.\n * @return {Term} An RDF term.\n */\n getDefaultGraph() {\n return this.parsingContext.defaultGraph || this.dataFactory.defaultGraph();\n }\n /**\n * Get the current graph, while taking into account a graph that can be defined via @container: @graph.\n * If not within a graph container, the default graph will be returned.\n * @param keys The current keys.\n * @param depth The current depth.\n */\n async getGraphContainerValue(keys, depth) {\n // Default to default graph\n let graph = this.getDefaultGraph();\n // Check if we are in an @container: @graph.\n const { containers, depth: depthContainer } = await EntryHandlerContainer_1.EntryHandlerContainer\n .getContainerHandler(this.parsingContext, keys, depth);\n if ('@graph' in containers) {\n // Get the graph from the stack.\n const graphContainerIndex = EntryHandlerContainer_1.EntryHandlerContainer.getContainerGraphIndex(containers, depthContainer, keys);\n const entry = this.parsingContext.graphContainerTermStack[depthContainer];\n graph = entry ? entry[graphContainerIndex] : null;\n // Set the graph in the stack if none has been set yet.\n if (!graph) {\n let graphId = null;\n if ('@id' in containers) {\n const keyUnaliased = await this.getContainerKey(keys[depthContainer], keys, depthContainer);\n if (keyUnaliased !== null) {\n graphId = await this.resourceToTerm(await this.parsingContext.getContext(keys), keyUnaliased);\n }\n }\n if (!graphId) {\n graphId = this.dataFactory.blankNode();\n }\n if (!this.parsingContext.graphContainerTermStack[depthContainer]) {\n this.parsingContext.graphContainerTermStack[depthContainer] = {};\n }\n graph = this.parsingContext.graphContainerTermStack[depthContainer][graphContainerIndex] = graphId;\n }\n }\n return graph;\n }\n /**\n * Get the properties depth for retrieving properties.\n *\n * Typically, the properties depth will be identical to the given depth.\n *\n * The following exceptions apply:\n * * When the parent is @reverse, the depth is decremented by one.\n * * When @nest parents are found, the depth is decremented by the number of @nest parents.\n * If in combination with the exceptions above an intermediary array is discovered,\n * the depth is also decremented by this number of arrays.\n *\n * @param keys The current key chain.\n * @param depth The current depth.\n */\n async getPropertiesDepth(keys, depth) {\n let lastValidDepth = depth;\n for (let i = depth - 1; i > 0; i--) {\n if (typeof keys[i] !== 'number') { // Skip array keys\n const parentKey = await this.unaliasKeyword(keys[i], keys, i);\n if (parentKey === '@reverse') {\n return i;\n }\n else if (parentKey === '@nest') {\n lastValidDepth = i;\n }\n else {\n return lastValidDepth;\n }\n }\n }\n return lastValidDepth;\n }\n /**\n * Get the key for the current container entry.\n * @param key A key, can be falsy.\n * @param keys The key chain.\n * @param depth The current depth to get the key from.\n * @return Promise resolving to the key.\n * Null will be returned for @none entries, with aliasing taken into account.\n */\n async getContainerKey(key, keys, depth) {\n const keyUnaliased = await this.unaliasKeyword(key, keys, depth);\n return keyUnaliased === '@none' ? null : keyUnaliased;\n }\n /**\n * Check if no reverse properties are present in embedded nodes.\n * @param key The current key.\n * @param reverse If a reverse property is active.\n * @param isEmbedded If we're in an embedded node.\n */\n validateReverseInEmbeddedNode(key, reverse, isEmbedded) {\n if (isEmbedded && reverse && !this.parsingContext.rdfstarReverseInEmbedded) {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal reverse property in embedded node in ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE);\n }\n }\n /**\n * Emit a quad, with checks.\n * @param depth The current depth.\n * @param subject S\n * @param predicate P\n * @param object O\n * @param graph G\n * @param reverse If a reverse property is active.\n * @param isEmbedded If we're in an embedded node.\n */\n emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded) {\n // Create a quad\n let quad;\n if (reverse) {\n this.validateReverseSubject(object);\n quad = this.dataFactory.quad(object, predicate, subject, graph);\n }\n else {\n quad = this.dataFactory.quad(subject, predicate, object, graph);\n }\n // Emit the quad, unless it was created in an embedded node\n if (isEmbedded) {\n // Embedded nodes don't inherit the active graph\n if (quad.graph.termType !== 'DefaultGraph') {\n quad = this.dataFactory.quad(quad.subject, quad.predicate, quad.object);\n }\n // Multiple embedded nodes are not allowed\n if (this.parsingContext.idStack[depth - 1]) {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal multiple properties in an embedded node`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE);\n }\n this.parsingContext.idStack[depth - 1] = [quad];\n }\n else {\n this.parsingContext.emitQuad(depth, quad);\n }\n // Flush annotations\n const annotationsBuffer = this.parsingContext.annotationsBuffer[depth];\n if (annotationsBuffer) {\n for (const annotation of annotationsBuffer) {\n this.emitAnnotation(depth, quad, annotation);\n }\n delete this.parsingContext.annotationsBuffer[depth];\n }\n }\n // This is a separate function to enable recursion\n emitAnnotation(depth, quad, annotation) {\n // Construct annotation quad\n let annotationQuad;\n if (annotation.reverse) {\n this.validateReverseSubject(annotation.object);\n annotationQuad = this.dataFactory.quad(annotation.object, annotation.predicate, quad);\n }\n else {\n annotationQuad = this.dataFactory.quad(quad, annotation.predicate, annotation.object);\n }\n // Emit annotated quad\n this.parsingContext.emitQuad(depth, annotationQuad);\n // Also emit nested annotations\n for (const nestedAnnotation of annotation.nestedAnnotations) {\n this.emitAnnotation(depth, annotationQuad, nestedAnnotation);\n }\n }\n}\nexports.Util = Util;\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.XSD_BOOLEAN = Util.XSD + 'boolean';\nUtil.XSD_INTEGER = Util.XSD + 'integer';\nUtil.XSD_DOUBLE = Util.XSD + 'double';\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerIdentifier = void 0;\n/**\n * Container handler for @id.\n *\n * It assumes that the current key is the identifier of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerIdentifier {\n canCombineWithGraph() {\n return true;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n let id;\n // First check if the child node already has a defined id.\n if (parsingContext.emittedStack[depth + 1] && parsingContext.idStack[depth + 1]) {\n // Use the existing identifier\n id = parsingContext.idStack[depth + 1][0];\n }\n else {\n // Create the identifier\n const keyUnaliased = await util.getContainerKey(keys[depth], keys, depth);\n const maybeId = keyUnaliased !== null\n ? await util.resourceToTerm(await parsingContext.getContext(keys), keys[depth])\n : util.dataFactory.blankNode();\n // Do nothing if the id is invalid\n if (!maybeId) {\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n return;\n }\n id = maybeId;\n // Insert the id into the stack so that buffered children can make us of it.\n parsingContext.idStack[depth + 1] = [id];\n }\n // Insert the id into the stack so that parents can make use of it.\n // Insert it as an array because multiple id container entries may exist\n let ids = parsingContext.idStack[depth];\n if (!ids) {\n ids = parsingContext.idStack[depth] = [];\n }\n // Only insert the term if it does not exist yet in the array.\n if (!ids.some((term) => term.equals(id))) {\n ids.push(id);\n }\n // Flush any pending flush buffers\n if (!await parsingContext.handlePendingContainerFlushBuffers()) {\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n }\n }\n}\nexports.ContainerHandlerIdentifier = ContainerHandlerIdentifier;\n//# sourceMappingURL=ContainerHandlerIdentifier.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerIndex = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerPredicate_1 = require(\"../entryhandler/EntryHandlerPredicate\");\nconst Util_1 = require(\"../Util\");\n/**\n * Container handler for @index.\n *\n * This will ignore the current key and add this entry to the parent node.\n */\nclass ContainerHandlerIndex {\n canCombineWithGraph() {\n return true;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n if (!Array.isArray(value)) {\n const graphContainer = '@graph' in containers;\n // Check if the container is a property-based container by checking if there is a valid @index.\n const context = await parsingContext.getContext(keys);\n const indexKey = keys[depth - 1];\n const indexPropertyRaw = Util_1.Util.getContextValueIndex(context, indexKey);\n if (indexPropertyRaw) {\n // Validate the @index value\n if (jsonld_context_parser_1.Util.isPotentialKeyword(indexPropertyRaw)) {\n throw new jsonld_context_parser_1.ErrorCoded(`Keywords can not be used as @index value, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n if (typeof indexPropertyRaw !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`@index values must be strings, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n // When @index is used, values must be node values, unless @type: @id is defined in the context\n if (typeof value !== 'object') {\n // Error if we don't have @type: @id\n if (Util_1.Util.getContextValueType(context, indexKey) !== '@id') {\n throw new jsonld_context_parser_1.ErrorCoded(`Property-based index containers require nodes as values or strings with @type: @id, but got: ${value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n // Add an @id to the stack, so our expanded @index value can make use of it\n const id = util.resourceToTerm(context, value);\n if (id) {\n parsingContext.idStack[depth + 1] = [id];\n }\n }\n // Expand the @index value\n const indexProperty = util.createVocabOrBaseTerm(context, indexPropertyRaw);\n if (indexProperty) {\n const indexValues = await util.valueToTerm(context, indexPropertyRaw, await util.getContainerKey(keys[depth], keys, depth), depth, keys);\n if (graphContainer) {\n // When we're in a graph container, attach the index to the graph identifier\n const graphId = await util.getGraphContainerValue(keys, depth + 1);\n for (const indexValue of indexValues) {\n parsingContext.emitQuad(depth, util.dataFactory.quad(graphId, indexProperty, indexValue, util.getDefaultGraph()));\n }\n }\n else {\n // Otherwise, attach the index to the node identifier\n for (const indexValue of indexValues) {\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, indexProperty, indexValue, false, false, false);\n }\n }\n }\n }\n const depthOffset = graphContainer ? 2 : 1;\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - depthOffset), value, depth - depthOffset, true);\n // Flush any pending flush buffers\n await parsingContext.handlePendingContainerFlushBuffers();\n }\n parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n }\n}\nexports.ContainerHandlerIndex = ContainerHandlerIndex;\n//# sourceMappingURL=ContainerHandlerIndex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerLanguage = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Container handler for @language.\n *\n * It assumes that the current key is the language of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerLanguage {\n canCombineWithGraph() {\n return false;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n const language = await util.getContainerKey(keys[depth], keys, depth);\n if (Array.isArray(value)) {\n // No type-checking needed, will be handled on each value when this handler is called recursively.\n value = value.map((subValue) => ({ '@value': subValue, '@language': language }));\n }\n else {\n if (typeof value !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`Got invalid language map value, got '${JSON.stringify(value)}', but expected string`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_MAP_VALUE);\n }\n value = { '@value': value, '@language': language };\n }\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n }\n}\nexports.ContainerHandlerLanguage = ContainerHandlerLanguage;\n//# sourceMappingURL=ContainerHandlerLanguage.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerType = void 0;\nconst EntryHandlerPredicate_1 = require(\"../entryhandler/EntryHandlerPredicate\");\nconst Util_1 = require(\"../Util\");\n/**\n * Container handler for @type.\n *\n * This will add this entry to the parent node, and use the current key as an rdf:type value.\n */\nclass ContainerHandlerType {\n canCombineWithGraph() {\n return false;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n if (!Array.isArray(value)) {\n if (typeof value === 'string') {\n // Determine the @type of the container\n const context = await parsingContext.getContext(keys);\n const containerTypeType = Util_1.Util.getContextValueType(context, keys[depth - 1]);\n // String values refer to node references\n const id = containerTypeType === '@vocab'\n ? await util.createVocabOrBaseTerm(context, value)\n : await util.resourceToTerm(context, value);\n if (id) {\n // Handle the value of this node as @id, which will also cause the predicate from above to be emitted.\n const subValue = { '@id': id.termType === 'NamedNode' ? id.value : value };\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), subValue, depth - 1, true);\n // Set the id in the stack so it can be used for the rdf:type handling later on\n parsingContext.idStack[depth + 1] = [id];\n }\n }\n else {\n // Other values are handled by handling them as a proper job\n // Check needed for cases where entries don't have an explicit @id\n const entryHasIdentifier = !!parsingContext.idStack[depth + 1];\n // Handle the value of this node, which will also cause the predicate from above to be emitted.\n if (!entryHasIdentifier) {\n delete parsingContext.idStack[depth]; // Force new (blank node) identifier\n }\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n if (!entryHasIdentifier) {\n parsingContext.idStack[depth + 1] = parsingContext.idStack[depth]; // Copy the id to the child node, for @type\n }\n }\n // Identify the type to emit.\n const keyOriginal = await util.getContainerKey(keys[depth], keys, depth);\n const type = keyOriginal !== null\n ? util.createVocabOrBaseTerm(await parsingContext.getContext(keys), keyOriginal)\n : null;\n if (type) {\n // Push the type to the stack using the rdf:type predicate\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, util.rdfType, type, false, false, false);\n }\n // Flush any pending flush buffers\n await parsingContext.handlePendingContainerFlushBuffers();\n }\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n }\n}\nexports.ContainerHandlerType = ContainerHandlerType;\n//# sourceMappingURL=ContainerHandlerType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerArrayValue = void 0;\nconst Util_1 = require(\"../Util\");\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Handles values that are part of an array.\n */\nclass EntryHandlerArrayValue {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return this.test(parsingContext, util, null, keys, depth);\n }\n async test(parsingContext, util, key, keys, depth) {\n return typeof keys[depth] === 'number';\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n let parentKey = await util.unaliasKeywordParent(keys, depth);\n // Check if we have an anonymous list\n if (parentKey === '@list') {\n // Our value is part of an array\n // Determine the list root key\n let listRootKey = null;\n let listRootDepth = 0;\n for (let i = depth - 2; i > 0; i--) {\n const keyOption = keys[i];\n if (typeof keyOption === 'string' || typeof keyOption === 'number') {\n listRootDepth = i;\n listRootKey = keyOption;\n break;\n }\n }\n if (listRootKey !== null) {\n // Emit the given objects as list elements\n const values = await util.valueToTerm(await parsingContext.getContext(keys), listRootKey, value, depth, keys);\n for (const object of values) {\n await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n }\n // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n if (values.length === 0) {\n await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n }\n }\n }\n else if (parentKey === '@set') {\n // Our value is part of a set, so we just add it to the parent-parent\n await parsingContext.newOnValueJob(keys.slice(0, -2), value, depth - 2, false);\n }\n else if (parentKey !== undefined && parentKey !== '@type') {\n // Buffer our value using the parent key as predicate\n // Determine the first parent key that is *not* an array key\n // This is needed in case we have an @list container with nested arrays,\n // where each of them should produce nested RDF lists.\n for (let i = depth - 1; i > 0; i--) {\n if (typeof keys[i] !== 'number') {\n parentKey = await util.unaliasKeyword(keys[i], keys, i);\n break;\n }\n }\n // Check if the predicate is marked as an @list in the context\n const parentContext = await parsingContext.getContext(keys.slice(0, -1));\n if ('@list' in Util_1.Util.getContextValueContainer(parentContext, parentKey)) {\n // Our value is part of an array\n // Emit the given objects as list elements\n parsingContext.emittedStack[depth + 1] = true; // Ensure the creation of bnodes for empty nodes\n const values = await util.valueToTerm(await parsingContext.getContext(keys), parentKey, value, depth, keys);\n for (const object of values) {\n await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, -1), depth - 1);\n }\n // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n if (values.length === 0) {\n await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, -1), depth - 1);\n }\n }\n else {\n // Copy the stack values up one level so that the next job can access them.\n parsingContext.shiftStack(depth, 1);\n // Execute the job one level higher\n await parsingContext.newOnValueJob(keys.slice(0, -1), value, depth - 1, false);\n // Remove any defined contexts at this level to avoid it to propagate to the next array element.\n parsingContext.contextTree.removeContext(keys.slice(0, -1));\n }\n }\n }\n async handleListElement(parsingContext, util, value, valueOriginal, depth, listRootKeys, listRootDepth) {\n // Buffer our value as an RDF list using the listRootKey as predicate\n let listPointer = parsingContext.listPointerStack[depth];\n if (valueOriginal !== null && (await util.unaliasKeywords(valueOriginal, listRootKeys, depth))['@value'] !== null) {\n if (!listPointer || !listPointer.value) {\n const linkTerm = util.dataFactory.blankNode();\n listPointer = { value: linkTerm, listRootDepth, listId: linkTerm };\n }\n else {\n // rdf:rest links are always emitted before the next element,\n // as the blank node identifier is only created at that point.\n // Because of this reason, the final rdf:nil is emitted when the stack depth is decreased.\n const newLinkTerm = util.dataFactory.blankNode();\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfRest, newLinkTerm, util.getDefaultGraph()));\n // Update the list pointer for the next element\n listPointer.value = newLinkTerm;\n }\n // Emit a list element for the current value\n // Omit rdf:first if the value is invalid\n if (value) {\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfFirst, value, util.getDefaultGraph()));\n }\n }\n else {\n // A falsy list element if found.\n // Mark it as an rdf:nil list until another valid list element comes in\n if (!listPointer) {\n listPointer = { listRootDepth, listId: util.rdfNil };\n }\n }\n parsingContext.listPointerStack[depth] = listPointer;\n // Error if an annotation was defined\n if (parsingContext.rdfstar && parsingContext.annotationsBuffer[depth]) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal annotation inside a list`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n}\nexports.EntryHandlerArrayValue = EntryHandlerArrayValue;\n//# sourceMappingURL=EntryHandlerArrayValue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerContainer = void 0;\nconst ContainerHandlerIdentifier_1 = require(\"../containerhandler/ContainerHandlerIdentifier\");\nconst ContainerHandlerIndex_1 = require(\"../containerhandler/ContainerHandlerIndex\");\nconst ContainerHandlerLanguage_1 = require(\"../containerhandler/ContainerHandlerLanguage\");\nconst ContainerHandlerType_1 = require(\"../containerhandler/ContainerHandlerType\");\nconst Util_1 = require(\"../Util\");\n/**\n * Handles values that are part of a container type (like @index),\n * as specified by {@link IContainerHandler}.\n */\nclass EntryHandlerContainer {\n /**\n * Check fit the given container is a simple @graph container.\n * Concretely, it will check if no @index or @id is active as well.\n * @param containers A container hash.\n */\n static isSimpleGraphContainer(containers) {\n return '@graph' in containers\n && (('@set' in containers && Object.keys(containers).length === 2) || Object.keys(containers).length === 1);\n }\n /**\n * Check fit the given container is a complex @graph container.\n * Concretely, it will check if @index or @id is active as well next to @graph.\n * @param containers A container hash.\n */\n static isComplexGraphContainer(containers) {\n return '@graph' in containers\n && (('@set' in containers && Object.keys(containers).length > 2)\n || (!('@set' in containers) && Object.keys(containers).length > 1));\n }\n /**\n * Create an graph container index that can be used for identifying a graph term inside the graphContainerTermStack.\n * @param containers The applicable containers.\n * @param depth The container depth.\n * @param keys The array of keys.\n * @return The graph index.\n */\n static getContainerGraphIndex(containers, depth, keys) {\n let isSimpleGraphContainer = EntryHandlerContainer.isSimpleGraphContainer(containers);\n let index = '';\n for (let i = depth; i < keys.length; i++) {\n if (!isSimpleGraphContainer || typeof keys[i] === 'number') {\n index += ':' + keys[i];\n }\n // Only allow a second 'real' key if in a non-simple graph container.\n if (!isSimpleGraphContainer && typeof keys[i] !== 'number') {\n isSimpleGraphContainer = true;\n }\n }\n return index;\n }\n /**\n * Return the applicable container type at the given depth.\n *\n * This will ignore any arrays in the key chain.\n *\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {any[]} keys The array of keys.\n * @param {number} depth The current depth.\n * @return {Promise<{ containers: {[typeName: string]: boolean}, depth: number, fallback: boolean }>}\n * All applicable containers for the given depth,\n * the `depth` of the container root (can change when arrays are in the key chain),\n * and the `fallback` flag that indicates if the default container type was returned\n * (i.e., no dedicated container type is defined).\n */\n static async getContainerHandler(parsingContext, keys, depth) {\n const fallback = {\n containers: { '@set': true },\n depth,\n fallback: true,\n };\n // A flag that is enabled when @graph container should be tested in next iteration\n let checkGraphContainer = false;\n // Iterate from deeper to higher\n const context = await parsingContext.getContext(keys, 2);\n for (let i = depth - 1; i >= 0; i--) {\n if (typeof keys[i] !== 'number') { // Skip array keys\n // @graph containers without any other types are one level less deep, and require special handling\n const containersSelf = Util_1.Util.getContextValue(context, '@container', keys[i], false);\n if (containersSelf && EntryHandlerContainer.isSimpleGraphContainer(containersSelf)) {\n return {\n containers: containersSelf,\n depth: i + 1,\n fallback: false,\n };\n }\n const containersParent = Util_1.Util.getContextValue(context, '@container', keys[i - 1], false);\n if (!containersParent) { // If we have the fallback container value\n if (checkGraphContainer) {\n // Return false if we were already expecting a @graph-@id of @graph-@index container\n return fallback;\n }\n // Check parent-parent, we may be in a @graph-@id of @graph-@index container, which have two levels\n checkGraphContainer = true;\n }\n else {\n // We had an invalid container next iteration, so we now have to check if we were in an @graph container\n const graphContainer = '@graph' in containersParent;\n // We're in a regular container\n for (const containerHandleName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n if (containersParent[containerHandleName]) {\n if (graphContainer) {\n // Only accept graph containers if their combined handlers can handle them.\n if (EntryHandlerContainer.CONTAINER_HANDLERS[containerHandleName].canCombineWithGraph()) {\n return {\n containers: containersParent,\n depth: i,\n fallback: false,\n };\n }\n else {\n return fallback;\n }\n }\n else {\n // Only accept if we were not expecting a @graph-@id of @graph-@index container\n if (checkGraphContainer) {\n return fallback;\n }\n else {\n return {\n containers: containersParent,\n depth: i,\n fallback: false,\n };\n }\n }\n }\n }\n // Fail if no valid container handlers were found\n return fallback;\n }\n }\n }\n return fallback;\n }\n /**\n * Check if we are handling a value at the given depth\n * that is part of something that should be handled as a container,\n * AND if this container should be buffered, so that it can be handled by a dedicated container handler.\n *\n * For instance, any container with @graph will NOT be buffered.\n *\n * This will ignore any arrays in the key chain.\n *\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {any[]} keys The array of keys.\n * @param {number} depth The current depth.\n * @return {Promise} If we are in the scope of a container handler.\n */\n static async isBufferableContainerHandler(parsingContext, keys, depth) {\n const handler = await EntryHandlerContainer.getContainerHandler(parsingContext, keys, depth);\n return !handler.fallback && !('@graph' in handler.containers);\n }\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return !!await this.test(parsingContext, util, null, keys, depth);\n }\n async test(parsingContext, util, key, keys, depth) {\n const containers = Util_1.Util.getContextValueContainer(await parsingContext.getContext(keys, 2), keys[depth - 1]);\n for (const containerName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n if (containers[containerName]) {\n return {\n containers,\n handler: EntryHandlerContainer.CONTAINER_HANDLERS[containerName],\n };\n }\n }\n return null;\n }\n async handle(parsingContext, util, key, keys, value, depth, testResult) {\n return testResult.handler.handle(testResult.containers, parsingContext, util, keys, value, depth);\n }\n}\nexports.EntryHandlerContainer = EntryHandlerContainer;\nEntryHandlerContainer.CONTAINER_HANDLERS = {\n '@id': new ContainerHandlerIdentifier_1.ContainerHandlerIdentifier(),\n '@index': new ContainerHandlerIndex_1.ContainerHandlerIndex(),\n '@language': new ContainerHandlerLanguage_1.ContainerHandlerLanguage(),\n '@type': new ContainerHandlerType_1.ContainerHandlerType(),\n};\n//# sourceMappingURL=EntryHandlerContainer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerInvalidFallback = void 0;\n/**\n * A catch-all for properties, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerInvalidFallback {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return true;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerInvalidFallback = EntryHandlerInvalidFallback;\n//# sourceMappingURL=EntryHandlerInvalidFallback.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerPredicate = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst Util_1 = require(\"../Util\");\n/**\n * Interprets keys as predicates.\n * The most common case in JSON-LD processing.\n */\nclass EntryHandlerPredicate {\n /**\n * Handle the given predicate-object by either emitting it,\n * or by placing it in the appropriate stack for later emission when no @graph and/or @id has been defined.\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {Util} util A utility instance.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @param {Term} predicate The predicate.\n * @param {Term} object The object.\n * @param {boolean} reverse If the property is reversed.\n * @param {boolean} isEmbedded If the property exists in an embedded node as direct child.\n * @param {boolean} isAnnotation If the property exists in an annotation object.\n * @return {Promise} A promise resolving when handling is done.\n */\n static async handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse, isEmbedded, isAnnotation) {\n const depthProperties = await util.getPropertiesDepth(keys, depth);\n const depthOffsetGraph = await util.getDepthOffsetGraph(depth, keys);\n const depthPropertiesGraph = depth - depthOffsetGraph;\n const subjects = parsingContext.idStack[depthProperties];\n if (subjects && !isAnnotation) {\n // Emit directly if the @id was already defined\n for (const subject of subjects) {\n // Check if we're in a @graph context\n const atGraph = depthOffsetGraph >= 0;\n if (atGraph) {\n const graphs = parsingContext.idStack[depthPropertiesGraph - 1];\n if (graphs) {\n for (const graph of graphs) {\n // Emit our quad if graph @id is known\n util.emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded);\n }\n }\n else {\n // Buffer our triple if graph @id is not known yet.\n if (reverse) {\n util.validateReverseSubject(object);\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1).push({ subject: object, predicate, object: subject, isEmbedded });\n }\n else {\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1)\n .push({ subject, predicate, object, isEmbedded });\n }\n }\n }\n else {\n // Emit if no @graph was applicable\n const graph = await util.getGraphContainerValue(keys, depthProperties);\n util.emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded);\n }\n }\n }\n else {\n // Buffer until our @id becomes known, or we go up the stack\n if (reverse) {\n util.validateReverseSubject(object);\n }\n // Either push to the annotations or the actual value buffer\n if (isAnnotation) {\n // Only add to buffer if rdfstar is enabled\n if (parsingContext.rdfstar) {\n // Error if an @id was defined\n if (parsingContext.idStack[depth]) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @id inside an annotation: ${parsingContext.idStack[depth][0].value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Error if we're in an embedded node\n for (let i = 0; i < depth; i++) {\n if (await util.unaliasKeyword(keys[i], keys, i) === '@id') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal annotation inside an embedded node`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n // Store new annotation in the buffer\n const annotationsBuffer = parsingContext.getAnnotationsBufferSafe(depthProperties);\n const newAnnotation = { predicate, object, reverse, nestedAnnotations: [], depth: depthProperties };\n annotationsBuffer.push(newAnnotation);\n // Check in the buffer if any annotations were defined at a deeper depth,\n // if so, they are considered nested annotations.\n for (let i = annotationsBuffer.length - 2; i >= 0; i--) {\n // We iterate in reverse order, to enable easy item removal from the back.\n const existingAnnotation = annotationsBuffer[i];\n if (existingAnnotation.depth > depthProperties) {\n newAnnotation.nestedAnnotations.push(existingAnnotation);\n annotationsBuffer.splice(i, 1);\n }\n }\n }\n }\n else {\n parsingContext.getUnidentifiedValueBufferSafe(depthProperties).push({ predicate, object, reverse, isEmbedded });\n }\n }\n }\n isPropertyHandler() {\n return true;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n const key = keys[depth];\n if (key) {\n const context = await parsingContext.getContext(keys);\n if (!parsingContext.jsonLiteralStack[depth] && await util.predicateToTerm(context, keys[depth])) {\n // If this valid predicate is of type @json, mark it so in the stack so that no deeper handling of nodes occurs.\n if (Util_1.Util.getContextValueType(context, key) === '@json') {\n parsingContext.jsonLiteralStack[depth + 1] = true;\n }\n return true;\n }\n }\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return keys[depth];\n }\n async handle(parsingContext, util, key, keys, value, depth, testResult) {\n const keyOriginal = keys[depth];\n const context = await parsingContext.getContext(keys);\n const predicate = await util.predicateToTerm(context, key);\n if (predicate) {\n const objects = await util.valueToTerm(context, key, value, depth, keys);\n if (objects.length) {\n for (let object of objects) {\n // Based on parent key, check if reverse, embedded, and annotation.\n let parentKey = await util.unaliasKeywordParent(keys, depth);\n const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, parentKey);\n let parentDepthOffset = 0;\n while (parentKey === '@reverse' || typeof parentKey === 'number') {\n // Check parent of parent when checking while we're in an array or in @reverse\n if (typeof parentKey === 'number') {\n parentDepthOffset++;\n }\n else {\n depth--;\n }\n parentKey = await util.unaliasKeywordParent(keys, depth - parentDepthOffset);\n }\n const isEmbedded = Util_1.Util.isPropertyInEmbeddedNode(parentKey);\n util.validateReverseInEmbeddedNode(key, reverse, isEmbedded);\n const isAnnotation = Util_1.Util.isPropertyInAnnotationObject(parentKey);\n if (value) {\n // Special case if our term was defined as an @list, but does not occur in an array,\n // In that case we just emit it as an RDF list with a single element.\n const listValueContainer = '@list' in Util_1.Util.getContextValueContainer(context, key);\n if (listValueContainer || value['@list']) {\n if (((listValueContainer && !Array.isArray(value) && !value['@list'])\n || (value['@list'] && !Array.isArray(value['@list'])))\n && object !== util.rdfNil) {\n const listPointer = util.dataFactory.blankNode();\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfRest, util.rdfNil, util.getDefaultGraph()));\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfFirst, object, util.getDefaultGraph()));\n object = listPointer;\n }\n // Lists are not allowed in @reverse'd properties\n if (reverse && !parsingContext.allowSubjectList) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal list value in subject position at ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n }\n await EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse, isEmbedded, isAnnotation);\n }\n }\n }\n }\n}\nexports.EntryHandlerPredicate = EntryHandlerPredicate;\n//# sourceMappingURL=EntryHandlerPredicate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeyword = void 0;\n/**\n * An abstract keyword entry handler.\n */\nclass EntryHandlerKeyword {\n constructor(keyword) {\n this.keyword = keyword;\n }\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return key === this.keyword;\n }\n}\nexports.EntryHandlerKeyword = EntryHandlerKeyword;\n//# sourceMappingURL=EntryHandlerKeyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordAnnotation = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Handles @annotation entries.\n */\nclass EntryHandlerKeywordAnnotation extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@annotation');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // Validate value\n if (typeof value === 'string' || (typeof value === 'object' && value['@value'])) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal annotation value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Rest of the processing is done as regular nodes\n }\n}\nexports.EntryHandlerKeywordAnnotation = EntryHandlerKeywordAnnotation;\n//# sourceMappingURL=EntryHandlerKeywordAnnotation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordContext = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @context entries.\n */\nclass EntryHandlerKeywordContext extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@context');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // Error if an out-of-order context was found when support is not enabled.\n if (parsingContext.streamingProfile\n && (parsingContext.processingStack[depth]\n || parsingContext.processingType[depth]\n || parsingContext.idStack[depth] !== undefined)) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order context, while streaming is enabled.' +\n '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n }\n // Find the parent context to inherit from.\n // We actually request a context for the current depth (with fallback to parent)\n // because we want to take into account any property-scoped contexts that are defined for this depth.\n const parentContext = parsingContext.getContext(keys);\n // Set the context for this scope\n const context = parsingContext.parseContext(value, (await parentContext).getContextRaw());\n parsingContext.contextTree.setContext(keys.slice(0, -1), context);\n parsingContext.emitContext(value);\n await parsingContext.validateContext(await context);\n }\n}\nexports.EntryHandlerKeywordContext = EntryHandlerKeywordContext;\n//# sourceMappingURL=EntryHandlerKeywordContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordGraph = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordGraph extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@graph');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // The current identifier identifies a graph for the deeper level.\n parsingContext.graphStack[depth + 1] = true;\n }\n}\nexports.EntryHandlerKeywordGraph = EntryHandlerKeywordGraph;\n//# sourceMappingURL=EntryHandlerKeywordGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordId = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @id entries.\n */\nclass EntryHandlerKeywordId extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@id');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'string') {\n // JSON-LD-star allows @id object values\n if (parsingContext.rdfstar && typeof value === 'object') {\n const valueKeys = Object.keys(value);\n if (valueKeys.length === 1 && valueKeys[0] === '@id') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid embedded node without property with @id ${value['@id']}`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE));\n }\n }\n else {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @id '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_ID_VALUE));\n }\n return;\n }\n // Determine the canonical place for this id.\n // For example, @nest parents should be ignored.\n const depthProperties = await util.getPropertiesDepth(keys, depth);\n // Error if an @id for this node already existed.\n if (parsingContext.idStack[depthProperties] !== undefined) {\n if (parsingContext.idStack[depthProperties][0].listHead) {\n // Error if an @list was already defined for this node\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${keys[depth - 1]}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT));\n }\n else {\n // Otherwise, the previous id was just because of an @id entry.\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found duplicate @ids '${parsingContext\n .idStack[depthProperties][0].value}' and '${value}'`, jsonld_context_parser_1.ERROR_CODES.COLLIDING_KEYWORDS));\n }\n }\n // Error if an annotation was defined\n if (parsingContext.rdfstar && parsingContext.annotationsBuffer[depth]) {\n for (const annotation of parsingContext.annotationsBuffer[depth]) {\n if (annotation.depth === depth) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @id inside an annotation: ${value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n }\n // Save our @id on the stack\n parsingContext.idStack[depthProperties] = util.nullableTermToArray(await util.resourceToTerm(await parsingContext.getContext(keys), value));\n }\n}\nexports.EntryHandlerKeywordId = EntryHandlerKeywordId;\n//# sourceMappingURL=EntryHandlerKeywordId.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordIncluded = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @included entries.\n */\nclass EntryHandlerKeywordIncluded extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@included');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'object') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @included '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n const valueUnliased = await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys));\n if ('@value' in valueUnliased) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @value node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n if ('@list' in valueUnliased) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @list node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordIncluded = EntryHandlerKeywordIncluded;\n//# sourceMappingURL=EntryHandlerKeywordIncluded.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordNest = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @nest entries.\n */\nclass EntryHandlerKeywordNest extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@nest');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'object') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found invalid @nest entry for '${key}': '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n }\n if ('@value' in await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys))) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an invalid @value node for '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordNest = EntryHandlerKeywordNest;\n//# sourceMappingURL=EntryHandlerKeywordNest.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordType = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst Util_1 = require(\"../../Util\");\nconst EntryHandlerPredicate_1 = require(\"../EntryHandlerPredicate\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordType extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@type');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n const keyOriginal = keys[depth];\n // The current identifier identifies an rdf:type predicate.\n // But we only emit it once the node closes,\n // as it's possible that the @type is used to identify the datatype of a literal, which we ignore here.\n const context = await parsingContext.getContext(keys);\n const predicate = util.rdfType;\n const parentKey = await util.unaliasKeywordParent(keys, depth);\n const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, parentKey);\n const isEmbedded = Util_1.Util.isPropertyInEmbeddedNode(parentKey);\n util.validateReverseInEmbeddedNode(key, reverse, isEmbedded);\n const isAnnotation = Util_1.Util.isPropertyInAnnotationObject(parentKey);\n // Handle multiple values if the value is an array\n const elements = Array.isArray(value) ? value : [value];\n for (const element of elements) {\n if (typeof element !== 'string') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @type '${element}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPE_VALUE));\n }\n const type = util.createVocabOrBaseTerm(context, element);\n if (type) {\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, type, reverse, isEmbedded, isAnnotation);\n }\n }\n // Collect type-scoped contexts if they exist\n let scopedContext = Promise.resolve(context);\n let hasTypedScopedContext = false;\n for (const element of elements.sort()) { // Spec requires lexicographical ordering\n const typeContext = Util_1.Util.getContextValue(context, '@context', element, null);\n if (typeContext) {\n hasTypedScopedContext = true;\n scopedContext = scopedContext.then((c) => parsingContext.parseContext(typeContext, c.getContextRaw()));\n }\n }\n // Error if an out-of-order type-scoped context was found when support is not enabled.\n if (parsingContext.streamingProfile\n && (hasTypedScopedContext || !parsingContext.streamingProfileAllowOutOfOrderPlainType)\n && (parsingContext.processingStack[depth] || parsingContext.idStack[depth])) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order type-scoped context, while streaming is enabled.' +\n '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n }\n // If at least least one type-scoped context applies, set them in the tree.\n if (hasTypedScopedContext) {\n // Do not propagate by default\n scopedContext = scopedContext.then((c) => {\n if (!('@propagate' in c.getContextRaw())) {\n c.getContextRaw()['@propagate'] = false;\n }\n // Set the original context at this depth as a fallback\n // This is needed when a context was already defined at the given depth,\n // and this context needs to remain accessible from child nodes when propagation is disabled.\n if (c.getContextRaw()['@propagate'] === false) {\n c.getContextRaw()['@__propagateFallback'] = context.getContextRaw();\n }\n return c;\n });\n // Set the new context in the context tree\n parsingContext.contextTree.setContext(keys.slice(0, keys.length - 1), scopedContext);\n }\n // Flag that type has been processed at this depth\n parsingContext.processingType[depth] = true;\n }\n}\nexports.EntryHandlerKeywordType = EntryHandlerKeywordType;\n//# sourceMappingURL=EntryHandlerKeywordType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordUnknownFallback = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * A catch-all for keywords, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerKeywordUnknownFallback {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n const key = await util.unaliasKeyword(keys[depth], keys, depth);\n if (jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n // Don't emit anything inside free-floating lists\n if (!inProperty) {\n if (key === '@list') {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return jsonld_context_parser_1.Util.isPotentialKeyword(key);\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n const keywordType = EntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES[key];\n if (keywordType !== undefined) {\n if (keywordType && typeof value !== keywordType.type) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid value type for '${key}' with value '${value}'`, keywordType.errorCode));\n }\n }\n else if (parsingContext.strictValues) {\n parsingContext.emitError(new Error(`Unknown keyword '${key}' with value '${value}'`));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordUnknownFallback = EntryHandlerKeywordUnknownFallback;\nEntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES = {\n '@index': { type: 'string', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE },\n '@list': null,\n '@reverse': { type: 'object', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_VALUE },\n '@set': null,\n '@value': null,\n};\n//# sourceMappingURL=EntryHandlerKeywordUnknownFallback.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordValue = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @value entries.\n */\nclass EntryHandlerKeywordValue extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@value');\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n // If this is @value, mark it so in the stack so that no deeper handling of nodes occurs.\n const key = keys[depth];\n if (key && !parsingContext.literalStack[depth] && await this.test(parsingContext, util, key, keys, depth)) {\n parsingContext.literalStack[depth] = true;\n }\n return super.validate(parsingContext, util, keys, depth, inProperty);\n }\n async test(parsingContext, util, key, keys, depth) {\n return await util.unaliasKeyword(keys[depth], keys.slice(0, keys.length - 1), depth - 1, true) === '@value';\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // If the value is valid, indicate that we are processing a literal.\n // The actual value will be determined at the parent level when the @value is part of an object,\n // because we may want to take into account additional entries such as @language.\n // See {@link Util.valueToTerm}\n // Indicate that we are processing a literal, and that no later predicates should be parsed at this depth.\n parsingContext.literalStack[depth] = true;\n // Void any buffers that we may have accumulated up until now\n delete parsingContext.unidentifiedValuesBuffer[depth];\n delete parsingContext.unidentifiedGraphsBuffer[depth];\n // Indicate that we have not emitted at this depth\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordValue = EntryHandlerKeywordValue;\n//# sourceMappingURL=EntryHandlerKeywordValue.js.map","'use strict'\n\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n signal.addEventListener('abort', onAbort)\n eos(stream, () => signal.removeEventListener('abort', onAbort))\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.writableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n\n // TODO: Webstreams\n // if (isReadableStream(body)) {\n // return _duplexify({ readable: Readable.fromWeb(body) });\n // }\n\n // TODO: Webstreams\n // if (isWritableStream(body)) {\n // return _duplexify({ writable: Writable.fromWeb(body) });\n // }\n\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n\n // TODO: Webstreams.\n // if (\n // isReadableStream(body?.readable) &&\n // isWritableStream(body?.writable)\n // ) {\n // return Duplexify.fromWeb(body);\n // }\n\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst {\n ArrayPrototypePush,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n validateInteger(concurrency, 'concurrency', 1)\n return async function* map() {\n var _options$signal, _options$signal2\n const ac = new AbortController()\n const stream = this\n const queue = []\n const signal = ac.signal\n const signalOpt = {\n signal\n }\n const abort = () => ac.abort()\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n abort()\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal2 = options.signal) === null || _options$signal2 === undefined\n ? undefined\n : _options$signal2.addEventListener('abort', abort)\n let next\n let resume\n let done = false\n function onDone() {\n done = true\n }\n async function pump() {\n try {\n for await (let val of stream) {\n var _val\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n } catch (err) {\n val = PromiseReject(err)\n }\n if (val === kEmpty) {\n continue\n }\n if (typeof ((_val = val) === null || _val === undefined ? undefined : _val.catch) === 'function') {\n val.catch(onDone)\n }\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && queue.length && queue.length >= concurrency) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, undefined, onDone)\n queue.push(val)\n } finally {\n var _options$signal3\n done = true\n if (next) {\n next()\n next = null\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal3 = options.signal) === null || _options$signal3 === undefined\n ? undefined\n : _options$signal3.removeEventListener('abort', abort)\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n if (resume) {\n resume()\n resume = null\n }\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n ac.abort()\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal5\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal6\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal9\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal9 = options.signal) !== null &&\n _options$signal9 !== undefined &&\n _options$signal9.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal10\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal10 = options.signal) !== null &&\n _options$signal10 !== undefined &&\n _options$signal10.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal11\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal11 = options.signal) !== null &&\n _options$signal11 !== undefined &&\n _options$signal11.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n } else {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs,\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableEnded\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n }\n await wait()\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.addEventListener('abort', abort)\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.removeEventListener('abort', abort)\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableEnded(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n }\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.readableObjectMode)\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this.ended = false\n this.endEmitted = false\n this.reading = false\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true\n\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false\n this.emittedReadable = false\n this.readableListening = false\n this.resumeScheduled = false\n this[kPaused] = null\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Has it been destroyed.\n this.destroyed = false\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.multiAwaitDrain = false\n\n // If true, a maybeReadMore has been scheduled.\n this.readingMore = false\n this.dataEmitted = false\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.reading = false\n onEofChunk(stream, state)\n } else if (state.objectMode || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.reading = false\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.reading = false\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if (state.needReadable) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if (state.objectMode) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.emittedReadable = false\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = state.needReadable\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.reading = true\n state.sync = true\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.sync = false\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n if (state.flowing) {\n pause()\n }\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? 16 : 16 * 1024\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { Symbol, SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\nconst kDestroyed = Symbol('kDestroyed')\nconst kIsErrored = Symbol('kIsErrored')\nconst kIsReadable = Symbol('kIsReadable')\nconst kIsDisturbed = Symbol('kIsDisturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n kDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n isClosed,\n isDestroyed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n *\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('stream')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","import rdf from '@rdfjs/data-model'\nimport toReadable from 'duplex-to/readable.js'\nimport { JsonLdParser } from 'jsonld-streaming-parser'\nimport { Transform } from 'readable-stream'\n\nconst relativeIriProtocol = 'null:'\n\nfunction termCleanup (factory) {\n return term => {\n if (term.termType !== 'NamedNode') {\n return null\n }\n\n if (!term.value.startsWith(relativeIriProtocol)) {\n return null\n }\n\n // remove dummy protocol workaround for relative IRIs\n return factory.namedNode(term.value.slice(relativeIriProtocol.length))\n }\n}\n\nfunction quadCleanup (factory) {\n const cleanup = termCleanup(factory)\n\n return quad => {\n const subject = cleanup(quad.subject)\n const predicate = cleanup(quad.predicate)\n const object = cleanup(quad.object)\n const graph = cleanup(quad.graph)\n\n if (subject || predicate || object || graph) {\n return factory.quad(\n subject || quad.subject,\n predicate || quad.predicate,\n object || quad.object,\n graph || quad.graph\n )\n }\n\n return quad\n }\n}\n\nclass ParserStream {\n constructor (input, { baseIRI = relativeIriProtocol, context = null, documentLoader, factory = rdf } = {}) {\n const parser = new JsonLdParser({\n baseIRI,\n context,\n dataFactory: factory,\n documentLoader,\n streamingProfile: false\n })\n\n input.pipe(parser)\n\n const cleanup = quadCleanup(factory)\n\n const transform = new Transform({\n objectMode: true,\n transform: (quad, encoding, callback) => {\n callback(null, cleanup(quad))\n }\n })\n\n parser.on('context', context => {\n Object.entries(context).forEach(([prefix, iri]) => {\n transform.emit('prefix', prefix, factory.namedNode(iri))\n })\n })\n parser.on('error', err => transform.destroy(err))\n parser.pipe(transform)\n\n return toReadable(transform)\n }\n}\n\nexport default ParserStream\n","import Sink from '@rdfjs/sink'\nimport ParserStream from './lib/ParserStream.js'\n\nclass Parser extends Sink {\n constructor (options) {\n super(ParserStream, options)\n }\n}\n\nexport default Parser\n","class Sink {\n constructor (Impl, options) {\n this.Impl = Impl\n this.options = options\n }\n\n import (input, options) {\n const output = new this.Impl(input, { ...this.options, ...options })\n\n input.on('end', () => {\n if (!output.readable) {\n output.emit('end')\n }\n })\n\n input.on('error', err => {\n output.emit('error', err)\n })\n\n return output\n }\n}\n\nexport default Sink\n","const blackList = new Set(['_write', '_writableState', 'writable'])\n\nfunction readable (duplex) {\n return new Proxy(duplex, {\n has (target, key) {\n if (blackList.has(key)) {\n return false\n }\n\n return Reflect.has(...arguments)\n },\n get (target, key) {\n if (blackList.has(key)) {\n return undefined\n }\n\n const result = Reflect.get(...arguments)\n\n if (result && typeof result.bind === 'function') {\n return result.bind(target)\n }\n\n return result\n },\n set (target, key, value) {\n if (blackList.has(key)) {\n return undefined\n }\n\n return Reflect.set(...arguments)\n }\n })\n}\n\nexport default readable\n"],"names":["Buffer","C","LEFT_BRACE","RIGHT_BRACE","LEFT_BRACKET","RIGHT_BRACKET","COLON","COMMA","TRUE","FALSE","NULL","STRING","NUMBER","START","STOP","TRUE1","TRUE2","TRUE3","FALSE1","FALSE2","FALSE3","FALSE4","NULL1","NULL2","NULL3","NUMBER1","NUMBER3","STRING1","STRING2","STRING3","STRING4","STRING5","STRING6","VALUE","KEY","OBJECT","ARRAY","BACK_SLASH","charCodeAt","FORWARD_SLASH","BACKSPACE","FORM_FEED","NEWLINE","CARRIAGE_RETURN","TAB","STRING_BUFFER_SIZE","alloc","size","Parser","this","tState","value","undefined","string","stringBuffer","stringBufferOffset","unicode","highSurrogate","key","mode","stack","state","bytes_remaining","bytes_in_sequence","temp_buffs","offset","toknam","code","keys","Object","i","l","length","toString","proto","prototype","onError","err","charError","buffer","Error","JSON","stringify","String","fromCharCode","appendStringChar","char","appendStringBuf","buf","start","end","copy","write","n","onToken","j","k","byteLength","intVal","parseInt","error","numberReviver","token","parseError","push","pop","parent","emit","onValue","text","result","Number","isNaN","match","module","exports","AbortError","codes","isNodeStream","isWebStream","kControllerErrorFunction","eos","ERR_INVALID_ARG_TYPE","validateAbortSignal","signal","name","addAbortSignal","stream","addAbortSignalNoValidate","onAbort","destroy","cause","reason","aborted","addEventListener","removeEventListener","StringPrototypeSlice","SymbolIterator","TypedArrayPrototypeSet","Uint8Array","inspect","constructor","head","tail","v","entry","data","next","unshift","shift","ret","clear","join","s","p","concat","allocUnsafe","consume","hasStrings","slice","_getString","_getBuffer","first","c","str","retLen","byteOffset","Symbol","for","_","options","depth","customInspect","pipeline","Duplex","destroyer","isReadable","isWritable","isTransformStream","isWritableStream","isReadableStream","ERR_INVALID_ARG_VALUE","ERR_MISSING_ARGS","streams","from","orgStreams","idx","ondrain","onfinish","onreadable","onclose","d","onfinished","cb","readable","writable","writableObjectMode","readableObjectMode","_write","chunk","encoding","callback","_final","on","writer","getWriter","async","ready","catch","close","toRead","_read","read","reader","getReader","done","_destroy","process","aggregateTwoErrors","ERR_MULTIPLE_CALLBACK","kDestroyed","isDestroyed","isFinished","isServerRequest","kDestroy","kConstruct","checkError","w","r","errored","_readableState","_writableState","destroyed","constructed","once","er","self","called","onDestroy","closed","nextTick","emitErrorCloseNT","emitCloseNT","emitErrorNT","closeEmitted","emitClose","errorEmitted","undestroy","reading","ended","endEmitted","finalCalled","prefinished","ending","finished","errorOrDestroy","sync","autoDestroy","construct","_construct","listenerCount","constructNT","onConstruct","emitConstructNT","isRequest","setHeader","abort","emitCloseLegacy","emitErrorCloseLegacy","socket","req","ObjectDefineProperties","ObjectGetOwnPropertyDescriptor","ObjectKeys","ObjectSetPrototypeOf","Readable","Writable","method","call","allowHalfOpen","webStreamsAdapters","duplexify","lazyWebStreams","__proto__","writableHighWaterMark","writableBuffer","writableLength","writableFinished","writableCorked","writableEnded","writableNeedDrain","get","set","fromWeb","pair","newStreamDuplexFromReadableWritablePair","toWeb","duplex","newReadableWritablePairFromDuplex","body","bufferModule","isIterable","isReadableNodeStream","isWritableNodeStream","isDuplexNodeStream","ERR_INVALID_RETURN_VALUE","createDeferredPromise","Blob","globalThis","isBlob","b","AbortController","FunctionPrototypeCall","Duplexify","super","fromAsyncGen","fn","promise","resolve","ac","_promise","_resolve","final","_duplexify","wrap","objectMode","then","val","arrayBuffer","ERR_STREAM_PREMATURE_CLOSE","kEmptyObject","validateFunction","validateObject","validateBoolean","Promise","PromisePrototypeThen","isClosed","isReadableFinished","isReadableErrored","isWritableFinished","isWritableErrored","willEmitClose","_willEmitClose","kIsClosedPromise","nop","_options$readable","_options$writable","arguments","eosWeb","wState","rState","onlegacyfinish","readableFinished","onend","onerror","onclosed","onrequest","cleanup","removeListener","endCallback","originalCallback","args","apply","isAborted","resolverFn","opts","_opts","autoCleanup","reject","SymbolAsyncIterator","ERR_STREAM_NULL_VALUES","iterable","iterator","isAsync","highWaterMark","hadError","hasThrow","throw","return","res","e","ArrayIsArray","EventEmitter","EE","Stream","prependListener","emitter","event","_events","pipe","dest","source","ondata","pause","resume","_isStdio","didOnEnd","ERR_OUT_OF_RANGE","validateInteger","kWeakHandler","staticCompose","ArrayPrototypePush","MathFloor","NumberIsNaN","PromiseReject","kEmpty","kEof","compose","composedStream","map","concurrency","_options$signal","_options$signal2","queue","signalOpt","onDone","pump","_val","_options$signal3","asIndexedPairs","index","_options$signal4","some","unused","filter","every","find","forEach","forEachFn","filterFn","ReduceAwareErrMissingArgs","message","reduce","reducer","initialValue","_options$signal5","hasInitialValue","gotAnyItemFromStream","_options$signal6","toArray","_options$signal7","flatMap","values","toIntegerOrInfinity","number","drop","_options$signal8","_options$signal9","take","_options$signal10","_options$signal11","streamReturningOperators","promiseReturningOperators","PassThrough","Transform","_transform","destroyImpl","ERR_STREAM_DESTROYED","isReadableEnded","writing","popCallback","makeAsyncIterable","fromReadable","pumpToNode","finish","onresolve","wait","off","pumpToWeb","pipelineImpl","outerSignal","lastStreamCleanup","finishImpl","destroys","finishCount","isLastStream","_ret","_ret2","pt","src","dst","endFn","ArrayPrototypeIndexOf","NumberIsInteger","NumberParseInt","SafeSet","ReadableState","debug","BufferList","getHighWaterMark","getDefaultHighWaterMark","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kPaused","StringDecoder","isDuplex","pipes","flowing","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrainWriters","multiAwaitDrain","readingMore","dataEmitted","decoder","maybeReadMore","readableAddChunk","addToFront","_isUint8Array","_uint8ArrayToBuffer","onEofChunk","addChunk","emitReadable","_undestroy","captureRejectionSymbol","isPaused","setEncoding","enc","content","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","len","pipeOnDrain","delete","updateReadableListening","nReadingNextTick","resume_","streamToAsyncIterator","iter","createAsyncIterator","destroyOnReturn","fromList","endReadable","endReadableNT","endWritableNT","NaN","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanedUp","needDrain","includes","add","dests","splice","ev","addListener","removeAllListeners","paused","streamKeys","bind","readableDidRead","enumerable","readableAborted","readableHighWaterMark","readableBuffer","readableFlowing","readableLength","readableEncoding","readableEnded","pipesCount","_fromList","readableStream","newStreamReadableFromReadableStream","streamReadable","newReadableStreamFromStreamReadable","_ref","_src$readableObjectMo","highWaterMarkFrom","duplexKey","hwm","kCallback","transform","flush","_flush","prefinish","SymbolFor","kIsErrored","kIsReadable","kIsDisturbed","obj","strict","_obj$_readableState","_obj$_writableState","pipeThrough","cancel","isWritableEnded","_stream$_writableStat","_stream$_writableStat2","writableErrored","_stream$_readableStat","_stream$_readableStat2","readableErrored","_closed","isOutgoingMessage","_defaultKeepAlive","_removedConnection","_removedContLen","isServerResponse","_sent100","_stream$req","_consuming","_dumped","upgradeOrConnect","isDisturbed","_stream$kIsDisturbed","isErrored","_ref2","_ref3","_ref4","_ref5","_stream$kIsErrored","_stream$_readableStat3","_stream$_writableStat3","_stream$_readableStat4","_stream$_writableStat4","ArrayPrototypeSlice","FunctionPrototypeSymbolHasInstance","ObjectDefineProperty","StringPrototypeToLowerCase","SymbolHasInstance","WritableState","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_ALREADY_FINISHED","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","kOnFinished","noDecode","decodeStrings","corked","bufferProcessing","onwrite","writecb","writelen","afterWriteTickInfo","resetBuffer","pendingcb","buffered","bufferedIndex","allBuffers","allNoop","writev","_writev","clearBuffer","finishMaybe","isEncoding","writeOrBuffer","doWrite","onwriteError","errorBuffer","count","afterWriteTick","afterWrite","_state$errored","onfinishCallbacks","_state$errored2","bufferedLength","chunks","needFinish","callFinal","onFinish","getBuffer","object","cork","uncork","setDefaultEncoding","writableAborted","writableStream","newStreamWritableFromWritableStream","streamWritable","newWritableStreamFromStreamWritable","ArrayPrototypeIncludes","ArrayPrototypeJoin","ArrayPrototypeMap","NumberMAX_SAFE_INTEGER","NumberMIN_SAFE_INTEGER","ObjectPrototypeHasOwnProperty","RegExpPrototypeExec","StringPrototypeToUpperCase","StringPrototypeTrim","hideStackFrames","ERR_SOCKET_BAD_PORT","ERR_UNKNOWN_SIGNAL","normalizeEncoding","isAsyncFunction","isArrayBufferView","signals","isInt32","isUint32","octalReg","modeDesc","parseFileMode","def","validateUint32","min","max","validateInt32","positive","validateString","validateNumber","validateOneOf","oneOf","allowed","getOwnPropertyValueOrDefault","defaultValue","allowArray","allowFunction","nullable","validateDictionary","validateArray","minLength","validateStringArray","validateBooleanArray","validateSignalName","validateBuffer","validateEncoding","normalizedEncoding","validatePort","port","allowZero","validatePlainFunction","validateUndefined","validateUnion","union","linkValueRegExp","validateLinkHeaderFormat","validateLinkHeaderValue","hints","hintsLength","link","CustomStream","promises","originalDestroy","defineProperty","configurable","format","AggregateError","CustomAggregateError","kIsNodeError","kTypes","classRegExp","nodeInternalPrefix","assert","ERR_INTERNAL_ASSERTION","addNumericalSeparator","getMessage","msg","expectedLength","E","Base","NodeError","defineProperties","hidden","innerError","outerError","Array","isArray","errors","expected","actual","endsWith","types","instances","other","toLowerCase","test","pos","indexOf","last","_actual$constructor","inspected","colors","TypeError","type","input","_value$constructor","a","range","received","isInteger","Math","abs","RangeError","el","sep","ArrayPrototypePop","thisArgs","instance","Function","hasInstance","floor","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","props","prop","getOwnPropertyDescriptor","target","setPrototypeOf","PromisePrototypeCatch","thenFn","catchFn","ReflectApply","Reflect","RegExpPrototypeTest","Set","toUpperCase","trim","asyncIterator","AsyncFunction","getPrototypeOf","freeze","rej","promisify","debuglog","replace","_unused","replacement","toFixed","ctor","is","arr","ArrayBuffer","isView","custom","customPromisify","ERR_ILLEGAL_CONSTRUCTOR","utils","op","pl","lastArg","__createBinding","create","o","m","k2","desc","__esModule","__exportStar","hasOwnProperty","ContextTree","subTrees","getContext","subTree","subContext","context","setContext","removeContext","path","JsonLdParser","jsonld_context_parser_1","readable_stream_1","EntryHandlerArrayValue_1","EntryHandlerContainer_1","EntryHandlerInvalidFallback_1","EntryHandlerPredicate_1","EntryHandlerKeywordContext_1","EntryHandlerKeywordGraph_1","EntryHandlerKeywordId_1","EntryHandlerKeywordIncluded_1","EntryHandlerKeywordNest_1","EntryHandlerKeywordType_1","EntryHandlerKeywordUnknownFallback_1","EntryHandlerKeywordValue_1","ParsingContext_1","Util_1","http_link_header_1","EntryHandlerKeywordAnnotation_1","parsingContext","ParsingContext","assign","parser","util","Util","dataFactory","jsonParser","contextJobs","typeJobs","contextAwaitingJobs","lastDepth","lastKeys","lastOnValueJob","attachJsonParserListeners","static","baseIRI","mediaType","headers","streamingProfile","ErrorCoded","ERROR_CODES","LOADING_DOCUMENT_FAILED","has","linkHeader","parse","MULTIPLE_CONTEXT_LINK_HEADERS","uri","ignoreMissingContextLinkHeader","contentType","exec","import","parsed","output","lastDepthCheck","flushStacks","listPointer","listPointerStack","quad","rdfRest","rdfNil","getDefaultGraph","listId","listHead","idStack","listRootDepth","EntryHandlerContainer","isBufferableContainerHandler","pendingContainerFlushBuffers","flushBuffer","unaliasKeyword","parentKey","unaliasKeywordParent","emittedStack","handleKey","isValidKeyword","INVALID_REVERSE_PROPERTY_MAP","inProperty","validationStack","property","validationResult","validateKey","valid","isLiteral","entryHandler","ENTRY_HANDLERS","testResult","handle","isStackProcessor","processingStack","validateValueIndexes","unaliasedKeywordCacheStack","processingType","graphStack","graphContainerTermStack","jsonLiteralStack","literalStack","annotationsBuffer","subjects","subjectsWasDefined","blankNode","valueBuffer","unidentifiedValuesBuffer","subject","depthOffsetGraph","getDepthOffsetGraph","graphs","getGraphContainerValue","graph","bufferedValue","emitQuadChecked","predicate","reverse","isEmbedded","subGraphBuffer","getUnidentifiedGraphBufferSafe","graphBuffer","unidentifiedGraphsBuffer","termType","topLevelProperties","emitQuad","emitError","INVALID_ANNOTATION","annotationsBufferParent","getAnnotationsBufferSafe","annotation","validate","isPropertyHandler","fill","isParsingContextInner","valueJobCb","newOnValueJob","contextTree","jobs","job","executeBufferedJobs","applicableTypeJobs","applicableTypeJobIds","typeJob","isPrefixArray","sortedTypeJobs","sort","job1","job2","sortedApplicableTypeJobIds","jobId","DEFAULT_PROCESSING_MODE","EntryHandlerArrayValue","EntryHandlerKeywordContext","EntryHandlerKeywordId","EntryHandlerKeywordIncluded","EntryHandlerKeywordGraph","EntryHandlerKeywordNest","EntryHandlerKeywordType","EntryHandlerKeywordValue","EntryHandlerKeywordAnnotation","EntryHandlerKeywordUnknownFallback","EntryHandlerPredicate","EntryHandlerInvalidFallback","ErrorCoded_1","ContextTree_1","JsonLdParser_1","contextParser","ContextParser","documentLoader","skipValidation","skipContextValidation","produceGeneralizedRdf","allowSubjectList","processingMode","strictValues","defaultGraph","rdfDirection","normalizeLanguageTags","streamingProfileAllowOutOfOrderPlainType","rdfstar","rdfstarReverseInEmbedded","activeProcessingMode","parseFloat","rootContext","parseContext","validateContext","JsonLdContextNormalized","parentContext","ignoreProtection","activeVersion","getContextRaw","PROCESSING_MODE_CONFLICT","INVALID_VERSION_VALUE","keysOriginal","contextData","getContextPropagationAware","contextRaw","contextKeyEntry","scopedContext","propagate","originalDepth","hasApplicablePropertyScopedContext","lastKey","lastKeyValue","pendingFlushBuffer","emitContext","getUnidentifiedValueBufferSafe","getExpandOptions","EXPAND_OPTIONS","shiftStack","depthOffset","deeperIdStack","allowPrefixForcing","allowPrefixNonGenDelims","allowVocabRelativeToBase","rdf_data_factory_1","canonicalizeJson","DataFactory","rdfFirst","namedNode","RDF","rdfType","rdfJson","contextKey","fallback","getContextValue","valueType","isContextValueReverse","iri","isValidIri","needle","haystack","indexHashes","id","existingIndexValue","CONFLICTING_INDEXES","getContextValueType","literal","valueToJsonString","getContextValueContainer","getContextSelfOrPropertyScoped","unaliasKeywords","valueLanguage","valueDirection","valueIndex","subValue","INVALID_VALUE_OBJECT","INVALID_VALUE_OBJECT_VALUE","INVALID_INDEX_VALUE","INVALID_LANGUAGE_TAGGED_VALUE","validateLanguage","INVALID_LANGUAGE_TAGGED_STRING","validateDirection","nullableTermToArray","createLanguageDirectionLiteral","INVALID_TYPED_VALUE","typeTerm","createVocabOrBaseTerm","valueToTerm","INVALID_SET_OR_LIST_OBJECT","listValue","graphContainerEntries","valueId","valueTerm","INVALID_ID_VALUE","resourceToTerm","stringValueToTerm","Boolean","XSD_BOOLEAN","XSD_INTEGER","XSD_DOUBLE","term","predicateToTerm","expanded","expandTerm","substr","INVALID_IRI_MAPPING","startsWith","expandOptions","intToString","datatype","isFinite","toExponential","defaultDatatype","contextType","contextLanguage","getContextValueLanguage","contextDirection","getContextValueDirection","language","direction","valueNode","disableCache","cachedUnaliasedKeyword","isPotentialKeyword","unliased","hash","newHash","containers","getContainerHandler","isComplexGraphContainer","validateReverseSubject","INVALID_REVERSE_PROPERTY_VALUE","depthContainer","graphContainerIndex","getContainerGraphIndex","graphId","keyUnaliased","getContainerKey","lastValidDepth","validateReverseInEmbeddedNode","INVALID_EMBEDDED_NODE","emitAnnotation","annotationQuad","nestedAnnotation","nestedAnnotations","XSD","ContainerHandlerIdentifier","canCombineWithGraph","maybeId","ids","equals","handlePendingContainerFlushBuffers","ContainerHandlerIndex","graphContainer","indexKey","indexPropertyRaw","getContextValueIndex","INVALID_TERM_DEFINITION","indexProperty","indexValues","indexValue","handlePredicateObject","ContainerHandlerLanguage","INVALID_LANGUAGE_MAP_VALUE","ContainerHandlerType","containerTypeType","entryHasIdentifier","keyOriginal","listRootKey","keyOption","handleListElement","valueOriginal","listRootKeys","newLinkTerm","linkTerm","ContainerHandlerIdentifier_1","ContainerHandlerIndex_1","ContainerHandlerLanguage_1","ContainerHandlerType_1","isSimpleGraphContainer","checkGraphContainer","containersSelf","containersParent","containerHandleName","CONTAINER_HANDLERS","handler","containerName","isAnnotation","depthProperties","getPropertiesDepth","depthPropertiesGraph","atGraph","newAnnotation","existingAnnotation","objects","isPropertyReverse","parentDepthOffset","isPropertyInEmbeddedNode","isPropertyInAnnotationObject","listValueContainer","EntryHandlerKeyword","keyword","EntryHandlerKeyword_1","INVALID_STREAMING_KEY_ORDER","valueKeys","COLLIDING_KEYWORDS","INVALID_INCLUDED_VALUE","valueUnliased","INVALID_NEST_VALUE","elements","element","INVALID_TYPE_VALUE","hasTypedScopedContext","typeContext","keywordType","VALID_KEYWORDS_TYPES","errorCode","INVALID_REVERSE_VALUE","relativeIriProtocol","termCleanup","factory","quadCleanup","ParserStream","entries","prefix","Sink","Impl","blackList","Proxy"],"sourceRoot":""} \ No newline at end of file diff --git a/js/498.a85d8927.js b/js/498.a85d8927.js new file mode 100644 index 0000000..55dd9df --- /dev/null +++ b/js/498.a85d8927.js @@ -0,0 +1,23 @@ +(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[498],{12893:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SaxesParser=t.EVENTS=void 0;const i=r(83347),n=r(95285),o=r(87046);var a=i.isS,s=i.isChar,l=i.isNameStartChar,d=i.isNameChar,c=i.S_LIST,u=i.NAME_RE,h=n.isChar,f=o.isNCNameStartChar,p=o.isNCNameChar,b=o.NC_NAME_RE;const g="http://www.w3.org/XML/1998/namespace",m="http://www.w3.org/2000/xmlns/",y={__proto__:null,xml:g,xmlns:m},w={__proto__:null,amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},_=-1,v=-2,S=0,E=1,R=2,T=3,A=4,x=5,N=6,D=7,I=8,C=9,P=10,k=11,$=12,M=13,O=14,j=15,L=16,F=17,W=18,H=19,B=20,U=21,V=22,G=23,q=24,X=25,Y=26,z=27,Z=28,K=29,Q=30,J=31,ee=32,te=33,re=34,ie=35,ne=36,oe=37,ae=38,se=39,le=40,de=41,ce=42,ue=43,he=44,fe=9,pe=10,be=13,ge=32,me=33,ye=34,we=38,_e=39,ve=45,Se=47,Ee=59,Re=60,Te=61,Ae=62,xe=63,Ne=91,De=93,Ie=133,Ce=8232,Pe=e=>e===ye||e===_e,ke=[ye,_e],$e=[...ke,Ne,Ae],Me=[...ke,Re,De],Oe=[Te,xe,...c],je=[...c,Ae,we,Re];function Le(e,t,r){switch(t){case"xml":r!==g&&e.fail(`xml prefix must be bound to ${g}.`);break;case"xmlns":r!==m&&e.fail(`xmlns prefix must be bound to ${m}.`);break;default:}switch(r){case m:e.fail(""===t?`the default namespace may not be set to ${r}.`:`may not assign a prefix (even "xmlns") to the URI ${m}.`);break;case g:switch(t){case"xml":break;case"":e.fail(`the default namespace may not be set to ${r}.`);break;default:e.fail("may not assign the xml namespace to another prefix.")}break;default:}}function Fe(e,t){for(const r of Object.keys(t))Le(e,r,t[r])}const We=e=>b.test(e),He=e=>u.test(e),Be=0,Ue=1,Ve=2;t.EVENTS=["xmldecl","text","processinginstruction","doctype","comment","opentagstart","attribute","opentag","closetag","cdata","error","end","ready"];const Ge={xmldecl:"xmldeclHandler",text:"textHandler",processinginstruction:"piHandler",doctype:"doctypeHandler",comment:"commentHandler",opentagstart:"openTagStartHandler",attribute:"attributeHandler",opentag:"openTagHandler",closetag:"closeTagHandler",cdata:"cdataHandler",error:"errorHandler",end:"endHandler",ready:"readyHandler"};class qe{get closed(){return this._closed}constructor(e){this.opt=null!==e&&void 0!==e?e:{},this.fragmentOpt=!!this.opt.fragment;const t=this.xmlnsOpt=!!this.opt.xmlns;if(this.trackPosition=!1!==this.opt.position,this.fileName=this.opt.fileName,t){this.nameStartCheck=f,this.nameCheck=p,this.isName=We,this.processAttribs=this.processAttribsNS,this.pushAttrib=this.pushAttribNS,this.ns=Object.assign({__proto__:null},y);const e=this.opt.additionalNamespaces;null!=e&&(Fe(this,e),Object.assign(this.ns,e))}else this.nameStartCheck=l,this.nameCheck=d,this.isName=He,this.processAttribs=this.processAttribsPlain,this.pushAttrib=this.pushAttribPlain;this.stateTable=[this.sBegin,this.sBeginWhitespace,this.sDoctype,this.sDoctypeQuote,this.sDTD,this.sDTDQuoted,this.sDTDOpenWaka,this.sDTDOpenWakaBang,this.sDTDComment,this.sDTDCommentEnding,this.sDTDCommentEnded,this.sDTDPI,this.sDTDPIEnding,this.sText,this.sEntity,this.sOpenWaka,this.sOpenWakaBang,this.sComment,this.sCommentEnding,this.sCommentEnded,this.sCData,this.sCDataEnding,this.sCDataEnding2,this.sPIFirstChar,this.sPIRest,this.sPIBody,this.sPIEnding,this.sXMLDeclNameStart,this.sXMLDeclName,this.sXMLDeclEq,this.sXMLDeclValueStart,this.sXMLDeclValue,this.sXMLDeclSeparator,this.sXMLDeclEnding,this.sOpenTag,this.sOpenTagSlash,this.sAttrib,this.sAttribName,this.sAttribNameSawWhite,this.sAttribValue,this.sAttribValueQuoted,this.sAttribValueClosed,this.sAttribValueUnquoted,this.sCloseTag,this.sCloseTagSawWhite],this._init()}_init(){var e;this.openWakaBang="",this.text="",this.name="",this.piTarget="",this.entity="",this.q=null,this.tags=[],this.tag=null,this.topNS=null,this.chunk="",this.chunkPosition=0,this.i=0,this.prevI=0,this.carriedFromPrevious=void 0,this.forbiddenState=Be,this.attribList=[];const{fragmentOpt:t}=this;this.state=t?M:S,this.reportedTextBeforeRoot=this.reportedTextAfterRoot=this.closedRoot=this.sawRoot=t,this.xmlDeclPossible=!t,this.xmlDeclExpects=["version"],this.entityReturnState=void 0;let{defaultXMLVersion:r}=this.opt;if(void 0===r){if(!0===this.opt.forceXMLVersion)throw new Error("forceXMLVersion set but defaultXMLVersion is not set");r="1.0"}this.setXMLVersion(r),this.positionAtNewLine=0,this.doctype=!1,this._closed=!1,this.xmlDecl={version:void 0,encoding:void 0,standalone:void 0},this.line=1,this.column=0,this.ENTITIES=Object.create(w),null===(e=this.readyHandler)||void 0===e||e.call(this)}get position(){return this.chunkPosition+this.i}get columnIndex(){return this.position-this.positionAtNewLine}on(e,t){this[Ge[e]]=t}off(e){this[Ge[e]]=void 0}makeError(e){var t;let r=null!==(t=this.fileName)&&void 0!==t?t:"";return this.trackPosition&&(r.length>0&&(r+=":"),r+=`${this.line}:${this.column}`),r.length>0&&(r+=": "),new Error(r+e)}fail(e){const t=this.makeError(e),r=this.errorHandler;if(void 0===r)throw t;return r(t),this}write(e){if(this.closed)return this.fail("cannot write after close; assign an onready handler.");let t=!1;null===e?(t=!0,e=""):"object"===typeof e&&(e=e.toString()),void 0!==this.carriedFromPrevious&&(e=`${this.carriedFromPrevious}${e}`,this.carriedFromPrevious=void 0);let r=e.length;const i=e.charCodeAt(r-1);!t&&(i===be||i>=55296&&i<=56319)&&(this.carriedFromPrevious=e[r-1],r--,e=e.slice(0,r));const{stateTable:n}=this;this.chunk=e,this.i=0;while(this.i=e.length)return _;const r=e.charCodeAt(t);if(this.column++,r<55296){if(r>=ge||r===fe)return r;switch(r){case pe:return this.line++,this.column=0,this.positionAtNewLine=this.position,pe;case be:return e.charCodeAt(t+1)===pe&&(this.i=t+2),this.line++,this.column=0,this.positionAtNewLine=this.position,v;default:return this.fail("disallowed character."),r}}if(r>56319)return r>=57344&&r<=65533||this.fail("disallowed character."),r;const i=65536+1024*(r-55296)+(e.charCodeAt(t+1)-56320);return this.i=t+2,i>1114111&&this.fail("disallowed character."),i}getCode11(){const{chunk:e,i:t}=this;if(this.prevI=t,this.i=t+1,t>=e.length)return _;const r=e.charCodeAt(t);if(this.column++,r<55296){if(r>31&&r<127||r>159&&r!==Ce||r===fe)return r;switch(r){case pe:return this.line++,this.column=0,this.positionAtNewLine=this.position,pe;case be:{const r=e.charCodeAt(t+1);r!==pe&&r!==Ie||(this.i=t+2)}case Ie:case Ce:return this.line++,this.column=0,this.positionAtNewLine=this.position,v;default:return this.fail("disallowed character."),r}}if(r>56319)return r>=57344&&r<=65533||this.fail("disallowed character."),r;const i=65536+1024*(r-55296)+(e.charCodeAt(t+1)-56320);return this.i=t+2,i>1114111&&this.fail("disallowed character."),i}getCodeNorm(){const e=this.getCode();return e===v?pe:e}unget(){this.i=this.prevI,this.column--}captureTo(e){let{i:t}=this;const{chunk:r}=this;while(1){const i=this.getCode(),n=i===v,o=n?pe:i;if(o===_||e.includes(o))return this.text+=r.slice(t,this.prevI),o;n&&(this.text+=`${r.slice(t,this.prevI)}\n`,t=this.i)}}captureToChar(e){let{i:t}=this;const{chunk:r}=this;while(1){let i=this.getCode();switch(i){case v:this.text+=`${r.slice(t,this.prevI)}\n`,t=this.i,i=pe;break;case _:return this.text+=r.slice(t),!1;default:}if(i===e)return this.text+=r.slice(t,this.prevI),!0}}captureNameChars(){const{chunk:e,i:t}=this;while(1){const r=this.getCode();if(r===_)return this.name+=e.slice(t),_;if(!d(r))return this.name+=e.slice(t,this.prevI),r===v?pe:r}}skipSpaces(){while(1){const e=this.getCodeNorm();if(e===_||!a(e))return e}}setXMLVersion(e){this.currentXMLVersion=e,"1.0"===e?(this.isChar=s,this.getCode=this.getCode10):(this.isChar=h,this.getCode=this.getCode11)}sBegin(){65279===this.chunk.charCodeAt(0)&&(this.i++,this.column++),this.state=E}sBeginWhitespace(){const e=this.i,t=this.skipSpaces();switch(this.prevI!==e&&(this.xmlDeclPossible=!1),t){case Re:if(this.state=j,0!==this.text.length)throw new Error("no-empty text at start");break;case _:break;default:this.unget(),this.state=M,this.xmlDeclPossible=!1}}sDoctype(){var e;const t=this.captureTo($e);switch(t){case Ae:null===(e=this.doctypeHandler)||void 0===e||e.call(this,this.text),this.text="",this.state=M,this.doctype=!0;break;case _:break;default:this.text+=String.fromCodePoint(t),t===Ne?this.state=A:Pe(t)&&(this.state=T,this.q=t)}}sDoctypeQuote(){const e=this.q;this.captureToChar(e)&&(this.text+=String.fromCodePoint(e),this.q=null,this.state=R)}sDTD(){const e=this.captureTo(Me);e!==_&&(this.text+=String.fromCodePoint(e),e===De?this.state=R:e===Re?this.state=N:Pe(e)&&(this.state=x,this.q=e))}sDTDQuoted(){const e=this.q;this.captureToChar(e)&&(this.text+=String.fromCodePoint(e),this.state=A,this.q=null)}sDTDOpenWaka(){const e=this.getCodeNorm();switch(this.text+=String.fromCodePoint(e),e){case me:this.state=D,this.openWakaBang="";break;case xe:this.state=k;break;default:this.state=A}}sDTDOpenWakaBang(){const e=String.fromCodePoint(this.getCodeNorm()),t=this.openWakaBang+=e;this.text+=e,"-"!==t&&(this.state="--"===t?I:A,this.openWakaBang="")}sDTDComment(){this.captureToChar(ve)&&(this.text+="-",this.state=C)}sDTDCommentEnding(){const e=this.getCodeNorm();this.text+=String.fromCodePoint(e),this.state=e===ve?P:I}sDTDCommentEnded(){const e=this.getCodeNorm();this.text+=String.fromCodePoint(e),e===Ae?this.state=A:(this.fail("malformed comment."),this.state=I)}sDTDPI(){this.captureToChar(xe)&&(this.text+="?",this.state=$)}sDTDPIEnding(){const e=this.getCodeNorm();this.text+=String.fromCodePoint(e),e===Ae&&(this.state=A)}sText(){0!==this.tags.length?this.handleTextInRoot():this.handleTextOutsideRoot()}sEntity(){let{i:e}=this;const{chunk:t}=this;e:while(1)switch(this.getCode()){case v:this.entity+=`${t.slice(e,this.prevI)}\n`,e=this.i;break;case Ee:{const{entityReturnState:r}=this,i=this.entity+t.slice(e,this.prevI);let n;this.state=r,""===i?(this.fail("empty entity name."),n="&;"):(n=this.parseEntity(i),this.entity=""),r===M&&void 0===this.textHandler||(this.text+=n);break e}case _:this.entity+=t.slice(e);break e;default:}}sOpenWaka(){const e=this.getCode();if(l(e))this.state=re,this.unget(),this.xmlDeclPossible=!1;else switch(e){case Se:this.state=ue,this.xmlDeclPossible=!1;break;case me:this.state=L,this.openWakaBang="",this.xmlDeclPossible=!1;break;case xe:this.state=G;break;default:this.fail("disallowed character in tag name"),this.state=M,this.xmlDeclPossible=!1}}sOpenWakaBang(){switch(this.openWakaBang+=String.fromCodePoint(this.getCodeNorm()),this.openWakaBang){case"[CDATA[":this.sawRoot||this.reportedTextBeforeRoot||(this.fail("text data outside of root node."),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail("text data outside of root node."),this.reportedTextAfterRoot=!0),this.state=B,this.openWakaBang="";break;case"--":this.state=F,this.openWakaBang="";break;case"DOCTYPE":this.state=R,(this.doctype||this.sawRoot)&&this.fail("inappropriately located doctype declaration."),this.openWakaBang="";break;default:this.openWakaBang.length>=7&&this.fail("incorrect syntax.")}}sComment(){this.captureToChar(ve)&&(this.state=W)}sCommentEnding(){var e;const t=this.getCodeNorm();t===ve?(this.state=H,null===(e=this.commentHandler)||void 0===e||e.call(this,this.text),this.text=""):(this.text+=`-${String.fromCodePoint(t)}`,this.state=F)}sCommentEnded(){const e=this.getCodeNorm();e!==Ae?(this.fail("malformed comment."),this.text+=`--${String.fromCodePoint(e)}`,this.state=F):this.state=M}sCData(){this.captureToChar(De)&&(this.state=U)}sCDataEnding(){const e=this.getCodeNorm();e===De?this.state=V:(this.text+=`]${String.fromCodePoint(e)}`,this.state=B)}sCDataEnding2(){var e;const t=this.getCodeNorm();switch(t){case Ae:null===(e=this.cdataHandler)||void 0===e||e.call(this,this.text),this.text="",this.state=M;break;case De:this.text+="]";break;default:this.text+=`]]${String.fromCodePoint(t)}`,this.state=B}}sPIFirstChar(){const e=this.getCodeNorm();this.nameStartCheck(e)?(this.piTarget+=String.fromCodePoint(e),this.state=q):e===xe||a(e)?(this.fail("processing instruction without a target."),this.state=e===xe?Y:X):(this.fail("disallowed character in processing instruction name."),this.piTarget+=String.fromCodePoint(e),this.state=q)}sPIRest(){const{chunk:e,i:t}=this;while(1){const r=this.getCodeNorm();if(r===_)return void(this.piTarget+=e.slice(t));if(!this.nameCheck(r)){this.piTarget+=e.slice(t,this.prevI);const i=r===xe;i||a(r)?"xml"===this.piTarget?(this.xmlDeclPossible||this.fail("an XML declaration must be at the start of the document."),this.state=i?te:z):this.state=i?Y:X:(this.fail("disallowed character in processing instruction name."),this.piTarget+=String.fromCodePoint(r));break}}}sPIBody(){if(0===this.text.length){const e=this.getCodeNorm();e===xe?this.state=Y:a(e)||(this.text=String.fromCodePoint(e))}else this.captureToChar(xe)&&(this.state=Y)}sPIEnding(){var e;const t=this.getCodeNorm();if(t===Ae){const{piTarget:t}=this;"xml"===t.toLowerCase()&&this.fail("the XML declaration must appear at the start of the document."),null===(e=this.piHandler)||void 0===e||e.call(this,{target:t,body:this.text}),this.piTarget=this.text="",this.state=M}else t===xe?this.text+="?":(this.text+=`?${String.fromCodePoint(t)}`,this.state=X);this.xmlDeclPossible=!1}sXMLDeclNameStart(){const e=this.skipSpaces();e!==xe?e!==_&&(this.state=Z,this.name=String.fromCodePoint(e)):this.state=te}sXMLDeclName(){const e=this.captureTo(Oe);if(e===xe)return this.state=te,this.name+=this.text,this.text="",void this.fail("XML declaration is incomplete.");if(a(e)||e===Te){if(this.name+=this.text,this.text="",!this.xmlDeclExpects.includes(this.name))switch(this.name.length){case 0:this.fail("did not expect any more name/value pairs.");break;case 1:this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);break;default:this.fail(`expected one of ${this.xmlDeclExpects.join(", ")}`)}this.state=e===Te?Q:K}}sXMLDeclEq(){const e=this.getCodeNorm();if(e===xe)return this.state=te,void this.fail("XML declaration is incomplete.");a(e)||(e!==Te&&this.fail("value required."),this.state=Q)}sXMLDeclValueStart(){const e=this.getCodeNorm();if(e===xe)return this.state=te,void this.fail("XML declaration is incomplete.");a(e)||(Pe(e)?this.q=e:(this.fail("value must be quoted."),this.q=ge),this.state=J)}sXMLDeclValue(){const e=this.captureTo([this.q,xe]);if(e===xe)return this.state=te,this.text="",void this.fail("XML declaration is incomplete.");if(e===_)return;const t=this.text;switch(this.text="",this.name){case"version":{this.xmlDeclExpects=["encoding","standalone"];const e=t;this.xmlDecl.version=e,/^1\.[0-9]+$/.test(e)?this.opt.forceXMLVersion||this.setXMLVersion(e):this.fail("version number must match /^1\\.[0-9]+$/.");break}case"encoding":/^[A-Za-z][A-Za-z0-9._-]*$/.test(t)||this.fail("encoding value must match /^[A-Za-z0-9][A-Za-z0-9._-]*$/."),this.xmlDeclExpects=["standalone"],this.xmlDecl.encoding=t;break;case"standalone":"yes"!==t&&"no"!==t&&this.fail('standalone value must match "yes" or "no".'),this.xmlDeclExpects=[],this.xmlDecl.standalone=t;break;default:}this.name="",this.state=ee}sXMLDeclSeparator(){const e=this.getCodeNorm();e!==xe?(a(e)||(this.fail("whitespace required."),this.unget()),this.state=z):this.state=te}sXMLDeclEnding(){var e;const t=this.getCodeNorm();t===Ae?("xml"!==this.piTarget?this.fail("processing instructions are not allowed before root."):"version"!==this.name&&this.xmlDeclExpects.includes("version")&&this.fail("XML declaration must contain a version."),null===(e=this.xmldeclHandler)||void 0===e||e.call(this,this.xmlDecl),this.name="",this.piTarget=this.text="",this.state=M):this.fail("The character ? is disallowed anywhere in XML declarations."),this.xmlDeclPossible=!1}sOpenTag(){var e;const t=this.captureNameChars();if(t===_)return;const r=this.tag={name:this.name,attributes:Object.create(null)};switch(this.name="",this.xmlnsOpt&&(this.topNS=r.ns=Object.create(null)),null===(e=this.openTagStartHandler)||void 0===e||e.call(this,r),this.sawRoot=!0,!this.fragmentOpt&&this.closedRoot&&this.fail("documents may contain only one root."),t){case Ae:this.openTag();break;case Se:this.state=ie;break;default:a(t)||this.fail("disallowed character in tag name."),this.state=ne}}sOpenTagSlash(){this.getCode()===Ae?this.openSelfClosingTag():(this.fail("forward-slash in opening tag not followed by >."),this.state=ne)}sAttrib(){const e=this.skipSpaces();e!==_&&(l(e)?(this.unget(),this.state=oe):e===Ae?this.openTag():e===Se?this.state=ie:this.fail("disallowed character in attribute name."))}sAttribName(){const e=this.captureNameChars();e===Te?this.state=se:a(e)?this.state=ae:e===Ae?(this.fail("attribute without value."),this.pushAttrib(this.name,this.name),this.name=this.text="",this.openTag()):e!==_&&this.fail("disallowed character in attribute name.")}sAttribNameSawWhite(){const e=this.skipSpaces();switch(e){case _:return;case Te:this.state=se;break;default:this.fail("attribute without value."),this.text="",this.name="",e===Ae?this.openTag():l(e)?(this.unget(),this.state=oe):(this.fail("disallowed character in attribute name."),this.state=ne)}}sAttribValue(){const e=this.getCodeNorm();Pe(e)?(this.q=e,this.state=le):a(e)||(this.fail("unquoted attribute value."),this.state=ce,this.unget())}sAttribValueQuoted(){const{q:e,chunk:t}=this;let{i:r}=this;while(1)switch(this.getCode()){case e:return this.pushAttrib(this.name,this.text+t.slice(r,this.prevI)),this.name=this.text="",this.q=null,void(this.state=de);case we:return this.text+=t.slice(r,this.prevI),this.state=O,void(this.entityReturnState=le);case pe:case v:case fe:this.text+=`${t.slice(r,this.prevI)} `,r=this.i;break;case Re:return this.text+=t.slice(r,this.prevI),void this.fail("disallowed character.");case _:return void(this.text+=t.slice(r));default:}}sAttribValueClosed(){const e=this.getCodeNorm();a(e)?this.state=ne:e===Ae?this.openTag():e===Se?this.state=ie:l(e)?(this.fail("no whitespace between attributes."),this.unget(),this.state=oe):this.fail("disallowed character in attribute name.")}sAttribValueUnquoted(){const e=this.captureTo(je);switch(e){case we:this.state=O,this.entityReturnState=ce;break;case Re:this.fail("disallowed character.");break;case _:break;default:this.text.includes("]]>")&&this.fail('the string "]]>" is disallowed in char data.'),this.pushAttrib(this.name,this.text),this.name=this.text="",e===Ae?this.openTag():this.state=ne}}sCloseTag(){const e=this.captureNameChars();e===Ae?this.closeTag():a(e)?this.state=he:e!==_&&this.fail("disallowed character in closing tag.")}sCloseTagSawWhite(){switch(this.skipSpaces()){case Ae:this.closeTag();break;case _:break;default:this.fail("disallowed character in closing tag.")}}handleTextInRoot(){let{i:e,forbiddenState:t}=this;const{chunk:r,textHandler:i}=this;e:while(1)switch(this.getCode()){case Re:if(this.state=j,void 0!==i){const{text:t}=this,n=r.slice(e,this.prevI);0!==t.length?(i(t+n),this.text=""):0!==n.length&&i(n)}t=Be;break e;case we:this.state=O,this.entityReturnState=M,void 0!==i&&(this.text+=r.slice(e,this.prevI)),t=Be;break e;case De:switch(t){case Be:t=Ue;break;case Ue:t=Ve;break;case Ve:break;default:throw new Error("impossible state")}break;case Ae:t===Ve&&this.fail('the string "]]>" is disallowed in char data.'),t=Be;break;case v:void 0!==i&&(this.text+=`${r.slice(e,this.prevI)}\n`),e=this.i,t=Be;break;case _:void 0!==i&&(this.text+=r.slice(e));break e;default:t=Be}this.forbiddenState=t}handleTextOutsideRoot(){let{i:e}=this;const{chunk:t,textHandler:r}=this;let i=!1;e:while(1){const n=this.getCode();switch(n){case Re:if(this.state=j,void 0!==r){const{text:i}=this,n=t.slice(e,this.prevI);0!==i.length?(r(i+n),this.text=""):0!==n.length&&r(n)}break e;case we:this.state=O,this.entityReturnState=M,void 0!==r&&(this.text+=t.slice(e,this.prevI)),i=!0;break e;case v:void 0!==r&&(this.text+=`${t.slice(e,this.prevI)}\n`),e=this.i;break;case _:void 0!==r&&(this.text+=t.slice(e));break e;default:a(n)||(i=!0)}}i&&(this.sawRoot||this.reportedTextBeforeRoot||(this.fail("text data outside of root node."),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail("text data outside of root node."),this.reportedTextAfterRoot=!0))}pushAttribNS(e,t){var r;const{prefix:i,local:n}=this.qname(e),o={name:e,prefix:i,local:n,value:t};if(this.attribList.push(o),null===(r=this.attributeHandler)||void 0===r||r.call(this,o),"xmlns"===i){const e=t.trim();"1.0"===this.currentXMLVersion&&""===e&&this.fail("invalid attempt to undefine prefix in XML 1.0"),this.topNS[n]=e,Le(this,n,e)}else if("xmlns"===e){const e=t.trim();this.topNS[""]=e,Le(this,"",e)}}pushAttribPlain(e,t){var r;const i={name:e,value:t};this.attribList.push(i),null===(r=this.attributeHandler)||void 0===r||r.call(this,i)}end(){var e,t;this.sawRoot||this.fail("document must contain a root element.");const{tags:r}=this;while(r.length>0){const e=r.pop();this.fail(`unclosed tag: ${e.name}`)}this.state!==S&&this.state!==M&&this.fail("unexpected end.");const{text:i}=this;return 0!==i.length&&(null===(e=this.textHandler)||void 0===e||e.call(this,i),this.text=""),this._closed=!0,null===(t=this.endHandler)||void 0===t||t.call(this),this._init(),this}resolve(e){var t,r;let i=this.topNS[e];if(void 0!==i)return i;const{tags:n}=this;for(let o=n.length-1;o>=0;o--)if(i=n[o].ns[e],void 0!==i)return i;return i=this.ns[e],void 0!==i?i:null===(r=(t=this.opt).resolvePrefix)||void 0===r?void 0:r.call(t,e)}qname(e){const t=e.indexOf(":");if(-1===t)return{prefix:"",local:e};const r=e.slice(t+1),i=e.slice(0,t);return(""===i||""===r||r.includes(":"))&&this.fail(`malformed name: ${e}.`),{prefix:i,local:r}}processAttribsNS(){var e;const{attribList:t}=this,r=this.tag;{const{prefix:t,local:i}=this.qname(r.name);r.prefix=t,r.local=i;const n=r.uri=null!==(e=this.resolve(t))&&void 0!==e?e:"";""!==t&&("xmlns"===t&&this.fail('tags may not have "xmlns" as prefix.'),""===n&&(this.fail(`unbound namespace prefix: ${JSON.stringify(t)}.`),r.uri=t))}if(0===t.length)return;const{attributes:i}=r,n=new Set;for(const o of t){const{name:e,prefix:t,local:r}=o;let a,s;""===t?(a="xmlns"===e?m:"",s=e):(a=this.resolve(t),void 0===a&&(this.fail(`unbound namespace prefix: ${JSON.stringify(t)}.`),a=t),s=`{${a}}${r}`),n.has(s)&&this.fail(`duplicate attribute: ${s}.`),n.add(s),o.uri=a,i[e]=o}this.attribList=[]}processAttribsPlain(){const{attribList:e}=this,t=this.tag.attributes;for(const{name:r,value:i}of e)void 0!==t[r]&&this.fail(`duplicate attribute: ${r}.`),t[r]=i;this.attribList=[]}openTag(){var e;this.processAttribs();const{tags:t}=this,r=this.tag;r.isSelfClosing=!1,null===(e=this.openTagHandler)||void 0===e||e.call(this,r),t.push(r),this.state=M,this.name=""}openSelfClosingTag(){var e,t,r;this.processAttribs();const{tags:i}=this,n=this.tag;n.isSelfClosing=!0,null===(e=this.openTagHandler)||void 0===e||e.call(this,n),null===(t=this.closeTagHandler)||void 0===t||t.call(this,n);const o=this.tag=null!==(r=i[i.length-1])&&void 0!==r?r:null;null===o&&(this.closedRoot=!0),this.state=M,this.name=""}closeTag(){const{tags:e,name:t}=this;if(this.state=M,this.name="",""===t)return this.fail("weird empty close tag."),void(this.text+="");const r=this.closeTagHandler;let i=e.length;while(i-- >0){const i=this.tag=e.pop();if(this.topNS=i.ns,null===r||void 0===r||r(i),i.name===t)break;this.fail("unexpected close tag.")}0===i?this.closedRoot=!0:i<0&&(this.fail(`unmatched closing tag: ${t}.`),this.text+=``)}parseEntity(e){if("#"!==e[0]){const t=this.ENTITIES[e];return void 0!==t?t:(this.fail(this.isName(e)?"undefined entity.":"disallowed character in entity name."),`&${e};`)}let t=NaN;return"x"===e[1]&&/^#x[0-9a-f]+$/i.test(e)?t=parseInt(e.slice(2),16):/^#[0-9]+$/.test(e)&&(t=parseInt(e.slice(1),10)),this.isChar(t)?String.fromCodePoint(t):(this.fail("malformed character entity."),`&${e};`)}}t.SaxesParser=qe},41640:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(7970),t),n(r(37498),t),n(r(16381),t),n(r(72808),t),n(r(92016),t),n(r(63387),t),n(r(71573),t)},7970:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BlankNode=void 0;class r{constructor(e){this.termType="BlankNode",this.value=e}equals(e){return!!e&&"BlankNode"===e.termType&&e.value===this.value}}t.BlankNode=r},37498:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataFactory=void 0;const i=r(7970),n=r(16381),o=r(72808),a=r(92016),s=r(63387),l=r(71573);let d=0;class c{constructor(e){this.blankNodeCounter=0,e=e||{},this.blankNodePrefix=e.blankNodePrefix||`df_${d++}_`}namedNode(e){return new a.NamedNode(e)}blankNode(e){return new i.BlankNode(e||`${this.blankNodePrefix}${this.blankNodeCounter++}`)}literal(e,t){return new o.Literal(e,t)}variable(e){return new l.Variable(e)}defaultGraph(){return n.DefaultGraph.INSTANCE}quad(e,t,r,i){return new s.Quad(e,t,r,i||this.defaultGraph())}fromTerm(e){switch(e.termType){case"NamedNode":return this.namedNode(e.value);case"BlankNode":return this.blankNode(e.value);case"Literal":return e.language?this.literal(e.value,e.language):e.datatype.equals(o.Literal.XSD_STRING)?this.literal(e.value):this.literal(e.value,this.fromTerm(e.datatype));case"Variable":return this.variable(e.value);case"DefaultGraph":return this.defaultGraph();case"Quad":return this.quad(this.fromTerm(e.subject),this.fromTerm(e.predicate),this.fromTerm(e.object),this.fromTerm(e.graph))}}fromQuad(e){return this.fromTerm(e)}resetBlankNodeCounter(){this.blankNodeCounter=0}}t.DataFactory=c},16381:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultGraph=void 0;class r{constructor(){this.termType="DefaultGraph",this.value=""}equals(e){return!!e&&"DefaultGraph"===e.termType}}t.DefaultGraph=r,r.INSTANCE=new r},72808:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Literal=void 0;const i=r(92016);class n{constructor(e,t){this.termType="Literal",this.value=e,"string"===typeof t?(this.language=t,this.datatype=n.RDF_LANGUAGE_STRING):t?(this.language="",this.datatype=t):(this.language="",this.datatype=n.XSD_STRING)}equals(e){return!!e&&"Literal"===e.termType&&e.value===this.value&&e.language===this.language&&e.datatype.equals(this.datatype)}}t.Literal=n,n.RDF_LANGUAGE_STRING=new i.NamedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"),n.XSD_STRING=new i.NamedNode("http://www.w3.org/2001/XMLSchema#string")},92016:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NamedNode=void 0;class r{constructor(e){this.termType="NamedNode",this.value=e}equals(e){return!!e&&"NamedNode"===e.termType&&e.value===this.value}}t.NamedNode=r},63387:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Quad=void 0;class r{constructor(e,t,r,i){this.termType="Quad",this.value="",this.subject=e,this.predicate=t,this.object=r,this.graph=i}equals(e){return!!e&&("Quad"===e.termType||!e.termType)&&this.subject.equals(e.subject)&&this.predicate.equals(e.predicate)&&this.object.equals(e.object)&&this.graph.equals(e.graph)}}t.Quad=r},71573:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Variable=void 0;class r{constructor(e){this.termType="Variable",this.value=e}equals(e){return!!e&&"Variable"===e.termType&&e.value===this.value}}t.Variable=r},25787:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(99568),t)},9966:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ParseError=void 0;class r extends Error{constructor(e,t){const r=e.saxParser;super(e.trackPosition?`Line ${r.line} column ${r.column+1}: ${t}`:t)}}t.ParseError=r},99568:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ParseType=t.RdfXmlParser=void 0;const i=r(68912),n=r(12893),o=r(24126),a=r(9966),s=r(41640),l=r(21017);class d extends o.Transform{constructor(e){super({readableObjectMode:!0}),this.activeTagStack=[],this.nodeIds={},e&&(Object.assign(this,e),this.options=e),this.dataFactory||(this.dataFactory=new s.DataFactory),this.baseIRI||(this.baseIRI=""),this.defaultGraph||(this.defaultGraph=this.dataFactory.defaultGraph()),!1!==this.validateUri&&(this.validateUri=!0),this.iriValidationStrategy||(this.iriValidationStrategy=this.validateUri?l.IriValidationStrategy.Pragmatic:l.IriValidationStrategy.None),this.saxParser=new n.SaxesParser({xmlns:!0,position:this.trackPosition}),this.attachSaxListeners()}import(e){const t=new o.PassThrough({readableObjectMode:!0});e.on("error",(e=>r.emit("error",e))),e.on("data",(e=>t.push(e))),e.on("end",(()=>t.push(null)));const r=t.pipe(new d(this.options));return r}_transform(e,t,r){try{this.saxParser.write(e)}catch(i){return r(i)}r()}newParseError(e){return new a.ParseError(this,e)}valueToUri(e,t){return this.uriToNamedNode((0,i.resolve)(e,t.baseIRI))}uriToNamedNode(e){const t=(0,l.validateIri)(e,this.iriValidationStrategy);if(t instanceof Error)throw this.newParseError(t.message);return this.dataFactory.namedNode(e)}validateNcname(e){if(!d.NCNAME_MATCHER.test(e))throw this.newParseError(`Not a valid NCName: ${e}`)}attachSaxListeners(){this.saxParser.on("error",(e=>this.emit("error",e))),this.saxParser.on("opentag",this.onTag.bind(this)),this.saxParser.on("text",this.onText.bind(this)),this.saxParser.on("cdata",this.onText.bind(this)),this.saxParser.on("closetag",this.onCloseTag.bind(this)),this.saxParser.on("doctype",this.onDoctype.bind(this))}onTag(e){const t=this.activeTagStack.length?this.activeTagStack[this.activeTagStack.length-1]:null;let r=c.RESOURCE;if(t&&(t.hadChildren=!0,r=t.childrenParseType),t&&t.childrenStringTags){const r=e.name;let i="";for(const t in e.attributes)i+=` ${t}="${e.attributes[t].value}"`;const n=`${r}${i}`,o=`<${n}>`;t.childrenStringTags.push(o);const a={childrenStringTags:t.childrenStringTags};return a.childrenStringEmitClosingTag=``,void this.activeTagStack.push(a)}const i={};t?(i.language=t.language,i.baseIRI=t.baseIRI):i.baseIRI=this.baseIRI,this.activeTagStack.push(i),r===c.RESOURCE?this.onTagResource(e,i,t,!t):this.onTagProperty(e,i,t)}onTagResource(e,t,r,n){t.childrenParseType=c.PROPERTY;let o=!0;if(e.uri===d.RDF){if(!n&&d.FORBIDDEN_NODE_ELEMENTS.indexOf(e.local)>=0)throw this.newParseError(`Illegal node element name: ${e.local}`);switch(e.local){case"RDF":t.childrenParseType=c.RESOURCE;case"Description":o=!1}}const a=[],s=[];let l=null,u=!1,h=!1,f=null;for(const c in e.attributes){const n=e.attributes[c];if(r&&n.uri===d.RDF)switch(n.local){case"about":if(l)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${n.value} and ${l} where found.`);l=n.value;continue;case"ID":if(l)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${n.value} and ${l} where found.`);this.validateNcname(n.value),l="#"+n.value,u=!0;continue;case"nodeID":if(l)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${n.value} and ${l} where found.`);this.validateNcname(n.value),l=n.value,h=!0;continue;case"bagID":throw this.newParseError("rdf:bagID is not supported.");case"type":f=n.value;continue;case"aboutEach":throw this.newParseError("rdf:aboutEach is not supported.");case"aboutEachPrefix":throw this.newParseError("rdf:aboutEachPrefix is not supported.");case"li":throw this.newParseError("rdf:li on node elements are not supported.")}else if(n.uri===d.XML){if("lang"===n.local){t.language=""===n.value?null:n.value.toLowerCase();continue}if("base"===n.local){t.baseIRI=(0,i.resolve)(n.value,t.baseIRI);continue}}"xml"===n.prefix||"xmlns"===n.prefix||""===n.prefix&&"xmlns"===n.local||!n.uri||(a.push(this.uriToNamedNode(n.uri+n.local)),s.push(n.value))}if(null!==l&&(t.subject=h?this.dataFactory.blankNode(l):this.valueToUri(l,t),u&&this.claimNodeId(t.subject)),t.subject||(t.subject=this.dataFactory.blankNode()),o){const i=this.uriToNamedNode(e.uri+e.local);this.emitTriple(t.subject,this.dataFactory.namedNode(d.RDF+"type"),i,r?r.reifiedStatementId:null)}if(r){if(r.predicate)if(r.childrenCollectionSubject){const e=this.dataFactory.blankNode();this.emitTriple(r.childrenCollectionSubject,r.childrenCollectionPredicate,e,r.reifiedStatementId),this.emitTriple(e,this.dataFactory.namedNode(d.RDF+"first"),t.subject,t.reifiedStatementId),r.childrenCollectionSubject=e,r.childrenCollectionPredicate=this.dataFactory.namedNode(d.RDF+"rest")}else{this.emitTriple(r.subject,r.predicate,t.subject,r.reifiedStatementId);for(let e=0;e=0)throw this.newParseError(`Illegal property element name: ${e.local}`);t.predicateSubPredicates=[],t.predicateSubObjects=[];let i=!1,n=!1,o=null,a=!0;const s=[],l=[];for(const u in e.attributes){const r=e.attributes[u];if(r.uri===d.RDF)switch(r.local){case"resource":if(o)throw this.newParseError(`Found both rdf:resource (${r.value}) and rdf:nodeID (${o}).`);if(i)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:resource (${r.value})`);t.hadChildren=!0,o=r.value,a=!1;continue;case"datatype":if(n)throw this.newParseError(`Found both non-rdf:* property attributes and rdf:datatype (${r.value}).`);if(i)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${r.value})`);t.datatype=this.valueToUri(r.value,t);continue;case"nodeID":if(n)throw this.newParseError(`Found both non-rdf:* property attributes and rdf:nodeID (${r.value}).`);if(t.hadChildren)throw this.newParseError(`Found both rdf:resource and rdf:nodeID (${r.value}).`);if(i)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID (${r.value})`);this.validateNcname(r.value),t.hadChildren=!0,o=r.value,a=!0;continue;case"bagID":throw this.newParseError("rdf:bagID is not supported.");case"parseType":if(n)throw this.newParseError("rdf:parseType is not allowed when non-rdf:* property attributes are present");if(t.datatype)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${t.datatype.value})`);if(o)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID or rdf:resource (${o})`);if("Resource"===r.value){i=!0,t.childrenParseType=c.PROPERTY;const e=this.dataFactory.blankNode();this.emitTriple(t.subject,t.predicate,e,t.reifiedStatementId),t.subject=e,t.predicate=null}else"Collection"===r.value?(i=!0,t.hadChildren=!0,t.childrenCollectionSubject=t.subject,t.childrenCollectionPredicate=t.predicate,a=!1):"Literal"===r.value&&(i=!0,t.childrenTagsToString=!0,t.childrenStringTags=[]);continue;case"ID":this.validateNcname(r.value),t.reifiedStatementId=this.valueToUri("#"+r.value,t),this.claimNodeId(t.reifiedStatementId);continue}else if(r.uri===d.XML&&"lang"===r.local){t.language=""===r.value?null:r.value.toLowerCase();continue}if("xml"!==r.prefix&&"xmlns"!==r.prefix&&(""!==r.prefix||"xmlns"!==r.local)&&r.uri){if(i||t.datatype)throw this.newParseError(`Found illegal rdf:* properties on property element with attribute: ${r.value}`);t.hadChildren=!0,n=!0,s.push(this.uriToNamedNode(r.uri+r.local)),l.push(this.dataFactory.literal(r.value,t.datatype||t.language))}}if(null!==o){const e=t.subject;t.subject=a?this.dataFactory.blankNode(o):this.valueToUri(o,t),this.emitTriple(e,t.predicate,t.subject,t.reifiedStatementId);for(let r=0;r/g,((e,t,r)=>(this.saxParser.ENTITIES[t]=r,"")))}}var c;t.RdfXmlParser=d,d.MIME_TYPE="application/rdf+xml",d.RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#",d.XML="http://www.w3.org/XML/1998/namespace",d.FORBIDDEN_NODE_ELEMENTS=["RDF","ID","about","bagID","parseType","resource","nodeID","li","aboutEach","aboutEachPrefix"],d.FORBIDDEN_PROPERTY_ELEMENTS=["Description","RDF","ID","about","bagID","parseType","resource","nodeID","aboutEach","aboutEachPrefix"],d.NCNAME_MATCHER=/^([A-Za-z\xC0-\xD6\xD8-\xF6\u{F8}-\u{2FF}\u{370}-\u{37D}\u{37F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}_])([A-Za-z\xC0-\xD6\xD8-\xF6\u{F8}-\u{2FF}\u{370}-\u{37D}\u{37F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}_\-.0-9#xB7\u{0300}-\u{036F}\u{203F}-\u{2040}])*$/u,function(e){e[e["RESOURCE"]=0]="RESOURCE",e[e["PROPERTY"]=1]="PROPERTY"}(c||(t.ParseType=c={}))},1163:function(e,t,r){"use strict";const{SymbolDispose:i}=r(37808),{AbortError:n,codes:o}=r(33555),{isNodeStream:a,isWebStream:s,kControllerErrorFunction:l}=r(74451),d=r(41927),{ERR_INVALID_ARG_TYPE:c}=o;let u;const h=(e,t)=>{if("object"!==typeof e||!("aborted"in e))throw new c(t,"AbortSignal",e)};e.exports.addAbortSignal=function(t,r){if(h(t,"signal"),!a(r)&&!s(r))throw new c("stream",["ReadableStream","WritableStream","Stream"],r);return e.exports.addAbortSignalNoValidate(t,r)},e.exports.addAbortSignalNoValidate=function(e,t){if("object"!==typeof e||!("aborted"in e))return t;const o=a(t)?()=>{t.destroy(new n(void 0,{cause:e.reason}))}:()=>{t[l](new n(void 0,{cause:e.reason}))};if(e.aborted)o();else{u=u||r(61357).addAbortListener;const n=u(e,o);d(t,n[i])}return t}},82481:function(e,t,r){"use strict";const{StringPrototypeSlice:i,SymbolIterator:n,TypedArrayPrototypeSet:o,Uint8Array:a}=r(37808),{Buffer:s}=r(48764),{inspect:l}=r(61357);e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(e){const t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}shift(){if(0===this.length)return;const e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(0===this.length)return"";let t=this.head,r=""+t.data;while(null!==(t=t.next))r+=e+t.data;return r}concat(e){if(0===this.length)return s.alloc(0);const t=s.allocUnsafe(e>>>0);let r=this.head,i=0;while(r)o(t,r.data,i),i+=r.data.length,r=r.next;return t}consume(e,t){const r=this.head.data;if(eo.length)){e===o.length?(t+=o,++n,r.next?this.head=r.next:this.head=this.tail=null):(t+=i(o,0,e),this.head=r,r.data=i(o,e));break}t+=o,e-=o.length,++n}while(null!==(r=r.next));return this.length-=n,t}_getBuffer(e){const t=s.allocUnsafe(e),r=e;let i=this.head,n=0;do{const s=i.data;if(!(e>s.length)){e===s.length?(o(t,s,r-e),++n,i.next?this.head=i.next:this.head=this.tail=null):(o(t,new a(s.buffer,s.byteOffset,e),r-e),this.head=i,i.data=s.slice(e));break}o(t,s,r-e),e-=s.length,++n}while(null!==(i=i.next));return this.length-=n,t}[Symbol.for("nodejs.util.inspect.custom")](e,t){return l(this,{...t,depth:0,customInspect:!1})}}},72982:function(e,t,r){"use strict";const{pipeline:i}=r(33298),n=r(72664),{destroyer:o}=r(55306),{isNodeStream:a,isReadable:s,isWritable:l,isWebStream:d,isTransformStream:c,isWritableStream:u,isReadableStream:h}=r(74451),{AbortError:f,codes:{ERR_INVALID_ARG_VALUE:p,ERR_MISSING_ARGS:b}}=r(33555),g=r(41927);e.exports=function(...e){if(0===e.length)throw new b("streams");if(1===e.length)return n.from(e[0]);const t=[...e];if("function"===typeof e[0]&&(e[0]=n.from(e[0])),"function"===typeof e[e.length-1]){const t=e.length-1;e[t]=n.from(e[t])}for(let i=0;i0&&!(l(e[i])||u(e[i])||c(e[i])))throw new p(`streams[${i}]`,t[i],"must be writable")}let r,m,y,w,_;function v(e){const t=w;w=null,t?t(e):e?_.destroy(e):T||R||_.destroy()}const S=e[0],E=i(e,v),R=!!(l(S)||u(S)||c(S)),T=!!(s(E)||h(E)||c(E));if(_=new n({writableObjectMode:!(null===S||void 0===S||!S.writableObjectMode),readableObjectMode:!(null===E||void 0===E||!E.readableObjectMode),writable:R,readable:T}),R){if(a(S))_._write=function(e,t,i){S.write(e,t)?i():r=i},_._final=function(e){S.end(),m=e},S.on("drain",(function(){if(r){const e=r;r=null,e()}}));else if(d(S)){const e=c(S)?S.writable:S,t=e.getWriter();_._write=async function(e,r,i){try{await t.ready,t.write(e).catch((()=>{})),i()}catch(n){i(n)}},_._final=async function(e){try{await t.ready,t.close().catch((()=>{})),m=e}catch(r){e(r)}}}const e=c(E)?E.readable:E;g(e,(()=>{if(m){const e=m;m=null,e()}}))}if(T)if(a(E))E.on("readable",(function(){if(y){const e=y;y=null,e()}})),E.on("end",(function(){_.push(null)})),_._read=function(){while(1){const e=E.read();if(null===e)return void(y=_._read);if(!_.push(e))return}};else if(d(E)){const e=c(E)?E.readable:E,t=e.getReader();_._read=async function(){while(1)try{const{value:e,done:r}=await t.read();if(!_.push(e))return;if(r)return void _.push(null)}catch{return}}}return _._destroy=function(e,t){e||null===w||(e=new f),y=null,r=null,m=null,null===w?t(e):(w=t,a(E)&&o(E,e))},_}},55306:function(e,t,r){"use strict";const i=r(34155),{aggregateTwoErrors:n,codes:{ERR_MULTIPLE_CALLBACK:o},AbortError:a}=r(33555),{Symbol:s}=r(37808),{kIsDestroyed:l,isDestroyed:d,isFinished:c,isServerRequest:u}=r(74451),h=s("kDestroy"),f=s("kConstruct");function p(e,t,r){e&&(e.stack,t&&!t.errored&&(t.errored=e),r&&!r.errored&&(r.errored=e))}function b(e,t){const r=this._readableState,i=this._writableState,o=i||r;return null!==i&&void 0!==i&&i.destroyed||null!==r&&void 0!==r&&r.destroyed?("function"===typeof t&&t(),this):(p(e,i,r),i&&(i.destroyed=!0),r&&(r.destroyed=!0),o.constructed?g(this,e,t):this.once(h,(function(r){g(this,n(r,e),t)})),this)}function g(e,t,r){let n=!1;function o(t){if(n)return;n=!0;const o=e._readableState,a=e._writableState;p(t,a,o),a&&(a.closed=!0),o&&(o.closed=!0),"function"===typeof r&&r(t),t?i.nextTick(m,e,t):i.nextTick(y,e)}try{e._destroy(t||null,o)}catch(t){o(t)}}function m(e,t){w(e,t),y(e)}function y(e){const t=e._readableState,r=e._writableState;r&&(r.closeEmitted=!0),t&&(t.closeEmitted=!0),(null!==r&&void 0!==r&&r.emitClose||null!==t&&void 0!==t&&t.emitClose)&&e.emit("close")}function w(e,t){const r=e._readableState,i=e._writableState;null!==i&&void 0!==i&&i.errorEmitted||null!==r&&void 0!==r&&r.errorEmitted||(i&&(i.errorEmitted=!0),r&&(r.errorEmitted=!0),e.emit("error",t))}function _(){const e=this._readableState,t=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=!1===e.readable,e.endEmitted=!1===e.readable),t&&(t.constructed=!0,t.destroyed=!1,t.closed=!1,t.closeEmitted=!1,t.errored=null,t.errorEmitted=!1,t.finalCalled=!1,t.prefinished=!1,t.ended=!1===t.writable,t.ending=!1===t.writable,t.finished=!1===t.writable)}function v(e,t,r){const n=e._readableState,o=e._writableState;if(null!==o&&void 0!==o&&o.destroyed||null!==n&&void 0!==n&&n.destroyed)return this;null!==n&&void 0!==n&&n.autoDestroy||null!==o&&void 0!==o&&o.autoDestroy?e.destroy(t):t&&(t.stack,o&&!o.errored&&(o.errored=t),n&&!n.errored&&(n.errored=t),r?i.nextTick(w,e,t):w(e,t))}function S(e,t){if("function"!==typeof e._construct)return;const r=e._readableState,n=e._writableState;r&&(r.constructed=!1),n&&(n.constructed=!1),e.once(f,t),e.listenerCount(f)>1||i.nextTick(E,e)}function E(e){let t=!1;function r(r){if(t)return void v(e,null!==r&&void 0!==r?r:new o);t=!0;const n=e._readableState,a=e._writableState,s=a||n;n&&(n.constructed=!0),a&&(a.constructed=!0),s.destroyed?e.emit(h,r):r?v(e,r,!0):i.nextTick(R,e)}try{e._construct((e=>{i.nextTick(r,e)}))}catch(n){i.nextTick(r,n)}}function R(e){e.emit(f)}function T(e){return(null===e||void 0===e?void 0:e.setHeader)&&"function"===typeof e.abort}function A(e){e.emit("close")}function x(e,t){e.emit("error",t),i.nextTick(A,e)}function N(e,t){e&&!d(e)&&(t||c(e)||(t=new a),u(e)?(e.socket=null,e.destroy(t)):T(e)?e.abort():T(e.req)?e.req.abort():"function"===typeof e.destroy?e.destroy(t):"function"===typeof e.close?e.close():t?i.nextTick(x,e,t):i.nextTick(A,e),e.destroyed||(e[l]=!0))}e.exports={construct:S,destroyer:N,destroy:b,undestroy:_,errorOrDestroy:v}},72664:function(e,t,r){"use strict";const{ObjectDefineProperties:i,ObjectGetOwnPropertyDescriptor:n,ObjectKeys:o,ObjectSetPrototypeOf:a}=r(37808);e.exports=d;const s=r(37470),l=r(18672);a(d.prototype,s.prototype),a(d,s);{const e=o(l.prototype);for(let t=0;t{u=!1,e&&y(t,e),h(e)})),d._write=function(e,t,n){r.write(e,t)?n():i=n},d._final=function(e){r.end(),n=e},r.on("drain",(function(){if(i){const e=i;i=null,e()}})),r.on("finish",(function(){if(n){const e=n;n=null,e()}}))),c&&(p(t,(e=>{c=!1,e&&y(t,e),h(e)})),t.on("readable",(function(){if(s){const e=s;s=null,e()}})),t.on("end",(function(){d.push(null)})),d._read=function(){while(1){const e=t.read();if(null===e)return void(s=d._read);if(!d.push(e))return}}),d._destroy=function(e,o){e||null===l||(e=new b),s=null,i=null,n=null,null===l?o(e):(l=o,y(r,e),y(t,e))},d}e.exports=function e(t,r){if(u(t))return t;if(d(t))return I({readable:t});if(c(t))return I({writable:t});if(l(t))return I({writable:!1,readable:!1});if(h(t))return I({readable:_.fromWeb(t)});if(f(t))return I({writable:v.fromWeb(t)});if("function"===typeof t){const{value:e,write:n,final:o,destroy:a}=D(t);if(s(e))return E(N,e,{objectMode:!0,write:n,final:o,destroy:a});const l=null===e||void 0===e?void 0:e.then;if("function"===typeof l){let t;const r=x(l,e,(e=>{if(null!=e)throw new m("nully","body",e)}),(e=>{y(t,e)}));return t=new N({objectMode:!0,readable:!1,write:n,final(e){o((async()=>{try{await r,i.nextTick(e,null)}catch(t){i.nextTick(e,t)}}))},destroy:a})}throw new m("Iterable, AsyncIterable or AsyncFunction",r,e)}if(T(t))return e(t.arrayBuffer());if(s(t))return E(N,t,{objectMode:!0,writable:!1});if(h(null===t||void 0===t?void 0:t.readable)&&f(null===t||void 0===t?void 0:t.writable))return N.fromWeb(t);if("object"===typeof(null===t||void 0===t?void 0:t.writable)||"object"===typeof(null===t||void 0===t?void 0:t.readable)){const r=null!==t&&void 0!==t&&t.readable?d(null===t||void 0===t?void 0:t.readable)?null===t||void 0===t?void 0:t.readable:e(t.readable):void 0,i=null!==t&&void 0!==t&&t.writable?c(null===t||void 0===t?void 0:t.writable)?null===t||void 0===t?void 0:t.writable:e(t.writable):void 0;return I({readable:r,writable:i})}const n=null===t||void 0===t?void 0:t.then;if("function"===typeof n){let e;return x(n,t,(t=>{null!=t&&e.push(t),e.push(null)}),(t=>{y(e,t)})),e=new N({objectMode:!0,writable:!1,read(){}})}throw new g(r,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],t)}},41927:function(e,t,r){const i=r(34155),{AbortError:n,codes:o}=r(33555),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:s}=o,{kEmptyObject:l,once:d}=r(61357),{validateAbortSignal:c,validateFunction:u,validateObject:h,validateBoolean:f}=r(79395),{Promise:p,PromisePrototypeThen:b,SymbolDispose:g}=r(37808),{isClosed:m,isReadable:y,isReadableNodeStream:w,isReadableStream:_,isReadableFinished:v,isReadableErrored:S,isWritable:E,isWritableNodeStream:R,isWritableStream:T,isWritableFinished:A,isWritableErrored:x,isNodeStream:N,willEmitClose:D,kIsClosedPromise:I}=r(74451);let C;function P(e){return e.setHeader&&"function"===typeof e.abort}const k=()=>{};function $(e,t,o){var f,p;if(2===arguments.length?(o=t,t=l):null==t?t=l:h(t,"options"),u(o,"callback"),c(t.signal,"options.signal"),o=d(o),_(e)||T(e))return M(e,t,o);if(!N(e))throw new a("stream",["ReadableStream","WritableStream","Stream"],e);const b=null!==(f=t.readable)&&void 0!==f?f:w(e),I=null!==(p=t.writable)&&void 0!==p?p:R(e),$=e._writableState,O=e._readableState,j=()=>{e.writable||W()};let L=D(e)&&w(e)===b&&R(e)===I,F=A(e,!1);const W=()=>{F=!0,e.destroyed&&(L=!1),(!L||e.readable&&!b)&&(b&&!H||o.call(e))};let H=v(e,!1);const B=()=>{H=!0,e.destroyed&&(L=!1),(!L||e.writable&&!I)&&(I&&!F||o.call(e))},U=t=>{o.call(e,t)};let V=m(e);const G=()=>{V=!0;const t=x(e)||S(e);return t&&"boolean"!==typeof t?o.call(e,t):b&&!H&&w(e,!0)&&!v(e,!1)?o.call(e,new s):!I||F||A(e,!1)?void o.call(e):o.call(e,new s)},q=()=>{V=!0;const t=x(e)||S(e);if(t&&"boolean"!==typeof t)return o.call(e,t);o.call(e)},X=()=>{e.req.on("finish",W)};P(e)?(e.on("complete",W),L||e.on("abort",G),e.req?X():e.on("request",X)):I&&!$&&(e.on("end",j),e.on("close",j)),L||"boolean"!==typeof e.aborted||e.on("aborted",G),e.on("end",B),e.on("finish",W),!1!==t.error&&e.on("error",U),e.on("close",G),V?i.nextTick(G):null!==$&&void 0!==$&&$.errorEmitted||null!==O&&void 0!==O&&O.errorEmitted?L||i.nextTick(q):(b||L&&!y(e)||!F&&!1!==E(e))&&(I||L&&!E(e)||!H&&!1!==y(e))?O&&e.req&&e.aborted&&i.nextTick(q):i.nextTick(q);const Y=()=>{o=k,e.removeListener("aborted",G),e.removeListener("complete",W),e.removeListener("abort",G),e.removeListener("request",X),e.req&&e.req.removeListener("finish",W),e.removeListener("end",j),e.removeListener("close",j),e.removeListener("finish",W),e.removeListener("end",B),e.removeListener("error",U),e.removeListener("close",G)};if(t.signal&&!V){const a=()=>{const r=o;Y(),r.call(e,new n(void 0,{cause:t.signal.reason}))};if(t.signal.aborted)i.nextTick(a);else{C=C||r(61357).addAbortListener;const i=C(t.signal,a),n=o;o=d(((...t)=>{i[g](),n.apply(e,t)}))}}return Y}function M(e,t,o){let a=!1,s=k;if(t.signal)if(s=()=>{a=!0,o.call(e,new n(void 0,{cause:t.signal.reason}))},t.signal.aborted)i.nextTick(s);else{C=C||r(61357).addAbortListener;const i=C(t.signal,s),n=o;o=d(((...t)=>{i[g](),n.apply(e,t)}))}const l=(...t)=>{a||i.nextTick((()=>o.apply(e,t)))};return b(e[I].promise,l,l),k}function O(e,t){var r;let i=!1;return null===t&&(t=l),null!==(r=t)&&void 0!==r&&r.cleanup&&(f(t.cleanup,"cleanup"),i=t.cleanup),new p(((r,n)=>{const o=$(e,t,(e=>{i&&o(),e?n(e):r()}))}))}e.exports=$,e.exports.finished=O},57722:function(e,t,r){"use strict";const i=r(34155),{PromisePrototypeThen:n,SymbolAsyncIterator:o,SymbolIterator:a}=r(37808),{Buffer:s}=r(48764),{ERR_INVALID_ARG_TYPE:l,ERR_STREAM_NULL_VALUES:d}=r(33555).codes;function c(e,t,r){let c,u;if("string"===typeof t||t instanceof s)return new e({objectMode:!0,...r,read(){this.push(t),this.push(null)}});if(t&&t[o])u=!0,c=t[o]();else{if(!t||!t[a])throw new l("iterable",["Iterable"],t);u=!1,c=t[a]()}const h=new e({objectMode:!0,highWaterMark:1,...r});let f=!1;async function p(e){const t=void 0!==e&&null!==e,r="function"===typeof c.throw;if(t&&r){const{value:t,done:r}=await c.throw(e);if(await t,r)return}if("function"===typeof c.return){const{value:e}=await c.return();await e}}async function b(){for(;;){try{const{value:e,done:t}=u?await c.next():c.next();if(t)h.push(null);else{const t=e&&"function"===typeof e.then?await e:e;if(null===t)throw f=!1,new d;if(h.push(t))continue;f=!1}}catch(e){h.destroy(e)}break}}return h._read=function(){f||(f=!0,b())},h._destroy=function(e,t){n(p(e),(()=>i.nextTick(t,e)),(r=>i.nextTick(t,r||e)))},h}e.exports=c},16618:function(e,t,r){"use strict";const{ArrayIsArray:i,ObjectSetPrototypeOf:n}=r(37808),{EventEmitter:o}=r(17187);function a(e){o.call(this,e)}function s(e,t,r){if("function"===typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?i(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}n(a.prototype,o.prototype),n(a,o),a.prototype.pipe=function(e,t){const r=this;function i(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function n(){r.readable&&r.resume&&r.resume()}r.on("data",i),e.on("drain",n),e._isStdio||t&&!1===t.end||(r.on("end",l),r.on("close",d));let a=!1;function l(){a||(a=!0,e.end())}function d(){a||(a=!0,"function"===typeof e.destroy&&e.destroy())}function c(e){u(),0===o.listenerCount(this,"error")&&this.emit("error",e)}function u(){r.removeListener("data",i),e.removeListener("drain",n),r.removeListener("end",l),r.removeListener("close",d),r.removeListener("error",c),e.removeListener("error",c),r.removeListener("end",u),r.removeListener("close",u),e.removeListener("close",u)}return s(r,"error",c),s(e,"error",c),r.on("end",u),r.on("close",u),e.on("close",u),e.emit("pipe",r),e},e.exports={Stream:a,prependListener:s}},83093:function(e,t,r){"use strict";const i=globalThis.AbortController||r(28599).AbortController,{codes:{ERR_INVALID_ARG_VALUE:n,ERR_INVALID_ARG_TYPE:o,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:s},AbortError:l}=r(33555),{validateAbortSignal:d,validateInteger:c,validateObject:u}=r(79395),h=r(37808).Symbol("kWeak"),f=r(37808).Symbol("kResistStopPropagation"),{finished:p}=r(41927),b=r(72982),{addAbortSignalNoValidate:g}=r(1163),{isWritable:m,isNodeStream:y}=r(74451),{deprecate:w}=r(61357),{ArrayPrototypePush:_,Boolean:v,MathFloor:S,Number:E,NumberIsNaN:R,Promise:T,PromiseReject:A,PromiseResolve:x,PromisePrototypeThen:N,Symbol:D}=r(37808),I=D("kEmpty"),C=D("kEof");function P(e,t){if(null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),y(e)&&!m(e))throw new n("stream",e,"must be writable");const r=b(this,e);return null!==t&&void 0!==t&&t.signal&&g(t.signal,r),r}function k(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal");let i=1;null!=(null===t||void 0===t?void 0:t.concurrency)&&(i=S(t.concurrency));let n=i-1;return null!=(null===t||void 0===t?void 0:t.highWaterMark)&&(n=S(t.highWaterMark)),c(i,"options.concurrency",1),c(n,"options.highWaterMark",0),n+=i,async function*(){const o=r(61357).AbortSignalAny([null===t||void 0===t?void 0:t.signal].filter(v)),a=this,s=[],d={signal:o};let c,u,h=!1,f=0;function p(){h=!0,b()}function b(){f-=1,g()}function g(){u&&!h&&f=n||f>=i)&&await new T((e=>{u=e}))}s.push(C)}catch(t){const e=A(t);N(e,b,p),s.push(e)}finally{h=!0,c&&(c(),c=null)}}m();try{while(1){while(s.length>0){const e=await s[0];if(e===C)return;if(o.aborted)throw new l;e!==I&&(yield e),s.shift(),g()}await new T((e=>{c=e}))}}finally{h=!0,u&&(u(),u=null)}}.call(this)}function $(e=void 0){return null!=e&&u(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal"),async function*(){let t=0;for await(const i of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new l({cause:e.signal.reason});yield[t++,i]}}.call(this)}async function M(e,t=void 0){for await(const r of F.call(this,e,t))return!0;return!1}async function O(e,t=void 0){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);return!await M.call(this,(async(...t)=>!await e(...t)),t)}async function j(e,t){for await(const r of F.call(this,e,t))return r}async function L(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r),I}for await(const i of k.call(this,r,t));}function F(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function r(t,r){return await e(t,r)?t:I}return k.call(this,r,t)}class W extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function H(e,t,r){var n;if("function"!==typeof e)throw new o("reducer",["Function","AsyncFunction"],e);null!=r&&u(r,"options"),null!=(null===r||void 0===r?void 0:r.signal)&&d(r.signal,"options.signal");let a=arguments.length>1;if(null!==r&&void 0!==r&&null!==(n=r.signal)&&void 0!==n&&n.aborted){const e=new l(void 0,{cause:r.signal.reason});throw this.once("error",(()=>{})),await p(this.destroy(e)),e}const s=new i,c=s.signal;if(null!==r&&void 0!==r&&r.signal){const e={once:!0,[h]:this,[f]:!0};r.signal.addEventListener("abort",(()=>s.abort()),e)}let b=!1;try{for await(const i of this){var g;if(b=!0,null!==r&&void 0!==r&&null!==(g=r.signal)&&void 0!==g&&g.aborted)throw new l;a?t=await e(t,i,{signal:c}):(t=i,a=!0)}if(!b&&!a)throw new W}finally{s.abort()}return t}async function B(e){null!=e&&u(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal");const t=[];for await(const i of this){var r;if(null!==e&&void 0!==e&&null!==(r=e.signal)&&void 0!==r&&r.aborted)throw new l(void 0,{cause:e.signal.reason});_(t,i)}return t}function U(e,t){const r=k.call(this,e,t);return async function*(){for await(const e of r)yield*e}.call(this)}function V(e){if(e=E(e),R(e))return 0;if(e<0)throw new s("number",">= 0",e);return e}function G(e,t=void 0){return null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=V(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;for await(const n of this){var i;if(null!==t&&void 0!==t&&null!==(i=t.signal)&&void 0!==i&&i.aborted)throw new l;e--<=0&&(yield n)}}.call(this)}function q(e,t=void 0){return null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=V(e),async function*(){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;for await(const n of this){var i;if(null!==t&&void 0!==t&&null!==(i=t.signal)&&void 0!==i&&i.aborted)throw new l;if(e-- >0&&(yield n),e<=0)return}}.call(this)}e.exports.streamReturningOperators={asIndexedPairs:w($,"readable.asIndexedPairs will be removed in a future version."),drop:G,filter:F,flatMap:U,map:k,take:q,compose:P},e.exports.promiseReturningOperators={every:O,forEach:L,reduce:H,toArray:B,some:M,find:j}},66541:function(e,t,r){"use strict";const{ObjectSetPrototypeOf:i}=r(37808);e.exports=o;const n=r(2595);function o(e){if(!(this instanceof o))return new o(e);n.call(this,e)}i(o.prototype,n.prototype),i(o,n),o.prototype._transform=function(e,t,r){r(null,e)}},33298:function(e,t,r){const i=r(34155),{ArrayIsArray:n,Promise:o,SymbolAsyncIterator:a,SymbolDispose:s}=r(37808),l=r(41927),{once:d}=r(61357),c=r(55306),u=r(72664),{aggregateTwoErrors:h,codes:{ERR_INVALID_ARG_TYPE:f,ERR_INVALID_RETURN_VALUE:p,ERR_MISSING_ARGS:b,ERR_STREAM_DESTROYED:g,ERR_STREAM_PREMATURE_CLOSE:m},AbortError:y}=r(33555),{validateFunction:w,validateAbortSignal:_}=r(79395),{isIterable:v,isReadable:S,isReadableNodeStream:E,isNodeStream:R,isTransformStream:T,isWebStream:A,isReadableStream:x,isReadableFinished:N}=r(74451),D=globalThis.AbortController||r(28599).AbortController;let I,C,P;function k(e,t,r){let i=!1;e.on("close",(()=>{i=!0}));const n=l(e,{readable:t,writable:r},(e=>{i=!e}));return{destroy:t=>{i||(i=!0,c.destroyer(e,t||new g("pipe")))},cleanup:n}}function $(e){return w(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function M(e){if(v(e))return e;if(E(e))return O(e);throw new f("val",["Readable","Iterable","AsyncIterable"],e)}async function*O(e){C||(C=r(37470)),yield*C.prototype[a].call(e)}async function j(e,t,r,{end:i}){let n,a=null;const s=e=>{if(e&&(n=e),a){const e=a;a=null,e()}},d=()=>new o(((e,t)=>{n?t(n):a=()=>{n?t(n):e()}}));t.on("drain",s);const c=l(t,{readable:!1},s);try{t.writableNeedDrain&&await d();for await(const r of e)t.write(r)||await d();i&&(t.end(),await d()),r()}catch(u){r(n!==u?h(n,u):u)}finally{c(),t.off("drain",s)}}async function L(e,t,r,{end:i}){T(t)&&(t=t.writable);const n=t.getWriter();try{for await(const t of e)await n.ready,n.write(t).catch((()=>{}));await n.ready,i&&await n.close(),r()}catch(o){try{await n.abort(o),r(o)}catch(o){r(o)}}}function F(...e){return W(e,d($(e)))}function W(e,t,o){if(1===e.length&&n(e[0])&&(e=e[0]),e.length<2)throw new b("streams");const a=new D,l=a.signal,d=null===o||void 0===o?void 0:o.signal,c=[];function h(){F(new y)}let g,m,w;_(d,"options.signal"),P=P||r(61357).addAbortListener,d&&(g=P(d,h));const N=[];let C,$=0;function O(e){F(e,0===--$)}function F(e,r){var n;if(!e||m&&"ERR_STREAM_PREMATURE_CLOSE"!==m.code||(m=e),m||r){while(N.length)N.shift()(m);null===(n=g)||void 0===n||n[s](),a.abort(),r&&(m||c.forEach((e=>e())),i.nextTick(t,m,w))}}for(let V=0;V0,Y=q||!1!==(null===o||void 0===o?void 0:o.end),z=V===e.length-1;if(R(G)){if(Y){const{destroy:Z,cleanup:K}=k(G,q,X);N.push(Z),S(G)&&z&&c.push(K)}function W(e){e&&"AbortError"!==e.name&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code&&O(e)}G.on("error",W),S(G)&&z&&c.push((()=>{G.removeListener("error",W)}))}if(0===V)if("function"===typeof G){if(C=G({signal:l}),!v(C))throw new p("Iterable, AsyncIterable or Stream","source",C)}else C=v(G)||E(G)||T(G)?G:u.from(G);else if("function"===typeof G){var B;if(T(C))C=M(null===(B=C)||void 0===B?void 0:B.readable);else C=M(C);if(C=G(C,{signal:l}),q){if(!v(C,!0))throw new p("AsyncIterable",`transform[${V-1}]`,C)}else{var U;I||(I=r(66541));const Q=new I({objectMode:!0}),J=null===(U=C)||void 0===U?void 0:U.then;if("function"===typeof J)$++,J.call(C,(e=>{w=e,null!=e&&Q.write(e),Y&&Q.end(),i.nextTick(O)}),(e=>{Q.destroy(e),i.nextTick(O,e)}));else if(v(C,!0))$++,j(C,Q,O,{end:Y});else{if(!x(C)&&!T(C))throw new p("AsyncIterable or Promise","destination",C);{const re=C.readable||C;$++,j(re,Q,O,{end:Y})}}C=Q;const{destroy:ee,cleanup:te}=k(C,!1,!0);N.push(ee),z&&c.push(te)}}else if(R(G)){if(E(C)){$+=2;const ie=H(C,G,O,{end:Y});S(G)&&z&&c.push(ie)}else if(T(C)||x(C)){const ne=C.readable||C;$++,j(ne,G,O,{end:Y})}else{if(!v(C))throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],C);$++,j(C,G,O,{end:Y})}C=G}else if(A(G)){if(E(C))$++,L(M(C),G,O,{end:Y});else if(x(C)||v(C))$++,L(C,G,O,{end:Y});else{if(!T(C))throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],C);$++,L(C.readable,G,O,{end:Y})}C=G}else C=u.from(G)}return(null!==l&&void 0!==l&&l.aborted||null!==d&&void 0!==d&&d.aborted)&&i.nextTick(h),C}function H(e,t,r,{end:n}){let o=!1;if(t.on("close",(()=>{o||r(new m)})),e.pipe(t,{end:!1}),n){function a(){o=!0,t.end()}N(e)?i.nextTick(a):e.once("end",a)}else r();return l(e,{readable:!0,writable:!1},(t=>{const i=e._readableState;t&&"ERR_STREAM_PREMATURE_CLOSE"===t.code&&i&&i.ended&&!i.errored&&!i.errorEmitted?e.once("end",r).once("error",r):r(t)})),l(t,{readable:!1,writable:!0},r)}e.exports={pipelineImpl:W,pipeline:F}},37470:function(e,t,r){const i=r(34155),{ArrayPrototypeIndexOf:n,NumberIsInteger:o,NumberIsNaN:a,NumberParseInt:s,ObjectDefineProperties:l,ObjectKeys:d,ObjectSetPrototypeOf:c,Promise:u,SafeSet:h,SymbolAsyncDispose:f,SymbolAsyncIterator:p,Symbol:b}=r(37808);e.exports=se,se.ReadableState=ae;const{EventEmitter:g}=r(17187),{Stream:m,prependListener:y}=r(16618),{Buffer:w}=r(48764),{addAbortSignal:_}=r(1163),v=r(41927);let S=r(61357).debuglog("stream",(e=>{S=e}));const E=r(82481),R=r(55306),{getHighWaterMark:T,getDefaultHighWaterMark:A}=r(42109),{aggregateTwoErrors:x,codes:{ERR_INVALID_ARG_TYPE:N,ERR_METHOD_NOT_IMPLEMENTED:D,ERR_OUT_OF_RANGE:I,ERR_STREAM_PUSH_AFTER_EOF:C,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:P},AbortError:k}=r(33555),{validateObject:$}=r(79395),M=b("kPaused"),{StringDecoder:O}=r(32553),j=r(57722);c(se.prototype,m.prototype),c(se,m);const L=()=>{},{errorOrDestroy:F}=R,W=1,H=2,B=4,U=8,V=16,G=32,q=64,X=128,Y=256,z=512,Z=1024,K=2048,Q=4096,J=8192,ee=16384,te=32768,re=65536,ie=1<<17,ne=1<<18;function oe(e){return{enumerable:!1,get(){return 0!==(this.state&e)},set(t){t?this.state|=e:this.state&=~e}}}function ae(e,t,i){"boolean"!==typeof i&&(i=t instanceof r(72664)),this.state=K|Q|V|G,e&&e.objectMode&&(this.state|=W),i&&e&&e.readableObjectMode&&(this.state|=W),this.highWaterMark=e?T(this,e,"readableHighWaterMark",i):A(!1),this.buffer=new E,this.length=0,this.pipes=[],this.flowing=null,this[M]=null,e&&!1===e.emitClose&&(this.state&=~K),e&&!1===e.autoDestroy&&(this.state&=~Q),this.errored=null,this.defaultEncoding=e&&e.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,e&&e.encoding&&(this.decoder=new O(e.encoding),this.encoding=e.encoding)}function se(e){if(!(this instanceof se))return new se(e);const t=this instanceof r(72664);this._readableState=new ae(e,this,t),e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.construct&&(this._construct=e.construct),e.signal&&!t&&_(e.signal,this)),m.call(this,e),R.construct(this,(()=>{this._readableState.needReadable&&ge(this,this._readableState)}))}function le(e,t,r,i){S("readableAddChunk",t);const n=e._readableState;let o;if(0===(n.state&W)&&("string"===typeof t?(r=r||n.defaultEncoding,n.encoding!==r&&(i&&n.encoding?t=w.from(t,r).toString(n.encoding):(t=w.from(t,r),r=""))):t instanceof w?r="":m._isUint8Array(t)?(t=m._uint8ArrayToBuffer(t),r=""):null!=t&&(o=new N("chunk",["string","Buffer","Uint8Array"],t))),o)F(e,o);else if(null===t)n.state&=~U,fe(e,n);else if(0!==(n.state&W)||t&&t.length>0)if(i)if(0!==(n.state&B))F(e,new P);else{if(n.destroyed||n.errored)return!1;de(e,n,t,!0)}else if(n.ended)F(e,new C);else{if(n.destroyed||n.errored)return!1;n.state&=~U,n.decoder&&!r?(t=n.decoder.write(t),n.objectMode||0!==t.length?de(e,n,t,!1):ge(e,n)):de(e,n,t,!1)}else i||(n.state&=~U,ge(e,n));return!n.ended&&(n.length0?(0!==(t.state&re)?t.awaitDrainWriters.clear():t.awaitDrainWriters=null,t.dataEmitted=!0,e.emit("data",r)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),0!==(t.state&q)&&pe(e)),ge(e,t)}l(ae.prototype,{objectMode:oe(W),ended:oe(H),endEmitted:oe(B),reading:oe(U),constructed:oe(V),sync:oe(G),needReadable:oe(q),emittedReadable:oe(X),readableListening:oe(Y),resumeScheduled:oe(z),errorEmitted:oe(Z),emitClose:oe(K),autoDestroy:oe(Q),destroyed:oe(J),closed:oe(ee),closeEmitted:oe(te),multiAwaitDrain:oe(re),readingMore:oe(ie),dataEmitted:oe(ne)}),se.prototype.destroy=R.destroy,se.prototype._undestroy=R.undestroy,se.prototype._destroy=function(e,t){t(e)},se.prototype[g.captureRejectionSymbol]=function(e){this.destroy(e)},se.prototype[f]=function(){let e;return this.destroyed||(e=this.readableEnded?null:new k,this.destroy(e)),new u(((t,r)=>v(this,(i=>i&&i!==e?r(i):t(null)))))},se.prototype.push=function(e,t){return le(this,e,t,!1)},se.prototype.unshift=function(e,t){return le(this,e,t,!0)},se.prototype.isPaused=function(){const e=this._readableState;return!0===e[M]||!1===e.flowing},se.prototype.setEncoding=function(e){const t=new O(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;const r=this._readableState.buffer;let i="";for(const n of r)i+=t.write(n);return r.clear(),""!==i&&r.push(i),this._readableState.length=i.length,this};const ce=1073741824;function ue(e){if(e>ce)throw new I("size","<= 1GiB",e);return e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++,e}function he(e,t){return e<=0||0===t.length&&t.ended?0:0!==(t.state&W)?1:a(e)?t.flowing&&t.length?t.buffer.first().length:t.length:e<=t.length?e:t.ended?t.length:0}function fe(e,t){if(S("onEofChunk"),!t.ended){if(t.decoder){const e=t.decoder.end();e&&e.length&&(t.buffer.push(e),t.length+=t.objectMode?1:e.length)}t.ended=!0,t.sync?pe(e):(t.needReadable=!1,t.emittedReadable=!0,be(e))}}function pe(e){const t=e._readableState;S("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(S("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(be,e))}function be(e){const t=e._readableState;S("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||t.errored||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,Ee(e)}function ge(e,t){!t.readingMore&&t.constructed&&(t.readingMore=!0,i.nextTick(me,e,t))}function me(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!1===t[M]?t.flowing=!0:e.listenerCount("data")>0?e.resume():t.readableListening||(t.flowing=null)}function _e(e){S("readable nexttick read 0"),e.read(0)}function ve(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(Se,e,t))}function Se(e,t){S("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Ee(e),t.flowing&&!t.reading&&e.read(0)}function Ee(e){const t=e._readableState;S("flow",t.flowing);while(t.flowing&&null!==e.read());}function Re(e,t){"function"!==typeof e.read&&(e=se.wrap(e,{objectMode:!0}));const r=Te(e,t);return r.stream=e,r}async function*Te(e,t){let r,i=L;function n(t){this===e?(i(),i=L):i=t}e.on("readable",n);const o=v(e,{writable:!1},(e=>{r=e?x(r,e):null,i(),i=L}));try{while(1){const t=e.destroyed?null:e.read();if(null!==t)yield t;else{if(r)throw r;if(null===r)return;await new u(n)}}}catch(a){throw r=x(r,a),r}finally{!r&&!1===(null===t||void 0===t?void 0:t.destroyOnReturn)||void 0!==r&&!e._readableState.autoDestroy?(e.off("readable",n),o()):R.destroyer(e,null)}}function Ae(e,t){if(0===t.length)return null;let r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function xe(e){const t=e._readableState;S("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(Ne,t,e))}function Ne(e,t){if(S("endReadableNT",e.endEmitted,e.length),!e.errored&&!e.closeEmitted&&!e.endEmitted&&0===e.length)if(e.endEmitted=!0,t.emit("end"),t.writable&&!1===t.allowHalfOpen)i.nextTick(De,t);else if(e.autoDestroy){const e=t._writableState,r=!e||e.autoDestroy&&(e.finished||!1===e.writable);r&&t.destroy()}}function De(e){const t=e.writable&&!e.writableEnded&&!e.destroyed;t&&e.end()}let Ie;function Ce(){return void 0===Ie&&(Ie={}),Ie}se.prototype.read=function(e){S("read",e),void 0===e?e=NaN:o(e)||(e=s(e,10));const t=this._readableState,r=e;if(e>t.highWaterMark&&(t.highWaterMark=ue(e)),0!==e&&(t.state&=~X),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return S("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?xe(this):pe(this),null;if(e=he(e,t),0===e&&t.ended)return 0===t.length&&xe(this),null;let i,n=0!==(t.state&q);if(S("need readable",n),(0===t.length||t.length-e0?Ae(e,t):null,null===i?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&xe(this)),null===i||t.errorEmitted||t.closeEmitted||(t.dataEmitted=!0,this.emit("data",i)),i},se.prototype._read=function(e){throw new D("_read()")},se.prototype.pipe=function(e,t){const r=this,n=this._readableState;1===n.pipes.length&&(n.multiAwaitDrain||(n.multiAwaitDrain=!0,n.awaitDrainWriters=new h(n.awaitDrainWriters?[n.awaitDrainWriters]:[]))),n.pipes.push(e),S("pipe count=%d opts=%j",n.pipes.length,t);const o=(!t||!1!==t.end)&&e!==i.stdout&&e!==i.stderr,a=o?l:w;function s(e,t){S("onunpipe"),e===r&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,u())}function l(){S("onend"),e.end()}let d;n.endEmitted?i.nextTick(a):r.once("end",a),e.on("unpipe",s);let c=!1;function u(){S("cleanup"),e.removeListener("close",g),e.removeListener("finish",m),d&&e.removeListener("drain",d),e.removeListener("error",b),e.removeListener("unpipe",s),r.removeListener("end",l),r.removeListener("end",w),r.removeListener("data",p),c=!0,d&&n.awaitDrainWriters&&(!e._writableState||e._writableState.needDrain)&&d()}function f(){c||(1===n.pipes.length&&n.pipes[0]===e?(S("false write response, pause",0),n.awaitDrainWriters=e,n.multiAwaitDrain=!1):n.pipes.length>1&&n.pipes.includes(e)&&(S("false write response, pause",n.awaitDrainWriters.size),n.awaitDrainWriters.add(e)),r.pause()),d||(d=ye(r,e),e.on("drain",d))}function p(t){S("ondata");const r=e.write(t);S("dest.write",r),!1===r&&f()}function b(t){if(S("onerror",t),w(),e.removeListener("error",b),0===e.listenerCount("error")){const r=e._writableState||e._readableState;r&&!r.errorEmitted?F(e,t):e.emit("error",t)}}function g(){e.removeListener("finish",m),w()}function m(){S("onfinish"),e.removeListener("close",g),w()}function w(){S("unpipe"),r.unpipe(e)}return r.on("data",p),y(e,"error",b),e.once("close",g),e.once("finish",m),e.emit("pipe",r),!0===e.writableNeedDrain?f():n.flowing||(S("pipe resume"),r.resume()),e},se.prototype.unpipe=function(e){const t=this._readableState,r={hasUnpiped:!1};if(0===t.pipes.length)return this;if(!e){const e=t.pipes;t.pipes=[],this.pause();for(let t=0;t0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,S("on readable",n.length,n.reading),n.length?pe(this):n.reading||i.nextTick(_e,this))),r},se.prototype.addListener=se.prototype.on,se.prototype.removeListener=function(e,t){const r=m.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(we,this),r},se.prototype.off=se.prototype.removeListener,se.prototype.removeAllListeners=function(e){const t=m.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(we,this),t},se.prototype.resume=function(){const e=this._readableState;return e.flowing||(S("resume"),e.flowing=!e.readableListening,ve(this,e)),e[M]=!1,this},se.prototype.pause=function(){return S("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(S("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[M]=!0,this},se.prototype.wrap=function(e){let t=!1;e.on("data",(r=>{!this.push(r)&&e.pause&&(t=!0,e.pause())})),e.on("end",(()=>{this.push(null)})),e.on("error",(e=>{F(this,e)})),e.on("close",(()=>{this.destroy()})),e.on("destroy",(()=>{this.destroy()})),this._read=()=>{t&&e.resume&&(t=!1,e.resume())};const r=d(e);for(let i=1;i{t?e?e(t):this.destroy(t):(null!=r&&this.push(r),this.push(null),e&&e())}))}function u(){this._final!==c&&c.call(this)}d.prototype._final=c,d.prototype._transform=function(e,t,r){throw new o("_transform()")},d.prototype._write=function(e,t,r){const i=this._readableState,n=this._writableState,o=i.length;this._transform(e,t,((e,t)=>{e?r(e):(null!=t&&this.push(t),n.ended||o===i.length||i.length{const e=this._writableState;e.writing||U(this,e),X(this,e)}))}function M(e,t,r,n){const o=e._writableState;if("function"===typeof r)n=r,r=o.defaultEncoding;else{if(r){if("buffer"!==r&&!b.isEncoding(r))throw new N(r)}else r=o.defaultEncoding;"function"!==typeof n&&(n=I)}if(null===t)throw new A;if(!o.objectMode)if("string"===typeof t)!1!==o.decodeStrings&&(t=b.from(t,r),r="buffer");else if(t instanceof b)r="buffer";else{if(!p._isUint8Array(t))throw new _("chunk",["string","Buffer","Uint8Array"],t);t=p._uint8ArrayToBuffer(t),r="buffer"}let a;return o.ending?a=new x:o.destroyed&&(a=new R("write")),a?(i.nextTick(n,a),D(e,a,!0),a):(o.pendingcb++,O(e,o,t,r,n))}function O(e,t,r,i,n){const o=t.objectMode?1:r.length;t.length+=o;const a=t.lengthr.bufferedIndex&&U(e,r),n?null!==r.afterWriteTickInfo&&r.afterWriteTickInfo.cb===o?r.afterWriteTickInfo.count++:(r.afterWriteTickInfo={count:1,cb:o,stream:e,state:r},i.nextTick(W,r.afterWriteTickInfo)):H(e,r,1,o))):D(e,new S)}function W({stream:e,state:t,count:r,cb:i}){return t.afterWriteTickInfo=null,H(e,t,r,i)}function H(e,t,r,i){const n=!t.ending&&!e.destroyed&&0===t.length&&t.needDrain;n&&(t.needDrain=!1,e.emit("drain"));while(r-- >0)t.pendingcb--,i();t.destroyed&&B(t),X(e,t)}function B(e){if(e.writing)return;for(let n=e.bufferedIndex;n1&&e._writev){t.pendingcb-=a-1;const i=t.allNoop?I:e=>{for(let t=s;t256?(r.splice(0,s),t.bufferedIndex=0):t.bufferedIndex=s}t.bufferProcessing=!1}function V(e){return e.ending&&!e.destroyed&&e.constructed&&0===e.length&&!e.errored&&0===e.buffered.length&&!e.finished&&!e.writing&&!e.errorEmitted&&!e.closeEmitted}function G(e,t){let r=!1;function n(n){if(r)D(e,null!==n&&void 0!==n?n:S());else if(r=!0,t.pendingcb--,n){const r=t[C].splice(0);for(let e=0;e{V(t)?Y(e,t):t.pendingcb--}),e,t)):V(t)&&(t.pendingcb++,Y(e,t))))}function Y(e,t){t.pendingcb--,t.finished=!0;const r=t[C].splice(0);for(let i=0;i>>0}const D=/^[0-7]+$/,I="must be a 32-bit unsigned integer or an octal string";function C(e,t,r){if("undefined"===typeof e&&(e=r),"string"===typeof e){if(null===f(D,e))throw new _(t,e,I);e=u(e,8)}return $(e,t),e}const P=m(((e,t,r=c,i=d)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new v(t,"an integer",e);if(ei)throw new v(t,`>= ${r} && <= ${i}`,e)})),k=m(((e,t,r=-2147483648,i=2147483647)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new v(t,"an integer",e);if(ei)throw new v(t,`>= ${r} && <= ${i}`,e)})),$=m(((e,t,r=!1)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new v(t,"an integer",e);const i=r?1:0,n=4294967295;if(en)throw new v(t,`>= ${i} && <= ${n}`,e)}));function M(e,t){if("string"!==typeof e)throw new w(t,"string",e)}function O(e,t,r=void 0,i){if("number"!==typeof e)throw new w(t,"number",e);if(null!=r&&ei||(null!=r||null!=i)&&l(e))throw new v(t,`${null!=r?`>= ${r}`:""}${null!=r&&null!=i?" && ":""}${null!=i?`<= ${i}`:""}`,e)}const j=m(((e,t,r)=>{if(!n(r,e)){const i=o(a(r,(e=>"string"===typeof e?`'${e}'`:p(e))),", "),n="must be one of: "+i;throw new _(t,e,n)}}));function L(e,t){if("boolean"!==typeof e)throw new w(t,"boolean",e)}function F(e,t,r){return null!=e&&h(e,t)?e[t]:r}const W=m(((e,t,r=null)=>{const n=F(r,"allowArray",!1),o=F(r,"allowFunction",!1),a=F(r,"nullable",!1);if(!a&&null===e||!n&&i(e)||"object"!==typeof e&&(!o||"function"!==typeof e))throw new w(t,"Object",e)})),H=m(((e,t)=>{if(null!=e&&"object"!==typeof e&&"function"!==typeof e)throw new w(t,"a dictionary",e)})),B=m(((e,t,r=0)=>{if(!i(e))throw new w(t,"Array",e);if(e.length{if(!T(e))throw new w(t,["Buffer","TypedArray","DataView"],e)}));function Y(e,t){const r=E(t),i=e.length;if("hex"===r&&i%2!==0)throw new _("encoding",t,`is invalid for data of length ${i}`)}function z(e,t="Port",r=!0){if("number"!==typeof e&&"string"!==typeof e||"string"===typeof e&&0===g(e).length||+e!==+e>>>0||e>65535||0===e&&!r)throw new y(t,e,r);return 0|e}const Z=m(((e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new w(t,"AbortSignal",e)})),K=m(((e,t)=>{if("function"!==typeof e)throw new w(t,"Function",e)})),Q=m(((e,t)=>{if("function"!==typeof e||R(e))throw new w(t,"Function",e)})),J=m(((e,t)=>{if(void 0!==e)throw new w(t,"undefined",e)}));function ee(e,t,r){if(!n(r,e))throw new w(t,`('${o(r,"|")}')`,e)}const te=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function re(e,t){if("undefined"===typeof e||!f(te,e))throw new _(t,e,'must be an array or string of format "; rel=preload; as=style"')}function ie(e){if("string"===typeof e)return re(e,"hints"),e;if(i(e)){const t=e.length;let r="";if(0===t)return r;for(let i=0;i; rel=preload; as=style"')}e.exports={isInt32:x,isUint32:N,parseFileMode:C,validateArray:B,validateStringArray:U,validateBooleanArray:V,validateAbortSignalArray:G,validateBoolean:L,validateBuffer:X,validateDictionary:H,validateEncoding:Y,validateFunction:K,validateInt32:k,validateInteger:P,validateNumber:O,validateObject:W,validateOneOf:j,validatePlainFunction:Q,validatePort:z,validateSignalName:q,validateString:M,validateUint32:$,validateUndefined:J,validateUnion:ee,validateAbortSignal:Z,validateLinkHeaderValue:ie}},24126:function(e,t,r){"use strict";const i=r(93441),n=r(10181),o=i.Readable.destroy;e.exports=i.Readable,e.exports._uint8ArrayToBuffer=i._uint8ArrayToBuffer,e.exports._isUint8Array=i._isUint8Array,e.exports.isDisturbed=i.isDisturbed,e.exports.isErrored=i.isErrored,e.exports.isReadable=i.isReadable,e.exports.Readable=i.Readable,e.exports.Writable=i.Writable,e.exports.Duplex=i.Duplex,e.exports.Transform=i.Transform,e.exports.PassThrough=i.PassThrough,e.exports.addAbortSignal=i.addAbortSignal,e.exports.finished=i.finished,e.exports.destroy=i.destroy,e.exports.destroy=o,e.exports.pipeline=i.pipeline,e.exports.compose=i.compose,Object.defineProperty(i,"promises",{configurable:!0,enumerable:!0,get(){return n}}),e.exports.Stream=i.Stream,e.exports["default"]=e.exports},33555:function(e,t,r){"use strict";const{format:i,inspect:n,AggregateError:o}=r(61357),a=globalThis.AggregateError||o,s=Symbol("kIsNodeError"),l=["string","function","number","object","Function","Object","boolean","bigint","symbol"],d=/^([A-Z][a-z0-9]*)+$/,c="__node_internal_",u={};function h(e,t){if(!e)throw new u.ERR_INTERNAL_ASSERTION(t)}function f(e){let t="",r=e.length;const i="-"===e[0]?1:0;for(;r>=i+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function p(e,t,r){if("function"===typeof t)return h(t.length<=r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${t.length}).`),t(...r);const n=(t.match(/%[dfijoOs]/g)||[]).length;return h(n===r.length,`Code: ${e}; The provided arguments length (${r.length}) does not match the required ones (${n}).`),0===r.length?t:i(t,...r)}function b(e,t,r){r||(r=Error);class i extends r{constructor(...r){super(p(e,t,r))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(i.prototype,{name:{value:r.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),i.prototype.code=e,i.prototype[s]=!0,u[e]=i}function g(e){const t=c+e.name;return Object.defineProperty(e,"name",{value:t}),e}function m(e,t){if(e&&t&&e!==t){if(Array.isArray(t.errors))return t.errors.push(e),t;const r=new a([t,e],t.message);return r.code=t.code,r}return e||t}class y extends Error{constructor(e="The operation was aborted",t=void 0){if(void 0!==t&&"object"!==typeof t)throw new u.ERR_INVALID_ARG_TYPE("options","Object",t);super(e,t),this.code="ABORT_ERR",this.name="AbortError"}}b("ERR_ASSERTION","%s",Error),b("ERR_INVALID_ARG_TYPE",((e,t,r)=>{h("string"===typeof e,"'name' must be a string"),Array.isArray(t)||(t=[t]);let i="The ";e.endsWith(" argument")?i+=`${e} `:i+=`"${e}" ${e.includes(".")?"property":"argument"} `,i+="must be ";const o=[],a=[],s=[];for(const n of t)h("string"===typeof n,"All expected entries have to be of type string"),l.includes(n)?o.push(n.toLowerCase()):d.test(n)?a.push(n):(h("object"!==n,'The value "object" should be written as "Object"'),s.push(n));if(a.length>0){const e=o.indexOf("object");-1!==e&&(o.splice(o,e,1),a.push("Object"))}if(o.length>0){switch(o.length){case 1:i+=`of type ${o[0]}`;break;case 2:i+=`one of type ${o[0]} or ${o[1]}`;break;default:{const e=o.pop();i+=`one of type ${o.join(", ")}, or ${e}`}}(a.length>0||s.length>0)&&(i+=" or ")}if(a.length>0){switch(a.length){case 1:i+=`an instance of ${a[0]}`;break;case 2:i+=`an instance of ${a[0]} or ${a[1]}`;break;default:{const e=a.pop();i+=`an instance of ${a.join(", ")}, or ${e}`}}s.length>0&&(i+=" or ")}switch(s.length){case 0:break;case 1:s[0].toLowerCase()!==s[0]&&(i+="an "),i+=`${s[0]}`;break;case 2:i+=`one of ${s[0]} or ${s[1]}`;break;default:{const e=s.pop();i+=`one of ${s.join(", ")}, or ${e}`}}if(null==r)i+=`. Received ${r}`;else if("function"===typeof r&&r.name)i+=`. Received function ${r.name}`;else if("object"===typeof r){var c;if(null!==(c=r.constructor)&&void 0!==c&&c.name)i+=`. Received an instance of ${r.constructor.name}`;else{const e=n(r,{depth:-1});i+=`. Received ${e}`}}else{let e=n(r,{colors:!1});e.length>25&&(e=`${e.slice(0,25)}...`),i+=`. Received type ${typeof r} (${e})`}return i}),TypeError),b("ERR_INVALID_ARG_VALUE",((e,t,r="is invalid")=>{let i=n(t);i.length>128&&(i=i.slice(0,128)+"...");const o=e.includes(".")?"property":"argument";return`The ${o} '${e}' ${r}. Received ${i}`}),TypeError),b("ERR_INVALID_RETURN_VALUE",((e,t,r)=>{var i;const n=null!==r&&void 0!==r&&null!==(i=r.constructor)&&void 0!==i&&i.name?`instance of ${r.constructor.name}`:"type "+typeof r;return`Expected ${e} to be returned from the "${t}" function but got ${n}.`}),TypeError),b("ERR_MISSING_ARGS",((...e)=>{let t;h(e.length>0,"At least one arg needs to be specified");const r=e.length;switch(e=(Array.isArray(e)?e:[e]).map((e=>`"${e}"`)).join(" or "),r){case 1:t+=`The ${e[0]} argument`;break;case 2:t+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const r=e.pop();t+=`The ${e.join(", ")}, and ${r} arguments`}break}return`${t} must be specified`}),TypeError),b("ERR_OUT_OF_RANGE",((e,t,r)=>{let i;return h(t,'Missing "range" argument'),Number.isInteger(r)&&Math.abs(r)>2**32?i=f(String(r)):"bigint"===typeof r?(i=String(r),(r>2n**32n||r<-(2n**32n))&&(i=f(i)),i+="n"):i=n(r),`The value of "${e}" is out of range. It must be ${t}. Received ${i}`}),RangeError),b("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),b("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),b("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),b("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),b("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),b("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),b("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),b("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),b("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),b("ERR_STREAM_WRITE_AFTER_END","write after end",Error),b("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:y,aggregateTwoErrors:g(m),hideStackFrames:g,codes:u}},37808:function(e){"use strict";e.exports={ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,t){return e.includes(t)},ArrayPrototypeIndexOf(e,t){return e.indexOf(t)},ArrayPrototypeJoin(e,t){return e.join(t)},ArrayPrototypeMap(e,t){return e.map(t)},ArrayPrototypePop(e,t){return e.pop(t)},ArrayPrototypePush(e,t){return e.push(t)},ArrayPrototypeSlice(e,t,r){return e.slice(t,r)},Error:Error,FunctionPrototypeCall(e,t,...r){return e.call(t,...r)},FunctionPrototypeSymbolHasInstance(e,t){return Function.prototype[Symbol.hasInstance].call(e,t)},MathFloor:Math.floor,Number:Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(e,t){return Object.defineProperties(e,t)},ObjectDefineProperty(e,t,r){return Object.defineProperty(e,t,r)},ObjectGetOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,t){return Object.setPrototypeOf(e,t)},Promise:Promise,PromisePrototypeCatch(e,t){return e.catch(t)},PromisePrototypeThen(e,t,r){return e.then(t,r)},PromiseReject(e){return Promise.reject(e)},PromiseResolve(e){return Promise.resolve(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,t){return e.test(t)},SafeSet:Set,String:String,StringPrototypeSlice(e,t,r){return e.slice(t,r)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol:Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,SymbolDispose:Symbol.dispose||Symbol("Symbol.dispose"),SymbolAsyncDispose:Symbol.asyncDispose||Symbol("Symbol.asyncDispose"),TypedArrayPrototypeSet(e,t,r){return e.set(t,r)},Boolean:Boolean,Uint8Array:Uint8Array}},61357:function(e,t,r){"use strict";const i=r(48764),{kResistStopPropagation:n,SymbolDispose:o}=r(37808),a=globalThis.AbortSignal||r(28599).AbortSignal,s=globalThis.AbortController||r(28599).AbortController,l=Object.getPrototypeOf((async function(){})).constructor,d=globalThis.Blob||i.Blob,c="undefined"!==typeof d?function(e){return e instanceof d}:function(e){return!1},u=(e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new ERR_INVALID_ARG_TYPE(t,"AbortSignal",e)},h=(e,t)=>{if("function"!==typeof e)throw new ERR_INVALID_ARG_TYPE(t,"Function",e)};class f extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t="";for(let r=0;r{e=r,t=i}));return{promise:r,resolve:e,reject:t}},promisify(e){return new Promise(((t,r)=>{e(((e,...i)=>e?r(e):t(...i)))}))},debuglog(){return function(){}},format(e,...t){return e.replace(/%([sdifj])/g,(function(...[e,r]){const i=t.shift();if("f"===r)return i.toFixed(6);if("j"===r)return JSON.stringify(i);if("s"===r&&"object"===typeof i){const e=i.constructor!==Object?i.constructor.name:"";return`${e} {}`.trim()}return i.toString()}))},inspect(e){switch(typeof e){case"string":if(e.includes("'")){if(!e.includes('"'))return`"${e}"`;if(!e.includes("`")&&!e.includes("${"))return`\`${e}\``}return`'${e}'`;case"number":return isNaN(e)?"NaN":Object.is(e,-0)?String(e):e;case"bigint":return`${String(e)}n`;case"boolean":case"undefined":return String(e);case"object":return"{}"}},types:{isAsyncFunction(e){return e instanceof l},isArrayBufferView(e){return ArrayBuffer.isView(e)}},isBlob:c,deprecate(e,t){return e},addAbortListener:r(17187).addAbortListener||function(e,t){if(void 0===e)throw new ERR_INVALID_ARG_TYPE("signal","AbortSignal",e);let r;return u(e,"signal"),h(t,"listener"),e.aborted?queueMicrotask((()=>t())):(e.addEventListener("abort",t,{__proto__:null,once:!0,[n]:!0}),r=()=>{e.removeEventListener("abort",t)}),{__proto__:null,[o](){var e;null===(e=r)||void 0===e||e()}}},AbortSignalAny:a.any||function(e){if(1===e.length)return e[0];const t=new s,r=()=>t.abort();return e.forEach((e=>{u(e,"signals"),e.addEventListener("abort",r,{once:!0})})),t.signal.addEventListener("abort",(()=>{e.forEach((e=>e.removeEventListener("abort",r)))}),{once:!0}),t.signal}},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},93441:function(e,t,r){const{Buffer:i}=r(48764),{ObjectDefineProperty:n,ObjectKeys:o,ReflectApply:a}=r(37808),{promisify:{custom:s}}=r(61357),{streamReturningOperators:l,promiseReturningOperators:d}=r(83093),{codes:{ERR_ILLEGAL_CONSTRUCTOR:c}}=r(33555),u=r(72982),{setDefaultHighWaterMark:h,getDefaultHighWaterMark:f}=r(42109),{pipeline:p}=r(33298),{destroyer:b}=r(55306),g=r(41927),m=r(10181),y=r(74451),w=e.exports=r(16618).Stream;w.isDestroyed=y.isDestroyed,w.isDisturbed=y.isDisturbed,w.isErrored=y.isErrored,w.isReadable=y.isReadable,w.isWritable=y.isWritable,w.Readable=r(37470);for(const S of o(l)){const E=l[S];function _(...e){if(new.target)throw c();return w.Readable.from(a(E,this,e))}n(_,"name",{__proto__:null,value:E.name}),n(_,"length",{__proto__:null,value:E.length}),n(w.Readable.prototype,S,{__proto__:null,value:_,enumerable:!1,configurable:!0,writable:!0})}for(const R of o(d)){const T=d[R];function _(...e){if(new.target)throw c();return a(T,this,e)}n(_,"name",{__proto__:null,value:T.name}),n(_,"length",{__proto__:null,value:T.length}),n(w.Readable.prototype,R,{__proto__:null,value:_,enumerable:!1,configurable:!0,writable:!0})}w.Writable=r(18672),w.Duplex=r(72664),w.Transform=r(2595),w.PassThrough=r(66541),w.pipeline=p;const{addAbortSignal:v}=r(1163);w.addAbortSignal=v,w.finished=g,w.destroy=b,w.compose=u,w.setDefaultHighWaterMark=h,w.getDefaultHighWaterMark=f,n(w,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return m}}),n(p,s,{__proto__:null,enumerable:!0,get(){return m.pipeline}}),n(g,s,{__proto__:null,enumerable:!0,get(){return m.finished}}),w.Stream=w,w._isUint8Array=function(e){return e instanceof Uint8Array},w._uint8ArrayToBuffer=function(e){return i.from(e.buffer,e.byteOffset,e.byteLength)}},10181:function(e,t,r){"use strict";const{ArrayPrototypePop:i,Promise:n}=r(37808),{isIterable:o,isNodeStream:a,isWebStream:s}=r(74451),{pipelineImpl:l}=r(33298),{finished:d}=r(41927);function c(...e){return new n(((t,r)=>{let n,d;const c=e[e.length-1];if(c&&"object"===typeof c&&!a(c)&&!o(c)&&!s(c)){const t=i(e);n=t.signal,d=t.end}l(e,((e,i)=>{e?r(e):t(i)}),{signal:n,end:d})}))}r(93441),e.exports={finished:d,pipeline:c}},68912:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(9336),t)},9336:function(e,t){"use strict";function r(e,t){t=t||"";const r=t.indexOf("#");if(r>0&&(t=t.substr(0,r)),!e.length){if(t.indexOf(":")<0)throw new Error(`Found invalid baseIRI '${t}' for value '${e}'`);return t}if(e.startsWith("?")){const r=t.indexOf("?");return r>0&&(t=t.substr(0,r)),t+e}if(e.startsWith("#"))return t+e;if(!t.length){const t=e.indexOf(":");if(t<0)throw new Error(`Found invalid relative IRI '${e}' for a missing baseIRI`);return n(e,t)}const o=e.indexOf(":");if(o>=0)return n(e,o);const a=t.indexOf(":");if(a<0)throw new Error(`Found invalid baseIRI '${t}' for value '${e}'`);const s=t.substr(0,a+1);if(0===e.indexOf("//"))return s+n(e,o);let l;if(t.indexOf("//",a)===a+1){if(l=t.indexOf("/",a+3),l<0)return t.length>a+3?t+"/"+n(e,o):s+n(e,o)}else if(l=t.indexOf("/",a+1),l<0)return s+n(e,o);if(0===e.indexOf("/"))return t.substr(0,l)+i(e);let d=t.substr(l);const c=d.lastIndexOf("/");return c>=0&&ce.join(""))).join("/")}function n(e,t){let r=t+1;t>=0?"/"===e[t+1]&&"/"===e[t+2]&&(r=t+3):"/"===e[0]&&"/"===e[1]&&(r=2);const n=e.indexOf("/",r);if(n<0)return e;const o=e.substr(0,n),a=e.substr(n);return o+i(a)}function o(e){return!e||"#"===e||"?"===e||"/"===e}Object.defineProperty(t,"__esModule",{value:!0}),t.removeDotSegmentsOfPath=t.removeDotSegments=t.resolve=void 0,t.resolve=r,t.removeDotSegments=i,t.removeDotSegmentsOfPath=n},21017:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(92504),t)},92504:function(e,t){"use strict";function r(){const e="!$&'()*+,;=",t=`[${e}]`,r="%[a-fA-F0-9]{2}",i="([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",n=`${i}\\.${i}\\.${i}\\.${i}`,o="[a-fA-F0-9]{1,4}",a=`(${o}:${o}|${n})`,s=`((${o}:){6}${a}|::(${o}:){5}${a}|(${o})?::(${o}:){4}${a}|((${o}:){0,1}${o})?::(${o}:){3}${a}|((${o}:){0,2}${o})?::(${o}:){2}${a}|((${o}:){0,3}${o})?::${o}:${a}|((${o}:){0,4}${o})?::${a}|((${o}:){0,5}${o})?::${o}|((${o}:){0,6}${o})?::)`,l=`v[a-fA-F0-9]+\\.(${t}|${t}|":)+`,d=`\\[(${s}|${l})\\]`,c="[0-9]*",u="[a-zA-Z][a-zA-Z0-9+\\-.]*",h="-󰀀-󿿽􀀀-􏿽",f=`[${h}]`,p=" -퟿豈-﷏ﷰ-￯𐀀-🿽𠀀-𯿽𰀀-𿿽񀀀-񏿽񐀀-񟿽񠀀-񯿽񰀀-񿿽򀀀-򏿽򐀀-򟿽򠀀-򯿽򰀀-򿿽󀀀-󏿽󐀀-󟿽󡀀-󯿽",b=`a-zA-Z0-9\\-._~${p}`,g=`[${b}]`,m=`(${g}|${r}|${t}|[:@])*`,y=`(${m}|[\\/?])*`,w=`(${m}|${f}|[\\/?])*`,_=`(${m})+`,v=`(${m})*`,S="",E=`${_}(\\/${v})*`,R=`\\/(${_}(\\/${v})*)?`,T=`(\\/${v})*`,A=`(${g}|${r}|${t})*`,x=`(${d}|${n}|${A})`,N=`(${g}|${r}|${t}|:)*`,D=`(${N}@)?${x}(:${c})?`,I=`(\\/\\/${D}${T}|${R}|${E}|${S})`,C=`^${u}:${I}(\\?${w})?(#${y})?$`;return new RegExp(C,"u")}Object.defineProperty(t,"__esModule",{value:!0}),t.validateIri=t.IriValidationStrategy=void 0;const i=r(),n=/^[A-Za-z][\d+-.A-Za-z]*:[^\u0000-\u0020"<>\\^`{|}]*$/u;var o;function a(e,t=o.Strict){switch(t){case o.Strict:return i.test(e)?void 0:new Error(`Invalid IRI according to RFC 3987: '${e}'`);case o.Pragmatic:return n.test(e)?void 0:new Error(`Invalid IRI according to RDF Turtle: '${e}'`);case o.None:return;default:return new Error(`Not supported validation strategy "${t}"`)}}(function(e){e["Strict"]="strict",e["Pragmatic"]="pragmatic",e["None"]="none"})(o=t.IriValidationStrategy||(t.IriValidationStrategy={})),t.validateIri=a},83347:function(e,t){"use strict"; +/** + * Character classes and associated utilities for the 5th edition of XML 1.0. + * + * @author Louis-Dominique Dubeau + * @license MIT + * @copyright Louis-Dominique Dubeau + */Object.defineProperty(t,"__esModule",{value:!0}),t.CHAR="\t\n\r -퟿-�𐀀-􏿿",t.S=" \t\r\n",t.NAME_START_CHAR=":A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿",t.NAME_CHAR="-"+t.NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",t.CHAR_RE=new RegExp("^["+t.CHAR+"]$","u"),t.S_RE=new RegExp("^["+t.S+"]+$","u"),t.NAME_START_CHAR_RE=new RegExp("^["+t.NAME_START_CHAR+"]$","u"),t.NAME_CHAR_RE=new RegExp("^["+t.NAME_CHAR+"]$","u"),t.NAME_RE=new RegExp("^["+t.NAME_START_CHAR+"]["+t.NAME_CHAR+"]*$","u"),t.NMTOKEN_RE=new RegExp("^["+t.NAME_CHAR+"]+$","u");var r=9,i=10,n=13,o=32;function a(e){return e>=o&&e<=55295||e===i||e===n||e===r||e>=57344&&e<=65533||e>=65536&&e<=1114111}function s(e){return e===o||e===i||e===n||e===r}function l(e){return e>=65&&e<=90||e>=97&&e<=122||58===e||95===e||8204===e||8205===e||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function d(e){return l(e)||e>=48&&e<=57||45===e||46===e||183===e||e>=768&&e<=879||e>=8255&&e<=8256}t.S_LIST=[o,i,n,r],t.isChar=a,t.isS=s,t.isNameStartChar=l,t.isNameChar=d},95285:function(e,t){"use strict"; +/** + * Character classes and associated utilities for the 2nd edition of XML 1.1. + * + * @author Louis-Dominique Dubeau + * @license MIT + * @copyright Louis-Dominique Dubeau + */Object.defineProperty(t,"__esModule",{value:!0}),t.CHAR="-퟿-�𐀀-􏿿",t.RESTRICTED_CHAR="-\b\v\f--„†-Ÿ",t.S=" \t\r\n",t.NAME_START_CHAR=":A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿",t.NAME_CHAR="-"+t.NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",t.CHAR_RE=new RegExp("^["+t.CHAR+"]$","u"),t.RESTRICTED_CHAR_RE=new RegExp("^["+t.RESTRICTED_CHAR+"]$","u"),t.S_RE=new RegExp("^["+t.S+"]+$","u"),t.NAME_START_CHAR_RE=new RegExp("^["+t.NAME_START_CHAR+"]$","u"),t.NAME_CHAR_RE=new RegExp("^["+t.NAME_CHAR+"]$","u"),t.NAME_RE=new RegExp("^["+t.NAME_START_CHAR+"]["+t.NAME_CHAR+"]*$","u"),t.NMTOKEN_RE=new RegExp("^["+t.NAME_CHAR+"]+$","u");var r=9,i=10,n=13,o=32;function a(e){return e>=1&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111}function s(e){return e>=1&&e<=8||11===e||12===e||e>=14&&e<=31||e>=127&&e<=132||e>=134&&e<=159}function l(e){return 9===e||10===e||13===e||e>31&&e<127||133===e||e>159&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111}function d(e){return e===o||e===i||e===n||e===r}function c(e){return e>=65&&e<=90||e>=97&&e<=122||58===e||95===e||8204===e||8205===e||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function u(e){return c(e)||e>=48&&e<=57||45===e||46===e||183===e||e>=768&&e<=879||e>=8255&&e<=8256}t.S_LIST=[o,i,n,r],t.isChar=a,t.isRestrictedChar=s,t.isCharAndNotRestricted=l,t.isS=d,t.isNameStartChar=c,t.isNameChar=u},87046:function(e,t){"use strict"; +/** + * Character class utilities for XML NS 1.0 edition 3. + * + * @author Louis-Dominique Dubeau + * @license MIT + * @copyright Louis-Dominique Dubeau + */function r(e){return e>=65&&e<=90||95===e||e>=97&&e<=122||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function i(e){return r(e)||45===e||46===e||e>=48&&e<=57||183===e||e>=768&&e<=879||e>=8255&&e<=8256}Object.defineProperty(t,"__esModule",{value:!0}),t.NC_NAME_START_CHAR="A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿",t.NC_NAME_CHAR="-"+t.NC_NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",t.NC_NAME_START_CHAR_RE=new RegExp("^["+t.NC_NAME_START_CHAR+"]$","u"),t.NC_NAME_CHAR_RE=new RegExp("^["+t.NC_NAME_CHAR+"]$","u"),t.NC_NAME_RE=new RegExp("^["+t.NC_NAME_START_CHAR+"]["+t.NC_NAME_CHAR+"]*$","u"),t.isNCNameStartChar=r,t.isNCNameChar=i},43498:function(e,t,r){"use strict";r.r(t);var i=r(25787);class n extends i.RdfXmlParser{constructor({factory:e,...t}={}){super({...t,dataFactory:e})}}t["default"]=n}}]); +//# sourceMappingURL=498.a85d8927.js.map \ No newline at end of file diff --git a/js/498.a85d8927.js.map b/js/498.a85d8927.js.map new file mode 100644 index 0000000..070658f --- /dev/null +++ b/js/498.a85d8927.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/498.a85d8927.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@rubensworks/saxes/saxes.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/index.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/BlankNode.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/DataFactory.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/DefaultGraph.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/Literal.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/NamedNode.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/Quad.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/Variable.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/index.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/lib/ParseError.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/lib/RdfXmlParser.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/compose.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/from.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/operators.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/readable.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/state.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/transform.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/utils.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/writable.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/validators.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/ours/browser.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/ours/errors.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/ours/primordials.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/ours/util.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/stream.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/stream/promises.js","webpack://@zazuko/spex/./node_modules/relative-to-absolute-iri/index.js","webpack://@zazuko/spex/./node_modules/relative-to-absolute-iri/lib/Resolve.js","webpack://@zazuko/spex/./node_modules/validate-iri/index.js","webpack://@zazuko/spex/./node_modules/validate-iri/lib/Validate.js","webpack://@zazuko/spex/./node_modules/xmlchars/xml/1.0/ed5.js","webpack://@zazuko/spex/./node_modules/xmlchars/xml/1.1/ed2.js","webpack://@zazuko/spex/./node_modules/xmlchars/xmlns/1.0/ed3.js","webpack://@zazuko/spex/./node_modules/@zazuko/formats-lazy/lib/CustomRdfXmlParser.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SaxesParser = exports.EVENTS = void 0;\nconst ed5 = require(\"xmlchars/xml/1.0/ed5\");\nconst ed2 = require(\"xmlchars/xml/1.1/ed2\");\nconst NSed3 = require(\"xmlchars/xmlns/1.0/ed3\");\nvar isS = ed5.isS;\nvar isChar10 = ed5.isChar;\nvar isNameStartChar = ed5.isNameStartChar;\nvar isNameChar = ed5.isNameChar;\nvar S_LIST = ed5.S_LIST;\nvar NAME_RE = ed5.NAME_RE;\nvar isChar11 = ed2.isChar;\nvar isNCNameStartChar = NSed3.isNCNameStartChar;\nvar isNCNameChar = NSed3.isNCNameChar;\nvar NC_NAME_RE = NSed3.NC_NAME_RE;\nconst XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\nconst XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\nconst rootNS = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n __proto__: null,\n xml: XML_NAMESPACE,\n xmlns: XMLNS_NAMESPACE,\n};\nconst XML_ENTITIES = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n __proto__: null,\n amp: \"&\",\n gt: \">\",\n lt: \"<\",\n quot: \"\\\"\",\n apos: \"'\",\n};\n// EOC: end-of-chunk\nconst EOC = -1;\nconst NL_LIKE = -2;\nconst S_BEGIN = 0; // Initial state.\nconst S_BEGIN_WHITESPACE = 1; // leading whitespace\nconst S_DOCTYPE = 2; // \nconst TAB = 9;\nconst NL = 0xA;\nconst CR = 0xD;\nconst SPACE = 0x20;\nconst BANG = 0x21;\nconst DQUOTE = 0x22;\nconst AMP = 0x26;\nconst SQUOTE = 0x27;\nconst MINUS = 0x2D;\nconst FORWARD_SLASH = 0x2F;\nconst SEMICOLON = 0x3B;\nconst LESS = 0x3C;\nconst EQUAL = 0x3D;\nconst GREATER = 0x3E;\nconst QUESTION = 0x3F;\nconst OPEN_BRACKET = 0x5B;\nconst CLOSE_BRACKET = 0x5D;\nconst NEL = 0x85;\nconst LS = 0x2028; // Line Separator\nconst isQuote = (c) => c === DQUOTE || c === SQUOTE;\nconst QUOTES = [DQUOTE, SQUOTE];\nconst DOCTYPE_TERMINATOR = [...QUOTES, OPEN_BRACKET, GREATER];\nconst DTD_TERMINATOR = [...QUOTES, LESS, CLOSE_BRACKET];\nconst XML_DECL_NAME_TERMINATOR = [EQUAL, QUESTION, ...S_LIST];\nconst ATTRIB_VALUE_UNQUOTED_TERMINATOR = [...S_LIST, GREATER, AMP, LESS];\nfunction nsPairCheck(parser, prefix, uri) {\n switch (prefix) {\n case \"xml\":\n if (uri !== XML_NAMESPACE) {\n parser.fail(`xml prefix must be bound to ${XML_NAMESPACE}.`);\n }\n break;\n case \"xmlns\":\n if (uri !== XMLNS_NAMESPACE) {\n parser.fail(`xmlns prefix must be bound to ${XMLNS_NAMESPACE}.`);\n }\n break;\n default:\n }\n switch (uri) {\n case XMLNS_NAMESPACE:\n parser.fail(prefix === \"\" ?\n `the default namespace may not be set to ${uri}.` :\n `may not assign a prefix (even \"xmlns\") to the URI \\\n${XMLNS_NAMESPACE}.`);\n break;\n case XML_NAMESPACE:\n switch (prefix) {\n case \"xml\":\n // Assinging the XML namespace to \"xml\" is fine.\n break;\n case \"\":\n parser.fail(`the default namespace may not be set to ${uri}.`);\n break;\n default:\n parser.fail(\"may not assign the xml namespace to another prefix.\");\n }\n break;\n default:\n }\n}\nfunction nsMappingCheck(parser, mapping) {\n for (const local of Object.keys(mapping)) {\n nsPairCheck(parser, local, mapping[local]);\n }\n}\nconst isNCName = (name) => NC_NAME_RE.test(name);\nconst isName = (name) => NAME_RE.test(name);\nconst FORBIDDEN_START = 0;\nconst FORBIDDEN_BRACKET = 1;\nconst FORBIDDEN_BRACKET_BRACKET = 2;\n/**\n * The list of supported events.\n */\nexports.EVENTS = [\n \"xmldecl\",\n \"text\",\n \"processinginstruction\",\n \"doctype\",\n \"comment\",\n \"opentagstart\",\n \"attribute\",\n \"opentag\",\n \"closetag\",\n \"cdata\",\n \"error\",\n \"end\",\n \"ready\",\n];\nconst EVENT_NAME_TO_HANDLER_NAME = {\n xmldecl: \"xmldeclHandler\",\n text: \"textHandler\",\n processinginstruction: \"piHandler\",\n doctype: \"doctypeHandler\",\n comment: \"commentHandler\",\n opentagstart: \"openTagStartHandler\",\n attribute: \"attributeHandler\",\n opentag: \"openTagHandler\",\n closetag: \"closeTagHandler\",\n cdata: \"cdataHandler\",\n error: \"errorHandler\",\n end: \"endHandler\",\n ready: \"readyHandler\",\n};\n// eslint-disable-next-line @typescript-eslint/ban-types\nclass SaxesParser {\n /**\n * Indicates whether or not the parser is closed. If ``true``, wait for\n * the ``ready`` event to write again.\n */\n get closed() {\n return this._closed;\n }\n /**\n * @param opt The parser options.\n */\n constructor(opt) {\n this.opt = opt !== null && opt !== void 0 ? opt : {};\n this.fragmentOpt = !!this.opt.fragment;\n const xmlnsOpt = this.xmlnsOpt = !!this.opt.xmlns;\n this.trackPosition = this.opt.position !== false;\n this.fileName = this.opt.fileName;\n if (xmlnsOpt) {\n // This is the function we use to perform name checks on PIs and entities.\n // When namespaces are used, colons are not allowed in PI target names or\n // entity names. So the check depends on whether namespaces are used. See:\n //\n // https://www.w3.org/XML/xml-names-19990114-errata.html\n // NE08\n //\n this.nameStartCheck = isNCNameStartChar;\n this.nameCheck = isNCNameChar;\n this.isName = isNCName;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.processAttribs = this.processAttribsNS;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.pushAttrib = this.pushAttribNS;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n this.ns = Object.assign({ __proto__: null }, rootNS);\n const additional = this.opt.additionalNamespaces;\n if (additional != null) {\n nsMappingCheck(this, additional);\n Object.assign(this.ns, additional);\n }\n }\n else {\n this.nameStartCheck = isNameStartChar;\n this.nameCheck = isNameChar;\n this.isName = isName;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.processAttribs = this.processAttribsPlain;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.pushAttrib = this.pushAttribPlain;\n }\n //\n // The order of the members in this table needs to correspond to the state\n // numbers given to the states that correspond to the methods being recorded\n // here.\n //\n this.stateTable = [\n /* eslint-disable @typescript-eslint/unbound-method */\n this.sBegin,\n this.sBeginWhitespace,\n this.sDoctype,\n this.sDoctypeQuote,\n this.sDTD,\n this.sDTDQuoted,\n this.sDTDOpenWaka,\n this.sDTDOpenWakaBang,\n this.sDTDComment,\n this.sDTDCommentEnding,\n this.sDTDCommentEnded,\n this.sDTDPI,\n this.sDTDPIEnding,\n this.sText,\n this.sEntity,\n this.sOpenWaka,\n this.sOpenWakaBang,\n this.sComment,\n this.sCommentEnding,\n this.sCommentEnded,\n this.sCData,\n this.sCDataEnding,\n this.sCDataEnding2,\n this.sPIFirstChar,\n this.sPIRest,\n this.sPIBody,\n this.sPIEnding,\n this.sXMLDeclNameStart,\n this.sXMLDeclName,\n this.sXMLDeclEq,\n this.sXMLDeclValueStart,\n this.sXMLDeclValue,\n this.sXMLDeclSeparator,\n this.sXMLDeclEnding,\n this.sOpenTag,\n this.sOpenTagSlash,\n this.sAttrib,\n this.sAttribName,\n this.sAttribNameSawWhite,\n this.sAttribValue,\n this.sAttribValueQuoted,\n this.sAttribValueClosed,\n this.sAttribValueUnquoted,\n this.sCloseTag,\n this.sCloseTagSawWhite,\n /* eslint-enable @typescript-eslint/unbound-method */\n ];\n this._init();\n }\n _init() {\n var _a;\n this.openWakaBang = \"\";\n this.text = \"\";\n this.name = \"\";\n this.piTarget = \"\";\n this.entity = \"\";\n this.q = null;\n this.tags = [];\n this.tag = null;\n this.topNS = null;\n this.chunk = \"\";\n this.chunkPosition = 0;\n this.i = 0;\n this.prevI = 0;\n this.carriedFromPrevious = undefined;\n this.forbiddenState = FORBIDDEN_START;\n this.attribList = [];\n // The logic is organized so as to minimize the need to check\n // this.opt.fragment while parsing.\n const { fragmentOpt } = this;\n this.state = fragmentOpt ? S_TEXT : S_BEGIN;\n // We want these to be all true if we are dealing with a fragment.\n this.reportedTextBeforeRoot = this.reportedTextAfterRoot = this.closedRoot =\n this.sawRoot = fragmentOpt;\n // An XML declaration is intially possible only when parsing whole\n // documents.\n this.xmlDeclPossible = !fragmentOpt;\n this.xmlDeclExpects = [\"version\"];\n this.entityReturnState = undefined;\n let { defaultXMLVersion } = this.opt;\n if (defaultXMLVersion === undefined) {\n if (this.opt.forceXMLVersion === true) {\n throw new Error(\"forceXMLVersion set but defaultXMLVersion is not set\");\n }\n defaultXMLVersion = \"1.0\";\n }\n this.setXMLVersion(defaultXMLVersion);\n this.positionAtNewLine = 0;\n this.doctype = false;\n this._closed = false;\n this.xmlDecl = {\n version: undefined,\n encoding: undefined,\n standalone: undefined,\n };\n this.line = 1;\n this.column = 0;\n this.ENTITIES = Object.create(XML_ENTITIES);\n (_a = this.readyHandler) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n /**\n * The stream position the parser is currently looking at. This field is\n * zero-based.\n *\n * This field is not based on counting Unicode characters but is to be\n * interpreted as a plain index into a JavaScript string.\n */\n get position() {\n return this.chunkPosition + this.i;\n }\n /**\n * The column number of the next character to be read by the parser. *\n * This field is zero-based. (The first column in a line is 0.)\n *\n * This field reports the index at which the next character would be in the\n * line if the line were represented as a JavaScript string. Note that this\n * *can* be different to a count based on the number of *Unicode characters*\n * due to how JavaScript handles astral plane characters.\n *\n * See [[column]] for a number that corresponds to a count of Unicode\n * characters.\n */\n get columnIndex() {\n return this.position - this.positionAtNewLine;\n }\n /**\n * Set an event listener on an event. The parser supports one handler per\n * event type. If you try to set an event handler over an existing handler,\n * the old handler is silently overwritten.\n *\n * @param name The event to listen to.\n *\n * @param handler The handler to set.\n */\n on(name, handler) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n this[EVENT_NAME_TO_HANDLER_NAME[name]] = handler;\n }\n /**\n * Unset an event handler.\n *\n * @parma name The event to stop listening to.\n */\n off(name) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n this[EVENT_NAME_TO_HANDLER_NAME[name]] = undefined;\n }\n /**\n * Make an error object. The error object will have a message that contains\n * the ``fileName`` option passed at the creation of the parser. If position\n * tracking was turned on, it will also have line and column number\n * information.\n *\n * @param message The message describing the error to report.\n *\n * @returns An error object with a properly formatted message.\n */\n makeError(message) {\n var _a;\n let msg = (_a = this.fileName) !== null && _a !== void 0 ? _a : \"\";\n if (this.trackPosition) {\n if (msg.length > 0) {\n msg += \":\";\n }\n msg += `${this.line}:${this.column}`;\n }\n if (msg.length > 0) {\n msg += \": \";\n }\n return new Error(msg + message);\n }\n /**\n * Report a parsing error. This method is made public so that client code may\n * check for issues that are outside the scope of this project and can report\n * errors.\n *\n * @param message The error to report.\n *\n * @returns this\n */\n fail(message) {\n const err = this.makeError(message);\n const handler = this.errorHandler;\n if (handler === undefined) {\n throw err;\n }\n else {\n handler(err);\n }\n return this;\n }\n /**\n * Write a XML data to the parser.\n *\n * @param chunk The XML data to write.\n *\n * @returns this\n */\n // We do need object for the type here. Yes, it often causes problems\n // but not in this case.\n write(chunk) {\n if (this.closed) {\n return this.fail(\"cannot write after close; assign an onready handler.\");\n }\n let end = false;\n if (chunk === null) {\n // We cannot return immediately because carriedFromPrevious may need\n // processing.\n end = true;\n chunk = \"\";\n }\n else if (typeof chunk === \"object\") {\n chunk = chunk.toString();\n }\n // We checked if performing a pre-decomposition of the string into an array\n // of single complete characters (``Array.from(chunk)``) would be faster\n // than the current repeated calls to ``charCodeAt``. As of August 2018, it\n // isn't. (There may be Node-specific code that would perform faster than\n // ``Array.from`` but don't want to be dependent on Node.)\n if (this.carriedFromPrevious !== undefined) {\n // The previous chunk had char we must carry over.\n chunk = `${this.carriedFromPrevious}${chunk}`;\n this.carriedFromPrevious = undefined;\n }\n let limit = chunk.length;\n const lastCode = chunk.charCodeAt(limit - 1);\n if (!end &&\n // A trailing CR or surrogate must be carried over to the next\n // chunk.\n (lastCode === CR || (lastCode >= 0xD800 && lastCode <= 0xDBFF))) {\n // The chunk ends with a character that must be carried over. We cannot\n // know how to handle it until we get the next chunk or the end of the\n // stream. So save it for later.\n this.carriedFromPrevious = chunk[limit - 1];\n limit--;\n chunk = chunk.slice(0, limit);\n }\n const { stateTable } = this;\n this.chunk = chunk;\n this.i = 0;\n while (this.i < limit) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument\n stateTable[this.state].call(this);\n }\n this.chunkPosition += limit;\n return end ? this.end() : this;\n }\n /**\n * Close the current stream. Perform final well-formedness checks and reset\n * the parser tstate.\n *\n * @returns this\n */\n close() {\n return this.write(null);\n }\n /**\n * Get a single code point out of the current chunk. This updates the current\n * position if we do position tracking.\n *\n * This is the algorithm to use for XML 1.0.\n *\n * @returns The character read.\n */\n getCode10() {\n const { chunk, i } = this;\n this.prevI = i;\n // Yes, we do this instead of doing this.i++. Doing it this way, we do not\n // read this.i again, which is a bit faster.\n this.i = i + 1;\n if (i >= chunk.length) {\n return EOC;\n }\n // Using charCodeAt and handling the surrogates ourselves is faster\n // than using codePointAt.\n const code = chunk.charCodeAt(i);\n this.column++;\n if (code < 0xD800) {\n if (code >= SPACE || code === TAB) {\n return code;\n }\n switch (code) {\n case NL:\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL;\n case CR:\n // We may get NaN if we read past the end of the chunk, which is fine.\n if (chunk.charCodeAt(i + 1) === NL) {\n // A \\r\\n sequence is converted to \\n so we have to skip over the\n // next character. We already know it has a size of 1 so ++ is fine\n // here.\n this.i = i + 2;\n }\n // Otherwise, a \\r is just converted to \\n, so we don't have to skip\n // ahead.\n // In either case, \\r becomes \\n.\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL_LIKE;\n default:\n // If we get here, then code < SPACE and it is not NL CR or TAB.\n this.fail(\"disallowed character.\");\n return code;\n }\n }\n if (code > 0xDBFF) {\n // This is a specialized version of isChar10 that takes into account\n // that in this context code > 0xDBFF and code <= 0xFFFF. So it does not\n // test cases that don't need testing.\n if (!(code >= 0xE000 && code <= 0xFFFD)) {\n this.fail(\"disallowed character.\");\n }\n return code;\n }\n const final = 0x10000 + ((code - 0xD800) * 0x400) +\n (chunk.charCodeAt(i + 1) - 0xDC00);\n this.i = i + 2;\n // This is a specialized version of isChar10 that takes into account that in\n // this context necessarily final >= 0x10000.\n if (final > 0x10FFFF) {\n this.fail(\"disallowed character.\");\n }\n return final;\n }\n /**\n * Get a single code point out of the current chunk. This updates the current\n * position if we do position tracking.\n *\n * This is the algorithm to use for XML 1.1.\n *\n * @returns {number} The character read.\n */\n getCode11() {\n const { chunk, i } = this;\n this.prevI = i;\n // Yes, we do this instead of doing this.i++. Doing it this way, we do not\n // read this.i again, which is a bit faster.\n this.i = i + 1;\n if (i >= chunk.length) {\n return EOC;\n }\n // Using charCodeAt and handling the surrogates ourselves is faster\n // than using codePointAt.\n const code = chunk.charCodeAt(i);\n this.column++;\n if (code < 0xD800) {\n if ((code > 0x1F && code < 0x7F) || (code > 0x9F && code !== LS) ||\n code === TAB) {\n return code;\n }\n switch (code) {\n case NL: // 0xA\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL;\n case CR: { // 0xD\n // We may get NaN if we read past the end of the chunk, which is\n // fine.\n const next = chunk.charCodeAt(i + 1);\n if (next === NL || next === NEL) {\n // A CR NL or CR NEL sequence is converted to NL so we have to skip\n // over the next character. We already know it has a size of 1.\n this.i = i + 2;\n }\n // Otherwise, a CR is just converted to NL, no skip.\n }\n /* yes, fall through */\n case NEL: // 0x85\n case LS: // Ox2028\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL_LIKE;\n default:\n this.fail(\"disallowed character.\");\n return code;\n }\n }\n if (code > 0xDBFF) {\n // This is a specialized version of isCharAndNotRestricted that takes into\n // account that in this context code > 0xDBFF and code <= 0xFFFF. So it\n // does not test cases that don't need testing.\n if (!(code >= 0xE000 && code <= 0xFFFD)) {\n this.fail(\"disallowed character.\");\n }\n return code;\n }\n const final = 0x10000 + ((code - 0xD800) * 0x400) +\n (chunk.charCodeAt(i + 1) - 0xDC00);\n this.i = i + 2;\n // This is a specialized version of isCharAndNotRestricted that takes into\n // account that in this context necessarily final >= 0x10000.\n if (final > 0x10FFFF) {\n this.fail(\"disallowed character.\");\n }\n return final;\n }\n /**\n * Like ``getCode`` but with the return value normalized so that ``NL`` is\n * returned for ``NL_LIKE``.\n */\n getCodeNorm() {\n const c = this.getCode();\n return c === NL_LIKE ? NL : c;\n }\n unget() {\n this.i = this.prevI;\n this.column--;\n }\n /**\n * Capture characters into a buffer until encountering one of a set of\n * characters.\n *\n * @param chars An array of codepoints. Encountering a character in the array\n * ends the capture. (``chars`` may safely contain ``NL``.)\n *\n * @return The character code that made the capture end, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n captureTo(chars) {\n let { i: start } = this;\n const { chunk } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCode();\n const isNLLike = c === NL_LIKE;\n const final = isNLLike ? NL : c;\n if (final === EOC || chars.includes(final)) {\n this.text += chunk.slice(start, this.prevI);\n return final;\n }\n if (isNLLike) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n }\n }\n }\n /**\n * Capture characters into a buffer until encountering a character.\n *\n * @param char The codepoint that ends the capture. **NOTE ``char`` MAY NOT\n * CONTAIN ``NL``.** Passing ``NL`` will result in buggy behavior.\n *\n * @return ``true`` if we ran into the character. Otherwise, we ran into the\n * end of the current chunk.\n */\n captureToChar(char) {\n let { i: start } = this;\n const { chunk } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let c = this.getCode();\n switch (c) {\n case NL_LIKE:\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n c = NL;\n break;\n case EOC:\n this.text += chunk.slice(start);\n return false;\n default:\n }\n if (c === char) {\n this.text += chunk.slice(start, this.prevI);\n return true;\n }\n }\n }\n /**\n * Capture characters that satisfy ``isNameChar`` into the ``name`` field of\n * this parser.\n *\n * @return The character code that made the test fail, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n captureNameChars() {\n const { chunk, i: start } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCode();\n if (c === EOC) {\n this.name += chunk.slice(start);\n return EOC;\n }\n // NL is not a name char so we don't have to test specifically for it.\n if (!isNameChar(c)) {\n this.name += chunk.slice(start, this.prevI);\n return c === NL_LIKE ? NL : c;\n }\n }\n }\n /**\n * Skip white spaces.\n *\n * @return The character that ended the skip, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n skipSpaces() {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCodeNorm();\n if (c === EOC || !isS(c)) {\n return c;\n }\n }\n }\n setXMLVersion(version) {\n this.currentXMLVersion = version;\n /* eslint-disable @typescript-eslint/unbound-method */\n if (version === \"1.0\") {\n this.isChar = isChar10;\n this.getCode = this.getCode10;\n }\n else {\n this.isChar = isChar11;\n this.getCode = this.getCode11;\n }\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n // STATE ENGINE METHODS\n // This needs to be a state separate from S_BEGIN_WHITESPACE because we want\n // to be sure never to come back to this state later.\n sBegin() {\n // We are essentially peeking at the first character of the chunk. Since\n // S_BEGIN can be in effect only when we start working on the first chunk,\n // the index at which we must look is necessarily 0. Note also that the\n // following test does not depend on decoding surrogates.\n // If the initial character is 0xFEFF, ignore it.\n if (this.chunk.charCodeAt(0) === 0xFEFF) {\n this.i++;\n this.column++;\n }\n this.state = S_BEGIN_WHITESPACE;\n }\n sBeginWhitespace() {\n // We need to know whether we've encountered spaces or not because as soon\n // as we run into a space, an XML declaration is no longer possible. Rather\n // than slow down skipSpaces even in places where we don't care whether it\n // skipped anything or not, we check whether prevI is equal to the value of\n // i from before we skip spaces.\n const iBefore = this.i;\n const c = this.skipSpaces();\n if (this.prevI !== iBefore) {\n this.xmlDeclPossible = false;\n }\n switch (c) {\n case LESS:\n this.state = S_OPEN_WAKA;\n // We could naively call closeText but in this state, it is not normal\n // to have text be filled with any data.\n if (this.text.length !== 0) {\n throw new Error(\"no-empty text at start\");\n }\n break;\n case EOC:\n break;\n default:\n this.unget();\n this.state = S_TEXT;\n this.xmlDeclPossible = false;\n }\n }\n sDoctype() {\n var _a;\n const c = this.captureTo(DOCTYPE_TERMINATOR);\n switch (c) {\n case GREATER: {\n (_a = this.doctypeHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n this.state = S_TEXT;\n this.doctype = true; // just remember that we saw it.\n break;\n }\n case EOC:\n break;\n default:\n this.text += String.fromCodePoint(c);\n if (c === OPEN_BRACKET) {\n this.state = S_DTD;\n }\n else if (isQuote(c)) {\n this.state = S_DOCTYPE_QUOTE;\n this.q = c;\n }\n }\n }\n sDoctypeQuote() {\n const q = this.q;\n if (this.captureToChar(q)) {\n this.text += String.fromCodePoint(q);\n this.q = null;\n this.state = S_DOCTYPE;\n }\n }\n sDTD() {\n const c = this.captureTo(DTD_TERMINATOR);\n if (c === EOC) {\n return;\n }\n this.text += String.fromCodePoint(c);\n if (c === CLOSE_BRACKET) {\n this.state = S_DOCTYPE;\n }\n else if (c === LESS) {\n this.state = S_DTD_OPEN_WAKA;\n }\n else if (isQuote(c)) {\n this.state = S_DTD_QUOTED;\n this.q = c;\n }\n }\n sDTDQuoted() {\n const q = this.q;\n if (this.captureToChar(q)) {\n this.text += String.fromCodePoint(q);\n this.state = S_DTD;\n this.q = null;\n }\n }\n sDTDOpenWaka() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n switch (c) {\n case BANG:\n this.state = S_DTD_OPEN_WAKA_BANG;\n this.openWakaBang = \"\";\n break;\n case QUESTION:\n this.state = S_DTD_PI;\n break;\n default:\n this.state = S_DTD;\n }\n }\n sDTDOpenWakaBang() {\n const char = String.fromCodePoint(this.getCodeNorm());\n const owb = this.openWakaBang += char;\n this.text += char;\n if (owb !== \"-\") {\n this.state = owb === \"--\" ? S_DTD_COMMENT : S_DTD;\n this.openWakaBang = \"\";\n }\n }\n sDTDComment() {\n if (this.captureToChar(MINUS)) {\n this.text += \"-\";\n this.state = S_DTD_COMMENT_ENDING;\n }\n }\n sDTDCommentEnding() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n this.state = c === MINUS ? S_DTD_COMMENT_ENDED : S_DTD_COMMENT;\n }\n sDTDCommentEnded() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n if (c === GREATER) {\n this.state = S_DTD;\n }\n else {\n this.fail(\"malformed comment.\");\n // will be recorded as\n // a comment of \" blah -- bloo \"\n this.state = S_DTD_COMMENT;\n }\n }\n sDTDPI() {\n if (this.captureToChar(QUESTION)) {\n this.text += \"?\";\n this.state = S_DTD_PI_ENDING;\n }\n }\n sDTDPIEnding() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n if (c === GREATER) {\n this.state = S_DTD;\n }\n }\n sText() {\n //\n // We did try a version of saxes where the S_TEXT state was split in two\n // states: one for text inside the root element, and one for text\n // outside. This was avoiding having to test this.tags.length to decide\n // what implementation to actually use.\n //\n // Peformance testing on gigabyte-size files did not show any advantage to\n // using the two states solution instead of the current one. Conversely, it\n // made the code a bit more complicated elsewhere. For instance, a comment\n // can appear before the root element so when a comment ended it was\n // necessary to determine whether to return to the S_TEXT state or to the\n // new text-outside-root state.\n //\n if (this.tags.length !== 0) {\n this.handleTextInRoot();\n }\n else {\n this.handleTextOutsideRoot();\n }\n }\n sEntity() {\n // This is essentially a specialized version of captureToChar(SEMICOLON...)\n let { i: start } = this;\n const { chunk } = this;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n loop: \n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case NL_LIKE:\n this.entity += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n break;\n case SEMICOLON: {\n const { entityReturnState } = this;\n const entity = this.entity + chunk.slice(start, this.prevI);\n this.state = entityReturnState;\n let parsed;\n if (entity === \"\") {\n this.fail(\"empty entity name.\");\n parsed = \"&;\";\n }\n else {\n parsed = this.parseEntity(entity);\n this.entity = \"\";\n }\n if (entityReturnState !== S_TEXT || this.textHandler !== undefined) {\n this.text += parsed;\n }\n // eslint-disable-next-line no-labels\n break loop;\n }\n case EOC:\n this.entity += chunk.slice(start);\n // eslint-disable-next-line no-labels\n break loop;\n default:\n }\n }\n }\n sOpenWaka() {\n // Reminder: a state handler is called with at least one character\n // available in the current chunk. So the first call to get code inside of\n // a state handler cannot return ``EOC``. That's why we don't test\n // for it.\n const c = this.getCode();\n // either a /, ?, !, or text is coming next.\n if (isNameStartChar(c)) {\n this.state = S_OPEN_TAG;\n this.unget();\n this.xmlDeclPossible = false;\n }\n else {\n switch (c) {\n case FORWARD_SLASH:\n this.state = S_CLOSE_TAG;\n this.xmlDeclPossible = false;\n break;\n case BANG:\n this.state = S_OPEN_WAKA_BANG;\n this.openWakaBang = \"\";\n this.xmlDeclPossible = false;\n break;\n case QUESTION:\n this.state = S_PI_FIRST_CHAR;\n break;\n default:\n this.fail(\"disallowed character in tag name\");\n this.state = S_TEXT;\n this.xmlDeclPossible = false;\n }\n }\n }\n sOpenWakaBang() {\n this.openWakaBang += String.fromCodePoint(this.getCodeNorm());\n switch (this.openWakaBang) {\n case \"[CDATA[\":\n if (!this.sawRoot && !this.reportedTextBeforeRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextBeforeRoot = true;\n }\n if (this.closedRoot && !this.reportedTextAfterRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextAfterRoot = true;\n }\n this.state = S_CDATA;\n this.openWakaBang = \"\";\n break;\n case \"--\":\n this.state = S_COMMENT;\n this.openWakaBang = \"\";\n break;\n case \"DOCTYPE\":\n this.state = S_DOCTYPE;\n if (this.doctype || this.sawRoot) {\n this.fail(\"inappropriately located doctype declaration.\");\n }\n this.openWakaBang = \"\";\n break;\n default:\n // 7 happens to be the maximum length of the string that can possibly\n // match one of the cases above.\n if (this.openWakaBang.length >= 7) {\n this.fail(\"incorrect syntax.\");\n }\n }\n }\n sComment() {\n if (this.captureToChar(MINUS)) {\n this.state = S_COMMENT_ENDING;\n }\n }\n sCommentEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === MINUS) {\n this.state = S_COMMENT_ENDED;\n (_a = this.commentHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n }\n else {\n this.text += `-${String.fromCodePoint(c)}`;\n this.state = S_COMMENT;\n }\n }\n sCommentEnded() {\n const c = this.getCodeNorm();\n if (c !== GREATER) {\n this.fail(\"malformed comment.\");\n // will be recorded as\n // a comment of \" blah -- bloo \"\n this.text += `--${String.fromCodePoint(c)}`;\n this.state = S_COMMENT;\n }\n else {\n this.state = S_TEXT;\n }\n }\n sCData() {\n if (this.captureToChar(CLOSE_BRACKET)) {\n this.state = S_CDATA_ENDING;\n }\n }\n sCDataEnding() {\n const c = this.getCodeNorm();\n if (c === CLOSE_BRACKET) {\n this.state = S_CDATA_ENDING_2;\n }\n else {\n this.text += `]${String.fromCodePoint(c)}`;\n this.state = S_CDATA;\n }\n }\n sCDataEnding2() {\n var _a;\n const c = this.getCodeNorm();\n switch (c) {\n case GREATER: {\n (_a = this.cdataHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n this.state = S_TEXT;\n break;\n }\n case CLOSE_BRACKET:\n this.text += \"]\";\n break;\n default:\n this.text += `]]${String.fromCodePoint(c)}`;\n this.state = S_CDATA;\n }\n }\n // We need this separate state to check the first character fo the pi target\n // with this.nameStartCheck which allows less characters than this.nameCheck.\n sPIFirstChar() {\n const c = this.getCodeNorm();\n // This is first because in the case where the file is well-formed this is\n // the branch taken. We optimize for well-formedness.\n if (this.nameStartCheck(c)) {\n this.piTarget += String.fromCodePoint(c);\n this.state = S_PI_REST;\n }\n else if (c === QUESTION || isS(c)) {\n this.fail(\"processing instruction without a target.\");\n this.state = c === QUESTION ? S_PI_ENDING : S_PI_BODY;\n }\n else {\n this.fail(\"disallowed character in processing instruction name.\");\n this.piTarget += String.fromCodePoint(c);\n this.state = S_PI_REST;\n }\n }\n sPIRest() {\n // Capture characters into a piTarget while ``this.nameCheck`` run on the\n // character read returns true.\n const { chunk, i: start } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCodeNorm();\n if (c === EOC) {\n this.piTarget += chunk.slice(start);\n return;\n }\n // NL cannot satisfy this.nameCheck so we don't have to test specifically\n // for it.\n if (!this.nameCheck(c)) {\n this.piTarget += chunk.slice(start, this.prevI);\n const isQuestion = c === QUESTION;\n if (isQuestion || isS(c)) {\n if (this.piTarget === \"xml\") {\n if (!this.xmlDeclPossible) {\n this.fail(\"an XML declaration must be at the start of the document.\");\n }\n this.state = isQuestion ? S_XML_DECL_ENDING : S_XML_DECL_NAME_START;\n }\n else {\n this.state = isQuestion ? S_PI_ENDING : S_PI_BODY;\n }\n }\n else {\n this.fail(\"disallowed character in processing instruction name.\");\n this.piTarget += String.fromCodePoint(c);\n }\n break;\n }\n }\n }\n sPIBody() {\n if (this.text.length === 0) {\n const c = this.getCodeNorm();\n if (c === QUESTION) {\n this.state = S_PI_ENDING;\n }\n else if (!isS(c)) {\n this.text = String.fromCodePoint(c);\n }\n }\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n else if (this.captureToChar(QUESTION)) {\n this.state = S_PI_ENDING;\n }\n }\n sPIEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === GREATER) {\n const { piTarget } = this;\n if (piTarget.toLowerCase() === \"xml\") {\n this.fail(\"the XML declaration must appear at the start of the document.\");\n }\n (_a = this.piHandler) === null || _a === void 0 ? void 0 : _a.call(this, {\n target: piTarget,\n body: this.text,\n });\n this.piTarget = this.text = \"\";\n this.state = S_TEXT;\n }\n else if (c === QUESTION) {\n // We ran into ?? as part of a processing instruction. We initially took\n // the first ? as a sign that the PI was ending, but it is not. So we have\n // to add it to the body but we take the new ? as a sign that the PI is\n // ending.\n this.text += \"?\";\n }\n else {\n this.text += `?${String.fromCodePoint(c)}`;\n this.state = S_PI_BODY;\n }\n this.xmlDeclPossible = false;\n }\n sXMLDeclNameStart() {\n const c = this.skipSpaces();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n // It is valid to go to S_XML_DECL_ENDING from this state.\n this.state = S_XML_DECL_ENDING;\n return;\n }\n if (c !== EOC) {\n this.state = S_XML_DECL_NAME;\n this.name = String.fromCodePoint(c);\n }\n }\n sXMLDeclName() {\n const c = this.captureTo(XML_DECL_NAME_TERMINATOR);\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.name += this.text;\n this.text = \"\";\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (!(isS(c) || c === EQUAL)) {\n return;\n }\n this.name += this.text;\n this.text = \"\";\n if (!this.xmlDeclExpects.includes(this.name)) {\n switch (this.name.length) {\n case 0:\n this.fail(\"did not expect any more name/value pairs.\");\n break;\n case 1:\n this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);\n break;\n default:\n this.fail(`expected one of ${this.xmlDeclExpects.join(\", \")}`);\n }\n }\n this.state = c === EQUAL ? S_XML_DECL_VALUE_START : S_XML_DECL_EQ;\n }\n sXMLDeclEq() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (isS(c)) {\n return;\n }\n if (c !== EQUAL) {\n this.fail(\"value required.\");\n }\n this.state = S_XML_DECL_VALUE_START;\n }\n sXMLDeclValueStart() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (isS(c)) {\n return;\n }\n if (!isQuote(c)) {\n this.fail(\"value must be quoted.\");\n this.q = SPACE;\n }\n else {\n this.q = c;\n }\n this.state = S_XML_DECL_VALUE;\n }\n sXMLDeclValue() {\n const c = this.captureTo([this.q, QUESTION]);\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.text = \"\";\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (c === EOC) {\n return;\n }\n const value = this.text;\n this.text = \"\";\n switch (this.name) {\n case \"version\": {\n this.xmlDeclExpects = [\"encoding\", \"standalone\"];\n const version = value;\n this.xmlDecl.version = version;\n // This is the test specified by XML 1.0 but it is fine for XML 1.1.\n if (!/^1\\.[0-9]+$/.test(version)) {\n this.fail(\"version number must match /^1\\\\.[0-9]+$/.\");\n }\n // When forceXMLVersion is set, the XML declaration is ignored.\n else if (!this.opt.forceXMLVersion) {\n this.setXMLVersion(version);\n }\n break;\n }\n case \"encoding\":\n if (!/^[A-Za-z][A-Za-z0-9._-]*$/.test(value)) {\n this.fail(\"encoding value must match \\\n/^[A-Za-z0-9][A-Za-z0-9._-]*$/.\");\n }\n this.xmlDeclExpects = [\"standalone\"];\n this.xmlDecl.encoding = value;\n break;\n case \"standalone\":\n if (value !== \"yes\" && value !== \"no\") {\n this.fail(\"standalone value must match \\\"yes\\\" or \\\"no\\\".\");\n }\n this.xmlDeclExpects = [];\n this.xmlDecl.standalone = value;\n break;\n default:\n // We don't need to raise an error here since we've already raised one\n // when checking what name was expected.\n }\n this.name = \"\";\n this.state = S_XML_DECL_SEPARATOR;\n }\n sXMLDeclSeparator() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n // It is valid to go to S_XML_DECL_ENDING from this state.\n this.state = S_XML_DECL_ENDING;\n return;\n }\n if (!isS(c)) {\n this.fail(\"whitespace required.\");\n this.unget();\n }\n this.state = S_XML_DECL_NAME_START;\n }\n sXMLDeclEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === GREATER) {\n if (this.piTarget !== \"xml\") {\n this.fail(\"processing instructions are not allowed before root.\");\n }\n else if (this.name !== \"version\" &&\n this.xmlDeclExpects.includes(\"version\")) {\n this.fail(\"XML declaration must contain a version.\");\n }\n (_a = this.xmldeclHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.xmlDecl);\n this.name = \"\";\n this.piTarget = this.text = \"\";\n this.state = S_TEXT;\n }\n else {\n // We got here because the previous character was a ?, but the question\n // mark character is not valid inside any of the XML declaration\n // name/value pairs.\n this.fail(\"The character ? is disallowed anywhere in XML declarations.\");\n }\n this.xmlDeclPossible = false;\n }\n sOpenTag() {\n var _a;\n const c = this.captureNameChars();\n if (c === EOC) {\n return;\n }\n const tag = this.tag = {\n name: this.name,\n attributes: Object.create(null),\n };\n this.name = \"\";\n if (this.xmlnsOpt) {\n this.topNS = tag.ns = Object.create(null);\n }\n (_a = this.openTagStartHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n this.sawRoot = true;\n if (!this.fragmentOpt && this.closedRoot) {\n this.fail(\"documents may contain only one root.\");\n }\n switch (c) {\n case GREATER:\n this.openTag();\n break;\n case FORWARD_SLASH:\n this.state = S_OPEN_TAG_SLASH;\n break;\n default:\n if (!isS(c)) {\n this.fail(\"disallowed character in tag name.\");\n }\n this.state = S_ATTRIB;\n }\n }\n sOpenTagSlash() {\n if (this.getCode() === GREATER) {\n this.openSelfClosingTag();\n }\n else {\n this.fail(\"forward-slash in opening tag not followed by >.\");\n this.state = S_ATTRIB;\n }\n }\n sAttrib() {\n const c = this.skipSpaces();\n if (c === EOC) {\n return;\n }\n if (isNameStartChar(c)) {\n this.unget();\n this.state = S_ATTRIB_NAME;\n }\n else if (c === GREATER) {\n this.openTag();\n }\n else if (c === FORWARD_SLASH) {\n this.state = S_OPEN_TAG_SLASH;\n }\n else {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribName() {\n const c = this.captureNameChars();\n if (c === EQUAL) {\n this.state = S_ATTRIB_VALUE;\n }\n else if (isS(c)) {\n this.state = S_ATTRIB_NAME_SAW_WHITE;\n }\n else if (c === GREATER) {\n this.fail(\"attribute without value.\");\n this.pushAttrib(this.name, this.name);\n this.name = this.text = \"\";\n this.openTag();\n }\n else if (c !== EOC) {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribNameSawWhite() {\n const c = this.skipSpaces();\n switch (c) {\n case EOC:\n return;\n case EQUAL:\n this.state = S_ATTRIB_VALUE;\n break;\n default:\n this.fail(\"attribute without value.\");\n // Should we do this???\n // this.tag.attributes[this.name] = \"\";\n this.text = \"\";\n this.name = \"\";\n if (c === GREATER) {\n this.openTag();\n }\n else if (isNameStartChar(c)) {\n this.unget();\n this.state = S_ATTRIB_NAME;\n }\n else {\n this.fail(\"disallowed character in attribute name.\");\n this.state = S_ATTRIB;\n }\n }\n }\n sAttribValue() {\n const c = this.getCodeNorm();\n if (isQuote(c)) {\n this.q = c;\n this.state = S_ATTRIB_VALUE_QUOTED;\n }\n else if (!isS(c)) {\n this.fail(\"unquoted attribute value.\");\n this.state = S_ATTRIB_VALUE_UNQUOTED;\n this.unget();\n }\n }\n sAttribValueQuoted() {\n // We deliberately do not use captureTo here. The specialized code we use\n // here is faster than using captureTo.\n const { q, chunk } = this;\n let { i: start } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case q:\n this.pushAttrib(this.name, this.text + chunk.slice(start, this.prevI));\n this.name = this.text = \"\";\n this.q = null;\n this.state = S_ATTRIB_VALUE_CLOSED;\n return;\n case AMP:\n this.text += chunk.slice(start, this.prevI);\n this.state = S_ENTITY;\n this.entityReturnState = S_ATTRIB_VALUE_QUOTED;\n return;\n case NL:\n case NL_LIKE:\n case TAB:\n this.text += `${chunk.slice(start, this.prevI)} `;\n start = this.i;\n break;\n case LESS:\n this.text += chunk.slice(start, this.prevI);\n this.fail(\"disallowed character.\");\n return;\n case EOC:\n this.text += chunk.slice(start);\n return;\n default:\n }\n }\n }\n sAttribValueClosed() {\n const c = this.getCodeNorm();\n if (isS(c)) {\n this.state = S_ATTRIB;\n }\n else if (c === GREATER) {\n this.openTag();\n }\n else if (c === FORWARD_SLASH) {\n this.state = S_OPEN_TAG_SLASH;\n }\n else if (isNameStartChar(c)) {\n this.fail(\"no whitespace between attributes.\");\n this.unget();\n this.state = S_ATTRIB_NAME;\n }\n else {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribValueUnquoted() {\n // We don't do anything regarding EOL or space handling for unquoted\n // attributes. We already have failed by the time we get here, and the\n // contract that saxes upholds states that upon failure, it is not safe to\n // rely on the data passed to event handlers (other than\n // ``onerror``). Passing \"bad\" data is not a problem.\n const c = this.captureTo(ATTRIB_VALUE_UNQUOTED_TERMINATOR);\n switch (c) {\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_ATTRIB_VALUE_UNQUOTED;\n break;\n case LESS:\n this.fail(\"disallowed character.\");\n break;\n case EOC:\n break;\n default:\n if (this.text.includes(\"]]>\")) {\n this.fail(\"the string \\\"]]>\\\" is disallowed in char data.\");\n }\n this.pushAttrib(this.name, this.text);\n this.name = this.text = \"\";\n if (c === GREATER) {\n this.openTag();\n }\n else {\n this.state = S_ATTRIB;\n }\n }\n }\n sCloseTag() {\n const c = this.captureNameChars();\n if (c === GREATER) {\n this.closeTag();\n }\n else if (isS(c)) {\n this.state = S_CLOSE_TAG_SAW_WHITE;\n }\n else if (c !== EOC) {\n this.fail(\"disallowed character in closing tag.\");\n }\n }\n sCloseTagSawWhite() {\n switch (this.skipSpaces()) {\n case GREATER:\n this.closeTag();\n break;\n case EOC:\n break;\n default:\n this.fail(\"disallowed character in closing tag.\");\n }\n }\n // END OF STATE ENGINE METHODS\n handleTextInRoot() {\n // This is essentially a specialized version of captureTo which is optimized\n // for performing the ]]> check. A previous version of this code, checked\n // ``this.text`` for the presence of ]]>. It simplified the code but was\n // very costly when character data contained a lot of entities to be parsed.\n //\n // Since we are using a specialized loop, we also keep track of the presence\n // of ]]> in text data. The sequence ]]> is forbidden to appear as-is.\n //\n let { i: start, forbiddenState } = this;\n const { chunk, textHandler: handler } = this;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n scanLoop: \n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case LESS: {\n this.state = S_OPEN_WAKA;\n if (handler !== undefined) {\n const { text } = this;\n const slice = chunk.slice(start, this.prevI);\n if (text.length !== 0) {\n handler(text + slice);\n this.text = \"\";\n }\n else if (slice.length !== 0) {\n handler(slice);\n }\n }\n forbiddenState = FORBIDDEN_START;\n // eslint-disable-next-line no-labels\n break scanLoop;\n }\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_TEXT;\n if (handler !== undefined) {\n this.text += chunk.slice(start, this.prevI);\n }\n forbiddenState = FORBIDDEN_START;\n // eslint-disable-next-line no-labels\n break scanLoop;\n case CLOSE_BRACKET:\n switch (forbiddenState) {\n case FORBIDDEN_START:\n forbiddenState = FORBIDDEN_BRACKET;\n break;\n case FORBIDDEN_BRACKET:\n forbiddenState = FORBIDDEN_BRACKET_BRACKET;\n break;\n case FORBIDDEN_BRACKET_BRACKET:\n break;\n default:\n throw new Error(\"impossible state\");\n }\n break;\n case GREATER:\n if (forbiddenState === FORBIDDEN_BRACKET_BRACKET) {\n this.fail(\"the string \\\"]]>\\\" is disallowed in char data.\");\n }\n forbiddenState = FORBIDDEN_START;\n break;\n case NL_LIKE:\n if (handler !== undefined) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n }\n start = this.i;\n forbiddenState = FORBIDDEN_START;\n break;\n case EOC:\n if (handler !== undefined) {\n this.text += chunk.slice(start);\n }\n // eslint-disable-next-line no-labels\n break scanLoop;\n default:\n forbiddenState = FORBIDDEN_START;\n }\n }\n this.forbiddenState = forbiddenState;\n }\n handleTextOutsideRoot() {\n // This is essentially a specialized version of captureTo which is optimized\n // for a specialized task. We keep track of the presence of non-space\n // characters in the text since these are errors when appearing outside the\n // document root element.\n let { i: start } = this;\n const { chunk, textHandler: handler } = this;\n let nonSpace = false;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n outRootLoop: \n // eslint-disable-next-line no-constant-condition\n while (true) {\n const code = this.getCode();\n switch (code) {\n case LESS: {\n this.state = S_OPEN_WAKA;\n if (handler !== undefined) {\n const { text } = this;\n const slice = chunk.slice(start, this.prevI);\n if (text.length !== 0) {\n handler(text + slice);\n this.text = \"\";\n }\n else if (slice.length !== 0) {\n handler(slice);\n }\n }\n // eslint-disable-next-line no-labels\n break outRootLoop;\n }\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_TEXT;\n if (handler !== undefined) {\n this.text += chunk.slice(start, this.prevI);\n }\n nonSpace = true;\n // eslint-disable-next-line no-labels\n break outRootLoop;\n case NL_LIKE:\n if (handler !== undefined) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n }\n start = this.i;\n break;\n case EOC:\n if (handler !== undefined) {\n this.text += chunk.slice(start);\n }\n // eslint-disable-next-line no-labels\n break outRootLoop;\n default:\n if (!isS(code)) {\n nonSpace = true;\n }\n }\n }\n if (!nonSpace) {\n return;\n }\n // We use the reportedTextBeforeRoot and reportedTextAfterRoot flags\n // to avoid reporting errors for every single character that is out of\n // place.\n if (!this.sawRoot && !this.reportedTextBeforeRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextBeforeRoot = true;\n }\n if (this.closedRoot && !this.reportedTextAfterRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextAfterRoot = true;\n }\n }\n pushAttribNS(name, value) {\n var _a;\n const { prefix, local } = this.qname(name);\n const attr = { name, prefix, local, value };\n this.attribList.push(attr);\n (_a = this.attributeHandler) === null || _a === void 0 ? void 0 : _a.call(this, attr);\n if (prefix === \"xmlns\") {\n const trimmed = value.trim();\n if (this.currentXMLVersion === \"1.0\" && trimmed === \"\") {\n this.fail(\"invalid attempt to undefine prefix in XML 1.0\");\n }\n this.topNS[local] = trimmed;\n nsPairCheck(this, local, trimmed);\n }\n else if (name === \"xmlns\") {\n const trimmed = value.trim();\n this.topNS[\"\"] = trimmed;\n nsPairCheck(this, \"\", trimmed);\n }\n }\n pushAttribPlain(name, value) {\n var _a;\n const attr = { name, value };\n this.attribList.push(attr);\n (_a = this.attributeHandler) === null || _a === void 0 ? void 0 : _a.call(this, attr);\n }\n /**\n * End parsing. This performs final well-formedness checks and resets the\n * parser to a clean state.\n *\n * @returns this\n */\n end() {\n var _a, _b;\n if (!this.sawRoot) {\n this.fail(\"document must contain a root element.\");\n }\n const { tags } = this;\n while (tags.length > 0) {\n const tag = tags.pop();\n this.fail(`unclosed tag: ${tag.name}`);\n }\n if ((this.state !== S_BEGIN) && (this.state !== S_TEXT)) {\n this.fail(\"unexpected end.\");\n }\n const { text } = this;\n if (text.length !== 0) {\n (_a = this.textHandler) === null || _a === void 0 ? void 0 : _a.call(this, text);\n this.text = \"\";\n }\n this._closed = true;\n (_b = this.endHandler) === null || _b === void 0 ? void 0 : _b.call(this);\n this._init();\n return this;\n }\n /**\n * Resolve a namespace prefix.\n *\n * @param prefix The prefix to resolve.\n *\n * @returns The namespace URI or ``undefined`` if the prefix is not defined.\n */\n resolve(prefix) {\n var _a, _b;\n let uri = this.topNS[prefix];\n if (uri !== undefined) {\n return uri;\n }\n const { tags } = this;\n for (let index = tags.length - 1; index >= 0; index--) {\n uri = tags[index].ns[prefix];\n if (uri !== undefined) {\n return uri;\n }\n }\n uri = this.ns[prefix];\n if (uri !== undefined) {\n return uri;\n }\n return (_b = (_a = this.opt).resolvePrefix) === null || _b === void 0 ? void 0 : _b.call(_a, prefix);\n }\n /**\n * Parse a qname into its prefix and local name parts.\n *\n * @param name The name to parse\n *\n * @returns\n */\n qname(name) {\n // This is faster than using name.split(\":\").\n const colon = name.indexOf(\":\");\n if (colon === -1) {\n return { prefix: \"\", local: name };\n }\n const local = name.slice(colon + 1);\n const prefix = name.slice(0, colon);\n if (prefix === \"\" || local === \"\" || local.includes(\":\")) {\n this.fail(`malformed name: ${name}.`);\n }\n return { prefix, local };\n }\n processAttribsNS() {\n var _a;\n const { attribList } = this;\n const tag = this.tag;\n {\n // add namespace info to tag\n const { prefix, local } = this.qname(tag.name);\n tag.prefix = prefix;\n tag.local = local;\n const uri = tag.uri = (_a = this.resolve(prefix)) !== null && _a !== void 0 ? _a : \"\";\n if (prefix !== \"\") {\n if (prefix === \"xmlns\") {\n this.fail(\"tags may not have \\\"xmlns\\\" as prefix.\");\n }\n if (uri === \"\") {\n this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);\n tag.uri = prefix;\n }\n }\n }\n if (attribList.length === 0) {\n return;\n }\n const { attributes } = tag;\n const seen = new Set();\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (const attr of attribList) {\n const { name, prefix, local } = attr;\n let uri;\n let eqname;\n if (prefix === \"\") {\n uri = name === \"xmlns\" ? XMLNS_NAMESPACE : \"\";\n eqname = name;\n }\n else {\n uri = this.resolve(prefix);\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (uri === undefined) {\n this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);\n uri = prefix;\n }\n eqname = `{${uri}}${local}`;\n }\n if (seen.has(eqname)) {\n this.fail(`duplicate attribute: ${eqname}.`);\n }\n seen.add(eqname);\n attr.uri = uri;\n attributes[name] = attr;\n }\n this.attribList = [];\n }\n processAttribsPlain() {\n const { attribList } = this;\n // eslint-disable-next-line prefer-destructuring\n const attributes = this.tag.attributes;\n for (const { name, value } of attribList) {\n if (attributes[name] !== undefined) {\n this.fail(`duplicate attribute: ${name}.`);\n }\n attributes[name] = value;\n }\n this.attribList = [];\n }\n /**\n * Handle a complete open tag. This parser code calls this once it has seen\n * the whole tag. This method checks for well-formeness and then emits\n * ``onopentag``.\n */\n openTag() {\n var _a;\n this.processAttribs();\n const { tags } = this;\n const tag = this.tag;\n tag.isSelfClosing = false;\n // There cannot be any pending text here due to the onopentagstart that was\n // necessarily emitted before we get here. So we do not check text.\n (_a = this.openTagHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n tags.push(tag);\n this.state = S_TEXT;\n this.name = \"\";\n }\n /**\n * Handle a complete self-closing tag. This parser code calls this once it has\n * seen the whole tag. This method checks for well-formeness and then emits\n * ``onopentag`` and ``onclosetag``.\n */\n openSelfClosingTag() {\n var _a, _b, _c;\n this.processAttribs();\n const { tags } = this;\n const tag = this.tag;\n tag.isSelfClosing = true;\n // There cannot be any pending text here due to the onopentagstart that was\n // necessarily emitted before we get here. So we do not check text.\n (_a = this.openTagHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n (_b = this.closeTagHandler) === null || _b === void 0 ? void 0 : _b.call(this, tag);\n const top = this.tag = (_c = tags[tags.length - 1]) !== null && _c !== void 0 ? _c : null;\n if (top === null) {\n this.closedRoot = true;\n }\n this.state = S_TEXT;\n this.name = \"\";\n }\n /**\n * Handle a complete close tag. This parser code calls this once it has seen\n * the whole tag. This method checks for well-formeness and then emits\n * ``onclosetag``.\n */\n closeTag() {\n const { tags, name } = this;\n // Our state after this will be S_TEXT, no matter what, and we can clear\n // tagName now.\n this.state = S_TEXT;\n this.name = \"\";\n if (name === \"\") {\n this.fail(\"weird empty close tag.\");\n this.text += \"\";\n return;\n }\n const handler = this.closeTagHandler;\n let l = tags.length;\n while (l-- > 0) {\n const tag = this.tag = tags.pop();\n this.topNS = tag.ns;\n handler === null || handler === void 0 ? void 0 : handler(tag);\n if (tag.name === name) {\n break;\n }\n this.fail(\"unexpected close tag.\");\n }\n if (l === 0) {\n this.closedRoot = true;\n }\n else if (l < 0) {\n this.fail(`unmatched closing tag: ${name}.`);\n this.text += ``;\n }\n }\n /**\n * Resolves an entity. Makes any necessary well-formedness checks.\n *\n * @param entity The entity to resolve.\n *\n * @returns The parsed entity.\n */\n parseEntity(entity) {\n // startsWith would be significantly slower for this test.\n if (entity[0] !== \"#\") {\n const defined = this.ENTITIES[entity];\n if (defined !== undefined) {\n return defined;\n }\n this.fail(this.isName(entity) ? \"undefined entity.\" :\n \"disallowed character in entity name.\");\n return `&${entity};`;\n }\n let num = NaN;\n if (entity[1] === \"x\" && /^#x[0-9a-f]+$/i.test(entity)) {\n num = parseInt(entity.slice(2), 16);\n }\n else if (/^#[0-9]+$/.test(entity)) {\n num = parseInt(entity.slice(1), 10);\n }\n // The character reference is required to match the CHAR production.\n if (!this.isChar(num)) {\n this.fail(\"malformed character entity.\");\n return `&${entity};`;\n }\n return String.fromCodePoint(num);\n }\n}\nexports.SaxesParser = SaxesParser;\n//# sourceMappingURL=saxes.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/BlankNode\"), exports);\n__exportStar(require(\"./lib/DataFactory\"), exports);\n__exportStar(require(\"./lib/DefaultGraph\"), exports);\n__exportStar(require(\"./lib/Literal\"), exports);\n__exportStar(require(\"./lib/NamedNode\"), exports);\n__exportStar(require(\"./lib/Quad\"), exports);\n__exportStar(require(\"./lib/Variable\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlankNode = void 0;\n/**\n * A term that represents an RDF blank node with a label.\n */\nclass BlankNode {\n constructor(value) {\n this.termType = 'BlankNode';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'BlankNode' && other.value === this.value;\n }\n}\nexports.BlankNode = BlankNode;\n//# sourceMappingURL=BlankNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataFactory = void 0;\nconst BlankNode_1 = require(\"./BlankNode\");\nconst DefaultGraph_1 = require(\"./DefaultGraph\");\nconst Literal_1 = require(\"./Literal\");\nconst NamedNode_1 = require(\"./NamedNode\");\nconst Quad_1 = require(\"./Quad\");\nconst Variable_1 = require(\"./Variable\");\nlet dataFactoryCounter = 0;\n/**\n * A factory for instantiating RDF terms and quads.\n */\nclass DataFactory {\n constructor(options) {\n this.blankNodeCounter = 0;\n options = options || {};\n this.blankNodePrefix = options.blankNodePrefix || `df_${dataFactoryCounter++}_`;\n }\n /**\n * @param value The IRI for the named node.\n * @return A new instance of NamedNode.\n * @see NamedNode\n */\n namedNode(value) {\n return new NamedNode_1.NamedNode(value);\n }\n /**\n * @param value The optional blank node identifier.\n * @return A new instance of BlankNode.\n * If the `value` parameter is undefined a new identifier\n * for the blank node is generated for each call.\n * @see BlankNode\n */\n blankNode(value) {\n return new BlankNode_1.BlankNode(value || `${this.blankNodePrefix}${this.blankNodeCounter++}`);\n }\n /**\n * @param value The literal value.\n * @param languageOrDatatype The optional language or datatype.\n * If `languageOrDatatype` is a NamedNode,\n * then it is used for the value of `NamedNode.datatype`.\n * Otherwise `languageOrDatatype` is used for the value\n * of `NamedNode.language`.\n * @return A new instance of Literal.\n * @see Literal\n */\n literal(value, languageOrDatatype) {\n return new Literal_1.Literal(value, languageOrDatatype);\n }\n /**\n * This method is optional.\n * @param value The variable name\n * @return A new instance of Variable.\n * @see Variable\n */\n variable(value) {\n return new Variable_1.Variable(value);\n }\n /**\n * @return An instance of DefaultGraph.\n */\n defaultGraph() {\n return DefaultGraph_1.DefaultGraph.INSTANCE;\n }\n /**\n * @param subject The quad subject term.\n * @param predicate The quad predicate term.\n * @param object The quad object term.\n * @param graph The quad graph term.\n * @return A new instance of Quad.\n * @see Quad\n */\n quad(subject, predicate, object, graph) {\n return new Quad_1.Quad(subject, predicate, object, graph || this.defaultGraph());\n }\n /**\n * Create a deep copy of the given term using this data factory.\n * @param original An RDF term.\n * @return A deep copy of the given term.\n */\n fromTerm(original) {\n // TODO: remove nasty any casts when this TS bug has been fixed:\n // https://github.com/microsoft/TypeScript/issues/26933\n switch (original.termType) {\n case 'NamedNode':\n return this.namedNode(original.value);\n case 'BlankNode':\n return this.blankNode(original.value);\n case 'Literal':\n if (original.language) {\n return this.literal(original.value, original.language);\n }\n if (!original.datatype.equals(Literal_1.Literal.XSD_STRING)) {\n return this.literal(original.value, this.fromTerm(original.datatype));\n }\n return this.literal(original.value);\n case 'Variable':\n return this.variable(original.value);\n case 'DefaultGraph':\n return this.defaultGraph();\n case 'Quad':\n return this.quad(this.fromTerm(original.subject), this.fromTerm(original.predicate), this.fromTerm(original.object), this.fromTerm(original.graph));\n }\n }\n /**\n * Create a deep copy of the given quad using this data factory.\n * @param original An RDF quad.\n * @return A deep copy of the given quad.\n */\n fromQuad(original) {\n return this.fromTerm(original);\n }\n /**\n * Reset the internal blank node counter.\n */\n resetBlankNodeCounter() {\n this.blankNodeCounter = 0;\n }\n}\nexports.DataFactory = DataFactory;\n//# sourceMappingURL=DataFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultGraph = void 0;\n/**\n * A singleton term instance that represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass DefaultGraph {\n constructor() {\n this.termType = 'DefaultGraph';\n this.value = '';\n // Private constructor\n }\n equals(other) {\n return !!other && other.termType === 'DefaultGraph';\n }\n}\nexports.DefaultGraph = DefaultGraph;\nDefaultGraph.INSTANCE = new DefaultGraph();\n//# sourceMappingURL=DefaultGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Literal = void 0;\nconst NamedNode_1 = require(\"./NamedNode\");\n/**\n * A term that represents an RDF literal, containing a string with an optional language tag or datatype.\n */\nclass Literal {\n constructor(value, languageOrDatatype) {\n this.termType = 'Literal';\n this.value = value;\n if (typeof languageOrDatatype === 'string') {\n this.language = languageOrDatatype;\n this.datatype = Literal.RDF_LANGUAGE_STRING;\n }\n else if (languageOrDatatype) {\n this.language = '';\n this.datatype = languageOrDatatype;\n }\n else {\n this.language = '';\n this.datatype = Literal.XSD_STRING;\n }\n }\n equals(other) {\n return !!other && other.termType === 'Literal' && other.value === this.value &&\n other.language === this.language && other.datatype.equals(this.datatype);\n }\n}\nexports.Literal = Literal;\nLiteral.RDF_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString');\nLiteral.XSD_STRING = new NamedNode_1.NamedNode('http://www.w3.org/2001/XMLSchema#string');\n//# sourceMappingURL=Literal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NamedNode = void 0;\n/**\n * A term that contains an IRI.\n */\nclass NamedNode {\n constructor(value) {\n this.termType = 'NamedNode';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'NamedNode' && other.value === this.value;\n }\n}\nexports.NamedNode = NamedNode;\n//# sourceMappingURL=NamedNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Quad = void 0;\n/**\n * An instance of DefaultGraph represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass Quad {\n constructor(subject, predicate, object, graph) {\n this.termType = 'Quad';\n this.value = '';\n this.subject = subject;\n this.predicate = predicate;\n this.object = object;\n this.graph = graph;\n }\n equals(other) {\n // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n return !!other && (other.termType === 'Quad' || !other.termType) &&\n this.subject.equals(other.subject) &&\n this.predicate.equals(other.predicate) &&\n this.object.equals(other.object) &&\n this.graph.equals(other.graph);\n }\n}\nexports.Quad = Quad;\n//# sourceMappingURL=Quad.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variable = void 0;\n/**\n * A term that represents a variable.\n */\nclass Variable {\n constructor(value) {\n this.termType = 'Variable';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'Variable' && other.value === this.value;\n }\n}\nexports.Variable = Variable;\n//# sourceMappingURL=Variable.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/RdfXmlParser\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParseError = void 0;\n/**\n * An error that includes line and column in the error message.\n */\nclass ParseError extends Error {\n constructor(parser, message) {\n const saxParser = parser.saxParser;\n super(parser.trackPosition ? `Line ${saxParser.line} column ${saxParser.column + 1}: ${message}` : message);\n }\n}\nexports.ParseError = ParseError;\n//# sourceMappingURL=ParseError.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParseType = exports.RdfXmlParser = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst saxes_1 = require(\"@rubensworks/saxes\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst ParseError_1 = require(\"./ParseError\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst validate_iri_1 = require(\"validate-iri\");\nclass RdfXmlParser extends readable_stream_1.Transform {\n constructor(args) {\n super({ readableObjectMode: true });\n this.activeTagStack = [];\n this.nodeIds = {};\n if (args) {\n Object.assign(this, args);\n this.options = args;\n }\n if (!this.dataFactory) {\n this.dataFactory = new rdf_data_factory_1.DataFactory();\n }\n if (!this.baseIRI) {\n this.baseIRI = '';\n }\n if (!this.defaultGraph) {\n this.defaultGraph = this.dataFactory.defaultGraph();\n }\n if (this.validateUri !== false) {\n this.validateUri = true;\n }\n if (!this.iriValidationStrategy) {\n this.iriValidationStrategy = this.validateUri ? validate_iri_1.IriValidationStrategy.Pragmatic : validate_iri_1.IriValidationStrategy.None;\n }\n this.saxParser = new saxes_1.SaxesParser({ xmlns: true, position: this.trackPosition });\n this.attachSaxListeners();\n }\n /**\n * Parses the given text stream into a quad stream.\n * @param {NodeJS.EventEmitter} stream A text stream.\n * @return {RDF.Stream} A quad stream.\n */\n import(stream) {\n const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n stream.on('error', (error) => parsed.emit('error', error));\n stream.on('data', (data) => output.push(data));\n stream.on('end', () => output.push(null));\n const parsed = output.pipe(new RdfXmlParser(this.options));\n return parsed;\n }\n _transform(chunk, encoding, callback) {\n try {\n this.saxParser.write(chunk);\n }\n catch (e) {\n return callback(e);\n }\n callback();\n }\n /**\n * Create a new parse error instance.\n * @param {string} message An error message.\n * @return {Error} An error instance.\n */\n newParseError(message) {\n return new ParseError_1.ParseError(this, message);\n }\n /**\n * Convert the given value to a IRI by taking into account the baseIRI.\n *\n * This will follow the RDF/XML spec for converting values with baseIRIs to a IRI.\n *\n * @param {string} value The value to convert to an IRI.\n * @param {IActiveTag} activeTag The active tag.\n * @return {NamedNode} an IRI.\n */\n valueToUri(value, activeTag) {\n return this.uriToNamedNode((0, relative_to_absolute_iri_1.resolve)(value, activeTag.baseIRI));\n }\n /**\n * Convert the given value URI string to a named node.\n *\n * This throw an error if the URI is invalid.\n *\n * @param {string} uri A URI string.\n * @return {NamedNode} a named node.\n */\n uriToNamedNode(uri) {\n // Validate URI\n const uriValidationResult = (0, validate_iri_1.validateIri)(uri, this.iriValidationStrategy);\n if (uriValidationResult instanceof Error) {\n throw this.newParseError(uriValidationResult.message);\n }\n return this.dataFactory.namedNode(uri);\n }\n /**\n * Validate the given value as an NCName: https://www.w3.org/TR/xml-names/#NT-NCName\n * If it is invalid, an error will thrown emitted.\n * @param {string} value A value.\n */\n validateNcname(value) {\n // Validate term as an NCName: https://www.w3.org/TR/xml-names/#NT-NCName\n if (!RdfXmlParser.NCNAME_MATCHER.test(value)) {\n throw this.newParseError(`Not a valid NCName: ${value}`);\n }\n }\n attachSaxListeners() {\n this.saxParser.on('error', (error) => this.emit('error', error));\n this.saxParser.on('opentag', this.onTag.bind(this));\n this.saxParser.on('text', this.onText.bind(this));\n this.saxParser.on('cdata', this.onText.bind(this));\n this.saxParser.on('closetag', this.onCloseTag.bind(this));\n this.saxParser.on('doctype', this.onDoctype.bind(this));\n }\n /**\n * Handle the given tag.\n * @param {SaxesTagNS} tag A SAX tag.\n */\n onTag(tag) {\n // Get parent tag\n const parentTag = this.activeTagStack.length\n ? this.activeTagStack[this.activeTagStack.length - 1] : null;\n let currentParseType = ParseType.RESOURCE;\n if (parentTag) {\n parentTag.hadChildren = true;\n currentParseType = parentTag.childrenParseType;\n }\n // Check if this tag needs to be converted to a string\n if (parentTag && parentTag.childrenStringTags) {\n // Convert this tag to a string\n const tagName = tag.name;\n let attributes = '';\n for (const attributeKey in tag.attributes) {\n attributes += ` ${attributeKey}=\"${tag.attributes[attributeKey].value}\"`;\n }\n const tagContents = `${tagName}${attributes}`;\n const tagString = `<${tagContents}>`;\n parentTag.childrenStringTags.push(tagString);\n // Inherit the array, so that deeper tags are appended to this same array\n const stringActiveTag = { childrenStringTags: parentTag.childrenStringTags };\n stringActiveTag.childrenStringEmitClosingTag = ``;\n this.activeTagStack.push(stringActiveTag);\n // Halt any further processing\n return;\n }\n const activeTag = {};\n if (parentTag) {\n // Inherit language scope and baseIRI from parent\n activeTag.language = parentTag.language;\n activeTag.baseIRI = parentTag.baseIRI;\n }\n else {\n activeTag.baseIRI = this.baseIRI;\n }\n this.activeTagStack.push(activeTag);\n if (currentParseType === ParseType.RESOURCE) {\n this.onTagResource(tag, activeTag, parentTag, !parentTag);\n }\n else { // currentParseType === ParseType.PROPERTY\n this.onTagProperty(tag, activeTag, parentTag);\n }\n }\n /**\n * Handle the given node element in resource-mode.\n * @param {SaxesTagNS} tag A SAX tag.\n * @param {IActiveTag} activeTag The currently active tag.\n * @param {IActiveTag} parentTag The parent tag or null.\n * @param {boolean} rootTag If we are currently processing the root tag.\n */\n onTagResource(tag, activeTag, parentTag, rootTag) {\n activeTag.childrenParseType = ParseType.PROPERTY;\n // Assume that the current node is a _typed_ node (2.13), unless we find an rdf:Description as node name\n let typedNode = true;\n if (tag.uri === RdfXmlParser.RDF) {\n // Check forbidden property element names\n if (!rootTag && RdfXmlParser.FORBIDDEN_NODE_ELEMENTS.indexOf(tag.local) >= 0) {\n throw this.newParseError(`Illegal node element name: ${tag.local}`);\n }\n switch (tag.local) {\n case 'RDF':\n // Tags under must always be resources\n activeTag.childrenParseType = ParseType.RESOURCE;\n case 'Description':\n typedNode = false;\n }\n }\n const predicates = [];\n const objects = [];\n // Collect all attributes as triples\n // Assign subject value only after all attributes have been processed, because baseIRI may change the final val\n let activeSubjectValue = null;\n let claimSubjectNodeId = false;\n let subjectValueBlank = false;\n let explicitType = null;\n for (const attributeKey in tag.attributes) {\n const attribute = tag.attributes[attributeKey];\n if (parentTag && attribute.uri === RdfXmlParser.RDF) {\n switch (attribute.local) {\n case 'about':\n if (activeSubjectValue) {\n throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, \\\nwhile ${attribute.value} and ${activeSubjectValue} where found.`);\n }\n activeSubjectValue = attribute.value;\n continue;\n case 'ID':\n if (activeSubjectValue) {\n throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, \\\nwhile ${attribute.value} and ${activeSubjectValue} where found.`);\n }\n this.validateNcname(attribute.value);\n activeSubjectValue = '#' + attribute.value;\n claimSubjectNodeId = true;\n continue;\n case 'nodeID':\n if (activeSubjectValue) {\n throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, \\\nwhile ${attribute.value} and ${activeSubjectValue} where found.`);\n }\n this.validateNcname(attribute.value);\n activeSubjectValue = attribute.value;\n subjectValueBlank = true;\n continue;\n case 'bagID':\n throw this.newParseError(`rdf:bagID is not supported.`);\n case 'type':\n // Emit the rdf:type later as named node instead of the default literal\n explicitType = attribute.value;\n continue;\n case 'aboutEach':\n throw this.newParseError(`rdf:aboutEach is not supported.`);\n case 'aboutEachPrefix':\n throw this.newParseError(`rdf:aboutEachPrefix is not supported.`);\n case 'li':\n throw this.newParseError(`rdf:li on node elements are not supported.`);\n }\n }\n else if (attribute.uri === RdfXmlParser.XML) {\n if (attribute.local === 'lang') {\n activeTag.language = attribute.value === '' ? null : attribute.value.toLowerCase();\n continue;\n }\n else if (attribute.local === 'base') {\n // SAX Parser does not expand xml:base, based on DOCTYPE, so we have to do it manually\n activeTag.baseIRI = (0, relative_to_absolute_iri_1.resolve)(attribute.value, activeTag.baseIRI);\n continue;\n }\n }\n // Interpret attributes at this point as properties on this node,\n // but we ignore attributes that have no prefix or known expanded URI\n if (attribute.prefix !== 'xml' && attribute.prefix !== 'xmlns'\n && (attribute.prefix !== '' || attribute.local !== 'xmlns')\n && attribute.uri) {\n predicates.push(this.uriToNamedNode(attribute.uri + attribute.local));\n objects.push(attribute.value);\n }\n }\n // Create the subject value _after_ all attributes have been processed\n if (activeSubjectValue !== null) {\n activeTag.subject = subjectValueBlank\n ? this.dataFactory.blankNode(activeSubjectValue) : this.valueToUri(activeSubjectValue, activeTag);\n if (claimSubjectNodeId) {\n this.claimNodeId(activeTag.subject);\n }\n }\n // Force the creation of a subject if it doesn't exist yet\n if (!activeTag.subject) {\n activeTag.subject = this.dataFactory.blankNode();\n }\n // Emit the type if we're at a typed node\n if (typedNode) {\n const type = this.uriToNamedNode(tag.uri + tag.local);\n this.emitTriple(activeTag.subject, this.dataFactory.namedNode(RdfXmlParser.RDF + 'type'), type, parentTag ? parentTag.reifiedStatementId : null);\n }\n if (parentTag) {\n // If the parent tag defined a predicate, add the current tag as property value\n if (parentTag.predicate) {\n if (parentTag.childrenCollectionSubject) {\n // RDF:List-based properties\n const linkTerm = this.dataFactory.blankNode();\n // Emit

OR \n this.emitTriple(parentTag.childrenCollectionSubject, parentTag.childrenCollectionPredicate, linkTerm, parentTag.reifiedStatementId);\n // Emit value\n this.emitTriple(linkTerm, this.dataFactory.namedNode(RdfXmlParser.RDF + 'first'), activeTag.subject, activeTag.reifiedStatementId);\n // Store in the parent node\n parentTag.childrenCollectionSubject = linkTerm;\n parentTag.childrenCollectionPredicate = this.dataFactory.namedNode(RdfXmlParser.RDF + 'rest');\n }\n else { // !parentTag.predicateEmitted\n // Set-based properties\n this.emitTriple(parentTag.subject, parentTag.predicate, activeTag.subject, parentTag.reifiedStatementId);\n // Emit pending properties on the parent tag that had no defined subject yet.\n for (let i = 0; i < parentTag.predicateSubPredicates.length; i++) {\n this.emitTriple(activeTag.subject, parentTag.predicateSubPredicates[i], parentTag.predicateSubObjects[i], null);\n }\n // Cleanup so we don't emit them again when the parent tag is closed\n parentTag.predicateSubPredicates = [];\n parentTag.predicateSubObjects = [];\n parentTag.predicateEmitted = true;\n }\n }\n // Emit all collected triples\n for (let i = 0; i < predicates.length; i++) {\n const object = this.dataFactory.literal(objects[i], activeTag.datatype || activeTag.language);\n this.emitTriple(activeTag.subject, predicates[i], object, parentTag.reifiedStatementId);\n }\n // Emit the rdf:type as named node instead of literal\n if (explicitType) {\n this.emitTriple(activeTag.subject, this.dataFactory.namedNode(RdfXmlParser.RDF + 'type'), this.uriToNamedNode(explicitType), null);\n }\n }\n }\n /**\n * Handle the given property element in property-mode.\n * @param {SaxesTagNS} tag A SAX tag.\n * @param {IActiveTag} activeTag The currently active tag.\n * @param {IActiveTag} parentTag The parent tag or null.\n */\n onTagProperty(tag, activeTag, parentTag) {\n activeTag.childrenParseType = ParseType.RESOURCE;\n activeTag.subject = parentTag.subject; // Inherit parent subject\n if (tag.uri === RdfXmlParser.RDF && tag.local === 'li') {\n // Convert rdf:li to rdf:_x\n if (!parentTag.listItemCounter) {\n parentTag.listItemCounter = 1;\n }\n activeTag.predicate = this.uriToNamedNode(tag.uri + '_' + parentTag.listItemCounter++);\n }\n else {\n activeTag.predicate = this.uriToNamedNode(tag.uri + tag.local);\n }\n // Check forbidden property element names\n if (tag.uri === RdfXmlParser.RDF\n && RdfXmlParser.FORBIDDEN_PROPERTY_ELEMENTS.indexOf(tag.local) >= 0) {\n throw this.newParseError(`Illegal property element name: ${tag.local}`);\n }\n activeTag.predicateSubPredicates = [];\n activeTag.predicateSubObjects = [];\n let parseType = false;\n let attributedProperty = false;\n // Collect all attributes as triples\n // Assign subject value only after all attributes have been processed, because baseIRI may change the final val\n let activeSubSubjectValue = null;\n let subSubjectValueBlank = true;\n const predicates = [];\n const objects = [];\n for (const propertyAttributeKey in tag.attributes) {\n const propertyAttribute = tag.attributes[propertyAttributeKey];\n if (propertyAttribute.uri === RdfXmlParser.RDF) {\n switch (propertyAttribute.local) {\n case 'resource':\n if (activeSubSubjectValue) {\n throw this.newParseError(`Found both rdf:resource (${propertyAttribute.value}) and rdf:nodeID (${activeSubSubjectValue}).`);\n }\n if (parseType) {\n throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:resource (${propertyAttribute.value})`);\n }\n activeTag.hadChildren = true;\n activeSubSubjectValue = propertyAttribute.value;\n subSubjectValueBlank = false;\n continue;\n case 'datatype':\n if (attributedProperty) {\n throw this.newParseError(`Found both non-rdf:* property attributes and rdf:datatype (${propertyAttribute.value}).`);\n }\n if (parseType) {\n throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${propertyAttribute.value})`);\n }\n activeTag.datatype = this.valueToUri(propertyAttribute.value, activeTag);\n continue;\n case 'nodeID':\n if (attributedProperty) {\n throw this.newParseError(`Found both non-rdf:* property attributes and rdf:nodeID (${propertyAttribute.value}).`);\n }\n if (activeTag.hadChildren) {\n throw this.newParseError(`Found both rdf:resource and rdf:nodeID (${propertyAttribute.value}).`);\n }\n if (parseType) {\n throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID (${propertyAttribute.value})`);\n }\n this.validateNcname(propertyAttribute.value);\n activeTag.hadChildren = true;\n activeSubSubjectValue = propertyAttribute.value;\n subSubjectValueBlank = true;\n continue;\n case 'bagID':\n throw this.newParseError(`rdf:bagID is not supported.`);\n case 'parseType':\n // Validation\n if (attributedProperty) {\n throw this.newParseError(`rdf:parseType is not allowed when non-rdf:* property attributes are present`);\n }\n if (activeTag.datatype) {\n throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${activeTag.datatype.value})`);\n }\n if (activeSubSubjectValue) {\n throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID or rdf:resource (${activeSubSubjectValue})`);\n }\n if (propertyAttribute.value === 'Resource') {\n parseType = true;\n activeTag.childrenParseType = ParseType.PROPERTY;\n // Turn this property element into a node element\n const nestedBNode = this.dataFactory.blankNode();\n this.emitTriple(activeTag.subject, activeTag.predicate, nestedBNode, activeTag.reifiedStatementId);\n activeTag.subject = nestedBNode;\n activeTag.predicate = null;\n }\n else if (propertyAttribute.value === 'Collection') {\n parseType = true;\n // Interpret children as being part of an rdf:List\n activeTag.hadChildren = true;\n activeTag.childrenCollectionSubject = activeTag.subject;\n activeTag.childrenCollectionPredicate = activeTag.predicate;\n subSubjectValueBlank = false;\n }\n else if (propertyAttribute.value === 'Literal') {\n parseType = true;\n // Interpret children as being part of a literal string\n activeTag.childrenTagsToString = true;\n activeTag.childrenStringTags = [];\n }\n continue;\n case 'ID':\n this.validateNcname(propertyAttribute.value);\n activeTag.reifiedStatementId = this.valueToUri('#' + propertyAttribute.value, activeTag);\n this.claimNodeId(activeTag.reifiedStatementId);\n continue;\n }\n }\n else if (propertyAttribute.uri === RdfXmlParser.XML && propertyAttribute.local === 'lang') {\n activeTag.language = propertyAttribute.value === ''\n ? null : propertyAttribute.value.toLowerCase();\n continue;\n }\n // Interpret attributes at this point as properties via implicit blank nodes on the property,\n // but we ignore attributes that have no prefix or known expanded URI\n if (propertyAttribute.prefix !== 'xml' && propertyAttribute.prefix !== 'xmlns'\n && (propertyAttribute.prefix !== '' || propertyAttribute.local !== 'xmlns')\n && propertyAttribute.uri) {\n if (parseType || activeTag.datatype) {\n throw this.newParseError(`Found illegal rdf:* properties on property element with attribute: ${propertyAttribute.value}`);\n }\n activeTag.hadChildren = true;\n attributedProperty = true;\n predicates.push(this.uriToNamedNode(propertyAttribute.uri + propertyAttribute.local));\n objects.push(this.dataFactory.literal(propertyAttribute.value, activeTag.datatype || activeTag.language));\n }\n }\n // Create the subject value _after_ all attributes have been processed\n if (activeSubSubjectValue !== null) {\n const subjectParent = activeTag.subject;\n activeTag.subject = subSubjectValueBlank\n ? this.dataFactory.blankNode(activeSubSubjectValue) : this.valueToUri(activeSubSubjectValue, activeTag);\n this.emitTriple(subjectParent, activeTag.predicate, activeTag.subject, activeTag.reifiedStatementId);\n // Emit our buffered triples\n for (let i = 0; i < predicates.length; i++) {\n this.emitTriple(activeTag.subject, predicates[i], objects[i], null);\n }\n activeTag.predicateEmitted = true;\n }\n else if (subSubjectValueBlank) {\n // The current property element has no defined subject\n // Let's buffer the properties until the child node defines a subject,\n // or if the tag closes.\n activeTag.predicateSubPredicates = predicates;\n activeTag.predicateSubObjects = objects;\n activeTag.predicateEmitted = false;\n }\n }\n /**\n * Emit the given triple to the stream.\n * @param {Term} subject A subject term.\n * @param {Term} predicate A predicate term.\n * @param {Term} object An object term.\n * @param {Term} statementId An optional resource that identifies the triple.\n * If truthy, then the given triple will also be emitted reified.\n */\n emitTriple(subject, predicate, object, statementId) {\n this.push(this.dataFactory.quad(subject, predicate, object, this.defaultGraph));\n // Reify triple\n if (statementId) {\n this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'type'), this.dataFactory.namedNode(RdfXmlParser.RDF + 'Statement'), this.defaultGraph));\n this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'subject'), subject, this.defaultGraph));\n this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'predicate'), predicate, this.defaultGraph));\n this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'object'), object, this.defaultGraph));\n }\n }\n /**\n * Register the given term as a node ID.\n * If one was already registered, this will emit an error.\n *\n * This is used to check duplicate occurrences of rdf:ID in scope of the baseIRI.\n * @param {Term} term An RDF term.\n */\n claimNodeId(term) {\n if (!this.allowDuplicateRdfIds) {\n if (this.nodeIds[term.value]) {\n throw this.newParseError(`Found multiple occurrences of rdf:ID='${term.value}'.`);\n }\n this.nodeIds[term.value] = true;\n }\n }\n /**\n * Handle the given text string.\n * @param {string} text A parsed text string.\n */\n onText(text) {\n const activeTag = this.activeTagStack.length\n ? this.activeTagStack[this.activeTagStack.length - 1] : null;\n if (activeTag) {\n if (activeTag.childrenStringTags) {\n activeTag.childrenStringTags.push(text);\n }\n else if (activeTag.predicate) {\n activeTag.text = text;\n }\n }\n }\n /**\n * Handle the closing of the last tag.\n */\n onCloseTag() {\n const poppedTag = this.activeTagStack.pop();\n // If we were converting a tag to a string, and the tag was not self-closing, close it here.\n if (poppedTag.childrenStringEmitClosingTag) {\n poppedTag.childrenStringTags.push(poppedTag.childrenStringEmitClosingTag);\n }\n // Set the literal value if we were collecting XML tags to string\n if (poppedTag.childrenTagsToString) {\n poppedTag.datatype = this.dataFactory.namedNode(RdfXmlParser.RDF + 'XMLLiteral');\n poppedTag.text = poppedTag.childrenStringTags.join('');\n poppedTag.hadChildren = false; // Force a literal triple to be emitted hereafter\n }\n if (poppedTag.childrenCollectionSubject) {\n // Terminate the rdf:List\n this.emitTriple(poppedTag.childrenCollectionSubject, poppedTag.childrenCollectionPredicate, this.dataFactory.namedNode(RdfXmlParser.RDF + 'nil'), poppedTag.reifiedStatementId);\n }\n else if (poppedTag.predicate) {\n if (!poppedTag.hadChildren && poppedTag.childrenParseType !== ParseType.PROPERTY) {\n // Property element contains text\n this.emitTriple(poppedTag.subject, poppedTag.predicate, this.dataFactory.literal(poppedTag.text || '', poppedTag.datatype || poppedTag.language), poppedTag.reifiedStatementId);\n }\n else if (!poppedTag.predicateEmitted) {\n // Emit remaining properties on an anonymous property element\n const subject = this.dataFactory.blankNode();\n this.emitTriple(poppedTag.subject, poppedTag.predicate, subject, poppedTag.reifiedStatementId);\n for (let i = 0; i < poppedTag.predicateSubPredicates.length; i++) {\n this.emitTriple(subject, poppedTag.predicateSubPredicates[i], poppedTag.predicateSubObjects[i], null);\n }\n }\n }\n }\n /**\n * Fetch local DOCTYPE ENTITY's and make the parser recognise them.\n * @param {string} doctype The read doctype.\n */\n onDoctype(doctype) {\n doctype.replace(//g, (match, prefix, uri) => {\n this.saxParser.ENTITIES[prefix] = uri;\n return '';\n });\n }\n}\nexports.RdfXmlParser = RdfXmlParser;\nRdfXmlParser.MIME_TYPE = 'application/rdf+xml';\nRdfXmlParser.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nRdfXmlParser.XML = 'http://www.w3.org/XML/1998/namespace';\nRdfXmlParser.FORBIDDEN_NODE_ELEMENTS = [\n 'RDF',\n 'ID',\n 'about',\n 'bagID',\n 'parseType',\n 'resource',\n 'nodeID',\n 'li',\n 'aboutEach',\n 'aboutEachPrefix',\n];\nRdfXmlParser.FORBIDDEN_PROPERTY_ELEMENTS = [\n 'Description',\n 'RDF',\n 'ID',\n 'about',\n 'bagID',\n 'parseType',\n 'resource',\n 'nodeID',\n 'aboutEach',\n 'aboutEachPrefix',\n];\n// tslint:disable-next-line:max-line-length\nRdfXmlParser.NCNAME_MATCHER = /^([A-Za-z\\xC0-\\xD6\\xD8-\\xF6\\u{F8}-\\u{2FF}\\u{370}-\\u{37D}\\u{37F}-\\u{1FFF}\\u{200C}-\\u{200D}\\u{2070}-\\u{218F}\\u{2C00}-\\u{2FEF}\\u{3001}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFFD}\\u{10000}-\\u{EFFFF}_])([A-Za-z\\xC0-\\xD6\\xD8-\\xF6\\u{F8}-\\u{2FF}\\u{370}-\\u{37D}\\u{37F}-\\u{1FFF}\\u{200C}-\\u{200D}\\u{2070}-\\u{218F}\\u{2C00}-\\u{2FEF}\\u{3001}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFFD}\\u{10000}-\\u{EFFFF}_\\-.0-9#xB7\\u{0300}-\\u{036F}\\u{203F}-\\u{2040}])*$/u;\nvar ParseType;\n(function (ParseType) {\n ParseType[ParseType[\"RESOURCE\"] = 0] = \"RESOURCE\";\n ParseType[ParseType[\"PROPERTY\"] = 1] = \"PROPERTY\";\n})(ParseType || (exports.ParseType = ParseType = {}));\n//# sourceMappingURL=RdfXmlParser.js.map","'use strict'\n\nconst { SymbolDispose } = require('../../ours/primordials')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\nlet addAbortListener\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(signal, onAbort)\n eos(stream, disposable[SymbolDispose])\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.readableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kIsDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream,\n isReadableStream,\n isWritableStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n if (isReadableStream(body)) {\n return _duplexify({\n readable: Readable.fromWeb(body)\n })\n }\n if (isWritableStream(body)) {\n return _duplexify({\n writable: Writable.fromWeb(body)\n })\n }\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n if (\n isReadableStream(body === null || body === undefined ? undefined : body.readable) &&\n isWritableStream(body === null || body === undefined ? undefined : body.writable)\n ) {\n return Duplexify.fromWeb(body)\n }\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen, SymbolDispose } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nlet addAbortListener\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst kResistStopPropagation = require('../../ours/primordials').Symbol('kResistStopPropagation')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst { deprecate } = require('../../ours/util')\nconst {\n ArrayPrototypePush,\n Boolean,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromiseResolve,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n let highWaterMark = concurrency - 1\n if ((options === null || options === undefined ? undefined : options.highWaterMark) != null) {\n highWaterMark = MathFloor(options.highWaterMark)\n }\n validateInteger(concurrency, 'options.concurrency', 1)\n validateInteger(highWaterMark, 'options.highWaterMark', 0)\n highWaterMark += concurrency\n return async function* map() {\n const signal = require('../../ours/util').AbortSignalAny(\n [options === null || options === undefined ? undefined : options.signal].filter(Boolean)\n )\n const stream = this\n const queue = []\n const signalOpt = {\n signal\n }\n let next\n let resume\n let done = false\n let cnt = 0\n function onCatch() {\n done = true\n afterItemProcessed()\n }\n function afterItemProcessed() {\n cnt -= 1\n maybeResume()\n }\n function maybeResume() {\n if (resume && !done && cnt < concurrency && queue.length < highWaterMark) {\n resume()\n resume = null\n }\n }\n async function pump() {\n try {\n for await (let val of stream) {\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n if (val === kEmpty) {\n continue\n }\n val = PromiseResolve(val)\n } catch (err) {\n val = PromiseReject(err)\n }\n cnt += 1\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && (queue.length >= highWaterMark || cnt >= concurrency)) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n } finally {\n done = true\n if (next) {\n next()\n next = null\n }\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n maybeResume()\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal2\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal2 = options.signal) !== null &&\n _options$signal2 !== undefined &&\n _options$signal2.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this,\n [kResistStopPropagation]: true\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal3\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal3 = options.signal) !== null &&\n _options$signal3 !== undefined &&\n _options$signal3.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal5\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal6\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n }\n\n // Don't get another item from iterator in case we reached the end\n if (number <= 0) {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs: deprecate(asIndexedPairs, 'readable.asIndexedPairs will be removed in a future version.'),\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator, SymbolDispose } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableFinished\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nlet addAbortListener\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n await wait()\n }\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n let disposable\n if (outerSignal) {\n disposable = addAbortListener(outerSignal, abort)\n }\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n var _disposable\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n ;(_disposable = disposable) === null || _disposable === undefined ? undefined : _disposable[SymbolDispose]()\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableFinished(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncDispose,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nconst kObjectMode = 1 << 0\nconst kEnded = 1 << 1\nconst kEndEmitted = 1 << 2\nconst kReading = 1 << 3\nconst kConstructed = 1 << 4\nconst kSync = 1 << 5\nconst kNeedReadable = 1 << 6\nconst kEmittedReadable = 1 << 7\nconst kReadableListening = 1 << 8\nconst kResumeScheduled = 1 << 9\nconst kErrorEmitted = 1 << 10\nconst kEmitClose = 1 << 11\nconst kAutoDestroy = 1 << 12\nconst kDestroyed = 1 << 13\nconst kClosed = 1 << 14\nconst kCloseEmitted = 1 << 15\nconst kMultiAwaitDrain = 1 << 16\nconst kReadingMore = 1 << 17\nconst kDataEmitted = 1 << 18\n\n// TODO(benjamingr) it is likely slower to do it this way than with free functions\nfunction makeBitMapDescriptor(bit) {\n return {\n enumerable: false,\n get() {\n return (this.state & bit) !== 0\n },\n set(value) {\n if (value) this.state |= bit\n else this.state &= ~bit\n }\n }\n}\nObjectDefineProperties(ReadableState.prototype, {\n objectMode: makeBitMapDescriptor(kObjectMode),\n ended: makeBitMapDescriptor(kEnded),\n endEmitted: makeBitMapDescriptor(kEndEmitted),\n reading: makeBitMapDescriptor(kReading),\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n constructed: makeBitMapDescriptor(kConstructed),\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n sync: makeBitMapDescriptor(kSync),\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n needReadable: makeBitMapDescriptor(kNeedReadable),\n emittedReadable: makeBitMapDescriptor(kEmittedReadable),\n readableListening: makeBitMapDescriptor(kReadableListening),\n resumeScheduled: makeBitMapDescriptor(kResumeScheduled),\n // True if the error was already emitted and should not be thrown again.\n errorEmitted: makeBitMapDescriptor(kErrorEmitted),\n emitClose: makeBitMapDescriptor(kEmitClose),\n autoDestroy: makeBitMapDescriptor(kAutoDestroy),\n // Has it been destroyed.\n destroyed: makeBitMapDescriptor(kDestroyed),\n // Indicates whether the stream has finished destroying.\n closed: makeBitMapDescriptor(kClosed),\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n closeEmitted: makeBitMapDescriptor(kCloseEmitted),\n multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain),\n // If true, a maybeReadMore has been scheduled.\n readingMore: makeBitMapDescriptor(kReadingMore),\n dataEmitted: makeBitMapDescriptor(kDataEmitted)\n})\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Bit map field to store ReadableState more effciently with 1 bit per field\n // instead of a V8 slot per field.\n this.state = kEmitClose | kAutoDestroy | kConstructed | kSync\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n if (options && options.objectMode) this.state |= kObjectMode\n if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this[kPaused] = null\n\n // Should close be emitted on destroy. Defaults to true.\n if (options && options.emitClose === false) this.state &= ~kEmitClose\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nReadable.prototype[SymbolAsyncDispose] = function () {\n let error\n if (!this.destroyed) {\n error = this.readableEnded ? null : new AbortError()\n this.destroy(error)\n }\n return new Promise((resolve, reject) => eos(this, (err) => (err && err !== error ? reject(err) : resolve(null))))\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if ((state.state & kObjectMode) === 0) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.state &= ~kReading\n onEofChunk(stream, state)\n } else if ((state.state & kObjectMode) !== 0 || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.state &= ~kReading\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.state &= ~kReading\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if ((state.state & kMultiAwaitDrain) !== 0) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if ((state.state & kNeedReadable) !== 0) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if ((state.state & kObjectMode) !== 0) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.state &= ~kEmittedReadable\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = (state.state & kNeedReadable) !== 0\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.state |= kReading | kSync\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.state |= kNeedReadable\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.state &= ~kSync\n\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n pause()\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { validateInteger } = require('../validators')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nlet defaultHighWaterMarkBytes = 16 * 1024\nlet defaultHighWaterMarkObjectMode = 16\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? defaultHighWaterMarkObjectMode : defaultHighWaterMarkBytes\n}\nfunction setDefaultHighWaterMark(objectMode, value) {\n validateInteger(value, 'value', 0)\n if (objectMode) {\n defaultHighWaterMarkObjectMode = value\n } else {\n defaultHighWaterMarkBytes = value\n }\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark,\n setDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\n\n// We need to use SymbolFor to make these globally available\n// for interopt with readable-stream, i.e. readable-stream\n// and node core needs to be able to read/write private state\n// from each other for proper interoperability.\nconst kIsDestroyed = SymbolFor('nodejs.stream.destroyed')\nconst kIsErrored = SymbolFor('nodejs.stream.errored')\nconst kIsReadable = SymbolFor('nodejs.stream.readable')\nconst kIsWritable = SymbolFor('nodejs.stream.writable')\nconst kIsDisturbed = SymbolFor('nodejs.stream.disturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kIsDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (stream && stream[kIsWritable] != null) return stream[kIsWritable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n isDestroyed,\n kIsDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n kIsWritable,\n isClosed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateAbortSignalArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is AbortSignal[]}\n */\n\n/** @type {validateAbortSignalArray} */\nfunction validateAbortSignalArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n const signal = value[i]\n const indexedName = `${name}[${i}]`\n if (signal == null) {\n throw new ERR_INVALID_ARG_TYPE(indexedName, 'AbortSignal', signal)\n }\n validateAbortSignal(signal, indexedName)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateAbortSignalArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n PromiseResolve(val) {\n return Promise.resolve(val)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n SymbolDispose: Symbol.dispose || Symbol('Symbol.dispose'),\n SymbolAsyncDispose: Symbol.asyncDispose || Symbol('Symbol.asyncDispose'),\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Boolean: Boolean,\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst { kResistStopPropagation, SymbolDispose } = require('./primordials')\nconst AbortSignal = globalThis.AbortSignal || require('abort-controller').AbortSignal\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\nconst validateAbortSignal = (signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nconst validateFunction = (value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n}\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob,\n deprecate(fn, message) {\n return fn\n },\n addAbortListener:\n require('events').addAbortListener ||\n function addAbortListener(signal, listener) {\n if (signal === undefined) {\n throw new ERR_INVALID_ARG_TYPE('signal', 'AbortSignal', signal)\n }\n validateAbortSignal(signal, 'signal')\n validateFunction(listener, 'listener')\n let removeEventListener\n if (signal.aborted) {\n queueMicrotask(() => listener())\n } else {\n signal.addEventListener('abort', listener, {\n __proto__: null,\n once: true,\n [kResistStopPropagation]: true\n })\n removeEventListener = () => {\n signal.removeEventListener('abort', listener)\n }\n }\n return {\n __proto__: null,\n [SymbolDispose]() {\n var _removeEventListener\n ;(_removeEventListener = removeEventListener) === null || _removeEventListener === undefined\n ? undefined\n : _removeEventListener()\n }\n }\n },\n AbortSignalAny:\n AbortSignal.any ||\n function AbortSignalAny(signals) {\n // Fast path if there is only one signal.\n if (signals.length === 1) {\n return signals[0]\n }\n const ac = new AbortController()\n const abort = () => ac.abort()\n signals.forEach((signal) => {\n validateAbortSignal(signal, 'signals')\n signal.addEventListener('abort', abort, {\n once: true\n })\n })\n ac.signal.addEventListener(\n 'abort',\n () => {\n signals.forEach((signal) => signal.removeEventListener('abort', abort))\n },\n {\n once: true\n }\n )\n return ac.signal\n }\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { setDefaultHighWaterMark, getDefaultHighWaterMark } = require('./internal/streams/state')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDestroyed = utils.isDestroyed\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.isWritable = utils.isWritable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nStream.setDefaultHighWaterMark = setDefaultHighWaterMark\nStream.getDefaultHighWaterMark = getDefaultHighWaterMark\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('../../lib/stream.js')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/Resolve\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeDotSegmentsOfPath = exports.removeDotSegments = exports.resolve = void 0;\n/**\n * Convert the given relative IRI to an absolute IRI\n * by taking into account the given optional baseIRI.\n *\n * @param {string} relativeIRI The relative IRI to convert to an absolute IRI.\n * @param {string} baseIRI The optional base IRI.\n * @return {string} an absolute IRI.\n */\nfunction resolve(relativeIRI, baseIRI) {\n baseIRI = baseIRI || '';\n const baseFragmentPos = baseIRI.indexOf('#');\n // Ignore any fragments in the base IRI\n if (baseFragmentPos > 0) {\n baseIRI = baseIRI.substr(0, baseFragmentPos);\n }\n // Convert empty value directly to base IRI\n if (!relativeIRI.length) {\n // At this point, the baseIRI MUST be absolute, otherwise we error\n if (baseIRI.indexOf(':') < 0) {\n throw new Error(`Found invalid baseIRI '${baseIRI}' for value '${relativeIRI}'`);\n }\n return baseIRI;\n }\n // If the value starts with a query character, concat directly (but strip the existing query)\n if (relativeIRI.startsWith('?')) {\n const baseQueryPos = baseIRI.indexOf('?');\n if (baseQueryPos > 0) {\n baseIRI = baseIRI.substr(0, baseQueryPos);\n }\n return baseIRI + relativeIRI;\n }\n // If the value starts with a fragment character, concat directly\n if (relativeIRI.startsWith('#')) {\n return baseIRI + relativeIRI;\n }\n // Ignore baseIRI if it is empty\n if (!baseIRI.length) {\n const relativeColonPos = relativeIRI.indexOf(':');\n if (relativeColonPos < 0) {\n throw new Error(`Found invalid relative IRI '${relativeIRI}' for a missing baseIRI`);\n }\n return removeDotSegmentsOfPath(relativeIRI, relativeColonPos);\n }\n // Ignore baseIRI if the value is absolute\n const valueColonPos = relativeIRI.indexOf(':');\n if (valueColonPos >= 0) {\n return removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n // At this point, the baseIRI MUST be absolute, otherwise we error\n const baseColonPos = baseIRI.indexOf(':');\n if (baseColonPos < 0) {\n throw new Error(`Found invalid baseIRI '${baseIRI}' for value '${relativeIRI}'`);\n }\n const baseIRIScheme = baseIRI.substr(0, baseColonPos + 1);\n // Inherit the baseIRI scheme if the value starts with '//'\n if (relativeIRI.indexOf('//') === 0) {\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n // Check cases where '://' occurs in the baseIRI, and where there is no '/' after a ':' anymore.\n let baseSlashAfterColonPos;\n if (baseIRI.indexOf('//', baseColonPos) === baseColonPos + 1) {\n // If there is no additional '/' after the '//'.\n baseSlashAfterColonPos = baseIRI.indexOf('/', baseColonPos + 3);\n if (baseSlashAfterColonPos < 0) {\n // If something other than a '/' follows the '://', append the value after a '/',\n // otherwise, prefix the value with only the baseIRI scheme.\n if (baseIRI.length > baseColonPos + 3) {\n return baseIRI + '/' + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n else {\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n }\n }\n else {\n // If there is not even a single '/' after the ':'\n baseSlashAfterColonPos = baseIRI.indexOf('/', baseColonPos + 1);\n if (baseSlashAfterColonPos < 0) {\n // If we don't have a '/' after the ':',\n // prefix the value with only the baseIRI scheme.\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n }\n // If the value starts with a '/', then prefix it with everything before the first effective slash of the base IRI.\n if (relativeIRI.indexOf('/') === 0) {\n return baseIRI.substr(0, baseSlashAfterColonPos) + removeDotSegments(relativeIRI);\n }\n let baseIRIPath = baseIRI.substr(baseSlashAfterColonPos);\n const baseIRILastSlashPos = baseIRIPath.lastIndexOf('/');\n // Ignore everything after the last '/' in the baseIRI path\n if (baseIRILastSlashPos >= 0 && baseIRILastSlashPos < baseIRIPath.length - 1) {\n baseIRIPath = baseIRIPath.substr(0, baseIRILastSlashPos + 1);\n // Also remove the first character of the relative path if it starts with '.' (and not '..' or './')\n // This change is only allowed if there is something else following the path\n if (relativeIRI[0] === '.' && relativeIRI[1] !== '.' && relativeIRI[1] !== '/' && relativeIRI[2]) {\n relativeIRI = relativeIRI.substr(1);\n }\n }\n // Prefix the value with the baseIRI path where\n relativeIRI = baseIRIPath + relativeIRI;\n // Remove dot segment from the IRI\n relativeIRI = removeDotSegments(relativeIRI);\n // Prefix our transformed value with the part of the baseIRI until the first '/' after the first ':'.\n return baseIRI.substr(0, baseSlashAfterColonPos) + relativeIRI;\n}\nexports.resolve = resolve;\n/**\n * Remove dot segments from the given path,\n * as described in https://www.ietf.org/rfc/rfc3986.txt (page 32).\n * @param {string} path An IRI path.\n * @return {string} A path, will always start with a '/'.\n */\nfunction removeDotSegments(path) {\n // Prepare a buffer with segments between each '/.\n // Each segment represents an array of characters.\n const segmentBuffers = [];\n let i = 0;\n while (i < path.length) {\n // Remove '/.' or '/..'\n switch (path[i]) {\n case '/':\n if (path[i + 1] === '.') {\n if (path[i + 2] === '.') {\n // Start a new segment if we find an invalid character after the '.'\n if (!isCharacterAllowedAfterRelativePathSegment(path[i + 3])) {\n segmentBuffers.push([]);\n i++;\n break;\n }\n // Go to parent directory,\n // so we remove a parent segment\n segmentBuffers.pop();\n // Ensure that we end with a slash if there is a trailing '/..'\n if (!path[i + 3]) {\n segmentBuffers.push([]);\n }\n i += 3;\n }\n else {\n // Start a new segment if we find an invalid character after the '.'\n if (!isCharacterAllowedAfterRelativePathSegment(path[i + 2])) {\n segmentBuffers.push([]);\n i++;\n break;\n }\n // Ensure that we end with a slash if there is a trailing '/.'\n if (!path[i + 2]) {\n segmentBuffers.push([]);\n }\n // Go to the current directory,\n // so we do nothing\n i += 2;\n }\n }\n else {\n // Start a new segment\n segmentBuffers.push([]);\n i++;\n }\n break;\n case '#':\n case '?':\n // Query and fragment string should be appended unchanged\n if (!segmentBuffers.length) {\n segmentBuffers.push([]);\n }\n segmentBuffers[segmentBuffers.length - 1].push(path.substr(i));\n // Break the while loop\n i = path.length;\n break;\n default:\n // Not a special character, just append it to our buffer\n if (!segmentBuffers.length) {\n segmentBuffers.push([]);\n }\n segmentBuffers[segmentBuffers.length - 1].push(path[i]);\n i++;\n break;\n }\n }\n return '/' + segmentBuffers.map((buffer) => buffer.join('')).join('/');\n}\nexports.removeDotSegments = removeDotSegments;\n/**\n * Removes dot segments of the given IRI.\n * @param {string} iri An IRI (or part of IRI).\n * @param {number} colonPosition The position of the first ':' in the IRI.\n * @return {string} The IRI where dot segments were removed.\n */\nfunction removeDotSegmentsOfPath(iri, colonPosition) {\n // Determine where we should start looking for the first '/' that indicates the start of the path\n let searchOffset = colonPosition + 1;\n if (colonPosition >= 0) {\n if (iri[colonPosition + 1] === '/' && iri[colonPosition + 2] === '/') {\n searchOffset = colonPosition + 3;\n }\n }\n else {\n if (iri[0] === '/' && iri[1] === '/') {\n searchOffset = 2;\n }\n }\n // Determine the path\n const pathSeparator = iri.indexOf('/', searchOffset);\n if (pathSeparator < 0) {\n return iri;\n }\n const base = iri.substr(0, pathSeparator);\n const path = iri.substr(pathSeparator);\n // Remove dot segments from the path\n return base + removeDotSegments(path);\n}\nexports.removeDotSegmentsOfPath = removeDotSegmentsOfPath;\nfunction isCharacterAllowedAfterRelativePathSegment(character) {\n return !character || character === '#' || character === '?' || character === '/';\n}\n//# sourceMappingURL=Resolve.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/Validate\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateIri = exports.IriValidationStrategy = void 0;\nfunction buildAbsoluteIriRfc3987Regex() {\n // The syntax is defined in https://www.rfc-editor.org/rfc/rfc3987#section-2.2\n // Rules are defined in reversed order\n const sub_delims_raw = `!$&'()*+,;=`;\n const sub_delims = `[${sub_delims_raw}]`;\n const pct_encoded = `%[a-fA-F0-9]{2}`;\n const dec_octet = '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\n const ipv4address = `${dec_octet}\\\\.${dec_octet}\\\\.${dec_octet}\\\\.${dec_octet}`;\n const h16 = `[a-fA-F0-9]{1,4}`;\n const ls32 = `(${h16}:${h16}|${ipv4address})`;\n const ipv6address = `((${h16}:){6}${ls32}|::(${h16}:){5}${ls32}|(${h16})?::(${h16}:){4}${ls32}|((${h16}:){0,1}${h16})?::(${h16}:){3}${ls32}|((${h16}:){0,2}${h16})?::(${h16}:){2}${ls32}|((${h16}:){0,3}${h16})?::${h16}:${ls32}|((${h16}:){0,4}${h16})?::${ls32}|((${h16}:){0,5}${h16})?::${h16}|((${h16}:){0,6}${h16})?::)`;\n const ipvfuture = `v[a-fA-F0-9]+\\\\.(${sub_delims}|${sub_delims}|\":)+`;\n const ip_literal = `\\\\[(${ipv6address}|${ipvfuture})\\\\]`;\n const port = `[0-9]*`;\n const scheme = `[a-zA-Z][a-zA-Z0-9+\\\\-.]*`;\n const iprivate_raw = `\\u{E000}-\\u{F8FF}\\u{F0000}-\\u{FFFFD}\\u{100000}-\\u{10FFFD}`;\n const iprivate = `[${iprivate_raw}]`;\n const ucschar_raw = `\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}`;\n const iunreserved_raw = `a-zA-Z0-9\\\\-._~${ucschar_raw}`;\n const iunreserved = `[${iunreserved_raw}]`;\n const ipchar = `(${iunreserved}|${pct_encoded}|${sub_delims}|[:@])*`;\n const ifragment = `(${ipchar}|[\\\\/?])*`;\n const iquery = `(${ipchar}|${iprivate}|[\\\\/?])*`;\n const isegment_nz = `(${ipchar})+`;\n const isegment = `(${ipchar})*`;\n const ipath_empty = '';\n const ipath_rootless = `${isegment_nz}(\\\\/${isegment})*`;\n const ipath_absolute = `\\\\/(${isegment_nz}(\\\\/${isegment})*)?`;\n const ipath_abempty = `(\\\\/${isegment})*`;\n const ireg_name = `(${iunreserved}|${pct_encoded}|${sub_delims})*`;\n const ihost = `(${ip_literal}|${ipv4address}|${ireg_name})`;\n const iuserinfo = `(${iunreserved}|${pct_encoded}|${sub_delims}|:)*`;\n const iauthority = `(${iuserinfo}@)?${ihost}(:${port})?`;\n const ihier_part = `(\\\\/\\\\/${iauthority}${ipath_abempty}|${ipath_absolute}|${ipath_rootless}|${ipath_empty})`;\n const iri = `^${scheme}:${ihier_part}(\\\\?${iquery})?(#${ifragment})?$`;\n return new RegExp(iri, 'u');\n}\nconst STRICT_IRI_REGEX = buildAbsoluteIriRfc3987Regex();\n// eslint-disable-next-line no-control-regex\nconst PRAGMATIC_IRI_REGEX = /^[A-Za-z][\\d+-.A-Za-z]*:[^\\u0000-\\u0020\"<>\\\\^`{|}]*$/u;\n/**\n * Possible ways of validating an IRI\n */\nvar IriValidationStrategy;\n(function (IriValidationStrategy) {\n /**\n * Validates the IRI according to RFC 3987.\n */\n IriValidationStrategy[\"Strict\"] = \"strict\";\n /**\n * Validates that the IRI has a valid scheme and does not contain any character forbidden by the Turtle specification.\n */\n IriValidationStrategy[\"Pragmatic\"] = \"pragmatic\";\n /**\n * Does not validate the IRI at all.\n */\n IriValidationStrategy[\"None\"] = \"none\";\n})(IriValidationStrategy = exports.IriValidationStrategy || (exports.IriValidationStrategy = {}));\n/**\n * Validate a given IRI according to the given strategy.\n *\n * By default the IRI is fully validated according to RFC 3987.\n * But it is possible to do a lighter a faster validation using the \"pragmatic\" strategy.\n *\n * @param {string} iri a string that may be an IRI.\n * @param {IriValidationStrategy} strategy IRI validation strategy.\n * @return {Error | undefined} An error if the IRI is invalid, or undefined if it is valid.\n */\nfunction validateIri(iri, strategy = IriValidationStrategy.Strict) {\n switch (strategy) {\n case IriValidationStrategy.Strict:\n return STRICT_IRI_REGEX.test(iri) ? undefined : new Error(`Invalid IRI according to RFC 3987: '${iri}'`);\n case IriValidationStrategy.Pragmatic:\n return PRAGMATIC_IRI_REGEX.test(iri) ? undefined : new Error(`Invalid IRI according to RDF Turtle: '${iri}'`);\n case IriValidationStrategy.None:\n return undefined;\n default:\n return new Error(`Not supported validation strategy \"${strategy}\"`);\n }\n}\nexports.validateIri = validateIri;\n//# sourceMappingURL=Validate.js.map","\"use strict\";\n/**\n * Character classes and associated utilities for the 5th edition of XML 1.0.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//\n// Fragments.\n//\nexports.CHAR = \"\\t\\n\\r -\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\";\nexports.S = \" \\t\\r\\n\";\n// tslint:disable-next-line:max-line-length\nexports.NAME_START_CHAR = \":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NAME_CHAR = \"-\" + exports.NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.CHAR_RE = new RegExp(\"^[\" + exports.CHAR + \"]$\", \"u\");\nexports.S_RE = new RegExp(\"^[\" + exports.S + \"]+$\", \"u\");\nexports.NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"]$\", \"u\");\nexports.NAME_CHAR_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]$\", \"u\");\nexports.NAME_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"][\" + exports.NAME_CHAR + \"]*$\", \"u\");\nexports.NMTOKEN_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]+$\", \"u\");\nvar TAB = 9;\nvar NL = 0xA;\nvar CR = 0xD;\nvar SPACE = 0x20;\n//\n// Lists.\n//\n/** All characters in the ``S`` production. */\nexports.S_LIST = [SPACE, NL, CR, TAB];\n/**\n * Determines whether a codepoint matches the ``CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR``.\n */\nfunction isChar(c) {\n return (c >= SPACE && c <= 0xD7FF) ||\n c === NL || c === CR || c === TAB ||\n (c >= 0xE000 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0x10FFFF);\n}\nexports.isChar = isChar;\n/**\n * Determines whether a codepoint matches the ``S`` (space) production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``S``.\n */\nfunction isS(c) {\n return c === SPACE || c === NL || c === CR || c === TAB;\n}\nexports.isS = isS;\n/**\n * Determines whether a codepoint matches the ``NAME_START_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_START_CHAR``.\n */\nfunction isNameStartChar(c) {\n return ((c >= 0x41 && c <= 0x5A) ||\n (c >= 0x61 && c <= 0x7A) ||\n c === 0x3A ||\n c === 0x5F ||\n c === 0x200C ||\n c === 0x200D ||\n (c >= 0xC0 && c <= 0xD6) ||\n (c >= 0xD8 && c <= 0xF6) ||\n (c >= 0x00F8 && c <= 0x02FF) ||\n (c >= 0x0370 && c <= 0x037D) ||\n (c >= 0x037F && c <= 0x1FFF) ||\n (c >= 0x2070 && c <= 0x218F) ||\n (c >= 0x2C00 && c <= 0x2FEF) ||\n (c >= 0x3001 && c <= 0xD7FF) ||\n (c >= 0xF900 && c <= 0xFDCF) ||\n (c >= 0xFDF0 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0xEFFFF));\n}\nexports.isNameStartChar = isNameStartChar;\n/**\n * Determines whether a codepoint matches the ``NAME_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_CHAR``.\n */\nfunction isNameChar(c) {\n return isNameStartChar(c) ||\n (c >= 0x30 && c <= 0x39) ||\n c === 0x2D ||\n c === 0x2E ||\n c === 0xB7 ||\n (c >= 0x0300 && c <= 0x036F) ||\n (c >= 0x203F && c <= 0x2040);\n}\nexports.isNameChar = isNameChar;\n//# sourceMappingURL=ed5.js.map","\"use strict\";\n/**\n * Character classes and associated utilities for the 2nd edition of XML 1.1.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//\n// Fragments.\n//\nexports.CHAR = \"\\u0001-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\";\nexports.RESTRICTED_CHAR = \"\\u0001-\\u0008\\u000B\\u000C\\u000E-\\u001F\\u007F-\\u0084\\u0086-\\u009F\";\nexports.S = \" \\t\\r\\n\";\n// tslint:disable-next-line:max-line-length\nexports.NAME_START_CHAR = \":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NAME_CHAR = \"-\" + exports.NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.CHAR_RE = new RegExp(\"^[\" + exports.CHAR + \"]$\", \"u\");\nexports.RESTRICTED_CHAR_RE = new RegExp(\"^[\" + exports.RESTRICTED_CHAR + \"]$\", \"u\");\nexports.S_RE = new RegExp(\"^[\" + exports.S + \"]+$\", \"u\");\nexports.NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"]$\", \"u\");\nexports.NAME_CHAR_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]$\", \"u\");\nexports.NAME_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"][\" + exports.NAME_CHAR + \"]*$\", \"u\");\nexports.NMTOKEN_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]+$\", \"u\");\nvar TAB = 9;\nvar NL = 0xA;\nvar CR = 0xD;\nvar SPACE = 0x20;\n//\n// Lists.\n//\n/** All characters in the ``S`` production. */\nexports.S_LIST = [SPACE, NL, CR, TAB];\n/**\n * Determines whether a codepoint matches the ``CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR``.\n */\nfunction isChar(c) {\n return (c >= 0x0001 && c <= 0xD7FF) ||\n (c >= 0xE000 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0x10FFFF);\n}\nexports.isChar = isChar;\n/**\n * Determines whether a codepoint matches the ``RESTRICTED_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``RESTRICTED_CHAR``.\n */\nfunction isRestrictedChar(c) {\n return (c >= 0x1 && c <= 0x8) ||\n c === 0xB ||\n c === 0xC ||\n (c >= 0xE && c <= 0x1F) ||\n (c >= 0x7F && c <= 0x84) ||\n (c >= 0x86 && c <= 0x9F);\n}\nexports.isRestrictedChar = isRestrictedChar;\n/**\n * Determines whether a codepoint matches the ``CHAR`` production and does not\n * match the ``RESTRICTED_CHAR`` production. ``isCharAndNotRestricted(x)`` is\n * equivalent to ``isChar(x) && !isRestrictedChar(x)``. This function is faster\n * than running the two-call equivalent.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR`` and does not match\n * ``RESTRICTED_CHAR``.\n */\nfunction isCharAndNotRestricted(c) {\n return (c === 0x9) ||\n (c === 0xA) ||\n (c === 0xD) ||\n (c > 0x1F && c < 0x7F) ||\n (c === 0x85) ||\n (c > 0x9F && c <= 0xD7FF) ||\n (c >= 0xE000 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0x10FFFF);\n}\nexports.isCharAndNotRestricted = isCharAndNotRestricted;\n/**\n * Determines whether a codepoint matches the ``S`` (space) production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``S``.\n */\nfunction isS(c) {\n return c === SPACE || c === NL || c === CR || c === TAB;\n}\nexports.isS = isS;\n/**\n * Determines whether a codepoint matches the ``NAME_START_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_START_CHAR``.\n */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction isNameStartChar(c) {\n return ((c >= 0x41 && c <= 0x5A) ||\n (c >= 0x61 && c <= 0x7A) ||\n c === 0x3A ||\n c === 0x5F ||\n c === 0x200C ||\n c === 0x200D ||\n (c >= 0xC0 && c <= 0xD6) ||\n (c >= 0xD8 && c <= 0xF6) ||\n (c >= 0x00F8 && c <= 0x02FF) ||\n (c >= 0x0370 && c <= 0x037D) ||\n (c >= 0x037F && c <= 0x1FFF) ||\n (c >= 0x2070 && c <= 0x218F) ||\n (c >= 0x2C00 && c <= 0x2FEF) ||\n (c >= 0x3001 && c <= 0xD7FF) ||\n (c >= 0xF900 && c <= 0xFDCF) ||\n (c >= 0xFDF0 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0xEFFFF));\n}\nexports.isNameStartChar = isNameStartChar;\n/**\n * Determines whether a codepoint matches the ``NAME_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_CHAR``.\n */\nfunction isNameChar(c) {\n return isNameStartChar(c) ||\n (c >= 0x30 && c <= 0x39) ||\n c === 0x2D ||\n c === 0x2E ||\n c === 0xB7 ||\n (c >= 0x0300 && c <= 0x036F) ||\n (c >= 0x203F && c <= 0x2040);\n}\nexports.isNameChar = isNameChar;\n//# sourceMappingURL=ed2.js.map","\"use strict\";\n/**\n * Character class utilities for XML NS 1.0 edition 3.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//\n// Fragments.\n//\n// tslint:disable-next-line:max-line-length\nexports.NC_NAME_START_CHAR = \"A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NC_NAME_CHAR = \"-\" + exports.NC_NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.NC_NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NC_NAME_START_CHAR + \"]$\", \"u\");\nexports.NC_NAME_CHAR_RE = new RegExp(\"^[\" + exports.NC_NAME_CHAR + \"]$\", \"u\");\nexports.NC_NAME_RE = new RegExp(\"^[\" + exports.NC_NAME_START_CHAR + \"][\" + exports.NC_NAME_CHAR + \"]*$\", \"u\");\n/**\n * Determines whether a codepoint matches [[NC_NAME_START_CHAR]].\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches.\n */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction isNCNameStartChar(c) {\n return ((c >= 0x41 && c <= 0x5A) ||\n c === 0x5F ||\n (c >= 0x61 && c <= 0x7A) ||\n (c >= 0xC0 && c <= 0xD6) ||\n (c >= 0xD8 && c <= 0xF6) ||\n (c >= 0x00F8 && c <= 0x02FF) ||\n (c >= 0x0370 && c <= 0x037D) ||\n (c >= 0x037F && c <= 0x1FFF) ||\n (c >= 0x200C && c <= 0x200D) ||\n (c >= 0x2070 && c <= 0x218F) ||\n (c >= 0x2C00 && c <= 0x2FEF) ||\n (c >= 0x3001 && c <= 0xD7FF) ||\n (c >= 0xF900 && c <= 0xFDCF) ||\n (c >= 0xFDF0 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0xEFFFF));\n}\nexports.isNCNameStartChar = isNCNameStartChar;\n/**\n * Determines whether a codepoint matches [[NC_NAME_CHAR]].\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches.\n */\nfunction isNCNameChar(c) {\n return isNCNameStartChar(c) ||\n (c === 0x2D ||\n c === 0x2E ||\n (c >= 0x30 && c <= 0x39) ||\n c === 0x00B7 ||\n (c >= 0x0300 && c <= 0x036F) ||\n (c >= 0x203F && c <= 0x2040));\n}\nexports.isNCNameChar = isNCNameChar;\n//# sourceMappingURL=ed3.js.map","import { RdfXmlParser } from 'rdfxml-streaming-parser';\nclass CustomRdfXmlParser extends RdfXmlParser {\n constructor({ factory, ...args } = {}) {\n super({ ...args, dataFactory: factory });\n }\n}\nexport default CustomRdfXmlParser;\n"],"names":["Object","defineProperty","exports","value","SaxesParser","EVENTS","ed5","ed2","NSed3","isS","isChar10","isChar","isNameStartChar","isNameChar","S_LIST","NAME_RE","isChar11","isNCNameStartChar","isNCNameChar","NC_NAME_RE","XML_NAMESPACE","XMLNS_NAMESPACE","rootNS","__proto__","xml","xmlns","XML_ENTITIES","amp","gt","lt","quot","apos","EOC","NL_LIKE","S_BEGIN","S_BEGIN_WHITESPACE","S_DOCTYPE","S_DOCTYPE_QUOTE","S_DTD","S_DTD_QUOTED","S_DTD_OPEN_WAKA","S_DTD_OPEN_WAKA_BANG","S_DTD_COMMENT","S_DTD_COMMENT_ENDING","S_DTD_COMMENT_ENDED","S_DTD_PI","S_DTD_PI_ENDING","S_TEXT","S_ENTITY","S_OPEN_WAKA","S_OPEN_WAKA_BANG","S_COMMENT","S_COMMENT_ENDING","S_COMMENT_ENDED","S_CDATA","S_CDATA_ENDING","S_CDATA_ENDING_2","S_PI_FIRST_CHAR","S_PI_REST","S_PI_BODY","S_PI_ENDING","S_XML_DECL_NAME_START","S_XML_DECL_NAME","S_XML_DECL_EQ","S_XML_DECL_VALUE_START","S_XML_DECL_VALUE","S_XML_DECL_SEPARATOR","S_XML_DECL_ENDING","S_OPEN_TAG","S_OPEN_TAG_SLASH","S_ATTRIB","S_ATTRIB_NAME","S_ATTRIB_NAME_SAW_WHITE","S_ATTRIB_VALUE","S_ATTRIB_VALUE_QUOTED","S_ATTRIB_VALUE_CLOSED","S_ATTRIB_VALUE_UNQUOTED","S_CLOSE_TAG","S_CLOSE_TAG_SAW_WHITE","TAB","NL","CR","SPACE","BANG","DQUOTE","AMP","SQUOTE","MINUS","FORWARD_SLASH","SEMICOLON","LESS","EQUAL","GREATER","QUESTION","OPEN_BRACKET","CLOSE_BRACKET","NEL","LS","isQuote","c","QUOTES","DOCTYPE_TERMINATOR","DTD_TERMINATOR","XML_DECL_NAME_TERMINATOR","ATTRIB_VALUE_UNQUOTED_TERMINATOR","nsPairCheck","parser","prefix","uri","fail","nsMappingCheck","mapping","local","keys","isNCName","name","test","isName","FORBIDDEN_START","FORBIDDEN_BRACKET","FORBIDDEN_BRACKET_BRACKET","EVENT_NAME_TO_HANDLER_NAME","xmldecl","text","processinginstruction","doctype","comment","opentagstart","attribute","opentag","closetag","cdata","error","end","ready","closed","this","_closed","constructor","opt","fragmentOpt","fragment","xmlnsOpt","trackPosition","position","fileName","nameStartCheck","nameCheck","processAttribs","processAttribsNS","pushAttrib","pushAttribNS","ns","assign","additional","additionalNamespaces","processAttribsPlain","pushAttribPlain","stateTable","sBegin","sBeginWhitespace","sDoctype","sDoctypeQuote","sDTD","sDTDQuoted","sDTDOpenWaka","sDTDOpenWakaBang","sDTDComment","sDTDCommentEnding","sDTDCommentEnded","sDTDPI","sDTDPIEnding","sText","sEntity","sOpenWaka","sOpenWakaBang","sComment","sCommentEnding","sCommentEnded","sCData","sCDataEnding","sCDataEnding2","sPIFirstChar","sPIRest","sPIBody","sPIEnding","sXMLDeclNameStart","sXMLDeclName","sXMLDeclEq","sXMLDeclValueStart","sXMLDeclValue","sXMLDeclSeparator","sXMLDeclEnding","sOpenTag","sOpenTagSlash","sAttrib","sAttribName","sAttribNameSawWhite","sAttribValue","sAttribValueQuoted","sAttribValueClosed","sAttribValueUnquoted","sCloseTag","sCloseTagSawWhite","_init","_a","openWakaBang","piTarget","entity","q","tags","tag","topNS","chunk","chunkPosition","i","prevI","carriedFromPrevious","undefined","forbiddenState","attribList","state","reportedTextBeforeRoot","reportedTextAfterRoot","closedRoot","sawRoot","xmlDeclPossible","xmlDeclExpects","entityReturnState","defaultXMLVersion","forceXMLVersion","Error","setXMLVersion","positionAtNewLine","xmlDecl","version","encoding","standalone","line","column","ENTITIES","create","readyHandler","call","columnIndex","on","handler","off","makeError","message","msg","length","err","errorHandler","write","toString","limit","lastCode","charCodeAt","slice","close","getCode10","code","final","getCode11","next","getCodeNorm","getCode","unget","captureTo","chars","start","isNLLike","includes","captureToChar","char","captureNameChars","skipSpaces","currentXMLVersion","iBefore","doctypeHandler","String","fromCodePoint","owb","handleTextInRoot","handleTextOutsideRoot","loop","parsed","parseEntity","textHandler","commentHandler","cdataHandler","isQuestion","toLowerCase","piHandler","target","body","join","xmldeclHandler","attributes","openTagStartHandler","openTag","openSelfClosingTag","closeTag","scanLoop","nonSpace","outRootLoop","qname","attr","push","attributeHandler","trimmed","trim","_b","pop","endHandler","resolve","index","resolvePrefix","colon","indexOf","JSON","stringify","seen","Set","eqname","has","add","isSelfClosing","openTagHandler","_c","closeTagHandler","top","l","defined","num","NaN","parseInt","__createBinding","o","m","k","k2","enumerable","get","__exportStar","p","prototype","hasOwnProperty","BlankNode","termType","equals","other","DataFactory","BlankNode_1","DefaultGraph_1","Literal_1","NamedNode_1","Quad_1","Variable_1","dataFactoryCounter","options","blankNodeCounter","blankNodePrefix","namedNode","NamedNode","blankNode","literal","languageOrDatatype","Literal","variable","Variable","defaultGraph","DefaultGraph","INSTANCE","quad","subject","predicate","object","graph","Quad","fromTerm","original","language","datatype","XSD_STRING","fromQuad","resetBlankNodeCounter","RDF_LANGUAGE_STRING","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","ParseError","saxParser","super","ParseType","RdfXmlParser","relative_to_absolute_iri_1","saxes_1","readable_stream_1","ParseError_1","rdf_data_factory_1","validate_iri_1","Transform","args","readableObjectMode","activeTagStack","nodeIds","dataFactory","baseIRI","validateUri","iriValidationStrategy","IriValidationStrategy","Pragmatic","None","attachSaxListeners","import","stream","output","PassThrough","emit","data","pipe","_transform","callback","e","newParseError","valueToUri","activeTag","uriToNamedNode","uriValidationResult","validateIri","validateNcname","NCNAME_MATCHER","onTag","bind","onText","onCloseTag","onDoctype","parentTag","currentParseType","RESOURCE","hadChildren","childrenParseType","childrenStringTags","tagName","attributeKey","tagContents","tagString","stringActiveTag","childrenStringEmitClosingTag","onTagResource","onTagProperty","rootTag","PROPERTY","typedNode","RDF","FORBIDDEN_NODE_ELEMENTS","predicates","objects","activeSubjectValue","claimSubjectNodeId","subjectValueBlank","explicitType","XML","claimNodeId","type","emitTriple","reifiedStatementId","childrenCollectionSubject","linkTerm","childrenCollectionPredicate","predicateSubPredicates","predicateSubObjects","predicateEmitted","listItemCounter","FORBIDDEN_PROPERTY_ELEMENTS","parseType","attributedProperty","activeSubSubjectValue","subSubjectValueBlank","propertyAttributeKey","propertyAttribute","nestedBNode","childrenTagsToString","subjectParent","statementId","term","allowDuplicateRdfIds","poppedTag","replace","match","MIME_TYPE","SymbolDispose","AbortError","codes","isNodeStream","isWebStream","kControllerErrorFunction","eos","ERR_INVALID_ARG_TYPE","addAbortListener","validateAbortSignal","signal","module","addAbortSignal","addAbortSignalNoValidate","onAbort","destroy","cause","reason","aborted","disposable","StringPrototypeSlice","SymbolIterator","TypedArrayPrototypeSet","Uint8Array","Buffer","inspect","head","tail","v","entry","unshift","shift","ret","clear","s","concat","n","alloc","allocUnsafe","consume","hasStrings","_getString","_getBuffer","first","str","retLen","buf","buffer","byteOffset","Symbol","for","_","depth","customInspect","pipeline","Duplex","destroyer","isReadable","isWritable","isTransformStream","isWritableStream","isReadableStream","ERR_INVALID_ARG_VALUE","ERR_MISSING_ARGS","streams","from","orgStreams","idx","ondrain","onfinish","onreadable","onclose","d","onfinished","cb","readable","writableObjectMode","_write","_final","writer","getWriter","async","catch","toRead","_read","read","reader","getReader","done","_destroy","process","aggregateTwoErrors","ERR_MULTIPLE_CALLBACK","kIsDestroyed","isDestroyed","isFinished","isServerRequest","kDestroy","kConstruct","checkError","w","r","stack","errored","_readableState","_writableState","destroyed","constructed","once","er","self","called","onDestroy","nextTick","emitErrorCloseNT","emitCloseNT","emitErrorNT","closeEmitted","emitClose","errorEmitted","undestroy","reading","ended","endEmitted","finalCalled","prefinished","ending","finished","errorOrDestroy","sync","autoDestroy","construct","_construct","listenerCount","constructNT","onConstruct","emitConstructNT","isRequest","setHeader","abort","emitCloseLegacy","emitErrorCloseLegacy","socket","req","ObjectDefineProperties","ObjectGetOwnPropertyDescriptor","ObjectKeys","ObjectSetPrototypeOf","Readable","Writable","method","allowHalfOpen","webStreamsAdapters","duplexify","lazyWebStreams","writableHighWaterMark","writableBuffer","writableLength","writableFinished","writableCorked","writableEnded","writableNeedDrain","set","fromWeb","pair","newStreamDuplexFromReadableWritablePair","toWeb","duplex","newReadableWritablePairFromDuplex","bufferModule","isIterable","isReadableNodeStream","isWritableNodeStream","isDuplexNodeStream","ERR_INVALID_RETURN_VALUE","createDeferredPromise","Blob","globalThis","isBlob","b","AbortController","FunctionPrototypeCall","Duplexify","fromAsyncGen","fn","promise","ac","_promise","_resolve","_duplexify","wrap","objectMode","then","val","arrayBuffer","ERR_STREAM_PREMATURE_CLOSE","kEmptyObject","validateFunction","validateObject","validateBoolean","Promise","PromisePrototypeThen","isClosed","isReadableFinished","isReadableErrored","isWritableFinished","isWritableErrored","willEmitClose","_willEmitClose","kIsClosedPromise","nop","_options$readable","_options$writable","arguments","eosWeb","wState","rState","onlegacyfinish","readableFinished","onend","onerror","onclosed","onrequest","cleanup","removeListener","endCallback","originalCallback","apply","isAborted","resolverFn","opts","_opts","autoCleanup","reject","SymbolAsyncIterator","ERR_STREAM_NULL_VALUES","iterable","iterator","isAsync","highWaterMark","hadError","hasThrow","throw","return","res","ArrayIsArray","EventEmitter","EE","Stream","prependListener","emitter","event","_events","dest","source","ondata","pause","resume","_isStdio","didOnEnd","ERR_OUT_OF_RANGE","validateInteger","kWeakHandler","kResistStopPropagation","staticCompose","deprecate","ArrayPrototypePush","Boolean","MathFloor","Number","NumberIsNaN","PromiseReject","PromiseResolve","kEmpty","kEof","compose","composedStream","map","concurrency","filter","queue","signalOpt","cnt","onCatch","afterItemProcessed","maybeResume","pump","asIndexedPairs","_options$signal","some","unused","every","find","result","forEach","forEachFn","filterFn","ReduceAwareErrMissingArgs","reduce","reducer","initialValue","_options$signal2","hasInitialValue","addEventListener","gotAnyItemFromStream","_options$signal3","toArray","_options$signal4","flatMap","values","toIntegerOrInfinity","number","drop","_options$signal5","_options$signal6","take","_options$signal7","_options$signal8","streamReturningOperators","promiseReturningOperators","destroyImpl","ERR_STREAM_DESTROYED","writing","popCallback","makeAsyncIterable","fromReadable","pumpToNode","finish","onresolve","wait","pumpToWeb","pipelineImpl","outerSignal","lastStreamCleanup","finishImpl","destroys","finishCount","_disposable","isLastStream","onError","_ret","_ret2","pt","src","dst","endFn","ArrayPrototypeIndexOf","NumberIsInteger","NumberParseInt","SafeSet","SymbolAsyncDispose","ReadableState","debug","BufferList","getHighWaterMark","getDefaultHighWaterMark","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kPaused","StringDecoder","kObjectMode","kEnded","kEndEmitted","kReading","kConstructed","kSync","kNeedReadable","kEmittedReadable","kReadableListening","kResumeScheduled","kErrorEmitted","kEmitClose","kAutoDestroy","kDestroyed","kClosed","kCloseEmitted","kMultiAwaitDrain","kReadingMore","kDataEmitted","makeBitMapDescriptor","bit","isDuplex","pipes","flowing","defaultEncoding","awaitDrainWriters","decoder","needReadable","maybeReadMore","readableAddChunk","addToFront","_isUint8Array","_uint8ArrayToBuffer","onEofChunk","addChunk","dataEmitted","emitReadable","emittedReadable","readableListening","resumeScheduled","multiAwaitDrain","readingMore","_undestroy","captureRejectionSymbol","readableEnded","isPaused","setEncoding","enc","content","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","len","pipeOnDrain","size","delete","updateReadableListening","nReadingNextTick","resume_","streamToAsyncIterator","iter","createAsyncIterator","destroyOnReturn","fromList","endReadable","endReadableNT","endWritableNT","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanedUp","needDrain","dests","splice","ev","addListener","removeAllListeners","paused","streamKeys","j","readableDidRead","readableAborted","readableHighWaterMark","readableBuffer","readableFlowing","readableLength","readableEncoding","pipesCount","_fromList","readableStream","newStreamReadableFromReadableStream","streamReadable","newReadableStreamFromStreamReadable","_ref","_src$readableObjectMo","defaultHighWaterMarkBytes","defaultHighWaterMarkObjectMode","highWaterMarkFrom","duplexKey","setDefaultHighWaterMark","hwm","kCallback","transform","flush","_flush","prefinish","SymbolFor","kIsErrored","kIsReadable","kIsWritable","kIsDisturbed","obj","strict","_obj$_readableState","_obj$_writableState","pipeThrough","cancel","isWritableEnded","isReadableEnded","_stream$_writableStat","_stream$_writableStat2","writableErrored","_stream$_readableStat","_stream$_readableStat2","readableErrored","isOutgoingMessage","_defaultKeepAlive","_removedConnection","_removedContLen","isServerResponse","_sent100","_stream$req","_consuming","_dumped","upgradeOrConnect","isDisturbed","_stream$kIsDisturbed","isErrored","_ref2","_ref3","_ref4","_ref5","_stream$kIsErrored","_stream$_readableStat3","_stream$_writableStat3","_stream$_readableStat4","_stream$_writableStat4","ArrayPrototypeSlice","FunctionPrototypeSymbolHasInstance","ObjectDefineProperty","StringPrototypeToLowerCase","SymbolHasInstance","WritableState","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_ALREADY_FINISHED","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","kOnFinished","noDecode","decodeStrings","corked","bufferProcessing","onwrite","writecb","writelen","afterWriteTickInfo","resetBuffer","pendingcb","buffered","bufferedIndex","allBuffers","allNoop","writev","_writev","clearBuffer","finishMaybe","isEncoding","writeOrBuffer","doWrite","onwriteError","errorBuffer","count","afterWriteTick","afterWrite","_state$errored","onfinishCallbacks","_state$errored2","bufferedLength","chunks","needFinish","callFinal","onFinish","getBuffer","cork","uncork","setDefaultEncoding","writableAborted","writableStream","newStreamWritableFromWritableStream","streamWritable","newWritableStreamFromStreamWritable","ArrayPrototypeIncludes","ArrayPrototypeJoin","ArrayPrototypeMap","NumberMAX_SAFE_INTEGER","NumberMIN_SAFE_INTEGER","ObjectPrototypeHasOwnProperty","RegExpPrototypeExec","StringPrototypeToUpperCase","StringPrototypeTrim","hideStackFrames","ERR_SOCKET_BAD_PORT","ERR_UNKNOWN_SIGNAL","normalizeEncoding","isAsyncFunction","isArrayBufferView","signals","isInt32","isUint32","octalReg","modeDesc","parseFileMode","def","validateUint32","min","max","validateInt32","positive","validateString","validateNumber","validateOneOf","oneOf","allowed","getOwnPropertyValueOrDefault","key","defaultValue","allowArray","allowFunction","nullable","validateDictionary","validateArray","minLength","validateStringArray","validateBooleanArray","validateAbortSignalArray","indexedName","validateSignalName","validateBuffer","validateEncoding","normalizedEncoding","validatePort","port","allowZero","validatePlainFunction","validateUndefined","validateUnion","union","linkValueRegExp","validateLinkHeaderFormat","validateLinkHeaderValue","hints","hintsLength","link","CustomStream","promises","originalDestroy","format","AggregateError","CustomAggregateError","kIsNodeError","kTypes","classRegExp","nodeInternalPrefix","assert","ERR_INTERNAL_ASSERTION","addNumericalSeparator","getMessage","expectedLength","E","Base","NodeError","defineProperties","hidden","innerError","outerError","Array","isArray","errors","expected","actual","endsWith","types","instances","pos","last","_actual$constructor","inspected","colors","TypeError","input","_value$constructor","a","range","received","isInteger","Math","abs","RangeError","el","sep","ArrayPrototypePop","thisArgs","instance","Function","hasInstance","floor","isNaN","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","props","prop","proto","setPrototypeOf","PromisePrototypeCatch","thenFn","catchFn","ReflectApply","Reflect","RegExpPrototypeTest","toUpperCase","asyncIterator","dispose","asyncDispose","AbortSignal","AsyncFunction","getPrototypeOf","freeze","rej","promisify","debuglog","_unused","replacement","toFixed","ctor","is","arr","ArrayBuffer","isView","listener","removeEventListener","queueMicrotask","_removeEventListener","AbortSignalAny","any","custom","customPromisify","ERR_ILLEGAL_CONSTRUCTOR","utils","op","byteLength","pl","lastArg","relativeIRI","baseFragmentPos","substr","startsWith","baseQueryPos","relativeColonPos","removeDotSegmentsOfPath","valueColonPos","baseColonPos","baseIRIScheme","baseSlashAfterColonPos","removeDotSegments","baseIRIPath","baseIRILastSlashPos","lastIndexOf","path","segmentBuffers","isCharacterAllowedAfterRelativePathSegment","iri","colonPosition","searchOffset","pathSeparator","base","character","buildAbsoluteIriRfc3987Regex","sub_delims_raw","sub_delims","pct_encoded","dec_octet","ipv4address","h16","ls32","ipv6address","ipvfuture","ip_literal","scheme","iprivate_raw","iprivate","ucschar_raw","iunreserved_raw","iunreserved","ipchar","ifragment","iquery","isegment_nz","isegment","ipath_empty","ipath_rootless","ipath_absolute","ipath_abempty","ireg_name","ihost","iuserinfo","iauthority","ihier_part","RegExp","STRICT_IRI_REGEX","PRAGMATIC_IRI_REGEX","strategy","Strict","CHAR","S","NAME_START_CHAR","NAME_CHAR","CHAR_RE","S_RE","NAME_START_CHAR_RE","NAME_CHAR_RE","NMTOKEN_RE","RESTRICTED_CHAR","RESTRICTED_CHAR_RE","isRestrictedChar","isCharAndNotRestricted","NC_NAME_START_CHAR","NC_NAME_CHAR","NC_NAME_START_CHAR_RE","NC_NAME_CHAR_RE","CustomRdfXmlParser","factory"],"sourceRoot":""} \ No newline at end of file diff --git a/js/498.fa00791c.js b/js/498.fa00791c.js deleted file mode 100644 index e96eb6e..0000000 --- a/js/498.fa00791c.js +++ /dev/null @@ -1,23 +0,0 @@ -(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[498],{12893:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SaxesParser=t.EVENTS=void 0;const r=i(83347),n=i(95285),o=i(87046);var a=r.isS,s=r.isChar,l=r.isNameStartChar,d=r.isNameChar,c=r.S_LIST,u=r.NAME_RE,h=n.isChar,f=o.isNCNameStartChar,p=o.isNCNameChar,b=o.NC_NAME_RE;const g="http://www.w3.org/XML/1998/namespace",m="http://www.w3.org/2000/xmlns/",y={__proto__:null,xml:g,xmlns:m},w={__proto__:null,amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},_=-1,v=-2,S=0,E=1,R=2,T=3,A=4,x=5,N=6,C=7,I=8,D=9,k=10,P=11,$=12,M=13,O=14,j=15,L=16,F=17,W=18,H=19,B=20,U=21,V=22,G=23,q=24,X=25,Y=26,z=27,Z=28,K=29,Q=30,J=31,ee=32,te=33,ie=34,re=35,ne=36,oe=37,ae=38,se=39,le=40,de=41,ce=42,ue=43,he=44,fe=9,pe=10,be=13,ge=32,me=33,ye=34,we=38,_e=39,ve=45,Se=47,Ee=59,Re=60,Te=61,Ae=62,xe=63,Ne=91,Ce=93,Ie=133,De=8232,ke=e=>e===ye||e===_e,Pe=[ye,_e],$e=[...Pe,Ne,Ae],Me=[...Pe,Re,Ce],Oe=[Te,xe,...c],je=[...c,Ae,we,Re];function Le(e,t,i){switch(t){case"xml":i!==g&&e.fail(`xml prefix must be bound to ${g}.`);break;case"xmlns":i!==m&&e.fail(`xmlns prefix must be bound to ${m}.`);break;default:}switch(i){case m:e.fail(""===t?`the default namespace may not be set to ${i}.`:`may not assign a prefix (even "xmlns") to the URI ${m}.`);break;case g:switch(t){case"xml":break;case"":e.fail(`the default namespace may not be set to ${i}.`);break;default:e.fail("may not assign the xml namespace to another prefix.")}break;default:}}function Fe(e,t){for(const i of Object.keys(t))Le(e,i,t[i])}const We=e=>b.test(e),He=e=>u.test(e),Be=0,Ue=1,Ve=2;t.EVENTS=["xmldecl","text","processinginstruction","doctype","comment","opentagstart","attribute","opentag","closetag","cdata","error","end","ready"];const Ge={xmldecl:"xmldeclHandler",text:"textHandler",processinginstruction:"piHandler",doctype:"doctypeHandler",comment:"commentHandler",opentagstart:"openTagStartHandler",attribute:"attributeHandler",opentag:"openTagHandler",closetag:"closeTagHandler",cdata:"cdataHandler",error:"errorHandler",end:"endHandler",ready:"readyHandler"};class qe{get closed(){return this._closed}constructor(e){this.opt=null!==e&&void 0!==e?e:{},this.fragmentOpt=!!this.opt.fragment;const t=this.xmlnsOpt=!!this.opt.xmlns;if(this.trackPosition=!1!==this.opt.position,this.fileName=this.opt.fileName,t){this.nameStartCheck=f,this.nameCheck=p,this.isName=We,this.processAttribs=this.processAttribsNS,this.pushAttrib=this.pushAttribNS,this.ns=Object.assign({__proto__:null},y);const e=this.opt.additionalNamespaces;null!=e&&(Fe(this,e),Object.assign(this.ns,e))}else this.nameStartCheck=l,this.nameCheck=d,this.isName=He,this.processAttribs=this.processAttribsPlain,this.pushAttrib=this.pushAttribPlain;this.stateTable=[this.sBegin,this.sBeginWhitespace,this.sDoctype,this.sDoctypeQuote,this.sDTD,this.sDTDQuoted,this.sDTDOpenWaka,this.sDTDOpenWakaBang,this.sDTDComment,this.sDTDCommentEnding,this.sDTDCommentEnded,this.sDTDPI,this.sDTDPIEnding,this.sText,this.sEntity,this.sOpenWaka,this.sOpenWakaBang,this.sComment,this.sCommentEnding,this.sCommentEnded,this.sCData,this.sCDataEnding,this.sCDataEnding2,this.sPIFirstChar,this.sPIRest,this.sPIBody,this.sPIEnding,this.sXMLDeclNameStart,this.sXMLDeclName,this.sXMLDeclEq,this.sXMLDeclValueStart,this.sXMLDeclValue,this.sXMLDeclSeparator,this.sXMLDeclEnding,this.sOpenTag,this.sOpenTagSlash,this.sAttrib,this.sAttribName,this.sAttribNameSawWhite,this.sAttribValue,this.sAttribValueQuoted,this.sAttribValueClosed,this.sAttribValueUnquoted,this.sCloseTag,this.sCloseTagSawWhite],this._init()}_init(){var e;this.openWakaBang="",this.text="",this.name="",this.piTarget="",this.entity="",this.q=null,this.tags=[],this.tag=null,this.topNS=null,this.chunk="",this.chunkPosition=0,this.i=0,this.prevI=0,this.carriedFromPrevious=void 0,this.forbiddenState=Be,this.attribList=[];const{fragmentOpt:t}=this;this.state=t?M:S,this.reportedTextBeforeRoot=this.reportedTextAfterRoot=this.closedRoot=this.sawRoot=t,this.xmlDeclPossible=!t,this.xmlDeclExpects=["version"],this.entityReturnState=void 0;let{defaultXMLVersion:i}=this.opt;if(void 0===i){if(!0===this.opt.forceXMLVersion)throw new Error("forceXMLVersion set but defaultXMLVersion is not set");i="1.0"}this.setXMLVersion(i),this.positionAtNewLine=0,this.doctype=!1,this._closed=!1,this.xmlDecl={version:void 0,encoding:void 0,standalone:void 0},this.line=1,this.column=0,this.ENTITIES=Object.create(w),null===(e=this.readyHandler)||void 0===e||e.call(this)}get position(){return this.chunkPosition+this.i}get columnIndex(){return this.position-this.positionAtNewLine}on(e,t){this[Ge[e]]=t}off(e){this[Ge[e]]=void 0}makeError(e){var t;let i=null!==(t=this.fileName)&&void 0!==t?t:"";return this.trackPosition&&(i.length>0&&(i+=":"),i+=`${this.line}:${this.column}`),i.length>0&&(i+=": "),new Error(i+e)}fail(e){const t=this.makeError(e),i=this.errorHandler;if(void 0===i)throw t;return i(t),this}write(e){if(this.closed)return this.fail("cannot write after close; assign an onready handler.");let t=!1;null===e?(t=!0,e=""):"object"===typeof e&&(e=e.toString()),void 0!==this.carriedFromPrevious&&(e=`${this.carriedFromPrevious}${e}`,this.carriedFromPrevious=void 0);let i=e.length;const r=e.charCodeAt(i-1);!t&&(r===be||r>=55296&&r<=56319)&&(this.carriedFromPrevious=e[i-1],i--,e=e.slice(0,i));const{stateTable:n}=this;this.chunk=e,this.i=0;while(this.i=e.length)return _;const i=e.charCodeAt(t);if(this.column++,i<55296){if(i>=ge||i===fe)return i;switch(i){case pe:return this.line++,this.column=0,this.positionAtNewLine=this.position,pe;case be:return e.charCodeAt(t+1)===pe&&(this.i=t+2),this.line++,this.column=0,this.positionAtNewLine=this.position,v;default:return this.fail("disallowed character."),i}}if(i>56319)return i>=57344&&i<=65533||this.fail("disallowed character."),i;const r=65536+1024*(i-55296)+(e.charCodeAt(t+1)-56320);return this.i=t+2,r>1114111&&this.fail("disallowed character."),r}getCode11(){const{chunk:e,i:t}=this;if(this.prevI=t,this.i=t+1,t>=e.length)return _;const i=e.charCodeAt(t);if(this.column++,i<55296){if(i>31&&i<127||i>159&&i!==De||i===fe)return i;switch(i){case pe:return this.line++,this.column=0,this.positionAtNewLine=this.position,pe;case be:{const i=e.charCodeAt(t+1);i!==pe&&i!==Ie||(this.i=t+2)}case Ie:case De:return this.line++,this.column=0,this.positionAtNewLine=this.position,v;default:return this.fail("disallowed character."),i}}if(i>56319)return i>=57344&&i<=65533||this.fail("disallowed character."),i;const r=65536+1024*(i-55296)+(e.charCodeAt(t+1)-56320);return this.i=t+2,r>1114111&&this.fail("disallowed character."),r}getCodeNorm(){const e=this.getCode();return e===v?pe:e}unget(){this.i=this.prevI,this.column--}captureTo(e){let{i:t}=this;const{chunk:i}=this;while(1){const r=this.getCode(),n=r===v,o=n?pe:r;if(o===_||e.includes(o))return this.text+=i.slice(t,this.prevI),o;n&&(this.text+=`${i.slice(t,this.prevI)}\n`,t=this.i)}}captureToChar(e){let{i:t}=this;const{chunk:i}=this;while(1){let r=this.getCode();switch(r){case v:this.text+=`${i.slice(t,this.prevI)}\n`,t=this.i,r=pe;break;case _:return this.text+=i.slice(t),!1;default:}if(r===e)return this.text+=i.slice(t,this.prevI),!0}}captureNameChars(){const{chunk:e,i:t}=this;while(1){const i=this.getCode();if(i===_)return this.name+=e.slice(t),_;if(!d(i))return this.name+=e.slice(t,this.prevI),i===v?pe:i}}skipSpaces(){while(1){const e=this.getCodeNorm();if(e===_||!a(e))return e}}setXMLVersion(e){this.currentXMLVersion=e,"1.0"===e?(this.isChar=s,this.getCode=this.getCode10):(this.isChar=h,this.getCode=this.getCode11)}sBegin(){65279===this.chunk.charCodeAt(0)&&(this.i++,this.column++),this.state=E}sBeginWhitespace(){const e=this.i,t=this.skipSpaces();switch(this.prevI!==e&&(this.xmlDeclPossible=!1),t){case Re:if(this.state=j,0!==this.text.length)throw new Error("no-empty text at start");break;case _:break;default:this.unget(),this.state=M,this.xmlDeclPossible=!1}}sDoctype(){var e;const t=this.captureTo($e);switch(t){case Ae:null===(e=this.doctypeHandler)||void 0===e||e.call(this,this.text),this.text="",this.state=M,this.doctype=!0;break;case _:break;default:this.text+=String.fromCodePoint(t),t===Ne?this.state=A:ke(t)&&(this.state=T,this.q=t)}}sDoctypeQuote(){const e=this.q;this.captureToChar(e)&&(this.text+=String.fromCodePoint(e),this.q=null,this.state=R)}sDTD(){const e=this.captureTo(Me);e!==_&&(this.text+=String.fromCodePoint(e),e===Ce?this.state=R:e===Re?this.state=N:ke(e)&&(this.state=x,this.q=e))}sDTDQuoted(){const e=this.q;this.captureToChar(e)&&(this.text+=String.fromCodePoint(e),this.state=A,this.q=null)}sDTDOpenWaka(){const e=this.getCodeNorm();switch(this.text+=String.fromCodePoint(e),e){case me:this.state=C,this.openWakaBang="";break;case xe:this.state=P;break;default:this.state=A}}sDTDOpenWakaBang(){const e=String.fromCodePoint(this.getCodeNorm()),t=this.openWakaBang+=e;this.text+=e,"-"!==t&&(this.state="--"===t?I:A,this.openWakaBang="")}sDTDComment(){this.captureToChar(ve)&&(this.text+="-",this.state=D)}sDTDCommentEnding(){const e=this.getCodeNorm();this.text+=String.fromCodePoint(e),this.state=e===ve?k:I}sDTDCommentEnded(){const e=this.getCodeNorm();this.text+=String.fromCodePoint(e),e===Ae?this.state=A:(this.fail("malformed comment."),this.state=I)}sDTDPI(){this.captureToChar(xe)&&(this.text+="?",this.state=$)}sDTDPIEnding(){const e=this.getCodeNorm();this.text+=String.fromCodePoint(e),e===Ae&&(this.state=A)}sText(){0!==this.tags.length?this.handleTextInRoot():this.handleTextOutsideRoot()}sEntity(){let{i:e}=this;const{chunk:t}=this;e:while(1)switch(this.getCode()){case v:this.entity+=`${t.slice(e,this.prevI)}\n`,e=this.i;break;case Ee:{const{entityReturnState:i}=this,r=this.entity+t.slice(e,this.prevI);let n;this.state=i,""===r?(this.fail("empty entity name."),n="&;"):(n=this.parseEntity(r),this.entity=""),i===M&&void 0===this.textHandler||(this.text+=n);break e}case _:this.entity+=t.slice(e);break e;default:}}sOpenWaka(){const e=this.getCode();if(l(e))this.state=ie,this.unget(),this.xmlDeclPossible=!1;else switch(e){case Se:this.state=ue,this.xmlDeclPossible=!1;break;case me:this.state=L,this.openWakaBang="",this.xmlDeclPossible=!1;break;case xe:this.state=G;break;default:this.fail("disallowed character in tag name"),this.state=M,this.xmlDeclPossible=!1}}sOpenWakaBang(){switch(this.openWakaBang+=String.fromCodePoint(this.getCodeNorm()),this.openWakaBang){case"[CDATA[":this.sawRoot||this.reportedTextBeforeRoot||(this.fail("text data outside of root node."),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail("text data outside of root node."),this.reportedTextAfterRoot=!0),this.state=B,this.openWakaBang="";break;case"--":this.state=F,this.openWakaBang="";break;case"DOCTYPE":this.state=R,(this.doctype||this.sawRoot)&&this.fail("inappropriately located doctype declaration."),this.openWakaBang="";break;default:this.openWakaBang.length>=7&&this.fail("incorrect syntax.")}}sComment(){this.captureToChar(ve)&&(this.state=W)}sCommentEnding(){var e;const t=this.getCodeNorm();t===ve?(this.state=H,null===(e=this.commentHandler)||void 0===e||e.call(this,this.text),this.text=""):(this.text+=`-${String.fromCodePoint(t)}`,this.state=F)}sCommentEnded(){const e=this.getCodeNorm();e!==Ae?(this.fail("malformed comment."),this.text+=`--${String.fromCodePoint(e)}`,this.state=F):this.state=M}sCData(){this.captureToChar(Ce)&&(this.state=U)}sCDataEnding(){const e=this.getCodeNorm();e===Ce?this.state=V:(this.text+=`]${String.fromCodePoint(e)}`,this.state=B)}sCDataEnding2(){var e;const t=this.getCodeNorm();switch(t){case Ae:null===(e=this.cdataHandler)||void 0===e||e.call(this,this.text),this.text="",this.state=M;break;case Ce:this.text+="]";break;default:this.text+=`]]${String.fromCodePoint(t)}`,this.state=B}}sPIFirstChar(){const e=this.getCodeNorm();this.nameStartCheck(e)?(this.piTarget+=String.fromCodePoint(e),this.state=q):e===xe||a(e)?(this.fail("processing instruction without a target."),this.state=e===xe?Y:X):(this.fail("disallowed character in processing instruction name."),this.piTarget+=String.fromCodePoint(e),this.state=q)}sPIRest(){const{chunk:e,i:t}=this;while(1){const i=this.getCodeNorm();if(i===_)return void(this.piTarget+=e.slice(t));if(!this.nameCheck(i)){this.piTarget+=e.slice(t,this.prevI);const r=i===xe;r||a(i)?"xml"===this.piTarget?(this.xmlDeclPossible||this.fail("an XML declaration must be at the start of the document."),this.state=r?te:z):this.state=r?Y:X:(this.fail("disallowed character in processing instruction name."),this.piTarget+=String.fromCodePoint(i));break}}}sPIBody(){if(0===this.text.length){const e=this.getCodeNorm();e===xe?this.state=Y:a(e)||(this.text=String.fromCodePoint(e))}else this.captureToChar(xe)&&(this.state=Y)}sPIEnding(){var e;const t=this.getCodeNorm();if(t===Ae){const{piTarget:t}=this;"xml"===t.toLowerCase()&&this.fail("the XML declaration must appear at the start of the document."),null===(e=this.piHandler)||void 0===e||e.call(this,{target:t,body:this.text}),this.piTarget=this.text="",this.state=M}else t===xe?this.text+="?":(this.text+=`?${String.fromCodePoint(t)}`,this.state=X);this.xmlDeclPossible=!1}sXMLDeclNameStart(){const e=this.skipSpaces();e!==xe?e!==_&&(this.state=Z,this.name=String.fromCodePoint(e)):this.state=te}sXMLDeclName(){const e=this.captureTo(Oe);if(e===xe)return this.state=te,this.name+=this.text,this.text="",void this.fail("XML declaration is incomplete.");if(a(e)||e===Te){if(this.name+=this.text,this.text="",!this.xmlDeclExpects.includes(this.name))switch(this.name.length){case 0:this.fail("did not expect any more name/value pairs.");break;case 1:this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);break;default:this.fail(`expected one of ${this.xmlDeclExpects.join(", ")}`)}this.state=e===Te?Q:K}}sXMLDeclEq(){const e=this.getCodeNorm();if(e===xe)return this.state=te,void this.fail("XML declaration is incomplete.");a(e)||(e!==Te&&this.fail("value required."),this.state=Q)}sXMLDeclValueStart(){const e=this.getCodeNorm();if(e===xe)return this.state=te,void this.fail("XML declaration is incomplete.");a(e)||(ke(e)?this.q=e:(this.fail("value must be quoted."),this.q=ge),this.state=J)}sXMLDeclValue(){const e=this.captureTo([this.q,xe]);if(e===xe)return this.state=te,this.text="",void this.fail("XML declaration is incomplete.");if(e===_)return;const t=this.text;switch(this.text="",this.name){case"version":{this.xmlDeclExpects=["encoding","standalone"];const e=t;this.xmlDecl.version=e,/^1\.[0-9]+$/.test(e)?this.opt.forceXMLVersion||this.setXMLVersion(e):this.fail("version number must match /^1\\.[0-9]+$/.");break}case"encoding":/^[A-Za-z][A-Za-z0-9._-]*$/.test(t)||this.fail("encoding value must match /^[A-Za-z0-9][A-Za-z0-9._-]*$/."),this.xmlDeclExpects=["standalone"],this.xmlDecl.encoding=t;break;case"standalone":"yes"!==t&&"no"!==t&&this.fail('standalone value must match "yes" or "no".'),this.xmlDeclExpects=[],this.xmlDecl.standalone=t;break;default:}this.name="",this.state=ee}sXMLDeclSeparator(){const e=this.getCodeNorm();e!==xe?(a(e)||(this.fail("whitespace required."),this.unget()),this.state=z):this.state=te}sXMLDeclEnding(){var e;const t=this.getCodeNorm();t===Ae?("xml"!==this.piTarget?this.fail("processing instructions are not allowed before root."):"version"!==this.name&&this.xmlDeclExpects.includes("version")&&this.fail("XML declaration must contain a version."),null===(e=this.xmldeclHandler)||void 0===e||e.call(this,this.xmlDecl),this.name="",this.piTarget=this.text="",this.state=M):this.fail("The character ? is disallowed anywhere in XML declarations."),this.xmlDeclPossible=!1}sOpenTag(){var e;const t=this.captureNameChars();if(t===_)return;const i=this.tag={name:this.name,attributes:Object.create(null)};switch(this.name="",this.xmlnsOpt&&(this.topNS=i.ns=Object.create(null)),null===(e=this.openTagStartHandler)||void 0===e||e.call(this,i),this.sawRoot=!0,!this.fragmentOpt&&this.closedRoot&&this.fail("documents may contain only one root."),t){case Ae:this.openTag();break;case Se:this.state=re;break;default:a(t)||this.fail("disallowed character in tag name."),this.state=ne}}sOpenTagSlash(){this.getCode()===Ae?this.openSelfClosingTag():(this.fail("forward-slash in opening tag not followed by >."),this.state=ne)}sAttrib(){const e=this.skipSpaces();e!==_&&(l(e)?(this.unget(),this.state=oe):e===Ae?this.openTag():e===Se?this.state=re:this.fail("disallowed character in attribute name."))}sAttribName(){const e=this.captureNameChars();e===Te?this.state=se:a(e)?this.state=ae:e===Ae?(this.fail("attribute without value."),this.pushAttrib(this.name,this.name),this.name=this.text="",this.openTag()):e!==_&&this.fail("disallowed character in attribute name.")}sAttribNameSawWhite(){const e=this.skipSpaces();switch(e){case _:return;case Te:this.state=se;break;default:this.fail("attribute without value."),this.text="",this.name="",e===Ae?this.openTag():l(e)?(this.unget(),this.state=oe):(this.fail("disallowed character in attribute name."),this.state=ne)}}sAttribValue(){const e=this.getCodeNorm();ke(e)?(this.q=e,this.state=le):a(e)||(this.fail("unquoted attribute value."),this.state=ce,this.unget())}sAttribValueQuoted(){const{q:e,chunk:t}=this;let{i:i}=this;while(1)switch(this.getCode()){case e:return this.pushAttrib(this.name,this.text+t.slice(i,this.prevI)),this.name=this.text="",this.q=null,void(this.state=de);case we:return this.text+=t.slice(i,this.prevI),this.state=O,void(this.entityReturnState=le);case pe:case v:case fe:this.text+=`${t.slice(i,this.prevI)} `,i=this.i;break;case Re:return this.text+=t.slice(i,this.prevI),void this.fail("disallowed character.");case _:return void(this.text+=t.slice(i));default:}}sAttribValueClosed(){const e=this.getCodeNorm();a(e)?this.state=ne:e===Ae?this.openTag():e===Se?this.state=re:l(e)?(this.fail("no whitespace between attributes."),this.unget(),this.state=oe):this.fail("disallowed character in attribute name.")}sAttribValueUnquoted(){const e=this.captureTo(je);switch(e){case we:this.state=O,this.entityReturnState=ce;break;case Re:this.fail("disallowed character.");break;case _:break;default:this.text.includes("]]>")&&this.fail('the string "]]>" is disallowed in char data.'),this.pushAttrib(this.name,this.text),this.name=this.text="",e===Ae?this.openTag():this.state=ne}}sCloseTag(){const e=this.captureNameChars();e===Ae?this.closeTag():a(e)?this.state=he:e!==_&&this.fail("disallowed character in closing tag.")}sCloseTagSawWhite(){switch(this.skipSpaces()){case Ae:this.closeTag();break;case _:break;default:this.fail("disallowed character in closing tag.")}}handleTextInRoot(){let{i:e,forbiddenState:t}=this;const{chunk:i,textHandler:r}=this;e:while(1)switch(this.getCode()){case Re:if(this.state=j,void 0!==r){const{text:t}=this,n=i.slice(e,this.prevI);0!==t.length?(r(t+n),this.text=""):0!==n.length&&r(n)}t=Be;break e;case we:this.state=O,this.entityReturnState=M,void 0!==r&&(this.text+=i.slice(e,this.prevI)),t=Be;break e;case Ce:switch(t){case Be:t=Ue;break;case Ue:t=Ve;break;case Ve:break;default:throw new Error("impossible state")}break;case Ae:t===Ve&&this.fail('the string "]]>" is disallowed in char data.'),t=Be;break;case v:void 0!==r&&(this.text+=`${i.slice(e,this.prevI)}\n`),e=this.i,t=Be;break;case _:void 0!==r&&(this.text+=i.slice(e));break e;default:t=Be}this.forbiddenState=t}handleTextOutsideRoot(){let{i:e}=this;const{chunk:t,textHandler:i}=this;let r=!1;e:while(1){const n=this.getCode();switch(n){case Re:if(this.state=j,void 0!==i){const{text:r}=this,n=t.slice(e,this.prevI);0!==r.length?(i(r+n),this.text=""):0!==n.length&&i(n)}break e;case we:this.state=O,this.entityReturnState=M,void 0!==i&&(this.text+=t.slice(e,this.prevI)),r=!0;break e;case v:void 0!==i&&(this.text+=`${t.slice(e,this.prevI)}\n`),e=this.i;break;case _:void 0!==i&&(this.text+=t.slice(e));break e;default:a(n)||(r=!0)}}r&&(this.sawRoot||this.reportedTextBeforeRoot||(this.fail("text data outside of root node."),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail("text data outside of root node."),this.reportedTextAfterRoot=!0))}pushAttribNS(e,t){var i;const{prefix:r,local:n}=this.qname(e),o={name:e,prefix:r,local:n,value:t};if(this.attribList.push(o),null===(i=this.attributeHandler)||void 0===i||i.call(this,o),"xmlns"===r){const e=t.trim();"1.0"===this.currentXMLVersion&&""===e&&this.fail("invalid attempt to undefine prefix in XML 1.0"),this.topNS[n]=e,Le(this,n,e)}else if("xmlns"===e){const e=t.trim();this.topNS[""]=e,Le(this,"",e)}}pushAttribPlain(e,t){var i;const r={name:e,value:t};this.attribList.push(r),null===(i=this.attributeHandler)||void 0===i||i.call(this,r)}end(){var e,t;this.sawRoot||this.fail("document must contain a root element.");const{tags:i}=this;while(i.length>0){const e=i.pop();this.fail(`unclosed tag: ${e.name}`)}this.state!==S&&this.state!==M&&this.fail("unexpected end.");const{text:r}=this;return 0!==r.length&&(null===(e=this.textHandler)||void 0===e||e.call(this,r),this.text=""),this._closed=!0,null===(t=this.endHandler)||void 0===t||t.call(this),this._init(),this}resolve(e){var t,i;let r=this.topNS[e];if(void 0!==r)return r;const{tags:n}=this;for(let o=n.length-1;o>=0;o--)if(r=n[o].ns[e],void 0!==r)return r;return r=this.ns[e],void 0!==r?r:null===(i=(t=this.opt).resolvePrefix)||void 0===i?void 0:i.call(t,e)}qname(e){const t=e.indexOf(":");if(-1===t)return{prefix:"",local:e};const i=e.slice(t+1),r=e.slice(0,t);return(""===r||""===i||i.includes(":"))&&this.fail(`malformed name: ${e}.`),{prefix:r,local:i}}processAttribsNS(){var e;const{attribList:t}=this,i=this.tag;{const{prefix:t,local:r}=this.qname(i.name);i.prefix=t,i.local=r;const n=i.uri=null!==(e=this.resolve(t))&&void 0!==e?e:"";""!==t&&("xmlns"===t&&this.fail('tags may not have "xmlns" as prefix.'),""===n&&(this.fail(`unbound namespace prefix: ${JSON.stringify(t)}.`),i.uri=t))}if(0===t.length)return;const{attributes:r}=i,n=new Set;for(const o of t){const{name:e,prefix:t,local:i}=o;let a,s;""===t?(a="xmlns"===e?m:"",s=e):(a=this.resolve(t),void 0===a&&(this.fail(`unbound namespace prefix: ${JSON.stringify(t)}.`),a=t),s=`{${a}}${i}`),n.has(s)&&this.fail(`duplicate attribute: ${s}.`),n.add(s),o.uri=a,r[e]=o}this.attribList=[]}processAttribsPlain(){const{attribList:e}=this,t=this.tag.attributes;for(const{name:i,value:r}of e)void 0!==t[i]&&this.fail(`duplicate attribute: ${i}.`),t[i]=r;this.attribList=[]}openTag(){var e;this.processAttribs();const{tags:t}=this,i=this.tag;i.isSelfClosing=!1,null===(e=this.openTagHandler)||void 0===e||e.call(this,i),t.push(i),this.state=M,this.name=""}openSelfClosingTag(){var e,t,i;this.processAttribs();const{tags:r}=this,n=this.tag;n.isSelfClosing=!0,null===(e=this.openTagHandler)||void 0===e||e.call(this,n),null===(t=this.closeTagHandler)||void 0===t||t.call(this,n);const o=this.tag=null!==(i=r[r.length-1])&&void 0!==i?i:null;null===o&&(this.closedRoot=!0),this.state=M,this.name=""}closeTag(){const{tags:e,name:t}=this;if(this.state=M,this.name="",""===t)return this.fail("weird empty close tag."),void(this.text+="");const i=this.closeTagHandler;let r=e.length;while(r-- >0){const r=this.tag=e.pop();if(this.topNS=r.ns,null===i||void 0===i||i(r),r.name===t)break;this.fail("unexpected close tag.")}0===r?this.closedRoot=!0:r<0&&(this.fail(`unmatched closing tag: ${t}.`),this.text+=``)}parseEntity(e){if("#"!==e[0]){const t=this.ENTITIES[e];return void 0!==t?t:(this.fail(this.isName(e)?"undefined entity.":"disallowed character in entity name."),`&${e};`)}let t=NaN;return"x"===e[1]&&/^#x[0-9a-f]+$/i.test(e)?t=parseInt(e.slice(2),16):/^#[0-9]+$/.test(e)&&(t=parseInt(e.slice(1),10)),this.isChar(t)?String.fromCodePoint(t):(this.fail("malformed character entity."),`&${e};`)}}t.SaxesParser=qe},41640:function(e,t,i){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),n=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||r(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),n(i(7970),t),n(i(37498),t),n(i(16381),t),n(i(72808),t),n(i(92016),t),n(i(63387),t),n(i(71573),t)},7970:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BlankNode=void 0;class i{constructor(e){this.termType="BlankNode",this.value=e}equals(e){return!!e&&"BlankNode"===e.termType&&e.value===this.value}}t.BlankNode=i},37498:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataFactory=void 0;const r=i(7970),n=i(16381),o=i(72808),a=i(92016),s=i(63387),l=i(71573);let d=0;class c{constructor(e){this.blankNodeCounter=0,e=e||{},this.blankNodePrefix=e.blankNodePrefix||`df_${d++}_`}namedNode(e){return new a.NamedNode(e)}blankNode(e){return new r.BlankNode(e||`${this.blankNodePrefix}${this.blankNodeCounter++}`)}literal(e,t){return new o.Literal(e,t)}variable(e){return new l.Variable(e)}defaultGraph(){return n.DefaultGraph.INSTANCE}quad(e,t,i,r){return new s.Quad(e,t,i,r||this.defaultGraph())}fromTerm(e){switch(e.termType){case"NamedNode":return this.namedNode(e.value);case"BlankNode":return this.blankNode(e.value);case"Literal":return e.language?this.literal(e.value,e.language):e.datatype.equals(o.Literal.XSD_STRING)?this.literal(e.value):this.literal(e.value,this.fromTerm(e.datatype));case"Variable":return this.variable(e.value);case"DefaultGraph":return this.defaultGraph();case"Quad":return this.quad(this.fromTerm(e.subject),this.fromTerm(e.predicate),this.fromTerm(e.object),this.fromTerm(e.graph))}}fromQuad(e){return this.fromTerm(e)}resetBlankNodeCounter(){this.blankNodeCounter=0}}t.DataFactory=c},16381:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultGraph=void 0;class i{constructor(){this.termType="DefaultGraph",this.value=""}equals(e){return!!e&&"DefaultGraph"===e.termType}}t.DefaultGraph=i,i.INSTANCE=new i},72808:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Literal=void 0;const r=i(92016);class n{constructor(e,t){this.termType="Literal",this.value=e,"string"===typeof t?(this.language=t,this.datatype=n.RDF_LANGUAGE_STRING):t?(this.language="",this.datatype=t):(this.language="",this.datatype=n.XSD_STRING)}equals(e){return!!e&&"Literal"===e.termType&&e.value===this.value&&e.language===this.language&&e.datatype.equals(this.datatype)}}t.Literal=n,n.RDF_LANGUAGE_STRING=new r.NamedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"),n.XSD_STRING=new r.NamedNode("http://www.w3.org/2001/XMLSchema#string")},92016:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NamedNode=void 0;class i{constructor(e){this.termType="NamedNode",this.value=e}equals(e){return!!e&&"NamedNode"===e.termType&&e.value===this.value}}t.NamedNode=i},63387:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Quad=void 0;class i{constructor(e,t,i,r){this.termType="Quad",this.value="",this.subject=e,this.predicate=t,this.object=i,this.graph=r}equals(e){return!!e&&("Quad"===e.termType||!e.termType)&&this.subject.equals(e.subject)&&this.predicate.equals(e.predicate)&&this.object.equals(e.object)&&this.graph.equals(e.graph)}}t.Quad=i},71573:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Variable=void 0;class i{constructor(e){this.termType="Variable",this.value=e}equals(e){return!!e&&"Variable"===e.termType&&e.value===this.value}}t.Variable=i},25787:function(e,t,i){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),n=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||r(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),n(i(99568),t)},9966:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ParseError=void 0;class i extends Error{constructor(e,t){const i=e.saxParser;super(e.trackPosition?`Line ${i.line} column ${i.column+1}: ${t}`:t)}}t.ParseError=i},99568:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ParseType=t.RdfXmlParser=void 0;const r=i(68912),n=i(12893),o=i(24126),a=i(9966),s=i(41640),l=i(21017);class d extends o.Transform{constructor(e){super({readableObjectMode:!0}),this.activeTagStack=[],this.nodeIds={},e&&(Object.assign(this,e),this.options=e),this.dataFactory||(this.dataFactory=new s.DataFactory),this.baseIRI||(this.baseIRI=""),this.defaultGraph||(this.defaultGraph=this.dataFactory.defaultGraph()),!1!==this.validateUri&&(this.validateUri=!0),this.iriValidationStrategy||(this.iriValidationStrategy=this.validateUri?l.IriValidationStrategy.Pragmatic:l.IriValidationStrategy.None),this.saxParser=new n.SaxesParser({xmlns:!0,position:this.trackPosition}),this.attachSaxListeners()}import(e){const t=new o.PassThrough({readableObjectMode:!0});e.on("error",(e=>i.emit("error",e))),e.on("data",(e=>t.push(e))),e.on("end",(()=>t.push(null)));const i=t.pipe(new d(this.options));return i}_transform(e,t,i){try{this.saxParser.write(e)}catch(r){return i(r)}i()}newParseError(e){return new a.ParseError(this,e)}valueToUri(e,t){return this.uriToNamedNode((0,r.resolve)(e,t.baseIRI))}uriToNamedNode(e){const t=(0,l.validateIri)(e,this.iriValidationStrategy);if(t instanceof Error)throw this.newParseError(t.message);return this.dataFactory.namedNode(e)}validateNcname(e){if(!d.NCNAME_MATCHER.test(e))throw this.newParseError(`Not a valid NCName: ${e}`)}attachSaxListeners(){this.saxParser.on("error",(e=>this.emit("error",e))),this.saxParser.on("opentag",this.onTag.bind(this)),this.saxParser.on("text",this.onText.bind(this)),this.saxParser.on("closetag",this.onCloseTag.bind(this)),this.saxParser.on("doctype",this.onDoctype.bind(this))}onTag(e){const t=this.activeTagStack.length?this.activeTagStack[this.activeTagStack.length-1]:null;let i=c.RESOURCE;if(t&&(t.hadChildren=!0,i=t.childrenParseType),t&&t.childrenStringTags){const i=e.name;let r="";for(const t in e.attributes)r+=` ${t}="${e.attributes[t].value}"`;const n=`${i}${r}`,o=`<${n}>`;t.childrenStringTags.push(o);const a={childrenStringTags:t.childrenStringTags};return a.childrenStringEmitClosingTag=``,void this.activeTagStack.push(a)}const r={};t?(r.language=t.language,r.baseIRI=t.baseIRI):r.baseIRI=this.baseIRI,this.activeTagStack.push(r),i===c.RESOURCE?this.onTagResource(e,r,t,!t):this.onTagProperty(e,r,t)}onTagResource(e,t,i,n){t.childrenParseType=c.PROPERTY;let o=!0;if(e.uri===d.RDF){if(!n&&d.FORBIDDEN_NODE_ELEMENTS.indexOf(e.local)>=0)throw this.newParseError(`Illegal node element name: ${e.local}`);switch(e.local){case"RDF":t.childrenParseType=c.RESOURCE;case"Description":o=!1}}const a=[],s=[];let l=null,u=!1,h=!1,f=null;for(const c in e.attributes){const n=e.attributes[c];if(i&&n.uri===d.RDF)switch(n.local){case"about":if(l)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${n.value} and ${l} where found.`);l=n.value;continue;case"ID":if(l)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${n.value} and ${l} where found.`);this.validateNcname(n.value),l="#"+n.value,u=!0;continue;case"nodeID":if(l)throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, while ${n.value} and ${l} where found.`);this.validateNcname(n.value),l=n.value,h=!0;continue;case"bagID":throw this.newParseError("rdf:bagID is not supported.");case"type":f=n.value;continue;case"aboutEach":throw this.newParseError("rdf:aboutEach is not supported.");case"aboutEachPrefix":throw this.newParseError("rdf:aboutEachPrefix is not supported.");case"li":throw this.newParseError("rdf:li on node elements are not supported.")}else if(n.uri===d.XML){if("lang"===n.local){t.language=""===n.value?null:n.value.toLowerCase();continue}if("base"===n.local){t.baseIRI=(0,r.resolve)(n.value,t.baseIRI);continue}}"xml"!==n.prefix&&n.uri&&(a.push(this.uriToNamedNode(n.uri+n.local)),s.push(n.value))}if(null!==l&&(t.subject=h?this.dataFactory.blankNode(l):this.valueToUri(l,t),u&&this.claimNodeId(t.subject)),t.subject||(t.subject=this.dataFactory.blankNode()),o){const r=this.uriToNamedNode(e.uri+e.local);this.emitTriple(t.subject,this.dataFactory.namedNode(d.RDF+"type"),r,i?i.reifiedStatementId:null)}if(i){if(i.predicate)if(i.childrenCollectionSubject){const e=this.dataFactory.blankNode();this.emitTriple(i.childrenCollectionSubject,i.childrenCollectionPredicate,e,i.reifiedStatementId),this.emitTriple(e,this.dataFactory.namedNode(d.RDF+"first"),t.subject,t.reifiedStatementId),i.childrenCollectionSubject=e,i.childrenCollectionPredicate=this.dataFactory.namedNode(d.RDF+"rest")}else{this.emitTriple(i.subject,i.predicate,t.subject,i.reifiedStatementId);for(let e=0;e=0)throw this.newParseError(`Illegal property element name: ${e.local}`);t.predicateSubPredicates=[],t.predicateSubObjects=[];let r=!1,n=!1,o=null,a=!0;const s=[],l=[];for(const u in e.attributes){const i=e.attributes[u];if(i.uri===d.RDF)switch(i.local){case"resource":if(o)throw this.newParseError(`Found both rdf:resource (${i.value}) and rdf:nodeID (${o}).`);if(r)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:resource (${i.value})`);t.hadChildren=!0,o=i.value,a=!1;continue;case"datatype":if(n)throw this.newParseError(`Found both non-rdf:* property attributes and rdf:datatype (${i.value}).`);if(r)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${i.value})`);t.datatype=this.valueToUri(i.value,t);continue;case"nodeID":if(n)throw this.newParseError(`Found both non-rdf:* property attributes and rdf:nodeID (${i.value}).`);if(t.hadChildren)throw this.newParseError(`Found both rdf:resource and rdf:nodeID (${i.value}).`);if(r)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID (${i.value})`);this.validateNcname(i.value),t.hadChildren=!0,o=i.value,a=!0;continue;case"bagID":throw this.newParseError("rdf:bagID is not supported.");case"parseType":if(n)throw this.newParseError("rdf:parseType is not allowed when non-rdf:* property attributes are present");if(t.datatype)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${t.datatype.value})`);if(o)throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID or rdf:resource (${o})`);if("Resource"===i.value){r=!0,t.childrenParseType=c.PROPERTY;const e=this.dataFactory.blankNode();this.emitTriple(t.subject,t.predicate,e,t.reifiedStatementId),t.subject=e,t.predicate=null}else"Collection"===i.value?(r=!0,t.hadChildren=!0,t.childrenCollectionSubject=t.subject,t.childrenCollectionPredicate=t.predicate,a=!1):"Literal"===i.value&&(r=!0,t.childrenTagsToString=!0,t.childrenStringTags=[]);continue;case"ID":this.validateNcname(i.value),t.reifiedStatementId=this.valueToUri("#"+i.value,t),this.claimNodeId(t.reifiedStatementId);continue}else if(i.uri===d.XML&&"lang"===i.local){t.language=""===i.value?null:i.value.toLowerCase();continue}if("xml"!==i.prefix&&"xmlns"!==i.prefix&&(""!==i.prefix||"xmlns"!==i.local)&&i.uri){if(r||t.datatype)throw this.newParseError(`Found illegal rdf:* properties on property element with attribute: ${i.value}`);t.hadChildren=!0,n=!0,s.push(this.uriToNamedNode(i.uri+i.local)),l.push(this.dataFactory.literal(i.value,t.datatype||t.language))}}if(null!==o){const e=t.subject;t.subject=a?this.dataFactory.blankNode(o):this.valueToUri(o,t),this.emitTriple(e,t.predicate,t.subject,t.reifiedStatementId);for(let i=0;i/g,((e,t,i)=>(this.saxParser.ENTITIES[t]=i,"")))}}var c;t.RdfXmlParser=d,d.MIME_TYPE="application/rdf+xml",d.RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#",d.XML="http://www.w3.org/XML/1998/namespace",d.FORBIDDEN_NODE_ELEMENTS=["RDF","ID","about","bagID","parseType","resource","nodeID","li","aboutEach","aboutEachPrefix"],d.FORBIDDEN_PROPERTY_ELEMENTS=["Description","RDF","ID","about","bagID","parseType","resource","nodeID","aboutEach","aboutEachPrefix"],d.NCNAME_MATCHER=/^([A-Za-z\xC0-\xD6\xD8-\xF6\u{F8}-\u{2FF}\u{370}-\u{37D}\u{37F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}_])([A-Za-z\xC0-\xD6\xD8-\xF6\u{F8}-\u{2FF}\u{370}-\u{37D}\u{37F}-\u{1FFF}\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}_\-.0-9#xB7\u{0300}-\u{036F}\u{203F}-\u{2040}])*$/u,function(e){e[e["RESOURCE"]=0]="RESOURCE",e[e["PROPERTY"]=1]="PROPERTY"}(c||(t.ParseType=c={}))},1163:function(e,t,i){"use strict";const{AbortError:r,codes:n}=i(33555),{isNodeStream:o,isWebStream:a,kControllerErrorFunction:s}=i(74451),l=i(41927),{ERR_INVALID_ARG_TYPE:d}=n,c=(e,t)=>{if("object"!==typeof e||!("aborted"in e))throw new d(t,"AbortSignal",e)};e.exports.addAbortSignal=function(t,i){if(c(t,"signal"),!o(i)&&!a(i))throw new d("stream",["ReadableStream","WritableStream","Stream"],i);return e.exports.addAbortSignalNoValidate(t,i)},e.exports.addAbortSignalNoValidate=function(e,t){if("object"!==typeof e||!("aborted"in e))return t;const i=o(t)?()=>{t.destroy(new r(void 0,{cause:e.reason}))}:()=>{t[s](new r(void 0,{cause:e.reason}))};return e.aborted?i():(e.addEventListener("abort",i),l(t,(()=>e.removeEventListener("abort",i)))),t}},82481:function(e,t,i){"use strict";const{StringPrototypeSlice:r,SymbolIterator:n,TypedArrayPrototypeSet:o,Uint8Array:a}=i(37808),{Buffer:s}=i(48764),{inspect:l}=i(61357);e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(e){const t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}shift(){if(0===this.length)return;const e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(0===this.length)return"";let t=this.head,i=""+t.data;while(null!==(t=t.next))i+=e+t.data;return i}concat(e){if(0===this.length)return s.alloc(0);const t=s.allocUnsafe(e>>>0);let i=this.head,r=0;while(i)o(t,i.data,r),r+=i.data.length,i=i.next;return t}consume(e,t){const i=this.head.data;if(eo.length)){e===o.length?(t+=o,++n,i.next?this.head=i.next:this.head=this.tail=null):(t+=r(o,0,e),this.head=i,i.data=r(o,e));break}t+=o,e-=o.length,++n}while(null!==(i=i.next));return this.length-=n,t}_getBuffer(e){const t=s.allocUnsafe(e),i=e;let r=this.head,n=0;do{const s=r.data;if(!(e>s.length)){e===s.length?(o(t,s,i-e),++n,r.next?this.head=r.next:this.head=this.tail=null):(o(t,new a(s.buffer,s.byteOffset,e),i-e),this.head=r,r.data=s.slice(e));break}o(t,s,i-e),e-=s.length,++n}while(null!==(r=r.next));return this.length-=n,t}[Symbol.for("nodejs.util.inspect.custom")](e,t){return l(this,{...t,depth:0,customInspect:!1})}}},72982:function(e,t,i){"use strict";const{pipeline:r}=i(33298),n=i(72664),{destroyer:o}=i(55306),{isNodeStream:a,isReadable:s,isWritable:l,isWebStream:d,isTransformStream:c,isWritableStream:u,isReadableStream:h}=i(74451),{AbortError:f,codes:{ERR_INVALID_ARG_VALUE:p,ERR_MISSING_ARGS:b}}=i(33555),g=i(41927);e.exports=function(...e){if(0===e.length)throw new b("streams");if(1===e.length)return n.from(e[0]);const t=[...e];if("function"===typeof e[0]&&(e[0]=n.from(e[0])),"function"===typeof e[e.length-1]){const t=e.length-1;e[t]=n.from(e[t])}for(let r=0;r0&&!(l(e[r])||u(e[r])||c(e[r])))throw new p(`streams[${r}]`,t[r],"must be writable")}let i,m,y,w,_;function v(e){const t=w;w=null,t?t(e):e?_.destroy(e):T||R||_.destroy()}const S=e[0],E=r(e,v),R=!!(l(S)||u(S)||c(S)),T=!!(s(E)||h(E)||c(E));if(_=new n({writableObjectMode:!(null===S||void 0===S||!S.writableObjectMode),readableObjectMode:!(null===E||void 0===E||!E.writableObjectMode),writable:R,readable:T}),R){if(a(S))_._write=function(e,t,r){S.write(e,t)?r():i=r},_._final=function(e){S.end(),m=e},S.on("drain",(function(){if(i){const e=i;i=null,e()}}));else if(d(S)){const e=c(S)?S.writable:S,t=e.getWriter();_._write=async function(e,i,r){try{await t.ready,t.write(e).catch((()=>{})),r()}catch(n){r(n)}},_._final=async function(e){try{await t.ready,t.close().catch((()=>{})),m=e}catch(i){e(i)}}}const e=c(E)?E.readable:E;g(e,(()=>{if(m){const e=m;m=null,e()}}))}if(T)if(a(E))E.on("readable",(function(){if(y){const e=y;y=null,e()}})),E.on("end",(function(){_.push(null)})),_._read=function(){while(1){const e=E.read();if(null===e)return void(y=_._read);if(!_.push(e))return}};else if(d(E)){const e=c(E)?E.readable:E,t=e.getReader();_._read=async function(){while(1)try{const{value:e,done:i}=await t.read();if(!_.push(e))return;if(i)return void _.push(null)}catch{return}}}return _._destroy=function(e,t){e||null===w||(e=new f),y=null,i=null,m=null,null===w?t(e):(w=t,a(E)&&o(E,e))},_}},55306:function(e,t,i){"use strict";const r=i(34155),{aggregateTwoErrors:n,codes:{ERR_MULTIPLE_CALLBACK:o},AbortError:a}=i(33555),{Symbol:s}=i(37808),{kDestroyed:l,isDestroyed:d,isFinished:c,isServerRequest:u}=i(74451),h=s("kDestroy"),f=s("kConstruct");function p(e,t,i){e&&(e.stack,t&&!t.errored&&(t.errored=e),i&&!i.errored&&(i.errored=e))}function b(e,t){const i=this._readableState,r=this._writableState,o=r||i;return null!==r&&void 0!==r&&r.destroyed||null!==i&&void 0!==i&&i.destroyed?("function"===typeof t&&t(),this):(p(e,r,i),r&&(r.destroyed=!0),i&&(i.destroyed=!0),o.constructed?g(this,e,t):this.once(h,(function(i){g(this,n(i,e),t)})),this)}function g(e,t,i){let n=!1;function o(t){if(n)return;n=!0;const o=e._readableState,a=e._writableState;p(t,a,o),a&&(a.closed=!0),o&&(o.closed=!0),"function"===typeof i&&i(t),t?r.nextTick(m,e,t):r.nextTick(y,e)}try{e._destroy(t||null,o)}catch(t){o(t)}}function m(e,t){w(e,t),y(e)}function y(e){const t=e._readableState,i=e._writableState;i&&(i.closeEmitted=!0),t&&(t.closeEmitted=!0),(null!==i&&void 0!==i&&i.emitClose||null!==t&&void 0!==t&&t.emitClose)&&e.emit("close")}function w(e,t){const i=e._readableState,r=e._writableState;null!==r&&void 0!==r&&r.errorEmitted||null!==i&&void 0!==i&&i.errorEmitted||(r&&(r.errorEmitted=!0),i&&(i.errorEmitted=!0),e.emit("error",t))}function _(){const e=this._readableState,t=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=!1===e.readable,e.endEmitted=!1===e.readable),t&&(t.constructed=!0,t.destroyed=!1,t.closed=!1,t.closeEmitted=!1,t.errored=null,t.errorEmitted=!1,t.finalCalled=!1,t.prefinished=!1,t.ended=!1===t.writable,t.ending=!1===t.writable,t.finished=!1===t.writable)}function v(e,t,i){const n=e._readableState,o=e._writableState;if(null!==o&&void 0!==o&&o.destroyed||null!==n&&void 0!==n&&n.destroyed)return this;null!==n&&void 0!==n&&n.autoDestroy||null!==o&&void 0!==o&&o.autoDestroy?e.destroy(t):t&&(t.stack,o&&!o.errored&&(o.errored=t),n&&!n.errored&&(n.errored=t),i?r.nextTick(w,e,t):w(e,t))}function S(e,t){if("function"!==typeof e._construct)return;const i=e._readableState,n=e._writableState;i&&(i.constructed=!1),n&&(n.constructed=!1),e.once(f,t),e.listenerCount(f)>1||r.nextTick(E,e)}function E(e){let t=!1;function i(i){if(t)return void v(e,null!==i&&void 0!==i?i:new o);t=!0;const n=e._readableState,a=e._writableState,s=a||n;n&&(n.constructed=!0),a&&(a.constructed=!0),s.destroyed?e.emit(h,i):i?v(e,i,!0):r.nextTick(R,e)}try{e._construct((e=>{r.nextTick(i,e)}))}catch(n){r.nextTick(i,n)}}function R(e){e.emit(f)}function T(e){return(null===e||void 0===e?void 0:e.setHeader)&&"function"===typeof e.abort}function A(e){e.emit("close")}function x(e,t){e.emit("error",t),r.nextTick(A,e)}function N(e,t){e&&!d(e)&&(t||c(e)||(t=new a),u(e)?(e.socket=null,e.destroy(t)):T(e)?e.abort():T(e.req)?e.req.abort():"function"===typeof e.destroy?e.destroy(t):"function"===typeof e.close?e.close():t?r.nextTick(x,e,t):r.nextTick(A,e),e.destroyed||(e[l]=!0))}e.exports={construct:S,destroyer:N,destroy:b,undestroy:_,errorOrDestroy:v}},72664:function(e,t,i){"use strict";const{ObjectDefineProperties:r,ObjectGetOwnPropertyDescriptor:n,ObjectKeys:o,ObjectSetPrototypeOf:a}=i(37808);e.exports=d;const s=i(37470),l=i(18672);a(d.prototype,s.prototype),a(d,s);{const e=o(l.prototype);for(let t=0;t{u=!1,e&&g(t,e),p(e)})),d._write=function(e,t,n){i.write(e,t)?n():r=n},d._final=function(e){i.end(),n=e},i.on("drain",(function(){if(r){const e=r;r=null,e()}})),i.on("finish",(function(){if(n){const e=n;n=null,e()}}))),c&&(h(t,(e=>{c=!1,e&&g(t,e),p(e)})),t.on("readable",(function(){if(s){const e=s;s=null,e()}})),t.on("end",(function(){d.push(null)})),d._read=function(){while(1){const e=t.read();if(null===e)return void(s=d._read);if(!d.push(e))return}}),d._destroy=function(e,o){e||null===l||(e=new f),s=null,r=null,n=null,null===l?o(e):(l=o,g(i,e),g(t,e))},d}e.exports=function e(t,i){if(u(t))return t;if(d(t))return x({readable:t});if(c(t))return x({writable:t});if(l(t))return x({writable:!1,readable:!1});if("function"===typeof t){const{value:e,write:n,final:o,destroy:a}=A(t);if(s(e))return _(T,e,{objectMode:!0,write:n,final:o,destroy:a});const l=null===e||void 0===e?void 0:e.then;if("function"===typeof l){let t;const i=R(l,e,(e=>{if(null!=e)throw new b("nully","body",e)}),(e=>{g(t,e)}));return t=new T({objectMode:!0,readable:!1,write:n,final(e){o((async()=>{try{await i,r.nextTick(e,null)}catch(t){r.nextTick(e,t)}}))},destroy:a})}throw new b("Iterable, AsyncIterable or AsyncFunction",i,e)}if(S(t))return e(t.arrayBuffer());if(s(t))return _(T,t,{objectMode:!0,writable:!1});if("object"===typeof(null===t||void 0===t?void 0:t.writable)||"object"===typeof(null===t||void 0===t?void 0:t.readable)){const i=null!==t&&void 0!==t&&t.readable?d(null===t||void 0===t?void 0:t.readable)?null===t||void 0===t?void 0:t.readable:e(t.readable):void 0,r=null!==t&&void 0!==t&&t.writable?c(null===t||void 0===t?void 0:t.writable)?null===t||void 0===t?void 0:t.writable:e(t.writable):void 0;return x({readable:i,writable:r})}const n=null===t||void 0===t?void 0:t.then;if("function"===typeof n){let e;return R(n,t,(t=>{null!=t&&e.push(t),e.push(null)}),(t=>{g(e,t)})),e=new T({objectMode:!0,writable:!1,read(){}})}throw new p(i,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],t)}},41927:function(e,t,i){const r=i(34155),{AbortError:n,codes:o}=i(33555),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:s}=o,{kEmptyObject:l,once:d}=i(61357),{validateAbortSignal:c,validateFunction:u,validateObject:h,validateBoolean:f}=i(79395),{Promise:p,PromisePrototypeThen:b}=i(37808),{isClosed:g,isReadable:m,isReadableNodeStream:y,isReadableStream:w,isReadableFinished:_,isReadableErrored:v,isWritable:S,isWritableNodeStream:E,isWritableStream:R,isWritableFinished:T,isWritableErrored:A,isNodeStream:x,willEmitClose:N,kIsClosedPromise:C}=i(74451);function I(e){return e.setHeader&&"function"===typeof e.abort}const D=()=>{};function k(e,t,i){var o,f;if(2===arguments.length?(i=t,t=l):null==t?t=l:h(t,"options"),u(i,"callback"),c(t.signal,"options.signal"),i=d(i),w(e)||R(e))return P(e,t,i);if(!x(e))throw new a("stream",["ReadableStream","WritableStream","Stream"],e);const p=null!==(o=t.readable)&&void 0!==o?o:y(e),b=null!==(f=t.writable)&&void 0!==f?f:E(e),C=e._writableState,k=e._readableState,$=()=>{e.writable||j()};let M=N(e)&&y(e)===p&&E(e)===b,O=T(e,!1);const j=()=>{O=!0,e.destroyed&&(M=!1),(!M||e.readable&&!p)&&(p&&!L||i.call(e))};let L=_(e,!1);const F=()=>{L=!0,e.destroyed&&(M=!1),(!M||e.writable&&!b)&&(b&&!O||i.call(e))},W=t=>{i.call(e,t)};let H=g(e);const B=()=>{H=!0;const t=A(e)||v(e);return t&&"boolean"!==typeof t?i.call(e,t):p&&!L&&y(e,!0)&&!_(e,!1)?i.call(e,new s):!b||O||T(e,!1)?void i.call(e):i.call(e,new s)},U=()=>{H=!0;const t=A(e)||v(e);if(t&&"boolean"!==typeof t)return i.call(e,t);i.call(e)},V=()=>{e.req.on("finish",j)};I(e)?(e.on("complete",j),M||e.on("abort",B),e.req?V():e.on("request",V)):b&&!C&&(e.on("end",$),e.on("close",$)),M||"boolean"!==typeof e.aborted||e.on("aborted",B),e.on("end",F),e.on("finish",j),!1!==t.error&&e.on("error",W),e.on("close",B),H?r.nextTick(B):null!==C&&void 0!==C&&C.errorEmitted||null!==k&&void 0!==k&&k.errorEmitted?M||r.nextTick(U):(p||M&&!m(e)||!O&&!1!==S(e))&&(b||M&&!S(e)||!L&&!1!==m(e))?k&&e.req&&e.aborted&&r.nextTick(U):r.nextTick(U);const G=()=>{i=D,e.removeListener("aborted",B),e.removeListener("complete",j),e.removeListener("abort",B),e.removeListener("request",V),e.req&&e.req.removeListener("finish",j),e.removeListener("end",$),e.removeListener("close",$),e.removeListener("finish",j),e.removeListener("end",F),e.removeListener("error",W),e.removeListener("close",B)};if(t.signal&&!H){const o=()=>{const r=i;G(),r.call(e,new n(void 0,{cause:t.signal.reason}))};if(t.signal.aborted)r.nextTick(o);else{const r=i;i=d(((...i)=>{t.signal.removeEventListener("abort",o),r.apply(e,i)})),t.signal.addEventListener("abort",o)}}return G}function P(e,t,i){let o=!1,a=D;if(t.signal)if(a=()=>{o=!0,i.call(e,new n(void 0,{cause:t.signal.reason}))},t.signal.aborted)r.nextTick(a);else{const r=i;i=d(((...i)=>{t.signal.removeEventListener("abort",a),r.apply(e,i)})),t.signal.addEventListener("abort",a)}const s=(...t)=>{o||r.nextTick((()=>i.apply(e,t)))};return b(e[C].promise,s,s),D}function $(e,t){var i;let r=!1;return null===t&&(t=l),null!==(i=t)&&void 0!==i&&i.cleanup&&(f(t.cleanup,"cleanup"),r=t.cleanup),new p(((i,n)=>{const o=k(e,t,(e=>{r&&o(),e?n(e):i()}))}))}e.exports=k,e.exports.finished=$},57722:function(e,t,i){"use strict";const r=i(34155),{PromisePrototypeThen:n,SymbolAsyncIterator:o,SymbolIterator:a}=i(37808),{Buffer:s}=i(48764),{ERR_INVALID_ARG_TYPE:l,ERR_STREAM_NULL_VALUES:d}=i(33555).codes;function c(e,t,i){let c,u;if("string"===typeof t||t instanceof s)return new e({objectMode:!0,...i,read(){this.push(t),this.push(null)}});if(t&&t[o])u=!0,c=t[o]();else{if(!t||!t[a])throw new l("iterable",["Iterable"],t);u=!1,c=t[a]()}const h=new e({objectMode:!0,highWaterMark:1,...i});let f=!1;async function p(e){const t=void 0!==e&&null!==e,i="function"===typeof c.throw;if(t&&i){const{value:t,done:i}=await c.throw(e);if(await t,i)return}if("function"===typeof c.return){const{value:e}=await c.return();await e}}async function b(){for(;;){try{const{value:e,done:t}=u?await c.next():c.next();if(t)h.push(null);else{const t=e&&"function"===typeof e.then?await e:e;if(null===t)throw f=!1,new d;if(h.push(t))continue;f=!1}}catch(e){h.destroy(e)}break}}return h._read=function(){f||(f=!0,b())},h._destroy=function(e,t){n(p(e),(()=>r.nextTick(t,e)),(i=>r.nextTick(t,i||e)))},h}e.exports=c},16618:function(e,t,i){"use strict";const{ArrayIsArray:r,ObjectSetPrototypeOf:n}=i(37808),{EventEmitter:o}=i(17187);function a(e){o.call(this,e)}function s(e,t,i){if("function"===typeof e.prependListener)return e.prependListener(t,i);e._events&&e._events[t]?r(e._events[t])?e._events[t].unshift(i):e._events[t]=[i,e._events[t]]:e.on(t,i)}n(a.prototype,o.prototype),n(a,o),a.prototype.pipe=function(e,t){const i=this;function r(t){e.writable&&!1===e.write(t)&&i.pause&&i.pause()}function n(){i.readable&&i.resume&&i.resume()}i.on("data",r),e.on("drain",n),e._isStdio||t&&!1===t.end||(i.on("end",l),i.on("close",d));let a=!1;function l(){a||(a=!0,e.end())}function d(){a||(a=!0,"function"===typeof e.destroy&&e.destroy())}function c(e){u(),0===o.listenerCount(this,"error")&&this.emit("error",e)}function u(){i.removeListener("data",r),e.removeListener("drain",n),i.removeListener("end",l),i.removeListener("close",d),i.removeListener("error",c),e.removeListener("error",c),i.removeListener("end",u),i.removeListener("close",u),e.removeListener("close",u)}return s(i,"error",c),s(e,"error",c),i.on("end",u),i.on("close",u),e.on("close",u),e.emit("pipe",i),e},e.exports={Stream:a,prependListener:s}},83093:function(e,t,i){"use strict";const r=globalThis.AbortController||i(28599).AbortController,{codes:{ERR_INVALID_ARG_VALUE:n,ERR_INVALID_ARG_TYPE:o,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:s},AbortError:l}=i(33555),{validateAbortSignal:d,validateInteger:c,validateObject:u}=i(79395),h=i(37808).Symbol("kWeak"),{finished:f}=i(41927),p=i(72982),{addAbortSignalNoValidate:b}=i(1163),{isWritable:g,isNodeStream:m}=i(74451),{ArrayPrototypePush:y,MathFloor:w,Number:_,NumberIsNaN:v,Promise:S,PromiseReject:E,PromisePrototypeThen:R,Symbol:T}=i(37808),A=T("kEmpty"),x=T("kEof");function N(e,t){if(null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),m(e)&&!g(e))throw new n("stream",e,"must be writable");const i=p(this,e);return null!==t&&void 0!==t&&t.signal&&b(t.signal,i),i}function C(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal");let i=1;return null!=(null===t||void 0===t?void 0:t.concurrency)&&(i=w(t.concurrency)),c(i,"concurrency",1),async function*(){var n,o;const a=new r,s=this,d=[],c=a.signal,u={signal:c},h=()=>a.abort();let f,p;null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted&&h(),null===t||void 0===t||null===(o=t.signal)||void 0===o||o.addEventListener("abort",h);let b=!1;function g(){b=!0}async function m(){try{for await(let t of s){var r;if(b)return;if(c.aborted)throw new l;try{t=e(t,u)}catch(o){t=E(o)}t!==A&&("function"===typeof(null===(r=t)||void 0===r?void 0:r.catch)&&t.catch(g),d.push(t),f&&(f(),f=null),!b&&d.length&&d.length>=i&&await new S((e=>{p=e})))}d.push(x)}catch(o){const e=E(o);R(e,void 0,g),d.push(e)}finally{var n;b=!0,f&&(f(),f=null),null===t||void 0===t||null===(n=t.signal)||void 0===n||n.removeEventListener("abort",h)}}m();try{while(1){while(d.length>0){const e=await d[0];if(e===x)return;if(c.aborted)throw new l;e!==A&&(yield e),d.shift(),p&&(p(),p=null)}await new S((e=>{f=e}))}}finally{a.abort(),b=!0,p&&(p(),p=null)}}.call(this)}function I(e=void 0){return null!=e&&u(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal"),async function*(){let t=0;for await(const r of this){var i;if(null!==e&&void 0!==e&&null!==(i=e.signal)&&void 0!==i&&i.aborted)throw new l({cause:e.signal.reason});yield[t++,r]}}.call(this)}async function D(e,t=void 0){for await(const i of M.call(this,e,t))return!0;return!1}async function k(e,t=void 0){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);return!await D.call(this,(async(...t)=>!await e(...t)),t)}async function P(e,t){for await(const i of M.call(this,e,t))return i}async function $(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function i(t,i){return await e(t,i),A}for await(const r of C.call(this,i,t));}function M(e,t){if("function"!==typeof e)throw new o("fn",["Function","AsyncFunction"],e);async function i(t,i){return await e(t,i)?t:A}return C.call(this,i,t)}class O extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function j(e,t,i){var n;if("function"!==typeof e)throw new o("reducer",["Function","AsyncFunction"],e);null!=i&&u(i,"options"),null!=(null===i||void 0===i?void 0:i.signal)&&d(i.signal,"options.signal");let a=arguments.length>1;if(null!==i&&void 0!==i&&null!==(n=i.signal)&&void 0!==n&&n.aborted){const e=new l(void 0,{cause:i.signal.reason});throw this.once("error",(()=>{})),await f(this.destroy(e)),e}const s=new r,c=s.signal;if(null!==i&&void 0!==i&&i.signal){const e={once:!0,[h]:this};i.signal.addEventListener("abort",(()=>s.abort()),e)}let p=!1;try{for await(const r of this){var b;if(p=!0,null!==i&&void 0!==i&&null!==(b=i.signal)&&void 0!==b&&b.aborted)throw new l;a?t=await e(t,r,{signal:c}):(t=r,a=!0)}if(!p&&!a)throw new O}finally{s.abort()}return t}async function L(e){null!=e&&u(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&d(e.signal,"options.signal");const t=[];for await(const r of this){var i;if(null!==e&&void 0!==e&&null!==(i=e.signal)&&void 0!==i&&i.aborted)throw new l(void 0,{cause:e.signal.reason});y(t,r)}return t}function F(e,t){const i=C.call(this,e,t);return async function*(){for await(const e of i)yield*e}.call(this)}function W(e){if(e=_(e),v(e))return 0;if(e<0)throw new s("number",">= 0",e);return e}function H(e,t=void 0){return null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=W(e),async function*(){var i;if(null!==t&&void 0!==t&&null!==(i=t.signal)&&void 0!==i&&i.aborted)throw new l;for await(const n of this){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;e--<=0&&(yield n)}}.call(this)}function B(e,t=void 0){return null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&d(t.signal,"options.signal"),e=W(e),async function*(){var i;if(null!==t&&void 0!==t&&null!==(i=t.signal)&&void 0!==i&&i.aborted)throw new l;for await(const n of this){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;if(!(e-- >0))return;yield n}}.call(this)}e.exports.streamReturningOperators={asIndexedPairs:I,drop:H,filter:M,flatMap:F,map:C,take:B,compose:N},e.exports.promiseReturningOperators={every:k,forEach:$,reduce:j,toArray:L,some:D,find:P}},66541:function(e,t,i){"use strict";const{ObjectSetPrototypeOf:r}=i(37808);e.exports=o;const n=i(2595);function o(e){if(!(this instanceof o))return new o(e);n.call(this,e)}r(o.prototype,n.prototype),r(o,n),o.prototype._transform=function(e,t,i){i(null,e)}},33298:function(e,t,i){const r=i(34155),{ArrayIsArray:n,Promise:o,SymbolAsyncIterator:a}=i(37808),s=i(41927),{once:l}=i(61357),d=i(55306),c=i(72664),{aggregateTwoErrors:u,codes:{ERR_INVALID_ARG_TYPE:h,ERR_INVALID_RETURN_VALUE:f,ERR_MISSING_ARGS:p,ERR_STREAM_DESTROYED:b,ERR_STREAM_PREMATURE_CLOSE:g},AbortError:m}=i(33555),{validateFunction:y,validateAbortSignal:w}=i(79395),{isIterable:_,isReadable:v,isReadableNodeStream:S,isNodeStream:E,isTransformStream:R,isWebStream:T,isReadableStream:A,isReadableEnded:x}=i(74451),N=globalThis.AbortController||i(28599).AbortController;let C,I;function D(e,t,i){let r=!1;e.on("close",(()=>{r=!0}));const n=s(e,{readable:t,writable:i},(e=>{r=!e}));return{destroy:t=>{r||(r=!0,d.destroyer(e,t||new b("pipe")))},cleanup:n}}function k(e){return y(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function P(e){if(_(e))return e;if(S(e))return $(e);throw new h("val",["Readable","Iterable","AsyncIterable"],e)}async function*$(e){I||(I=i(37470)),yield*I.prototype[a].call(e)}async function M(e,t,i,{end:r}){let n,a=null;const l=e=>{if(e&&(n=e),a){const e=a;a=null,e()}},d=()=>new o(((e,t)=>{n?t(n):a=()=>{n?t(n):e()}}));t.on("drain",l);const c=s(t,{readable:!1},l);try{t.writableNeedDrain&&await d();for await(const i of e)t.write(i)||await d();r&&t.end(),await d(),i()}catch(h){i(n!==h?u(n,h):h)}finally{c(),t.off("drain",l)}}async function O(e,t,i,{end:r}){R(t)&&(t=t.writable);const n=t.getWriter();try{for await(const t of e)await n.ready,n.write(t).catch((()=>{}));await n.ready,r&&await n.close(),i()}catch(o){try{await n.abort(o),i(o)}catch(o){i(o)}}}function j(...e){return L(e,l(k(e)))}function L(e,t,o){if(1===e.length&&n(e[0])&&(e=e[0]),e.length<2)throw new p("streams");const a=new N,s=a.signal,l=null===o||void 0===o?void 0:o.signal,d=[];function u(){$(new m)}let b,g;w(l,"options.signal"),null===l||void 0===l||l.addEventListener("abort",u);const y=[];let x,I=0;function k(e){$(e,0===--I)}function $(e,i){if(!e||b&&"ERR_STREAM_PREMATURE_CLOSE"!==b.code||(b=e),b||i){while(y.length)y.shift()(b);null===l||void 0===l||l.removeEventListener("abort",u),a.abort(),i&&(b||d.forEach((e=>e())),r.nextTick(t,b,g))}}for(let H=0;H0,G=U||!1!==(null===o||void 0===o?void 0:o.end),q=H===e.length-1;if(E(B)){if(G){const{destroy:X,cleanup:Y}=D(B,U,V);y.push(X),v(B)&&q&&d.push(Y)}function j(e){e&&"AbortError"!==e.name&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code&&k(e)}B.on("error",j),v(B)&&q&&d.push((()=>{B.removeListener("error",j)}))}if(0===H)if("function"===typeof B){if(x=B({signal:s}),!_(x))throw new f("Iterable, AsyncIterable or Stream","source",x)}else x=_(B)||S(B)||R(B)?B:c.from(B);else if("function"===typeof B){var L;if(R(x))x=P(null===(L=x)||void 0===L?void 0:L.readable);else x=P(x);if(x=B(x,{signal:s}),U){if(!_(x,!0))throw new f("AsyncIterable",`transform[${H-1}]`,x)}else{var W;C||(C=i(66541));const z=new C({objectMode:!0}),Z=null===(W=x)||void 0===W?void 0:W.then;if("function"===typeof Z)I++,Z.call(x,(e=>{g=e,null!=e&&z.write(e),G&&z.end(),r.nextTick(k)}),(e=>{z.destroy(e),r.nextTick(k,e)}));else if(_(x,!0))I++,M(x,z,k,{end:G});else{if(!A(x)&&!R(x))throw new f("AsyncIterable or Promise","destination",x);{const J=x.readable||x;I++,M(J,z,k,{end:G})}}x=z;const{destroy:K,cleanup:Q}=D(x,!1,!0);y.push(K),q&&d.push(Q)}}else if(E(B)){if(S(x)){I+=2;const ee=F(x,B,k,{end:G});v(B)&&q&&d.push(ee)}else if(R(x)||A(x)){const te=x.readable||x;I++,M(te,B,k,{end:G})}else{if(!_(x))throw new h("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],x);I++,M(x,B,k,{end:G})}x=B}else if(T(B)){if(S(x))I++,O(P(x),B,k,{end:G});else if(A(x)||_(x))I++,O(x,B,k,{end:G});else{if(!R(x))throw new h("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],x);I++,O(x.readable,B,k,{end:G})}x=B}else x=c.from(B)}return(null!==s&&void 0!==s&&s.aborted||null!==l&&void 0!==l&&l.aborted)&&r.nextTick(u),x}function F(e,t,i,{end:n}){let o=!1;if(t.on("close",(()=>{o||i(new g)})),e.pipe(t,{end:!1}),n){function a(){o=!0,t.end()}x(e)?r.nextTick(a):e.once("end",a)}else i();return s(e,{readable:!0,writable:!1},(t=>{const r=e._readableState;t&&"ERR_STREAM_PREMATURE_CLOSE"===t.code&&r&&r.ended&&!r.errored&&!r.errorEmitted?e.once("end",i).once("error",i):i(t)})),s(t,{readable:!1,writable:!0},i)}e.exports={pipelineImpl:L,pipeline:j}},37470:function(e,t,i){const r=i(34155),{ArrayPrototypeIndexOf:n,NumberIsInteger:o,NumberIsNaN:a,NumberParseInt:s,ObjectDefineProperties:l,ObjectKeys:d,ObjectSetPrototypeOf:c,Promise:u,SafeSet:h,SymbolAsyncIterator:f,Symbol:p}=i(37808);e.exports=F,F.ReadableState=L;const{EventEmitter:b}=i(17187),{Stream:g,prependListener:m}=i(16618),{Buffer:y}=i(48764),{addAbortSignal:w}=i(1163),_=i(41927);let v=i(61357).debuglog("stream",(e=>{v=e}));const S=i(82481),E=i(55306),{getHighWaterMark:R,getDefaultHighWaterMark:T}=i(42109),{aggregateTwoErrors:A,codes:{ERR_INVALID_ARG_TYPE:x,ERR_METHOD_NOT_IMPLEMENTED:N,ERR_OUT_OF_RANGE:C,ERR_STREAM_PUSH_AFTER_EOF:I,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:D}}=i(33555),{validateObject:k}=i(79395),P=p("kPaused"),{StringDecoder:$}=i(32553),M=i(57722);c(F.prototype,g.prototype),c(F,g);const O=()=>{},{errorOrDestroy:j}=E;function L(e,t,r){"boolean"!==typeof r&&(r=t instanceof i(72664)),this.objectMode=!(!e||!e.objectMode),r&&(this.objectMode=this.objectMode||!(!e||!e.readableObjectMode)),this.highWaterMark=e?R(this,e,"readableHighWaterMark",r):T(!1),this.buffer=new S,this.length=0,this.pipes=[],this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.constructed=!0,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this[P]=null,this.errorEmitted=!1,this.emitClose=!e||!1!==e.emitClose,this.autoDestroy=!e||!1!==e.autoDestroy,this.destroyed=!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this.defaultEncoding=e&&e.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.multiAwaitDrain=!1,this.readingMore=!1,this.dataEmitted=!1,this.decoder=null,this.encoding=null,e&&e.encoding&&(this.decoder=new $(e.encoding),this.encoding=e.encoding)}function F(e){if(!(this instanceof F))return new F(e);const t=this instanceof i(72664);this._readableState=new L(e,this,t),e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.construct&&(this._construct=e.construct),e.signal&&!t&&w(e.signal,this)),g.call(this,e),E.construct(this,(()=>{this._readableState.needReadable&&Y(this,this._readableState)}))}function W(e,t,i,r){v("readableAddChunk",t);const n=e._readableState;let o;if(n.objectMode||("string"===typeof t?(i=i||n.defaultEncoding,n.encoding!==i&&(r&&n.encoding?t=y.from(t,i).toString(n.encoding):(t=y.from(t,i),i=""))):t instanceof y?i="":g._isUint8Array(t)?(t=g._uint8ArrayToBuffer(t),i=""):null!=t&&(o=new x("chunk",["string","Buffer","Uint8Array"],t))),o)j(e,o);else if(null===t)n.reading=!1,G(e,n);else if(n.objectMode||t&&t.length>0)if(r)if(n.endEmitted)j(e,new D);else{if(n.destroyed||n.errored)return!1;H(e,n,t,!0)}else if(n.ended)j(e,new I);else{if(n.destroyed||n.errored)return!1;n.reading=!1,n.decoder&&!i?(t=n.decoder.write(t),n.objectMode||0!==t.length?H(e,n,t,!1):Y(e,n)):H(e,n,t,!1)}else r||(n.reading=!1,Y(e,n));return!n.ended&&(n.length0?(t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null,t.dataEmitted=!0,e.emit("data",i)):(t.length+=t.objectMode?1:i.length,r?t.buffer.unshift(i):t.buffer.push(i),t.needReadable&&q(e)),Y(e,t)}F.prototype.destroy=E.destroy,F.prototype._undestroy=E.undestroy,F.prototype._destroy=function(e,t){t(e)},F.prototype[b.captureRejectionSymbol]=function(e){this.destroy(e)},F.prototype.push=function(e,t){return W(this,e,t,!1)},F.prototype.unshift=function(e,t){return W(this,e,t,!0)},F.prototype.isPaused=function(){const e=this._readableState;return!0===e[P]||!1===e.flowing},F.prototype.setEncoding=function(e){const t=new $(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;const i=this._readableState.buffer;let r="";for(const n of i)r+=t.write(n);return i.clear(),""!==r&&i.push(r),this._readableState.length=r.length,this};const B=1073741824;function U(e){if(e>B)throw new C("size","<= 1GiB",e);return e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++,e}function V(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:a(e)?t.flowing&&t.length?t.buffer.first().length:t.length:e<=t.length?e:t.ended?t.length:0}function G(e,t){if(v("onEofChunk"),!t.ended){if(t.decoder){const e=t.decoder.end();e&&e.length&&(t.buffer.push(e),t.length+=t.objectMode?1:e.length)}t.ended=!0,t.sync?q(e):(t.needReadable=!1,t.emittedReadable=!0,X(e))}}function q(e){const t=e._readableState;v("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(v("emitReadable",t.flowing),t.emittedReadable=!0,r.nextTick(X,e))}function X(e){const t=e._readableState;v("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||t.errored||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,te(e)}function Y(e,t){!t.readingMore&&t.constructed&&(t.readingMore=!0,r.nextTick(z,e,t))}function z(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!1===t[P]?t.flowing=!0:e.listenerCount("data")>0?e.resume():t.readableListening||(t.flowing=null)}function Q(e){v("readable nexttick read 0"),e.read(0)}function J(e,t){t.resumeScheduled||(t.resumeScheduled=!0,r.nextTick(ee,e,t))}function ee(e,t){v("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),te(e),t.flowing&&!t.reading&&e.read(0)}function te(e){const t=e._readableState;v("flow",t.flowing);while(t.flowing&&null!==e.read());}function ie(e,t){"function"!==typeof e.read&&(e=F.wrap(e,{objectMode:!0}));const i=re(e,t);return i.stream=e,i}async function*re(e,t){let i,r=O;function n(t){this===e?(r(),r=O):r=t}e.on("readable",n);const o=_(e,{writable:!1},(e=>{i=e?A(i,e):null,r(),r=O}));try{while(1){const t=e.destroyed?null:e.read();if(null!==t)yield t;else{if(i)throw i;if(null===i)return;await new u(n)}}}catch(a){throw i=A(i,a),i}finally{!i&&!1===(null===t||void 0===t?void 0:t.destroyOnReturn)||void 0!==i&&!e._readableState.autoDestroy?(e.off("readable",n),o()):E.destroyer(e,null)}}function ne(e,t){if(0===t.length)return null;let i;return t.objectMode?i=t.buffer.shift():!e||e>=t.length?(i=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):i=t.buffer.consume(e,t.decoder),i}function oe(e){const t=e._readableState;v("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,r.nextTick(ae,t,e))}function ae(e,t){if(v("endReadableNT",e.endEmitted,e.length),!e.errored&&!e.closeEmitted&&!e.endEmitted&&0===e.length)if(e.endEmitted=!0,t.emit("end"),t.writable&&!1===t.allowHalfOpen)r.nextTick(se,t);else if(e.autoDestroy){const e=t._writableState,i=!e||e.autoDestroy&&(e.finished||!1===e.writable);i&&t.destroy()}}function se(e){const t=e.writable&&!e.writableEnded&&!e.destroyed;t&&e.end()}let le;function de(){return void 0===le&&(le={}),le}F.prototype.read=function(e){v("read",e),void 0===e?e=NaN:o(e)||(e=s(e,10));const t=this._readableState,i=e;if(e>t.highWaterMark&&(t.highWaterMark=U(e)),0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return v("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?oe(this):q(this),null;if(e=V(e,t),0===e&&t.ended)return 0===t.length&&oe(this),null;let r,n=t.needReadable;if(v("need readable",n),(0===t.length||t.length-e0?ne(e,t):null,null===r?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null),0===t.length&&(t.ended||(t.needReadable=!0),i!==e&&t.ended&&oe(this)),null===r||t.errorEmitted||t.closeEmitted||(t.dataEmitted=!0,this.emit("data",r)),r},F.prototype._read=function(e){throw new N("_read()")},F.prototype.pipe=function(e,t){const i=this,n=this._readableState;1===n.pipes.length&&(n.multiAwaitDrain||(n.multiAwaitDrain=!0,n.awaitDrainWriters=new h(n.awaitDrainWriters?[n.awaitDrainWriters]:[]))),n.pipes.push(e),v("pipe count=%d opts=%j",n.pipes.length,t);const o=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr,a=o?l:w;function s(e,t){v("onunpipe"),e===i&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,u())}function l(){v("onend"),e.end()}let d;n.endEmitted?r.nextTick(a):i.once("end",a),e.on("unpipe",s);let c=!1;function u(){v("cleanup"),e.removeListener("close",g),e.removeListener("finish",y),d&&e.removeListener("drain",d),e.removeListener("error",b),e.removeListener("unpipe",s),i.removeListener("end",l),i.removeListener("end",w),i.removeListener("data",p),c=!0,d&&n.awaitDrainWriters&&(!e._writableState||e._writableState.needDrain)&&d()}function f(){c||(1===n.pipes.length&&n.pipes[0]===e?(v("false write response, pause",0),n.awaitDrainWriters=e,n.multiAwaitDrain=!1):n.pipes.length>1&&n.pipes.includes(e)&&(v("false write response, pause",n.awaitDrainWriters.size),n.awaitDrainWriters.add(e)),i.pause()),d||(d=Z(i,e),e.on("drain",d))}function p(t){v("ondata");const i=e.write(t);v("dest.write",i),!1===i&&f()}function b(t){if(v("onerror",t),w(),e.removeListener("error",b),0===e.listenerCount("error")){const i=e._writableState||e._readableState;i&&!i.errorEmitted?j(e,t):e.emit("error",t)}}function g(){e.removeListener("finish",y),w()}function y(){v("onfinish"),e.removeListener("close",g),w()}function w(){v("unpipe"),i.unpipe(e)}return i.on("data",p),m(e,"error",b),e.once("close",g),e.once("finish",y),e.emit("pipe",i),!0===e.writableNeedDrain?n.flowing&&f():n.flowing||(v("pipe resume"),i.resume()),e},F.prototype.unpipe=function(e){const t=this._readableState,i={hasUnpiped:!1};if(0===t.pipes.length)return this;if(!e){const e=t.pipes;t.pipes=[],this.pause();for(let t=0;t0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,v("on readable",n.length,n.reading),n.length?q(this):n.reading||r.nextTick(Q,this))),i},F.prototype.addListener=F.prototype.on,F.prototype.removeListener=function(e,t){const i=g.prototype.removeListener.call(this,e,t);return"readable"===e&&r.nextTick(K,this),i},F.prototype.off=F.prototype.removeListener,F.prototype.removeAllListeners=function(e){const t=g.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||r.nextTick(K,this),t},F.prototype.resume=function(){const e=this._readableState;return e.flowing||(v("resume"),e.flowing=!e.readableListening,J(this,e)),e[P]=!1,this},F.prototype.pause=function(){return v("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(v("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[P]=!0,this},F.prototype.wrap=function(e){let t=!1;e.on("data",(i=>{!this.push(i)&&e.pause&&(t=!0,e.pause())})),e.on("end",(()=>{this.push(null)})),e.on("error",(e=>{j(this,e)})),e.on("close",(()=>{this.destroy()})),e.on("destroy",(()=>{this.destroy()})),this._read=()=>{t&&e.resume&&(t=!1,e.resume())};const i=d(e);for(let r=1;r{t?e?e(t):this.destroy(t):(null!=i&&this.push(i),this.push(null),e&&e())}))}function u(){this._final!==c&&c.call(this)}d.prototype._final=c,d.prototype._transform=function(e,t,i){throw new o("_transform()")},d.prototype._write=function(e,t,i){const r=this._readableState,n=this._writableState,o=r.length;this._transform(e,t,((e,t)=>{e?i(e):(null!=t&&this.push(t),n.ended||o===r.length||r.length{const e=this._writableState;e.writing||U(this,e),X(this,e)}))}function M(e,t,i,n){const o=e._writableState;if("function"===typeof i)n=i,i=o.defaultEncoding;else{if(i){if("buffer"!==i&&!b.isEncoding(i))throw new N(i)}else i=o.defaultEncoding;"function"!==typeof n&&(n=I)}if(null===t)throw new A;if(!o.objectMode)if("string"===typeof t)!1!==o.decodeStrings&&(t=b.from(t,i),i="buffer");else if(t instanceof b)i="buffer";else{if(!p._isUint8Array(t))throw new _("chunk",["string","Buffer","Uint8Array"],t);t=p._uint8ArrayToBuffer(t),i="buffer"}let a;return o.ending?a=new x:o.destroyed&&(a=new R("write")),a?(r.nextTick(n,a),C(e,a,!0),a):(o.pendingcb++,O(e,o,t,i,n))}function O(e,t,i,r,n){const o=t.objectMode?1:i.length;t.length+=o;const a=t.lengthi.bufferedIndex&&U(e,i),n?null!==i.afterWriteTickInfo&&i.afterWriteTickInfo.cb===o?i.afterWriteTickInfo.count++:(i.afterWriteTickInfo={count:1,cb:o,stream:e,state:i},r.nextTick(W,i.afterWriteTickInfo)):H(e,i,1,o))):C(e,new S)}function W({stream:e,state:t,count:i,cb:r}){return t.afterWriteTickInfo=null,H(e,t,i,r)}function H(e,t,i,r){const n=!t.ending&&!e.destroyed&&0===t.length&&t.needDrain;n&&(t.needDrain=!1,e.emit("drain"));while(i-- >0)t.pendingcb--,r();t.destroyed&&B(t),X(e,t)}function B(e){if(e.writing)return;for(let n=e.bufferedIndex;n1&&e._writev){t.pendingcb-=a-1;const r=t.allNoop?I:e=>{for(let t=s;t256?(i.splice(0,s),t.bufferedIndex=0):t.bufferedIndex=s}t.bufferProcessing=!1}function V(e){return e.ending&&!e.destroyed&&e.constructed&&0===e.length&&!e.errored&&0===e.buffered.length&&!e.finished&&!e.writing&&!e.errorEmitted&&!e.closeEmitted}function G(e,t){let i=!1;function n(n){if(i)C(e,null!==n&&void 0!==n?n:S());else if(i=!0,t.pendingcb--,n){const i=t[D].splice(0);for(let e=0;e{V(t)?Y(e,t):t.pendingcb--}),e,t)):V(t)&&(t.pendingcb++,Y(e,t))))}function Y(e,t){t.pendingcb--,t.finished=!0;const i=t[D].splice(0);for(let r=0;r>>0}const C=/^[0-7]+$/,I="must be a 32-bit unsigned integer or an octal string";function D(e,t,i){if("undefined"===typeof e&&(e=i),"string"===typeof e){if(null===f(C,e))throw new _(t,e,I);e=u(e,8)}return $(e,t),e}const k=m(((e,t,i=c,r=d)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new v(t,"an integer",e);if(er)throw new v(t,`>= ${i} && <= ${r}`,e)})),P=m(((e,t,i=-2147483648,r=2147483647)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new v(t,"an integer",e);if(er)throw new v(t,`>= ${i} && <= ${r}`,e)})),$=m(((e,t,i=!1)=>{if("number"!==typeof e)throw new w(t,"number",e);if(!s(e))throw new v(t,"an integer",e);const r=i?1:0,n=4294967295;if(en)throw new v(t,`>= ${r} && <= ${n}`,e)}));function M(e,t){if("string"!==typeof e)throw new w(t,"string",e)}function O(e,t,i=void 0,r){if("number"!==typeof e)throw new w(t,"number",e);if(null!=i&&er||(null!=i||null!=r)&&l(e))throw new v(t,`${null!=i?`>= ${i}`:""}${null!=i&&null!=r?" && ":""}${null!=r?`<= ${r}`:""}`,e)}const j=m(((e,t,i)=>{if(!n(i,e)){const r=o(a(i,(e=>"string"===typeof e?`'${e}'`:p(e))),", "),n="must be one of: "+r;throw new _(t,e,n)}}));function L(e,t){if("boolean"!==typeof e)throw new w(t,"boolean",e)}function F(e,t,i){return null!=e&&h(e,t)?e[t]:i}const W=m(((e,t,i=null)=>{const n=F(i,"allowArray",!1),o=F(i,"allowFunction",!1),a=F(i,"nullable",!1);if(!a&&null===e||!n&&r(e)||"object"!==typeof e&&(!o||"function"!==typeof e))throw new w(t,"Object",e)})),H=m(((e,t)=>{if(null!=e&&"object"!==typeof e&&"function"!==typeof e)throw new w(t,"a dictionary",e)})),B=m(((e,t,i=0)=>{if(!r(e))throw new w(t,"Array",e);if(e.length{if(!T(e))throw new w(t,["Buffer","TypedArray","DataView"],e)}));function X(e,t){const i=E(t),r=e.length;if("hex"===i&&r%2!==0)throw new _("encoding",t,`is invalid for data of length ${r}`)}function Y(e,t="Port",i=!0){if("number"!==typeof e&&"string"!==typeof e||"string"===typeof e&&0===g(e).length||+e!==+e>>>0||e>65535||0===e&&!i)throw new y(t,e,i);return 0|e}const z=m(((e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new w(t,"AbortSignal",e)})),Z=m(((e,t)=>{if("function"!==typeof e)throw new w(t,"Function",e)})),K=m(((e,t)=>{if("function"!==typeof e||R(e))throw new w(t,"Function",e)})),Q=m(((e,t)=>{if(void 0!==e)throw new w(t,"undefined",e)}));function J(e,t,i){if(!n(i,e))throw new w(t,`('${o(i,"|")}')`,e)}const ee=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function te(e,t){if("undefined"===typeof e||!f(ee,e))throw new _(t,e,'must be an array or string of format "; rel=preload; as=style"')}function ie(e){if("string"===typeof e)return te(e,"hints"),e;if(r(e)){const t=e.length;let i="";if(0===t)return i;for(let r=0;r; rel=preload; as=style"')}e.exports={isInt32:x,isUint32:N,parseFileMode:D,validateArray:B,validateStringArray:U,validateBooleanArray:V,validateBoolean:L,validateBuffer:q,validateDictionary:H,validateEncoding:X,validateFunction:Z,validateInt32:P,validateInteger:k,validateNumber:O,validateObject:W,validateOneOf:j,validatePlainFunction:K,validatePort:Y,validateSignalName:G,validateString:M,validateUint32:$,validateUndefined:Q,validateUnion:J,validateAbortSignal:z,validateLinkHeaderValue:ie}},24126:function(e,t,i){"use strict";const r=i(93441),n=i(10181),o=r.Readable.destroy;e.exports=r.Readable,e.exports._uint8ArrayToBuffer=r._uint8ArrayToBuffer,e.exports._isUint8Array=r._isUint8Array,e.exports.isDisturbed=r.isDisturbed,e.exports.isErrored=r.isErrored,e.exports.isReadable=r.isReadable,e.exports.Readable=r.Readable,e.exports.Writable=r.Writable,e.exports.Duplex=r.Duplex,e.exports.Transform=r.Transform,e.exports.PassThrough=r.PassThrough,e.exports.addAbortSignal=r.addAbortSignal,e.exports.finished=r.finished,e.exports.destroy=r.destroy,e.exports.destroy=o,e.exports.pipeline=r.pipeline,e.exports.compose=r.compose,Object.defineProperty(r,"promises",{configurable:!0,enumerable:!0,get(){return n}}),e.exports.Stream=r.Stream,e.exports["default"]=e.exports},33555:function(e,t,i){"use strict";const{format:r,inspect:n,AggregateError:o}=i(61357),a=globalThis.AggregateError||o,s=Symbol("kIsNodeError"),l=["string","function","number","object","Function","Object","boolean","bigint","symbol"],d=/^([A-Z][a-z0-9]*)+$/,c="__node_internal_",u={};function h(e,t){if(!e)throw new u.ERR_INTERNAL_ASSERTION(t)}function f(e){let t="",i=e.length;const r="-"===e[0]?1:0;for(;i>=r+4;i-=3)t=`_${e.slice(i-3,i)}${t}`;return`${e.slice(0,i)}${t}`}function p(e,t,i){if("function"===typeof t)return h(t.length<=i.length,`Code: ${e}; The provided arguments length (${i.length}) does not match the required ones (${t.length}).`),t(...i);const n=(t.match(/%[dfijoOs]/g)||[]).length;return h(n===i.length,`Code: ${e}; The provided arguments length (${i.length}) does not match the required ones (${n}).`),0===i.length?t:r(t,...i)}function b(e,t,i){i||(i=Error);class r extends i{constructor(...i){super(p(e,t,i))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(r.prototype,{name:{value:i.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),r.prototype.code=e,r.prototype[s]=!0,u[e]=r}function g(e){const t=c+e.name;return Object.defineProperty(e,"name",{value:t}),e}function m(e,t){if(e&&t&&e!==t){if(Array.isArray(t.errors))return t.errors.push(e),t;const i=new a([t,e],t.message);return i.code=t.code,i}return e||t}class y extends Error{constructor(e="The operation was aborted",t=void 0){if(void 0!==t&&"object"!==typeof t)throw new u.ERR_INVALID_ARG_TYPE("options","Object",t);super(e,t),this.code="ABORT_ERR",this.name="AbortError"}}b("ERR_ASSERTION","%s",Error),b("ERR_INVALID_ARG_TYPE",((e,t,i)=>{h("string"===typeof e,"'name' must be a string"),Array.isArray(t)||(t=[t]);let r="The ";e.endsWith(" argument")?r+=`${e} `:r+=`"${e}" ${e.includes(".")?"property":"argument"} `,r+="must be ";const o=[],a=[],s=[];for(const n of t)h("string"===typeof n,"All expected entries have to be of type string"),l.includes(n)?o.push(n.toLowerCase()):d.test(n)?a.push(n):(h("object"!==n,'The value "object" should be written as "Object"'),s.push(n));if(a.length>0){const e=o.indexOf("object");-1!==e&&(o.splice(o,e,1),a.push("Object"))}if(o.length>0){switch(o.length){case 1:r+=`of type ${o[0]}`;break;case 2:r+=`one of type ${o[0]} or ${o[1]}`;break;default:{const e=o.pop();r+=`one of type ${o.join(", ")}, or ${e}`}}(a.length>0||s.length>0)&&(r+=" or ")}if(a.length>0){switch(a.length){case 1:r+=`an instance of ${a[0]}`;break;case 2:r+=`an instance of ${a[0]} or ${a[1]}`;break;default:{const e=a.pop();r+=`an instance of ${a.join(", ")}, or ${e}`}}s.length>0&&(r+=" or ")}switch(s.length){case 0:break;case 1:s[0].toLowerCase()!==s[0]&&(r+="an "),r+=`${s[0]}`;break;case 2:r+=`one of ${s[0]} or ${s[1]}`;break;default:{const e=s.pop();r+=`one of ${s.join(", ")}, or ${e}`}}if(null==i)r+=`. Received ${i}`;else if("function"===typeof i&&i.name)r+=`. Received function ${i.name}`;else if("object"===typeof i){var c;if(null!==(c=i.constructor)&&void 0!==c&&c.name)r+=`. Received an instance of ${i.constructor.name}`;else{const e=n(i,{depth:-1});r+=`. Received ${e}`}}else{let e=n(i,{colors:!1});e.length>25&&(e=`${e.slice(0,25)}...`),r+=`. Received type ${typeof i} (${e})`}return r}),TypeError),b("ERR_INVALID_ARG_VALUE",((e,t,i="is invalid")=>{let r=n(t);r.length>128&&(r=r.slice(0,128)+"...");const o=e.includes(".")?"property":"argument";return`The ${o} '${e}' ${i}. Received ${r}`}),TypeError),b("ERR_INVALID_RETURN_VALUE",((e,t,i)=>{var r;const n=null!==i&&void 0!==i&&null!==(r=i.constructor)&&void 0!==r&&r.name?`instance of ${i.constructor.name}`:"type "+typeof i;return`Expected ${e} to be returned from the "${t}" function but got ${n}.`}),TypeError),b("ERR_MISSING_ARGS",((...e)=>{let t;h(e.length>0,"At least one arg needs to be specified");const i=e.length;switch(e=(Array.isArray(e)?e:[e]).map((e=>`"${e}"`)).join(" or "),i){case 1:t+=`The ${e[0]} argument`;break;case 2:t+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const i=e.pop();t+=`The ${e.join(", ")}, and ${i} arguments`}break}return`${t} must be specified`}),TypeError),b("ERR_OUT_OF_RANGE",((e,t,i)=>{let r;return h(t,'Missing "range" argument'),Number.isInteger(i)&&Math.abs(i)>2**32?r=f(String(i)):"bigint"===typeof i?(r=String(i),(i>2n**32n||i<-(2n**32n))&&(r=f(r)),r+="n"):r=n(i),`The value of "${e}" is out of range. It must be ${t}. Received ${r}`}),RangeError),b("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),b("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),b("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),b("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),b("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),b("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),b("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),b("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),b("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),b("ERR_STREAM_WRITE_AFTER_END","write after end",Error),b("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:y,aggregateTwoErrors:g(m),hideStackFrames:g,codes:u}},37808:function(e){"use strict";e.exports={ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,t){return e.includes(t)},ArrayPrototypeIndexOf(e,t){return e.indexOf(t)},ArrayPrototypeJoin(e,t){return e.join(t)},ArrayPrototypeMap(e,t){return e.map(t)},ArrayPrototypePop(e,t){return e.pop(t)},ArrayPrototypePush(e,t){return e.push(t)},ArrayPrototypeSlice(e,t,i){return e.slice(t,i)},Error:Error,FunctionPrototypeCall(e,t,...i){return e.call(t,...i)},FunctionPrototypeSymbolHasInstance(e,t){return Function.prototype[Symbol.hasInstance].call(e,t)},MathFloor:Math.floor,Number:Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(e,t){return Object.defineProperties(e,t)},ObjectDefineProperty(e,t,i){return Object.defineProperty(e,t,i)},ObjectGetOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,t){return Object.setPrototypeOf(e,t)},Promise:Promise,PromisePrototypeCatch(e,t){return e.catch(t)},PromisePrototypeThen(e,t,i){return e.then(t,i)},PromiseReject(e){return Promise.reject(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,t){return e.test(t)},SafeSet:Set,String:String,StringPrototypeSlice(e,t,i){return e.slice(t,i)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol:Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(e,t,i){return e.set(t,i)},Uint8Array:Uint8Array}},61357:function(e,t,i){"use strict";const r=i(48764),n=Object.getPrototypeOf((async function(){})).constructor,o=globalThis.Blob||r.Blob,a="undefined"!==typeof o?function(e){return e instanceof o}:function(e){return!1};class s extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t="";for(let i=0;i{e=i,t=r}));return{promise:i,resolve:e,reject:t}},promisify(e){return new Promise(((t,i)=>{e(((e,...r)=>e?i(e):t(...r)))}))},debuglog(){return function(){}},format(e,...t){return e.replace(/%([sdifj])/g,(function(...[e,i]){const r=t.shift();if("f"===i)return r.toFixed(6);if("j"===i)return JSON.stringify(r);if("s"===i&&"object"===typeof r){const e=r.constructor!==Object?r.constructor.name:"";return`${e} {}`.trim()}return r.toString()}))},inspect(e){switch(typeof e){case"string":if(e.includes("'")){if(!e.includes('"'))return`"${e}"`;if(!e.includes("`")&&!e.includes("${"))return`\`${e}\``}return`'${e}'`;case"number":return isNaN(e)?"NaN":Object.is(e,-0)?String(e):e;case"bigint":return`${String(e)}n`;case"boolean":case"undefined":return String(e);case"object":return"{}"}},types:{isAsyncFunction(e){return e instanceof n},isArrayBufferView(e){return ArrayBuffer.isView(e)}},isBlob:a},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},93441:function(e,t,i){const{Buffer:r}=i(48764),{ObjectDefineProperty:n,ObjectKeys:o,ReflectApply:a}=i(37808),{promisify:{custom:s}}=i(61357),{streamReturningOperators:l,promiseReturningOperators:d}=i(83093),{codes:{ERR_ILLEGAL_CONSTRUCTOR:c}}=i(33555),u=i(72982),{pipeline:h}=i(33298),{destroyer:f}=i(55306),p=i(41927),b=i(10181),g=i(74451),m=e.exports=i(16618).Stream;m.isDisturbed=g.isDisturbed,m.isErrored=g.isErrored,m.isReadable=g.isReadable,m.Readable=i(37470);for(const _ of o(l)){const v=l[_];function y(...e){if(new.target)throw c();return m.Readable.from(a(v,this,e))}n(y,"name",{__proto__:null,value:v.name}),n(y,"length",{__proto__:null,value:v.length}),n(m.Readable.prototype,_,{__proto__:null,value:y,enumerable:!1,configurable:!0,writable:!0})}for(const S of o(d)){const E=d[S];function y(...e){if(new.target)throw c();return a(E,this,e)}n(y,"name",{__proto__:null,value:E.name}),n(y,"length",{__proto__:null,value:E.length}),n(m.Readable.prototype,S,{__proto__:null,value:y,enumerable:!1,configurable:!0,writable:!0})}m.Writable=i(18672),m.Duplex=i(72664),m.Transform=i(2595),m.PassThrough=i(66541),m.pipeline=h;const{addAbortSignal:w}=i(1163);m.addAbortSignal=w,m.finished=p,m.destroy=f,m.compose=u,n(m,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return b}}),n(h,s,{__proto__:null,enumerable:!0,get(){return b.pipeline}}),n(p,s,{__proto__:null,enumerable:!0,get(){return b.finished}}),m.Stream=m,m._isUint8Array=function(e){return e instanceof Uint8Array},m._uint8ArrayToBuffer=function(e){return r.from(e.buffer,e.byteOffset,e.byteLength)}},10181:function(e,t,i){"use strict";const{ArrayPrototypePop:r,Promise:n}=i(37808),{isIterable:o,isNodeStream:a,isWebStream:s}=i(74451),{pipelineImpl:l}=i(33298),{finished:d}=i(41927);function c(...e){return new n(((t,i)=>{let n,d;const c=e[e.length-1];if(c&&"object"===typeof c&&!a(c)&&!o(c)&&!s(c)){const t=r(e);n=t.signal,d=t.end}l(e,((e,r)=>{e?i(e):t(r)}),{signal:n,end:d})}))}i(42830),e.exports={finished:d,pipeline:c}},68912:function(e,t,i){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),n=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||r(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),n(i(9336),t)},9336:function(e,t){"use strict";function i(e,t){t=t||"";const i=t.indexOf("#");if(i>0&&(t=t.substr(0,i)),!e.length){if(t.indexOf(":")<0)throw new Error(`Found invalid baseIRI '${t}' for value '${e}'`);return t}if(e.startsWith("?")){const i=t.indexOf("?");return i>0&&(t=t.substr(0,i)),t+e}if(e.startsWith("#"))return t+e;if(!t.length){const t=e.indexOf(":");if(t<0)throw new Error(`Found invalid relative IRI '${e}' for a missing baseIRI`);return n(e,t)}const o=e.indexOf(":");if(o>=0)return n(e,o);const a=t.indexOf(":");if(a<0)throw new Error(`Found invalid baseIRI '${t}' for value '${e}'`);const s=t.substr(0,a+1);if(0===e.indexOf("//"))return s+n(e,o);let l;if(t.indexOf("//",a)===a+1){if(l=t.indexOf("/",a+3),l<0)return t.length>a+3?t+"/"+n(e,o):s+n(e,o)}else if(l=t.indexOf("/",a+1),l<0)return s+n(e,o);if(0===e.indexOf("/"))return t.substr(0,l)+r(e);let d=t.substr(l);const c=d.lastIndexOf("/");return c>=0&&ce.join(""))).join("/")}function n(e,t){let i=t+1;t>=0?"/"===e[t+1]&&"/"===e[t+2]&&(i=t+3):"/"===e[0]&&"/"===e[1]&&(i=2);const n=e.indexOf("/",i);if(n<0)return e;const o=e.substr(0,n),a=e.substr(n);return o+r(a)}function o(e){return!e||"#"===e||"?"===e||"/"===e}Object.defineProperty(t,"__esModule",{value:!0}),t.removeDotSegmentsOfPath=t.removeDotSegments=t.resolve=void 0,t.resolve=i,t.removeDotSegments=r,t.removeDotSegmentsOfPath=n},21017:function(e,t,i){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),n=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||r(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),n(i(92504),t)},92504:function(e,t){"use strict";function i(){const e="!$&'()*+,;=",t=`[${e}]`,i="%[a-fA-F0-9]{2}",r="([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",n=`${r}\\.${r}\\.${r}\\.${r}`,o="[a-fA-F0-9]{1,4}",a=`(${o}:${o}|${n})`,s=`((${o}:){6}${a}|::(${o}:){5}${a}|(${o})?::(${o}:){4}${a}|((${o}:){0,1}${o})?::(${o}:){3}${a}|((${o}:){0,2}${o})?::(${o}:){2}${a}|((${o}:){0,3}${o})?::${o}:${a}|((${o}:){0,4}${o})?::${a}|((${o}:){0,5}${o})?::${o}|((${o}:){0,6}${o})?::)`,l=`v[a-fA-F0-9]+\\.(${t}|${t}|":)+`,d=`\\[(${s}|${l})\\]`,c="[0-9]*",u="[a-zA-Z][a-zA-Z0-9+\\-.]*",h="-󰀀-󿿽􀀀-􏿽",f=`[${h}]`,p=" -퟿豈-﷏ﷰ-￯𐀀-🿽𠀀-𯿽𰀀-𿿽񀀀-񏿽񐀀-񟿽񠀀-񯿽񰀀-񿿽򀀀-򏿽򐀀-򟿽򠀀-򯿽򰀀-򿿽󀀀-󏿽󐀀-󟿽󡀀-󯿽",b=`a-zA-Z0-9\\-._~${p}`,g=`[${b}]`,m=`(${g}|${i}|${t}|[:@])*`,y=`(${m}|[\\/?])*`,w=`(${m}|${f}|[\\/?])*`,_=`(${m})+`,v=`(${m})*`,S="",E=`${_}(\\/${v})*`,R=`\\/(${_}(\\/${v})*)?`,T=`(\\/${v})*`,A=`(${g}|${i}|${t})*`,x=`(${d}|${n}|${A})`,N=`(${g}|${i}|${t}|:)*`,C=`(${N}@)?${x}(:${c})?`,I=`(\\/\\/${C}${T}|${R}|${E}|${S})`,D=`^${u}:${I}(\\?${w})?(#${y})?$`;return new RegExp(D,"u")}Object.defineProperty(t,"__esModule",{value:!0}),t.validateIri=t.IriValidationStrategy=void 0;const r=i(),n=/^[A-Za-z][\d+-.A-Za-z]*:[^\u0000-\u0020"<>\\^`{|}]*$/u;var o;function a(e,t=o.Strict){switch(t){case o.Strict:return r.test(e)?void 0:new Error(`Invalid IRI according to RFC 3987: '${e}'`);case o.Pragmatic:return n.test(e)?void 0:new Error(`Invalid IRI according to RDF Turtle: '${e}'`);case o.None:return;default:return new Error(`Not supported validation strategy "${t}"`)}}(function(e){e["Strict"]="strict",e["Pragmatic"]="pragmatic",e["None"]="none"})(o=t.IriValidationStrategy||(t.IriValidationStrategy={})),t.validateIri=a},83347:function(e,t){"use strict"; -/** - * Character classes and associated utilities for the 5th edition of XML 1.0. - * - * @author Louis-Dominique Dubeau - * @license MIT - * @copyright Louis-Dominique Dubeau - */Object.defineProperty(t,"__esModule",{value:!0}),t.CHAR="\t\n\r -퟿-�𐀀-􏿿",t.S=" \t\r\n",t.NAME_START_CHAR=":A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿",t.NAME_CHAR="-"+t.NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",t.CHAR_RE=new RegExp("^["+t.CHAR+"]$","u"),t.S_RE=new RegExp("^["+t.S+"]+$","u"),t.NAME_START_CHAR_RE=new RegExp("^["+t.NAME_START_CHAR+"]$","u"),t.NAME_CHAR_RE=new RegExp("^["+t.NAME_CHAR+"]$","u"),t.NAME_RE=new RegExp("^["+t.NAME_START_CHAR+"]["+t.NAME_CHAR+"]*$","u"),t.NMTOKEN_RE=new RegExp("^["+t.NAME_CHAR+"]+$","u");var i=9,r=10,n=13,o=32;function a(e){return e>=o&&e<=55295||e===r||e===n||e===i||e>=57344&&e<=65533||e>=65536&&e<=1114111}function s(e){return e===o||e===r||e===n||e===i}function l(e){return e>=65&&e<=90||e>=97&&e<=122||58===e||95===e||8204===e||8205===e||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function d(e){return l(e)||e>=48&&e<=57||45===e||46===e||183===e||e>=768&&e<=879||e>=8255&&e<=8256}t.S_LIST=[o,r,n,i],t.isChar=a,t.isS=s,t.isNameStartChar=l,t.isNameChar=d},95285:function(e,t){"use strict"; -/** - * Character classes and associated utilities for the 2nd edition of XML 1.1. - * - * @author Louis-Dominique Dubeau - * @license MIT - * @copyright Louis-Dominique Dubeau - */Object.defineProperty(t,"__esModule",{value:!0}),t.CHAR="-퟿-�𐀀-􏿿",t.RESTRICTED_CHAR="-\b\v\f--„†-Ÿ",t.S=" \t\r\n",t.NAME_START_CHAR=":A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿",t.NAME_CHAR="-"+t.NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",t.CHAR_RE=new RegExp("^["+t.CHAR+"]$","u"),t.RESTRICTED_CHAR_RE=new RegExp("^["+t.RESTRICTED_CHAR+"]$","u"),t.S_RE=new RegExp("^["+t.S+"]+$","u"),t.NAME_START_CHAR_RE=new RegExp("^["+t.NAME_START_CHAR+"]$","u"),t.NAME_CHAR_RE=new RegExp("^["+t.NAME_CHAR+"]$","u"),t.NAME_RE=new RegExp("^["+t.NAME_START_CHAR+"]["+t.NAME_CHAR+"]*$","u"),t.NMTOKEN_RE=new RegExp("^["+t.NAME_CHAR+"]+$","u");var i=9,r=10,n=13,o=32;function a(e){return e>=1&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111}function s(e){return e>=1&&e<=8||11===e||12===e||e>=14&&e<=31||e>=127&&e<=132||e>=134&&e<=159}function l(e){return 9===e||10===e||13===e||e>31&&e<127||133===e||e>159&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111}function d(e){return e===o||e===r||e===n||e===i}function c(e){return e>=65&&e<=90||e>=97&&e<=122||58===e||95===e||8204===e||8205===e||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function u(e){return c(e)||e>=48&&e<=57||45===e||46===e||183===e||e>=768&&e<=879||e>=8255&&e<=8256}t.S_LIST=[o,r,n,i],t.isChar=a,t.isRestrictedChar=s,t.isCharAndNotRestricted=l,t.isS=d,t.isNameStartChar=c,t.isNameChar=u},87046:function(e,t){"use strict"; -/** - * Character class utilities for XML NS 1.0 edition 3. - * - * @author Louis-Dominique Dubeau - * @license MIT - * @copyright Louis-Dominique Dubeau - */function i(e){return e>=65&&e<=90||95===e||e>=97&&e<=122||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function r(e){return i(e)||45===e||46===e||e>=48&&e<=57||183===e||e>=768&&e<=879||e>=8255&&e<=8256}Object.defineProperty(t,"__esModule",{value:!0}),t.NC_NAME_START_CHAR="A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿",t.NC_NAME_CHAR="-"+t.NC_NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",t.NC_NAME_START_CHAR_RE=new RegExp("^["+t.NC_NAME_START_CHAR+"]$","u"),t.NC_NAME_CHAR_RE=new RegExp("^["+t.NC_NAME_CHAR+"]$","u"),t.NC_NAME_RE=new RegExp("^["+t.NC_NAME_START_CHAR+"]["+t.NC_NAME_CHAR+"]*$","u"),t.isNCNameStartChar=i,t.isNCNameChar=r},43498:function(e,t,i){"use strict";i.r(t);var r=i(25787);class n extends r.RdfXmlParser{constructor({factory:e,...t}={}){super({...t,dataFactory:e})}}t["default"]=n}}]); -//# sourceMappingURL=498.fa00791c.js.map \ No newline at end of file diff --git a/js/498.fa00791c.js.map b/js/498.fa00791c.js.map deleted file mode 100644 index 5ac33ff..0000000 --- a/js/498.fa00791c.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/498.fa00791c.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@rubensworks/saxes/saxes.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/index.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/BlankNode.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/DataFactory.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/DefaultGraph.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/Literal.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/NamedNode.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/Quad.js","webpack://@zazuko/spex/./node_modules/rdf-data-factory/lib/Variable.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/index.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/lib/ParseError.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/lib/RdfXmlParser.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/compose.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/from.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/operators.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/readable.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/state.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/transform.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/utils.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/streams/writable.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/internal/validators.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/ours/browser.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/ours/errors.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/ours/primordials.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/ours/util.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/stream.js","webpack://@zazuko/spex/./node_modules/rdfxml-streaming-parser/node_modules/readable-stream/lib/stream/promises.js","webpack://@zazuko/spex/./node_modules/relative-to-absolute-iri/index.js","webpack://@zazuko/spex/./node_modules/relative-to-absolute-iri/lib/Resolve.js","webpack://@zazuko/spex/./node_modules/validate-iri/index.js","webpack://@zazuko/spex/./node_modules/validate-iri/lib/Validate.js","webpack://@zazuko/spex/./node_modules/xmlchars/xml/1.0/ed5.js","webpack://@zazuko/spex/./node_modules/xmlchars/xml/1.1/ed2.js","webpack://@zazuko/spex/./node_modules/xmlchars/xmlns/1.0/ed3.js","webpack://@zazuko/spex/./node_modules/@zazuko/formats-lazy/lib/CustomRdfXmlParser.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SaxesParser = exports.EVENTS = void 0;\nconst ed5 = require(\"xmlchars/xml/1.0/ed5\");\nconst ed2 = require(\"xmlchars/xml/1.1/ed2\");\nconst NSed3 = require(\"xmlchars/xmlns/1.0/ed3\");\nvar isS = ed5.isS;\nvar isChar10 = ed5.isChar;\nvar isNameStartChar = ed5.isNameStartChar;\nvar isNameChar = ed5.isNameChar;\nvar S_LIST = ed5.S_LIST;\nvar NAME_RE = ed5.NAME_RE;\nvar isChar11 = ed2.isChar;\nvar isNCNameStartChar = NSed3.isNCNameStartChar;\nvar isNCNameChar = NSed3.isNCNameChar;\nvar NC_NAME_RE = NSed3.NC_NAME_RE;\nconst XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\nconst XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\nconst rootNS = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n __proto__: null,\n xml: XML_NAMESPACE,\n xmlns: XMLNS_NAMESPACE,\n};\nconst XML_ENTITIES = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n __proto__: null,\n amp: \"&\",\n gt: \">\",\n lt: \"<\",\n quot: \"\\\"\",\n apos: \"'\",\n};\n// EOC: end-of-chunk\nconst EOC = -1;\nconst NL_LIKE = -2;\nconst S_BEGIN = 0; // Initial state.\nconst S_BEGIN_WHITESPACE = 1; // leading whitespace\nconst S_DOCTYPE = 2; // \nconst TAB = 9;\nconst NL = 0xA;\nconst CR = 0xD;\nconst SPACE = 0x20;\nconst BANG = 0x21;\nconst DQUOTE = 0x22;\nconst AMP = 0x26;\nconst SQUOTE = 0x27;\nconst MINUS = 0x2D;\nconst FORWARD_SLASH = 0x2F;\nconst SEMICOLON = 0x3B;\nconst LESS = 0x3C;\nconst EQUAL = 0x3D;\nconst GREATER = 0x3E;\nconst QUESTION = 0x3F;\nconst OPEN_BRACKET = 0x5B;\nconst CLOSE_BRACKET = 0x5D;\nconst NEL = 0x85;\nconst LS = 0x2028; // Line Separator\nconst isQuote = (c) => c === DQUOTE || c === SQUOTE;\nconst QUOTES = [DQUOTE, SQUOTE];\nconst DOCTYPE_TERMINATOR = [...QUOTES, OPEN_BRACKET, GREATER];\nconst DTD_TERMINATOR = [...QUOTES, LESS, CLOSE_BRACKET];\nconst XML_DECL_NAME_TERMINATOR = [EQUAL, QUESTION, ...S_LIST];\nconst ATTRIB_VALUE_UNQUOTED_TERMINATOR = [...S_LIST, GREATER, AMP, LESS];\nfunction nsPairCheck(parser, prefix, uri) {\n switch (prefix) {\n case \"xml\":\n if (uri !== XML_NAMESPACE) {\n parser.fail(`xml prefix must be bound to ${XML_NAMESPACE}.`);\n }\n break;\n case \"xmlns\":\n if (uri !== XMLNS_NAMESPACE) {\n parser.fail(`xmlns prefix must be bound to ${XMLNS_NAMESPACE}.`);\n }\n break;\n default:\n }\n switch (uri) {\n case XMLNS_NAMESPACE:\n parser.fail(prefix === \"\" ?\n `the default namespace may not be set to ${uri}.` :\n `may not assign a prefix (even \"xmlns\") to the URI \\\n${XMLNS_NAMESPACE}.`);\n break;\n case XML_NAMESPACE:\n switch (prefix) {\n case \"xml\":\n // Assinging the XML namespace to \"xml\" is fine.\n break;\n case \"\":\n parser.fail(`the default namespace may not be set to ${uri}.`);\n break;\n default:\n parser.fail(\"may not assign the xml namespace to another prefix.\");\n }\n break;\n default:\n }\n}\nfunction nsMappingCheck(parser, mapping) {\n for (const local of Object.keys(mapping)) {\n nsPairCheck(parser, local, mapping[local]);\n }\n}\nconst isNCName = (name) => NC_NAME_RE.test(name);\nconst isName = (name) => NAME_RE.test(name);\nconst FORBIDDEN_START = 0;\nconst FORBIDDEN_BRACKET = 1;\nconst FORBIDDEN_BRACKET_BRACKET = 2;\n/**\n * The list of supported events.\n */\nexports.EVENTS = [\n \"xmldecl\",\n \"text\",\n \"processinginstruction\",\n \"doctype\",\n \"comment\",\n \"opentagstart\",\n \"attribute\",\n \"opentag\",\n \"closetag\",\n \"cdata\",\n \"error\",\n \"end\",\n \"ready\",\n];\nconst EVENT_NAME_TO_HANDLER_NAME = {\n xmldecl: \"xmldeclHandler\",\n text: \"textHandler\",\n processinginstruction: \"piHandler\",\n doctype: \"doctypeHandler\",\n comment: \"commentHandler\",\n opentagstart: \"openTagStartHandler\",\n attribute: \"attributeHandler\",\n opentag: \"openTagHandler\",\n closetag: \"closeTagHandler\",\n cdata: \"cdataHandler\",\n error: \"errorHandler\",\n end: \"endHandler\",\n ready: \"readyHandler\",\n};\n// eslint-disable-next-line @typescript-eslint/ban-types\nclass SaxesParser {\n /**\n * Indicates whether or not the parser is closed. If ``true``, wait for\n * the ``ready`` event to write again.\n */\n get closed() {\n return this._closed;\n }\n /**\n * @param opt The parser options.\n */\n constructor(opt) {\n this.opt = opt !== null && opt !== void 0 ? opt : {};\n this.fragmentOpt = !!this.opt.fragment;\n const xmlnsOpt = this.xmlnsOpt = !!this.opt.xmlns;\n this.trackPosition = this.opt.position !== false;\n this.fileName = this.opt.fileName;\n if (xmlnsOpt) {\n // This is the function we use to perform name checks on PIs and entities.\n // When namespaces are used, colons are not allowed in PI target names or\n // entity names. So the check depends on whether namespaces are used. See:\n //\n // https://www.w3.org/XML/xml-names-19990114-errata.html\n // NE08\n //\n this.nameStartCheck = isNCNameStartChar;\n this.nameCheck = isNCNameChar;\n this.isName = isNCName;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.processAttribs = this.processAttribsNS;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.pushAttrib = this.pushAttribNS;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n this.ns = Object.assign({ __proto__: null }, rootNS);\n const additional = this.opt.additionalNamespaces;\n if (additional != null) {\n nsMappingCheck(this, additional);\n Object.assign(this.ns, additional);\n }\n }\n else {\n this.nameStartCheck = isNameStartChar;\n this.nameCheck = isNameChar;\n this.isName = isName;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.processAttribs = this.processAttribsPlain;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.pushAttrib = this.pushAttribPlain;\n }\n //\n // The order of the members in this table needs to correspond to the state\n // numbers given to the states that correspond to the methods being recorded\n // here.\n //\n this.stateTable = [\n /* eslint-disable @typescript-eslint/unbound-method */\n this.sBegin,\n this.sBeginWhitespace,\n this.sDoctype,\n this.sDoctypeQuote,\n this.sDTD,\n this.sDTDQuoted,\n this.sDTDOpenWaka,\n this.sDTDOpenWakaBang,\n this.sDTDComment,\n this.sDTDCommentEnding,\n this.sDTDCommentEnded,\n this.sDTDPI,\n this.sDTDPIEnding,\n this.sText,\n this.sEntity,\n this.sOpenWaka,\n this.sOpenWakaBang,\n this.sComment,\n this.sCommentEnding,\n this.sCommentEnded,\n this.sCData,\n this.sCDataEnding,\n this.sCDataEnding2,\n this.sPIFirstChar,\n this.sPIRest,\n this.sPIBody,\n this.sPIEnding,\n this.sXMLDeclNameStart,\n this.sXMLDeclName,\n this.sXMLDeclEq,\n this.sXMLDeclValueStart,\n this.sXMLDeclValue,\n this.sXMLDeclSeparator,\n this.sXMLDeclEnding,\n this.sOpenTag,\n this.sOpenTagSlash,\n this.sAttrib,\n this.sAttribName,\n this.sAttribNameSawWhite,\n this.sAttribValue,\n this.sAttribValueQuoted,\n this.sAttribValueClosed,\n this.sAttribValueUnquoted,\n this.sCloseTag,\n this.sCloseTagSawWhite,\n /* eslint-enable @typescript-eslint/unbound-method */\n ];\n this._init();\n }\n _init() {\n var _a;\n this.openWakaBang = \"\";\n this.text = \"\";\n this.name = \"\";\n this.piTarget = \"\";\n this.entity = \"\";\n this.q = null;\n this.tags = [];\n this.tag = null;\n this.topNS = null;\n this.chunk = \"\";\n this.chunkPosition = 0;\n this.i = 0;\n this.prevI = 0;\n this.carriedFromPrevious = undefined;\n this.forbiddenState = FORBIDDEN_START;\n this.attribList = [];\n // The logic is organized so as to minimize the need to check\n // this.opt.fragment while parsing.\n const { fragmentOpt } = this;\n this.state = fragmentOpt ? S_TEXT : S_BEGIN;\n // We want these to be all true if we are dealing with a fragment.\n this.reportedTextBeforeRoot = this.reportedTextAfterRoot = this.closedRoot =\n this.sawRoot = fragmentOpt;\n // An XML declaration is intially possible only when parsing whole\n // documents.\n this.xmlDeclPossible = !fragmentOpt;\n this.xmlDeclExpects = [\"version\"];\n this.entityReturnState = undefined;\n let { defaultXMLVersion } = this.opt;\n if (defaultXMLVersion === undefined) {\n if (this.opt.forceXMLVersion === true) {\n throw new Error(\"forceXMLVersion set but defaultXMLVersion is not set\");\n }\n defaultXMLVersion = \"1.0\";\n }\n this.setXMLVersion(defaultXMLVersion);\n this.positionAtNewLine = 0;\n this.doctype = false;\n this._closed = false;\n this.xmlDecl = {\n version: undefined,\n encoding: undefined,\n standalone: undefined,\n };\n this.line = 1;\n this.column = 0;\n this.ENTITIES = Object.create(XML_ENTITIES);\n (_a = this.readyHandler) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n /**\n * The stream position the parser is currently looking at. This field is\n * zero-based.\n *\n * This field is not based on counting Unicode characters but is to be\n * interpreted as a plain index into a JavaScript string.\n */\n get position() {\n return this.chunkPosition + this.i;\n }\n /**\n * The column number of the next character to be read by the parser. *\n * This field is zero-based. (The first column in a line is 0.)\n *\n * This field reports the index at which the next character would be in the\n * line if the line were represented as a JavaScript string. Note that this\n * *can* be different to a count based on the number of *Unicode characters*\n * due to how JavaScript handles astral plane characters.\n *\n * See [[column]] for a number that corresponds to a count of Unicode\n * characters.\n */\n get columnIndex() {\n return this.position - this.positionAtNewLine;\n }\n /**\n * Set an event listener on an event. The parser supports one handler per\n * event type. If you try to set an event handler over an existing handler,\n * the old handler is silently overwritten.\n *\n * @param name The event to listen to.\n *\n * @param handler The handler to set.\n */\n on(name, handler) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n this[EVENT_NAME_TO_HANDLER_NAME[name]] = handler;\n }\n /**\n * Unset an event handler.\n *\n * @parma name The event to stop listening to.\n */\n off(name) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n this[EVENT_NAME_TO_HANDLER_NAME[name]] = undefined;\n }\n /**\n * Make an error object. The error object will have a message that contains\n * the ``fileName`` option passed at the creation of the parser. If position\n * tracking was turned on, it will also have line and column number\n * information.\n *\n * @param message The message describing the error to report.\n *\n * @returns An error object with a properly formatted message.\n */\n makeError(message) {\n var _a;\n let msg = (_a = this.fileName) !== null && _a !== void 0 ? _a : \"\";\n if (this.trackPosition) {\n if (msg.length > 0) {\n msg += \":\";\n }\n msg += `${this.line}:${this.column}`;\n }\n if (msg.length > 0) {\n msg += \": \";\n }\n return new Error(msg + message);\n }\n /**\n * Report a parsing error. This method is made public so that client code may\n * check for issues that are outside the scope of this project and can report\n * errors.\n *\n * @param message The error to report.\n *\n * @returns this\n */\n fail(message) {\n const err = this.makeError(message);\n const handler = this.errorHandler;\n if (handler === undefined) {\n throw err;\n }\n else {\n handler(err);\n }\n return this;\n }\n /**\n * Write a XML data to the parser.\n *\n * @param chunk The XML data to write.\n *\n * @returns this\n */\n // We do need object for the type here. Yes, it often causes problems\n // but not in this case.\n write(chunk) {\n if (this.closed) {\n return this.fail(\"cannot write after close; assign an onready handler.\");\n }\n let end = false;\n if (chunk === null) {\n // We cannot return immediately because carriedFromPrevious may need\n // processing.\n end = true;\n chunk = \"\";\n }\n else if (typeof chunk === \"object\") {\n chunk = chunk.toString();\n }\n // We checked if performing a pre-decomposition of the string into an array\n // of single complete characters (``Array.from(chunk)``) would be faster\n // than the current repeated calls to ``charCodeAt``. As of August 2018, it\n // isn't. (There may be Node-specific code that would perform faster than\n // ``Array.from`` but don't want to be dependent on Node.)\n if (this.carriedFromPrevious !== undefined) {\n // The previous chunk had char we must carry over.\n chunk = `${this.carriedFromPrevious}${chunk}`;\n this.carriedFromPrevious = undefined;\n }\n let limit = chunk.length;\n const lastCode = chunk.charCodeAt(limit - 1);\n if (!end &&\n // A trailing CR or surrogate must be carried over to the next\n // chunk.\n (lastCode === CR || (lastCode >= 0xD800 && lastCode <= 0xDBFF))) {\n // The chunk ends with a character that must be carried over. We cannot\n // know how to handle it until we get the next chunk or the end of the\n // stream. So save it for later.\n this.carriedFromPrevious = chunk[limit - 1];\n limit--;\n chunk = chunk.slice(0, limit);\n }\n const { stateTable } = this;\n this.chunk = chunk;\n this.i = 0;\n while (this.i < limit) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument\n stateTable[this.state].call(this);\n }\n this.chunkPosition += limit;\n return end ? this.end() : this;\n }\n /**\n * Close the current stream. Perform final well-formedness checks and reset\n * the parser tstate.\n *\n * @returns this\n */\n close() {\n return this.write(null);\n }\n /**\n * Get a single code point out of the current chunk. This updates the current\n * position if we do position tracking.\n *\n * This is the algorithm to use for XML 1.0.\n *\n * @returns The character read.\n */\n getCode10() {\n const { chunk, i } = this;\n this.prevI = i;\n // Yes, we do this instead of doing this.i++. Doing it this way, we do not\n // read this.i again, which is a bit faster.\n this.i = i + 1;\n if (i >= chunk.length) {\n return EOC;\n }\n // Using charCodeAt and handling the surrogates ourselves is faster\n // than using codePointAt.\n const code = chunk.charCodeAt(i);\n this.column++;\n if (code < 0xD800) {\n if (code >= SPACE || code === TAB) {\n return code;\n }\n switch (code) {\n case NL:\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL;\n case CR:\n // We may get NaN if we read past the end of the chunk, which is fine.\n if (chunk.charCodeAt(i + 1) === NL) {\n // A \\r\\n sequence is converted to \\n so we have to skip over the\n // next character. We already know it has a size of 1 so ++ is fine\n // here.\n this.i = i + 2;\n }\n // Otherwise, a \\r is just converted to \\n, so we don't have to skip\n // ahead.\n // In either case, \\r becomes \\n.\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL_LIKE;\n default:\n // If we get here, then code < SPACE and it is not NL CR or TAB.\n this.fail(\"disallowed character.\");\n return code;\n }\n }\n if (code > 0xDBFF) {\n // This is a specialized version of isChar10 that takes into account\n // that in this context code > 0xDBFF and code <= 0xFFFF. So it does not\n // test cases that don't need testing.\n if (!(code >= 0xE000 && code <= 0xFFFD)) {\n this.fail(\"disallowed character.\");\n }\n return code;\n }\n const final = 0x10000 + ((code - 0xD800) * 0x400) +\n (chunk.charCodeAt(i + 1) - 0xDC00);\n this.i = i + 2;\n // This is a specialized version of isChar10 that takes into account that in\n // this context necessarily final >= 0x10000.\n if (final > 0x10FFFF) {\n this.fail(\"disallowed character.\");\n }\n return final;\n }\n /**\n * Get a single code point out of the current chunk. This updates the current\n * position if we do position tracking.\n *\n * This is the algorithm to use for XML 1.1.\n *\n * @returns {number} The character read.\n */\n getCode11() {\n const { chunk, i } = this;\n this.prevI = i;\n // Yes, we do this instead of doing this.i++. Doing it this way, we do not\n // read this.i again, which is a bit faster.\n this.i = i + 1;\n if (i >= chunk.length) {\n return EOC;\n }\n // Using charCodeAt and handling the surrogates ourselves is faster\n // than using codePointAt.\n const code = chunk.charCodeAt(i);\n this.column++;\n if (code < 0xD800) {\n if ((code > 0x1F && code < 0x7F) || (code > 0x9F && code !== LS) ||\n code === TAB) {\n return code;\n }\n switch (code) {\n case NL: // 0xA\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL;\n case CR: { // 0xD\n // We may get NaN if we read past the end of the chunk, which is\n // fine.\n const next = chunk.charCodeAt(i + 1);\n if (next === NL || next === NEL) {\n // A CR NL or CR NEL sequence is converted to NL so we have to skip\n // over the next character. We already know it has a size of 1.\n this.i = i + 2;\n }\n // Otherwise, a CR is just converted to NL, no skip.\n }\n /* yes, fall through */\n case NEL: // 0x85\n case LS: // Ox2028\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL_LIKE;\n default:\n this.fail(\"disallowed character.\");\n return code;\n }\n }\n if (code > 0xDBFF) {\n // This is a specialized version of isCharAndNotRestricted that takes into\n // account that in this context code > 0xDBFF and code <= 0xFFFF. So it\n // does not test cases that don't need testing.\n if (!(code >= 0xE000 && code <= 0xFFFD)) {\n this.fail(\"disallowed character.\");\n }\n return code;\n }\n const final = 0x10000 + ((code - 0xD800) * 0x400) +\n (chunk.charCodeAt(i + 1) - 0xDC00);\n this.i = i + 2;\n // This is a specialized version of isCharAndNotRestricted that takes into\n // account that in this context necessarily final >= 0x10000.\n if (final > 0x10FFFF) {\n this.fail(\"disallowed character.\");\n }\n return final;\n }\n /**\n * Like ``getCode`` but with the return value normalized so that ``NL`` is\n * returned for ``NL_LIKE``.\n */\n getCodeNorm() {\n const c = this.getCode();\n return c === NL_LIKE ? NL : c;\n }\n unget() {\n this.i = this.prevI;\n this.column--;\n }\n /**\n * Capture characters into a buffer until encountering one of a set of\n * characters.\n *\n * @param chars An array of codepoints. Encountering a character in the array\n * ends the capture. (``chars`` may safely contain ``NL``.)\n *\n * @return The character code that made the capture end, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n captureTo(chars) {\n let { i: start } = this;\n const { chunk } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCode();\n const isNLLike = c === NL_LIKE;\n const final = isNLLike ? NL : c;\n if (final === EOC || chars.includes(final)) {\n this.text += chunk.slice(start, this.prevI);\n return final;\n }\n if (isNLLike) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n }\n }\n }\n /**\n * Capture characters into a buffer until encountering a character.\n *\n * @param char The codepoint that ends the capture. **NOTE ``char`` MAY NOT\n * CONTAIN ``NL``.** Passing ``NL`` will result in buggy behavior.\n *\n * @return ``true`` if we ran into the character. Otherwise, we ran into the\n * end of the current chunk.\n */\n captureToChar(char) {\n let { i: start } = this;\n const { chunk } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let c = this.getCode();\n switch (c) {\n case NL_LIKE:\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n c = NL;\n break;\n case EOC:\n this.text += chunk.slice(start);\n return false;\n default:\n }\n if (c === char) {\n this.text += chunk.slice(start, this.prevI);\n return true;\n }\n }\n }\n /**\n * Capture characters that satisfy ``isNameChar`` into the ``name`` field of\n * this parser.\n *\n * @return The character code that made the test fail, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n captureNameChars() {\n const { chunk, i: start } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCode();\n if (c === EOC) {\n this.name += chunk.slice(start);\n return EOC;\n }\n // NL is not a name char so we don't have to test specifically for it.\n if (!isNameChar(c)) {\n this.name += chunk.slice(start, this.prevI);\n return c === NL_LIKE ? NL : c;\n }\n }\n }\n /**\n * Skip white spaces.\n *\n * @return The character that ended the skip, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n skipSpaces() {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCodeNorm();\n if (c === EOC || !isS(c)) {\n return c;\n }\n }\n }\n setXMLVersion(version) {\n this.currentXMLVersion = version;\n /* eslint-disable @typescript-eslint/unbound-method */\n if (version === \"1.0\") {\n this.isChar = isChar10;\n this.getCode = this.getCode10;\n }\n else {\n this.isChar = isChar11;\n this.getCode = this.getCode11;\n }\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n // STATE ENGINE METHODS\n // This needs to be a state separate from S_BEGIN_WHITESPACE because we want\n // to be sure never to come back to this state later.\n sBegin() {\n // We are essentially peeking at the first character of the chunk. Since\n // S_BEGIN can be in effect only when we start working on the first chunk,\n // the index at which we must look is necessarily 0. Note also that the\n // following test does not depend on decoding surrogates.\n // If the initial character is 0xFEFF, ignore it.\n if (this.chunk.charCodeAt(0) === 0xFEFF) {\n this.i++;\n this.column++;\n }\n this.state = S_BEGIN_WHITESPACE;\n }\n sBeginWhitespace() {\n // We need to know whether we've encountered spaces or not because as soon\n // as we run into a space, an XML declaration is no longer possible. Rather\n // than slow down skipSpaces even in places where we don't care whether it\n // skipped anything or not, we check whether prevI is equal to the value of\n // i from before we skip spaces.\n const iBefore = this.i;\n const c = this.skipSpaces();\n if (this.prevI !== iBefore) {\n this.xmlDeclPossible = false;\n }\n switch (c) {\n case LESS:\n this.state = S_OPEN_WAKA;\n // We could naively call closeText but in this state, it is not normal\n // to have text be filled with any data.\n if (this.text.length !== 0) {\n throw new Error(\"no-empty text at start\");\n }\n break;\n case EOC:\n break;\n default:\n this.unget();\n this.state = S_TEXT;\n this.xmlDeclPossible = false;\n }\n }\n sDoctype() {\n var _a;\n const c = this.captureTo(DOCTYPE_TERMINATOR);\n switch (c) {\n case GREATER: {\n (_a = this.doctypeHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n this.state = S_TEXT;\n this.doctype = true; // just remember that we saw it.\n break;\n }\n case EOC:\n break;\n default:\n this.text += String.fromCodePoint(c);\n if (c === OPEN_BRACKET) {\n this.state = S_DTD;\n }\n else if (isQuote(c)) {\n this.state = S_DOCTYPE_QUOTE;\n this.q = c;\n }\n }\n }\n sDoctypeQuote() {\n const q = this.q;\n if (this.captureToChar(q)) {\n this.text += String.fromCodePoint(q);\n this.q = null;\n this.state = S_DOCTYPE;\n }\n }\n sDTD() {\n const c = this.captureTo(DTD_TERMINATOR);\n if (c === EOC) {\n return;\n }\n this.text += String.fromCodePoint(c);\n if (c === CLOSE_BRACKET) {\n this.state = S_DOCTYPE;\n }\n else if (c === LESS) {\n this.state = S_DTD_OPEN_WAKA;\n }\n else if (isQuote(c)) {\n this.state = S_DTD_QUOTED;\n this.q = c;\n }\n }\n sDTDQuoted() {\n const q = this.q;\n if (this.captureToChar(q)) {\n this.text += String.fromCodePoint(q);\n this.state = S_DTD;\n this.q = null;\n }\n }\n sDTDOpenWaka() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n switch (c) {\n case BANG:\n this.state = S_DTD_OPEN_WAKA_BANG;\n this.openWakaBang = \"\";\n break;\n case QUESTION:\n this.state = S_DTD_PI;\n break;\n default:\n this.state = S_DTD;\n }\n }\n sDTDOpenWakaBang() {\n const char = String.fromCodePoint(this.getCodeNorm());\n const owb = this.openWakaBang += char;\n this.text += char;\n if (owb !== \"-\") {\n this.state = owb === \"--\" ? S_DTD_COMMENT : S_DTD;\n this.openWakaBang = \"\";\n }\n }\n sDTDComment() {\n if (this.captureToChar(MINUS)) {\n this.text += \"-\";\n this.state = S_DTD_COMMENT_ENDING;\n }\n }\n sDTDCommentEnding() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n this.state = c === MINUS ? S_DTD_COMMENT_ENDED : S_DTD_COMMENT;\n }\n sDTDCommentEnded() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n if (c === GREATER) {\n this.state = S_DTD;\n }\n else {\n this.fail(\"malformed comment.\");\n // will be recorded as\n // a comment of \" blah -- bloo \"\n this.state = S_DTD_COMMENT;\n }\n }\n sDTDPI() {\n if (this.captureToChar(QUESTION)) {\n this.text += \"?\";\n this.state = S_DTD_PI_ENDING;\n }\n }\n sDTDPIEnding() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n if (c === GREATER) {\n this.state = S_DTD;\n }\n }\n sText() {\n //\n // We did try a version of saxes where the S_TEXT state was split in two\n // states: one for text inside the root element, and one for text\n // outside. This was avoiding having to test this.tags.length to decide\n // what implementation to actually use.\n //\n // Peformance testing on gigabyte-size files did not show any advantage to\n // using the two states solution instead of the current one. Conversely, it\n // made the code a bit more complicated elsewhere. For instance, a comment\n // can appear before the root element so when a comment ended it was\n // necessary to determine whether to return to the S_TEXT state or to the\n // new text-outside-root state.\n //\n if (this.tags.length !== 0) {\n this.handleTextInRoot();\n }\n else {\n this.handleTextOutsideRoot();\n }\n }\n sEntity() {\n // This is essentially a specialized version of captureToChar(SEMICOLON...)\n let { i: start } = this;\n const { chunk } = this;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n loop: \n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case NL_LIKE:\n this.entity += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n break;\n case SEMICOLON: {\n const { entityReturnState } = this;\n const entity = this.entity + chunk.slice(start, this.prevI);\n this.state = entityReturnState;\n let parsed;\n if (entity === \"\") {\n this.fail(\"empty entity name.\");\n parsed = \"&;\";\n }\n else {\n parsed = this.parseEntity(entity);\n this.entity = \"\";\n }\n if (entityReturnState !== S_TEXT || this.textHandler !== undefined) {\n this.text += parsed;\n }\n // eslint-disable-next-line no-labels\n break loop;\n }\n case EOC:\n this.entity += chunk.slice(start);\n // eslint-disable-next-line no-labels\n break loop;\n default:\n }\n }\n }\n sOpenWaka() {\n // Reminder: a state handler is called with at least one character\n // available in the current chunk. So the first call to get code inside of\n // a state handler cannot return ``EOC``. That's why we don't test\n // for it.\n const c = this.getCode();\n // either a /, ?, !, or text is coming next.\n if (isNameStartChar(c)) {\n this.state = S_OPEN_TAG;\n this.unget();\n this.xmlDeclPossible = false;\n }\n else {\n switch (c) {\n case FORWARD_SLASH:\n this.state = S_CLOSE_TAG;\n this.xmlDeclPossible = false;\n break;\n case BANG:\n this.state = S_OPEN_WAKA_BANG;\n this.openWakaBang = \"\";\n this.xmlDeclPossible = false;\n break;\n case QUESTION:\n this.state = S_PI_FIRST_CHAR;\n break;\n default:\n this.fail(\"disallowed character in tag name\");\n this.state = S_TEXT;\n this.xmlDeclPossible = false;\n }\n }\n }\n sOpenWakaBang() {\n this.openWakaBang += String.fromCodePoint(this.getCodeNorm());\n switch (this.openWakaBang) {\n case \"[CDATA[\":\n if (!this.sawRoot && !this.reportedTextBeforeRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextBeforeRoot = true;\n }\n if (this.closedRoot && !this.reportedTextAfterRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextAfterRoot = true;\n }\n this.state = S_CDATA;\n this.openWakaBang = \"\";\n break;\n case \"--\":\n this.state = S_COMMENT;\n this.openWakaBang = \"\";\n break;\n case \"DOCTYPE\":\n this.state = S_DOCTYPE;\n if (this.doctype || this.sawRoot) {\n this.fail(\"inappropriately located doctype declaration.\");\n }\n this.openWakaBang = \"\";\n break;\n default:\n // 7 happens to be the maximum length of the string that can possibly\n // match one of the cases above.\n if (this.openWakaBang.length >= 7) {\n this.fail(\"incorrect syntax.\");\n }\n }\n }\n sComment() {\n if (this.captureToChar(MINUS)) {\n this.state = S_COMMENT_ENDING;\n }\n }\n sCommentEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === MINUS) {\n this.state = S_COMMENT_ENDED;\n (_a = this.commentHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n }\n else {\n this.text += `-${String.fromCodePoint(c)}`;\n this.state = S_COMMENT;\n }\n }\n sCommentEnded() {\n const c = this.getCodeNorm();\n if (c !== GREATER) {\n this.fail(\"malformed comment.\");\n // will be recorded as\n // a comment of \" blah -- bloo \"\n this.text += `--${String.fromCodePoint(c)}`;\n this.state = S_COMMENT;\n }\n else {\n this.state = S_TEXT;\n }\n }\n sCData() {\n if (this.captureToChar(CLOSE_BRACKET)) {\n this.state = S_CDATA_ENDING;\n }\n }\n sCDataEnding() {\n const c = this.getCodeNorm();\n if (c === CLOSE_BRACKET) {\n this.state = S_CDATA_ENDING_2;\n }\n else {\n this.text += `]${String.fromCodePoint(c)}`;\n this.state = S_CDATA;\n }\n }\n sCDataEnding2() {\n var _a;\n const c = this.getCodeNorm();\n switch (c) {\n case GREATER: {\n (_a = this.cdataHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n this.state = S_TEXT;\n break;\n }\n case CLOSE_BRACKET:\n this.text += \"]\";\n break;\n default:\n this.text += `]]${String.fromCodePoint(c)}`;\n this.state = S_CDATA;\n }\n }\n // We need this separate state to check the first character fo the pi target\n // with this.nameStartCheck which allows less characters than this.nameCheck.\n sPIFirstChar() {\n const c = this.getCodeNorm();\n // This is first because in the case where the file is well-formed this is\n // the branch taken. We optimize for well-formedness.\n if (this.nameStartCheck(c)) {\n this.piTarget += String.fromCodePoint(c);\n this.state = S_PI_REST;\n }\n else if (c === QUESTION || isS(c)) {\n this.fail(\"processing instruction without a target.\");\n this.state = c === QUESTION ? S_PI_ENDING : S_PI_BODY;\n }\n else {\n this.fail(\"disallowed character in processing instruction name.\");\n this.piTarget += String.fromCodePoint(c);\n this.state = S_PI_REST;\n }\n }\n sPIRest() {\n // Capture characters into a piTarget while ``this.nameCheck`` run on the\n // character read returns true.\n const { chunk, i: start } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCodeNorm();\n if (c === EOC) {\n this.piTarget += chunk.slice(start);\n return;\n }\n // NL cannot satisfy this.nameCheck so we don't have to test specifically\n // for it.\n if (!this.nameCheck(c)) {\n this.piTarget += chunk.slice(start, this.prevI);\n const isQuestion = c === QUESTION;\n if (isQuestion || isS(c)) {\n if (this.piTarget === \"xml\") {\n if (!this.xmlDeclPossible) {\n this.fail(\"an XML declaration must be at the start of the document.\");\n }\n this.state = isQuestion ? S_XML_DECL_ENDING : S_XML_DECL_NAME_START;\n }\n else {\n this.state = isQuestion ? S_PI_ENDING : S_PI_BODY;\n }\n }\n else {\n this.fail(\"disallowed character in processing instruction name.\");\n this.piTarget += String.fromCodePoint(c);\n }\n break;\n }\n }\n }\n sPIBody() {\n if (this.text.length === 0) {\n const c = this.getCodeNorm();\n if (c === QUESTION) {\n this.state = S_PI_ENDING;\n }\n else if (!isS(c)) {\n this.text = String.fromCodePoint(c);\n }\n }\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n else if (this.captureToChar(QUESTION)) {\n this.state = S_PI_ENDING;\n }\n }\n sPIEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === GREATER) {\n const { piTarget } = this;\n if (piTarget.toLowerCase() === \"xml\") {\n this.fail(\"the XML declaration must appear at the start of the document.\");\n }\n (_a = this.piHandler) === null || _a === void 0 ? void 0 : _a.call(this, {\n target: piTarget,\n body: this.text,\n });\n this.piTarget = this.text = \"\";\n this.state = S_TEXT;\n }\n else if (c === QUESTION) {\n // We ran into ?? as part of a processing instruction. We initially took\n // the first ? as a sign that the PI was ending, but it is not. So we have\n // to add it to the body but we take the new ? as a sign that the PI is\n // ending.\n this.text += \"?\";\n }\n else {\n this.text += `?${String.fromCodePoint(c)}`;\n this.state = S_PI_BODY;\n }\n this.xmlDeclPossible = false;\n }\n sXMLDeclNameStart() {\n const c = this.skipSpaces();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n // It is valid to go to S_XML_DECL_ENDING from this state.\n this.state = S_XML_DECL_ENDING;\n return;\n }\n if (c !== EOC) {\n this.state = S_XML_DECL_NAME;\n this.name = String.fromCodePoint(c);\n }\n }\n sXMLDeclName() {\n const c = this.captureTo(XML_DECL_NAME_TERMINATOR);\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.name += this.text;\n this.text = \"\";\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (!(isS(c) || c === EQUAL)) {\n return;\n }\n this.name += this.text;\n this.text = \"\";\n if (!this.xmlDeclExpects.includes(this.name)) {\n switch (this.name.length) {\n case 0:\n this.fail(\"did not expect any more name/value pairs.\");\n break;\n case 1:\n this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);\n break;\n default:\n this.fail(`expected one of ${this.xmlDeclExpects.join(\", \")}`);\n }\n }\n this.state = c === EQUAL ? S_XML_DECL_VALUE_START : S_XML_DECL_EQ;\n }\n sXMLDeclEq() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (isS(c)) {\n return;\n }\n if (c !== EQUAL) {\n this.fail(\"value required.\");\n }\n this.state = S_XML_DECL_VALUE_START;\n }\n sXMLDeclValueStart() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (isS(c)) {\n return;\n }\n if (!isQuote(c)) {\n this.fail(\"value must be quoted.\");\n this.q = SPACE;\n }\n else {\n this.q = c;\n }\n this.state = S_XML_DECL_VALUE;\n }\n sXMLDeclValue() {\n const c = this.captureTo([this.q, QUESTION]);\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.text = \"\";\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (c === EOC) {\n return;\n }\n const value = this.text;\n this.text = \"\";\n switch (this.name) {\n case \"version\": {\n this.xmlDeclExpects = [\"encoding\", \"standalone\"];\n const version = value;\n this.xmlDecl.version = version;\n // This is the test specified by XML 1.0 but it is fine for XML 1.1.\n if (!/^1\\.[0-9]+$/.test(version)) {\n this.fail(\"version number must match /^1\\\\.[0-9]+$/.\");\n }\n // When forceXMLVersion is set, the XML declaration is ignored.\n else if (!this.opt.forceXMLVersion) {\n this.setXMLVersion(version);\n }\n break;\n }\n case \"encoding\":\n if (!/^[A-Za-z][A-Za-z0-9._-]*$/.test(value)) {\n this.fail(\"encoding value must match \\\n/^[A-Za-z0-9][A-Za-z0-9._-]*$/.\");\n }\n this.xmlDeclExpects = [\"standalone\"];\n this.xmlDecl.encoding = value;\n break;\n case \"standalone\":\n if (value !== \"yes\" && value !== \"no\") {\n this.fail(\"standalone value must match \\\"yes\\\" or \\\"no\\\".\");\n }\n this.xmlDeclExpects = [];\n this.xmlDecl.standalone = value;\n break;\n default:\n // We don't need to raise an error here since we've already raised one\n // when checking what name was expected.\n }\n this.name = \"\";\n this.state = S_XML_DECL_SEPARATOR;\n }\n sXMLDeclSeparator() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n // It is valid to go to S_XML_DECL_ENDING from this state.\n this.state = S_XML_DECL_ENDING;\n return;\n }\n if (!isS(c)) {\n this.fail(\"whitespace required.\");\n this.unget();\n }\n this.state = S_XML_DECL_NAME_START;\n }\n sXMLDeclEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === GREATER) {\n if (this.piTarget !== \"xml\") {\n this.fail(\"processing instructions are not allowed before root.\");\n }\n else if (this.name !== \"version\" &&\n this.xmlDeclExpects.includes(\"version\")) {\n this.fail(\"XML declaration must contain a version.\");\n }\n (_a = this.xmldeclHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.xmlDecl);\n this.name = \"\";\n this.piTarget = this.text = \"\";\n this.state = S_TEXT;\n }\n else {\n // We got here because the previous character was a ?, but the question\n // mark character is not valid inside any of the XML declaration\n // name/value pairs.\n this.fail(\"The character ? is disallowed anywhere in XML declarations.\");\n }\n this.xmlDeclPossible = false;\n }\n sOpenTag() {\n var _a;\n const c = this.captureNameChars();\n if (c === EOC) {\n return;\n }\n const tag = this.tag = {\n name: this.name,\n attributes: Object.create(null),\n };\n this.name = \"\";\n if (this.xmlnsOpt) {\n this.topNS = tag.ns = Object.create(null);\n }\n (_a = this.openTagStartHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n this.sawRoot = true;\n if (!this.fragmentOpt && this.closedRoot) {\n this.fail(\"documents may contain only one root.\");\n }\n switch (c) {\n case GREATER:\n this.openTag();\n break;\n case FORWARD_SLASH:\n this.state = S_OPEN_TAG_SLASH;\n break;\n default:\n if (!isS(c)) {\n this.fail(\"disallowed character in tag name.\");\n }\n this.state = S_ATTRIB;\n }\n }\n sOpenTagSlash() {\n if (this.getCode() === GREATER) {\n this.openSelfClosingTag();\n }\n else {\n this.fail(\"forward-slash in opening tag not followed by >.\");\n this.state = S_ATTRIB;\n }\n }\n sAttrib() {\n const c = this.skipSpaces();\n if (c === EOC) {\n return;\n }\n if (isNameStartChar(c)) {\n this.unget();\n this.state = S_ATTRIB_NAME;\n }\n else if (c === GREATER) {\n this.openTag();\n }\n else if (c === FORWARD_SLASH) {\n this.state = S_OPEN_TAG_SLASH;\n }\n else {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribName() {\n const c = this.captureNameChars();\n if (c === EQUAL) {\n this.state = S_ATTRIB_VALUE;\n }\n else if (isS(c)) {\n this.state = S_ATTRIB_NAME_SAW_WHITE;\n }\n else if (c === GREATER) {\n this.fail(\"attribute without value.\");\n this.pushAttrib(this.name, this.name);\n this.name = this.text = \"\";\n this.openTag();\n }\n else if (c !== EOC) {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribNameSawWhite() {\n const c = this.skipSpaces();\n switch (c) {\n case EOC:\n return;\n case EQUAL:\n this.state = S_ATTRIB_VALUE;\n break;\n default:\n this.fail(\"attribute without value.\");\n // Should we do this???\n // this.tag.attributes[this.name] = \"\";\n this.text = \"\";\n this.name = \"\";\n if (c === GREATER) {\n this.openTag();\n }\n else if (isNameStartChar(c)) {\n this.unget();\n this.state = S_ATTRIB_NAME;\n }\n else {\n this.fail(\"disallowed character in attribute name.\");\n this.state = S_ATTRIB;\n }\n }\n }\n sAttribValue() {\n const c = this.getCodeNorm();\n if (isQuote(c)) {\n this.q = c;\n this.state = S_ATTRIB_VALUE_QUOTED;\n }\n else if (!isS(c)) {\n this.fail(\"unquoted attribute value.\");\n this.state = S_ATTRIB_VALUE_UNQUOTED;\n this.unget();\n }\n }\n sAttribValueQuoted() {\n // We deliberately do not use captureTo here. The specialized code we use\n // here is faster than using captureTo.\n const { q, chunk } = this;\n let { i: start } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case q:\n this.pushAttrib(this.name, this.text + chunk.slice(start, this.prevI));\n this.name = this.text = \"\";\n this.q = null;\n this.state = S_ATTRIB_VALUE_CLOSED;\n return;\n case AMP:\n this.text += chunk.slice(start, this.prevI);\n this.state = S_ENTITY;\n this.entityReturnState = S_ATTRIB_VALUE_QUOTED;\n return;\n case NL:\n case NL_LIKE:\n case TAB:\n this.text += `${chunk.slice(start, this.prevI)} `;\n start = this.i;\n break;\n case LESS:\n this.text += chunk.slice(start, this.prevI);\n this.fail(\"disallowed character.\");\n return;\n case EOC:\n this.text += chunk.slice(start);\n return;\n default:\n }\n }\n }\n sAttribValueClosed() {\n const c = this.getCodeNorm();\n if (isS(c)) {\n this.state = S_ATTRIB;\n }\n else if (c === GREATER) {\n this.openTag();\n }\n else if (c === FORWARD_SLASH) {\n this.state = S_OPEN_TAG_SLASH;\n }\n else if (isNameStartChar(c)) {\n this.fail(\"no whitespace between attributes.\");\n this.unget();\n this.state = S_ATTRIB_NAME;\n }\n else {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribValueUnquoted() {\n // We don't do anything regarding EOL or space handling for unquoted\n // attributes. We already have failed by the time we get here, and the\n // contract that saxes upholds states that upon failure, it is not safe to\n // rely on the data passed to event handlers (other than\n // ``onerror``). Passing \"bad\" data is not a problem.\n const c = this.captureTo(ATTRIB_VALUE_UNQUOTED_TERMINATOR);\n switch (c) {\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_ATTRIB_VALUE_UNQUOTED;\n break;\n case LESS:\n this.fail(\"disallowed character.\");\n break;\n case EOC:\n break;\n default:\n if (this.text.includes(\"]]>\")) {\n this.fail(\"the string \\\"]]>\\\" is disallowed in char data.\");\n }\n this.pushAttrib(this.name, this.text);\n this.name = this.text = \"\";\n if (c === GREATER) {\n this.openTag();\n }\n else {\n this.state = S_ATTRIB;\n }\n }\n }\n sCloseTag() {\n const c = this.captureNameChars();\n if (c === GREATER) {\n this.closeTag();\n }\n else if (isS(c)) {\n this.state = S_CLOSE_TAG_SAW_WHITE;\n }\n else if (c !== EOC) {\n this.fail(\"disallowed character in closing tag.\");\n }\n }\n sCloseTagSawWhite() {\n switch (this.skipSpaces()) {\n case GREATER:\n this.closeTag();\n break;\n case EOC:\n break;\n default:\n this.fail(\"disallowed character in closing tag.\");\n }\n }\n // END OF STATE ENGINE METHODS\n handleTextInRoot() {\n // This is essentially a specialized version of captureTo which is optimized\n // for performing the ]]> check. A previous version of this code, checked\n // ``this.text`` for the presence of ]]>. It simplified the code but was\n // very costly when character data contained a lot of entities to be parsed.\n //\n // Since we are using a specialized loop, we also keep track of the presence\n // of ]]> in text data. The sequence ]]> is forbidden to appear as-is.\n //\n let { i: start, forbiddenState } = this;\n const { chunk, textHandler: handler } = this;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n scanLoop: \n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case LESS: {\n this.state = S_OPEN_WAKA;\n if (handler !== undefined) {\n const { text } = this;\n const slice = chunk.slice(start, this.prevI);\n if (text.length !== 0) {\n handler(text + slice);\n this.text = \"\";\n }\n else if (slice.length !== 0) {\n handler(slice);\n }\n }\n forbiddenState = FORBIDDEN_START;\n // eslint-disable-next-line no-labels\n break scanLoop;\n }\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_TEXT;\n if (handler !== undefined) {\n this.text += chunk.slice(start, this.prevI);\n }\n forbiddenState = FORBIDDEN_START;\n // eslint-disable-next-line no-labels\n break scanLoop;\n case CLOSE_BRACKET:\n switch (forbiddenState) {\n case FORBIDDEN_START:\n forbiddenState = FORBIDDEN_BRACKET;\n break;\n case FORBIDDEN_BRACKET:\n forbiddenState = FORBIDDEN_BRACKET_BRACKET;\n break;\n case FORBIDDEN_BRACKET_BRACKET:\n break;\n default:\n throw new Error(\"impossible state\");\n }\n break;\n case GREATER:\n if (forbiddenState === FORBIDDEN_BRACKET_BRACKET) {\n this.fail(\"the string \\\"]]>\\\" is disallowed in char data.\");\n }\n forbiddenState = FORBIDDEN_START;\n break;\n case NL_LIKE:\n if (handler !== undefined) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n }\n start = this.i;\n forbiddenState = FORBIDDEN_START;\n break;\n case EOC:\n if (handler !== undefined) {\n this.text += chunk.slice(start);\n }\n // eslint-disable-next-line no-labels\n break scanLoop;\n default:\n forbiddenState = FORBIDDEN_START;\n }\n }\n this.forbiddenState = forbiddenState;\n }\n handleTextOutsideRoot() {\n // This is essentially a specialized version of captureTo which is optimized\n // for a specialized task. We keep track of the presence of non-space\n // characters in the text since these are errors when appearing outside the\n // document root element.\n let { i: start } = this;\n const { chunk, textHandler: handler } = this;\n let nonSpace = false;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n outRootLoop: \n // eslint-disable-next-line no-constant-condition\n while (true) {\n const code = this.getCode();\n switch (code) {\n case LESS: {\n this.state = S_OPEN_WAKA;\n if (handler !== undefined) {\n const { text } = this;\n const slice = chunk.slice(start, this.prevI);\n if (text.length !== 0) {\n handler(text + slice);\n this.text = \"\";\n }\n else if (slice.length !== 0) {\n handler(slice);\n }\n }\n // eslint-disable-next-line no-labels\n break outRootLoop;\n }\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_TEXT;\n if (handler !== undefined) {\n this.text += chunk.slice(start, this.prevI);\n }\n nonSpace = true;\n // eslint-disable-next-line no-labels\n break outRootLoop;\n case NL_LIKE:\n if (handler !== undefined) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n }\n start = this.i;\n break;\n case EOC:\n if (handler !== undefined) {\n this.text += chunk.slice(start);\n }\n // eslint-disable-next-line no-labels\n break outRootLoop;\n default:\n if (!isS(code)) {\n nonSpace = true;\n }\n }\n }\n if (!nonSpace) {\n return;\n }\n // We use the reportedTextBeforeRoot and reportedTextAfterRoot flags\n // to avoid reporting errors for every single character that is out of\n // place.\n if (!this.sawRoot && !this.reportedTextBeforeRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextBeforeRoot = true;\n }\n if (this.closedRoot && !this.reportedTextAfterRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextAfterRoot = true;\n }\n }\n pushAttribNS(name, value) {\n var _a;\n const { prefix, local } = this.qname(name);\n const attr = { name, prefix, local, value };\n this.attribList.push(attr);\n (_a = this.attributeHandler) === null || _a === void 0 ? void 0 : _a.call(this, attr);\n if (prefix === \"xmlns\") {\n const trimmed = value.trim();\n if (this.currentXMLVersion === \"1.0\" && trimmed === \"\") {\n this.fail(\"invalid attempt to undefine prefix in XML 1.0\");\n }\n this.topNS[local] = trimmed;\n nsPairCheck(this, local, trimmed);\n }\n else if (name === \"xmlns\") {\n const trimmed = value.trim();\n this.topNS[\"\"] = trimmed;\n nsPairCheck(this, \"\", trimmed);\n }\n }\n pushAttribPlain(name, value) {\n var _a;\n const attr = { name, value };\n this.attribList.push(attr);\n (_a = this.attributeHandler) === null || _a === void 0 ? void 0 : _a.call(this, attr);\n }\n /**\n * End parsing. This performs final well-formedness checks and resets the\n * parser to a clean state.\n *\n * @returns this\n */\n end() {\n var _a, _b;\n if (!this.sawRoot) {\n this.fail(\"document must contain a root element.\");\n }\n const { tags } = this;\n while (tags.length > 0) {\n const tag = tags.pop();\n this.fail(`unclosed tag: ${tag.name}`);\n }\n if ((this.state !== S_BEGIN) && (this.state !== S_TEXT)) {\n this.fail(\"unexpected end.\");\n }\n const { text } = this;\n if (text.length !== 0) {\n (_a = this.textHandler) === null || _a === void 0 ? void 0 : _a.call(this, text);\n this.text = \"\";\n }\n this._closed = true;\n (_b = this.endHandler) === null || _b === void 0 ? void 0 : _b.call(this);\n this._init();\n return this;\n }\n /**\n * Resolve a namespace prefix.\n *\n * @param prefix The prefix to resolve.\n *\n * @returns The namespace URI or ``undefined`` if the prefix is not defined.\n */\n resolve(prefix) {\n var _a, _b;\n let uri = this.topNS[prefix];\n if (uri !== undefined) {\n return uri;\n }\n const { tags } = this;\n for (let index = tags.length - 1; index >= 0; index--) {\n uri = tags[index].ns[prefix];\n if (uri !== undefined) {\n return uri;\n }\n }\n uri = this.ns[prefix];\n if (uri !== undefined) {\n return uri;\n }\n return (_b = (_a = this.opt).resolvePrefix) === null || _b === void 0 ? void 0 : _b.call(_a, prefix);\n }\n /**\n * Parse a qname into its prefix and local name parts.\n *\n * @param name The name to parse\n *\n * @returns\n */\n qname(name) {\n // This is faster than using name.split(\":\").\n const colon = name.indexOf(\":\");\n if (colon === -1) {\n return { prefix: \"\", local: name };\n }\n const local = name.slice(colon + 1);\n const prefix = name.slice(0, colon);\n if (prefix === \"\" || local === \"\" || local.includes(\":\")) {\n this.fail(`malformed name: ${name}.`);\n }\n return { prefix, local };\n }\n processAttribsNS() {\n var _a;\n const { attribList } = this;\n const tag = this.tag;\n {\n // add namespace info to tag\n const { prefix, local } = this.qname(tag.name);\n tag.prefix = prefix;\n tag.local = local;\n const uri = tag.uri = (_a = this.resolve(prefix)) !== null && _a !== void 0 ? _a : \"\";\n if (prefix !== \"\") {\n if (prefix === \"xmlns\") {\n this.fail(\"tags may not have \\\"xmlns\\\" as prefix.\");\n }\n if (uri === \"\") {\n this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);\n tag.uri = prefix;\n }\n }\n }\n if (attribList.length === 0) {\n return;\n }\n const { attributes } = tag;\n const seen = new Set();\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (const attr of attribList) {\n const { name, prefix, local } = attr;\n let uri;\n let eqname;\n if (prefix === \"\") {\n uri = name === \"xmlns\" ? XMLNS_NAMESPACE : \"\";\n eqname = name;\n }\n else {\n uri = this.resolve(prefix);\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (uri === undefined) {\n this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);\n uri = prefix;\n }\n eqname = `{${uri}}${local}`;\n }\n if (seen.has(eqname)) {\n this.fail(`duplicate attribute: ${eqname}.`);\n }\n seen.add(eqname);\n attr.uri = uri;\n attributes[name] = attr;\n }\n this.attribList = [];\n }\n processAttribsPlain() {\n const { attribList } = this;\n // eslint-disable-next-line prefer-destructuring\n const attributes = this.tag.attributes;\n for (const { name, value } of attribList) {\n if (attributes[name] !== undefined) {\n this.fail(`duplicate attribute: ${name}.`);\n }\n attributes[name] = value;\n }\n this.attribList = [];\n }\n /**\n * Handle a complete open tag. This parser code calls this once it has seen\n * the whole tag. This method checks for well-formeness and then emits\n * ``onopentag``.\n */\n openTag() {\n var _a;\n this.processAttribs();\n const { tags } = this;\n const tag = this.tag;\n tag.isSelfClosing = false;\n // There cannot be any pending text here due to the onopentagstart that was\n // necessarily emitted before we get here. So we do not check text.\n (_a = this.openTagHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n tags.push(tag);\n this.state = S_TEXT;\n this.name = \"\";\n }\n /**\n * Handle a complete self-closing tag. This parser code calls this once it has\n * seen the whole tag. This method checks for well-formeness and then emits\n * ``onopentag`` and ``onclosetag``.\n */\n openSelfClosingTag() {\n var _a, _b, _c;\n this.processAttribs();\n const { tags } = this;\n const tag = this.tag;\n tag.isSelfClosing = true;\n // There cannot be any pending text here due to the onopentagstart that was\n // necessarily emitted before we get here. So we do not check text.\n (_a = this.openTagHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n (_b = this.closeTagHandler) === null || _b === void 0 ? void 0 : _b.call(this, tag);\n const top = this.tag = (_c = tags[tags.length - 1]) !== null && _c !== void 0 ? _c : null;\n if (top === null) {\n this.closedRoot = true;\n }\n this.state = S_TEXT;\n this.name = \"\";\n }\n /**\n * Handle a complete close tag. This parser code calls this once it has seen\n * the whole tag. This method checks for well-formeness and then emits\n * ``onclosetag``.\n */\n closeTag() {\n const { tags, name } = this;\n // Our state after this will be S_TEXT, no matter what, and we can clear\n // tagName now.\n this.state = S_TEXT;\n this.name = \"\";\n if (name === \"\") {\n this.fail(\"weird empty close tag.\");\n this.text += \"\";\n return;\n }\n const handler = this.closeTagHandler;\n let l = tags.length;\n while (l-- > 0) {\n const tag = this.tag = tags.pop();\n this.topNS = tag.ns;\n handler === null || handler === void 0 ? void 0 : handler(tag);\n if (tag.name === name) {\n break;\n }\n this.fail(\"unexpected close tag.\");\n }\n if (l === 0) {\n this.closedRoot = true;\n }\n else if (l < 0) {\n this.fail(`unmatched closing tag: ${name}.`);\n this.text += ``;\n }\n }\n /**\n * Resolves an entity. Makes any necessary well-formedness checks.\n *\n * @param entity The entity to resolve.\n *\n * @returns The parsed entity.\n */\n parseEntity(entity) {\n // startsWith would be significantly slower for this test.\n if (entity[0] !== \"#\") {\n const defined = this.ENTITIES[entity];\n if (defined !== undefined) {\n return defined;\n }\n this.fail(this.isName(entity) ? \"undefined entity.\" :\n \"disallowed character in entity name.\");\n return `&${entity};`;\n }\n let num = NaN;\n if (entity[1] === \"x\" && /^#x[0-9a-f]+$/i.test(entity)) {\n num = parseInt(entity.slice(2), 16);\n }\n else if (/^#[0-9]+$/.test(entity)) {\n num = parseInt(entity.slice(1), 10);\n }\n // The character reference is required to match the CHAR production.\n if (!this.isChar(num)) {\n this.fail(\"malformed character entity.\");\n return `&${entity};`;\n }\n return String.fromCodePoint(num);\n }\n}\nexports.SaxesParser = SaxesParser;\n//# sourceMappingURL=saxes.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/BlankNode\"), exports);\n__exportStar(require(\"./lib/DataFactory\"), exports);\n__exportStar(require(\"./lib/DefaultGraph\"), exports);\n__exportStar(require(\"./lib/Literal\"), exports);\n__exportStar(require(\"./lib/NamedNode\"), exports);\n__exportStar(require(\"./lib/Quad\"), exports);\n__exportStar(require(\"./lib/Variable\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlankNode = void 0;\n/**\n * A term that represents an RDF blank node with a label.\n */\nclass BlankNode {\n constructor(value) {\n this.termType = 'BlankNode';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'BlankNode' && other.value === this.value;\n }\n}\nexports.BlankNode = BlankNode;\n//# sourceMappingURL=BlankNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataFactory = void 0;\nconst BlankNode_1 = require(\"./BlankNode\");\nconst DefaultGraph_1 = require(\"./DefaultGraph\");\nconst Literal_1 = require(\"./Literal\");\nconst NamedNode_1 = require(\"./NamedNode\");\nconst Quad_1 = require(\"./Quad\");\nconst Variable_1 = require(\"./Variable\");\nlet dataFactoryCounter = 0;\n/**\n * A factory for instantiating RDF terms and quads.\n */\nclass DataFactory {\n constructor(options) {\n this.blankNodeCounter = 0;\n options = options || {};\n this.blankNodePrefix = options.blankNodePrefix || `df_${dataFactoryCounter++}_`;\n }\n /**\n * @param value The IRI for the named node.\n * @return A new instance of NamedNode.\n * @see NamedNode\n */\n namedNode(value) {\n return new NamedNode_1.NamedNode(value);\n }\n /**\n * @param value The optional blank node identifier.\n * @return A new instance of BlankNode.\n * If the `value` parameter is undefined a new identifier\n * for the blank node is generated for each call.\n * @see BlankNode\n */\n blankNode(value) {\n return new BlankNode_1.BlankNode(value || `${this.blankNodePrefix}${this.blankNodeCounter++}`);\n }\n /**\n * @param value The literal value.\n * @param languageOrDatatype The optional language or datatype.\n * If `languageOrDatatype` is a NamedNode,\n * then it is used for the value of `NamedNode.datatype`.\n * Otherwise `languageOrDatatype` is used for the value\n * of `NamedNode.language`.\n * @return A new instance of Literal.\n * @see Literal\n */\n literal(value, languageOrDatatype) {\n return new Literal_1.Literal(value, languageOrDatatype);\n }\n /**\n * This method is optional.\n * @param value The variable name\n * @return A new instance of Variable.\n * @see Variable\n */\n variable(value) {\n return new Variable_1.Variable(value);\n }\n /**\n * @return An instance of DefaultGraph.\n */\n defaultGraph() {\n return DefaultGraph_1.DefaultGraph.INSTANCE;\n }\n /**\n * @param subject The quad subject term.\n * @param predicate The quad predicate term.\n * @param object The quad object term.\n * @param graph The quad graph term.\n * @return A new instance of Quad.\n * @see Quad\n */\n quad(subject, predicate, object, graph) {\n return new Quad_1.Quad(subject, predicate, object, graph || this.defaultGraph());\n }\n /**\n * Create a deep copy of the given term using this data factory.\n * @param original An RDF term.\n * @return A deep copy of the given term.\n */\n fromTerm(original) {\n // TODO: remove nasty any casts when this TS bug has been fixed:\n // https://github.com/microsoft/TypeScript/issues/26933\n switch (original.termType) {\n case 'NamedNode':\n return this.namedNode(original.value);\n case 'BlankNode':\n return this.blankNode(original.value);\n case 'Literal':\n if (original.language) {\n return this.literal(original.value, original.language);\n }\n if (!original.datatype.equals(Literal_1.Literal.XSD_STRING)) {\n return this.literal(original.value, this.fromTerm(original.datatype));\n }\n return this.literal(original.value);\n case 'Variable':\n return this.variable(original.value);\n case 'DefaultGraph':\n return this.defaultGraph();\n case 'Quad':\n return this.quad(this.fromTerm(original.subject), this.fromTerm(original.predicate), this.fromTerm(original.object), this.fromTerm(original.graph));\n }\n }\n /**\n * Create a deep copy of the given quad using this data factory.\n * @param original An RDF quad.\n * @return A deep copy of the given quad.\n */\n fromQuad(original) {\n return this.fromTerm(original);\n }\n /**\n * Reset the internal blank node counter.\n */\n resetBlankNodeCounter() {\n this.blankNodeCounter = 0;\n }\n}\nexports.DataFactory = DataFactory;\n//# sourceMappingURL=DataFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultGraph = void 0;\n/**\n * A singleton term instance that represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass DefaultGraph {\n constructor() {\n this.termType = 'DefaultGraph';\n this.value = '';\n // Private constructor\n }\n equals(other) {\n return !!other && other.termType === 'DefaultGraph';\n }\n}\nexports.DefaultGraph = DefaultGraph;\nDefaultGraph.INSTANCE = new DefaultGraph();\n//# sourceMappingURL=DefaultGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Literal = void 0;\nconst NamedNode_1 = require(\"./NamedNode\");\n/**\n * A term that represents an RDF literal, containing a string with an optional language tag or datatype.\n */\nclass Literal {\n constructor(value, languageOrDatatype) {\n this.termType = 'Literal';\n this.value = value;\n if (typeof languageOrDatatype === 'string') {\n this.language = languageOrDatatype;\n this.datatype = Literal.RDF_LANGUAGE_STRING;\n }\n else if (languageOrDatatype) {\n this.language = '';\n this.datatype = languageOrDatatype;\n }\n else {\n this.language = '';\n this.datatype = Literal.XSD_STRING;\n }\n }\n equals(other) {\n return !!other && other.termType === 'Literal' && other.value === this.value &&\n other.language === this.language && other.datatype.equals(this.datatype);\n }\n}\nexports.Literal = Literal;\nLiteral.RDF_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString');\nLiteral.XSD_STRING = new NamedNode_1.NamedNode('http://www.w3.org/2001/XMLSchema#string');\n//# sourceMappingURL=Literal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NamedNode = void 0;\n/**\n * A term that contains an IRI.\n */\nclass NamedNode {\n constructor(value) {\n this.termType = 'NamedNode';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'NamedNode' && other.value === this.value;\n }\n}\nexports.NamedNode = NamedNode;\n//# sourceMappingURL=NamedNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Quad = void 0;\n/**\n * An instance of DefaultGraph represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass Quad {\n constructor(subject, predicate, object, graph) {\n this.termType = 'Quad';\n this.value = '';\n this.subject = subject;\n this.predicate = predicate;\n this.object = object;\n this.graph = graph;\n }\n equals(other) {\n // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n return !!other && (other.termType === 'Quad' || !other.termType) &&\n this.subject.equals(other.subject) &&\n this.predicate.equals(other.predicate) &&\n this.object.equals(other.object) &&\n this.graph.equals(other.graph);\n }\n}\nexports.Quad = Quad;\n//# sourceMappingURL=Quad.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variable = void 0;\n/**\n * A term that represents a variable.\n */\nclass Variable {\n constructor(value) {\n this.termType = 'Variable';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'Variable' && other.value === this.value;\n }\n}\nexports.Variable = Variable;\n//# sourceMappingURL=Variable.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/RdfXmlParser\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParseError = void 0;\n/**\n * An error that includes line and column in the error message.\n */\nclass ParseError extends Error {\n constructor(parser, message) {\n const saxParser = parser.saxParser;\n super(parser.trackPosition ? `Line ${saxParser.line} column ${saxParser.column + 1}: ${message}` : message);\n }\n}\nexports.ParseError = ParseError;\n//# sourceMappingURL=ParseError.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParseType = exports.RdfXmlParser = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst saxes_1 = require(\"@rubensworks/saxes\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst ParseError_1 = require(\"./ParseError\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst validate_iri_1 = require(\"validate-iri\");\nclass RdfXmlParser extends readable_stream_1.Transform {\n constructor(args) {\n super({ readableObjectMode: true });\n this.activeTagStack = [];\n this.nodeIds = {};\n if (args) {\n Object.assign(this, args);\n this.options = args;\n }\n if (!this.dataFactory) {\n this.dataFactory = new rdf_data_factory_1.DataFactory();\n }\n if (!this.baseIRI) {\n this.baseIRI = '';\n }\n if (!this.defaultGraph) {\n this.defaultGraph = this.dataFactory.defaultGraph();\n }\n if (this.validateUri !== false) {\n this.validateUri = true;\n }\n if (!this.iriValidationStrategy) {\n this.iriValidationStrategy = this.validateUri ? validate_iri_1.IriValidationStrategy.Pragmatic : validate_iri_1.IriValidationStrategy.None;\n }\n this.saxParser = new saxes_1.SaxesParser({ xmlns: true, position: this.trackPosition });\n this.attachSaxListeners();\n }\n /**\n * Parses the given text stream into a quad stream.\n * @param {NodeJS.EventEmitter} stream A text stream.\n * @return {RDF.Stream} A quad stream.\n */\n import(stream) {\n const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n stream.on('error', (error) => parsed.emit('error', error));\n stream.on('data', (data) => output.push(data));\n stream.on('end', () => output.push(null));\n const parsed = output.pipe(new RdfXmlParser(this.options));\n return parsed;\n }\n _transform(chunk, encoding, callback) {\n try {\n this.saxParser.write(chunk);\n }\n catch (e) {\n return callback(e);\n }\n callback();\n }\n /**\n * Create a new parse error instance.\n * @param {string} message An error message.\n * @return {Error} An error instance.\n */\n newParseError(message) {\n return new ParseError_1.ParseError(this, message);\n }\n /**\n * Convert the given value to a IRI by taking into account the baseIRI.\n *\n * This will follow the RDF/XML spec for converting values with baseIRIs to a IRI.\n *\n * @param {string} value The value to convert to an IRI.\n * @param {IActiveTag} activeTag The active tag.\n * @return {NamedNode} an IRI.\n */\n valueToUri(value, activeTag) {\n return this.uriToNamedNode((0, relative_to_absolute_iri_1.resolve)(value, activeTag.baseIRI));\n }\n /**\n * Convert the given value URI string to a named node.\n *\n * This throw an error if the URI is invalid.\n *\n * @param {string} uri A URI string.\n * @return {NamedNode} a named node.\n */\n uriToNamedNode(uri) {\n // Validate URI\n const uriValidationResult = (0, validate_iri_1.validateIri)(uri, this.iriValidationStrategy);\n if (uriValidationResult instanceof Error) {\n throw this.newParseError(uriValidationResult.message);\n }\n return this.dataFactory.namedNode(uri);\n }\n /**\n * Validate the given value as an NCName: https://www.w3.org/TR/xml-names/#NT-NCName\n * If it is invalid, an error will thrown emitted.\n * @param {string} value A value.\n */\n validateNcname(value) {\n // Validate term as an NCName: https://www.w3.org/TR/xml-names/#NT-NCName\n if (!RdfXmlParser.NCNAME_MATCHER.test(value)) {\n throw this.newParseError(`Not a valid NCName: ${value}`);\n }\n }\n attachSaxListeners() {\n this.saxParser.on('error', (error) => this.emit('error', error));\n this.saxParser.on('opentag', this.onTag.bind(this));\n this.saxParser.on('text', this.onText.bind(this));\n this.saxParser.on('closetag', this.onCloseTag.bind(this));\n this.saxParser.on('doctype', this.onDoctype.bind(this));\n }\n /**\n * Handle the given tag.\n * @param {SaxesTagNS} tag A SAX tag.\n */\n onTag(tag) {\n // Get parent tag\n const parentTag = this.activeTagStack.length\n ? this.activeTagStack[this.activeTagStack.length - 1] : null;\n let currentParseType = ParseType.RESOURCE;\n if (parentTag) {\n parentTag.hadChildren = true;\n currentParseType = parentTag.childrenParseType;\n }\n // Check if this tag needs to be converted to a string\n if (parentTag && parentTag.childrenStringTags) {\n // Convert this tag to a string\n const tagName = tag.name;\n let attributes = '';\n for (const attributeKey in tag.attributes) {\n attributes += ` ${attributeKey}=\"${tag.attributes[attributeKey].value}\"`;\n }\n const tagContents = `${tagName}${attributes}`;\n const tagString = `<${tagContents}>`;\n parentTag.childrenStringTags.push(tagString);\n // Inherit the array, so that deeper tags are appended to this same array\n const stringActiveTag = { childrenStringTags: parentTag.childrenStringTags };\n stringActiveTag.childrenStringEmitClosingTag = ``;\n this.activeTagStack.push(stringActiveTag);\n // Halt any further processing\n return;\n }\n const activeTag = {};\n if (parentTag) {\n // Inherit language scope and baseIRI from parent\n activeTag.language = parentTag.language;\n activeTag.baseIRI = parentTag.baseIRI;\n }\n else {\n activeTag.baseIRI = this.baseIRI;\n }\n this.activeTagStack.push(activeTag);\n if (currentParseType === ParseType.RESOURCE) {\n this.onTagResource(tag, activeTag, parentTag, !parentTag);\n }\n else { // currentParseType === ParseType.PROPERTY\n this.onTagProperty(tag, activeTag, parentTag);\n }\n }\n /**\n * Handle the given node element in resource-mode.\n * @param {SaxesTagNS} tag A SAX tag.\n * @param {IActiveTag} activeTag The currently active tag.\n * @param {IActiveTag} parentTag The parent tag or null.\n * @param {boolean} rootTag If we are currently processing the root tag.\n */\n onTagResource(tag, activeTag, parentTag, rootTag) {\n activeTag.childrenParseType = ParseType.PROPERTY;\n // Assume that the current node is a _typed_ node (2.13), unless we find an rdf:Description as node name\n let typedNode = true;\n if (tag.uri === RdfXmlParser.RDF) {\n // Check forbidden property element names\n if (!rootTag && RdfXmlParser.FORBIDDEN_NODE_ELEMENTS.indexOf(tag.local) >= 0) {\n throw this.newParseError(`Illegal node element name: ${tag.local}`);\n }\n switch (tag.local) {\n case 'RDF':\n // Tags under must always be resources\n activeTag.childrenParseType = ParseType.RESOURCE;\n case 'Description':\n typedNode = false;\n }\n }\n const predicates = [];\n const objects = [];\n // Collect all attributes as triples\n // Assign subject value only after all attributes have been processed, because baseIRI may change the final val\n let activeSubjectValue = null;\n let claimSubjectNodeId = false;\n let subjectValueBlank = false;\n let explicitType = null;\n for (const attributeKey in tag.attributes) {\n const attribute = tag.attributes[attributeKey];\n if (parentTag && attribute.uri === RdfXmlParser.RDF) {\n switch (attribute.local) {\n case 'about':\n if (activeSubjectValue) {\n throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, \\\nwhile ${attribute.value} and ${activeSubjectValue} where found.`);\n }\n activeSubjectValue = attribute.value;\n continue;\n case 'ID':\n if (activeSubjectValue) {\n throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, \\\nwhile ${attribute.value} and ${activeSubjectValue} where found.`);\n }\n this.validateNcname(attribute.value);\n activeSubjectValue = '#' + attribute.value;\n claimSubjectNodeId = true;\n continue;\n case 'nodeID':\n if (activeSubjectValue) {\n throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, \\\nwhile ${attribute.value} and ${activeSubjectValue} where found.`);\n }\n this.validateNcname(attribute.value);\n activeSubjectValue = attribute.value;\n subjectValueBlank = true;\n continue;\n case 'bagID':\n throw this.newParseError(`rdf:bagID is not supported.`);\n case 'type':\n // Emit the rdf:type later as named node instead of the default literal\n explicitType = attribute.value;\n continue;\n case 'aboutEach':\n throw this.newParseError(`rdf:aboutEach is not supported.`);\n case 'aboutEachPrefix':\n throw this.newParseError(`rdf:aboutEachPrefix is not supported.`);\n case 'li':\n throw this.newParseError(`rdf:li on node elements are not supported.`);\n }\n }\n else if (attribute.uri === RdfXmlParser.XML) {\n if (attribute.local === 'lang') {\n activeTag.language = attribute.value === '' ? null : attribute.value.toLowerCase();\n continue;\n }\n else if (attribute.local === 'base') {\n // SAX Parser does not expand xml:base, based on DOCTYPE, so we have to do it manually\n activeTag.baseIRI = (0, relative_to_absolute_iri_1.resolve)(attribute.value, activeTag.baseIRI);\n continue;\n }\n }\n // Interpret attributes at this point as properties on this node,\n // but we ignore attributes that have no prefix or known expanded URI\n if (attribute.prefix !== 'xml' && attribute.uri) {\n predicates.push(this.uriToNamedNode(attribute.uri + attribute.local));\n objects.push(attribute.value);\n }\n }\n // Create the subject value _after_ all attributes have been processed\n if (activeSubjectValue !== null) {\n activeTag.subject = subjectValueBlank\n ? this.dataFactory.blankNode(activeSubjectValue) : this.valueToUri(activeSubjectValue, activeTag);\n if (claimSubjectNodeId) {\n this.claimNodeId(activeTag.subject);\n }\n }\n // Force the creation of a subject if it doesn't exist yet\n if (!activeTag.subject) {\n activeTag.subject = this.dataFactory.blankNode();\n }\n // Emit the type if we're at a typed node\n if (typedNode) {\n const type = this.uriToNamedNode(tag.uri + tag.local);\n this.emitTriple(activeTag.subject, this.dataFactory.namedNode(RdfXmlParser.RDF + 'type'), type, parentTag ? parentTag.reifiedStatementId : null);\n }\n if (parentTag) {\n // If the parent tag defined a predicate, add the current tag as property value\n if (parentTag.predicate) {\n if (parentTag.childrenCollectionSubject) {\n // RDF:List-based properties\n const linkTerm = this.dataFactory.blankNode();\n // Emit

OR \n this.emitTriple(parentTag.childrenCollectionSubject, parentTag.childrenCollectionPredicate, linkTerm, parentTag.reifiedStatementId);\n // Emit value\n this.emitTriple(linkTerm, this.dataFactory.namedNode(RdfXmlParser.RDF + 'first'), activeTag.subject, activeTag.reifiedStatementId);\n // Store in the parent node\n parentTag.childrenCollectionSubject = linkTerm;\n parentTag.childrenCollectionPredicate = this.dataFactory.namedNode(RdfXmlParser.RDF + 'rest');\n }\n else { // !parentTag.predicateEmitted\n // Set-based properties\n this.emitTriple(parentTag.subject, parentTag.predicate, activeTag.subject, parentTag.reifiedStatementId);\n // Emit pending properties on the parent tag that had no defined subject yet.\n for (let i = 0; i < parentTag.predicateSubPredicates.length; i++) {\n this.emitTriple(activeTag.subject, parentTag.predicateSubPredicates[i], parentTag.predicateSubObjects[i], null);\n }\n // Cleanup so we don't emit them again when the parent tag is closed\n parentTag.predicateSubPredicates = [];\n parentTag.predicateSubObjects = [];\n parentTag.predicateEmitted = true;\n }\n }\n // Emit all collected triples\n for (let i = 0; i < predicates.length; i++) {\n const object = this.dataFactory.literal(objects[i], activeTag.datatype || activeTag.language);\n this.emitTriple(activeTag.subject, predicates[i], object, parentTag.reifiedStatementId);\n }\n // Emit the rdf:type as named node instead of literal\n if (explicitType) {\n this.emitTriple(activeTag.subject, this.dataFactory.namedNode(RdfXmlParser.RDF + 'type'), this.uriToNamedNode(explicitType), null);\n }\n }\n }\n /**\n * Handle the given property element in property-mode.\n * @param {SaxesTagNS} tag A SAX tag.\n * @param {IActiveTag} activeTag The currently active tag.\n * @param {IActiveTag} parentTag The parent tag or null.\n */\n onTagProperty(tag, activeTag, parentTag) {\n activeTag.childrenParseType = ParseType.RESOURCE;\n activeTag.subject = parentTag.subject; // Inherit parent subject\n if (tag.uri === RdfXmlParser.RDF && tag.local === 'li') {\n // Convert rdf:li to rdf:_x\n if (!parentTag.listItemCounter) {\n parentTag.listItemCounter = 1;\n }\n activeTag.predicate = this.uriToNamedNode(tag.uri + '_' + parentTag.listItemCounter++);\n }\n else {\n activeTag.predicate = this.uriToNamedNode(tag.uri + tag.local);\n }\n // Check forbidden property element names\n if (tag.uri === RdfXmlParser.RDF\n && RdfXmlParser.FORBIDDEN_PROPERTY_ELEMENTS.indexOf(tag.local) >= 0) {\n throw this.newParseError(`Illegal property element name: ${tag.local}`);\n }\n activeTag.predicateSubPredicates = [];\n activeTag.predicateSubObjects = [];\n let parseType = false;\n let attributedProperty = false;\n // Collect all attributes as triples\n // Assign subject value only after all attributes have been processed, because baseIRI may change the final val\n let activeSubSubjectValue = null;\n let subSubjectValueBlank = true;\n const predicates = [];\n const objects = [];\n for (const propertyAttributeKey in tag.attributes) {\n const propertyAttribute = tag.attributes[propertyAttributeKey];\n if (propertyAttribute.uri === RdfXmlParser.RDF) {\n switch (propertyAttribute.local) {\n case 'resource':\n if (activeSubSubjectValue) {\n throw this.newParseError(`Found both rdf:resource (${propertyAttribute.value}) and rdf:nodeID (${activeSubSubjectValue}).`);\n }\n if (parseType) {\n throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:resource (${propertyAttribute.value})`);\n }\n activeTag.hadChildren = true;\n activeSubSubjectValue = propertyAttribute.value;\n subSubjectValueBlank = false;\n continue;\n case 'datatype':\n if (attributedProperty) {\n throw this.newParseError(`Found both non-rdf:* property attributes and rdf:datatype (${propertyAttribute.value}).`);\n }\n if (parseType) {\n throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${propertyAttribute.value})`);\n }\n activeTag.datatype = this.valueToUri(propertyAttribute.value, activeTag);\n continue;\n case 'nodeID':\n if (attributedProperty) {\n throw this.newParseError(`Found both non-rdf:* property attributes and rdf:nodeID (${propertyAttribute.value}).`);\n }\n if (activeTag.hadChildren) {\n throw this.newParseError(`Found both rdf:resource and rdf:nodeID (${propertyAttribute.value}).`);\n }\n if (parseType) {\n throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID (${propertyAttribute.value})`);\n }\n this.validateNcname(propertyAttribute.value);\n activeTag.hadChildren = true;\n activeSubSubjectValue = propertyAttribute.value;\n subSubjectValueBlank = true;\n continue;\n case 'bagID':\n throw this.newParseError(`rdf:bagID is not supported.`);\n case 'parseType':\n // Validation\n if (attributedProperty) {\n throw this.newParseError(`rdf:parseType is not allowed when non-rdf:* property attributes are present`);\n }\n if (activeTag.datatype) {\n throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${activeTag.datatype.value})`);\n }\n if (activeSubSubjectValue) {\n throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID or rdf:resource (${activeSubSubjectValue})`);\n }\n if (propertyAttribute.value === 'Resource') {\n parseType = true;\n activeTag.childrenParseType = ParseType.PROPERTY;\n // Turn this property element into a node element\n const nestedBNode = this.dataFactory.blankNode();\n this.emitTriple(activeTag.subject, activeTag.predicate, nestedBNode, activeTag.reifiedStatementId);\n activeTag.subject = nestedBNode;\n activeTag.predicate = null;\n }\n else if (propertyAttribute.value === 'Collection') {\n parseType = true;\n // Interpret children as being part of an rdf:List\n activeTag.hadChildren = true;\n activeTag.childrenCollectionSubject = activeTag.subject;\n activeTag.childrenCollectionPredicate = activeTag.predicate;\n subSubjectValueBlank = false;\n }\n else if (propertyAttribute.value === 'Literal') {\n parseType = true;\n // Interpret children as being part of a literal string\n activeTag.childrenTagsToString = true;\n activeTag.childrenStringTags = [];\n }\n continue;\n case 'ID':\n this.validateNcname(propertyAttribute.value);\n activeTag.reifiedStatementId = this.valueToUri('#' + propertyAttribute.value, activeTag);\n this.claimNodeId(activeTag.reifiedStatementId);\n continue;\n }\n }\n else if (propertyAttribute.uri === RdfXmlParser.XML && propertyAttribute.local === 'lang') {\n activeTag.language = propertyAttribute.value === ''\n ? null : propertyAttribute.value.toLowerCase();\n continue;\n }\n // Interpret attributes at this point as properties via implicit blank nodes on the property,\n // but we ignore attributes that have no prefix or known expanded URI\n if (propertyAttribute.prefix !== 'xml' && propertyAttribute.prefix !== 'xmlns'\n && (propertyAttribute.prefix !== '' || propertyAttribute.local !== 'xmlns')\n && propertyAttribute.uri) {\n if (parseType || activeTag.datatype) {\n throw this.newParseError(`Found illegal rdf:* properties on property element with attribute: ${propertyAttribute.value}`);\n }\n activeTag.hadChildren = true;\n attributedProperty = true;\n predicates.push(this.uriToNamedNode(propertyAttribute.uri + propertyAttribute.local));\n objects.push(this.dataFactory.literal(propertyAttribute.value, activeTag.datatype || activeTag.language));\n }\n }\n // Create the subject value _after_ all attributes have been processed\n if (activeSubSubjectValue !== null) {\n const subjectParent = activeTag.subject;\n activeTag.subject = subSubjectValueBlank\n ? this.dataFactory.blankNode(activeSubSubjectValue) : this.valueToUri(activeSubSubjectValue, activeTag);\n this.emitTriple(subjectParent, activeTag.predicate, activeTag.subject, activeTag.reifiedStatementId);\n // Emit our buffered triples\n for (let i = 0; i < predicates.length; i++) {\n this.emitTriple(activeTag.subject, predicates[i], objects[i], null);\n }\n activeTag.predicateEmitted = true;\n }\n else if (subSubjectValueBlank) {\n // The current property element has no defined subject\n // Let's buffer the properties until the child node defines a subject,\n // or if the tag closes.\n activeTag.predicateSubPredicates = predicates;\n activeTag.predicateSubObjects = objects;\n activeTag.predicateEmitted = false;\n }\n }\n /**\n * Emit the given triple to the stream.\n * @param {Term} subject A subject term.\n * @param {Term} predicate A predicate term.\n * @param {Term} object An object term.\n * @param {Term} statementId An optional resource that identifies the triple.\n * If truthy, then the given triple will also be emitted reified.\n */\n emitTriple(subject, predicate, object, statementId) {\n this.push(this.dataFactory.quad(subject, predicate, object, this.defaultGraph));\n // Reify triple\n if (statementId) {\n this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'type'), this.dataFactory.namedNode(RdfXmlParser.RDF + 'Statement'), this.defaultGraph));\n this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'subject'), subject, this.defaultGraph));\n this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'predicate'), predicate, this.defaultGraph));\n this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'object'), object, this.defaultGraph));\n }\n }\n /**\n * Register the given term as a node ID.\n * If one was already registered, this will emit an error.\n *\n * This is used to check duplicate occurrences of rdf:ID in scope of the baseIRI.\n * @param {Term} term An RDF term.\n */\n claimNodeId(term) {\n if (!this.allowDuplicateRdfIds) {\n if (this.nodeIds[term.value]) {\n throw this.newParseError(`Found multiple occurrences of rdf:ID='${term.value}'.`);\n }\n this.nodeIds[term.value] = true;\n }\n }\n /**\n * Handle the given text string.\n * @param {string} text A parsed text string.\n */\n onText(text) {\n const activeTag = this.activeTagStack.length\n ? this.activeTagStack[this.activeTagStack.length - 1] : null;\n if (activeTag) {\n if (activeTag.childrenStringTags) {\n activeTag.childrenStringTags.push(text);\n }\n else if (activeTag.predicate) {\n activeTag.text = text;\n }\n }\n }\n /**\n * Handle the closing of the last tag.\n */\n onCloseTag() {\n const poppedTag = this.activeTagStack.pop();\n // If we were converting a tag to a string, and the tag was not self-closing, close it here.\n if (poppedTag.childrenStringEmitClosingTag) {\n poppedTag.childrenStringTags.push(poppedTag.childrenStringEmitClosingTag);\n }\n // Set the literal value if we were collecting XML tags to string\n if (poppedTag.childrenTagsToString) {\n poppedTag.datatype = this.dataFactory.namedNode(RdfXmlParser.RDF + 'XMLLiteral');\n poppedTag.text = poppedTag.childrenStringTags.join('');\n poppedTag.hadChildren = false; // Force a literal triple to be emitted hereafter\n }\n if (poppedTag.childrenCollectionSubject) {\n // Terminate the rdf:List\n this.emitTriple(poppedTag.childrenCollectionSubject, poppedTag.childrenCollectionPredicate, this.dataFactory.namedNode(RdfXmlParser.RDF + 'nil'), poppedTag.reifiedStatementId);\n }\n else if (poppedTag.predicate) {\n if (!poppedTag.hadChildren && poppedTag.childrenParseType !== ParseType.PROPERTY) {\n // Property element contains text\n this.emitTriple(poppedTag.subject, poppedTag.predicate, this.dataFactory.literal(poppedTag.text || '', poppedTag.datatype || poppedTag.language), poppedTag.reifiedStatementId);\n }\n else if (!poppedTag.predicateEmitted) {\n // Emit remaining properties on an anonymous property element\n const subject = this.dataFactory.blankNode();\n this.emitTriple(poppedTag.subject, poppedTag.predicate, subject, poppedTag.reifiedStatementId);\n for (let i = 0; i < poppedTag.predicateSubPredicates.length; i++) {\n this.emitTriple(subject, poppedTag.predicateSubPredicates[i], poppedTag.predicateSubObjects[i], null);\n }\n }\n }\n }\n /**\n * Fetch local DOCTYPE ENTITY's and make the parser recognise them.\n * @param {string} doctype The read doctype.\n */\n onDoctype(doctype) {\n doctype.replace(//g, (match, prefix, uri) => {\n this.saxParser.ENTITIES[prefix] = uri;\n return '';\n });\n }\n}\nexports.RdfXmlParser = RdfXmlParser;\nRdfXmlParser.MIME_TYPE = 'application/rdf+xml';\nRdfXmlParser.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nRdfXmlParser.XML = 'http://www.w3.org/XML/1998/namespace';\nRdfXmlParser.FORBIDDEN_NODE_ELEMENTS = [\n 'RDF',\n 'ID',\n 'about',\n 'bagID',\n 'parseType',\n 'resource',\n 'nodeID',\n 'li',\n 'aboutEach',\n 'aboutEachPrefix',\n];\nRdfXmlParser.FORBIDDEN_PROPERTY_ELEMENTS = [\n 'Description',\n 'RDF',\n 'ID',\n 'about',\n 'bagID',\n 'parseType',\n 'resource',\n 'nodeID',\n 'aboutEach',\n 'aboutEachPrefix',\n];\n// tslint:disable-next-line:max-line-length\nRdfXmlParser.NCNAME_MATCHER = /^([A-Za-z\\xC0-\\xD6\\xD8-\\xF6\\u{F8}-\\u{2FF}\\u{370}-\\u{37D}\\u{37F}-\\u{1FFF}\\u{200C}-\\u{200D}\\u{2070}-\\u{218F}\\u{2C00}-\\u{2FEF}\\u{3001}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFFD}\\u{10000}-\\u{EFFFF}_])([A-Za-z\\xC0-\\xD6\\xD8-\\xF6\\u{F8}-\\u{2FF}\\u{370}-\\u{37D}\\u{37F}-\\u{1FFF}\\u{200C}-\\u{200D}\\u{2070}-\\u{218F}\\u{2C00}-\\u{2FEF}\\u{3001}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFFD}\\u{10000}-\\u{EFFFF}_\\-.0-9#xB7\\u{0300}-\\u{036F}\\u{203F}-\\u{2040}])*$/u;\nvar ParseType;\n(function (ParseType) {\n ParseType[ParseType[\"RESOURCE\"] = 0] = \"RESOURCE\";\n ParseType[ParseType[\"PROPERTY\"] = 1] = \"PROPERTY\";\n})(ParseType || (exports.ParseType = ParseType = {}));\n//# sourceMappingURL=RdfXmlParser.js.map","'use strict'\n\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n signal.addEventListener('abort', onAbort)\n eos(stream, () => signal.removeEventListener('abort', onAbort))\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.writableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n\n // TODO: Webstreams\n // if (isReadableStream(body)) {\n // return _duplexify({ readable: Readable.fromWeb(body) });\n // }\n\n // TODO: Webstreams\n // if (isWritableStream(body)) {\n // return _duplexify({ writable: Writable.fromWeb(body) });\n // }\n\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n\n // TODO: Webstreams.\n // if (\n // isReadableStream(body?.readable) &&\n // isWritableStream(body?.writable)\n // ) {\n // return Duplexify.fromWeb(body);\n // }\n\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst {\n ArrayPrototypePush,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n validateInteger(concurrency, 'concurrency', 1)\n return async function* map() {\n var _options$signal, _options$signal2\n const ac = new AbortController()\n const stream = this\n const queue = []\n const signal = ac.signal\n const signalOpt = {\n signal\n }\n const abort = () => ac.abort()\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n abort()\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal2 = options.signal) === null || _options$signal2 === undefined\n ? undefined\n : _options$signal2.addEventListener('abort', abort)\n let next\n let resume\n let done = false\n function onDone() {\n done = true\n }\n async function pump() {\n try {\n for await (let val of stream) {\n var _val\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n } catch (err) {\n val = PromiseReject(err)\n }\n if (val === kEmpty) {\n continue\n }\n if (typeof ((_val = val) === null || _val === undefined ? undefined : _val.catch) === 'function') {\n val.catch(onDone)\n }\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && queue.length && queue.length >= concurrency) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, undefined, onDone)\n queue.push(val)\n } finally {\n var _options$signal3\n done = true\n if (next) {\n next()\n next = null\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal3 = options.signal) === null || _options$signal3 === undefined\n ? undefined\n : _options$signal3.removeEventListener('abort', abort)\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n if (resume) {\n resume()\n resume = null\n }\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n ac.abort()\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal5\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal6\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal9\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal9 = options.signal) !== null &&\n _options$signal9 !== undefined &&\n _options$signal9.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal10\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal10 = options.signal) !== null &&\n _options$signal10 !== undefined &&\n _options$signal10.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal11\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal11 = options.signal) !== null &&\n _options$signal11 !== undefined &&\n _options$signal11.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n } else {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs,\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableEnded\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n }\n await wait()\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.addEventListener('abort', abort)\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.removeEventListener('abort', abort)\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableEnded(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n }\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.readableObjectMode)\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this.ended = false\n this.endEmitted = false\n this.reading = false\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true\n\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false\n this.emittedReadable = false\n this.readableListening = false\n this.resumeScheduled = false\n this[kPaused] = null\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Has it been destroyed.\n this.destroyed = false\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.multiAwaitDrain = false\n\n // If true, a maybeReadMore has been scheduled.\n this.readingMore = false\n this.dataEmitted = false\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.reading = false\n onEofChunk(stream, state)\n } else if (state.objectMode || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.reading = false\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.reading = false\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if (state.needReadable) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if (state.objectMode) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.emittedReadable = false\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = state.needReadable\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.reading = true\n state.sync = true\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.sync = false\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n if (state.flowing) {\n pause()\n }\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? 16 : 16 * 1024\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { Symbol, SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\nconst kDestroyed = Symbol('kDestroyed')\nconst kIsErrored = Symbol('kIsErrored')\nconst kIsReadable = Symbol('kIsReadable')\nconst kIsDisturbed = Symbol('kIsDisturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n kDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n isClosed,\n isDestroyed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n *\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('stream')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/Resolve\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeDotSegmentsOfPath = exports.removeDotSegments = exports.resolve = void 0;\n/**\n * Convert the given relative IRI to an absolute IRI\n * by taking into account the given optional baseIRI.\n *\n * @param {string} relativeIRI The relative IRI to convert to an absolute IRI.\n * @param {string} baseIRI The optional base IRI.\n * @return {string} an absolute IRI.\n */\nfunction resolve(relativeIRI, baseIRI) {\n baseIRI = baseIRI || '';\n const baseFragmentPos = baseIRI.indexOf('#');\n // Ignore any fragments in the base IRI\n if (baseFragmentPos > 0) {\n baseIRI = baseIRI.substr(0, baseFragmentPos);\n }\n // Convert empty value directly to base IRI\n if (!relativeIRI.length) {\n // At this point, the baseIRI MUST be absolute, otherwise we error\n if (baseIRI.indexOf(':') < 0) {\n throw new Error(`Found invalid baseIRI '${baseIRI}' for value '${relativeIRI}'`);\n }\n return baseIRI;\n }\n // If the value starts with a query character, concat directly (but strip the existing query)\n if (relativeIRI.startsWith('?')) {\n const baseQueryPos = baseIRI.indexOf('?');\n if (baseQueryPos > 0) {\n baseIRI = baseIRI.substr(0, baseQueryPos);\n }\n return baseIRI + relativeIRI;\n }\n // If the value starts with a fragment character, concat directly\n if (relativeIRI.startsWith('#')) {\n return baseIRI + relativeIRI;\n }\n // Ignore baseIRI if it is empty\n if (!baseIRI.length) {\n const relativeColonPos = relativeIRI.indexOf(':');\n if (relativeColonPos < 0) {\n throw new Error(`Found invalid relative IRI '${relativeIRI}' for a missing baseIRI`);\n }\n return removeDotSegmentsOfPath(relativeIRI, relativeColonPos);\n }\n // Ignore baseIRI if the value is absolute\n const valueColonPos = relativeIRI.indexOf(':');\n if (valueColonPos >= 0) {\n return removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n // At this point, the baseIRI MUST be absolute, otherwise we error\n const baseColonPos = baseIRI.indexOf(':');\n if (baseColonPos < 0) {\n throw new Error(`Found invalid baseIRI '${baseIRI}' for value '${relativeIRI}'`);\n }\n const baseIRIScheme = baseIRI.substr(0, baseColonPos + 1);\n // Inherit the baseIRI scheme if the value starts with '//'\n if (relativeIRI.indexOf('//') === 0) {\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n // Check cases where '://' occurs in the baseIRI, and where there is no '/' after a ':' anymore.\n let baseSlashAfterColonPos;\n if (baseIRI.indexOf('//', baseColonPos) === baseColonPos + 1) {\n // If there is no additional '/' after the '//'.\n baseSlashAfterColonPos = baseIRI.indexOf('/', baseColonPos + 3);\n if (baseSlashAfterColonPos < 0) {\n // If something other than a '/' follows the '://', append the value after a '/',\n // otherwise, prefix the value with only the baseIRI scheme.\n if (baseIRI.length > baseColonPos + 3) {\n return baseIRI + '/' + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n else {\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n }\n }\n else {\n // If there is not even a single '/' after the ':'\n baseSlashAfterColonPos = baseIRI.indexOf('/', baseColonPos + 1);\n if (baseSlashAfterColonPos < 0) {\n // If we don't have a '/' after the ':',\n // prefix the value with only the baseIRI scheme.\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n }\n // If the value starts with a '/', then prefix it with everything before the first effective slash of the base IRI.\n if (relativeIRI.indexOf('/') === 0) {\n return baseIRI.substr(0, baseSlashAfterColonPos) + removeDotSegments(relativeIRI);\n }\n let baseIRIPath = baseIRI.substr(baseSlashAfterColonPos);\n const baseIRILastSlashPos = baseIRIPath.lastIndexOf('/');\n // Ignore everything after the last '/' in the baseIRI path\n if (baseIRILastSlashPos >= 0 && baseIRILastSlashPos < baseIRIPath.length - 1) {\n baseIRIPath = baseIRIPath.substr(0, baseIRILastSlashPos + 1);\n // Also remove the first character of the relative path if it starts with '.' (and not '..' or './')\n // This change is only allowed if there is something else following the path\n if (relativeIRI[0] === '.' && relativeIRI[1] !== '.' && relativeIRI[1] !== '/' && relativeIRI[2]) {\n relativeIRI = relativeIRI.substr(1);\n }\n }\n // Prefix the value with the baseIRI path where\n relativeIRI = baseIRIPath + relativeIRI;\n // Remove dot segment from the IRI\n relativeIRI = removeDotSegments(relativeIRI);\n // Prefix our transformed value with the part of the baseIRI until the first '/' after the first ':'.\n return baseIRI.substr(0, baseSlashAfterColonPos) + relativeIRI;\n}\nexports.resolve = resolve;\n/**\n * Remove dot segments from the given path,\n * as described in https://www.ietf.org/rfc/rfc3986.txt (page 32).\n * @param {string} path An IRI path.\n * @return {string} A path, will always start with a '/'.\n */\nfunction removeDotSegments(path) {\n // Prepare a buffer with segments between each '/.\n // Each segment represents an array of characters.\n const segmentBuffers = [];\n let i = 0;\n while (i < path.length) {\n // Remove '/.' or '/..'\n switch (path[i]) {\n case '/':\n if (path[i + 1] === '.') {\n if (path[i + 2] === '.') {\n // Start a new segment if we find an invalid character after the '.'\n if (!isCharacterAllowedAfterRelativePathSegment(path[i + 3])) {\n segmentBuffers.push([]);\n i++;\n break;\n }\n // Go to parent directory,\n // so we remove a parent segment\n segmentBuffers.pop();\n // Ensure that we end with a slash if there is a trailing '/..'\n if (!path[i + 3]) {\n segmentBuffers.push([]);\n }\n i += 3;\n }\n else {\n // Start a new segment if we find an invalid character after the '.'\n if (!isCharacterAllowedAfterRelativePathSegment(path[i + 2])) {\n segmentBuffers.push([]);\n i++;\n break;\n }\n // Ensure that we end with a slash if there is a trailing '/.'\n if (!path[i + 2]) {\n segmentBuffers.push([]);\n }\n // Go to the current directory,\n // so we do nothing\n i += 2;\n }\n }\n else {\n // Start a new segment\n segmentBuffers.push([]);\n i++;\n }\n break;\n case '#':\n case '?':\n // Query and fragment string should be appended unchanged\n if (!segmentBuffers.length) {\n segmentBuffers.push([]);\n }\n segmentBuffers[segmentBuffers.length - 1].push(path.substr(i));\n // Break the while loop\n i = path.length;\n break;\n default:\n // Not a special character, just append it to our buffer\n if (!segmentBuffers.length) {\n segmentBuffers.push([]);\n }\n segmentBuffers[segmentBuffers.length - 1].push(path[i]);\n i++;\n break;\n }\n }\n return '/' + segmentBuffers.map((buffer) => buffer.join('')).join('/');\n}\nexports.removeDotSegments = removeDotSegments;\n/**\n * Removes dot segments of the given IRI.\n * @param {string} iri An IRI (or part of IRI).\n * @param {number} colonPosition The position of the first ':' in the IRI.\n * @return {string} The IRI where dot segments were removed.\n */\nfunction removeDotSegmentsOfPath(iri, colonPosition) {\n // Determine where we should start looking for the first '/' that indicates the start of the path\n let searchOffset = colonPosition + 1;\n if (colonPosition >= 0) {\n if (iri[colonPosition + 1] === '/' && iri[colonPosition + 2] === '/') {\n searchOffset = colonPosition + 3;\n }\n }\n else {\n if (iri[0] === '/' && iri[1] === '/') {\n searchOffset = 2;\n }\n }\n // Determine the path\n const pathSeparator = iri.indexOf('/', searchOffset);\n if (pathSeparator < 0) {\n return iri;\n }\n const base = iri.substr(0, pathSeparator);\n const path = iri.substr(pathSeparator);\n // Remove dot segments from the path\n return base + removeDotSegments(path);\n}\nexports.removeDotSegmentsOfPath = removeDotSegmentsOfPath;\nfunction isCharacterAllowedAfterRelativePathSegment(character) {\n return !character || character === '#' || character === '?' || character === '/';\n}\n//# sourceMappingURL=Resolve.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/Validate\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateIri = exports.IriValidationStrategy = void 0;\nfunction buildAbsoluteIriRfc3987Regex() {\n // The syntax is defined in https://www.rfc-editor.org/rfc/rfc3987#section-2.2\n // Rules are defined in reversed order\n const sub_delims_raw = `!$&'()*+,;=`;\n const sub_delims = `[${sub_delims_raw}]`;\n const pct_encoded = `%[a-fA-F0-9]{2}`;\n const dec_octet = '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\n const ipv4address = `${dec_octet}\\\\.${dec_octet}\\\\.${dec_octet}\\\\.${dec_octet}`;\n const h16 = `[a-fA-F0-9]{1,4}`;\n const ls32 = `(${h16}:${h16}|${ipv4address})`;\n const ipv6address = `((${h16}:){6}${ls32}|::(${h16}:){5}${ls32}|(${h16})?::(${h16}:){4}${ls32}|((${h16}:){0,1}${h16})?::(${h16}:){3}${ls32}|((${h16}:){0,2}${h16})?::(${h16}:){2}${ls32}|((${h16}:){0,3}${h16})?::${h16}:${ls32}|((${h16}:){0,4}${h16})?::${ls32}|((${h16}:){0,5}${h16})?::${h16}|((${h16}:){0,6}${h16})?::)`;\n const ipvfuture = `v[a-fA-F0-9]+\\\\.(${sub_delims}|${sub_delims}|\":)+`;\n const ip_literal = `\\\\[(${ipv6address}|${ipvfuture})\\\\]`;\n const port = `[0-9]*`;\n const scheme = `[a-zA-Z][a-zA-Z0-9+\\\\-.]*`;\n const iprivate_raw = `\\u{E000}-\\u{F8FF}\\u{F0000}-\\u{FFFFD}\\u{100000}-\\u{10FFFD}`;\n const iprivate = `[${iprivate_raw}]`;\n const ucschar_raw = `\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}`;\n const iunreserved_raw = `a-zA-Z0-9\\\\-._~${ucschar_raw}`;\n const iunreserved = `[${iunreserved_raw}]`;\n const ipchar = `(${iunreserved}|${pct_encoded}|${sub_delims}|[:@])*`;\n const ifragment = `(${ipchar}|[\\\\/?])*`;\n const iquery = `(${ipchar}|${iprivate}|[\\\\/?])*`;\n const isegment_nz = `(${ipchar})+`;\n const isegment = `(${ipchar})*`;\n const ipath_empty = '';\n const ipath_rootless = `${isegment_nz}(\\\\/${isegment})*`;\n const ipath_absolute = `\\\\/(${isegment_nz}(\\\\/${isegment})*)?`;\n const ipath_abempty = `(\\\\/${isegment})*`;\n const ireg_name = `(${iunreserved}|${pct_encoded}|${sub_delims})*`;\n const ihost = `(${ip_literal}|${ipv4address}|${ireg_name})`;\n const iuserinfo = `(${iunreserved}|${pct_encoded}|${sub_delims}|:)*`;\n const iauthority = `(${iuserinfo}@)?${ihost}(:${port})?`;\n const ihier_part = `(\\\\/\\\\/${iauthority}${ipath_abempty}|${ipath_absolute}|${ipath_rootless}|${ipath_empty})`;\n const iri = `^${scheme}:${ihier_part}(\\\\?${iquery})?(#${ifragment})?$`;\n return new RegExp(iri, 'u');\n}\nconst STRICT_IRI_REGEX = buildAbsoluteIriRfc3987Regex();\n// eslint-disable-next-line no-control-regex\nconst PRAGMATIC_IRI_REGEX = /^[A-Za-z][\\d+-.A-Za-z]*:[^\\u0000-\\u0020\"<>\\\\^`{|}]*$/u;\n/**\n * Possible ways of validating an IRI\n */\nvar IriValidationStrategy;\n(function (IriValidationStrategy) {\n /**\n * Validates the IRI according to RFC 3987.\n */\n IriValidationStrategy[\"Strict\"] = \"strict\";\n /**\n * Validates that the IRI has a valid scheme and does not contain any character forbidden by the Turtle specification.\n */\n IriValidationStrategy[\"Pragmatic\"] = \"pragmatic\";\n /**\n * Does not validate the IRI at all.\n */\n IriValidationStrategy[\"None\"] = \"none\";\n})(IriValidationStrategy = exports.IriValidationStrategy || (exports.IriValidationStrategy = {}));\n/**\n * Validate a given IRI according to the given strategy.\n *\n * By default the IRI is fully validated according to RFC 3987.\n * But it is possible to do a lighter a faster validation using the \"pragmatic\" strategy.\n *\n * @param {string} iri a string that may be an IRI.\n * @param {IriValidationStrategy} strategy IRI validation strategy.\n * @return {Error | undefined} An error if the IRI is invalid, or undefined if it is valid.\n */\nfunction validateIri(iri, strategy = IriValidationStrategy.Strict) {\n switch (strategy) {\n case IriValidationStrategy.Strict:\n return STRICT_IRI_REGEX.test(iri) ? undefined : new Error(`Invalid IRI according to RFC 3987: '${iri}'`);\n case IriValidationStrategy.Pragmatic:\n return PRAGMATIC_IRI_REGEX.test(iri) ? undefined : new Error(`Invalid IRI according to RDF Turtle: '${iri}'`);\n case IriValidationStrategy.None:\n return undefined;\n default:\n return new Error(`Not supported validation strategy \"${strategy}\"`);\n }\n}\nexports.validateIri = validateIri;\n//# sourceMappingURL=Validate.js.map","\"use strict\";\n/**\n * Character classes and associated utilities for the 5th edition of XML 1.0.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//\n// Fragments.\n//\nexports.CHAR = \"\\t\\n\\r -\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\";\nexports.S = \" \\t\\r\\n\";\n// tslint:disable-next-line:max-line-length\nexports.NAME_START_CHAR = \":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NAME_CHAR = \"-\" + exports.NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.CHAR_RE = new RegExp(\"^[\" + exports.CHAR + \"]$\", \"u\");\nexports.S_RE = new RegExp(\"^[\" + exports.S + \"]+$\", \"u\");\nexports.NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"]$\", \"u\");\nexports.NAME_CHAR_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]$\", \"u\");\nexports.NAME_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"][\" + exports.NAME_CHAR + \"]*$\", \"u\");\nexports.NMTOKEN_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]+$\", \"u\");\nvar TAB = 9;\nvar NL = 0xA;\nvar CR = 0xD;\nvar SPACE = 0x20;\n//\n// Lists.\n//\n/** All characters in the ``S`` production. */\nexports.S_LIST = [SPACE, NL, CR, TAB];\n/**\n * Determines whether a codepoint matches the ``CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR``.\n */\nfunction isChar(c) {\n return (c >= SPACE && c <= 0xD7FF) ||\n c === NL || c === CR || c === TAB ||\n (c >= 0xE000 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0x10FFFF);\n}\nexports.isChar = isChar;\n/**\n * Determines whether a codepoint matches the ``S`` (space) production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``S``.\n */\nfunction isS(c) {\n return c === SPACE || c === NL || c === CR || c === TAB;\n}\nexports.isS = isS;\n/**\n * Determines whether a codepoint matches the ``NAME_START_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_START_CHAR``.\n */\nfunction isNameStartChar(c) {\n return ((c >= 0x41 && c <= 0x5A) ||\n (c >= 0x61 && c <= 0x7A) ||\n c === 0x3A ||\n c === 0x5F ||\n c === 0x200C ||\n c === 0x200D ||\n (c >= 0xC0 && c <= 0xD6) ||\n (c >= 0xD8 && c <= 0xF6) ||\n (c >= 0x00F8 && c <= 0x02FF) ||\n (c >= 0x0370 && c <= 0x037D) ||\n (c >= 0x037F && c <= 0x1FFF) ||\n (c >= 0x2070 && c <= 0x218F) ||\n (c >= 0x2C00 && c <= 0x2FEF) ||\n (c >= 0x3001 && c <= 0xD7FF) ||\n (c >= 0xF900 && c <= 0xFDCF) ||\n (c >= 0xFDF0 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0xEFFFF));\n}\nexports.isNameStartChar = isNameStartChar;\n/**\n * Determines whether a codepoint matches the ``NAME_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_CHAR``.\n */\nfunction isNameChar(c) {\n return isNameStartChar(c) ||\n (c >= 0x30 && c <= 0x39) ||\n c === 0x2D ||\n c === 0x2E ||\n c === 0xB7 ||\n (c >= 0x0300 && c <= 0x036F) ||\n (c >= 0x203F && c <= 0x2040);\n}\nexports.isNameChar = isNameChar;\n//# sourceMappingURL=ed5.js.map","\"use strict\";\n/**\n * Character classes and associated utilities for the 2nd edition of XML 1.1.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//\n// Fragments.\n//\nexports.CHAR = \"\\u0001-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\";\nexports.RESTRICTED_CHAR = \"\\u0001-\\u0008\\u000B\\u000C\\u000E-\\u001F\\u007F-\\u0084\\u0086-\\u009F\";\nexports.S = \" \\t\\r\\n\";\n// tslint:disable-next-line:max-line-length\nexports.NAME_START_CHAR = \":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NAME_CHAR = \"-\" + exports.NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.CHAR_RE = new RegExp(\"^[\" + exports.CHAR + \"]$\", \"u\");\nexports.RESTRICTED_CHAR_RE = new RegExp(\"^[\" + exports.RESTRICTED_CHAR + \"]$\", \"u\");\nexports.S_RE = new RegExp(\"^[\" + exports.S + \"]+$\", \"u\");\nexports.NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"]$\", \"u\");\nexports.NAME_CHAR_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]$\", \"u\");\nexports.NAME_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"][\" + exports.NAME_CHAR + \"]*$\", \"u\");\nexports.NMTOKEN_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]+$\", \"u\");\nvar TAB = 9;\nvar NL = 0xA;\nvar CR = 0xD;\nvar SPACE = 0x20;\n//\n// Lists.\n//\n/** All characters in the ``S`` production. */\nexports.S_LIST = [SPACE, NL, CR, TAB];\n/**\n * Determines whether a codepoint matches the ``CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR``.\n */\nfunction isChar(c) {\n return (c >= 0x0001 && c <= 0xD7FF) ||\n (c >= 0xE000 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0x10FFFF);\n}\nexports.isChar = isChar;\n/**\n * Determines whether a codepoint matches the ``RESTRICTED_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``RESTRICTED_CHAR``.\n */\nfunction isRestrictedChar(c) {\n return (c >= 0x1 && c <= 0x8) ||\n c === 0xB ||\n c === 0xC ||\n (c >= 0xE && c <= 0x1F) ||\n (c >= 0x7F && c <= 0x84) ||\n (c >= 0x86 && c <= 0x9F);\n}\nexports.isRestrictedChar = isRestrictedChar;\n/**\n * Determines whether a codepoint matches the ``CHAR`` production and does not\n * match the ``RESTRICTED_CHAR`` production. ``isCharAndNotRestricted(x)`` is\n * equivalent to ``isChar(x) && !isRestrictedChar(x)``. This function is faster\n * than running the two-call equivalent.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR`` and does not match\n * ``RESTRICTED_CHAR``.\n */\nfunction isCharAndNotRestricted(c) {\n return (c === 0x9) ||\n (c === 0xA) ||\n (c === 0xD) ||\n (c > 0x1F && c < 0x7F) ||\n (c === 0x85) ||\n (c > 0x9F && c <= 0xD7FF) ||\n (c >= 0xE000 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0x10FFFF);\n}\nexports.isCharAndNotRestricted = isCharAndNotRestricted;\n/**\n * Determines whether a codepoint matches the ``S`` (space) production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``S``.\n */\nfunction isS(c) {\n return c === SPACE || c === NL || c === CR || c === TAB;\n}\nexports.isS = isS;\n/**\n * Determines whether a codepoint matches the ``NAME_START_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_START_CHAR``.\n */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction isNameStartChar(c) {\n return ((c >= 0x41 && c <= 0x5A) ||\n (c >= 0x61 && c <= 0x7A) ||\n c === 0x3A ||\n c === 0x5F ||\n c === 0x200C ||\n c === 0x200D ||\n (c >= 0xC0 && c <= 0xD6) ||\n (c >= 0xD8 && c <= 0xF6) ||\n (c >= 0x00F8 && c <= 0x02FF) ||\n (c >= 0x0370 && c <= 0x037D) ||\n (c >= 0x037F && c <= 0x1FFF) ||\n (c >= 0x2070 && c <= 0x218F) ||\n (c >= 0x2C00 && c <= 0x2FEF) ||\n (c >= 0x3001 && c <= 0xD7FF) ||\n (c >= 0xF900 && c <= 0xFDCF) ||\n (c >= 0xFDF0 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0xEFFFF));\n}\nexports.isNameStartChar = isNameStartChar;\n/**\n * Determines whether a codepoint matches the ``NAME_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_CHAR``.\n */\nfunction isNameChar(c) {\n return isNameStartChar(c) ||\n (c >= 0x30 && c <= 0x39) ||\n c === 0x2D ||\n c === 0x2E ||\n c === 0xB7 ||\n (c >= 0x0300 && c <= 0x036F) ||\n (c >= 0x203F && c <= 0x2040);\n}\nexports.isNameChar = isNameChar;\n//# sourceMappingURL=ed2.js.map","\"use strict\";\n/**\n * Character class utilities for XML NS 1.0 edition 3.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//\n// Fragments.\n//\n// tslint:disable-next-line:max-line-length\nexports.NC_NAME_START_CHAR = \"A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NC_NAME_CHAR = \"-\" + exports.NC_NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.NC_NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NC_NAME_START_CHAR + \"]$\", \"u\");\nexports.NC_NAME_CHAR_RE = new RegExp(\"^[\" + exports.NC_NAME_CHAR + \"]$\", \"u\");\nexports.NC_NAME_RE = new RegExp(\"^[\" + exports.NC_NAME_START_CHAR + \"][\" + exports.NC_NAME_CHAR + \"]*$\", \"u\");\n/**\n * Determines whether a codepoint matches [[NC_NAME_START_CHAR]].\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches.\n */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction isNCNameStartChar(c) {\n return ((c >= 0x41 && c <= 0x5A) ||\n c === 0x5F ||\n (c >= 0x61 && c <= 0x7A) ||\n (c >= 0xC0 && c <= 0xD6) ||\n (c >= 0xD8 && c <= 0xF6) ||\n (c >= 0x00F8 && c <= 0x02FF) ||\n (c >= 0x0370 && c <= 0x037D) ||\n (c >= 0x037F && c <= 0x1FFF) ||\n (c >= 0x200C && c <= 0x200D) ||\n (c >= 0x2070 && c <= 0x218F) ||\n (c >= 0x2C00 && c <= 0x2FEF) ||\n (c >= 0x3001 && c <= 0xD7FF) ||\n (c >= 0xF900 && c <= 0xFDCF) ||\n (c >= 0xFDF0 && c <= 0xFFFD) ||\n (c >= 0x10000 && c <= 0xEFFFF));\n}\nexports.isNCNameStartChar = isNCNameStartChar;\n/**\n * Determines whether a codepoint matches [[NC_NAME_CHAR]].\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches.\n */\nfunction isNCNameChar(c) {\n return isNCNameStartChar(c) ||\n (c === 0x2D ||\n c === 0x2E ||\n (c >= 0x30 && c <= 0x39) ||\n c === 0x00B7 ||\n (c >= 0x0300 && c <= 0x036F) ||\n (c >= 0x203F && c <= 0x2040));\n}\nexports.isNCNameChar = isNCNameChar;\n//# sourceMappingURL=ed3.js.map","import { RdfXmlParser } from 'rdfxml-streaming-parser';\nclass CustomRdfXmlParser extends RdfXmlParser {\n constructor({ factory, ...args } = {}) {\n super({ ...args, dataFactory: factory });\n }\n}\nexport default CustomRdfXmlParser;\n"],"names":["Object","defineProperty","exports","value","SaxesParser","EVENTS","ed5","ed2","NSed3","isS","isChar10","isChar","isNameStartChar","isNameChar","S_LIST","NAME_RE","isChar11","isNCNameStartChar","isNCNameChar","NC_NAME_RE","XML_NAMESPACE","XMLNS_NAMESPACE","rootNS","__proto__","xml","xmlns","XML_ENTITIES","amp","gt","lt","quot","apos","EOC","NL_LIKE","S_BEGIN","S_BEGIN_WHITESPACE","S_DOCTYPE","S_DOCTYPE_QUOTE","S_DTD","S_DTD_QUOTED","S_DTD_OPEN_WAKA","S_DTD_OPEN_WAKA_BANG","S_DTD_COMMENT","S_DTD_COMMENT_ENDING","S_DTD_COMMENT_ENDED","S_DTD_PI","S_DTD_PI_ENDING","S_TEXT","S_ENTITY","S_OPEN_WAKA","S_OPEN_WAKA_BANG","S_COMMENT","S_COMMENT_ENDING","S_COMMENT_ENDED","S_CDATA","S_CDATA_ENDING","S_CDATA_ENDING_2","S_PI_FIRST_CHAR","S_PI_REST","S_PI_BODY","S_PI_ENDING","S_XML_DECL_NAME_START","S_XML_DECL_NAME","S_XML_DECL_EQ","S_XML_DECL_VALUE_START","S_XML_DECL_VALUE","S_XML_DECL_SEPARATOR","S_XML_DECL_ENDING","S_OPEN_TAG","S_OPEN_TAG_SLASH","S_ATTRIB","S_ATTRIB_NAME","S_ATTRIB_NAME_SAW_WHITE","S_ATTRIB_VALUE","S_ATTRIB_VALUE_QUOTED","S_ATTRIB_VALUE_CLOSED","S_ATTRIB_VALUE_UNQUOTED","S_CLOSE_TAG","S_CLOSE_TAG_SAW_WHITE","TAB","NL","CR","SPACE","BANG","DQUOTE","AMP","SQUOTE","MINUS","FORWARD_SLASH","SEMICOLON","LESS","EQUAL","GREATER","QUESTION","OPEN_BRACKET","CLOSE_BRACKET","NEL","LS","isQuote","c","QUOTES","DOCTYPE_TERMINATOR","DTD_TERMINATOR","XML_DECL_NAME_TERMINATOR","ATTRIB_VALUE_UNQUOTED_TERMINATOR","nsPairCheck","parser","prefix","uri","fail","nsMappingCheck","mapping","local","keys","isNCName","name","test","isName","FORBIDDEN_START","FORBIDDEN_BRACKET","FORBIDDEN_BRACKET_BRACKET","EVENT_NAME_TO_HANDLER_NAME","xmldecl","text","processinginstruction","doctype","comment","opentagstart","attribute","opentag","closetag","cdata","error","end","ready","closed","this","_closed","constructor","opt","fragmentOpt","fragment","xmlnsOpt","trackPosition","position","fileName","nameStartCheck","nameCheck","processAttribs","processAttribsNS","pushAttrib","pushAttribNS","ns","assign","additional","additionalNamespaces","processAttribsPlain","pushAttribPlain","stateTable","sBegin","sBeginWhitespace","sDoctype","sDoctypeQuote","sDTD","sDTDQuoted","sDTDOpenWaka","sDTDOpenWakaBang","sDTDComment","sDTDCommentEnding","sDTDCommentEnded","sDTDPI","sDTDPIEnding","sText","sEntity","sOpenWaka","sOpenWakaBang","sComment","sCommentEnding","sCommentEnded","sCData","sCDataEnding","sCDataEnding2","sPIFirstChar","sPIRest","sPIBody","sPIEnding","sXMLDeclNameStart","sXMLDeclName","sXMLDeclEq","sXMLDeclValueStart","sXMLDeclValue","sXMLDeclSeparator","sXMLDeclEnding","sOpenTag","sOpenTagSlash","sAttrib","sAttribName","sAttribNameSawWhite","sAttribValue","sAttribValueQuoted","sAttribValueClosed","sAttribValueUnquoted","sCloseTag","sCloseTagSawWhite","_init","_a","openWakaBang","piTarget","entity","q","tags","tag","topNS","chunk","chunkPosition","i","prevI","carriedFromPrevious","undefined","forbiddenState","attribList","state","reportedTextBeforeRoot","reportedTextAfterRoot","closedRoot","sawRoot","xmlDeclPossible","xmlDeclExpects","entityReturnState","defaultXMLVersion","forceXMLVersion","Error","setXMLVersion","positionAtNewLine","xmlDecl","version","encoding","standalone","line","column","ENTITIES","create","readyHandler","call","columnIndex","on","handler","off","makeError","message","msg","length","err","errorHandler","write","toString","limit","lastCode","charCodeAt","slice","close","getCode10","code","final","getCode11","next","getCodeNorm","getCode","unget","captureTo","chars","start","isNLLike","includes","captureToChar","char","captureNameChars","skipSpaces","currentXMLVersion","iBefore","doctypeHandler","String","fromCodePoint","owb","handleTextInRoot","handleTextOutsideRoot","loop","parsed","parseEntity","textHandler","commentHandler","cdataHandler","isQuestion","toLowerCase","piHandler","target","body","join","xmldeclHandler","attributes","openTagStartHandler","openTag","openSelfClosingTag","closeTag","scanLoop","nonSpace","outRootLoop","qname","attr","push","attributeHandler","trimmed","trim","_b","pop","endHandler","resolve","index","resolvePrefix","colon","indexOf","JSON","stringify","seen","Set","eqname","has","add","isSelfClosing","openTagHandler","_c","closeTagHandler","top","l","defined","num","NaN","parseInt","__createBinding","o","m","k","k2","enumerable","get","__exportStar","p","prototype","hasOwnProperty","BlankNode","termType","equals","other","DataFactory","BlankNode_1","DefaultGraph_1","Literal_1","NamedNode_1","Quad_1","Variable_1","dataFactoryCounter","options","blankNodeCounter","blankNodePrefix","namedNode","NamedNode","blankNode","literal","languageOrDatatype","Literal","variable","Variable","defaultGraph","DefaultGraph","INSTANCE","quad","subject","predicate","object","graph","Quad","fromTerm","original","language","datatype","XSD_STRING","fromQuad","resetBlankNodeCounter","RDF_LANGUAGE_STRING","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","ParseError","saxParser","super","ParseType","RdfXmlParser","relative_to_absolute_iri_1","saxes_1","readable_stream_1","ParseError_1","rdf_data_factory_1","validate_iri_1","Transform","args","readableObjectMode","activeTagStack","nodeIds","dataFactory","baseIRI","validateUri","iriValidationStrategy","IriValidationStrategy","Pragmatic","None","attachSaxListeners","import","stream","output","PassThrough","emit","data","pipe","_transform","callback","e","newParseError","valueToUri","activeTag","uriToNamedNode","uriValidationResult","validateIri","validateNcname","NCNAME_MATCHER","onTag","bind","onText","onCloseTag","onDoctype","parentTag","currentParseType","RESOURCE","hadChildren","childrenParseType","childrenStringTags","tagName","attributeKey","tagContents","tagString","stringActiveTag","childrenStringEmitClosingTag","onTagResource","onTagProperty","rootTag","PROPERTY","typedNode","RDF","FORBIDDEN_NODE_ELEMENTS","predicates","objects","activeSubjectValue","claimSubjectNodeId","subjectValueBlank","explicitType","XML","claimNodeId","type","emitTriple","reifiedStatementId","childrenCollectionSubject","linkTerm","childrenCollectionPredicate","predicateSubPredicates","predicateSubObjects","predicateEmitted","listItemCounter","FORBIDDEN_PROPERTY_ELEMENTS","parseType","attributedProperty","activeSubSubjectValue","subSubjectValueBlank","propertyAttributeKey","propertyAttribute","nestedBNode","childrenTagsToString","subjectParent","statementId","term","allowDuplicateRdfIds","poppedTag","replace","match","MIME_TYPE","AbortError","codes","isNodeStream","isWebStream","kControllerErrorFunction","eos","ERR_INVALID_ARG_TYPE","validateAbortSignal","signal","module","addAbortSignal","addAbortSignalNoValidate","onAbort","destroy","cause","reason","aborted","addEventListener","removeEventListener","StringPrototypeSlice","SymbolIterator","TypedArrayPrototypeSet","Uint8Array","Buffer","inspect","head","tail","v","entry","unshift","shift","ret","clear","s","concat","n","alloc","allocUnsafe","consume","hasStrings","_getString","_getBuffer","first","str","retLen","buf","buffer","byteOffset","Symbol","for","_","depth","customInspect","pipeline","Duplex","destroyer","isReadable","isWritable","isTransformStream","isWritableStream","isReadableStream","ERR_INVALID_ARG_VALUE","ERR_MISSING_ARGS","streams","from","orgStreams","idx","ondrain","onfinish","onreadable","onclose","d","onfinished","cb","readable","writableObjectMode","_write","_final","writer","getWriter","async","catch","toRead","_read","read","reader","getReader","done","_destroy","process","aggregateTwoErrors","ERR_MULTIPLE_CALLBACK","kDestroyed","isDestroyed","isFinished","isServerRequest","kDestroy","kConstruct","checkError","w","r","stack","errored","_readableState","_writableState","destroyed","constructed","once","er","self","called","onDestroy","nextTick","emitErrorCloseNT","emitCloseNT","emitErrorNT","closeEmitted","emitClose","errorEmitted","undestroy","reading","ended","endEmitted","finalCalled","prefinished","ending","finished","errorOrDestroy","sync","autoDestroy","construct","_construct","listenerCount","constructNT","onConstruct","emitConstructNT","isRequest","setHeader","abort","emitCloseLegacy","emitErrorCloseLegacy","socket","req","ObjectDefineProperties","ObjectGetOwnPropertyDescriptor","ObjectKeys","ObjectSetPrototypeOf","Readable","Writable","method","allowHalfOpen","webStreamsAdapters","duplexify","lazyWebStreams","writableHighWaterMark","writableBuffer","writableLength","writableFinished","writableCorked","writableEnded","writableNeedDrain","set","fromWeb","pair","newStreamDuplexFromReadableWritablePair","toWeb","duplex","newReadableWritablePairFromDuplex","bufferModule","isIterable","isReadableNodeStream","isWritableNodeStream","isDuplexNodeStream","ERR_INVALID_RETURN_VALUE","createDeferredPromise","Blob","globalThis","isBlob","b","AbortController","FunctionPrototypeCall","Duplexify","fromAsyncGen","fn","promise","ac","_promise","_resolve","_duplexify","wrap","objectMode","then","val","arrayBuffer","ERR_STREAM_PREMATURE_CLOSE","kEmptyObject","validateFunction","validateObject","validateBoolean","Promise","PromisePrototypeThen","isClosed","isReadableFinished","isReadableErrored","isWritableFinished","isWritableErrored","willEmitClose","_willEmitClose","kIsClosedPromise","nop","_options$readable","_options$writable","arguments","eosWeb","wState","rState","onlegacyfinish","readableFinished","onend","onerror","onclosed","onrequest","cleanup","removeListener","endCallback","originalCallback","apply","isAborted","resolverFn","opts","_opts","autoCleanup","reject","SymbolAsyncIterator","ERR_STREAM_NULL_VALUES","iterable","iterator","isAsync","highWaterMark","hadError","hasThrow","throw","return","res","ArrayIsArray","EventEmitter","EE","Stream","prependListener","emitter","event","_events","dest","source","ondata","pause","resume","_isStdio","didOnEnd","ERR_OUT_OF_RANGE","validateInteger","kWeakHandler","staticCompose","ArrayPrototypePush","MathFloor","Number","NumberIsNaN","PromiseReject","kEmpty","kEof","compose","composedStream","map","concurrency","_options$signal","_options$signal2","queue","signalOpt","onDone","pump","_val","_options$signal3","asIndexedPairs","_options$signal4","some","unused","filter","every","find","result","forEach","forEachFn","filterFn","ReduceAwareErrMissingArgs","reduce","reducer","initialValue","_options$signal5","hasInitialValue","gotAnyItemFromStream","_options$signal6","toArray","_options$signal7","flatMap","values","toIntegerOrInfinity","number","drop","_options$signal8","_options$signal9","take","_options$signal10","_options$signal11","streamReturningOperators","promiseReturningOperators","destroyImpl","ERR_STREAM_DESTROYED","isReadableEnded","writing","popCallback","makeAsyncIterable","fromReadable","pumpToNode","finish","onresolve","wait","pumpToWeb","pipelineImpl","outerSignal","lastStreamCleanup","finishImpl","destroys","finishCount","isLastStream","onError","_ret","_ret2","pt","src","dst","endFn","ArrayPrototypeIndexOf","NumberIsInteger","NumberParseInt","SafeSet","ReadableState","debug","BufferList","getHighWaterMark","getDefaultHighWaterMark","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kPaused","StringDecoder","isDuplex","pipes","flowing","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrainWriters","multiAwaitDrain","readingMore","dataEmitted","decoder","maybeReadMore","readableAddChunk","addToFront","_isUint8Array","_uint8ArrayToBuffer","onEofChunk","addChunk","emitReadable","_undestroy","captureRejectionSymbol","isPaused","setEncoding","enc","content","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","len","pipeOnDrain","size","delete","updateReadableListening","nReadingNextTick","resume_","streamToAsyncIterator","iter","createAsyncIterator","destroyOnReturn","fromList","endReadable","endReadableNT","endWritableNT","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanedUp","needDrain","dests","splice","ev","addListener","removeAllListeners","paused","streamKeys","j","readableDidRead","readableAborted","readableHighWaterMark","readableBuffer","readableFlowing","readableLength","readableEncoding","readableEnded","pipesCount","_fromList","readableStream","newStreamReadableFromReadableStream","streamReadable","newReadableStreamFromStreamReadable","_ref","_src$readableObjectMo","highWaterMarkFrom","duplexKey","hwm","kCallback","transform","flush","_flush","prefinish","SymbolFor","kIsErrored","kIsReadable","kIsDisturbed","obj","strict","_obj$_readableState","_obj$_writableState","pipeThrough","cancel","isWritableEnded","_stream$_writableStat","_stream$_writableStat2","writableErrored","_stream$_readableStat","_stream$_readableStat2","readableErrored","isOutgoingMessage","_defaultKeepAlive","_removedConnection","_removedContLen","isServerResponse","_sent100","_stream$req","_consuming","_dumped","upgradeOrConnect","isDisturbed","_stream$kIsDisturbed","isErrored","_ref2","_ref3","_ref4","_ref5","_stream$kIsErrored","_stream$_readableStat3","_stream$_writableStat3","_stream$_readableStat4","_stream$_writableStat4","ArrayPrototypeSlice","FunctionPrototypeSymbolHasInstance","ObjectDefineProperty","StringPrototypeToLowerCase","SymbolHasInstance","WritableState","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_ALREADY_FINISHED","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","kOnFinished","noDecode","decodeStrings","corked","bufferProcessing","onwrite","writecb","writelen","afterWriteTickInfo","resetBuffer","pendingcb","buffered","bufferedIndex","allBuffers","allNoop","writev","_writev","clearBuffer","finishMaybe","isEncoding","writeOrBuffer","doWrite","onwriteError","errorBuffer","count","afterWriteTick","afterWrite","_state$errored","onfinishCallbacks","_state$errored2","bufferedLength","chunks","needFinish","callFinal","onFinish","getBuffer","cork","uncork","setDefaultEncoding","writableAborted","writableStream","newStreamWritableFromWritableStream","streamWritable","newWritableStreamFromStreamWritable","ArrayPrototypeIncludes","ArrayPrototypeJoin","ArrayPrototypeMap","NumberMAX_SAFE_INTEGER","NumberMIN_SAFE_INTEGER","ObjectPrototypeHasOwnProperty","RegExpPrototypeExec","StringPrototypeToUpperCase","StringPrototypeTrim","hideStackFrames","ERR_SOCKET_BAD_PORT","ERR_UNKNOWN_SIGNAL","normalizeEncoding","isAsyncFunction","isArrayBufferView","signals","isInt32","isUint32","octalReg","modeDesc","parseFileMode","def","validateUint32","min","max","validateInt32","positive","validateString","validateNumber","validateOneOf","oneOf","allowed","getOwnPropertyValueOrDefault","key","defaultValue","allowArray","allowFunction","nullable","validateDictionary","validateArray","minLength","validateStringArray","validateBooleanArray","validateSignalName","validateBuffer","validateEncoding","normalizedEncoding","validatePort","port","allowZero","validatePlainFunction","validateUndefined","validateUnion","union","linkValueRegExp","validateLinkHeaderFormat","validateLinkHeaderValue","hints","hintsLength","link","CustomStream","promises","originalDestroy","format","AggregateError","CustomAggregateError","kIsNodeError","kTypes","classRegExp","nodeInternalPrefix","assert","ERR_INTERNAL_ASSERTION","addNumericalSeparator","getMessage","expectedLength","E","Base","NodeError","defineProperties","hidden","innerError","outerError","Array","isArray","errors","expected","actual","endsWith","types","instances","pos","last","_actual$constructor","inspected","colors","TypeError","input","_value$constructor","a","range","received","isInteger","Math","abs","RangeError","el","sep","ArrayPrototypePop","thisArgs","instance","Function","hasInstance","floor","isNaN","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","props","prop","proto","setPrototypeOf","PromisePrototypeCatch","thenFn","catchFn","ReflectApply","Reflect","RegExpPrototypeTest","toUpperCase","asyncIterator","AsyncFunction","getPrototypeOf","freeze","rej","promisify","debuglog","_unused","replacement","toFixed","ctor","is","arr","ArrayBuffer","isView","custom","customPromisify","ERR_ILLEGAL_CONSTRUCTOR","utils","op","byteLength","pl","lastArg","relativeIRI","baseFragmentPos","substr","startsWith","baseQueryPos","relativeColonPos","removeDotSegmentsOfPath","valueColonPos","baseColonPos","baseIRIScheme","baseSlashAfterColonPos","removeDotSegments","baseIRIPath","baseIRILastSlashPos","lastIndexOf","path","segmentBuffers","isCharacterAllowedAfterRelativePathSegment","iri","colonPosition","searchOffset","pathSeparator","base","character","buildAbsoluteIriRfc3987Regex","sub_delims_raw","sub_delims","pct_encoded","dec_octet","ipv4address","h16","ls32","ipv6address","ipvfuture","ip_literal","scheme","iprivate_raw","iprivate","ucschar_raw","iunreserved_raw","iunreserved","ipchar","ifragment","iquery","isegment_nz","isegment","ipath_empty","ipath_rootless","ipath_absolute","ipath_abempty","ireg_name","ihost","iuserinfo","iauthority","ihier_part","RegExp","STRICT_IRI_REGEX","PRAGMATIC_IRI_REGEX","strategy","Strict","CHAR","S","NAME_START_CHAR","NAME_CHAR","CHAR_RE","S_RE","NAME_START_CHAR_RE","NAME_CHAR_RE","NMTOKEN_RE","RESTRICTED_CHAR","RESTRICTED_CHAR_RE","isRestrictedChar","isCharAndNotRestricted","NC_NAME_START_CHAR","NC_NAME_CHAR","NC_NAME_START_CHAR_RE","NC_NAME_CHAR_RE","CustomRdfXmlParser","factory"],"sourceRoot":""} \ No newline at end of file diff --git a/js/668.4e710bba.js b/js/668.4e710bba.js deleted file mode 100644 index 80bd6e8..0000000 --- a/js/668.4e710bba.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[668],{56668:function(t,e,a){a.r(e),a.d(e,{default:function(){return G}});var s=a(66252),n=a(3577),o=a(49963);const r=(0,s._)("h2",{class:"font-bold text-lg px-4 py-2 bg-gray-200"},"SHACL editor",-1),l={class:"field"},i=(0,s._)("label",{class:"label",for:"format"},"Format",-1),c={class:"select"},d=["value"],u=(0,s._)("span",null,"Update",-1),p={class:"flex-grow flex flex-col"},f=(0,s._)("h2",{class:"font-bold text-lg px-4 py-2 bg-gray-200"},"Representation",-1),h={key:0,class:"section"},m={class:"message is-danger"},w={class:"message-body"};function v(t,e,a,v,b,g){const y=(0,s.up)("rdf-editor"),k=(0,s.up)("ArrowPathIcon"),_=(0,s.up)("Pane"),x=(0,s.up)("ResourceCard"),P=(0,s.up)("GraphLayout"),S=(0,s.up)("Splitpanes");return(0,s.wg)(),(0,s.j4)(S,{class:"default-theme"},{default:(0,s.w5)((()=>[(0,s.Wm)(_,{size:"40"},{default:(0,s.w5)((()=>[r,(0,s.Wm)(y,{class:"w-full h-full overflow-hidden",format:b.format,value:b.shacl,ref:"shaclEditor"},null,8,["format","value"]),(0,s._)("div",l,[i,(0,s._)("div",c,[(0,s.wy)((0,s._)("select",{id:"format","onUpdate:modelValue":e[0]||(e[0]=t=>b.format=t)},[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(b.formats,(t=>((0,s.wg)(),(0,s.iD)("option",{key:t,value:t},(0,n.zw)(t),9,d)))),128))],512),[[o.bM,b.format]])])]),(0,s._)("button",{class:"button is-primary",onClick:e[1]||(e[1]=(...t)=>g.loadShacl&&g.loadShacl(...t))},[(0,s.Wm)(k,{class:"icon"}),u])])),_:1}),(0,s.Wm)(_,null,{default:(0,s.w5)((()=>[(0,s.Wm)(S,{horizontal:""},{default:(0,s.w5)((()=>[(0,s.Wm)(_,null,{default:(0,s.w5)((()=>[(0,s._)("div",p,[f,(0,s.Wm)(P,{nodes:b.datamodel.tables,links:g.links,"active-links":b.activeLinks},{node:(0,s.w5)((({node:t})=>[(0,s.Wm)(x,{resource:t,"active-links":b.activeLinks},null,8,["resource","active-links"])])),_:1},8,["nodes","links","active-links"]),b.error?((0,s.wg)(),(0,s.iD)("div",h,[(0,s._)("div",m,[(0,s._)("div",w," Error loading data: "+(0,n.zw)(b.error),1)])])):(0,s.kq)("",!0)])])),_:1})])),_:1})])),_:1})])),_:1})}a(57658);var b=a(27886),g=a(74919),y=a(80211),k=a(22886);a(72723);async function _(){const t=(await Promise.all([a.e(844),a.e(246)]).then(a.t.bind(a,94246,19))).default;return new t}async function x(){const t=(await a.e(976).then(a.t.bind(a,41976,19))).default;return new t}async function P(){const t=await a.e(751).then(a.t.bind(a,23751,19));let e;return e=t.default?t.default.RdfXmlParser:t.RdfXmlParser,new e}async function S(){const t=(await a.e(149).then(a.t.bind(a,28149,19))).default;return new t({encoding:"string"})}async function z(){const t=(await a.e(137).then(a.t.bind(a,8137,19))).default;return new t}var W=a(88473);class L extends Map{import(t,e,a){const s=this.get(t);if(!s)return null;if("function"===typeof s){const n=new W.PassThrough({objectMode:!0});return Promise.resolve().then((async()=>{const o=await s();this.set(t,o);const r=o.import(e,a);r.on("prefix",((t,e)=>{n.emit("prefix",t,e)})),r.on("error",(t=>{n.emit("error",t),n.emit("end")})),r.pipe(n)})),n}return s.import(e,a)}}const C=new L,E=new L;C.set("application/ld+json",_),C.set("application/trig",x),C.set("application/n-quads",x),C.set("application/n-triples",x),C.set("text/n3",x),C.set("text/turtle",x),C.set("application/rdf+xml",P),E.set("application/ld+json",S),E.set("application/n-quads",z),E.set("application/n-triples",z),E.set("text/n3",z),E.set("text/turtle",z);const M=C;var R=a(2363),Z=a(54803),j=a(58027),q=a(81407);const X=[...M.keys()],A="\n@prefix sh: .\n@prefix xsd: .\n";var D={components:{GraphLayout:y.Y,Splitpanes:k.F,Pane:k.X,ArrowPathIcon:b.Z,ResourceCard:q.Z},data(){return{format:"text/turtle",formats:X,shacl:A,datamodel:{tables:[],viewports:[],isIntrospected:!1},error:null,activeLinks:[]}},computed:{links(){const t=this.datamodel.tables,e=new Set(t.map((({id:t})=>t)));return t.flatMap((t=>t.properties.map((e=>({...e,table:t}))))).reduce(((t,a)=>(a.values.forEach((s=>{const n=a.table.id,o=s.id;e.has(o)&&t.push({source:n,target:o,sourceProperty:a.id,label:a.name})})),t)),[])}},methods:{async loadShacl(){const t=this.$refs.shaclEditor;this.error=null,this.datamodel.tables=[];const e=t=>(0,g.F)(t)||t;try{const a=await t.quads,s=R.ZP.dataset(a),n=R.ZP.clownface({dataset:s}).has(j.E_.type,j.sh.NodeShape);this.datamodel.tables=(0,Z.NV)(n,e)}catch(a){this.error=a.toString()}}}},F=a(83744);const I=(0,F.Z)(D,[["render",v]]);var G=I}}]); -//# sourceMappingURL=668.4e710bba.js.map \ No newline at end of file diff --git a/js/668.4e710bba.js.map b/js/668.4e710bba.js.map deleted file mode 100644 index 58314b3..0000000 --- a/js/668.4e710bba.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/668.4e710bba.js","mappings":"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","sources":["webpack://@zazuko/spex/./src/views/ShaclEditor.vue","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/parsers.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/serializers.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/sink-map/index.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/index.js","webpack://@zazuko/spex/./src/views/ShaclEditor.vue?a28c"],"sourcesContent":["\n\n\n","export async function jsonLdParser () {\n const JsonLdParser = (await import('@rdfjs/parser-jsonld')).default\n\n return new JsonLdParser()\n}\n\nexport async function n3Parser () {\n const N3Parser = (await import('@rdfjs/parser-n3')).default\n return new N3Parser()\n}\n\nexport async function rdfXmlParser () {\n const module = await import('rdfxml-streaming-parser')\n\n let RdfXmlParser\n if (module.default) {\n RdfXmlParser = module.default.RdfXmlParser\n } else {\n RdfXmlParser = module.RdfXmlParser\n }\n\n return new RdfXmlParser()\n}\n","export async function jsonLdSerializer () {\n const JsonLdSerializer = (await import('@rdfjs/serializer-jsonld')).default\n\n return new JsonLdSerializer({ encoding: 'string' })\n}\n\nexport async function nTriplesSerializer () {\n const NTriplesSerializer = (await import('@rdfjs/serializer-ntriples')).default\n\n return new NTriplesSerializer()\n}\n","import stream from 'readable-stream'\n\nclass SinkMap extends Map {\n import (key, input, options) {\n const sink = this.get(key)\n\n if (!sink) {\n return null\n }\n\n if (typeof sink === 'function') {\n const passThrough = new stream.PassThrough({ objectMode: true })\n Promise.resolve().then(async () => {\n const sinkInstance = await sink()\n this.set(key, sinkInstance)\n\n const origStream = sinkInstance.import(input, options)\n origStream.on('prefix', (prefix, ns) => {\n passThrough.emit('prefix', prefix, ns)\n })\n origStream.on('error', err => {\n passThrough.emit('error', err)\n passThrough.emit('end')\n })\n\n origStream.pipe(passThrough)\n })\n\n return passThrough\n }\n\n return sink.import(input, options)\n }\n}\n\nexport { SinkMap }\n","import {\n jsonLdParser,\n n3Parser,\n rdfXmlParser\n} from './parsers.js'\nimport {\n jsonLdSerializer,\n nTriplesSerializer\n} from './serializers.js'\nimport { SinkMap } from '@rdf-esm/sink-map'\n\nconst parserMap = new SinkMap()\nconst serializerMap = new SinkMap()\n\nparserMap.set('application/ld+json', jsonLdParser)\nparserMap.set('application/trig', n3Parser)\nparserMap.set('application/n-quads', n3Parser)\nparserMap.set('application/n-triples', n3Parser)\nparserMap.set('text/n3', n3Parser)\nparserMap.set('text/turtle', n3Parser)\nparserMap.set('application/rdf+xml', rdfXmlParser)\n\nserializerMap.set('application/ld+json', jsonLdSerializer)\nserializerMap.set('application/n-quads', nTriplesSerializer)\nserializerMap.set('application/n-triples', nTriplesSerializer)\nserializerMap.set('text/n3', nTriplesSerializer)\nserializerMap.set('text/turtle', nTriplesSerializer)\n\nexport const parsers = parserMap\nexport const serializers = serializerMap\n","import { render } from \"./ShaclEditor.vue?vue&type=template&id=1848c353\"\nimport script from \"./ShaclEditor.vue?vue&type=script&lang=js\"\nexport * from \"./ShaclEditor.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createElementVNode","class","for","_createBlock","_component_Splitpanes","_createVNode","_component_Pane","size","_hoisted_1","_component_rdf_editor","format","$data","value","shacl","ref","_hoisted_2","_hoisted_3","_hoisted_4","id","$event","_createElementBlock","_Fragment","_renderList","formats","key","_hoisted_5","onClick","_cache","args","$options","loadShacl","_component_ArrowPathIcon","_hoisted_6","horizontal","_hoisted_7","_hoisted_8","_component_GraphLayout","nodes","datamodel","tables","links","activeLinks","node","_withCtx","_component_ResourceCard","resource","error","_hoisted_9","_hoisted_10","_hoisted_11","_toDisplayString","async","jsonLdParser","JsonLdParser","default","n3Parser","N3Parser","rdfXmlParser","module","RdfXmlParser","jsonLdSerializer","JsonLdSerializer","encoding","nTriplesSerializer","NTriplesSerializer","SinkMap","Map","import","input","options","sink","this","get","passThrough","objectMode","Promise","resolve","then","sinkInstance","set","origStream","on","prefix","ns","emit","err","pipe","parserMap","serializerMap","parsers","keys","initialEditorContent","components","GraphLayout","Splitpanes","Pane","ArrowPathIcon","ResourceCard","data","viewports","isIntrospected","computed","tableIds","Set","map","flatMap","table","properties","property","reduce","acc","values","forEach","source","target","has","push","sourceProperty","label","name","methods","editor","$refs","shaclEditor","shrink","uri","_shrink","quads","dataset","rdfEnvironment","shapes","clownface","rdf","type","sh","NodeShape","tablesFromSHACL","e","toString","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/js/689.2875210a.js b/js/689.2875210a.js deleted file mode 100644 index 499fe7a..0000000 --- a/js/689.2875210a.js +++ /dev/null @@ -1,61 +0,0 @@ -(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[689],{86053:function(e,t,n){"use strict";const{AbortError:r,codes:o}=n(52837),{isNodeStream:i,isWebStream:a,kControllerErrorFunction:s}=n(25066),l=n(14434),{ERR_INVALID_ARG_TYPE:c}=o,d=(e,t)=>{if("object"!==typeof e||!("aborted"in e))throw new c(t,"AbortSignal",e)};e.exports.addAbortSignal=function(t,n){if(d(t,"signal"),!i(n)&&!a(n))throw new c("stream",["ReadableStream","WritableStream","Stream"],n);return e.exports.addAbortSignalNoValidate(t,n)},e.exports.addAbortSignalNoValidate=function(e,t){if("object"!==typeof e||!("aborted"in e))return t;const n=i(t)?()=>{t.destroy(new r(void 0,{cause:e.reason}))}:()=>{t[s](new r(void 0,{cause:e.reason}))};return e.aborted?n():(e.addEventListener("abort",n),l(t,(()=>e.removeEventListener("abort",n)))),t}},12771:function(e,t,n){"use strict";const{StringPrototypeSlice:r,SymbolIterator:o,TypedArrayPrototypeSet:i,Uint8Array:a}=n(53464),{Buffer:s}=n(48764),{inspect:l}=n(74138);e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(e){const t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}shift(){if(0===this.length)return;const e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(0===this.length)return"";let t=this.head,n=""+t.data;while(null!==(t=t.next))n+=e+t.data;return n}concat(e){if(0===this.length)return s.alloc(0);const t=s.allocUnsafe(e>>>0);let n=this.head,r=0;while(n)i(t,n.data,r),r+=n.data.length,n=n.next;return t}consume(e,t){const n=this.head.data;if(ei.length)){e===i.length?(t+=i,++o,n.next?this.head=n.next:this.head=this.tail=null):(t+=r(i,0,e),this.head=n,n.data=r(i,e));break}t+=i,e-=i.length,++o}while(null!==(n=n.next));return this.length-=o,t}_getBuffer(e){const t=s.allocUnsafe(e),n=e;let r=this.head,o=0;do{const s=r.data;if(!(e>s.length)){e===s.length?(i(t,s,n-e),++o,r.next?this.head=r.next:this.head=this.tail=null):(i(t,new a(s.buffer,s.byteOffset,e),n-e),this.head=r,r.data=s.slice(e));break}i(t,s,n-e),e-=s.length,++o}while(null!==(r=r.next));return this.length-=o,t}[Symbol.for("nodejs.util.inspect.custom")](e,t){return l(this,{...t,depth:0,customInspect:!1})}}},73705:function(e,t,n){"use strict";const{pipeline:r}=n(93101),o=n(41928),{destroyer:i}=n(28697),{isNodeStream:a,isReadable:s,isWritable:l,isWebStream:c,isTransformStream:d,isWritableStream:u,isReadableStream:f}=n(25066),{AbortError:p,codes:{ERR_INVALID_ARG_VALUE:h,ERR_MISSING_ARGS:g}}=n(52837),y=n(14434);e.exports=function(...e){if(0===e.length)throw new g("streams");if(1===e.length)return o.from(e[0]);const t=[...e];if("function"===typeof e[0]&&(e[0]=o.from(e[0])),"function"===typeof e[e.length-1]){const t=e.length-1;e[t]=o.from(e[t])}for(let r=0;r0&&!(l(e[r])||u(e[r])||d(e[r])))throw new h(`streams[${r}]`,t[r],"must be writable")}let n,v,b,m,w;function x(e){const t=m;m=null,t?t(e):e?w.destroy(e):R||E||w.destroy()}const _=e[0],S=r(e,x),E=!!(l(_)||u(_)||d(_)),R=!!(s(S)||f(S)||d(S));if(w=new o({writableObjectMode:!(null===_||void 0===_||!_.writableObjectMode),readableObjectMode:!(null===S||void 0===S||!S.writableObjectMode),writable:E,readable:R}),E){if(a(_))w._write=function(e,t,r){_.write(e,t)?r():n=r},w._final=function(e){_.end(),v=e},_.on("drain",(function(){if(n){const e=n;n=null,e()}}));else if(c(_)){const e=d(_)?_.writable:_,t=e.getWriter();w._write=async function(e,n,r){try{await t.ready,t.write(e).catch((()=>{})),r()}catch(o){r(o)}},w._final=async function(e){try{await t.ready,t.close().catch((()=>{})),v=e}catch(n){e(n)}}}const e=d(S)?S.readable:S;y(e,(()=>{if(v){const e=v;v=null,e()}}))}if(R)if(a(S))S.on("readable",(function(){if(b){const e=b;b=null,e()}})),S.on("end",(function(){w.push(null)})),w._read=function(){while(1){const e=S.read();if(null===e)return void(b=w._read);if(!w.push(e))return}};else if(c(S)){const e=d(S)?S.readable:S,t=e.getReader();w._read=async function(){while(1)try{const{value:e,done:n}=await t.read();if(!w.push(e))return;if(n)return void w.push(null)}catch{return}}}return w._destroy=function(e,t){e||null===m||(e=new p),b=null,n=null,v=null,null===m?t(e):(m=t,a(S)&&i(S,e))},w}},28697:function(e,t,n){"use strict";const r=n(34155),{aggregateTwoErrors:o,codes:{ERR_MULTIPLE_CALLBACK:i},AbortError:a}=n(52837),{Symbol:s}=n(53464),{kDestroyed:l,isDestroyed:c,isFinished:d,isServerRequest:u}=n(25066),f=s("kDestroy"),p=s("kConstruct");function h(e,t,n){e&&(e.stack,t&&!t.errored&&(t.errored=e),n&&!n.errored&&(n.errored=e))}function g(e,t){const n=this._readableState,r=this._writableState,i=r||n;return null!==r&&void 0!==r&&r.destroyed||null!==n&&void 0!==n&&n.destroyed?("function"===typeof t&&t(),this):(h(e,r,n),r&&(r.destroyed=!0),n&&(n.destroyed=!0),i.constructed?y(this,e,t):this.once(f,(function(n){y(this,o(n,e),t)})),this)}function y(e,t,n){let o=!1;function i(t){if(o)return;o=!0;const i=e._readableState,a=e._writableState;h(t,a,i),a&&(a.closed=!0),i&&(i.closed=!0),"function"===typeof n&&n(t),t?r.nextTick(v,e,t):r.nextTick(b,e)}try{e._destroy(t||null,i)}catch(t){i(t)}}function v(e,t){m(e,t),b(e)}function b(e){const t=e._readableState,n=e._writableState;n&&(n.closeEmitted=!0),t&&(t.closeEmitted=!0),(null!==n&&void 0!==n&&n.emitClose||null!==t&&void 0!==t&&t.emitClose)&&e.emit("close")}function m(e,t){const n=e._readableState,r=e._writableState;null!==r&&void 0!==r&&r.errorEmitted||null!==n&&void 0!==n&&n.errorEmitted||(r&&(r.errorEmitted=!0),n&&(n.errorEmitted=!0),e.emit("error",t))}function w(){const e=this._readableState,t=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=!1===e.readable,e.endEmitted=!1===e.readable),t&&(t.constructed=!0,t.destroyed=!1,t.closed=!1,t.closeEmitted=!1,t.errored=null,t.errorEmitted=!1,t.finalCalled=!1,t.prefinished=!1,t.ended=!1===t.writable,t.ending=!1===t.writable,t.finished=!1===t.writable)}function x(e,t,n){const o=e._readableState,i=e._writableState;if(null!==i&&void 0!==i&&i.destroyed||null!==o&&void 0!==o&&o.destroyed)return this;null!==o&&void 0!==o&&o.autoDestroy||null!==i&&void 0!==i&&i.autoDestroy?e.destroy(t):t&&(t.stack,i&&!i.errored&&(i.errored=t),o&&!o.errored&&(o.errored=t),n?r.nextTick(m,e,t):m(e,t))}function _(e,t){if("function"!==typeof e._construct)return;const n=e._readableState,o=e._writableState;n&&(n.constructed=!1),o&&(o.constructed=!1),e.once(p,t),e.listenerCount(p)>1||r.nextTick(S,e)}function S(e){let t=!1;function n(n){if(t)return void x(e,null!==n&&void 0!==n?n:new i);t=!0;const o=e._readableState,a=e._writableState,s=a||o;o&&(o.constructed=!0),a&&(a.constructed=!0),s.destroyed?e.emit(f,n):n?x(e,n,!0):r.nextTick(E,e)}try{e._construct((e=>{r.nextTick(n,e)}))}catch(o){r.nextTick(n,o)}}function E(e){e.emit(p)}function R(e){return(null===e||void 0===e?void 0:e.setHeader)&&"function"===typeof e.abort}function I(e){e.emit("close")}function j(e,t){e.emit("error",t),r.nextTick(I,e)}function A(e,t){e&&!c(e)&&(t||d(e)||(t=new a),u(e)?(e.socket=null,e.destroy(t)):R(e)?e.abort():R(e.req)?e.req.abort():"function"===typeof e.destroy?e.destroy(t):"function"===typeof e.close?e.close():t?r.nextTick(j,e,t):r.nextTick(I,e),e.destroyed||(e[l]=!0))}e.exports={construct:_,destroyer:A,destroy:g,undestroy:w,errorOrDestroy:x}},41928:function(e,t,n){"use strict";const{ObjectDefineProperties:r,ObjectGetOwnPropertyDescriptor:o,ObjectKeys:i,ObjectSetPrototypeOf:a}=n(53464);e.exports=c;const s=n(75009),l=n(51572);a(c.prototype,s.prototype),a(c,s);{const e=i(l.prototype);for(let t=0;t{u=!1,e&&y(t,e),h(e)})),c._write=function(e,t,o){n.write(e,t)?o():r=o},c._final=function(e){n.end(),o=e},n.on("drain",(function(){if(r){const e=r;r=null,e()}})),n.on("finish",(function(){if(o){const e=o;o=null,e()}}))),d&&(f(t,(e=>{d=!1,e&&y(t,e),h(e)})),t.on("readable",(function(){if(s){const e=s;s=null,e()}})),t.on("end",(function(){c.push(null)})),c._read=function(){while(1){const e=t.read();if(null===e)return void(s=c._read);if(!c.push(e))return}}),c._destroy=function(e,i){e||null===l||(e=new p),s=null,r=null,o=null,null===l?i(e):(l=i,y(n,e),y(t,e))},c}e.exports=function e(t,n){if(u(t))return t;if(c(t))return j({readable:t});if(d(t))return j({writable:t});if(l(t))return j({writable:!1,readable:!1});if("function"===typeof t){const{value:e,write:o,final:i,destroy:a}=I(t);if(s(e))return w(R,e,{objectMode:!0,write:o,final:i,destroy:a});const l=null===e||void 0===e?void 0:e.then;if("function"===typeof l){let t;const n=E(l,e,(e=>{if(null!=e)throw new g("nully","body",e)}),(e=>{y(t,e)}));return t=new R({objectMode:!0,readable:!1,write:o,final(e){i((async()=>{try{await n,r.nextTick(e,null)}catch(t){r.nextTick(e,t)}}))},destroy:a})}throw new g("Iterable, AsyncIterable or AsyncFunction",n,e)}if(_(t))return e(t.arrayBuffer());if(s(t))return w(R,t,{objectMode:!0,writable:!1});if("object"===typeof(null===t||void 0===t?void 0:t.writable)||"object"===typeof(null===t||void 0===t?void 0:t.readable)){const n=null!==t&&void 0!==t&&t.readable?c(null===t||void 0===t?void 0:t.readable)?null===t||void 0===t?void 0:t.readable:e(t.readable):void 0,r=null!==t&&void 0!==t&&t.writable?d(null===t||void 0===t?void 0:t.writable)?null===t||void 0===t?void 0:t.writable:e(t.writable):void 0;return j({readable:n,writable:r})}const o=null===t||void 0===t?void 0:t.then;if("function"===typeof o){let e;return E(o,t,(t=>{null!=t&&e.push(t),e.push(null)}),(t=>{y(e,t)})),e=new R({objectMode:!0,writable:!1,read(){}})}throw new h(n,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],t)}},14434:function(e,t,n){const r=n(34155),{AbortError:o,codes:i}=n(52837),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:s}=i,{kEmptyObject:l,once:c}=n(74138),{validateAbortSignal:d,validateFunction:u,validateObject:f,validateBoolean:p}=n(95793),{Promise:h,PromisePrototypeThen:g}=n(53464),{isClosed:y,isReadable:v,isReadableNodeStream:b,isReadableStream:m,isReadableFinished:w,isReadableErrored:x,isWritable:_,isWritableNodeStream:S,isWritableStream:E,isWritableFinished:R,isWritableErrored:I,isNodeStream:j,willEmitClose:A,kIsClosedPromise:N}=n(25066);function O(e){return e.setHeader&&"function"===typeof e.abort}const k=()=>{};function D(e,t,n){var i,p;if(2===arguments.length?(n=t,t=l):null==t?t=l:f(t,"options"),u(n,"callback"),d(t.signal,"options.signal"),n=c(n),m(e)||E(e))return L(e,t,n);if(!j(e))throw new a("stream",["ReadableStream","WritableStream","Stream"],e);const h=null!==(i=t.readable)&&void 0!==i?i:b(e),g=null!==(p=t.writable)&&void 0!==p?p:S(e),N=e._writableState,D=e._readableState,T=()=>{e.writable||P()};let C=A(e)&&b(e)===h&&S(e)===g,M=R(e,!1);const P=()=>{M=!0,e.destroyed&&(C=!1),(!C||e.readable&&!h)&&(h&&!F||n.call(e))};let F=w(e,!1);const J=()=>{F=!0,e.destroyed&&(C=!1),(!C||e.writable&&!g)&&(g&&!M||n.call(e))},W=t=>{n.call(e,t)};let U=y(e);const H=()=>{U=!0;const t=I(e)||x(e);return t&&"boolean"!==typeof t?n.call(e,t):h&&!F&&b(e,!0)&&!w(e,!1)?n.call(e,new s):!g||M||R(e,!1)?void n.call(e):n.call(e,new s)},$=()=>{U=!0;const t=I(e)||x(e);if(t&&"boolean"!==typeof t)return n.call(e,t);n.call(e)},B=()=>{e.req.on("finish",P)};O(e)?(e.on("complete",P),C||e.on("abort",H),e.req?B():e.on("request",B)):g&&!N&&(e.on("end",T),e.on("close",T)),C||"boolean"!==typeof e.aborted||e.on("aborted",H),e.on("end",J),e.on("finish",P),!1!==t.error&&e.on("error",W),e.on("close",H),U?r.nextTick(H):null!==N&&void 0!==N&&N.errorEmitted||null!==D&&void 0!==D&&D.errorEmitted?C||r.nextTick($):(h||C&&!v(e)||!M&&!1!==_(e))&&(g||C&&!_(e)||!F&&!1!==v(e))?D&&e.req&&e.aborted&&r.nextTick($):r.nextTick($);const V=()=>{n=k,e.removeListener("aborted",H),e.removeListener("complete",P),e.removeListener("abort",H),e.removeListener("request",B),e.req&&e.req.removeListener("finish",P),e.removeListener("end",T),e.removeListener("close",T),e.removeListener("finish",P),e.removeListener("end",J),e.removeListener("error",W),e.removeListener("close",H)};if(t.signal&&!U){const i=()=>{const r=n;V(),r.call(e,new o(void 0,{cause:t.signal.reason}))};if(t.signal.aborted)r.nextTick(i);else{const r=n;n=c(((...n)=>{t.signal.removeEventListener("abort",i),r.apply(e,n)})),t.signal.addEventListener("abort",i)}}return V}function L(e,t,n){let i=!1,a=k;if(t.signal)if(a=()=>{i=!0,n.call(e,new o(void 0,{cause:t.signal.reason}))},t.signal.aborted)r.nextTick(a);else{const r=n;n=c(((...n)=>{t.signal.removeEventListener("abort",a),r.apply(e,n)})),t.signal.addEventListener("abort",a)}const s=(...t)=>{i||r.nextTick((()=>n.apply(e,t)))};return g(e[N].promise,s,s),k}function T(e,t){var n;let r=!1;return null===t&&(t=l),null!==(n=t)&&void 0!==n&&n.cleanup&&(p(t.cleanup,"cleanup"),r=t.cleanup),new h(((n,o)=>{const i=D(e,t,(e=>{r&&i(),e?o(e):n()}))}))}e.exports=D,e.exports.finished=T},40399:function(e,t,n){"use strict";const r=n(34155),{PromisePrototypeThen:o,SymbolAsyncIterator:i,SymbolIterator:a}=n(53464),{Buffer:s}=n(48764),{ERR_INVALID_ARG_TYPE:l,ERR_STREAM_NULL_VALUES:c}=n(52837).codes;function d(e,t,n){let d,u;if("string"===typeof t||t instanceof s)return new e({objectMode:!0,...n,read(){this.push(t),this.push(null)}});if(t&&t[i])u=!0,d=t[i]();else{if(!t||!t[a])throw new l("iterable",["Iterable"],t);u=!1,d=t[a]()}const f=new e({objectMode:!0,highWaterMark:1,...n});let p=!1;async function h(e){const t=void 0!==e&&null!==e,n="function"===typeof d.throw;if(t&&n){const{value:t,done:n}=await d.throw(e);if(await t,n)return}if("function"===typeof d.return){const{value:e}=await d.return();await e}}async function g(){for(;;){try{const{value:e,done:t}=u?await d.next():d.next();if(t)f.push(null);else{const t=e&&"function"===typeof e.then?await e:e;if(null===t)throw p=!1,new c;if(f.push(t))continue;p=!1}}catch(e){f.destroy(e)}break}}return f._read=function(){p||(p=!0,g())},f._destroy=function(e,t){o(h(e),(()=>r.nextTick(t,e)),(n=>r.nextTick(t,n||e)))},f}e.exports=d},78951:function(e,t,n){"use strict";const{ArrayIsArray:r,ObjectSetPrototypeOf:o}=n(53464),{EventEmitter:i}=n(17187);function a(e){i.call(this,e)}function s(e,t,n){if("function"===typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?r(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}o(a.prototype,i.prototype),o(a,i),a.prototype.pipe=function(e,t){const n=this;function r(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function o(){n.readable&&n.resume&&n.resume()}n.on("data",r),e.on("drain",o),e._isStdio||t&&!1===t.end||(n.on("end",l),n.on("close",c));let a=!1;function l(){a||(a=!0,e.end())}function c(){a||(a=!0,"function"===typeof e.destroy&&e.destroy())}function d(e){u(),0===i.listenerCount(this,"error")&&this.emit("error",e)}function u(){n.removeListener("data",r),e.removeListener("drain",o),n.removeListener("end",l),n.removeListener("close",c),n.removeListener("error",d),e.removeListener("error",d),n.removeListener("end",u),n.removeListener("close",u),e.removeListener("close",u)}return s(n,"error",d),s(e,"error",d),n.on("end",u),n.on("close",u),e.on("close",u),e.emit("pipe",n),e},e.exports={Stream:a,prependListener:s}},71902:function(e,t,n){"use strict";const r=globalThis.AbortController||n(28599).AbortController,{codes:{ERR_INVALID_ARG_VALUE:o,ERR_INVALID_ARG_TYPE:i,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:s},AbortError:l}=n(52837),{validateAbortSignal:c,validateInteger:d,validateObject:u}=n(95793),f=n(53464).Symbol("kWeak"),{finished:p}=n(14434),h=n(73705),{addAbortSignalNoValidate:g}=n(86053),{isWritable:y,isNodeStream:v}=n(25066),{ArrayPrototypePush:b,MathFloor:m,Number:w,NumberIsNaN:x,Promise:_,PromiseReject:S,PromisePrototypeThen:E,Symbol:R}=n(53464),I=R("kEmpty"),j=R("kEof");function A(e,t){if(null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&c(t.signal,"options.signal"),v(e)&&!y(e))throw new o("stream",e,"must be writable");const n=h(this,e);return null!==t&&void 0!==t&&t.signal&&g(t.signal,n),n}function N(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&c(t.signal,"options.signal");let n=1;return null!=(null===t||void 0===t?void 0:t.concurrency)&&(n=m(t.concurrency)),d(n,"concurrency",1),async function*(){var o,i;const a=new r,s=this,c=[],d=a.signal,u={signal:d},f=()=>a.abort();let p,h;null!==t&&void 0!==t&&null!==(o=t.signal)&&void 0!==o&&o.aborted&&f(),null===t||void 0===t||null===(i=t.signal)||void 0===i||i.addEventListener("abort",f);let g=!1;function y(){g=!0}async function v(){try{for await(let t of s){var r;if(g)return;if(d.aborted)throw new l;try{t=e(t,u)}catch(i){t=S(i)}t!==I&&("function"===typeof(null===(r=t)||void 0===r?void 0:r.catch)&&t.catch(y),c.push(t),p&&(p(),p=null),!g&&c.length&&c.length>=n&&await new _((e=>{h=e})))}c.push(j)}catch(i){const e=S(i);E(e,void 0,y),c.push(e)}finally{var o;g=!0,p&&(p(),p=null),null===t||void 0===t||null===(o=t.signal)||void 0===o||o.removeEventListener("abort",f)}}v();try{while(1){while(c.length>0){const e=await c[0];if(e===j)return;if(d.aborted)throw new l;e!==I&&(yield e),c.shift(),h&&(h(),h=null)}await new _((e=>{p=e}))}}finally{a.abort(),g=!0,h&&(h(),h=null)}}.call(this)}function O(e=void 0){return null!=e&&u(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&c(e.signal,"options.signal"),async function*(){let t=0;for await(const r of this){var n;if(null!==e&&void 0!==e&&null!==(n=e.signal)&&void 0!==n&&n.aborted)throw new l({cause:e.signal.reason});yield[t++,r]}}.call(this)}async function k(e,t=void 0){for await(const n of C.call(this,e,t))return!0;return!1}async function D(e,t=void 0){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);return!await k.call(this,(async(...t)=>!await e(...t)),t)}async function L(e,t){for await(const n of C.call(this,e,t))return n}async function T(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);async function n(t,n){return await e(t,n),I}for await(const r of N.call(this,n,t));}function C(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);async function n(t,n){return await e(t,n)?t:I}return N.call(this,n,t)}class M extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function P(e,t,n){var o;if("function"!==typeof e)throw new i("reducer",["Function","AsyncFunction"],e);null!=n&&u(n,"options"),null!=(null===n||void 0===n?void 0:n.signal)&&c(n.signal,"options.signal");let a=arguments.length>1;if(null!==n&&void 0!==n&&null!==(o=n.signal)&&void 0!==o&&o.aborted){const e=new l(void 0,{cause:n.signal.reason});throw this.once("error",(()=>{})),await p(this.destroy(e)),e}const s=new r,d=s.signal;if(null!==n&&void 0!==n&&n.signal){const e={once:!0,[f]:this};n.signal.addEventListener("abort",(()=>s.abort()),e)}let h=!1;try{for await(const r of this){var g;if(h=!0,null!==n&&void 0!==n&&null!==(g=n.signal)&&void 0!==g&&g.aborted)throw new l;a?t=await e(t,r,{signal:d}):(t=r,a=!0)}if(!h&&!a)throw new M}finally{s.abort()}return t}async function F(e){null!=e&&u(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&c(e.signal,"options.signal");const t=[];for await(const r of this){var n;if(null!==e&&void 0!==e&&null!==(n=e.signal)&&void 0!==n&&n.aborted)throw new l(void 0,{cause:e.signal.reason});b(t,r)}return t}function J(e,t){const n=N.call(this,e,t);return async function*(){for await(const e of n)yield*e}.call(this)}function W(e){if(e=w(e),x(e))return 0;if(e<0)throw new s("number",">= 0",e);return e}function U(e,t=void 0){return null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&c(t.signal,"options.signal"),e=W(e),async function*(){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;for await(const o of this){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;e--<=0&&(yield o)}}.call(this)}function H(e,t=void 0){return null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&c(t.signal,"options.signal"),e=W(e),async function*(){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;for await(const o of this){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;if(!(e-- >0))return;yield o}}.call(this)}e.exports.streamReturningOperators={asIndexedPairs:O,drop:U,filter:C,flatMap:J,map:N,take:H,compose:A},e.exports.promiseReturningOperators={every:D,forEach:T,reduce:P,toArray:F,some:k,find:L}},75955:function(e,t,n){"use strict";const{ObjectSetPrototypeOf:r}=n(53464);e.exports=i;const o=n(53606);function i(e){if(!(this instanceof i))return new i(e);o.call(this,e)}r(i.prototype,o.prototype),r(i,o),i.prototype._transform=function(e,t,n){n(null,e)}},93101:function(e,t,n){const r=n(34155),{ArrayIsArray:o,Promise:i,SymbolAsyncIterator:a}=n(53464),s=n(14434),{once:l}=n(74138),c=n(28697),d=n(41928),{aggregateTwoErrors:u,codes:{ERR_INVALID_ARG_TYPE:f,ERR_INVALID_RETURN_VALUE:p,ERR_MISSING_ARGS:h,ERR_STREAM_DESTROYED:g,ERR_STREAM_PREMATURE_CLOSE:y},AbortError:v}=n(52837),{validateFunction:b,validateAbortSignal:m}=n(95793),{isIterable:w,isReadable:x,isReadableNodeStream:_,isNodeStream:S,isTransformStream:E,isWebStream:R,isReadableStream:I,isReadableEnded:j}=n(25066),A=globalThis.AbortController||n(28599).AbortController;let N,O;function k(e,t,n){let r=!1;e.on("close",(()=>{r=!0}));const o=s(e,{readable:t,writable:n},(e=>{r=!e}));return{destroy:t=>{r||(r=!0,c.destroyer(e,t||new g("pipe")))},cleanup:o}}function D(e){return b(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function L(e){if(w(e))return e;if(_(e))return T(e);throw new f("val",["Readable","Iterable","AsyncIterable"],e)}async function*T(e){O||(O=n(75009)),yield*O.prototype[a].call(e)}async function C(e,t,n,{end:r}){let o,a=null;const l=e=>{if(e&&(o=e),a){const e=a;a=null,e()}},c=()=>new i(((e,t)=>{o?t(o):a=()=>{o?t(o):e()}}));t.on("drain",l);const d=s(t,{readable:!1},l);try{t.writableNeedDrain&&await c();for await(const n of e)t.write(n)||await c();r&&t.end(),await c(),n()}catch(f){n(o!==f?u(o,f):f)}finally{d(),t.off("drain",l)}}async function M(e,t,n,{end:r}){E(t)&&(t=t.writable);const o=t.getWriter();try{for await(const t of e)await o.ready,o.write(t).catch((()=>{}));await o.ready,r&&await o.close(),n()}catch(i){try{await o.abort(i),n(i)}catch(i){n(i)}}}function P(...e){return F(e,l(D(e)))}function F(e,t,i){if(1===e.length&&o(e[0])&&(e=e[0]),e.length<2)throw new h("streams");const a=new A,s=a.signal,l=null===i||void 0===i?void 0:i.signal,c=[];function u(){T(new v)}let g,y;m(l,"options.signal"),null===l||void 0===l||l.addEventListener("abort",u);const b=[];let j,O=0;function D(e){T(e,0===--O)}function T(e,n){if(!e||g&&"ERR_STREAM_PREMATURE_CLOSE"!==g.code||(g=e),g||n){while(b.length)b.shift()(g);null===l||void 0===l||l.removeEventListener("abort",u),a.abort(),n&&(g||c.forEach((e=>e())),r.nextTick(t,g,y))}}for(let U=0;U0,V=$||!1!==(null===i||void 0===i?void 0:i.end),G=U===e.length-1;if(S(H)){if(V){const{destroy:q,cleanup:z}=k(H,$,B);b.push(q),x(H)&&G&&c.push(z)}function P(e){e&&"AbortError"!==e.name&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code&&D(e)}H.on("error",P),x(H)&&G&&c.push((()=>{H.removeListener("error",P)}))}if(0===U)if("function"===typeof H){if(j=H({signal:s}),!w(j))throw new p("Iterable, AsyncIterable or Stream","source",j)}else j=w(H)||_(H)||E(H)?H:d.from(H);else if("function"===typeof H){var F;if(E(j))j=L(null===(F=j)||void 0===F?void 0:F.readable);else j=L(j);if(j=H(j,{signal:s}),$){if(!w(j,!0))throw new p("AsyncIterable",`transform[${U-1}]`,j)}else{var W;N||(N=n(75955));const K=new N({objectMode:!0}),X=null===(W=j)||void 0===W?void 0:W.then;if("function"===typeof X)O++,X.call(j,(e=>{y=e,null!=e&&K.write(e),V&&K.end(),r.nextTick(D)}),(e=>{K.destroy(e),r.nextTick(D,e)}));else if(w(j,!0))O++,C(j,K,D,{end:V});else{if(!I(j)&&!E(j))throw new p("AsyncIterable or Promise","destination",j);{const Z=j.readable||j;O++,C(Z,K,D,{end:V})}}j=K;const{destroy:Y,cleanup:Q}=k(j,!1,!0);b.push(Y),G&&c.push(Q)}}else if(S(H)){if(_(j)){O+=2;const ee=J(j,H,D,{end:V});x(H)&&G&&c.push(ee)}else if(E(j)||I(j)){const te=j.readable||j;O++,C(te,H,D,{end:V})}else{if(!w(j))throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],j);O++,C(j,H,D,{end:V})}j=H}else if(R(H)){if(_(j))O++,M(L(j),H,D,{end:V});else if(I(j)||w(j))O++,M(j,H,D,{end:V});else{if(!E(j))throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],j);O++,M(j.readable,H,D,{end:V})}j=H}else j=d.from(H)}return(null!==s&&void 0!==s&&s.aborted||null!==l&&void 0!==l&&l.aborted)&&r.nextTick(u),j}function J(e,t,n,{end:o}){let i=!1;if(t.on("close",(()=>{i||n(new y)})),e.pipe(t,{end:!1}),o){function a(){i=!0,t.end()}j(e)?r.nextTick(a):e.once("end",a)}else n();return s(e,{readable:!0,writable:!1},(t=>{const r=e._readableState;t&&"ERR_STREAM_PREMATURE_CLOSE"===t.code&&r&&r.ended&&!r.errored&&!r.errorEmitted?e.once("end",n).once("error",n):n(t)})),s(t,{readable:!1,writable:!0},n)}e.exports={pipelineImpl:F,pipeline:P}},75009:function(e,t,n){const r=n(34155),{ArrayPrototypeIndexOf:o,NumberIsInteger:i,NumberIsNaN:a,NumberParseInt:s,ObjectDefineProperties:l,ObjectKeys:c,ObjectSetPrototypeOf:d,Promise:u,SafeSet:f,SymbolAsyncIterator:p,Symbol:h}=n(53464);e.exports=J,J.ReadableState=F;const{EventEmitter:g}=n(17187),{Stream:y,prependListener:v}=n(78951),{Buffer:b}=n(48764),{addAbortSignal:m}=n(86053),w=n(14434);let x=n(74138).debuglog("stream",(e=>{x=e}));const _=n(12771),S=n(28697),{getHighWaterMark:E,getDefaultHighWaterMark:R}=n(33716),{aggregateTwoErrors:I,codes:{ERR_INVALID_ARG_TYPE:j,ERR_METHOD_NOT_IMPLEMENTED:A,ERR_OUT_OF_RANGE:N,ERR_STREAM_PUSH_AFTER_EOF:O,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:k}}=n(52837),{validateObject:D}=n(95793),L=h("kPaused"),{StringDecoder:T}=n(32553),C=n(40399);d(J.prototype,y.prototype),d(J,y);const M=()=>{},{errorOrDestroy:P}=S;function F(e,t,r){"boolean"!==typeof r&&(r=t instanceof n(41928)),this.objectMode=!(!e||!e.objectMode),r&&(this.objectMode=this.objectMode||!(!e||!e.readableObjectMode)),this.highWaterMark=e?E(this,e,"readableHighWaterMark",r):R(!1),this.buffer=new _,this.length=0,this.pipes=[],this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.constructed=!0,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this[L]=null,this.errorEmitted=!1,this.emitClose=!e||!1!==e.emitClose,this.autoDestroy=!e||!1!==e.autoDestroy,this.destroyed=!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this.defaultEncoding=e&&e.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.multiAwaitDrain=!1,this.readingMore=!1,this.dataEmitted=!1,this.decoder=null,this.encoding=null,e&&e.encoding&&(this.decoder=new T(e.encoding),this.encoding=e.encoding)}function J(e){if(!(this instanceof J))return new J(e);const t=this instanceof n(41928);this._readableState=new F(e,this,t),e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.construct&&(this._construct=e.construct),e.signal&&!t&&m(e.signal,this)),y.call(this,e),S.construct(this,(()=>{this._readableState.needReadable&&z(this,this._readableState)}))}function W(e,t,n,r){x("readableAddChunk",t);const o=e._readableState;let i;if(o.objectMode||("string"===typeof t?(n=n||o.defaultEncoding,o.encoding!==n&&(r&&o.encoding?t=b.from(t,n).toString(o.encoding):(t=b.from(t,n),n=""))):t instanceof b?n="":y._isUint8Array(t)?(t=y._uint8ArrayToBuffer(t),n=""):null!=t&&(i=new j("chunk",["string","Buffer","Uint8Array"],t))),i)P(e,i);else if(null===t)o.reading=!1,V(e,o);else if(o.objectMode||t&&t.length>0)if(r)if(o.endEmitted)P(e,new k);else{if(o.destroyed||o.errored)return!1;U(e,o,t,!0)}else if(o.ended)P(e,new O);else{if(o.destroyed||o.errored)return!1;o.reading=!1,o.decoder&&!n?(t=o.decoder.write(t),o.objectMode||0!==t.length?U(e,o,t,!1):z(e,o)):U(e,o,t,!1)}else r||(o.reading=!1,z(e,o));return!o.ended&&(o.length0?(t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null,t.dataEmitted=!0,e.emit("data",n)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&G(e)),z(e,t)}J.prototype.destroy=S.destroy,J.prototype._undestroy=S.undestroy,J.prototype._destroy=function(e,t){t(e)},J.prototype[g.captureRejectionSymbol]=function(e){this.destroy(e)},J.prototype.push=function(e,t){return W(this,e,t,!1)},J.prototype.unshift=function(e,t){return W(this,e,t,!0)},J.prototype.isPaused=function(){const e=this._readableState;return!0===e[L]||!1===e.flowing},J.prototype.setEncoding=function(e){const t=new T(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;const n=this._readableState.buffer;let r="";for(const o of n)r+=t.write(o);return n.clear(),""!==r&&n.push(r),this._readableState.length=r.length,this};const H=1073741824;function $(e){if(e>H)throw new N("size","<= 1GiB",e);return e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++,e}function B(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:a(e)?t.flowing&&t.length?t.buffer.first().length:t.length:e<=t.length?e:t.ended?t.length:0}function V(e,t){if(x("onEofChunk"),!t.ended){if(t.decoder){const e=t.decoder.end();e&&e.length&&(t.buffer.push(e),t.length+=t.objectMode?1:e.length)}t.ended=!0,t.sync?G(e):(t.needReadable=!1,t.emittedReadable=!0,q(e))}}function G(e){const t=e._readableState;x("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(x("emitReadable",t.flowing),t.emittedReadable=!0,r.nextTick(q,e))}function q(e){const t=e._readableState;x("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||t.errored||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,te(e)}function z(e,t){!t.readingMore&&t.constructed&&(t.readingMore=!0,r.nextTick(K,e,t))}function K(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!1===t[L]?t.flowing=!0:e.listenerCount("data")>0?e.resume():t.readableListening||(t.flowing=null)}function Q(e){x("readable nexttick read 0"),e.read(0)}function Z(e,t){t.resumeScheduled||(t.resumeScheduled=!0,r.nextTick(ee,e,t))}function ee(e,t){x("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),te(e),t.flowing&&!t.reading&&e.read(0)}function te(e){const t=e._readableState;x("flow",t.flowing);while(t.flowing&&null!==e.read());}function ne(e,t){"function"!==typeof e.read&&(e=J.wrap(e,{objectMode:!0}));const n=re(e,t);return n.stream=e,n}async function*re(e,t){let n,r=M;function o(t){this===e?(r(),r=M):r=t}e.on("readable",o);const i=w(e,{writable:!1},(e=>{n=e?I(n,e):null,r(),r=M}));try{while(1){const t=e.destroyed?null:e.read();if(null!==t)yield t;else{if(n)throw n;if(null===n)return;await new u(o)}}}catch(a){throw n=I(n,a),n}finally{!n&&!1===(null===t||void 0===t?void 0:t.destroyOnReturn)||void 0!==n&&!e._readableState.autoDestroy?(e.off("readable",o),i()):S.destroyer(e,null)}}function oe(e,t){if(0===t.length)return null;let n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n}function ie(e){const t=e._readableState;x("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,r.nextTick(ae,t,e))}function ae(e,t){if(x("endReadableNT",e.endEmitted,e.length),!e.errored&&!e.closeEmitted&&!e.endEmitted&&0===e.length)if(e.endEmitted=!0,t.emit("end"),t.writable&&!1===t.allowHalfOpen)r.nextTick(se,t);else if(e.autoDestroy){const e=t._writableState,n=!e||e.autoDestroy&&(e.finished||!1===e.writable);n&&t.destroy()}}function se(e){const t=e.writable&&!e.writableEnded&&!e.destroyed;t&&e.end()}let le;function ce(){return void 0===le&&(le={}),le}J.prototype.read=function(e){x("read",e),void 0===e?e=NaN:i(e)||(e=s(e,10));const t=this._readableState,n=e;if(e>t.highWaterMark&&(t.highWaterMark=$(e)),0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return x("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?ie(this):G(this),null;if(e=B(e,t),0===e&&t.ended)return 0===t.length&&ie(this),null;let r,o=t.needReadable;if(x("need readable",o),(0===t.length||t.length-e0?oe(e,t):null,null===r?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&ie(this)),null===r||t.errorEmitted||t.closeEmitted||(t.dataEmitted=!0,this.emit("data",r)),r},J.prototype._read=function(e){throw new A("_read()")},J.prototype.pipe=function(e,t){const n=this,o=this._readableState;1===o.pipes.length&&(o.multiAwaitDrain||(o.multiAwaitDrain=!0,o.awaitDrainWriters=new f(o.awaitDrainWriters?[o.awaitDrainWriters]:[]))),o.pipes.push(e),x("pipe count=%d opts=%j",o.pipes.length,t);const i=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr,a=i?l:m;function s(e,t){x("onunpipe"),e===n&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,u())}function l(){x("onend"),e.end()}let c;o.endEmitted?r.nextTick(a):n.once("end",a),e.on("unpipe",s);let d=!1;function u(){x("cleanup"),e.removeListener("close",y),e.removeListener("finish",b),c&&e.removeListener("drain",c),e.removeListener("error",g),e.removeListener("unpipe",s),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",h),d=!0,c&&o.awaitDrainWriters&&(!e._writableState||e._writableState.needDrain)&&c()}function p(){d||(1===o.pipes.length&&o.pipes[0]===e?(x("false write response, pause",0),o.awaitDrainWriters=e,o.multiAwaitDrain=!1):o.pipes.length>1&&o.pipes.includes(e)&&(x("false write response, pause",o.awaitDrainWriters.size),o.awaitDrainWriters.add(e)),n.pause()),c||(c=X(n,e),e.on("drain",c))}function h(t){x("ondata");const n=e.write(t);x("dest.write",n),!1===n&&p()}function g(t){if(x("onerror",t),m(),e.removeListener("error",g),0===e.listenerCount("error")){const n=e._writableState||e._readableState;n&&!n.errorEmitted?P(e,t):e.emit("error",t)}}function y(){e.removeListener("finish",b),m()}function b(){x("onfinish"),e.removeListener("close",y),m()}function m(){x("unpipe"),n.unpipe(e)}return n.on("data",h),v(e,"error",g),e.once("close",y),e.once("finish",b),e.emit("pipe",n),!0===e.writableNeedDrain?o.flowing&&p():o.flowing||(x("pipe resume"),n.resume()),e},J.prototype.unpipe=function(e){const t=this._readableState,n={hasUnpiped:!1};if(0===t.pipes.length)return this;if(!e){const e=t.pipes;t.pipes=[],this.pause();for(let t=0;t0,!1!==o.flowing&&this.resume()):"readable"===e&&(o.endEmitted||o.readableListening||(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,x("on readable",o.length,o.reading),o.length?G(this):o.reading||r.nextTick(Q,this))),n},J.prototype.addListener=J.prototype.on,J.prototype.removeListener=function(e,t){const n=y.prototype.removeListener.call(this,e,t);return"readable"===e&&r.nextTick(Y,this),n},J.prototype.off=J.prototype.removeListener,J.prototype.removeAllListeners=function(e){const t=y.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||r.nextTick(Y,this),t},J.prototype.resume=function(){const e=this._readableState;return e.flowing||(x("resume"),e.flowing=!e.readableListening,Z(this,e)),e[L]=!1,this},J.prototype.pause=function(){return x("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(x("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[L]=!0,this},J.prototype.wrap=function(e){let t=!1;e.on("data",(n=>{!this.push(n)&&e.pause&&(t=!0,e.pause())})),e.on("end",(()=>{this.push(null)})),e.on("error",(e=>{P(this,e)})),e.on("close",(()=>{this.destroy()})),e.on("destroy",(()=>{this.destroy()})),this._read=()=>{t&&e.resume&&(t=!1,e.resume())};const n=c(e);for(let r=1;r{t?e?e(t):this.destroy(t):(null!=n&&this.push(n),this.push(null),e&&e())}))}function u(){this._final!==d&&d.call(this)}c.prototype._final=d,c.prototype._transform=function(e,t,n){throw new i("_transform()")},c.prototype._write=function(e,t,n){const r=this._readableState,o=this._writableState,i=r.length;this._transform(e,t,((e,t)=>{e?n(e):(null!=t&&this.push(t),o.ended||i===r.length||r.length{const e=this._writableState;e.writing||$(this,e),q(this,e)}))}function C(e,t,n,o){const i=e._writableState;if("function"===typeof n)o=n,n=i.defaultEncoding;else{if(n){if("buffer"!==n&&!g.isEncoding(n))throw new A(n)}else n=i.defaultEncoding;"function"!==typeof o&&(o=O)}if(null===t)throw new I;if(!i.objectMode)if("string"===typeof t)!1!==i.decodeStrings&&(t=g.from(t,n),n="buffer");else if(t instanceof g)n="buffer";else{if(!h._isUint8Array(t))throw new w("chunk",["string","Buffer","Uint8Array"],t);t=h._uint8ArrayToBuffer(t),n="buffer"}let a;return i.ending?a=new j:i.destroyed&&(a=new E("write")),a?(r.nextTick(o,a),N(e,a,!0),a):(i.pendingcb++,M(e,i,t,n,o))}function M(e,t,n,r,o){const i=t.objectMode?1:n.length;t.length+=i;const a=t.lengthn.bufferedIndex&&$(e,n),o?null!==n.afterWriteTickInfo&&n.afterWriteTickInfo.cb===i?n.afterWriteTickInfo.count++:(n.afterWriteTickInfo={count:1,cb:i,stream:e,state:n},r.nextTick(W,n.afterWriteTickInfo)):U(e,n,1,i))):N(e,new _)}function W({stream:e,state:t,count:n,cb:r}){return t.afterWriteTickInfo=null,U(e,t,n,r)}function U(e,t,n,r){const o=!t.ending&&!e.destroyed&&0===t.length&&t.needDrain;o&&(t.needDrain=!1,e.emit("drain"));while(n-- >0)t.pendingcb--,r();t.destroyed&&H(t),q(e,t)}function H(e){if(e.writing)return;for(let o=e.bufferedIndex;o1&&e._writev){t.pendingcb-=a-1;const r=t.allNoop?O:e=>{for(let t=s;t256?(n.splice(0,s),t.bufferedIndex=0):t.bufferedIndex=s}t.bufferProcessing=!1}function B(e){return e.ending&&!e.destroyed&&e.constructed&&0===e.length&&!e.errored&&0===e.buffered.length&&!e.finished&&!e.writing&&!e.errorEmitted&&!e.closeEmitted}function V(e,t){let n=!1;function o(o){if(n)N(e,null!==o&&void 0!==o?o:_());else if(n=!0,t.pendingcb--,o){const n=t[k].splice(0);for(let e=0;e{B(t)?z(e,t):t.pendingcb--}),e,t)):B(t)&&(t.pendingcb++,z(e,t))))}function z(e,t){t.pendingcb--,t.finished=!0;const n=t[k].splice(0);for(let r=0;r>>0}const N=/^[0-7]+$/,O="must be a 32-bit unsigned integer or an octal string";function k(e,t,n){if("undefined"===typeof e&&(e=n),"string"===typeof e){if(null===p(N,e))throw new w(t,e,O);e=u(e,8)}return T(e,t),e}const D=v(((e,t,n=d,r=c)=>{if("number"!==typeof e)throw new m(t,"number",e);if(!s(e))throw new x(t,"an integer",e);if(er)throw new x(t,`>= ${n} && <= ${r}`,e)})),L=v(((e,t,n=-2147483648,r=2147483647)=>{if("number"!==typeof e)throw new m(t,"number",e);if(!s(e))throw new x(t,"an integer",e);if(er)throw new x(t,`>= ${n} && <= ${r}`,e)})),T=v(((e,t,n=!1)=>{if("number"!==typeof e)throw new m(t,"number",e);if(!s(e))throw new x(t,"an integer",e);const r=n?1:0,o=4294967295;if(eo)throw new x(t,`>= ${r} && <= ${o}`,e)}));function C(e,t){if("string"!==typeof e)throw new m(t,"string",e)}function M(e,t,n=void 0,r){if("number"!==typeof e)throw new m(t,"number",e);if(null!=n&&er||(null!=n||null!=r)&&l(e))throw new x(t,`${null!=n?`>= ${n}`:""}${null!=n&&null!=r?" && ":""}${null!=r?`<= ${r}`:""}`,e)}const P=v(((e,t,n)=>{if(!o(n,e)){const r=i(a(n,(e=>"string"===typeof e?`'${e}'`:h(e))),", "),o="must be one of: "+r;throw new w(t,e,o)}}));function F(e,t){if("boolean"!==typeof e)throw new m(t,"boolean",e)}function J(e,t,n){return null!=e&&f(e,t)?e[t]:n}const W=v(((e,t,n=null)=>{const o=J(n,"allowArray",!1),i=J(n,"allowFunction",!1),a=J(n,"nullable",!1);if(!a&&null===e||!o&&r(e)||"object"!==typeof e&&(!i||"function"!==typeof e))throw new m(t,"Object",e)})),U=v(((e,t)=>{if(null!=e&&"object"!==typeof e&&"function"!==typeof e)throw new m(t,"a dictionary",e)})),H=v(((e,t,n=0)=>{if(!r(e))throw new m(t,"Array",e);if(e.length{if(!R(e))throw new m(t,["Buffer","TypedArray","DataView"],e)}));function q(e,t){const n=S(t),r=e.length;if("hex"===n&&r%2!==0)throw new w("encoding",t,`is invalid for data of length ${r}`)}function z(e,t="Port",n=!0){if("number"!==typeof e&&"string"!==typeof e||"string"===typeof e&&0===y(e).length||+e!==+e>>>0||e>65535||0===e&&!n)throw new b(t,e,n);return 0|e}const K=v(((e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new m(t,"AbortSignal",e)})),X=v(((e,t)=>{if("function"!==typeof e)throw new m(t,"Function",e)})),Y=v(((e,t)=>{if("function"!==typeof e||E(e))throw new m(t,"Function",e)})),Q=v(((e,t)=>{if(void 0!==e)throw new m(t,"undefined",e)}));function Z(e,t,n){if(!o(n,e))throw new m(t,`('${i(n,"|")}')`,e)}const ee=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function te(e,t){if("undefined"===typeof e||!p(ee,e))throw new w(t,e,'must be an array or string of format "; rel=preload; as=style"')}function ne(e){if("string"===typeof e)return te(e,"hints"),e;if(r(e)){const t=e.length;let n="";if(0===t)return n;for(let r=0;r; rel=preload; as=style"')}e.exports={isInt32:j,isUint32:A,parseFileMode:k,validateArray:H,validateStringArray:$,validateBooleanArray:B,validateBoolean:F,validateBuffer:G,validateDictionary:U,validateEncoding:q,validateFunction:X,validateInt32:L,validateInteger:D,validateNumber:M,validateObject:W,validateOneOf:P,validatePlainFunction:Y,validatePort:z,validateSignalName:V,validateString:C,validateUint32:T,validateUndefined:Q,validateUnion:Z,validateAbortSignal:K,validateLinkHeaderValue:ne}},57164:function(e,t,n){"use strict";const r=n(17373),o=n(97019),i=r.Readable.destroy;e.exports=r.Readable,e.exports._uint8ArrayToBuffer=r._uint8ArrayToBuffer,e.exports._isUint8Array=r._isUint8Array,e.exports.isDisturbed=r.isDisturbed,e.exports.isErrored=r.isErrored,e.exports.isReadable=r.isReadable,e.exports.Readable=r.Readable,e.exports.Writable=r.Writable,e.exports.Duplex=r.Duplex,e.exports.Transform=r.Transform,e.exports.PassThrough=r.PassThrough,e.exports.addAbortSignal=r.addAbortSignal,e.exports.finished=r.finished,e.exports.destroy=r.destroy,e.exports.destroy=i,e.exports.pipeline=r.pipeline,e.exports.compose=r.compose,Object.defineProperty(r,"promises",{configurable:!0,enumerable:!0,get(){return o}}),e.exports.Stream=r.Stream,e.exports["default"]=e.exports},52837:function(e,t,n){"use strict";const{format:r,inspect:o,AggregateError:i}=n(74138),a=globalThis.AggregateError||i,s=Symbol("kIsNodeError"),l=["string","function","number","object","Function","Object","boolean","bigint","symbol"],c=/^([A-Z][a-z0-9]*)+$/,d="__node_internal_",u={};function f(e,t){if(!e)throw new u.ERR_INTERNAL_ASSERTION(t)}function p(e){let t="",n=e.length;const r="-"===e[0]?1:0;for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function h(e,t,n){if("function"===typeof t)return f(t.length<=n.length,`Code: ${e}; The provided arguments length (${n.length}) does not match the required ones (${t.length}).`),t(...n);const o=(t.match(/%[dfijoOs]/g)||[]).length;return f(o===n.length,`Code: ${e}; The provided arguments length (${n.length}) does not match the required ones (${o}).`),0===n.length?t:r(t,...n)}function g(e,t,n){n||(n=Error);class r extends n{constructor(...n){super(h(e,t,n))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(r.prototype,{name:{value:n.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),r.prototype.code=e,r.prototype[s]=!0,u[e]=r}function y(e){const t=d+e.name;return Object.defineProperty(e,"name",{value:t}),e}function v(e,t){if(e&&t&&e!==t){if(Array.isArray(t.errors))return t.errors.push(e),t;const n=new a([t,e],t.message);return n.code=t.code,n}return e||t}class b extends Error{constructor(e="The operation was aborted",t=void 0){if(void 0!==t&&"object"!==typeof t)throw new u.ERR_INVALID_ARG_TYPE("options","Object",t);super(e,t),this.code="ABORT_ERR",this.name="AbortError"}}g("ERR_ASSERTION","%s",Error),g("ERR_INVALID_ARG_TYPE",((e,t,n)=>{f("string"===typeof e,"'name' must be a string"),Array.isArray(t)||(t=[t]);let r="The ";e.endsWith(" argument")?r+=`${e} `:r+=`"${e}" ${e.includes(".")?"property":"argument"} `,r+="must be ";const i=[],a=[],s=[];for(const o of t)f("string"===typeof o,"All expected entries have to be of type string"),l.includes(o)?i.push(o.toLowerCase()):c.test(o)?a.push(o):(f("object"!==o,'The value "object" should be written as "Object"'),s.push(o));if(a.length>0){const e=i.indexOf("object");-1!==e&&(i.splice(i,e,1),a.push("Object"))}if(i.length>0){switch(i.length){case 1:r+=`of type ${i[0]}`;break;case 2:r+=`one of type ${i[0]} or ${i[1]}`;break;default:{const e=i.pop();r+=`one of type ${i.join(", ")}, or ${e}`}}(a.length>0||s.length>0)&&(r+=" or ")}if(a.length>0){switch(a.length){case 1:r+=`an instance of ${a[0]}`;break;case 2:r+=`an instance of ${a[0]} or ${a[1]}`;break;default:{const e=a.pop();r+=`an instance of ${a.join(", ")}, or ${e}`}}s.length>0&&(r+=" or ")}switch(s.length){case 0:break;case 1:s[0].toLowerCase()!==s[0]&&(r+="an "),r+=`${s[0]}`;break;case 2:r+=`one of ${s[0]} or ${s[1]}`;break;default:{const e=s.pop();r+=`one of ${s.join(", ")}, or ${e}`}}if(null==n)r+=`. Received ${n}`;else if("function"===typeof n&&n.name)r+=`. Received function ${n.name}`;else if("object"===typeof n){var d;if(null!==(d=n.constructor)&&void 0!==d&&d.name)r+=`. Received an instance of ${n.constructor.name}`;else{const e=o(n,{depth:-1});r+=`. Received ${e}`}}else{let e=o(n,{colors:!1});e.length>25&&(e=`${e.slice(0,25)}...`),r+=`. Received type ${typeof n} (${e})`}return r}),TypeError),g("ERR_INVALID_ARG_VALUE",((e,t,n="is invalid")=>{let r=o(t);r.length>128&&(r=r.slice(0,128)+"...");const i=e.includes(".")?"property":"argument";return`The ${i} '${e}' ${n}. Received ${r}`}),TypeError),g("ERR_INVALID_RETURN_VALUE",((e,t,n)=>{var r;const o=null!==n&&void 0!==n&&null!==(r=n.constructor)&&void 0!==r&&r.name?`instance of ${n.constructor.name}`:"type "+typeof n;return`Expected ${e} to be returned from the "${t}" function but got ${o}.`}),TypeError),g("ERR_MISSING_ARGS",((...e)=>{let t;f(e.length>0,"At least one arg needs to be specified");const n=e.length;switch(e=(Array.isArray(e)?e:[e]).map((e=>`"${e}"`)).join(" or "),n){case 1:t+=`The ${e[0]} argument`;break;case 2:t+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const n=e.pop();t+=`The ${e.join(", ")}, and ${n} arguments`}break}return`${t} must be specified`}),TypeError),g("ERR_OUT_OF_RANGE",((e,t,n)=>{let r;return f(t,'Missing "range" argument'),Number.isInteger(n)&&Math.abs(n)>2**32?r=p(String(n)):"bigint"===typeof n?(r=String(n),(n>2n**32n||n<-(2n**32n))&&(r=p(r)),r+="n"):r=o(n),`The value of "${e}" is out of range. It must be ${t}. Received ${r}`}),RangeError),g("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),g("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),g("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),g("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),g("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),g("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),g("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),g("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),g("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),g("ERR_STREAM_WRITE_AFTER_END","write after end",Error),g("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:b,aggregateTwoErrors:y(v),hideStackFrames:y,codes:u}},53464:function(e){"use strict";e.exports={ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,t){return e.includes(t)},ArrayPrototypeIndexOf(e,t){return e.indexOf(t)},ArrayPrototypeJoin(e,t){return e.join(t)},ArrayPrototypeMap(e,t){return e.map(t)},ArrayPrototypePop(e,t){return e.pop(t)},ArrayPrototypePush(e,t){return e.push(t)},ArrayPrototypeSlice(e,t,n){return e.slice(t,n)},Error:Error,FunctionPrototypeCall(e,t,...n){return e.call(t,...n)},FunctionPrototypeSymbolHasInstance(e,t){return Function.prototype[Symbol.hasInstance].call(e,t)},MathFloor:Math.floor,Number:Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(e,t){return Object.defineProperties(e,t)},ObjectDefineProperty(e,t,n){return Object.defineProperty(e,t,n)},ObjectGetOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,t){return Object.setPrototypeOf(e,t)},Promise:Promise,PromisePrototypeCatch(e,t){return e.catch(t)},PromisePrototypeThen(e,t,n){return e.then(t,n)},PromiseReject(e){return Promise.reject(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,t){return e.test(t)},SafeSet:Set,String:String,StringPrototypeSlice(e,t,n){return e.slice(t,n)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol:Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(e,t,n){return e.set(t,n)},Uint8Array:Uint8Array}},74138:function(e,t,n){"use strict";const r=n(48764),o=Object.getPrototypeOf((async function(){})).constructor,i=globalThis.Blob||r.Blob,a="undefined"!==typeof i?function(e){return e instanceof i}:function(e){return!1};class s extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t="";for(let n=0;n{e=n,t=r}));return{promise:n,resolve:e,reject:t}},promisify(e){return new Promise(((t,n)=>{e(((e,...r)=>e?n(e):t(...r)))}))},debuglog(){return function(){}},format(e,...t){return e.replace(/%([sdifj])/g,(function(...[e,n]){const r=t.shift();if("f"===n)return r.toFixed(6);if("j"===n)return JSON.stringify(r);if("s"===n&&"object"===typeof r){const e=r.constructor!==Object?r.constructor.name:"";return`${e} {}`.trim()}return r.toString()}))},inspect(e){switch(typeof e){case"string":if(e.includes("'")){if(!e.includes('"'))return`"${e}"`;if(!e.includes("`")&&!e.includes("${"))return`\`${e}\``}return`'${e}'`;case"number":return isNaN(e)?"NaN":Object.is(e,-0)?String(e):e;case"bigint":return`${String(e)}n`;case"boolean":case"undefined":return String(e);case"object":return"{}"}},types:{isAsyncFunction(e){return e instanceof o},isArrayBufferView(e){return ArrayBuffer.isView(e)}},isBlob:a},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},17373:function(e,t,n){const{Buffer:r}=n(48764),{ObjectDefineProperty:o,ObjectKeys:i,ReflectApply:a}=n(53464),{promisify:{custom:s}}=n(74138),{streamReturningOperators:l,promiseReturningOperators:c}=n(71902),{codes:{ERR_ILLEGAL_CONSTRUCTOR:d}}=n(52837),u=n(73705),{pipeline:f}=n(93101),{destroyer:p}=n(28697),h=n(14434),g=n(97019),y=n(25066),v=e.exports=n(78951).Stream;v.isDisturbed=y.isDisturbed,v.isErrored=y.isErrored,v.isReadable=y.isReadable,v.Readable=n(75009);for(const w of i(l)){const x=l[w];function b(...e){if(new.target)throw d();return v.Readable.from(a(x,this,e))}o(b,"name",{__proto__:null,value:x.name}),o(b,"length",{__proto__:null,value:x.length}),o(v.Readable.prototype,w,{__proto__:null,value:b,enumerable:!1,configurable:!0,writable:!0})}for(const _ of i(c)){const S=c[_];function b(...e){if(new.target)throw d();return a(S,this,e)}o(b,"name",{__proto__:null,value:S.name}),o(b,"length",{__proto__:null,value:S.length}),o(v.Readable.prototype,_,{__proto__:null,value:b,enumerable:!1,configurable:!0,writable:!0})}v.Writable=n(51572),v.Duplex=n(41928),v.Transform=n(53606),v.PassThrough=n(75955),v.pipeline=f;const{addAbortSignal:m}=n(86053);v.addAbortSignal=m,v.finished=h,v.destroy=p,v.compose=u,o(v,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return g}}),o(f,s,{__proto__:null,enumerable:!0,get(){return g.pipeline}}),o(h,s,{__proto__:null,enumerable:!0,get(){return g.finished}}),v.Stream=v,v._isUint8Array=function(e){return e instanceof Uint8Array},v._uint8ArrayToBuffer=function(e){return r.from(e.buffer,e.byteOffset,e.byteLength)}},97019:function(e,t,n){"use strict";const{ArrayPrototypePop:r,Promise:o}=n(53464),{isIterable:i,isNodeStream:a,isWebStream:s}=n(25066),{pipelineImpl:l}=n(93101),{finished:c}=n(14434);function d(...e){return new o(((t,n)=>{let o,c;const d=e[e.length-1];if(d&&"object"===typeof d&&!a(d)&&!i(d)&&!s(d)){const t=r(e);o=t.signal,c=t.end}l(e,((e,r)=>{e?n(e):t(r)}),{signal:o,end:c})}))}n(42830),e.exports={finished:c,pipeline:d}},95456:function(e){"use strict";e.exports=function e(t){return null===t||"object"!==typeof t||null!=t.toJSON?JSON.stringify(t):Array.isArray(t)?"["+t.reduce(((t,n,r)=>{const o=0===r?"":",",i=void 0===n||"symbol"===typeof n?null:n;return t+o+e(i)}),"")+"]":"{"+Object.keys(t).sort().reduce(((n,r,o)=>{if(void 0===t[r]||"symbol"===typeof t[r])return n;const i=0===n.length?"":",";return n+i+e(r)+":"+e(t[r])}),"")+"}"}},68058:function(e,t,n){"use strict";const{isArray:r,isObject:o,isString:i}=n(30832),{asArray:a}=n(51055),{prependBase:s}=n(82278),l=n(54093),c=n(26767),d=10;function u(e){throw new l("Invalid JSON-LD syntax; @context must be an object.","jsonld.SyntaxError",{code:"invalid local context",context:e})}function f({context:e,base:t}){if(!e)return;const n=e["@context"];if(i(n))e["@context"]=s(t,n);else if(r(n))for(let r=0;rd)throw new l("Maximum number of @context URLs exceeded.","jsonld.ContextUrlError",{code:"json-ld-1.0"===e.processingMode?"loading remote context failed":"context overflow",max:d});if(a.has(t))throw new l("Cyclical @context URLs detected.","jsonld.ContextUrlError",{code:"json-ld-1.0"===e.processingMode?"recursive context inclusion":"context overflow",url:t});let s,c;a.add(t);try{c=await n(t),s=c.document||null,i(s)&&(s=JSON.parse(s))}catch(u){throw new l("Dereferencing a URL did not result in a valid JSON-LD object. Possible causes are an inaccessible URL perhaps due to a same-origin policy (ensure the server uses CORS if you are using client-side JavaScript), too many redirects, a non-JSON response, or more than one HTTP Link Header was provided for a remote context.","jsonld.InvalidUrl",{code:"loading remote context failed",url:t,cause:u})}if(!o(s))throw new l("Dereferencing a URL did not result in a JSON object. The response was valid JSON, but it was not a JSON object.","jsonld.InvalidUrl",{code:"invalid remote context",url:t});return s="@context"in s?{"@context":s["@context"]}:{"@context":{}},c.contextUrl&&(r(s["@context"])||(s["@context"]=[s["@context"]]),s["@context"].push(c.contextUrl)),{context:s,remoteDoc:c}}}},54093:function(e){"use strict";e.exports=class extends Error{constructor(e="An unspecified JSON-LD error occurred.",t="jsonld.Error",n={}){super(e),this.name=t,this.message=e,this.details=n}}},60731:function(e){"use strict";e.exports=e=>{class t{toString(){return"[object JsonLdProcessor]"}}return Object.defineProperty(t,"prototype",{writable:!1,enumerable:!1}),Object.defineProperty(t.prototype,"constructor",{writable:!0,enumerable:!1,configurable:!0,value:t}),t.compact=function(t,n){return arguments.length<2?Promise.reject(new TypeError("Could not compact, too few arguments.")):e.compact(t,n)},t.expand=function(t){return arguments.length<1?Promise.reject(new TypeError("Could not expand, too few arguments.")):e.expand(t)},t.flatten=function(t){return arguments.length<1?Promise.reject(new TypeError("Could not flatten, too few arguments.")):e.flatten(t)},t}},69048:function(e,t,n){"use strict";e.exports=n(47055).NQuads},40533:function(e){"use strict";e.exports=class{constructor(){this._requests={}}wrapLoader(e){const t=this;return t._loader=e,function(){return t.add.apply(t,arguments)}}async add(e){let t=this._requests[e];if(t)return Promise.resolve(t);t=this._requests[e]=this._loader(e);try{return await t}finally{delete this._requests[e]}}}},26767:function(e,t,n){"use strict";const r=n(80421),o=10;e.exports=class{constructor({document:e}){this.document=e,this.cache=new r({max:o})}getProcessed(e){return this.cache.get(e)}setProcessed(e,t){this.cache.set(e,t)}}},83251:function(e,t,n){"use strict";const r=n(54093),{isArray:o,isObject:i,isString:a,isUndefined:s}=n(30832),{isList:l,isValue:c,isGraph:d,isSimpleGraph:u,isSubjectReference:f}=n(18463),{expandIri:p,getContextValue:h,isKeyword:g,process:y,processingMode:v}=n(54131),{removeBase:b,prependBase:m}=n(82278),{REGEX_KEYWORD:w,addValue:x,asArray:_,compareShortestLeast:S}=n(51055),E={};function R(e,t,n,r,o,a){null===a&&(a="@null");const s=[];if(("@id"===a||"@reverse"===a)&&i(n)&&"@id"in n){"@reverse"===a&&s.push("@reverse");const t=E.compactIri({activeCtx:e,iri:n["@id"],relativeTo:{vocab:!0}});e.mappings.has(t)&&e.mappings.get(t)&&e.mappings.get(t)["@id"]===n["@id"]?s.push.apply(s,["@vocab","@id"]):s.push.apply(s,["@id","@vocab"])}else{s.push(a);const e=s.find((e=>e.includes("_")));e&&s.push(e.replace(/^[^_]+_/,"_"))}s.push("@none");const l=e.inverse[t];for(const i of r){if(!(i in l))continue;const e=l[i][o];for(const t of s)if(t in e)return e[t]}return null}function I(e,t,n){if("@nest"!==p(e,t,{vocab:!0},n))throw new r("JSON-LD compact error; nested property must have an @nest value resolving to @nest.","jsonld.SyntaxError",{code:"invalid @nest value"})}e.exports=E,E.compact=async({activeCtx:e,activeProperty:t=null,element:n,options:p={}})=>{if(o(n)){let r=[];for(let o=0;o1&&(R=Array.from(R).sort());const j=e;for(const t of R){const n=E.compactIri({activeCtx:j,iri:t,relativeTo:{vocab:!0}}),r=h(w,n,"@context");s(r)||(e=await y({activeCtx:e,localCtx:r,options:p,propagate:!1}))}const A=Object.keys(n).sort();for(const s of A){const f=n[s];if("@id"!==s)if("@type"!==s)if("@reverse"!==s)if("@preserve"!==s)if("@index"!==s)if("@graph"!==s&&"@list"!==s&&"@included"!==s&&g(s)){const t=E.compactIri({activeCtx:e,iri:s,relativeTo:{vocab:!0}});x(m,t,f)}else{if(!o(f))throw new r("JSON-LD expansion error; expanded value must be an array.","jsonld.SyntaxError");if(0===f.length){const t=E.compactIri({activeCtx:e,iri:s,value:f,relativeTo:{vocab:!0},reverse:b}),n=e.mappings.has(t)?e.mappings.get(t)["@nest"]:null;let r=m;n&&(I(e,n,p),i(m[n])||(m[n]={}),r=m[n]),x(r,t,f,{propertyIsArray:!0})}for(const t of f){const n=E.compactIri({activeCtx:e,iri:s,value:t,relativeTo:{vocab:!0},reverse:b}),r=e.mappings.has(n)?e.mappings.get(n)["@nest"]:null;let f=m;r&&(I(e,r,p),i(m[r])||(m[r]={}),f=m[r]);const g=h(e,n,"@container")||[],y=d(t),v=l(t);let w;v?w=t["@list"]:y&&(w=t["@graph"]);let S=await E.compact({activeCtx:e,activeProperty:n,element:v||y?w:t,options:p});if(v){if(o(S)||(S=[S]),g.includes("@list")){x(f,n,S,{valueIsArray:!0,allowDuplicate:!0});continue}S={[E.compactIri({activeCtx:e,iri:"@list",relativeTo:{vocab:!0}})]:S},"@index"in t&&(S[E.compactIri({activeCtx:e,iri:"@index",relativeTo:{vocab:!0}})]=t["@index"])}if(y)if(g.includes("@graph")&&(g.includes("@id")||g.includes("@index")&&u(t))){let r;f.hasOwnProperty(n)?r=f[n]:f[n]=r={};const o=(g.includes("@id")?t["@id"]:t["@index"])||E.compactIri({activeCtx:e,iri:"@none",relativeTo:{vocab:!0}});x(r,o,S,{propertyIsArray:!p.compactArrays||g.includes("@set")})}else g.includes("@graph")&&u(t)?(o(S)&&S.length>1&&(S={"@included":S}),x(f,n,S,{propertyIsArray:!p.compactArrays||g.includes("@set")})):(o(S)&&1===S.length&&p.compactArrays&&(S=S[0]),S={[E.compactIri({activeCtx:e,iri:"@graph",relativeTo:{vocab:!0}})]:S},"@id"in t&&(S[E.compactIri({activeCtx:e,iri:"@id",relativeTo:{vocab:!0}})]=t["@id"]),"@index"in t&&(S[E.compactIri({activeCtx:e,iri:"@index",relativeTo:{vocab:!0}})]=t["@index"]),x(f,n,S,{propertyIsArray:!p.compactArrays||g.includes("@set")}));else if(g.includes("@language")||g.includes("@index")||g.includes("@id")||g.includes("@type")){let r,o;if(f.hasOwnProperty(n)?r=f[n]:f[n]=r={},g.includes("@language"))c(S)&&(S=S["@value"]),o=t["@language"];else if(g.includes("@index")){const r=h(e,n,"@index")||"@index",i=E.compactIri({activeCtx:e,iri:r,relativeTo:{vocab:!0}});if("@index"===r)o=t["@index"],delete S[i];else{let e;if([o,...e]=_(S[r]||[]),a(o))switch(e.length){case 0:delete S[r];break;case 1:S[r]=e[0];break;default:S[r]=e;break}else o=null}}else if(g.includes("@id")){const t=E.compactIri({activeCtx:e,iri:"@id",relativeTo:{vocab:!0}});o=S[t],delete S[t]}else if(g.includes("@type")){const r=E.compactIri({activeCtx:e,iri:"@type",relativeTo:{vocab:!0}});let i;switch([o,...i]=_(S[r]||[]),i.length){case 0:delete S[r];break;case 1:S[r]=i[0];break;default:S[r]=i;break}1===Object.keys(S).length&&"@id"in t&&(S=await E.compact({activeCtx:e,activeProperty:n,element:{"@id":t["@id"]},options:p}))}o||(o=E.compactIri({activeCtx:e,iri:"@none",relativeTo:{vocab:!0}})),x(r,o,S,{propertyIsArray:g.includes("@set")})}else{const e=!p.compactArrays||g.includes("@set")||g.includes("@list")||o(S)&&0===S.length||"@list"===s||"@graph"===s;x(f,n,S,{propertyIsArray:e})}}}else{const n=h(e,t,"@container")||[];if(n.includes("@index"))continue;const r=E.compactIri({activeCtx:e,iri:s,relativeTo:{vocab:!0}});x(m,r,f)}else{const n=await E.compact({activeCtx:e,activeProperty:t,element:f,options:p});o(n)&&0===n.length||x(m,s,n)}else{const t=await E.compact({activeCtx:e,activeProperty:"@reverse",element:f,options:p});for(const n in t)if(e.mappings.has(n)&&e.mappings.get(n).reverse){const r=t[n],o=h(e,n,"@container")||[],i=o.includes("@set")||!p.compactArrays;x(m,n,r,{propertyIsArray:i}),delete t[n]}if(Object.keys(t).length>0){const n=E.compactIri({activeCtx:e,iri:s,relativeTo:{vocab:!0}});x(m,n,t)}}else{let t=_(f).map((e=>E.compactIri({activeCtx:w,iri:e,relativeTo:{vocab:!0}})));1===t.length&&(t=t[0]);const n=E.compactIri({activeCtx:e,iri:"@type",relativeTo:{vocab:!0}}),r=h(e,n,"@container")||[],i=r.includes("@set")&&v(e,1.1),a=i||o(t)&&0===f.length;x(m,n,t,{propertyIsArray:a})}else{let t=_(f).map((t=>E.compactIri({activeCtx:e,iri:t,relativeTo:{vocab:!1},base:p.base})));1===t.length&&(t=t[0]);const n=E.compactIri({activeCtx:e,iri:"@id",relativeTo:{vocab:!0}});m[n]=t}}return m}return n},E.compactIri=({activeCtx:e,iri:t,value:n=null,relativeTo:o={vocab:!1},reverse:a=!1,base:s=null})=>{if(null===t)return t;e.isPropertyTermScoped&&e.previousContext&&(e=e.previousContext);const u=e.getInverse();if(g(t)&&t in u&&"@none"in u[t]&&"@type"in u[t]["@none"]&&"@none"in u[t]["@none"]["@type"])return u[t]["@none"]["@type"]["@none"];if(o.vocab&&t in u){const r=e["@language"]||"@none",o=[];i(n)&&"@index"in n&&!("@graph"in n)&&o.push("@index","@index@set"),i(n)&&"@preserve"in n&&(n=n["@preserve"][0]),d(n)?("@index"in n&&o.push("@graph@index","@graph@index@set","@index","@index@set"),"@id"in n&&o.push("@graph@id","@graph@id@set"),o.push("@graph","@graph@set","@set"),"@index"in n||o.push("@graph@index","@graph@index@set","@index","@index@set"),"@id"in n||o.push("@graph@id","@graph@id@set")):i(n)&&!c(n)&&o.push("@id","@id@set","@type","@set@type");let s="@language",u="@null";if(a)s="@type",u="@reverse",o.push("@set");else if(l(n)){"@index"in n||o.push("@list");const e=n["@list"];if(0===e.length)s="@any",u="@none";else{let t=0===e.length?r:null,n=null;for(let r=0;r=0;--r){const o=p[r],i=o.terms;for(const r of i){const i=r+":"+t.substr(o.iri.length),a=e.mappings.get(r)._prefix&&(!e.mappings.has(i)||null===n&&e.mappings.get(i)["@id"]===t);a&&(null===f||S(i,f)<0)&&(f=i)}}if(null!==f)return f;for(const[i,l]of e.mappings)if(l&&l._prefix&&t.startsWith(i+":"))throw new r(`Absolute IRI "${t}" confused with prefix "${i}".`,"jsonld.SyntaxError",{code:"IRI confused with prefix",context:e});if(!o.vocab){if("@base"in e){if(e["@base"]){const n=b(m(s,e["@base"]),t);return w.test(n)?`./${n}`:n}return t}return b(s,t)}return t},E.compactValue=({activeCtx:e,activeProperty:t,value:n,options:r})=>{if(c(n)){const r=h(e,t,"@type"),o=h(e,t,"@language"),i=h(e,t,"@direction"),s=h(e,t,"@container")||[],l="@index"in n&&!s.includes("@index");if(!l&&"@none"!==r){if(n["@type"]===r)return n["@value"];if("@language"in n&&n["@language"]===o&&"@direction"in n&&n["@direction"]===i)return n["@value"];if("@language"in n&&n["@language"]===o)return n["@value"];if("@direction"in n&&n["@direction"]===i)return n["@value"]}const c=Object.keys(n).length,d=1===c||2===c&&"@index"in n&&!l,u="@language"in e,f=a(n["@value"]),p=e.mappings.has(t)&&null===e.mappings.get(t)["@language"];if(d&&"@none"!==r&&(!u||!f||p))return n["@value"];const g={};return l&&(g[E.compactIri({activeCtx:e,iri:"@index",relativeTo:{vocab:!0}})]=n["@index"]),"@type"in n?g[E.compactIri({activeCtx:e,iri:"@type",relativeTo:{vocab:!0}})]=E.compactIri({activeCtx:e,iri:n["@type"],relativeTo:{vocab:!0}}):"@language"in n&&(g[E.compactIri({activeCtx:e,iri:"@language",relativeTo:{vocab:!0}})]=n["@language"]),"@direction"in n&&(g[E.compactIri({activeCtx:e,iri:"@direction",relativeTo:{vocab:!0}})]=n["@direction"]),g[E.compactIri({activeCtx:e,iri:"@value",relativeTo:{vocab:!0}})]=n["@value"],g}const o=p(e,t,{vocab:!0},r),i=h(e,t,"@type"),s=E.compactIri({activeCtx:e,iri:n["@id"],relativeTo:{vocab:"@vocab"===i},base:r.base});return"@id"===i||"@vocab"===i||"@graph"===o?s:{[E.compactIri({activeCtx:e,iri:"@id",relativeTo:{vocab:!0}})]:s}}},93770:function(e){"use strict";const t="http://www.w3.org/1999/02/22-rdf-syntax-ns#",n="http://www.w3.org/2001/XMLSchema#";e.exports={LINK_HEADER_REL:"http://www.w3.org/ns/json-ld#context",LINK_HEADER_CONTEXT:"http://www.w3.org/ns/json-ld#context",RDF:t,RDF_LIST:t+"List",RDF_FIRST:t+"first",RDF_REST:t+"rest",RDF_NIL:t+"nil",RDF_TYPE:t+"type",RDF_PLAIN_LITERAL:t+"PlainLiteral",RDF_XML_LITERAL:t+"XMLLiteral",RDF_JSON_LITERAL:t+"JSON",RDF_OBJECT:t+"object",RDF_LANGSTRING:t+"langString",XSD:n,XSD_BOOLEAN:n+"boolean",XSD_DOUBLE:n+"double",XSD_INTEGER:n+"integer",XSD_STRING:n+"string"}},54131:function(e,t,n){"use strict";const r=n(51055),o=n(54093),{isArray:i,isObject:a,isString:s,isUndefined:l}=n(30832),{isAbsolute:c,isRelative:d,prependBase:u}=n(82278),{handleEvent:f}=n(91696),{REGEX_BCP47:p,REGEX_KEYWORD:h,asArray:g,compareShortestLeast:y}=n(51055),v=new Map,b=1e4,m={};function w(e,t,n,r,o,i){if(null===t||!s(t)||m.isKeyword(t))return t;if(t.match(h))return null;if(r&&r.hasOwnProperty(t)&&!0!==o.get(t)&&m.createTermDefinition({activeCtx:e,localCtx:r,term:t,defined:o,options:i}),n=n||{},n.vocab){const n=e.mappings.get(t);if(null===n)return null;if(a(n)&&"@id"in n)return n["@id"]}const l=t.indexOf(":");if(l>0){const n=t.substr(0,l),a=t.substr(l+1);if("_"===n||0===a.indexOf("//"))return t;r&&r.hasOwnProperty(n)&&m.createTermDefinition({activeCtx:e,localCtx:r,term:n,defined:o,options:i});const s=e.mappings.get(n);if(s&&s._prefix)return s["@id"]+a;if(c(t))return t}if(n.vocab&&"@vocab"in e){const n=e["@vocab"]+t;t=n}else if(n.base){let n,r;"@base"in e?e["@base"]?(r=u(i.base,e["@base"]),n=u(r,t)):(r=e["@base"],n=t):(r=i.base,n=u(i.base,t)),t=n}return t}function x(e,t){if(!e||"object"!==typeof e||!t||"object"!==typeof t)return e===t;const n=Array.isArray(e);if(n!==Array.isArray(t))return!1;if(n){if(e.length!==t.length)return!1;for(let n=0;n{a(t)&&"@context"in t&&i(t["@context"])&&(t=t["@context"]);const y=g(t);if(0===y.length)return e;const v=[],b=[({event:e,next:t})=>{v.push(e),t()}];n.eventHandler&&b.push(n.eventHandler);const x=n;n={...n,eventHandler:b};const _=await n.contextResolver.resolve({activeCtx:e,context:t,documentLoader:n.documentLoader,base:n.base});a(_[0].document)&&"boolean"===typeof _[0].document["@propagate"]&&(r=_[0].document["@propagate"]);let S=e;r||S.previousContext||(S=S.clone(),S.previousContext=e);for(const i of _){let{document:r}=i;if(e=S,null===r){if(!l&&0!==Object.keys(e.protected).length)throw new o("Tried to nullify a context with protected terms outside of a term definition.","jsonld.SyntaxError",{code:"invalid context nullification"});S=e=m.getInitialContext(n).clone();continue}const g=i.getProcessed(e);if(g){if(x.eventHandler)for(const e of g.events)f({event:e,options:x});S=e=g.context;continue}if(a(r)&&"@context"in r&&(r=r["@context"]),!a(r))throw new o("Invalid JSON-LD syntax; @context must be an object.","jsonld.SyntaxError",{code:"invalid local context",context:r});S=S.clone();const y=new Map;if("@version"in r){if(1.1!==r["@version"])throw new o("Unsupported JSON-LD version: "+r["@version"],"jsonld.UnsupportedVersion",{code:"invalid @version value",context:r});if(e.processingMode&&"json-ld-1.0"===e.processingMode)throw new o("@version: "+r["@version"]+" not compatible with "+e.processingMode,"jsonld.ProcessingModeConflict",{code:"processing mode conflict",context:r});S.processingMode="json-ld-1.1",S["@version"]=r["@version"],y.set("@version",!0)}if(S.processingMode=S.processingMode||e.processingMode,"@base"in r){let e=r["@base"];if(null===e||c(e));else{if(!d(e))throw new o('Invalid JSON-LD syntax; the value of "@base" in a @context must be an absolute IRI, a relative IRI, or null.',"jsonld.SyntaxError",{code:"invalid base IRI",context:r});e=u(S["@base"],e)}S["@base"]=e,y.set("@base",!0)}if("@vocab"in r){const e=r["@vocab"];if(null===e)delete S["@vocab"];else{if(!s(e))throw new o('Invalid JSON-LD syntax; the value of "@vocab" in a @context must be a string or null.',"jsonld.SyntaxError",{code:"invalid vocab mapping",context:r});if(!c(e)&&m.processingMode(S,1))throw new o('Invalid JSON-LD syntax; the value of "@vocab" in a @context must be an absolute IRI.',"jsonld.SyntaxError",{code:"invalid vocab mapping",context:r});{const t=w(S,e,{vocab:!0,base:!0},void 0,void 0,n);c(t)||n.eventHandler&&f({event:{type:["JsonLdEvent"],code:"relative @vocab reference",level:"warning",message:"Relative @vocab reference found.",details:{vocab:t}},options:n}),S["@vocab"]=t}}y.set("@vocab",!0)}if("@language"in r){const e=r["@language"];if(null===e)delete S["@language"];else{if(!s(e))throw new o('Invalid JSON-LD syntax; the value of "@language" in a @context must be a string or null.',"jsonld.SyntaxError",{code:"invalid default language",context:r});e.match(p)||n.eventHandler&&f({event:{type:["JsonLdEvent"],code:"invalid @language value",level:"warning",message:"@language value must be valid BCP47.",details:{language:e}},options:n}),S["@language"]=e.toLowerCase()}y.set("@language",!0)}if("@direction"in r){const t=r["@direction"];if("json-ld-1.0"===e.processingMode)throw new o("Invalid JSON-LD syntax; @direction not compatible with "+e.processingMode,"jsonld.SyntaxError",{code:"invalid context member",context:r});if(null===t)delete S["@direction"];else{if("ltr"!==t&&"rtl"!==t)throw new o('Invalid JSON-LD syntax; the value of "@direction" in a @context must be null, "ltr", or "rtl".',"jsonld.SyntaxError",{code:"invalid base direction",context:r});S["@direction"]=t}y.set("@direction",!0)}if("@propagate"in r){const n=r["@propagate"];if("json-ld-1.0"===e.processingMode)throw new o("Invalid JSON-LD syntax; @propagate not compatible with "+e.processingMode,"jsonld.SyntaxError",{code:"invalid context entry",context:r});if("boolean"!==typeof n)throw new o("Invalid JSON-LD syntax; @propagate value must be a boolean.","jsonld.SyntaxError",{code:"invalid @propagate value",context:t});y.set("@propagate",!0)}if("@import"in r){const i=r["@import"];if("json-ld-1.0"===e.processingMode)throw new o("Invalid JSON-LD syntax; @import not compatible with "+e.processingMode,"jsonld.SyntaxError",{code:"invalid context entry",context:r});if(!s(i))throw new o("Invalid JSON-LD syntax; @import must be a string.","jsonld.SyntaxError",{code:"invalid @import value",context:t});const a=await n.contextResolver.resolve({activeCtx:e,context:i,documentLoader:n.documentLoader,base:n.base});if(1!==a.length)throw new o("Invalid JSON-LD syntax; @import must reference a single context.","jsonld.SyntaxError",{code:"invalid remote context",context:t});const l=a[0].getProcessed(e);if(l)r=l;else{const n=a[0].document;if("@import"in n)throw new o("Invalid JSON-LD syntax: imported context must not include @import.","jsonld.SyntaxError",{code:"invalid context entry",context:t});for(const e in n)r.hasOwnProperty(e)||(r[e]=n[e]);a[0].setProcessed(e,r)}y.set("@import",!0)}y.set("@protected",r["@protected"]||!1);for(const e in r)if(m.createTermDefinition({activeCtx:S,localCtx:r,term:e,defined:y,options:n,overrideProtected:l}),a(r[e])&&"@context"in r[e]){const t=r[e]["@context"];let i=!0;if(s(t)){const e=u(n.base,t);h.has(e)?i=!1:h.add(e)}if(i)try{await m.process({activeCtx:S.clone(),localCtx:r[e]["@context"],overrideProtected:!0,options:n,cycles:h})}catch(E){throw new o("Invalid JSON-LD syntax; invalid scoped context.","jsonld.SyntaxError",{code:"invalid scoped context",context:r[e]["@context"],term:e})}}i.setProcessed(e,{context:S,events:v})}return S},m.createTermDefinition=({activeCtx:e,localCtx:t,term:n,defined:r,options:l,overrideProtected:d=!1})=>{if(r.has(n)){if(r.get(n))return;throw new o("Cyclical context definition detected.","jsonld.CyclicalContext",{code:"cyclic IRI mapping",context:t,term:n})}let u;if(r.set(n,!1),t.hasOwnProperty(n)&&(u=t[n]),"@type"===n&&a(u)&&"@set"===(u["@container"]||"@set")&&m.processingMode(e,1.1)){const e=["@container","@id","@protected"],r=Object.keys(u);if(0===r.length||r.some((t=>!e.includes(t))))throw new o("Invalid JSON-LD syntax; keywords cannot be overridden.","jsonld.SyntaxError",{code:"keyword redefinition",context:t,term:n})}else{if(m.isKeyword(n))throw new o("Invalid JSON-LD syntax; keywords cannot be overridden.","jsonld.SyntaxError",{code:"keyword redefinition",context:t,term:n});if(n.match(h))return void(l.eventHandler&&f({event:{type:["JsonLdEvent"],code:"reserved term",level:"warning",message:'Terms beginning with "@" are reserved for future use and dropped.',details:{term:n}},options:l}));if(""===n)throw new o("Invalid JSON-LD syntax; a term cannot be an empty string.","jsonld.SyntaxError",{code:"invalid term definition",context:t})}const p=e.mappings.get(n);e.mappings.has(n)&&e.mappings.delete(n);let g=!1;if((s(u)||null===u)&&(g=!0,u={"@id":u}),!a(u))throw new o("Invalid JSON-LD syntax; @context term values must be strings or objects.","jsonld.SyntaxError",{code:"invalid term definition",context:t});const y={};e.mappings.set(n,y),y.reverse=!1;const v=["@container","@id","@language","@reverse","@type"];m.processingMode(e,1.1)&&v.push("@context","@direction","@index","@nest","@prefix","@protected");for(const i in u)if(!v.includes(i))throw new o("Invalid JSON-LD syntax; a term definition must not contain "+i,"jsonld.SyntaxError",{code:"invalid term definition",context:t});const b=n.indexOf(":");if(y._termHasColon=b>0,"@reverse"in u){if("@id"in u)throw new o("Invalid JSON-LD syntax; a @reverse term definition must not contain @id.","jsonld.SyntaxError",{code:"invalid reverse property",context:t});if("@nest"in u)throw new o("Invalid JSON-LD syntax; a @reverse term definition must not contain @nest.","jsonld.SyntaxError",{code:"invalid reverse property",context:t});const i=u["@reverse"];if(!s(i))throw new o("Invalid JSON-LD syntax; a @context @reverse value must be a string.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t});if(i.match(h))return l.eventHandler&&f({event:{type:["JsonLdEvent"],code:"reserved @reverse value",level:"warning",message:'@reverse values beginning with "@" are reserved for future use and dropped.',details:{reverse:i}},options:l}),void(p?e.mappings.set(n,p):e.mappings.delete(n));const a=w(e,i,{vocab:!0,base:!1},t,r,l);if(!c(a))throw new o("Invalid JSON-LD syntax; a @context @reverse value must be an absolute IRI or a blank node identifier.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t});y["@id"]=a,y.reverse=!0}else if("@id"in u){let i=u["@id"];if(i&&!s(i))throw new o("Invalid JSON-LD syntax; a @context @id value must be an array of strings or a string.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t});if(null===i)y["@id"]=null;else{if(!m.isKeyword(i)&&i.match(h))return l.eventHandler&&f({event:{type:["JsonLdEvent"],code:"reserved @id value",level:"warning",message:'@id values beginning with "@" are reserved for future use and dropped.',details:{id:i}},options:l}),void(p?e.mappings.set(n,p):e.mappings.delete(n));if(i!==n){if(i=w(e,i,{vocab:!0,base:!1},t,r,l),!c(i)&&!m.isKeyword(i))throw new o("Invalid JSON-LD syntax; a @context @id value must be an absolute IRI, a blank node identifier, or a keyword.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t});if(n.match(/(?::[^:])|\//)){const a=new Map(r).set(n,!0),s=w(e,n,{vocab:!0,base:!1},t,a,l);if(s!==i)throw new o("Invalid JSON-LD syntax; term in form of IRI must expand to definition.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t})}y["@id"]=i,y._prefix=g&&!y._termHasColon&&i.match(/[:\/\?#\[\]@]$/)}}}if(!("@id"in y))if(y._termHasColon){const o=n.substr(0,b);if(t.hasOwnProperty(o)&&m.createTermDefinition({activeCtx:e,localCtx:t,term:o,defined:r,options:l}),e.mappings.has(o)){const t=n.substr(b+1);y["@id"]=e.mappings.get(o)["@id"]+t}else y["@id"]=n}else if("@type"===n)y["@id"]=n;else{if(!("@vocab"in e))throw new o("Invalid JSON-LD syntax; @context terms must define an @id.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t,term:n});y["@id"]=e["@vocab"]+n}if((!0===u["@protected"]||!0===r.get("@protected")&&!1!==u["@protected"])&&(e.protected[n]=!0,y.protected=!0),r.set(n,!0),"@type"in u){let n=u["@type"];if(!s(n))throw new o("Invalid JSON-LD syntax; an @context @type value must be a string.","jsonld.SyntaxError",{code:"invalid type mapping",context:t});if("@json"===n||"@none"===n){if(m.processingMode(e,1))throw new o(`Invalid JSON-LD syntax; an @context @type value must not be "${n}" in JSON-LD 1.0 mode.`,"jsonld.SyntaxError",{code:"invalid type mapping",context:t})}else if("@id"!==n&&"@vocab"!==n){if(n=w(e,n,{vocab:!0,base:!1},t,r,l),!c(n))throw new o("Invalid JSON-LD syntax; an @context @type value must be an absolute IRI.","jsonld.SyntaxError",{code:"invalid type mapping",context:t});if(0===n.indexOf("_:"))throw new o("Invalid JSON-LD syntax; an @context @type value must be an IRI, not a blank node identifier.","jsonld.SyntaxError",{code:"invalid type mapping",context:t})}y["@type"]=n}if("@container"in u){const n=s(u["@container"])?[u["@container"]]:u["@container"]||[],r=["@list","@set","@index","@language"];let a=!0;const l=n.includes("@set");if(m.processingMode(e,1.1)){if(r.push("@graph","@id","@type"),n.includes("@list")){if(1!==n.length)throw new o("Invalid JSON-LD syntax; @context @container with @list must have no other values","jsonld.SyntaxError",{code:"invalid container mapping",context:t})}else if(n.includes("@graph")){if(n.some((e=>"@graph"!==e&&"@id"!==e&&"@index"!==e&&"@set"!==e)))throw new o("Invalid JSON-LD syntax; @context @container with @graph must have no other values other than @id, @index, and @set","jsonld.SyntaxError",{code:"invalid container mapping",context:t})}else a&=n.length<=(l?2:1);if(n.includes("@type")&&(y["@type"]=y["@type"]||"@id",!["@id","@vocab"].includes(y["@type"])))throw new o("Invalid JSON-LD syntax; container: @type requires @type to be @id or @vocab.","jsonld.SyntaxError",{code:"invalid type mapping",context:t})}else a&=!i(u["@container"]),a&=n.length<=1;if(a&=n.every((e=>r.includes(e))),a&=!(l&&n.includes("@list")),!a)throw new o("Invalid JSON-LD syntax; @context @container value must be one of the following: "+r.join(", "),"jsonld.SyntaxError",{code:"invalid container mapping",context:t});if(y.reverse&&!n.every((e=>["@index","@set"].includes(e))))throw new o("Invalid JSON-LD syntax; @context @container value for a @reverse type definition must be @index or @set.","jsonld.SyntaxError",{code:"invalid reverse property",context:t});y["@container"]=n}if("@index"in u){if(!("@container"in u)||!y["@container"].includes("@index"))throw new o(`Invalid JSON-LD syntax; @index without @index in @container: "${u["@index"]}" on term "${n}".`,"jsonld.SyntaxError",{code:"invalid term definition",context:t});if(!s(u["@index"])||0===u["@index"].indexOf("@"))throw new o(`Invalid JSON-LD syntax; @index must expand to an IRI: "${u["@index"]}" on term "${n}".`,"jsonld.SyntaxError",{code:"invalid term definition",context:t});y["@index"]=u["@index"]}if("@context"in u&&(y["@context"]=u["@context"]),"@language"in u&&!("@type"in u)){let e=u["@language"];if(null!==e&&!s(e))throw new o("Invalid JSON-LD syntax; @context @language value must be a string or null.","jsonld.SyntaxError",{code:"invalid language mapping",context:t});null!==e&&(e=e.toLowerCase()),y["@language"]=e}if("@prefix"in u){if(n.match(/:|\//))throw new o("Invalid JSON-LD syntax; @context @prefix used on a compact IRI term","jsonld.SyntaxError",{code:"invalid term definition",context:t});if(m.isKeyword(y["@id"]))throw new o("Invalid JSON-LD syntax; keywords may not be used as prefixes","jsonld.SyntaxError",{code:"invalid term definition",context:t});if("boolean"!==typeof u["@prefix"])throw new o("Invalid JSON-LD syntax; @context value for @prefix must be boolean","jsonld.SyntaxError",{code:"invalid @prefix value",context:t});y._prefix=!0===u["@prefix"]}if("@direction"in u){const e=u["@direction"];if(null!==e&&"ltr"!==e&&"rtl"!==e)throw new o('Invalid JSON-LD syntax; @direction value must be null, "ltr", or "rtl".',"jsonld.SyntaxError",{code:"invalid base direction",context:t});y["@direction"]=e}if("@nest"in u){const e=u["@nest"];if(!s(e)||"@nest"!==e&&0===e.indexOf("@"))throw new o("Invalid JSON-LD syntax; @context @nest value must be a string which is not a keyword other than @nest.","jsonld.SyntaxError",{code:"invalid @nest value",context:t});y["@nest"]=e} -// disallow aliasing @context and @preserve -const _=y["@id"];if("@context"===_||"@preserve"===_)throw new o("Invalid JSON-LD syntax; @context and @preserve cannot be aliased.","jsonld.SyntaxError",{code:"invalid keyword alias",context:t});if(p&&p.protected&&!d&&(e.protected[n]=!0,y.protected=!0,!x(p,y)))throw new o("Invalid JSON-LD syntax; tried to redefine a protected term.","jsonld.SyntaxError",{code:"protected term redefinition",context:t,term:n})},m.expandIri=(e,t,n,r)=>w(e,t,n,void 0,void 0,r),m.getInitialContext=e=>{const t=JSON.stringify({processingMode:e.processingMode}),n=v.get(t);if(n)return n;const o={processingMode:e.processingMode,mappings:new Map,inverse:null,getInverse:i,clone:l,revertToPreviousContext:c,protected:{}};return v.size===b&&v.clear(),v.set(t,o),o;function i(){const e=this;if(e.inverse)return e.inverse;const t=e.inverse={},n=e.fastCurieMap={},r={},o=(e["@language"]||"@none").toLowerCase(),i=e["@direction"],l=e.mappings,c=[...l.keys()].sort(y);for(const a of c){const e=l.get(a);if(null===e)continue;let c=e["@container"]||"@none";if(c=[].concat(c).sort().join(""),null===e["@id"])continue;const d=g(e["@id"]);for(const l of d){let d=t[l];const u=m.isKeyword(l);if(d)u||e._termHasColon||r[l].push(a);else if(t[l]=d={},!u&&!e._termHasColon){r[l]=[a];const e={iri:l,terms:r[l]};l[0]in n?n[l[0]].push(e):n[l[0]]=[e]}if(d[c]||(d[c]={"@language":{},"@type":{},"@any":{}}),d=d[c],s(a,d["@any"],"@none"),e.reverse)s(a,d["@type"],"@reverse");else if("@none"===e["@type"])s(a,d["@any"],"@none"),s(a,d["@language"],"@none"),s(a,d["@type"],"@none");else if("@type"in e)s(a,d["@type"],e["@type"]);else if("@language"in e&&"@direction"in e){const t=e["@language"],n=e["@direction"];s(a,d["@language"],t&&n?`${t}_${n}`.toLowerCase():t?t.toLowerCase():n?`_${n}`:"@null")}else"@language"in e?s(a,d["@language"],(e["@language"]||"@null").toLowerCase()):"@direction"in e?e["@direction"]?s(a,d["@language"],`_${e["@direction"]}`):s(a,d["@language"],"@none"):i?(s(a,d["@language"],`_${i}`),s(a,d["@language"],"@none"),s(a,d["@type"],"@none")):(s(a,d["@language"],o),s(a,d["@language"],"@none"),s(a,d["@type"],"@none"))}}for(const s in n)a(n,s,1);return t}function a(e,t,n){const r=e[t],o=e[t]={};let i,s;for(const a of r)i=a.iri,s=n>=i.length?"":i[n],s in o?o[s].push(a):o[s]=[a];for(const l in o)""!==l&&a(o,l,n+1)}function s(e,t,n){t.hasOwnProperty(n)||(t[n]=e)}function l(){const e={};return e.mappings=r.clone(this.mappings),e.clone=this.clone,e.inverse=null,e.getInverse=this.getInverse,e.protected=r.clone(this.protected),this.previousContext&&(e.previousContext=this.previousContext.clone()),e.revertToPreviousContext=this.revertToPreviousContext,"@base"in this&&(e["@base"]=this["@base"]),"@language"in this&&(e["@language"]=this["@language"]),"@vocab"in this&&(e["@vocab"]=this["@vocab"]),e}function c(){return this.previousContext?this.previousContext.clone():this}},m.getContextValue=(e,t,n)=>{if(null===t){if("@context"===n)return;return null}if(e.mappings.has(t)){const r=e.mappings.get(t);if(l(n))return r;if(r.hasOwnProperty(n))return r[n]}return"@language"===n&&n in e||"@direction"===n&&n in e?e[n]:"@context"!==n?null:void 0},m.processingMode=(e,t)=>t.toString()>="1.1"?!e.processingMode||e.processingMode>="json-ld-"+t.toString():"json-ld-1.0"===e.processingMode,m.isKeyword=e=>{if(!s(e)||"@"!==e[0])return!1;switch(e){case"@base":case"@container":case"@context":case"@default":case"@direction":case"@embed":case"@explicit":case"@graph":case"@id":case"@included":case"@index":case"@json":case"@language":case"@list":case"@nest":case"@none":case"@omitDefault":case"@prefix":case"@preserve":case"@protected":case"@requireAll":case"@reverse":case"@set":case"@type":case"@value":case"@version":case"@vocab":return!0}return!1}},8831:function(e,t,n){"use strict";const{parseLinkHeader:r,buildHeaders:o}=n(51055),{LINK_HEADER_CONTEXT:i}=n(93770),a=n(54093),s=n(40533),{prependBase:l}=n(82278),c=/(^|(\r\n))link:/i;function d(e,t,n){e=e||XMLHttpRequest;const r=new e;return new Promise(((e,o)=>{r.onload=()=>e(r),r.onerror=e=>o(e),r.open("GET",t,!0);for(const t in n)r.setRequestHeader(t,n[t]);r.send()}))}e.exports=({secure:e,headers:t={},xhr:n}={headers:{}})=>{t=o(t);const u=new s;return u.wrapLoader(f);async function f(o){if(0!==o.indexOf("http:")&&0!==o.indexOf("https:"))throw new a('URL could not be dereferenced; only "http" and "https" URLs are supported.',"jsonld.InvalidUrl",{code:"loading document failed",url:o});if(e&&0!==o.indexOf("https"))throw new a('URL could not be dereferenced; secure mode is enabled and the URL\'s scheme is not "https".',"jsonld.InvalidUrl",{code:"loading document failed",url:o});let s;try{s=await d(n,o,t)}catch(y){throw new a("URL could not be dereferenced, an error occurred.","jsonld.LoadDocumentError",{code:"loading document failed",url:o,cause:y})}if(s.status>=400)throw new a("URL could not be dereferenced: "+s.statusText,"jsonld.LoadDocumentError",{code:"loading document failed",url:o,httpStatusCode:s.status});let u={contextUrl:null,documentUrl:o,document:s.response},p=null;const h=s.getResponseHeader("Content-Type");let g;if(c.test(s.getAllResponseHeaders())&&(g=s.getResponseHeader("Link")),g&&"application/ld+json"!==h){const e=r(g),t=e[i];if(Array.isArray(t))throw new a("URL could not be dereferenced, it has more than one associated HTTP Link Header.","jsonld.InvalidUrl",{code:"multiple context link headers",url:o});t&&(u.contextUrl=t.target),p=e.alternate,p&&"application/ld+json"==p.type&&!(h||"").match(/^application\/(\w*\+)?json$/)&&(u=await f(l(o,p.target)))}return u}}},91696:function(e,t,n){"use strict";const r=n(54093),{isArray:o}=n(30832),{asArray:i}=n(51055),a={};function s({event:e,handlers:t}){let n=!0;for(let i=0;n&&i{n=!0}});else{if("object"!==typeof a)throw new r("Invalid event handler.","jsonld.InvalidEventHandler",{event:e});e.code in a?a[e.code]({event:e,next:()=>{n=!0}}):n=!0}}return n}e.exports=a,a.defaultEventHandler=null,a.setupEventHandler=({options:e={}})=>{const t=[].concat(e.safe?a.safeEventHandler:[],e.eventHandler?i(e.eventHandler):[],a.defaultEventHandler?a.defaultEventHandler:[]);return 0===t.length?null:t},a.handleEvent=({event:e,options:t})=>{s({event:e,handlers:t.eventHandler})};const l=new Set(["empty object","free-floating scalar","invalid @language value","invalid property","null @id value","null @value value","object with only @id","object with only @language","object with only @list","object with only @value","relative @id reference","relative @type reference","relative @vocab reference","reserved @id value","reserved @reverse value","reserved term","blank node predicate","relative graph reference","relative object reference","relative predicate reference","relative subject reference"]);a.safeEventHandler=function({event:e,next:t}){if("warning"===e.level&&l.has(e.code))throw new r("Safe mode validation error.","jsonld.ValidationError",{event:e});t()},a.logEventHandler=function({event:e,next:t}){console.log(`EVENT: ${e.message}`,{event:e}),t()},a.logWarningEventHandler=function({event:e,next:t}){"warning"===e.level&&console.warn(`WARNING: ${e.message}`,{event:e}),t()},a.unhandledEventHandler=function({event:e}){throw new r("No handler for event.","jsonld.UnhandledEvent",{event:e})},a.setDefaultEventHandler=function({eventHandler:e}={}){a.defaultEventHandler=e?i(e):null}},62759:function(e,t,n){"use strict";const r=n(54093),{isArray:o,isObject:i,isEmptyObject:a,isString:s,isUndefined:l}=n(30832),{isList:c,isValue:d,isGraph:u,isSubject:f}=n(18463),{expandIri:p,getContextValue:h,isKeyword:g,process:y,processingMode:v}=n(54131),{isAbsolute:b}=n(82278),{REGEX_BCP47:m,REGEX_KEYWORD:w,addValue:x,asArray:_,getValues:S,validateTypeValue:E}=n(51055),{handleEvent:R}=n(91696),I={};function j({value:e,count:t,options:n}){if(0===t||"@value"in e||"@list"in e||1===t&&"@id"in e){if(n.eventHandler){let r,o;0===t?(r="empty object",o="Dropping empty object."):"@value"in e?(r="object with only @value",o="Dropping object with only @value."):"@list"in e?(r="object with only @list",o="Dropping object with only @list."):1===t&&"@id"in e&&(r="object with only @id",o="Dropping object with only @id."),R({event:{type:["JsonLdEvent"],code:r,level:"warning",message:o,details:{value:e}},options:n})}return null}return e}async function A({activeCtx:e,activeProperty:t,expandedActiveProperty:n,element:u,expandedParent:w,options:S={},insideList:N,typeKey:D,typeScopedContext:L}){const T=Object.keys(u).sort(),C=[];let M;const P=u[D]&&"@json"===p(e,o(u[D])?u[D][0]:u[D],{vocab:!0},{...S,typeExpansion:!0});for(const A of T){let N,D=u[A];if("@context"===A)continue;const T=p(e,A,{vocab:!0},S);if(null===T||!b(T)&&!g(T)){S.eventHandler&&R({event:{type:["JsonLdEvent"],code:"invalid property",level:"warning",message:"Dropping property that did not expand into an absolute IRI or keyword.",details:{property:A,expandedProperty:T}},options:S});continue}if(g(T)){if("@reverse"===n)throw new r("Invalid JSON-LD syntax; a keyword cannot be used as a @reverse property.","jsonld.SyntaxError",{code:"invalid reverse property map",value:D});if(T in w&&"@included"!==T&&"@type"!==T)throw new r("Invalid JSON-LD syntax; colliding keywords detected.","jsonld.SyntaxError",{code:"colliding keywords",keyword:T})}if("@id"===T){if(!s(D)){if(!S.isFrame)throw new r('Invalid JSON-LD syntax; "@id" value must a string.',"jsonld.SyntaxError",{code:"invalid @id value",value:D});if(i(D)){if(!a(D))throw new r('Invalid JSON-LD syntax; "@id" value an empty object or array of strings, if framing',"jsonld.SyntaxError",{code:"invalid @id value",value:D})}else{if(!o(D))throw new r('Invalid JSON-LD syntax; "@id" value an empty object or array of strings, if framing',"jsonld.SyntaxError",{code:"invalid @id value",value:D});if(!D.every((e=>s(e))))throw new r('Invalid JSON-LD syntax; "@id" value an empty object or array of strings, if framing',"jsonld.SyntaxError",{code:"invalid @id value",value:D})}}x(w,"@id",_(D).map((t=>{if(s(t)){const n=p(e,t,{base:!0},S);return S.eventHandler&&(null===n?R(null===t?{event:{type:["JsonLdEvent"],code:"null @id value",level:"warning",message:"Null @id found.",details:{id:t}},options:S}:{event:{type:["JsonLdEvent"],code:"reserved @id value",level:"warning",message:"Reserved @id found.",details:{id:t}},options:S}):b(n)||R({event:{type:["JsonLdEvent"],code:"relative @id reference",level:"warning",message:"Relative @id reference found.",details:{id:t,expandedId:n}},options:S})),n}return t})),{propertyIsArray:S.isFrame});continue}if("@type"===T){i(D)&&(D=Object.fromEntries(Object.entries(D).map((([e,t])=>[p(L,e,{vocab:!0}),_(t).map((e=>p(L,e,{base:!0,vocab:!0},{...S,typeExpansion:!0})))])))),E(D,S.isFrame),x(w,"@type",_(D).map((e=>{if(s(e)){const t=p(L,e,{base:!0,vocab:!0},{...S,typeExpansion:!0});return"@json"===t||b(t)||S.eventHandler&&R({event:{type:["JsonLdEvent"],code:"relative @type reference",level:"warning",message:"Relative @type reference found.",details:{type:e}},options:S}),t}return e})),{propertyIsArray:!!S.isFrame});continue}if("@included"===T&&v(e,1.1)){const n=_(await I.expand({activeCtx:e,activeProperty:t,element:D,options:S}));if(!n.every((e=>f(e))))throw new r("Invalid JSON-LD syntax; values of @included must expand to node objects.","jsonld.SyntaxError",{code:"invalid @included value",value:D});x(w,"@included",n,{propertyIsArray:!0});continue}if("@graph"===T&&!i(D)&&!o(D))throw new r('Invalid JSON-LD syntax; "@graph" value must not be an object or an array.',"jsonld.SyntaxError",{code:"invalid @graph value",value:D});if("@value"===T){M=D,P&&v(e,1.1)?w["@value"]=D:x(w,"@value",D,{propertyIsArray:S.isFrame});continue}if("@language"===T){if(null===D)continue;if(!s(D)&&!S.isFrame)throw new r('Invalid JSON-LD syntax; "@language" value must be a string.',"jsonld.SyntaxError",{code:"invalid language-tagged string",value:D});D=_(D).map((e=>s(e)?e.toLowerCase():e));for(const e of D)s(e)&&!e.match(m)&&S.eventHandler&&R({event:{type:["JsonLdEvent"],code:"invalid @language value",level:"warning",message:"@language value must be valid BCP47.",details:{language:e}},options:S});x(w,"@language",D,{propertyIsArray:S.isFrame});continue}if("@direction"===T){if(!s(D)&&!S.isFrame)throw new r('Invalid JSON-LD syntax; "@direction" value must be a string.',"jsonld.SyntaxError",{code:"invalid base direction",value:D});D=_(D);for(const e of D)if(s(e)&&"ltr"!==e&&"rtl"!==e)throw new r('Invalid JSON-LD syntax; "@direction" must be "ltr" or "rtl".',"jsonld.SyntaxError",{code:"invalid base direction",value:D});x(w,"@direction",D,{propertyIsArray:S.isFrame});continue}if("@index"===T){if(!s(D))throw new r('Invalid JSON-LD syntax; "@index" value must be a string.',"jsonld.SyntaxError",{code:"invalid @index value",value:D});x(w,"@index",D);continue}if("@reverse"===T){if(!i(D))throw new r('Invalid JSON-LD syntax; "@reverse" value must be an object.',"jsonld.SyntaxError",{code:"invalid @reverse value",value:D});if(N=await I.expand({activeCtx:e,activeProperty:"@reverse",element:D,options:S}),"@reverse"in N)for(const e in N["@reverse"])x(w,e,N["@reverse"][e],{propertyIsArray:!0});let t=w["@reverse"]||null;for(const e in N){if("@reverse"===e)continue;null===t&&(t=w["@reverse"]={}),x(t,e,[],{propertyIsArray:!0});const n=N[e];for(let o=0;o"@id"===e||"@index"===e))){N=_(N);const e=Object.keys(N[0]).length;if(!S.isFrame&&null===j({value:N[0],count:e,options:S}))continue;N=N.map((e=>({"@graph":_(e)})))}if(F.mappings.has(A)&&F.mappings.get(A).reverse){const e=w["@reverse"]=w["@reverse"]||{};N=_(N);for(let t=0;t"@value"===p(e,t,{vocab:!0},S))))throw new r("Invalid JSON-LD syntax; nested value must be a node object.","jsonld.SyntaxError",{code:"invalid @nest value",value:o});await A({activeCtx:e,activeProperty:t,expandedActiveProperty:n,element:o,expandedParent:w,options:S,insideList:N,typeScopedContext:L,typeKey:D})}}}function N({activeCtx:e,activeProperty:t,value:n,options:r}){if(null===n||void 0===n)return null;const o=p(e,t,{vocab:!0},r);if("@id"===o)return p(e,n,{base:!0},r);if("@type"===o)return p(e,n,{vocab:!0,base:!0},{...r,typeExpansion:!0});const i=h(e,t,"@type");if(("@id"===i||"@graph"===o)&&s(n)){const o=p(e,n,{base:!0},r);return null===o&&n.match(w)&&r.eventHandler&&R({event:{type:["JsonLdEvent"],code:"reserved @id value",level:"warning",message:"Reserved @id found.",details:{id:t}},options:r}),{"@id":o}}if("@vocab"===i&&s(n))return{"@id":p(e,n,{vocab:!0,base:!0},r)};if(g(o))return n;const a={};if(i&&!["@id","@vocab","@none"].includes(i))a["@type"]=i;else if(s(n)){const n=h(e,t,"@language");null!==n&&(a["@language"]=n);const r=h(e,t,"@direction");null!==r&&(a["@direction"]=r)}return["boolean","number","string"].includes(typeof n)||(n=n.toString()),a["@value"]=n,a}function O(e,t,n,i){const a=[],l=Object.keys(t).sort();for(const c of l){const l=p(e,c,{vocab:!0},i);let d=t[c];o(d)||(d=[d]);for(const e of d){if(null===e)continue;if(!s(e))throw new r("Invalid JSON-LD syntax; language map values must be strings.","jsonld.SyntaxError",{code:"invalid language map value",languageMap:t});const o={"@value":e};"@none"!==l&&(c.match(m)||i.eventHandler&&R({event:{type:["JsonLdEvent"],code:"invalid @language value",level:"warning",message:"@language value must be valid BCP47.",details:{language:c}},options:i}),o["@language"]=c.toLowerCase()),n&&(o["@direction"]=n),a.push(o)}}return a}async function k({activeCtx:e,options:t,activeProperty:n,value:i,asGraph:a,indexKey:s,propertyIndex:c}){const f=[],g=Object.keys(i).sort(),v="@type"===s;for(let b of g){if(v){const n=h(e,b,"@context");l(n)||(e=await y({activeCtx:e,localCtx:n,propagate:!1,options:t}))}let g,m=i[b];o(m)||(m=[m]),m=await I.expand({activeCtx:e,activeProperty:n,element:m,options:t,insideList:!1,insideIndex:!0}),g=c?"@none"===b?"@none":N({activeCtx:e,activeProperty:s,value:b,options:t}):p(e,b,{vocab:!0},t),"@id"===s?b=p(e,b,{base:!0},t):v&&(b=g);for(let e of m){if(a&&!u(e)&&(e={"@graph":[e]}),"@type"===s)"@none"===g||(e["@type"]?e["@type"]=[b].concat(e["@type"]):e["@type"]=[b]);else{if(d(e)&&!["@language","@type","@index"].includes(s))throw new r(`Invalid JSON-LD syntax; Attempt to add illegal key to value object: "${s}".`,"jsonld.SyntaxError",{code:"invalid value object",value:e});c?"@none"!==g&&x(e,c,g,{propertyIsArray:!0,prependValue:!0}):"@none"===g||s in e||(e[s]=b)}f.push(e)}}return f}e.exports=I,I.expand=async({activeCtx:e,activeProperty:t=null,element:n,options:c={},insideList:d=!1,insideIndex:u=!1,typeScopedContext:f=null})=>{if(null===n||void 0===n)return null;if("@default"===t&&(c=Object.assign({},c,{isFrame:!1})),!o(n)&&!i(n))return d||null!==t&&"@graph"!==p(e,t,{vocab:!0},c)?N({activeCtx:e,activeProperty:t,value:n,options:c}):(c.eventHandler&&R({event:{type:["JsonLdEvent"],code:"free-floating scalar",level:"warning",message:"Dropping free-floating scalar not in a list.",details:{value:n}},options:c}),null);if(o(n)){let r=[];const i=h(e,t,"@container")||[];d=d||i.includes("@list");for(let a=0;a1?t.slice().sort():t:[t];for(const n of o){const t=h(f,n,"@context");l(t)||(e=await y({activeCtx:e,localCtx:t,options:c,propagate:!1}))}}}let O={};await A({activeCtx:e,activeProperty:t,expandedActiveProperty:g,element:n,expandedParent:O,options:c,insideList:d,typeKey:E,typeScopedContext:f}),w=Object.keys(O);let k=w.length;if("@value"in O){if("@type"in O&&("@language"in O||"@direction"in O))throw new r('Invalid JSON-LD syntax; an element containing "@value" may not contain both "@type" and either "@language" or "@direction".',"jsonld.SyntaxError",{code:"invalid value object",element:O});let t=k-1;if("@type"in O&&(t-=1),"@index"in O&&(t-=1),"@language"in O&&(t-=1),"@direction"in O&&(t-=1),0!==t)throw new r('Invalid JSON-LD syntax; an element containing "@value" may only have an "@index" property and either "@type" or either or both "@language" or "@direction".',"jsonld.SyntaxError",{code:"invalid value object",element:O});const n=null===O["@value"]?[]:_(O["@value"]),o=S(O,"@type");if(v(e,1.1)&&o.includes("@json")&&1===o.length);else if(0===n.length)c.eventHandler&&R({event:{type:["JsonLdEvent"],code:"null @value value",level:"warning",message:"Dropping null @value value.",details:{value:O}},options:c}),O=null;else{if(!n.every((e=>s(e)||a(e)))&&"@language"in O)throw new r("Invalid JSON-LD syntax; only strings may be language-tagged.","jsonld.SyntaxError",{code:"invalid language-tagged value",element:O});if(!o.every((e=>b(e)&&!(s(e)&&0===e.indexOf("_:"))||a(e))))throw new r('Invalid JSON-LD syntax; an element containing "@value" and "@type" must have an absolute IRI for the value of "@type".',"jsonld.SyntaxError",{code:"invalid typed value",element:O})}}else if("@type"in O&&!o(O["@type"]))O["@type"]=[O["@type"]];else if("@set"in O||"@list"in O){if(k>1&&(2!==k||!("@index"in O)))throw new r('Invalid JSON-LD syntax; if an element has the property "@set" or "@list", then it can have at most one other property that is "@index".',"jsonld.SyntaxError",{code:"invalid set or list object",element:O});"@set"in O&&(O=O["@set"],w=Object.keys(O),k=w.length)}else 1===k&&"@language"in O&&(c.eventHandler&&R({event:{type:["JsonLdEvent"],code:"object with only @language",level:"warning",message:"Dropping object with only @language.",details:{value:O}},options:c}),O=null);return!i(O)||c.keepFreeFloatingNodes||d||null!==t&&"@graph"!==g&&!(h(e,t,"@container")||[]).includes("@graph")||(O=j({value:O,count:k,options:c})),O}},41565:function(e,t,n){"use strict";const{isSubjectReference:r}=n(18463),{createMergedNodeMap:o}=n(32664),i={};e.exports=i,i.flatten=e=>{const t=o(e),n=[],i=Object.keys(t).sort();for(let o=0;o=0;--r){const o=n[r];if(o.graph===t&&o.subject["@id"]===e["@id"])return!0}return!1}function h(e,t,n){const r="@"+n;let o=r in e?e[r][0]:t[n];if("embed"===n)if(!0===o)o="@once";else if(!1===o)o="@never";else if("@always"!==o&&"@never"!==o&&"@link"!==o&&"@first"!==o&&"@last"!==o&&"@once"!==o)throw new l("Invalid JSON-LD syntax; invalid value of @embed.","jsonld.SyntaxError",{code:"invalid @embed value",frame:e});return o}function g(e){if(!i.isArray(e)||1!==e.length||!i.isObject(e[0]))throw new l("Invalid JSON-LD syntax; a JSON-LD frame must be a single object.","jsonld.SyntaxError",{frame:e});if("@id"in e[0])for(const t of a.asArray(e[0]["@id"]))if(!i.isObject(t)&&!s.isAbsolute(t)||i.isString(t)&&0===t.indexOf("_:"))throw new l("Invalid JSON-LD syntax; invalid @id in frame.","jsonld.SyntaxError",{code:"invalid frame",frame:e});if("@type"in e[0])for(const t of a.asArray(e[0]["@type"]))if(!i.isObject(t)&&!s.isAbsolute(t)&&"@json"!==t||i.isString(t)&&0===t.indexOf("_:"))throw new l("Invalid JSON-LD syntax; invalid @type in frame.","jsonld.SyntaxError",{code:"invalid frame",frame:e})}function y(e,t,n,r){const o={};for(const i of t){const t=e.graphMap[e.graph][i];v(e,t,n,r)&&(o[i]=t)}return o}function v(e,t,n,s){let l=!0,c=!1;for(const d in n){let u=!1;const f=a.getValues(t,d),p=0===a.getValues(n,d).length;if("@id"===d){if(i.isEmptyObject(n["@id"][0]||{})?u=!0:n["@id"].length>=0&&(u=n["@id"].includes(f[0])),!s.requireAll)return u}else if("@type"===d){if(l=!1,p){if(f.length>0)return!1;u=!0}else if(1===n["@type"].length&&i.isEmptyObject(n["@type"][0]))u=f.length>0;else for(const e of n["@type"])u=!(!i.isObject(e)||!("@default"in e))||(u||f.some((t=>t===e)));if(!s.requireAll)return u}else{if(r(d))continue;{const t=a.getValues(n,d)[0];let r=!1;if(t&&(g([t]),r="@default"in t),l=!1,0===f.length&&r)continue;if(f.length>0&&p)return!1;if(void 0===t){if(f.length>0)return!1;u=!0}else if(o.isList(t)){const n=t["@list"][0];if(o.isList(f[0])){const t=f[0]["@list"];o.isValue(n)?u=t.some((e=>_(n,e))):(o.isSubject(n)||o.isSubjectReference(n))&&(u=t.some((t=>x(e,n,t,s))))}}else u=o.isValue(t)?f.some((e=>_(t,e))):o.isSubjectReference(t)?f.some((n=>x(e,t,n,s))):!!i.isObject(t)&&f.length>0}}if(!u&&s.requireAll)return!1;c=c||u}return l||c}function b(e,t){const n=e.uniqueEmbeds[e.graph],r=n[t],o=r.parent,s=r.property,l={"@id":t};if(i.isArray(o)){for(let i=0;i{const t=Object.keys(n);for(const r of t)r in n&&i.isObject(n[r].parent)&&n[r].parent["@id"]===e&&(delete n[r],c(r))};c(t)} -/** - * Removes the @preserve keywords from expanded result of framing. - * - * @param input the framed, framed output. - * @param options the framing options used. - * - * @return the resulting output. - */function m(e,t){if(i.isArray(e))return e.map((e=>m(e,t)));if(i.isObject(e)){ -// remove @preserve -if("@preserve"in e)return e["@preserve"][0];if(o.isValue(e))return e;if(o.isList(e))return e["@list"]=m(e["@list"],t),e;if("@id"in e){const n=e["@id"];if(t.link.hasOwnProperty(n)){const r=t.link[n].indexOf(e);if(-1!==r)return t.link[n][r];t.link[n].push(e)}else t.link[n]=[e]}for(const n in e)"@id"===n&&t.bnodesToClear.includes(e[n])?delete e["@id"]:e[n]=m(e[n],t)}return e}function w(e,t,n){i.isObject(e)?a.addValue(e,t,n,{propertyIsArray:!0}):e.push(n)}function x(e,t,n,r){if(!("@id"in n))return!1;const o=e.subjects[n["@id"]];return o&&v(e,o,t,r)}function _(e,t){const n=t["@value"],r=t["@type"],o=t["@language"],a=e["@value"]?i.isArray(e["@value"])?e["@value"]:[e["@value"]]:[],s=e["@type"]?i.isArray(e["@type"])?e["@type"]:[e["@type"]]:[],l=e["@language"]?i.isArray(e["@language"])?e["@language"]:[e["@language"]]:[];return 0===a.length&&0===s.length&&0===l.length||!(!a.includes(n)&&!i.isEmptyObject(a[0]))&&(!!(!r&&0===s.length||s.includes(r)||r&&i.isEmptyObject(s[0]))&&!!(!o&&0===l.length||l.includes(o)||o&&i.isEmptyObject(l[0])))}e.exports=u,u.frameMergedOrDefault=(e,t,n)=>{const r={options:n,embedded:!1,graph:"@default",graphMap:{"@default":{}},subjectStack:[],link:{},bnodeMap:{}},o=new a.IdentifierIssuer("_:b");c(e,r.graphMap,"@default",o),n.merged&&(r.graphMap["@merged"]=d(r.graphMap),r.graph="@merged"),r.subjects=r.graphMap[r.graph];const i=[];return u.frame(r,Object.keys(r.subjects).sort(),t,i),n.pruneBlankNodeIdentifiers&&(n.bnodesToClear=Object.keys(r.bnodeMap).filter((e=>1===r.bnodeMap[e].length))), -// remove @preserve from results -n.link={},m(i,n)},u.frame=(e,t,n,s,c=null)=>{g(n),n=n[0];const d=e.options,v={embed:h(n,d,"embed"),explicit:h(n,d,"explicit"),requireAll:h(n,d,"requireAll")};e.link.hasOwnProperty(e.graph)||(e.link[e.graph]={});const m=e.link[e.graph],x=y(e,t,n,v),S=Object.keys(x).sort();for(const g of S){const y=x[g];if(null===c?e.uniqueEmbeds={[e.graph]:{}}:e.uniqueEmbeds[e.graph]=e.uniqueEmbeds[e.graph]||{},"@link"===v.embed&&g in m){w(s,c,m[g]);continue}const S={"@id":g};if(0===g.indexOf("_:")&&a.addValue(e.bnodeMap,g,S,{propertyIsArray:!0}),m[g]=S,("@first"===v.embed||"@last"===v.embed)&&e.is11)throw new l("Invalid JSON-LD syntax; invalid value of @embed.","jsonld.SyntaxError",{code:"invalid @embed value",frame:n});if(e.embedded||!e.uniqueEmbeds[e.graph].hasOwnProperty(g))if(!e.embedded||"@never"!==v.embed&&!p(y,e.graph,e.subjectStack))if(!e.embedded||"@first"!=v.embed&&"@once"!=v.embed||!e.uniqueEmbeds[e.graph].hasOwnProperty(g)){if("@last"===v.embed&&g in e.uniqueEmbeds[e.graph]&&b(e,g),e.uniqueEmbeds[e.graph][g]={parent:s,property:c},e.subjectStack.push({subject:y,graph:e.graph}),g in e.graphMap){let t=!1,r=null;"@graph"in n?(r=n["@graph"][0],t=!("@merged"===g||"@default"===g),i.isObject(r)||(r={})):(t="@merged"!==e.graph,r={}),t&&u.frame({...e,graph:g,embedded:!1},Object.keys(e.graphMap[g]).sort(),[r],S,"@graph")}"@included"in n&&u.frame({...e,embedded:!1},t,n["@included"],S,"@included");for(const t of Object.keys(y).sort())if(r(t)){if(S[t]=a.clone(y[t]),"@type"===t)for(const n of y["@type"])0===n.indexOf("_:")&&a.addValue(e.bnodeMap,n,S,{propertyIsArray:!0})}else if(!v.explicit||t in n)for(const r of y[t]){const i=t in n?n[t]:f(v);if(o.isList(r)){const i=n[t]&&n[t][0]&&n[t][0]["@list"]?n[t][0]["@list"]:f(v),s={"@list":[]};w(S,t,s);const l=r["@list"];for(const t of l)o.isSubjectReference(t)?u.frame({...e,embedded:!0},[t["@id"]],i,s,"@list"):w(s,"@list",a.clone(t))}else o.isSubjectReference(r)?u.frame({...e,embedded:!0},[r["@id"]],i,S,t):_(i[0],r)&&w(S,t,a.clone(r))}for(const e of Object.keys(n).sort()){if("@type"===e){if(!i.isObject(n[e][0])||!("@default"in n[e][0]))continue}else if(r(e))continue;const t=n[e][0]||{},o=h(t,d,"omitDefault");if(!o&&!(e in S)){let n="@null";"@default"in t&&(n=a.clone(t["@default"])),i.isArray(n)||(n=[n]),S[e]=[{"@preserve":n}]}}for(const t of Object.keys(n["@reverse"]||{}).sort()){const r=n["@reverse"][t];for(const n of Object.keys(e.subjects)){const o=a.getValues(e.subjects[n],t);o.some((e=>e["@id"]===g))&&(S["@reverse"]=S["@reverse"]||{},a.addValue(S["@reverse"],t,[],{propertyIsArray:!0}),u.frame({...e,embedded:!0},[n],r,S["@reverse"][t],c))}}w(s,c,S),e.subjectStack.pop()}else w(s,c,S);else w(s,c,S)}},u.cleanupNull=(e,t)=>{if(i.isArray(e)){const n=e.map((e=>u.cleanupNull(e,t)));return n.filter((e=>e))}if("@null"===e)return null;if(i.isObject(e)){if("@id"in e){const n=e["@id"];if(t.link.hasOwnProperty(n)){const r=t.link[n].indexOf(e);if(-1!==r)return t.link[n][r];t.link[n].push(e)}else t.link[n]=[e]}for(const n in e)e[n]=u.cleanupNull(e[n],t)}return e}},25076:function(e,t,n){"use strict";const r=n(54093),o=n(18463),i=n(30832),{REGEX_BCP47:a,addValue:s}=n(51055),{handleEvent:l}=n(91696),{RDF_LIST:c,RDF_FIRST:d,RDF_REST:u,RDF_NIL:f,RDF_TYPE:p,RDF_JSON_LITERAL:h,XSD_BOOLEAN:g,XSD_DOUBLE:y,XSD_INTEGER:v,XSD_STRING:b}=n(93770),m={};function w(e,t,n,o){if(e.termType.endsWith("Node"))return{"@id":e.value};const s={"@value":e.value};if(e.language)e.language.match(a)||o.eventHandler&&l({event:{type:["JsonLdEvent"],code:"invalid @language value",level:"warning",message:"@language value must be valid BCP47.",details:{language:e.language}},options:o}),s["@language"]=e.language;else{let d=e.datatype.value;if(d||(d=b),d===h){d="@json";try{s["@value"]=JSON.parse(s["@value"])}catch(c){throw new r("JSON literal could not be parsed.","jsonld.InvalidJsonLiteral",{code:"invalid JSON literal",value:s["@value"],cause:c})}}if(t){if(d===g)"true"===s["@value"]?s["@value"]=!0:"false"===s["@value"]&&(s["@value"]=!1);else if(i.isNumeric(s["@value"]))if(d===v){const e=parseInt(s["@value"],10);e.toFixed(0)===s["@value"]&&(s["@value"]=e)}else d===y&&(s["@value"]=parseFloat(s["@value"]));[g,v,y,b].includes(d)||(s["@type"]=d)}else if("i18n-datatype"===n&&d.startsWith("https://www.w3.org/ns/i18n#")){const[,e,t]=d.split(/[#_]/);e.length>0&&(s["@language"]=e,e.match(a)||o.eventHandler&&l({event:{type:["JsonLdEvent"],code:"invalid @language value",level:"warning",message:"@language value must be valid BCP47.",details:{language:e}},options:o})),s["@direction"]=t}else d!==b&&(s["@type"]=d)}return s}e.exports=m,m.fromRDF=async(e,t)=>{const n={},r={"@default":n},a={},{useRdfType:l=!1,useNativeTypes:h=!1,rdfDirection:g=null}=t;for(const o of e){const e="DefaultGraph"===o.graph.termType?"@default":o.graph.value;e in r||(r[e]={}),"@default"===e||e in n||(n[e]={"@id":e});const i=r[e],c=o.subject.value,d=o.predicate.value,u=o.object;c in i||(i[c]={"@id":c});const y=i[c],v=u.termType.endsWith("Node");if(v&&!(u.value in i)&&(i[u.value]={"@id":u.value}),d===p&&!l&&v){s(y,"@type",u.value,{propertyIsArray:!0});continue}const b=w(u,h,g,t);if(s(y,d,b,{propertyIsArray:!0}),v)if(u.value===f){const e=i[u.value];"usages"in e||(e.usages=[]),e.usages.push({node:y,property:d,value:b})}else u.value in a?a[u.value]=!1:a[u.value]={node:y,property:d,value:b}}for(const s in r){const e=r[s];if(!(f in e))continue;const t=e[f];if(t.usages){for(let n of t.usages){let t=n.node,r=n.property,s=n.value;const l=[],f=[];let p=Object.keys(t).length;while(r===u&&i.isObject(a[t["@id"]])&&i.isArray(t[d])&&1===t[d].length&&i.isArray(t[u])&&1===t[u].length&&(3===p||4===p&&i.isArray(t["@type"])&&1===t["@type"].length&&t["@type"][0]===c))if(l.push(t[d][0]),f.push(t["@id"]),n=a[t["@id"]],t=n.node,r=n.property,s=n.value,p=Object.keys(t).length,!o.isBlankNode(t))break;delete s["@id"],s["@list"]=l.reverse();for(const n of f)delete e[n]}delete t.usages}}const y=[],v=Object.keys(n).sort();for(const i of v){const e=n[i];if(i in r){const t=e["@graph"]=[],n=r[i],a=Object.keys(n).sort();for(const e of a){const r=n[e];o.isSubjectReference(r)||t.push(r)}}o.isSubjectReference(e)||y.push(e)}return y}},18463:function(e,t,n){"use strict";const r=n(30832),o={};e.exports=o,o.isSubject=e=>{if(r.isObject(e)&&!("@value"in e||"@set"in e||"@list"in e)){const t=Object.keys(e).length;return t>1||!("@id"in e)}return!1},o.isSubjectReference=e=>r.isObject(e)&&1===Object.keys(e).length&&"@id"in e,o.isValue=e=>r.isObject(e)&&"@value"in e,o.isList=e=>r.isObject(e)&&"@list"in e,o.isGraph=e=>r.isObject(e)&&"@graph"in e&&1===Object.keys(e).filter((e=>"@id"!==e&&"@index"!==e)).length,o.isSimpleGraph=e=>o.isGraph(e)&&!("@id"in e),o.isBlankNode=e=>{if(r.isObject(e)){if("@id"in e){const t=e["@id"];return!r.isString(t)||0===t.indexOf("_:")}return 0===Object.keys(e).length||!("@value"in e||"@set"in e||"@list"in e)}return!1}},36805:function(e,t,n){ -/** - * A JavaScript implementation of the JSON-LD API. - * - * @author Dave Longley - * - * @license BSD 3-Clause License - * Copyright (c) 2011-2022 Digital Bazaar, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Neither the name of the Digital Bazaar, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -const r=n(47055),o=n(67222),i=n(51055),a=n(68058),s=i.IdentifierIssuer,l=n(54093),c=n(80421),d=n(69048),{expand:u}=n(62759),{flatten:f}=n(41565),{fromRDF:p}=n(25076),{toRDF:h}=n(19382),{frameMergedOrDefault:g,cleanupNull:y}=n(63859),{isArray:v,isObject:b,isString:m}=n(30832),{isSubjectReference:w}=n(18463),{expandIri:x,getInitialContext:_,process:S,processingMode:E}=n(54131),{compact:R,compactIri:I}=n(83251),{createNodeMap:j,createMergedNodeMap:A,mergeNodeMaps:N}=n(32664),{logEventHandler:O,logWarningEventHandler:k,safeEventHandler:D,setDefaultEventHandler:L,setupEventHandler:T,strictEventHandler:C,unhandledEventHandler:M}=n(91696),P=function(e){const t={},P=100,F=new c({max:P});function J(t,{documentLoader:n=e.documentLoader,...r}){if(t&&"compactionMap"in t)throw new l('"compactionMap" not supported.',"jsonld.OptionsError");if(t&&"expansionMap"in t)throw new l('"expansionMap" not supported.',"jsonld.OptionsError");return Object.assign({},{documentLoader:n},r,t,{eventHandler:T({options:t})})}return e.compact=async function(t,n,r){if(arguments.length<2)throw new TypeError("Could not compact, too few arguments.");if(null===n)throw new l("The compaction context must not be null.","jsonld.CompactError",{code:"invalid local context"});if(null===t)return null;let o;r=J(r,{base:m(t)?t:"",compactArrays:!0,compactToRelative:!0,graph:!1,skipExpansion:!1,link:!1,issuer:new s("_:b"),contextResolver:new a({sharedCache:F})}),r.link&&(r.skipExpansion=!0),r.compactToRelative||delete r.base,o=r.skipExpansion?t:await e.expand(t,r);const c=await e.processContext(_(r),n,r);let d=await R({activeCtx:c,element:o,options:r});r.compactArrays&&!r.graph&&v(d)?1===d.length?d=d[0]:0===d.length&&(d={}):r.graph&&b(d)&&(d=[d]),b(n)&&"@context"in n&&(n=n["@context"]),n=i.clone(n),v(n)||(n=[n]);const u=n;n=[];for(let e=0;e0)&&n.push(u[e]);const f=n.length>0;if(1===n.length&&(n=n[0]),v(d)){const e=I({activeCtx:c,iri:"@graph",relativeTo:{vocab:!0}}),t=d;d={},f&&(d["@context"]=n),d[e]=t}else if(b(d)&&f){const e=d;d={"@context":n};for(const t in e)d[t]=e[t]}return d},e.expand=async function(t,n){if(arguments.length<1)throw new TypeError("Could not expand, too few arguments.");n=J(n,{keepFreeFloatingNodes:!1,contextResolver:new a({sharedCache:F})});const r={},o=[];if("expandContext"in n){const e=i.clone(n.expandContext);b(e)&&"@context"in e?r.expandContext=e:r.expandContext={"@context":e},o.push(r.expandContext)}let s;if(m(t)){const i=await e.get(t,n);s=i.documentUrl,r.input=i.document,i.contextUrl&&(r.remoteContext={"@context":i.contextUrl},o.push(r.remoteContext))}else r.input=i.clone(t);"base"in n||(n.base=s||"");let l=_(n);for(const e of o)l=await S({activeCtx:l,localCtx:e,options:n});let c=await u({activeCtx:l,element:r.input,options:n});return b(c)&&"@graph"in c&&1===Object.keys(c).length?c=c["@graph"]:null===c&&(c=[]),v(c)||(c=[c]),c},e.flatten=async function(t,n,r){if(arguments.length<1)return new TypeError("Could not flatten, too few arguments.");n="function"===typeof n?null:n||null,r=J(r,{base:m(t)?t:"",contextResolver:new a({sharedCache:F})});const o=await e.expand(t,r),i=f(o);if(null===n)return i;r.graph=!0,r.skipExpansion=!0;const s=await e.compact(i,n,r);return s},e.frame=async function(t,n,r){if(arguments.length<2)throw new TypeError("Could not frame, too few arguments.");if(r=J(r,{base:m(t)?t:"",embed:"@once",explicit:!1,requireAll:!1,omitDefault:!1,bnodesToClear:[],contextResolver:new a({sharedCache:F})}),m(n)){const t=await e.get(n,r);if(n=t.document,t.contextUrl){let e=n["@context"];e?v(e)?e.push(t.contextUrl):e=[e,t.contextUrl]:e=t.contextUrl,n["@context"]=e}}const o=n&&n["@context"]||{},i=await e.processContext(_(r),o,r);r.hasOwnProperty("omitGraph")||(r.omitGraph=E(i,1.1)),r.hasOwnProperty("pruneBlankNodeIdentifiers")||(r.pruneBlankNodeIdentifiers=E(i,1.1));const s=await e.expand(t,r),l={...r};l.isFrame=!0,l.keepFreeFloatingNodes=!0;const c=await e.expand(n,l),d=Object.keys(n).map((e=>x(i,e,{vocab:!0})));l.merged=!d.includes("@graph"),l.is11=E(i,1.1);const u=g(s,c,l);l.graph=!r.omitGraph,l.skipExpansion=!0,l.link={},l.framing=!0;let f=await e.compact(u,o,l);return l.link={},f=y(f,l),f},e.link=async function(t,n,r){const o={};return n&&(o["@context"]=n),o["@embed"]="@link",e.frame(t,o,r)},e.normalize=e.canonize=async function(t,n){if(arguments.length<1)throw new TypeError("Could not canonize, too few arguments.");if(n=J(n,{base:m(t)?t:null,algorithm:"URDNA2015",skipExpansion:!1,safe:!0,contextResolver:new a({sharedCache:F})}),"inputFormat"in n){if("application/n-quads"!==n.inputFormat&&"application/nquads"!==n.inputFormat)throw new l("Unknown canonicalization input format.","jsonld.CanonizeError");const e=d.parse(t);return r.canonize(e,n)}const o={...n};delete o.format,o.produceGeneralizedRdf=!1;const i=await e.toRDF(t,o);return r.canonize(i,n)},e.fromRDF=async function(e,n){if(arguments.length<1)throw new TypeError("Could not convert from RDF, too few arguments.");n=J(n,{format:m(e)?"application/n-quads":void 0});const{format:r}=n;let{rdfParser:o}=n;if(r){if(o=o||t[r],!o)throw new l("Unknown input format.","jsonld.UnknownFormat",{format:r})}else o=()=>e;const i=await o(e);return p(i,n)},e.toRDF=async function(t,n){if(arguments.length<1)throw new TypeError("Could not convert to RDF, too few arguments.");let r;n=J(n,{base:m(t)?t:"",skipExpansion:!1,contextResolver:new a({sharedCache:F})}),r=n.skipExpansion?t:await e.expand(t,n);const o=h(r,n);if(n.format){if("application/n-quads"===n.format||"application/nquads"===n.format)return d.serialize(o);throw new l("Unknown output format.","jsonld.UnknownFormat",{format:n.format})}return o},e.createNodeMap=async function(t,n){if(arguments.length<1)throw new TypeError("Could not create node map, too few arguments.");n=J(n,{base:m(t)?t:"",contextResolver:new a({sharedCache:F})});const r=await e.expand(t,n);return A(r,n)},e.merge=async function(t,n,r){if(arguments.length<1)throw new TypeError("Could not merge, too few arguments.");if(!v(t))throw new TypeError('Could not merge, "docs" must be an array.');n="function"===typeof n?null:n||null,r=J(r,{contextResolver:new a({sharedCache:F})});const o=await Promise.all(t.map((t=>{const n={...r};return e.expand(t,n)})));let l=!0;"mergeNodes"in r&&(l=r.mergeNodes);const c=r.issuer||new s("_:b"),d={"@default":{}};for(let e=0;ee._documentLoader,set:t=>e._documentLoader=t}),e.documentLoader=async e=>{throw new l("Could not retrieve a JSON-LD document from the URL. URL dereferencing not implemented.","jsonld.LoadDocumentError",{code:"loading document failed",url:e})},e.get=async function(t,n){let r;r="function"===typeof n.documentLoader?n.documentLoader:e.documentLoader;const o=await r(t);try{if(!o.document)throw new l("No remote document found at the given URL.","jsonld.NullRemoteDocument");m(o.document)&&(o.document=JSON.parse(o.document))}catch(i){throw new l("Could not retrieve a JSON-LD document from the URL.","jsonld.LoadDocumentError",{code:"loading document failed",cause:i,remoteDoc:o})}return o},e.processContext=async function(e,t,n){return n=J(n,{base:"",contextResolver:new a({sharedCache:F})}),null===t?_(n):(t=i.clone(t),b(t)&&"@context"in t||(t={"@context":t}),S({activeCtx:e,localCtx:t,options:n}))},e.getContextValue=n(54131).getContextValue,e.documentLoaders={},e.useDocumentLoader=function(t){if(!(t in e.documentLoaders))throw new l('Unknown document loader type: "'+t+'"',"jsonld.UnknownDocumentLoader",{type:t});e.documentLoader=e.documentLoaders[t].apply(e,Array.prototype.slice.call(arguments,1))},e.registerRDFParser=function(e,n){t[e]=n},e.unregisterRDFParser=function(e){delete t[e]},e.registerRDFParser("application/n-quads",d.parse),e.registerRDFParser("application/nquads",d.parse),e.url=n(82278),e.logEventHandler=O,e.logWarningEventHandler=k,e.safeEventHandler=D,e.setDefaultEventHandler=L,e.strictEventHandler=C,e.unhandledEventHandler=M,e.util=i,Object.assign(e,i),e.promises=e,e.RequestQueue=n(40533),e.JsonLdProcessor=n(60731)(e),o.setupGlobals(e),o.setupDocumentLoaders(e),e},F=function(){return P((function(){return F()}))};P(F),e.exports=F},32664:function(e,t,n){"use strict";const{isKeyword:r}=n(54131),o=n(18463),i=n(30832),a=n(51055),s=n(54093),l={};e.exports=l,l.createMergedNodeMap=(e,t)=>{t=t||{};const n=t.issuer||new a.IdentifierIssuer("_:b"),r={"@default":{}};return l.createNodeMap(e,r,"@default",n),l.mergeNodeMaps(r)},l.createNodeMap=(e,t,n,c,d,u)=>{if(i.isArray(e)){for(const r of e)l.createNodeMap(r,t,n,c,void 0,u);return}if(!i.isObject(e))return void(u&&u.push(e));if(o.isValue(e)){if("@type"in e){let t=e["@type"];0===t.indexOf("_:")&&(e["@type"]=t=c.getId(t))}return void(u&&u.push(e))}if(u&&o.isList(e)){const r=[];return l.createNodeMap(e["@list"],t,n,c,d,r),void u.push({"@list":r})}if("@type"in e){const t=e["@type"];for(const e of t)0===e.indexOf("_:")&&c.getId(e)}i.isUndefined(d)&&(d=o.isBlankNode(e)?c.getId(e["@id"]):e["@id"]),u&&u.push({"@id":d});const f=t[n],p=f[d]=f[d]||{};p["@id"]=d;const h=Object.keys(e).sort();for(let i of h){if("@id"===i)continue;if("@reverse"===i){const r={"@id":d},i=e["@reverse"];for(const e in i){const s=i[e];for(const i of s){let s=i["@id"];o.isBlankNode(i)&&(s=c.getId(s)),l.createNodeMap(i,t,n,c,s),a.addValue(f[s],e,r,{propertyIsArray:!0,allowDuplicate:!1})}}continue}if("@graph"===i){d in t||(t[d]={}),l.createNodeMap(e[i],t,d,c);continue}if("@included"===i){l.createNodeMap(e[i],t,n,c);continue}if("@type"!==i&&r(i)){if("@index"===i&&i in p&&(e[i]!==p[i]||e[i]["@id"]!==p[i]["@id"]))throw new s("Invalid JSON-LD syntax; conflicting @index property detected.","jsonld.SyntaxError",{code:"conflicting indexes",subject:p});p[i]=e[i];continue}const u=e[i];if(0===i.indexOf("_:")&&(i=c.getId(i)),0!==u.length)for(let e of u)if("@type"===i&&(e=0===e.indexOf("_:")?c.getId(e):e),o.isSubject(e)||o.isSubjectReference(e)){if("@id"in e&&!e["@id"])continue;const r=o.isBlankNode(e)?c.getId(e["@id"]):e["@id"];a.addValue(p,i,{"@id":r},{propertyIsArray:!0,allowDuplicate:!1}),l.createNodeMap(e,t,n,c,r)}else if(o.isValue(e))a.addValue(p,i,e,{propertyIsArray:!0,allowDuplicate:!1});else if(o.isList(e)){const r=[];l.createNodeMap(e["@list"],t,n,c,d,r),e={"@list":r},a.addValue(p,i,e,{propertyIsArray:!0,allowDuplicate:!1})}else l.createNodeMap(e,t,n,c,d),a.addValue(p,i,e,{propertyIsArray:!0,allowDuplicate:!1});else a.addValue(p,i,[],{propertyIsArray:!0})}},l.mergeNodeMapGraphs=e=>{const t={};for(const n of Object.keys(e).sort())for(const o of Object.keys(e[n]).sort()){const i=e[n][o];o in t||(t[o]={"@id":o});const s=t[o];for(const e of Object.keys(i).sort())if(r(e)&&"@type"!==e)s[e]=a.clone(i[e]);else for(const t of i[e])a.addValue(s,e,a.clone(t),{propertyIsArray:!0,allowDuplicate:!1})}return t},l.mergeNodeMaps=e=>{const t=e["@default"],n=Object.keys(e).sort();for(const r of n){if("@default"===r)continue;const n=e[r];let i=t[r];i?"@graph"in i||(i["@graph"]=[]):t[r]=i={"@id":r,"@graph":[]};const a=i["@graph"];for(const e of Object.keys(n).sort()){const t=n[e];o.isSubjectReference(t)||a.push(t)}}return t}},67222:function(e,t,n){"use strict";const r=n(8831),o={};e.exports=o,o.setupDocumentLoaders=function(e){"undefined"!==typeof XMLHttpRequest&&(e.documentLoaders.xhr=r,e.useDocumentLoader("xhr"))},o.setupGlobals=function(e){"undefined"===typeof globalThis.JsonLdProcessor&&Object.defineProperty(globalThis,"JsonLdProcessor",{writable:!0,enumerable:!1,configurable:!0,value:e.JsonLdProcessor})}},19382:function(e,t,n){"use strict";const{createNodeMap:r}=n(32664),{isKeyword:o}=n(54131),i=n(18463),a=n(95456),s=n(30832),l=n(51055),{handleEvent:c}=n(91696),{RDF_FIRST:d,RDF_REST:u,RDF_NIL:f,RDF_TYPE:p,RDF_JSON_LITERAL:h,RDF_LANGSTRING:g,XSD_BOOLEAN:y,XSD_DOUBLE:v,XSD_INTEGER:b,XSD_STRING:m}=n(93770),{isAbsolute:w}=n(82278),x={};function _(e,t,n,r,i){const a=Object.keys(t).sort();for(const s of a){const a=t[s],l=Object.keys(a).sort();for(let t of l){const l=a[t];if("@type"===t)t=p;else if(o(t))continue;for(const o of l){const a={termType:s.startsWith("_:")?"BlankNode":"NamedNode",value:s};if(!w(s)){i.eventHandler&&c({event:{type:["JsonLdEvent"],code:"relative subject reference",level:"warning",message:"Relative subject reference found.",details:{subject:s}},options:i});continue}const l={termType:t.startsWith("_:")?"BlankNode":"NamedNode",value:t};if(!w(t)){i.eventHandler&&c({event:{type:["JsonLdEvent"],code:"relative predicate reference",level:"warning",message:"Relative predicate reference found.",details:{predicate:t}},options:i});continue}if("BlankNode"===l.termType&&!i.produceGeneralizedRdf){i.eventHandler&&c({event:{type:["JsonLdEvent"],code:"blank node predicate",level:"warning",message:"Dropping blank node predicate.",details:{property:r.getOldIds().find((e=>r.getId(e)===t))}},options:i});continue}const d=E(o,r,e,n,i.rdfDirection,i);d&&e.push({subject:a,predicate:l,object:d,graph:n})}}}}function S(e,t,n,r,o,i){const a={termType:"NamedNode",value:d},s={termType:"NamedNode",value:u},l={termType:"NamedNode",value:f},c=e.pop(),p=c?{termType:"BlankNode",value:t.getId()}:l;let h=p;for(const d of e){const e=E(d,t,n,r,o,i),l={termType:"BlankNode",value:t.getId()};n.push({subject:h,predicate:a,object:e,graph:r}),n.push({subject:h,predicate:s,object:l,graph:r}),h=l}if(c){const e=E(c,t,n,r,o,i);n.push({subject:h,predicate:a,object:e,graph:r}),n.push({subject:h,predicate:s,object:l,graph:r})}return p}function E(e,t,n,r,o,l){const d={};if(i.isValue(e)){d.termType="Literal",d.value=void 0,d.datatype={termType:"NamedNode"};let t=e["@value"];const n=e["@type"]||null;if("@json"===n)d.value=a(t),d.datatype.value=h;else if(s.isBoolean(t))d.value=t.toString(),d.datatype.value=n||y;else if(s.isDouble(t)||n===v)s.isDouble(t)||(t=parseFloat(t)),d.value=t.toExponential(15).replace(/(\d)0*e\+?/,"$1E"),d.datatype.value=n||v;else if(s.isNumber(t))d.value=t.toFixed(0),d.datatype.value=n||b;else if("i18n-datatype"===o&&"@direction"in e){const n="https://www.w3.org/ns/i18n#"+(e["@language"]||"")+`_${e["@direction"]}`;d.datatype.value=n,d.value=t}else"@language"in e?(d.value=t,d.datatype.value=n||g,d.language=e["@language"]):(d.value=t,d.datatype.value=n||m)}else if(i.isList(e)){const i=S(e["@list"],t,n,r,o,l);d.termType=i.termType,d.value=i.value}else{const t=s.isObject(e)?e["@id"]:e;d.termType=t.startsWith("_:")?"BlankNode":"NamedNode",d.value=t}return"NamedNode"!==d.termType||w(d.value)?d:(l.eventHandler&&c({event:{type:["JsonLdEvent"],code:"relative object reference",level:"warning",message:"Relative object reference found.",details:{object:d.value}},options:l}),null)}e.exports=x,x.toRDF=(e,t)=>{const n=new l.IdentifierIssuer("_:b"),o={"@default":{}};r(e,o,"@default",n);const i=[],a=Object.keys(o).sort();for(const r of a){let e;if("@default"===r)e={termType:"DefaultGraph",value:""};else{if(!w(r)){t.eventHandler&&c({event:{type:["JsonLdEvent"],code:"relative graph reference",level:"warning",message:"Relative graph reference found.",details:{graph:r}},options:t});continue}e=r.startsWith("_:")?{termType:"BlankNode"}:{termType:"NamedNode"},e.value=r}_(i,o[r],e,n,t)}return i}},30832:function(e){"use strict";const t={};e.exports=t,t.isArray=Array.isArray,t.isBoolean=e=>"boolean"===typeof e||"[object Boolean]"===Object.prototype.toString.call(e),t.isDouble=e=>t.isNumber(e)&&(-1!==String(e).indexOf(".")||Math.abs(e)>=1e21),t.isEmptyObject=e=>t.isObject(e)&&0===Object.keys(e).length,t.isNumber=e=>"number"===typeof e||"[object Number]"===Object.prototype.toString.call(e),t.isNumeric=e=>!isNaN(parseFloat(e))&&isFinite(e),t.isObject=e=>"[object Object]"===Object.prototype.toString.call(e),t.isString=e=>"string"===typeof e||"[object String]"===Object.prototype.toString.call(e),t.isUndefined=e=>"undefined"===typeof e},82278:function(e,t,n){"use strict";const r=n(30832),o={};e.exports=o,o.parsers={simple:{keys:["href","scheme","authority","path","query","fragment"],regex:/^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/},full:{keys:["href","protocol","scheme","authority","auth","user","password","hostname","port","path","directory","file","query","fragment"],regex:/^(([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?(?:(((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/}},o.parse=(e,t)=>{const n={},r=o.parsers[t||"full"],i=r.regex.exec(e);let a=r.keys.length;while(a--)n[r.keys[a]]=void 0===i[a]?null:i[a];return("https"===n.scheme&&"443"===n.port||"http"===n.scheme&&"80"===n.port)&&(n.href=n.href.replace(":"+n.port,""),n.authority=n.authority.replace(":"+n.port,""),n.port=null),n.normalizedPath=o.removeDotSegments(n.path),n},o.prependBase=(e,t)=>{if(null===e)return t;if(o.isAbsolute(t))return t;e&&!r.isString(e)||(e=o.parse(e||""));const n=o.parse(t),i={protocol:e.protocol||""};if(null!==n.authority)i.authority=n.authority,i.path=n.path,i.query=n.query;else if(i.authority=e.authority,""===n.path)i.path=e.path,null!==n.query?i.query=n.query:i.query=e.query;else{if(0===n.path.indexOf("/"))i.path=n.path;else{let t=e.path;t=t.substr(0,t.lastIndexOf("/")+1),(t.length>0||e.authority)&&"/"!==t.substr(-1)&&(t+="/"),t+=n.path,i.path=t}i.query=n.query}""!==n.path&&(i.path=o.removeDotSegments(i.path));let a=i.protocol;return null!==i.authority&&(a+="//"+i.authority),a+=i.path,null!==i.query&&(a+="?"+i.query),null!==n.fragment&&(a+="#"+n.fragment),""===a&&(a="./"),a},o.removeBase=(e,t)=>{if(null===e)return t;e&&!r.isString(e)||(e=o.parse(e||""));let n="";if(""!==e.href?n+=(e.protocol||"")+"//"+(e.authority||""):t.indexOf("//")&&(n+="//"),0!==t.indexOf(n))return t;const i=o.parse(t.substr(n.length)),a=e.normalizedPath.split("/"),s=i.normalizedPath.split("/"),l=i.fragment||i.query?0:1;while(a.length>0&&s.length>l){if(a[0]!==s[0])break;a.shift(),s.shift()}let c="";if(a.length>0){a.pop();for(let e=0;e{if(0===e.length)return"";const t=e.split("/"),n=[];while(t.length>0){const e=t.shift(),r=0===t.length;"."!==e?".."!==e?n.push(e):(n.pop(),r&&n.push("")):r&&n.push("")}return"/"===e[0]&&n.length>0&&""!==n[0]&&n.unshift(""),1===n.length&&""===n[0]?"/":n.join("/")};const i=/^([A-Za-z][A-Za-z0-9+-.]*|_):[^\s]*$/;o.isAbsolute=e=>r.isString(e)&&i.test(e),o.isRelative=e=>r.isString(e)},51055:function(e,t,n){"use strict";const r=n(18463),o=n(30832),i=n(47055).IdentifierIssuer,a=n(54093),s=/^[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$/,l=/(?:<[^>]*?>|"[^"]*?"|[^,])+/g,c=/\s*<([^>]*?)>\s*(?:;\s*(.*))?/,d=/(.*?)=(?:(?:"([^"]*?)")|([^"]*?))\s*(?:(?:;\s*)|$)/g,u=/^@[a-zA-Z]+$/,f={headers:{accept:"application/ld+json, application/json"}},p={};function h(e,t){if(o.isArray(t))for(let n=0;n{const t=Object.keys(e).some((e=>"accept"===e.toLowerCase()));if(t)throw new RangeError('Accept header may not be specified; only "'+f.headers.accept+'" is supported.');return Object.assign({Accept:f.headers.accept},e)},p.parseLinkHeader=e=>{const t={},n=e.match(l);for(let r=0;r{if(!o.isString(e)&&(!o.isArray(e)||!e.every((e=>o.isString(e))))){if(t&&o.isObject(e))switch(Object.keys(e).length){case 0:return;case 1:if("@default"in e&&p.asArray(e["@default"]).every((e=>o.isString(e))))return}throw new a('Invalid JSON-LD syntax; "@type" value must a string, an array of strings, an empty object, or a default object.',"jsonld.SyntaxError",{code:"invalid type value",value:e})}},p.hasProperty=(e,t)=>{if(e.hasOwnProperty(t)){const n=e[t];return!o.isArray(n)||n.length>0}return!1},p.hasValue=(e,t,n)=>{if(p.hasProperty(e,t)){let i=e[t];const a=r.isList(i);if(o.isArray(i)||a){a&&(i=i["@list"]);for(let e=0;e{if(r=r||{},"propertyIsArray"in r||(r.propertyIsArray=!1),"valueIsArray"in r||(r.valueIsArray=!1),"allowDuplicate"in r||(r.allowDuplicate=!0),"prependValue"in r||(r.prependValue=!1),r.valueIsArray)e[t]=n;else if(o.isArray(n)){0===n.length&&r.propertyIsArray&&!e.hasOwnProperty(t)&&(e[t]=[]),r.prependValue&&(n=n.concat(e[t]),e[t]=[]);for(let o=0;o[].concat(e[t]||[]),p.removeProperty=(e,t)=>{delete e[t]},p.removeValue=(e,t,n,r)=>{r=r||{},"propertyIsArray"in r||(r.propertyIsArray=!1);const o=p.getValues(e,t).filter((e=>!p.compareValues(e,n)));0===o.length?p.removeProperty(e,t):1!==o.length||r.propertyIsArray?e[t]=o:e[t]=o[0]},p.relabelBlankNodes=(e,t)=>{t=t||{};const n=t.issuer||new i("_:b");return h(n,e)},p.compareValues=(e,t)=>e===t||(!(!r.isValue(e)||!r.isValue(t)||e["@value"]!==t["@value"]||e["@type"]!==t["@type"]||e["@language"]!==t["@language"]||e["@index"]!==t["@index"])||!!(o.isObject(e)&&"@id"in e&&o.isObject(t)&&"@id"in t)&&e["@id"]===t["@id"]),p.compareShortestLeast=(e,t)=>e.length1;class g{constructor(e){if("number"===typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!==typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[o]=e.max||1/0;const t=e.length||h;if(this[a]="function"!==typeof t?h:t,this[s]=e.stale||!1,e.maxAge&&"number"!==typeof e.maxAge)throw new TypeError("maxAge must be a number");this[l]=e.maxAge||0,this[c]=e.dispose,this[d]=e.noDisposeOnSet||!1,this[p]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!==typeof e||e<0)throw new TypeError("max must be a non-negative number");this[o]=e||1/0,b(this)}get max(){return this[o]}set allowStale(e){this[s]=!!e}get allowStale(){return this[s]}set maxAge(e){if("number"!==typeof e)throw new TypeError("maxAge must be a non-negative number");this[l]=e,b(this)}get maxAge(){return this[l]}set lengthCalculator(e){"function"!==typeof e&&(e=h),e!==this[a]&&(this[a]=e,this[i]=0,this[u].forEach((e=>{e.length=this[a](e.value,e.key),this[i]+=e.length}))),b(this)}get lengthCalculator(){return this[a]}get length(){return this[i]}get itemCount(){return this[u].length}rforEach(e,t){t=t||this;for(let n=this[u].tail;null!==n;){const r=n.prev;x(this,e,n,t),n=r}}forEach(e,t){t=t||this;for(let n=this[u].head;null!==n;){const r=n.next;x(this,e,n,t),n=r}}keys(){return this[u].toArray().map((e=>e.key))}values(){return this[u].toArray().map((e=>e.value))}reset(){this[c]&&this[u]&&this[u].length&&this[u].forEach((e=>this[c](e.key,e.value))),this[f]=new Map,this[u]=new r,this[i]=0}dump(){return this[u].map((e=>!v(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[u]}set(e,t,n){if(n=n||this[l],n&&"number"!==typeof n)throw new TypeError("maxAge must be a number");const r=n?Date.now():0,s=this[a](t,e);if(this[f].has(e)){if(s>this[o])return m(this,this[f].get(e)),!1;const a=this[f].get(e),l=a.value;return this[c]&&(this[d]||this[c](e,l.value)),l.now=r,l.maxAge=n,l.value=t,this[i]+=s-l.length,l.length=s,this.get(e),b(this),!0}const p=new w(e,t,s,r,n);return p.length>this[o]?(this[c]&&this[c](e,t),!1):(this[i]+=p.length,this[u].unshift(p),this[f].set(e,this[u].head),b(this),!0)}has(e){if(!this[f].has(e))return!1;const t=this[f].get(e).value;return!v(this,t)}get(e){return y(this,e,!0)}peek(e){return y(this,e,!1)}pop(){const e=this[u].tail;return e?(m(this,e),e.value):null}del(e){m(this,this[f].get(e))}load(e){this.reset();const t=Date.now();for(let n=e.length-1;n>=0;n--){const r=e[n],o=r.e||0;if(0===o)this.set(r.k,r.v);else{const e=o-t;e>0&&this.set(r.k,r.v,e)}}}prune(){this[f].forEach(((e,t)=>y(this,t,!1)))}}const y=(e,t,n)=>{const r=e[f].get(t);if(r){const t=r.value;if(v(e,t)){if(m(e,r),!e[s])return}else n&&(e[p]&&(r.value.now=Date.now()),e[u].unshiftNode(r));return t.value}},v=(e,t)=>{if(!t||!t.maxAge&&!e[l])return!1;const n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[l]&&n>e[l]},b=e=>{if(e[i]>e[o])for(let t=e[u].tail;e[i]>e[o]&&null!==t;){const n=t.prev;m(e,t),t=n}},m=(e,t)=>{if(t){const n=t.value;e[c]&&e[c](n.key,n.value),e[i]-=n.length,e[f].delete(n.key),e[u].removeNode(t)}};class w{constructor(e,t,n,r,o){this.key=e,this.value=t,this.length=n,this.now=r,this.maxAge=o||0}}const x=(e,t,n,r)=>{let o=n.value;v(e,o)&&(m(e,n),e[s]||(o=void 0)),o&&t.call(r,o.value,o.key,e)};e.exports=g},18444:function(e){"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},48701:function(e,t,n){"use strict";function r(e){var t=this;if(t instanceof r||(t=new r),t.tail=null,t.head=null,t.length=0,e&&"function"===typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,o=arguments.length;n1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");r=this.head.next,n=this.head.value}for(var o=0;null!==r;o++)n=e(n,r.value,o),r=r.next;return n},r.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");r=this.tail.prev,n=this.tail.value}for(var o=this.length-1;null!==r;o--)n=e(n,r.value,o),r=r.prev;return n},r.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},r.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},r.prototype.slice=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var n=new r;if(tthis.length&&(t=this.length);for(var o=0,i=this.head;null!==i&&othis.length&&(t=this.length);for(var o=this.length,i=this.tail;null!==i&&o>t;o--)i=i.prev;for(;null!==i&&o>e;o--,i=i.prev)n.push(i.value);return n},r.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var r=0,i=this.head;null!==i&&rt.hash?1:0}e.exports=class{constructor({createMessageDigest:e=(()=>new o("sha256")),canonicalIdMap:t=new Map,maxDeepIterations:n=1/0}={}){this.name="URDNA2015",this.blankNodeInfo=new Map,this.canonicalIssuer=new r("_:c14n",t),this.createMessageDigest=e,this.maxDeepIterations=n,this.quads=null,this.deepIterations=null}async main(e){this.deepIterations=new Map,this.quads=e;for(const r of e)this._addBlankNodeQuadInfo({quad:r,component:r.subject}),this._addBlankNodeQuadInfo({quad:r,component:r.object}),this._addBlankNodeQuadInfo({quad:r,component:r.graph});const t=new Map,n=[...this.blankNodeInfo.keys()];let o=0;for(const r of n)++o%100===0&&await this._yield(),await this._hashAndTrackBlankNode({id:r,hashToBlankNodes:t});const i=[...t.keys()].sort(),l=[];for(const r of i){const e=t.get(r);if(e.length>1){l.push(e);continue}const n=e[0];this.canonicalIssuer.getId(n)}for(const a of l){const e=[];for(const t of a){if(this.canonicalIssuer.hasId(t))continue;const n=new r("_:b");n.getId(t);const o=await this.hashNDegreeQuads(t,n);e.push(o)}e.sort(s);for(const t of e){const e=t.issuer.getOldIds();for(const t of e)this.canonicalIssuer.getId(t)}}const c=[];for(const r of this.quads){const e=a.serializeQuadComponents(this._componentWithCanonicalId(r.subject),r.predicate,this._componentWithCanonicalId(r.object),this._componentWithCanonicalId(r.graph));c.push(e)}return c.sort(),c.join("")}async hashFirstDegreeQuads(e){const t=[],n=this.blankNodeInfo.get(e),r=n.quads;for(const i of r){const n={subject:null,predicate:i.predicate,object:null,graph:null};n.subject=this.modifyFirstDegreeComponent(e,i.subject,"subject"),n.object=this.modifyFirstDegreeComponent(e,i.object,"object"),n.graph=this.modifyFirstDegreeComponent(e,i.graph,"graph"),t.push(a.serializeQuad(n))}t.sort();const o=this.createMessageDigest();for(const i of t)o.update(i);return n.hash=await o.digest(),n.hash}async hashRelatedBlankNode(e,t,n,r){let o;o=this.canonicalIssuer.hasId(e)?this.canonicalIssuer.getId(e):n.hasId(e)?n.getId(e):this.blankNodeInfo.get(e).hash;const i=this.createMessageDigest();return i.update(r),"g"!==r&&i.update(this.getRelatedPredicate(t)),i.update(o),i.digest()}async hashNDegreeQuads(e,t){const n=this.deepIterations.get(e)||0;if(n>this.maxDeepIterations)throw new Error(`Maximum deep iterations (${this.maxDeepIterations}) exceeded.`);this.deepIterations.set(e,n+1);const r=this.createMessageDigest(),o=await this.createHashToRelated(e,t),a=[...o.keys()].sort();for(const s of a){r.update(s);let e,n="";const a=new i(o.get(s));let l=0;while(a.hasNext()){const r=a.next();++l%3===0&&await this._yield();let o=t.clone(),i="";const s=[];let c=!1;for(const e of r)if(this.canonicalIssuer.hasId(e)?i+=this.canonicalIssuer.getId(e):(o.hasId(e)||s.push(e),i+=o.getId(e)),0!==n.length&&i>n){c=!0;break}if(!c){for(const e of s){const t=await this.hashNDegreeQuads(e,o);if(i+=o.getId(e),i+=`<${t.hash}>`,o=t.issuer,0!==n.length&&i>n){c=!0;break}}c||(0===n.length||i`}async createHashToRelated(e,t){const n=new Map,r=this.blankNodeInfo.get(e).quads;let o=0;for(const i of r)++o%100===0&&await this._yield(),await Promise.all([this._addRelatedBlankNodeHash({quad:i,component:i.subject,position:"s",id:e,issuer:t,hashToRelated:n}),this._addRelatedBlankNodeHash({quad:i,component:i.object,position:"o",id:e,issuer:t,hashToRelated:n}),this._addRelatedBlankNodeHash({quad:i,component:i.graph,position:"g",id:e,issuer:t,hashToRelated:n})]);return n}async _hashAndTrackBlankNode({id:e,hashToBlankNodes:t}){const n=await this.hashFirstDegreeQuads(e),r=t.get(n);r?r.push(e):t.set(n,[e])}_addBlankNodeQuadInfo({quad:e,component:t}){if("BlankNode"!==t.termType)return;const n=t.value,r=this.blankNodeInfo.get(n);r?r.quads.add(e):this.blankNodeInfo.set(n,{quads:new Set([e]),hash:null})}async _addRelatedBlankNodeHash({quad:e,component:t,position:n,id:r,issuer:o,hashToRelated:i}){if("BlankNode"!==t.termType||t.value===r)return;const a=t.value,s=await this.hashRelatedBlankNode(a,e,o,n),l=i.get(s);l?l.push(a):i.set(s,[a])}_componentWithCanonicalId(e){return"BlankNode"!==e.termType||e.value.startsWith(this.canonicalIssuer.prefix)?e:{termType:"BlankNode",value:this.canonicalIssuer.getId(e.value)}}async _yield(){return new Promise((e=>setImmediate(e)))}}},89201:function(e,t,n){"use strict"; -/*! - * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved. - */const r=n(75947),o=n(23445);e.exports=class extends o{constructor(){super(),this.name="URGNA2012",this.createMessageDigest=()=>new r("sha1")}modifyFirstDegreeComponent(e,t,n){return"BlankNode"!==t.termType?t:"graph"===n?{termType:"BlankNode",value:"_:g"}:{termType:"BlankNode",value:t.value===e?"_:a":"_:z"}}getRelatedPredicate(e){return e.predicate.value}async createHashToRelated(e,t){const n=new Map,r=this.blankNodeInfo.get(e).quads;let o=0;for(const i of r){let r,a;if("BlankNode"===i.subject.termType&&i.subject.value!==e)a=i.subject.value,r="p";else{if("BlankNode"!==i.object.termType||i.object.value===e)continue;a=i.object.value,r="r"}++o%100===0&&await this._yield();const s=await this.hashRelatedBlankNode(a,i,t,r),l=n.get(s);l?l.push(a):n.set(s,[a])}return n}}},17702:function(e,t,n){"use strict"; -/*! - * Copyright (c) 2016-2021 Digital Bazaar, Inc. All rights reserved. - */const r=n(75947),o=n(5643);e.exports=class extends o{constructor(){super(),this.name="URGNA2012",this.createMessageDigest=()=>new r("sha1")}modifyFirstDegreeComponent(e,t,n){return"BlankNode"!==t.termType?t:"graph"===n?{termType:"BlankNode",value:"_:g"}:{termType:"BlankNode",value:t.value===e?"_:a":"_:z"}}getRelatedPredicate(e){return e.predicate.value}createHashToRelated(e,t){const n=new Map,r=this.blankNodeInfo.get(e).quads;for(const o of r){let r,i;if("BlankNode"===o.subject.termType&&o.subject.value!==e)i=o.subject.value,r="p";else{if("BlankNode"!==o.object.termType||o.object.value===e)continue;i=o.object.value,r="r"}const a=this.hashRelatedBlankNode(i,o,t,r),s=n.get(a);s?s.push(i):n.set(a,[i])}return n}}},29344:function(e,t,n){"use strict";const r=n(23445),o=n(89201),i=n(5643),a=n(17702);let s;try{s=n(97670)}catch(c){}function l(e){return Array.isArray(e)?e:t.NQuads.legacyDatasetToQuads(e)}t.NQuads=n(69980),t.IdentifierIssuer=n(12401),t._rdfCanonizeNative=function(e){return e&&(s=e),s},t.canonize=async function(e,t){const n=l(e,t);if(t.useNative){if(!s)throw new Error("rdf-canonize-native not available");if(t.createMessageDigest)throw new Error('"createMessageDigest" cannot be used with "useNative".');return new Promise(((e,r)=>s.canonize(n,t,((t,n)=>t?r(t):e(n)))))}if("URDNA2015"===t.algorithm)return new r(t).main(n);if("URGNA2012"===t.algorithm){if(t.createMessageDigest)throw new Error('"createMessageDigest" cannot be used with "URGNA2012".');return new o(t).main(n)}if(!("algorithm"in t))throw new Error("No RDF Dataset Canonicalization algorithm specified.");throw new Error("Invalid RDF Dataset Canonicalization algorithm: "+t.algorithm)},t._canonizeSync=function(e,t){const n=l(e,t);if(t.useNative){if(!s)throw new Error("rdf-canonize-native not available");if(t.createMessageDigest)throw new Error('"createMessageDigest" cannot be used with "useNative".');return s.canonizeSync(n,t)}if("URDNA2015"===t.algorithm)return new i(t).main(n);if("URGNA2012"===t.algorithm){if(t.createMessageDigest)throw new Error('"createMessageDigest" cannot be used with "URGNA2012".');return new a(t).main(n)}if(!("algorithm"in t))throw new Error("No RDF Dataset Canonicalization algorithm specified.");throw new Error("Invalid RDF Dataset Canonicalization algorithm: "+t.algorithm)}},97670:function(){},77689:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return d}});var r=n(90540),o=n(36805),i=n(57164),a=n(41775);class s extends i.Readable{constructor(e,{baseIRI:t,compact:n,context:r={},encoding:o="object",flatten:i,frame:a,prettyPrint:s,skipContext:l}={}){super({objectMode:!0,read:()=>{}}),this.compact=n,this.context=r,this.encoding=o,this.flatten=i,this.frame=a,this.prettyPrint=s,this.skipContext=l,t&&(this.context["@base"]=t.value||t.toString()),e.on("prefix",((e,t)=>{this.context[e]||(this.context[e]=t.value)})),this.handleData(e)}async handleData(e){try{const t=(await(0,a.Z)(e)).map(s.toJsonldQuad),n=await o.fromRDF(t),r=await this.transform(n,this.options);this.push(r),this.push(null)}catch(t){this.emit("error",t)}}async transform(e){return this.compact&&(e=await o.compact(e,this.context)),this.flatten&&(e=await o.flatten(e,this.context)),this.frame&&(e=await o.frame(e,this.context)),this.skipContext&&e["@context"]&&delete e["@context"],"string"===this.encoding?this.prettyPrint?JSON.stringify(e,null,2):JSON.stringify(e):e}static toJsonldQuad(e){return{subject:s.toJsonldTerm(e.subject),predicate:s.toJsonldTerm(e.predicate),object:s.toJsonldTerm(e.object),graph:s.toJsonldTerm(e.graph)}}static toJsonldTerm(e){return"BlankNode"===e.termType?{termType:"BlankNode",value:`_:${e.value}`}:e}}var l=s;class c extends r.Z{constructor(e){super(l,e)}}var d=c},90540:function(e,t){"use strict";class n{constructor(e,t){this.Impl=e,this.options=t}import(e,t){const n=new this.Impl(e,{...this.options,...t});return e.on("end",(()=>{n.readable||n.emit("end")})),e.on("error",(e=>{n.emit("error",e)})),n}}t.Z=n}}]); -//# sourceMappingURL=689.2875210a.js.map \ No newline at end of file diff --git a/js/689.2875210a.js.map b/js/689.2875210a.js.map deleted file mode 100644 index ac7716c..0000000 --- a/js/689.2875210a.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/689.2875210a.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/compose.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/from.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/operators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/readable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/state.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/transform.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/utils.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/writable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/validators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/ours/browser.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/ours/errors.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/ours/primordials.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/ours/util.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/stream/promises.js","webpack://@zazuko/spex/./node_modules/canonicalize/lib/canonicalize.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/ContextResolver.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/JsonLdError.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/JsonLdProcessor.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/NQuads.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/RequestQueue.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/ResolvedContext.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/compact.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/constants.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/context.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/documentLoaders/xhr.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/events.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/expand.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/flatten.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/frame.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/fromRdf.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/graphTypes.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/jsonld.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/nodeMap.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/platform-browser.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/toRdf.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/types.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/url.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/util.js","webpack://@zazuko/spex/./node_modules/jsonld/node_modules/lru-cache/index.js","webpack://@zazuko/spex/./node_modules/jsonld/node_modules/yallist/iterator.js","webpack://@zazuko/spex/./node_modules/jsonld/node_modules/yallist/yallist.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/index.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/URDNA2015.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/URGNA2012.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/URGNA2012Sync.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/index.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/lib/SerializerStream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/index.js","webpack://@zazuko/spex/./node_modules/@rdfjs/sink/index.js"],"sourcesContent":["'use strict'\n\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n signal.addEventListener('abort', onAbort)\n eos(stream, () => signal.removeEventListener('abort', onAbort))\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.writableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n\n // TODO: Webstreams\n // if (isReadableStream(body)) {\n // return _duplexify({ readable: Readable.fromWeb(body) });\n // }\n\n // TODO: Webstreams\n // if (isWritableStream(body)) {\n // return _duplexify({ writable: Writable.fromWeb(body) });\n // }\n\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n\n // TODO: Webstreams.\n // if (\n // isReadableStream(body?.readable) &&\n // isWritableStream(body?.writable)\n // ) {\n // return Duplexify.fromWeb(body);\n // }\n\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst {\n ArrayPrototypePush,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n validateInteger(concurrency, 'concurrency', 1)\n return async function* map() {\n var _options$signal, _options$signal2\n const ac = new AbortController()\n const stream = this\n const queue = []\n const signal = ac.signal\n const signalOpt = {\n signal\n }\n const abort = () => ac.abort()\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n abort()\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal2 = options.signal) === null || _options$signal2 === undefined\n ? undefined\n : _options$signal2.addEventListener('abort', abort)\n let next\n let resume\n let done = false\n function onDone() {\n done = true\n }\n async function pump() {\n try {\n for await (let val of stream) {\n var _val\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n } catch (err) {\n val = PromiseReject(err)\n }\n if (val === kEmpty) {\n continue\n }\n if (typeof ((_val = val) === null || _val === undefined ? undefined : _val.catch) === 'function') {\n val.catch(onDone)\n }\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && queue.length && queue.length >= concurrency) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, undefined, onDone)\n queue.push(val)\n } finally {\n var _options$signal3\n done = true\n if (next) {\n next()\n next = null\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal3 = options.signal) === null || _options$signal3 === undefined\n ? undefined\n : _options$signal3.removeEventListener('abort', abort)\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n if (resume) {\n resume()\n resume = null\n }\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n ac.abort()\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal5\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal6\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal9\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal9 = options.signal) !== null &&\n _options$signal9 !== undefined &&\n _options$signal9.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal10\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal10 = options.signal) !== null &&\n _options$signal10 !== undefined &&\n _options$signal10.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal11\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal11 = options.signal) !== null &&\n _options$signal11 !== undefined &&\n _options$signal11.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n } else {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs,\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableEnded\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n }\n await wait()\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.addEventListener('abort', abort)\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.removeEventListener('abort', abort)\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableEnded(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n }\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.readableObjectMode)\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this.ended = false\n this.endEmitted = false\n this.reading = false\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true\n\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false\n this.emittedReadable = false\n this.readableListening = false\n this.resumeScheduled = false\n this[kPaused] = null\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Has it been destroyed.\n this.destroyed = false\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.multiAwaitDrain = false\n\n // If true, a maybeReadMore has been scheduled.\n this.readingMore = false\n this.dataEmitted = false\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.reading = false\n onEofChunk(stream, state)\n } else if (state.objectMode || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.reading = false\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.reading = false\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if (state.needReadable) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if (state.objectMode) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.emittedReadable = false\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = state.needReadable\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.reading = true\n state.sync = true\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.sync = false\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n if (state.flowing) {\n pause()\n }\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? 16 : 16 * 1024\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { Symbol, SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\nconst kDestroyed = Symbol('kDestroyed')\nconst kIsErrored = Symbol('kIsErrored')\nconst kIsReadable = Symbol('kIsReadable')\nconst kIsDisturbed = Symbol('kIsDisturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n kDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n isClosed,\n isDestroyed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n *\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('stream')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","/* jshint esversion: 6 */\n/* jslint node: true */\n'use strict';\n\nmodule.exports = function serialize (object) {\n if (object === null || typeof object !== 'object' || object.toJSON != null) {\n return JSON.stringify(object);\n }\n\n if (Array.isArray(object)) {\n return '[' + object.reduce((t, cv, ci) => {\n const comma = ci === 0 ? '' : ',';\n const value = cv === undefined || typeof cv === 'symbol' ? null : cv;\n return t + comma + serialize(value);\n }, '') + ']';\n }\n\n return '{' + Object.keys(object).sort().reduce((t, cv, ci) => {\n if (object[cv] === undefined ||\n typeof object[cv] === 'symbol') {\n return t;\n }\n const comma = t.length === 0 ? '' : ',';\n return t + comma + serialize(cv) + ':' + serialize(object[cv]);\n }, '') + '}';\n};\n","/*\n * Copyright (c) 2019 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {\n isArray: _isArray,\n isObject: _isObject,\n isString: _isString,\n} = require('./types');\nconst {\n asArray: _asArray\n} = require('./util');\nconst {prependBase} = require('./url');\nconst JsonLdError = require('./JsonLdError');\nconst ResolvedContext = require('./ResolvedContext');\n\nconst MAX_CONTEXT_URLS = 10;\n\nmodule.exports = class ContextResolver {\n /**\n * Creates a ContextResolver.\n *\n * @param sharedCache a shared LRU cache with `get` and `set` APIs.\n */\n constructor({sharedCache}) {\n this.perOpCache = new Map();\n this.sharedCache = sharedCache;\n }\n\n async resolve({\n activeCtx, context, documentLoader, base, cycles = new Set()\n }) {\n // process `@context`\n if(context && _isObject(context) && context['@context']) {\n context = context['@context'];\n }\n\n // context is one or more contexts\n context = _asArray(context);\n\n // resolve each context in the array\n const allResolved = [];\n for(const ctx of context) {\n if(_isString(ctx)) {\n // see if `ctx` has been resolved before...\n let resolved = this._get(ctx);\n if(!resolved) {\n // not resolved yet, resolve\n resolved = await this._resolveRemoteContext(\n {activeCtx, url: ctx, documentLoader, base, cycles});\n }\n\n // add to output and continue\n if(_isArray(resolved)) {\n allResolved.push(...resolved);\n } else {\n allResolved.push(resolved);\n }\n continue;\n }\n if(ctx === null) {\n // handle `null` context, nothing to cache\n allResolved.push(new ResolvedContext({document: null}));\n continue;\n }\n if(!_isObject(ctx)) {\n _throwInvalidLocalContext(context);\n }\n // context is an object, get/create `ResolvedContext` for it\n const key = JSON.stringify(ctx);\n let resolved = this._get(key);\n if(!resolved) {\n // create a new static `ResolvedContext` and cache it\n resolved = new ResolvedContext({document: ctx});\n this._cacheResolvedContext({key, resolved, tag: 'static'});\n }\n allResolved.push(resolved);\n }\n\n return allResolved;\n }\n\n _get(key) {\n // get key from per operation cache; no `tag` is used with this cache so\n // any retrieved context will always be the same during a single operation\n let resolved = this.perOpCache.get(key);\n if(!resolved) {\n // see if the shared cache has a `static` entry for this URL\n const tagMap = this.sharedCache.get(key);\n if(tagMap) {\n resolved = tagMap.get('static');\n if(resolved) {\n this.perOpCache.set(key, resolved);\n }\n }\n }\n return resolved;\n }\n\n _cacheResolvedContext({key, resolved, tag}) {\n this.perOpCache.set(key, resolved);\n if(tag !== undefined) {\n let tagMap = this.sharedCache.get(key);\n if(!tagMap) {\n tagMap = new Map();\n this.sharedCache.set(key, tagMap);\n }\n tagMap.set(tag, resolved);\n }\n return resolved;\n }\n\n async _resolveRemoteContext({activeCtx, url, documentLoader, base, cycles}) {\n // resolve relative URL and fetch context\n url = prependBase(base, url);\n const {context, remoteDoc} = await this._fetchContext(\n {activeCtx, url, documentLoader, cycles});\n\n // update base according to remote document and resolve any relative URLs\n base = remoteDoc.documentUrl || url;\n _resolveContextUrls({context, base});\n\n // resolve, cache, and return context\n const resolved = await this.resolve(\n {activeCtx, context, documentLoader, base, cycles});\n this._cacheResolvedContext({key: url, resolved, tag: remoteDoc.tag});\n return resolved;\n }\n\n async _fetchContext({activeCtx, url, documentLoader, cycles}) {\n // check for max context URLs fetched during a resolve operation\n if(cycles.size > MAX_CONTEXT_URLS) {\n throw new JsonLdError(\n 'Maximum number of @context URLs exceeded.',\n 'jsonld.ContextUrlError',\n {\n code: activeCtx.processingMode === 'json-ld-1.0' ?\n 'loading remote context failed' :\n 'context overflow',\n max: MAX_CONTEXT_URLS\n });\n }\n\n // check for context URL cycle\n // shortcut to avoid extra work that would eventually hit the max above\n if(cycles.has(url)) {\n throw new JsonLdError(\n 'Cyclical @context URLs detected.',\n 'jsonld.ContextUrlError',\n {\n code: activeCtx.processingMode === 'json-ld-1.0' ?\n 'recursive context inclusion' :\n 'context overflow',\n url\n });\n }\n\n // track cycles\n cycles.add(url);\n\n let context;\n let remoteDoc;\n\n try {\n remoteDoc = await documentLoader(url);\n context = remoteDoc.document || null;\n // parse string context as JSON\n if(_isString(context)) {\n context = JSON.parse(context);\n }\n } catch(e) {\n throw new JsonLdError(\n 'Dereferencing a URL did not result in a valid JSON-LD object. ' +\n 'Possible causes are an inaccessible URL perhaps due to ' +\n 'a same-origin policy (ensure the server uses CORS if you are ' +\n 'using client-side JavaScript), too many redirects, a ' +\n 'non-JSON response, or more than one HTTP Link Header was ' +\n 'provided for a remote context.',\n 'jsonld.InvalidUrl',\n {code: 'loading remote context failed', url, cause: e});\n }\n\n // ensure ctx is an object\n if(!_isObject(context)) {\n throw new JsonLdError(\n 'Dereferencing a URL did not result in a JSON object. The ' +\n 'response was valid JSON, but it was not a JSON object.',\n 'jsonld.InvalidUrl', {code: 'invalid remote context', url});\n }\n\n // use empty context if no @context key is present\n if(!('@context' in context)) {\n context = {'@context': {}};\n } else {\n context = {'@context': context['@context']};\n }\n\n // append @context URL to context if given\n if(remoteDoc.contextUrl) {\n if(!_isArray(context['@context'])) {\n context['@context'] = [context['@context']];\n }\n context['@context'].push(remoteDoc.contextUrl);\n }\n\n return {context, remoteDoc};\n }\n};\n\nfunction _throwInvalidLocalContext(ctx) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context must be an object.',\n 'jsonld.SyntaxError', {\n code: 'invalid local context', context: ctx\n });\n}\n\n/**\n * Resolve all relative `@context` URLs in the given context by inline\n * replacing them with absolute URLs.\n *\n * @param context the context.\n * @param base the base IRI to use to resolve relative IRIs.\n */\nfunction _resolveContextUrls({context, base}) {\n if(!context) {\n return;\n }\n\n const ctx = context['@context'];\n\n if(_isString(ctx)) {\n context['@context'] = prependBase(base, ctx);\n return;\n }\n\n if(_isArray(ctx)) {\n for(let i = 0; i < ctx.length; ++i) {\n const element = ctx[i];\n if(_isString(element)) {\n ctx[i] = prependBase(base, element);\n continue;\n }\n if(_isObject(element)) {\n _resolveContextUrls({context: {'@context': element}, base});\n }\n }\n return;\n }\n\n if(!_isObject(ctx)) {\n // no @context URLs can be found in non-object\n return;\n }\n\n // ctx is an object, resolve any context URLs in terms\n for(const term in ctx) {\n _resolveContextUrls({context: ctx[term], base});\n }\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nmodule.exports = class JsonLdError extends Error {\n /**\n * Creates a JSON-LD Error.\n *\n * @param msg the error message.\n * @param type the error type.\n * @param details the error details.\n */\n constructor(\n message = 'An unspecified JSON-LD error occurred.',\n name = 'jsonld.Error',\n details = {}) {\n super(message);\n this.name = name;\n this.message = message;\n this.details = details;\n }\n};\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nmodule.exports = jsonld => {\n class JsonLdProcessor {\n toString() {\n return '[object JsonLdProcessor]';\n }\n }\n Object.defineProperty(JsonLdProcessor, 'prototype', {\n writable: false,\n enumerable: false\n });\n Object.defineProperty(JsonLdProcessor.prototype, 'constructor', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: JsonLdProcessor\n });\n\n // The Web IDL test harness will check the number of parameters defined in\n // the functions below. The number of parameters must exactly match the\n // required (non-optional) parameters of the JsonLdProcessor interface as\n // defined here:\n // https://www.w3.org/TR/json-ld-api/#the-jsonldprocessor-interface\n\n JsonLdProcessor.compact = function(input, ctx) {\n if(arguments.length < 2) {\n return Promise.reject(\n new TypeError('Could not compact, too few arguments.'));\n }\n return jsonld.compact(input, ctx);\n };\n JsonLdProcessor.expand = function(input) {\n if(arguments.length < 1) {\n return Promise.reject(\n new TypeError('Could not expand, too few arguments.'));\n }\n return jsonld.expand(input);\n };\n JsonLdProcessor.flatten = function(input) {\n if(arguments.length < 1) {\n return Promise.reject(\n new TypeError('Could not flatten, too few arguments.'));\n }\n return jsonld.flatten(input);\n };\n\n return JsonLdProcessor;\n};\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\n// TODO: move `NQuads` to its own package\nmodule.exports = require('rdf-canonize').NQuads;\n","/*\n * Copyright (c) 2017-2019 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nmodule.exports = class RequestQueue {\n /**\n * Creates a simple queue for requesting documents.\n */\n constructor() {\n this._requests = {};\n }\n\n wrapLoader(loader) {\n const self = this;\n self._loader = loader;\n return function(/* url */) {\n return self.add.apply(self, arguments);\n };\n }\n\n async add(url) {\n let promise = this._requests[url];\n if(promise) {\n // URL already queued, wait for it to load\n return Promise.resolve(promise);\n }\n\n // queue URL and load it\n promise = this._requests[url] = this._loader(url);\n\n try {\n return await promise;\n } finally {\n delete this._requests[url];\n }\n }\n};\n","/*\n * Copyright (c) 2019 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst LRU = require('lru-cache');\n\nconst MAX_ACTIVE_CONTEXTS = 10;\n\nmodule.exports = class ResolvedContext {\n /**\n * Creates a ResolvedContext.\n *\n * @param document the context document.\n */\n constructor({document}) {\n this.document = document;\n // TODO: enable customization of processed context cache\n // TODO: limit based on size of processed contexts vs. number of them\n this.cache = new LRU({max: MAX_ACTIVE_CONTEXTS});\n }\n\n getProcessed(activeCtx) {\n return this.cache.get(activeCtx);\n }\n\n setProcessed(activeCtx, processedCtx) {\n this.cache.set(activeCtx, processedCtx);\n }\n};\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst JsonLdError = require('./JsonLdError');\n\nconst {\n isArray: _isArray,\n isObject: _isObject,\n isString: _isString,\n isUndefined: _isUndefined\n} = require('./types');\n\nconst {\n isList: _isList,\n isValue: _isValue,\n isGraph: _isGraph,\n isSimpleGraph: _isSimpleGraph,\n isSubjectReference: _isSubjectReference\n} = require('./graphTypes');\n\nconst {\n expandIri: _expandIri,\n getContextValue: _getContextValue,\n isKeyword: _isKeyword,\n process: _processContext,\n processingMode: _processingMode\n} = require('./context');\n\nconst {\n removeBase: _removeBase,\n prependBase: _prependBase\n} = require('./url');\n\nconst {\n REGEX_KEYWORD,\n addValue: _addValue,\n asArray: _asArray,\n compareShortestLeast: _compareShortestLeast\n} = require('./util');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Recursively compacts an element using the given active context. All values\n * must be in expanded form before this method is called.\n *\n * @param activeCtx the active context to use.\n * @param activeProperty the compacted property associated with the element\n * to compact, null for none.\n * @param element the element to compact.\n * @param options the compaction options.\n *\n * @return a promise that resolves to the compacted value.\n */\napi.compact = async ({\n activeCtx,\n activeProperty = null,\n element,\n options = {}\n}) => {\n // recursively compact array\n if(_isArray(element)) {\n let rval = [];\n for(let i = 0; i < element.length; ++i) {\n const compacted = await api.compact({\n activeCtx,\n activeProperty,\n element: element[i],\n options\n });\n if(compacted === null) {\n // FIXME: need event?\n continue;\n }\n rval.push(compacted);\n }\n if(options.compactArrays && rval.length === 1) {\n // use single element if no container is specified\n const container = _getContextValue(\n activeCtx, activeProperty, '@container') || [];\n if(container.length === 0) {\n rval = rval[0];\n }\n }\n return rval;\n }\n\n // use any scoped context on activeProperty\n const ctx = _getContextValue(activeCtx, activeProperty, '@context');\n if(!_isUndefined(ctx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: ctx,\n propagate: true,\n overrideProtected: true,\n options\n });\n }\n\n // recursively compact object\n if(_isObject(element)) {\n if(options.link && '@id' in element &&\n options.link.hasOwnProperty(element['@id'])) {\n // check for a linked element to reuse\n const linked = options.link[element['@id']];\n for(let i = 0; i < linked.length; ++i) {\n if(linked[i].expanded === element) {\n return linked[i].compacted;\n }\n }\n }\n\n // do value compaction on @values and subject references\n if(_isValue(element) || _isSubjectReference(element)) {\n const rval =\n api.compactValue({activeCtx, activeProperty, value: element, options});\n if(options.link && _isSubjectReference(element)) {\n // store linked element\n if(!(options.link.hasOwnProperty(element['@id']))) {\n options.link[element['@id']] = [];\n }\n options.link[element['@id']].push({expanded: element, compacted: rval});\n }\n return rval;\n }\n\n // if expanded property is @list and we're contained within a list\n // container, recursively compact this item to an array\n if(_isList(element)) {\n const container = _getContextValue(\n activeCtx, activeProperty, '@container') || [];\n if(container.includes('@list')) {\n return api.compact({\n activeCtx,\n activeProperty,\n element: element['@list'],\n options\n });\n }\n }\n\n // FIXME: avoid misuse of active property as an expanded property?\n const insideReverse = (activeProperty === '@reverse');\n\n const rval = {};\n\n // original context before applying property-scoped and local contexts\n const inputCtx = activeCtx;\n\n // revert to previous context, if there is one,\n // and element is not a value object or a node reference\n if(!_isValue(element) && !_isSubjectReference(element)) {\n activeCtx = activeCtx.revertToPreviousContext();\n }\n\n // apply property-scoped context after reverting term-scoped context\n const propertyScopedCtx =\n _getContextValue(inputCtx, activeProperty, '@context');\n if(!_isUndefined(propertyScopedCtx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: propertyScopedCtx,\n propagate: true,\n overrideProtected: true,\n options\n });\n }\n\n if(options.link && '@id' in element) {\n // store linked element\n if(!options.link.hasOwnProperty(element['@id'])) {\n options.link[element['@id']] = [];\n }\n options.link[element['@id']].push({expanded: element, compacted: rval});\n }\n\n // apply any context defined on an alias of @type\n // if key is @type and any compacted value is a term having a local\n // context, overlay that context\n let types = element['@type'] || [];\n if(types.length > 1) {\n types = Array.from(types).sort();\n }\n // find all type-scoped contexts based on current context, prior to\n // updating it\n const typeContext = activeCtx;\n for(const type of types) {\n const compactedType = api.compactIri(\n {activeCtx: typeContext, iri: type, relativeTo: {vocab: true}});\n\n // Use any type-scoped context defined on this value\n const ctx = _getContextValue(inputCtx, compactedType, '@context');\n if(!_isUndefined(ctx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: ctx,\n options,\n propagate: false\n });\n }\n }\n\n // process element keys in order\n const keys = Object.keys(element).sort();\n for(const expandedProperty of keys) {\n const expandedValue = element[expandedProperty];\n\n // compact @id\n if(expandedProperty === '@id') {\n let compactedValue = _asArray(expandedValue).map(\n expandedIri => api.compactIri({\n activeCtx,\n iri: expandedIri,\n relativeTo: {vocab: false},\n base: options.base\n }));\n if(compactedValue.length === 1) {\n compactedValue = compactedValue[0];\n }\n\n // use keyword alias and add value\n const alias = api.compactIri(\n {activeCtx, iri: '@id', relativeTo: {vocab: true}});\n\n rval[alias] = compactedValue;\n continue;\n }\n\n // compact @type(s)\n if(expandedProperty === '@type') {\n // resolve type values against previous context\n let compactedValue = _asArray(expandedValue).map(\n expandedIri => api.compactIri({\n activeCtx: inputCtx,\n iri: expandedIri,\n relativeTo: {vocab: true}\n }));\n if(compactedValue.length === 1) {\n compactedValue = compactedValue[0];\n }\n\n // use keyword alias and add value\n const alias = api.compactIri(\n {activeCtx, iri: '@type', relativeTo: {vocab: true}});\n const container = _getContextValue(\n activeCtx, alias, '@container') || [];\n\n // treat as array for @type if @container includes @set\n const typeAsSet =\n container.includes('@set') &&\n _processingMode(activeCtx, 1.1);\n const isArray =\n typeAsSet || (_isArray(compactedValue) && expandedValue.length === 0);\n _addValue(rval, alias, compactedValue, {propertyIsArray: isArray});\n continue;\n }\n\n // handle @reverse\n if(expandedProperty === '@reverse') {\n // recursively compact expanded value\n const compactedValue = await api.compact({\n activeCtx,\n activeProperty: '@reverse',\n element: expandedValue,\n options\n });\n\n // handle double-reversed properties\n for(const compactedProperty in compactedValue) {\n if(activeCtx.mappings.has(compactedProperty) &&\n activeCtx.mappings.get(compactedProperty).reverse) {\n const value = compactedValue[compactedProperty];\n const container = _getContextValue(\n activeCtx, compactedProperty, '@container') || [];\n const useArray = (\n container.includes('@set') || !options.compactArrays);\n _addValue(\n rval, compactedProperty, value, {propertyIsArray: useArray});\n delete compactedValue[compactedProperty];\n }\n }\n\n if(Object.keys(compactedValue).length > 0) {\n // use keyword alias and add value\n const alias = api.compactIri({\n activeCtx,\n iri: expandedProperty,\n relativeTo: {vocab: true}\n });\n _addValue(rval, alias, compactedValue);\n }\n\n continue;\n }\n\n if(expandedProperty === '@preserve') {\n // compact using activeProperty\n const compactedValue = await api.compact({\n activeCtx,\n activeProperty,\n element: expandedValue,\n options\n });\n\n if(!(_isArray(compactedValue) && compactedValue.length === 0)) {\n _addValue(rval, expandedProperty, compactedValue);\n }\n continue;\n }\n\n // handle @index property\n if(expandedProperty === '@index') {\n // drop @index if inside an @index container\n const container = _getContextValue(\n activeCtx, activeProperty, '@container') || [];\n if(container.includes('@index')) {\n continue;\n }\n\n // use keyword alias and add value\n const alias = api.compactIri({\n activeCtx,\n iri: expandedProperty,\n relativeTo: {vocab: true}\n });\n _addValue(rval, alias, expandedValue);\n continue;\n }\n\n // skip array processing for keywords that aren't\n // @graph, @list, or @included\n if(expandedProperty !== '@graph' && expandedProperty !== '@list' &&\n expandedProperty !== '@included' &&\n _isKeyword(expandedProperty)) {\n // use keyword alias and add value as is\n const alias = api.compactIri({\n activeCtx,\n iri: expandedProperty,\n relativeTo: {vocab: true}\n });\n _addValue(rval, alias, expandedValue);\n continue;\n }\n\n // Note: expanded value must be an array due to expansion algorithm.\n if(!_isArray(expandedValue)) {\n throw new JsonLdError(\n 'JSON-LD expansion error; expanded value must be an array.',\n 'jsonld.SyntaxError');\n }\n\n // preserve empty arrays\n if(expandedValue.length === 0) {\n const itemActiveProperty = api.compactIri({\n activeCtx,\n iri: expandedProperty,\n value: expandedValue,\n relativeTo: {vocab: true},\n reverse: insideReverse\n });\n const nestProperty = activeCtx.mappings.has(itemActiveProperty) ?\n activeCtx.mappings.get(itemActiveProperty)['@nest'] : null;\n let nestResult = rval;\n if(nestProperty) {\n _checkNestProperty(activeCtx, nestProperty, options);\n if(!_isObject(rval[nestProperty])) {\n rval[nestProperty] = {};\n }\n nestResult = rval[nestProperty];\n }\n _addValue(\n nestResult, itemActiveProperty, expandedValue, {\n propertyIsArray: true\n });\n }\n\n // recusively process array values\n for(const expandedItem of expandedValue) {\n // compact property and get container type\n const itemActiveProperty = api.compactIri({\n activeCtx,\n iri: expandedProperty,\n value: expandedItem,\n relativeTo: {vocab: true},\n reverse: insideReverse\n });\n\n // if itemActiveProperty is a @nest property, add values to nestResult,\n // otherwise rval\n const nestProperty = activeCtx.mappings.has(itemActiveProperty) ?\n activeCtx.mappings.get(itemActiveProperty)['@nest'] : null;\n let nestResult = rval;\n if(nestProperty) {\n _checkNestProperty(activeCtx, nestProperty, options);\n if(!_isObject(rval[nestProperty])) {\n rval[nestProperty] = {};\n }\n nestResult = rval[nestProperty];\n }\n\n const container = _getContextValue(\n activeCtx, itemActiveProperty, '@container') || [];\n\n // get simple @graph or @list value if appropriate\n const isGraph = _isGraph(expandedItem);\n const isList = _isList(expandedItem);\n let inner;\n if(isList) {\n inner = expandedItem['@list'];\n } else if(isGraph) {\n inner = expandedItem['@graph'];\n }\n\n // recursively compact expanded item\n let compactedItem = await api.compact({\n activeCtx,\n activeProperty: itemActiveProperty,\n element: (isList || isGraph) ? inner : expandedItem,\n options\n });\n\n // handle @list\n if(isList) {\n // ensure @list value is an array\n if(!_isArray(compactedItem)) {\n compactedItem = [compactedItem];\n }\n\n if(!container.includes('@list')) {\n // wrap using @list alias\n compactedItem = {\n [api.compactIri({\n activeCtx,\n iri: '@list',\n relativeTo: {vocab: true}\n })]: compactedItem\n };\n\n // include @index from expanded @list, if any\n if('@index' in expandedItem) {\n compactedItem[api.compactIri({\n activeCtx,\n iri: '@index',\n relativeTo: {vocab: true}\n })] = expandedItem['@index'];\n }\n } else {\n _addValue(nestResult, itemActiveProperty, compactedItem, {\n valueIsArray: true,\n allowDuplicate: true\n });\n continue;\n }\n }\n\n // Graph object compaction cases\n if(isGraph) {\n if(container.includes('@graph') && (container.includes('@id') ||\n container.includes('@index') && _isSimpleGraph(expandedItem))) {\n // get or create the map object\n let mapObject;\n if(nestResult.hasOwnProperty(itemActiveProperty)) {\n mapObject = nestResult[itemActiveProperty];\n } else {\n nestResult[itemActiveProperty] = mapObject = {};\n }\n\n // index on @id or @index or alias of @none\n const key = (container.includes('@id') ?\n expandedItem['@id'] : expandedItem['@index']) ||\n api.compactIri({activeCtx, iri: '@none',\n relativeTo: {vocab: true}});\n // add compactedItem to map, using value of `@id` or a new blank\n // node identifier\n\n _addValue(\n mapObject, key, compactedItem, {\n propertyIsArray:\n (!options.compactArrays || container.includes('@set'))\n });\n } else if(container.includes('@graph') &&\n _isSimpleGraph(expandedItem)) {\n // container includes @graph but not @id or @index and value is a\n // simple graph object add compact value\n // if compactedItem contains multiple values, it is wrapped in\n // `@included`\n if(_isArray(compactedItem) && compactedItem.length > 1) {\n compactedItem = {'@included': compactedItem};\n }\n _addValue(\n nestResult, itemActiveProperty, compactedItem, {\n propertyIsArray:\n (!options.compactArrays || container.includes('@set'))\n });\n } else {\n // wrap using @graph alias, remove array if only one item and\n // compactArrays not set\n if(_isArray(compactedItem) && compactedItem.length === 1 &&\n options.compactArrays) {\n compactedItem = compactedItem[0];\n }\n compactedItem = {\n [api.compactIri({\n activeCtx,\n iri: '@graph',\n relativeTo: {vocab: true}\n })]: compactedItem\n };\n\n // include @id from expanded graph, if any\n if('@id' in expandedItem) {\n compactedItem[api.compactIri({\n activeCtx,\n iri: '@id',\n relativeTo: {vocab: true}\n })] = expandedItem['@id'];\n }\n\n // include @index from expanded graph, if any\n if('@index' in expandedItem) {\n compactedItem[api.compactIri({\n activeCtx,\n iri: '@index',\n relativeTo: {vocab: true}\n })] = expandedItem['@index'];\n }\n _addValue(\n nestResult, itemActiveProperty, compactedItem, {\n propertyIsArray:\n (!options.compactArrays || container.includes('@set'))\n });\n }\n } else if(container.includes('@language') ||\n container.includes('@index') || container.includes('@id') ||\n container.includes('@type')) {\n // handle language and index maps\n // get or create the map object\n let mapObject;\n if(nestResult.hasOwnProperty(itemActiveProperty)) {\n mapObject = nestResult[itemActiveProperty];\n } else {\n nestResult[itemActiveProperty] = mapObject = {};\n }\n\n let key;\n if(container.includes('@language')) {\n // if container is a language map, simplify compacted value to\n // a simple string\n if(_isValue(compactedItem)) {\n compactedItem = compactedItem['@value'];\n }\n key = expandedItem['@language'];\n } else if(container.includes('@index')) {\n const indexKey = _getContextValue(\n activeCtx, itemActiveProperty, '@index') || '@index';\n const containerKey = api.compactIri(\n {activeCtx, iri: indexKey, relativeTo: {vocab: true}});\n if(indexKey === '@index') {\n key = expandedItem['@index'];\n delete compactedItem[containerKey];\n } else {\n let others;\n [key, ...others] = _asArray(compactedItem[indexKey] || []);\n if(!_isString(key)) {\n // Will use @none if it isn't a string.\n key = null;\n } else {\n switch(others.length) {\n case 0:\n delete compactedItem[indexKey];\n break;\n case 1:\n compactedItem[indexKey] = others[0];\n break;\n default:\n compactedItem[indexKey] = others;\n break;\n }\n }\n }\n } else if(container.includes('@id')) {\n const idKey = api.compactIri({activeCtx, iri: '@id',\n relativeTo: {vocab: true}});\n key = compactedItem[idKey];\n delete compactedItem[idKey];\n } else if(container.includes('@type')) {\n const typeKey = api.compactIri({\n activeCtx,\n iri: '@type',\n relativeTo: {vocab: true}\n });\n let types;\n [key, ...types] = _asArray(compactedItem[typeKey] || []);\n switch(types.length) {\n case 0:\n delete compactedItem[typeKey];\n break;\n case 1:\n compactedItem[typeKey] = types[0];\n break;\n default:\n compactedItem[typeKey] = types;\n break;\n }\n\n // If compactedItem contains a single entry\n // whose key maps to @id, recompact without @type\n if(Object.keys(compactedItem).length === 1 &&\n '@id' in expandedItem) {\n compactedItem = await api.compact({\n activeCtx,\n activeProperty: itemActiveProperty,\n element: {'@id': expandedItem['@id']},\n options\n });\n }\n }\n\n // if compacting this value which has no key, index on @none\n if(!key) {\n key = api.compactIri({activeCtx, iri: '@none',\n relativeTo: {vocab: true}});\n }\n // add compact value to map object using key from expanded value\n // based on the container type\n _addValue(\n mapObject, key, compactedItem, {\n propertyIsArray: container.includes('@set')\n });\n } else {\n // use an array if: compactArrays flag is false,\n // @container is @set or @list , value is an empty\n // array, or key is @graph\n const isArray = (!options.compactArrays ||\n container.includes('@set') || container.includes('@list') ||\n (_isArray(compactedItem) && compactedItem.length === 0) ||\n expandedProperty === '@list' || expandedProperty === '@graph');\n\n // add compact value\n _addValue(\n nestResult, itemActiveProperty, compactedItem,\n {propertyIsArray: isArray});\n }\n }\n }\n\n return rval;\n }\n\n // only primitives remain which are already compact\n return element;\n};\n\n/**\n * Compacts an IRI or keyword into a term or prefix if it can be. If the\n * IRI has an associated value it may be passed.\n *\n * @param activeCtx the active context to use.\n * @param iri the IRI to compact.\n * @param value the value to check or null.\n * @param relativeTo options for how to compact IRIs:\n * vocab: true to split after @vocab, false not to.\n * @param reverse true if a reverse property is being compacted, false if not.\n * @param base the absolute URL to use for compacting document-relative IRIs.\n *\n * @return the compacted term, prefix, keyword alias, or the original IRI.\n */\napi.compactIri = ({\n activeCtx,\n iri,\n value = null,\n relativeTo = {vocab: false},\n reverse = false,\n base = null\n}) => {\n // can't compact null\n if(iri === null) {\n return iri;\n }\n\n // if context is from a property term scoped context composed with a\n // type-scoped context, then use the previous context instead\n if(activeCtx.isPropertyTermScoped && activeCtx.previousContext) {\n activeCtx = activeCtx.previousContext;\n }\n\n const inverseCtx = activeCtx.getInverse();\n\n // if term is a keyword, it may be compacted to a simple alias\n if(_isKeyword(iri) &&\n iri in inverseCtx &&\n '@none' in inverseCtx[iri] &&\n '@type' in inverseCtx[iri]['@none'] &&\n '@none' in inverseCtx[iri]['@none']['@type']) {\n return inverseCtx[iri]['@none']['@type']['@none'];\n }\n\n // use inverse context to pick a term if iri is relative to vocab\n if(relativeTo.vocab && iri in inverseCtx) {\n const defaultLanguage = activeCtx['@language'] || '@none';\n\n // prefer @index if available in value\n const containers = [];\n if(_isObject(value) && '@index' in value && !('@graph' in value)) {\n containers.push('@index', '@index@set');\n }\n\n // if value is a preserve object, use its value\n if(_isObject(value) && '@preserve' in value) {\n value = value['@preserve'][0];\n }\n\n // prefer most specific container including @graph, prefering @set\n // variations\n if(_isGraph(value)) {\n // favor indexmap if the graph is indexed\n if('@index' in value) {\n containers.push(\n '@graph@index', '@graph@index@set', '@index', '@index@set');\n }\n // favor idmap if the graph is has an @id\n if('@id' in value) {\n containers.push(\n '@graph@id', '@graph@id@set');\n }\n containers.push('@graph', '@graph@set', '@set');\n // allow indexmap if the graph is not indexed\n if(!('@index' in value)) {\n containers.push(\n '@graph@index', '@graph@index@set', '@index', '@index@set');\n }\n // allow idmap if the graph does not have an @id\n if(!('@id' in value)) {\n containers.push('@graph@id', '@graph@id@set');\n }\n } else if(_isObject(value) && !_isValue(value)) {\n containers.push('@id', '@id@set', '@type', '@set@type');\n }\n\n // defaults for term selection based on type/language\n let typeOrLanguage = '@language';\n let typeOrLanguageValue = '@null';\n\n if(reverse) {\n typeOrLanguage = '@type';\n typeOrLanguageValue = '@reverse';\n containers.push('@set');\n } else if(_isList(value)) {\n // choose the most specific term that works for all elements in @list\n // only select @list containers if @index is NOT in value\n if(!('@index' in value)) {\n containers.push('@list');\n }\n const list = value['@list'];\n if(list.length === 0) {\n // any empty list can be matched against any term that uses the\n // @list container regardless of @type or @language\n typeOrLanguage = '@any';\n typeOrLanguageValue = '@none';\n } else {\n let commonLanguage = (list.length === 0) ? defaultLanguage : null;\n let commonType = null;\n for(let i = 0; i < list.length; ++i) {\n const item = list[i];\n let itemLanguage = '@none';\n let itemType = '@none';\n if(_isValue(item)) {\n if('@direction' in item) {\n const lang = (item['@language'] || '').toLowerCase();\n const dir = item['@direction'];\n itemLanguage = `${lang}_${dir}`;\n } else if('@language' in item) {\n itemLanguage = item['@language'].toLowerCase();\n } else if('@type' in item) {\n itemType = item['@type'];\n } else {\n // plain literal\n itemLanguage = '@null';\n }\n } else {\n itemType = '@id';\n }\n if(commonLanguage === null) {\n commonLanguage = itemLanguage;\n } else if(itemLanguage !== commonLanguage && _isValue(item)) {\n commonLanguage = '@none';\n }\n if(commonType === null) {\n commonType = itemType;\n } else if(itemType !== commonType) {\n commonType = '@none';\n }\n // there are different languages and types in the list, so choose\n // the most generic term, no need to keep iterating the list\n if(commonLanguage === '@none' && commonType === '@none') {\n break;\n }\n }\n commonLanguage = commonLanguage || '@none';\n commonType = commonType || '@none';\n if(commonType !== '@none') {\n typeOrLanguage = '@type';\n typeOrLanguageValue = commonType;\n } else {\n typeOrLanguageValue = commonLanguage;\n }\n }\n } else {\n if(_isValue(value)) {\n if('@language' in value && !('@index' in value)) {\n containers.push('@language', '@language@set');\n typeOrLanguageValue = value['@language'];\n const dir = value['@direction'];\n if(dir) {\n typeOrLanguageValue = `${typeOrLanguageValue}_${dir}`;\n }\n } else if('@direction' in value && !('@index' in value)) {\n typeOrLanguageValue = `_${value['@direction']}`;\n } else if('@type' in value) {\n typeOrLanguage = '@type';\n typeOrLanguageValue = value['@type'];\n }\n } else {\n typeOrLanguage = '@type';\n typeOrLanguageValue = '@id';\n }\n containers.push('@set');\n }\n\n // do term selection\n containers.push('@none');\n\n // an index map can be used to index values using @none, so add as a low\n // priority\n if(_isObject(value) && !('@index' in value)) {\n // allow indexing even if no @index present\n containers.push('@index', '@index@set');\n }\n\n // values without type or language can use @language map\n if(_isValue(value) && Object.keys(value).length === 1) {\n // allow indexing even if no @index present\n containers.push('@language', '@language@set');\n }\n\n const term = _selectTerm(\n activeCtx, iri, value, containers, typeOrLanguage, typeOrLanguageValue);\n if(term !== null) {\n return term;\n }\n }\n\n // no term match, use @vocab if available\n if(relativeTo.vocab) {\n if('@vocab' in activeCtx) {\n // determine if vocab is a prefix of the iri\n const vocab = activeCtx['@vocab'];\n if(iri.indexOf(vocab) === 0 && iri !== vocab) {\n // use suffix as relative iri if it is not a term in the active context\n const suffix = iri.substr(vocab.length);\n if(!activeCtx.mappings.has(suffix)) {\n return suffix;\n }\n }\n }\n }\n\n // no term or @vocab match, check for possible CURIEs\n let choice = null;\n // TODO: make FastCurieMap a class with a method to do this lookup\n const partialMatches = [];\n let iriMap = activeCtx.fastCurieMap;\n // check for partial matches of against `iri`, which means look until\n // iri.length - 1, not full length\n const maxPartialLength = iri.length - 1;\n for(let i = 0; i < maxPartialLength && iri[i] in iriMap; ++i) {\n iriMap = iriMap[iri[i]];\n if('' in iriMap) {\n partialMatches.push(iriMap[''][0]);\n }\n }\n // check partial matches in reverse order to prefer longest ones first\n for(let i = partialMatches.length - 1; i >= 0; --i) {\n const entry = partialMatches[i];\n const terms = entry.terms;\n for(const term of terms) {\n // a CURIE is usable if:\n // 1. it has no mapping, OR\n // 2. value is null, which means we're not compacting an @value, AND\n // the mapping matches the IRI\n const curie = term + ':' + iri.substr(entry.iri.length);\n const isUsableCurie = (activeCtx.mappings.get(term)._prefix &&\n (!activeCtx.mappings.has(curie) ||\n (value === null && activeCtx.mappings.get(curie)['@id'] === iri)));\n\n // select curie if it is shorter or the same length but lexicographically\n // less than the current choice\n if(isUsableCurie && (choice === null ||\n _compareShortestLeast(curie, choice) < 0)) {\n choice = curie;\n }\n }\n }\n\n // return chosen curie\n if(choice !== null) {\n return choice;\n }\n\n // If iri could be confused with a compact IRI using a term in this context,\n // signal an error\n for(const [term, td] of activeCtx.mappings) {\n if(td && td._prefix && iri.startsWith(term + ':')) {\n throw new JsonLdError(\n `Absolute IRI \"${iri}\" confused with prefix \"${term}\".`,\n 'jsonld.SyntaxError',\n {code: 'IRI confused with prefix', context: activeCtx});\n }\n }\n\n // compact IRI relative to base\n if(!relativeTo.vocab) {\n if('@base' in activeCtx) {\n if(!activeCtx['@base']) {\n // The None case preserves rval as potentially relative\n return iri;\n } else {\n const _iri = _removeBase(_prependBase(base, activeCtx['@base']), iri);\n return REGEX_KEYWORD.test(_iri) ? `./${_iri}` : _iri;\n }\n } else {\n return _removeBase(base, iri);\n }\n }\n\n // return IRI as is\n return iri;\n};\n\n/**\n * Performs value compaction on an object with '@value' or '@id' as the only\n * property.\n *\n * @param activeCtx the active context.\n * @param activeProperty the active property that points to the value.\n * @param value the value to compact.\n * @param {Object} [options] - processing options.\n *\n * @return the compaction result.\n */\napi.compactValue = ({activeCtx, activeProperty, value, options}) => {\n // value is a @value\n if(_isValue(value)) {\n // get context rules\n const type = _getContextValue(activeCtx, activeProperty, '@type');\n const language = _getContextValue(activeCtx, activeProperty, '@language');\n const direction = _getContextValue(activeCtx, activeProperty, '@direction');\n const container =\n _getContextValue(activeCtx, activeProperty, '@container') || [];\n\n // whether or not the value has an @index that must be preserved\n const preserveIndex = '@index' in value && !container.includes('@index');\n\n // if there's no @index to preserve ...\n if(!preserveIndex && type !== '@none') {\n // matching @type or @language specified in context, compact value\n if(value['@type'] === type) {\n return value['@value'];\n }\n if('@language' in value && value['@language'] === language &&\n '@direction' in value && value['@direction'] === direction) {\n return value['@value'];\n }\n if('@language' in value && value['@language'] === language) {\n return value['@value'];\n }\n if('@direction' in value && value['@direction'] === direction) {\n return value['@value'];\n }\n }\n\n // return just the value of @value if all are true:\n // 1. @value is the only key or @index isn't being preserved\n // 2. there is no default language or @value is not a string or\n // the key has a mapping with a null @language\n const keyCount = Object.keys(value).length;\n const isValueOnlyKey = (keyCount === 1 ||\n (keyCount === 2 && '@index' in value && !preserveIndex));\n const hasDefaultLanguage = ('@language' in activeCtx);\n const isValueString = _isString(value['@value']);\n const hasNullMapping = (activeCtx.mappings.has(activeProperty) &&\n activeCtx.mappings.get(activeProperty)['@language'] === null);\n if(isValueOnlyKey &&\n type !== '@none' &&\n (!hasDefaultLanguage || !isValueString || hasNullMapping)) {\n return value['@value'];\n }\n\n const rval = {};\n\n // preserve @index\n if(preserveIndex) {\n rval[api.compactIri({\n activeCtx,\n iri: '@index',\n relativeTo: {vocab: true}\n })] = value['@index'];\n }\n\n if('@type' in value) {\n // compact @type IRI\n rval[api.compactIri({\n activeCtx,\n iri: '@type',\n relativeTo: {vocab: true}\n })] = api.compactIri(\n {activeCtx, iri: value['@type'], relativeTo: {vocab: true}});\n } else if('@language' in value) {\n // alias @language\n rval[api.compactIri({\n activeCtx,\n iri: '@language',\n relativeTo: {vocab: true}\n })] = value['@language'];\n }\n\n if('@direction' in value) {\n // alias @direction\n rval[api.compactIri({\n activeCtx,\n iri: '@direction',\n relativeTo: {vocab: true}\n })] = value['@direction'];\n }\n\n // alias @value\n rval[api.compactIri({\n activeCtx,\n iri: '@value',\n relativeTo: {vocab: true}\n })] = value['@value'];\n\n return rval;\n }\n\n // value is a subject reference\n const expandedProperty = _expandIri(activeCtx, activeProperty, {vocab: true},\n options);\n const type = _getContextValue(activeCtx, activeProperty, '@type');\n const compacted = api.compactIri({\n activeCtx,\n iri: value['@id'],\n relativeTo: {vocab: type === '@vocab'},\n base: options.base});\n\n // compact to scalar\n if(type === '@id' || type === '@vocab' || expandedProperty === '@graph') {\n return compacted;\n }\n\n return {\n [api.compactIri({\n activeCtx,\n iri: '@id',\n relativeTo: {vocab: true}\n })]: compacted\n };\n};\n\n/**\n * Picks the preferred compaction term from the given inverse context entry.\n *\n * @param activeCtx the active context.\n * @param iri the IRI to pick the term for.\n * @param value the value to pick the term for.\n * @param containers the preferred containers.\n * @param typeOrLanguage either '@type' or '@language'.\n * @param typeOrLanguageValue the preferred value for '@type' or '@language'.\n *\n * @return the preferred term.\n */\nfunction _selectTerm(\n activeCtx, iri, value, containers, typeOrLanguage, typeOrLanguageValue) {\n if(typeOrLanguageValue === null) {\n typeOrLanguageValue = '@null';\n }\n\n // preferences for the value of @type or @language\n const prefs = [];\n\n // determine prefs for @id based on whether or not value compacts to a term\n if((typeOrLanguageValue === '@id' || typeOrLanguageValue === '@reverse') &&\n _isObject(value) && '@id' in value) {\n // prefer @reverse first\n if(typeOrLanguageValue === '@reverse') {\n prefs.push('@reverse');\n }\n // try to compact value to a term\n const term = api.compactIri(\n {activeCtx, iri: value['@id'], relativeTo: {vocab: true}});\n if(activeCtx.mappings.has(term) &&\n activeCtx.mappings.get(term) &&\n activeCtx.mappings.get(term)['@id'] === value['@id']) {\n // prefer @vocab\n prefs.push.apply(prefs, ['@vocab', '@id']);\n } else {\n // prefer @id\n prefs.push.apply(prefs, ['@id', '@vocab']);\n }\n } else {\n prefs.push(typeOrLanguageValue);\n\n // consider direction only\n const langDir = prefs.find(el => el.includes('_'));\n if(langDir) {\n // consider _dir portion\n prefs.push(langDir.replace(/^[^_]+_/, '_'));\n }\n }\n prefs.push('@none');\n\n const containerMap = activeCtx.inverse[iri];\n for(const container of containers) {\n // if container not available in the map, continue\n if(!(container in containerMap)) {\n continue;\n }\n\n const typeOrLanguageValueMap = containerMap[container][typeOrLanguage];\n for(const pref of prefs) {\n // if type/language option not available in the map, continue\n if(!(pref in typeOrLanguageValueMap)) {\n continue;\n }\n\n // select term\n return typeOrLanguageValueMap[pref];\n }\n }\n\n return null;\n}\n\n/**\n * The value of `@nest` in the term definition must either be `@nest`, or a term\n * which resolves to `@nest`.\n *\n * @param activeCtx the active context.\n * @param nestProperty a term in the active context or `@nest`.\n * @param {Object} [options] - processing options.\n */\nfunction _checkNestProperty(activeCtx, nestProperty, options) {\n if(_expandIri(activeCtx, nestProperty, {vocab: true}, options) !== '@nest') {\n throw new JsonLdError(\n 'JSON-LD compact error; nested property must have an @nest value ' +\n 'resolving to @nest.',\n 'jsonld.SyntaxError', {code: 'invalid @nest value'});\n }\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nconst XSD = 'http://www.w3.org/2001/XMLSchema#';\n\nmodule.exports = {\n // TODO: Deprecated and will be removed later. Use LINK_HEADER_CONTEXT.\n LINK_HEADER_REL: 'http://www.w3.org/ns/json-ld#context',\n\n LINK_HEADER_CONTEXT: 'http://www.w3.org/ns/json-ld#context',\n\n RDF,\n RDF_LIST: RDF + 'List',\n RDF_FIRST: RDF + 'first',\n RDF_REST: RDF + 'rest',\n RDF_NIL: RDF + 'nil',\n RDF_TYPE: RDF + 'type',\n RDF_PLAIN_LITERAL: RDF + 'PlainLiteral',\n RDF_XML_LITERAL: RDF + 'XMLLiteral',\n RDF_JSON_LITERAL: RDF + 'JSON',\n RDF_OBJECT: RDF + 'object',\n RDF_LANGSTRING: RDF + 'langString',\n\n XSD,\n XSD_BOOLEAN: XSD + 'boolean',\n XSD_DOUBLE: XSD + 'double',\n XSD_INTEGER: XSD + 'integer',\n XSD_STRING: XSD + 'string',\n};\n","/*\n * Copyright (c) 2017-2019 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst util = require('./util');\nconst JsonLdError = require('./JsonLdError');\n\nconst {\n isArray: _isArray,\n isObject: _isObject,\n isString: _isString,\n isUndefined: _isUndefined\n} = require('./types');\n\nconst {\n isAbsolute: _isAbsoluteIri,\n isRelative: _isRelativeIri,\n prependBase\n} = require('./url');\n\nconst {\n handleEvent: _handleEvent\n} = require('./events');\n\nconst {\n REGEX_BCP47,\n REGEX_KEYWORD,\n asArray: _asArray,\n compareShortestLeast: _compareShortestLeast\n} = require('./util');\n\nconst INITIAL_CONTEXT_CACHE = new Map();\nconst INITIAL_CONTEXT_CACHE_MAX_SIZE = 10000;\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Processes a local context and returns a new active context.\n *\n * @param activeCtx the current active context.\n * @param localCtx the local context to process.\n * @param options the context processing options.\n * @param propagate `true` if `false`, retains any previously defined term,\n * which can be rolled back when the descending into a new node object.\n * @param overrideProtected `false` allows protected terms to be modified.\n *\n * @return a Promise that resolves to the new active context.\n */\napi.process = async ({\n activeCtx, localCtx, options,\n propagate = true,\n overrideProtected = false,\n cycles = new Set()\n}) => {\n // normalize local context to an array of @context objects\n if(_isObject(localCtx) && '@context' in localCtx &&\n _isArray(localCtx['@context'])) {\n localCtx = localCtx['@context'];\n }\n const ctxs = _asArray(localCtx);\n\n // no contexts in array, return current active context w/o changes\n if(ctxs.length === 0) {\n return activeCtx;\n }\n\n // event handler for capturing events to replay when using a cached context\n const events = [];\n const eventCaptureHandler = [\n ({event, next}) => {\n events.push(event);\n next();\n }\n ];\n // chain to original handler\n if(options.eventHandler) {\n eventCaptureHandler.push(options.eventHandler);\n }\n // store original options to use when replaying events\n const originalOptions = options;\n // shallow clone options with event capture handler\n options = {...options, eventHandler: eventCaptureHandler};\n\n // resolve contexts\n const resolved = await options.contextResolver.resolve({\n activeCtx,\n context: localCtx,\n documentLoader: options.documentLoader,\n base: options.base\n });\n\n // override propagate if first resolved context has `@propagate`\n if(_isObject(resolved[0].document) &&\n typeof resolved[0].document['@propagate'] === 'boolean') {\n // retrieve early, error checking done later\n propagate = resolved[0].document['@propagate'];\n }\n\n // process each context in order, update active context\n // on each iteration to ensure proper caching\n let rval = activeCtx;\n\n // track the previous context\n // if not propagating, make sure rval has a previous context\n if(!propagate && !rval.previousContext) {\n // clone `rval` context before updating\n rval = rval.clone();\n rval.previousContext = activeCtx;\n }\n\n for(const resolvedContext of resolved) {\n let {document: ctx} = resolvedContext;\n\n // update active context to one computed from last iteration\n activeCtx = rval;\n\n // reset to initial context\n if(ctx === null) {\n // We can't nullify if there are protected terms and we're\n // not allowing overrides (e.g. processing a property term scoped context)\n if(!overrideProtected && Object.keys(activeCtx.protected).length !== 0) {\n throw new JsonLdError(\n 'Tried to nullify a context with protected terms outside of ' +\n 'a term definition.',\n 'jsonld.SyntaxError',\n {code: 'invalid context nullification'});\n }\n rval = activeCtx = api.getInitialContext(options).clone();\n continue;\n }\n\n // get processed context from cache if available\n const processed = resolvedContext.getProcessed(activeCtx);\n if(processed) {\n if(originalOptions.eventHandler) {\n // replay events with original non-capturing options\n for(const event of processed.events) {\n _handleEvent({event, options: originalOptions});\n }\n }\n\n rval = activeCtx = processed.context;\n continue;\n }\n\n // dereference @context key if present\n if(_isObject(ctx) && '@context' in ctx) {\n ctx = ctx['@context'];\n }\n\n // context must be an object by now, all URLs retrieved before this call\n if(!_isObject(ctx)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context must be an object.',\n 'jsonld.SyntaxError', {code: 'invalid local context', context: ctx});\n }\n\n // TODO: there is likely a `previousContext` cloning optimization that\n // could be applied here (no need to copy it under certain conditions)\n\n // clone context before updating it\n rval = rval.clone();\n\n // define context mappings for keys in local context\n const defined = new Map();\n\n // handle @version\n if('@version' in ctx) {\n if(ctx['@version'] !== 1.1) {\n throw new JsonLdError(\n 'Unsupported JSON-LD version: ' + ctx['@version'],\n 'jsonld.UnsupportedVersion',\n {code: 'invalid @version value', context: ctx});\n }\n if(activeCtx.processingMode &&\n activeCtx.processingMode === 'json-ld-1.0') {\n throw new JsonLdError(\n '@version: ' + ctx['@version'] + ' not compatible with ' +\n activeCtx.processingMode,\n 'jsonld.ProcessingModeConflict',\n {code: 'processing mode conflict', context: ctx});\n }\n rval.processingMode = 'json-ld-1.1';\n rval['@version'] = ctx['@version'];\n defined.set('@version', true);\n }\n\n // if not set explicitly, set processingMode to \"json-ld-1.1\"\n rval.processingMode =\n rval.processingMode || activeCtx.processingMode;\n\n // handle @base\n if('@base' in ctx) {\n let base = ctx['@base'];\n\n if(base === null || _isAbsoluteIri(base)) {\n // no action\n } else if(_isRelativeIri(base)) {\n base = prependBase(rval['@base'], base);\n } else {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; the value of \"@base\" in a ' +\n '@context must be an absolute IRI, a relative IRI, or null.',\n 'jsonld.SyntaxError', {code: 'invalid base IRI', context: ctx});\n }\n\n rval['@base'] = base;\n defined.set('@base', true);\n }\n\n // handle @vocab\n if('@vocab' in ctx) {\n const value = ctx['@vocab'];\n if(value === null) {\n delete rval['@vocab'];\n } else if(!_isString(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; the value of \"@vocab\" in a ' +\n '@context must be a string or null.',\n 'jsonld.SyntaxError', {code: 'invalid vocab mapping', context: ctx});\n } else if(!_isAbsoluteIri(value) && api.processingMode(rval, 1.0)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; the value of \"@vocab\" in a ' +\n '@context must be an absolute IRI.',\n 'jsonld.SyntaxError', {code: 'invalid vocab mapping', context: ctx});\n } else {\n const vocab = _expandIri(rval, value, {vocab: true, base: true},\n undefined, undefined, options);\n if(!_isAbsoluteIri(vocab)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative @vocab reference',\n level: 'warning',\n message: 'Relative @vocab reference found.',\n details: {\n vocab\n }\n },\n options\n });\n }\n }\n rval['@vocab'] = vocab;\n }\n defined.set('@vocab', true);\n }\n\n // handle @language\n if('@language' in ctx) {\n const value = ctx['@language'];\n if(value === null) {\n delete rval['@language'];\n } else if(!_isString(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; the value of \"@language\" in a ' +\n '@context must be a string or null.',\n 'jsonld.SyntaxError',\n {code: 'invalid default language', context: ctx});\n } else {\n if(!value.match(REGEX_BCP47)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid @language value',\n level: 'warning',\n message: '@language value must be valid BCP47.',\n details: {\n language: value\n }\n },\n options\n });\n }\n }\n rval['@language'] = value.toLowerCase();\n }\n defined.set('@language', true);\n }\n\n // handle @direction\n if('@direction' in ctx) {\n const value = ctx['@direction'];\n if(activeCtx.processingMode === 'json-ld-1.0') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @direction not compatible with ' +\n activeCtx.processingMode,\n 'jsonld.SyntaxError',\n {code: 'invalid context member', context: ctx});\n }\n if(value === null) {\n delete rval['@direction'];\n } else if(value !== 'ltr' && value !== 'rtl') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; the value of \"@direction\" in a ' +\n '@context must be null, \"ltr\", or \"rtl\".',\n 'jsonld.SyntaxError',\n {code: 'invalid base direction', context: ctx});\n } else {\n rval['@direction'] = value;\n }\n defined.set('@direction', true);\n }\n\n // handle @propagate\n // note: we've already extracted it, here we just do error checking\n if('@propagate' in ctx) {\n const value = ctx['@propagate'];\n if(activeCtx.processingMode === 'json-ld-1.0') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @propagate not compatible with ' +\n activeCtx.processingMode,\n 'jsonld.SyntaxError',\n {code: 'invalid context entry', context: ctx});\n }\n if(typeof value !== 'boolean') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @propagate value must be a boolean.',\n 'jsonld.SyntaxError',\n {code: 'invalid @propagate value', context: localCtx});\n }\n defined.set('@propagate', true);\n }\n\n // handle @import\n if('@import' in ctx) {\n const value = ctx['@import'];\n if(activeCtx.processingMode === 'json-ld-1.0') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @import not compatible with ' +\n activeCtx.processingMode,\n 'jsonld.SyntaxError',\n {code: 'invalid context entry', context: ctx});\n }\n if(!_isString(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @import must be a string.',\n 'jsonld.SyntaxError',\n {code: 'invalid @import value', context: localCtx});\n }\n\n // resolve contexts\n const resolvedImport = await options.contextResolver.resolve({\n activeCtx,\n context: value,\n documentLoader: options.documentLoader,\n base: options.base\n });\n if(resolvedImport.length !== 1) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @import must reference a single context.',\n 'jsonld.SyntaxError',\n {code: 'invalid remote context', context: localCtx});\n }\n const processedImport = resolvedImport[0].getProcessed(activeCtx);\n if(processedImport) {\n // Note: if the same context were used in this active context\n // as a reference context, then processed_input might not\n // be a dict.\n ctx = processedImport;\n } else {\n const importCtx = resolvedImport[0].document;\n if('@import' in importCtx) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax: ' +\n 'imported context must not include @import.',\n 'jsonld.SyntaxError',\n {code: 'invalid context entry', context: localCtx});\n }\n\n // merge ctx into importCtx and replace rval with the result\n for(const key in importCtx) {\n if(!ctx.hasOwnProperty(key)) {\n ctx[key] = importCtx[key];\n }\n }\n\n // Note: this could potenially conflict if the import\n // were used in the same active context as a referenced\n // context and an import. In this case, we\n // could override the cached result, but seems unlikely.\n resolvedImport[0].setProcessed(activeCtx, ctx);\n }\n\n defined.set('@import', true);\n }\n\n // handle @protected; determine whether this sub-context is declaring\n // all its terms to be \"protected\" (exceptions can be made on a\n // per-definition basis)\n defined.set('@protected', ctx['@protected'] || false);\n\n // process all other keys\n for(const key in ctx) {\n api.createTermDefinition({\n activeCtx: rval,\n localCtx: ctx,\n term: key,\n defined,\n options,\n overrideProtected\n });\n\n if(_isObject(ctx[key]) && '@context' in ctx[key]) {\n const keyCtx = ctx[key]['@context'];\n let process = true;\n if(_isString(keyCtx)) {\n const url = prependBase(options.base, keyCtx);\n // track processed contexts to avoid scoped context recursion\n if(cycles.has(url)) {\n process = false;\n } else {\n cycles.add(url);\n }\n }\n // parse context to validate\n if(process) {\n try {\n await api.process({\n activeCtx: rval.clone(),\n localCtx: ctx[key]['@context'],\n overrideProtected: true,\n options,\n cycles\n });\n } catch(e) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; invalid scoped context.',\n 'jsonld.SyntaxError',\n {\n code: 'invalid scoped context',\n context: ctx[key]['@context'],\n term: key\n });\n }\n }\n }\n }\n\n // cache processed result\n resolvedContext.setProcessed(activeCtx, {\n context: rval,\n events\n });\n }\n\n return rval;\n};\n\n/**\n * Creates a term definition during context processing.\n *\n * @param activeCtx the current active context.\n * @param localCtx the local context being processed.\n * @param term the term in the local context to define the mapping for.\n * @param defined a map of defining/defined keys to detect cycles and prevent\n * double definitions.\n * @param {Object} [options] - creation options.\n * @param overrideProtected `false` allows protected terms to be modified.\n */\napi.createTermDefinition = ({\n activeCtx,\n localCtx,\n term,\n defined,\n options,\n overrideProtected = false,\n}) => {\n if(defined.has(term)) {\n // term already defined\n if(defined.get(term)) {\n return;\n }\n // cycle detected\n throw new JsonLdError(\n 'Cyclical context definition detected.',\n 'jsonld.CyclicalContext',\n {code: 'cyclic IRI mapping', context: localCtx, term});\n }\n\n // now defining term\n defined.set(term, false);\n\n // get context term value\n let value;\n if(localCtx.hasOwnProperty(term)) {\n value = localCtx[term];\n }\n\n if(term === '@type' &&\n _isObject(value) &&\n (value['@container'] || '@set') === '@set' &&\n api.processingMode(activeCtx, 1.1)) {\n\n const validKeys = ['@container', '@id', '@protected'];\n const keys = Object.keys(value);\n if(keys.length === 0 || keys.some(k => !validKeys.includes(k))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; keywords cannot be overridden.',\n 'jsonld.SyntaxError',\n {code: 'keyword redefinition', context: localCtx, term});\n }\n } else if(api.isKeyword(term)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; keywords cannot be overridden.',\n 'jsonld.SyntaxError',\n {code: 'keyword redefinition', context: localCtx, term});\n } else if(term.match(REGEX_KEYWORD)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'reserved term',\n level: 'warning',\n message:\n 'Terms beginning with \"@\" are ' +\n 'reserved for future use and dropped.',\n details: {\n term\n }\n },\n options\n });\n }\n return;\n } else if(term === '') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a term cannot be an empty string.',\n 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n\n // keep reference to previous mapping for potential `@protected` check\n const previousMapping = activeCtx.mappings.get(term);\n\n // remove old mapping\n if(activeCtx.mappings.has(term)) {\n activeCtx.mappings.delete(term);\n }\n\n // convert short-hand value to object w/@id\n let simpleTerm = false;\n if(_isString(value) || value === null) {\n simpleTerm = true;\n value = {'@id': value};\n }\n\n if(!_isObject(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context term values must be ' +\n 'strings or objects.',\n 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n\n // create new mapping\n const mapping = {};\n activeCtx.mappings.set(term, mapping);\n mapping.reverse = false;\n\n // make sure term definition only has expected keywords\n const validKeys = ['@container', '@id', '@language', '@reverse', '@type'];\n\n // JSON-LD 1.1 support\n if(api.processingMode(activeCtx, 1.1)) {\n validKeys.push(\n '@context', '@direction', '@index', '@nest', '@prefix', '@protected');\n }\n\n for(const kw in value) {\n if(!validKeys.includes(kw)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a term definition must not contain ' + kw,\n 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n }\n\n // always compute whether term has a colon as an optimization for\n // _compactIri\n const colon = term.indexOf(':');\n mapping._termHasColon = (colon > 0);\n\n if('@reverse' in value) {\n if('@id' in value) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @reverse term definition must not ' +\n 'contain @id.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property', context: localCtx});\n }\n if('@nest' in value) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @reverse term definition must not ' +\n 'contain @nest.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property', context: localCtx});\n }\n const reverse = value['@reverse'];\n if(!_isString(reverse)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @context @reverse value must be a string.',\n 'jsonld.SyntaxError', {code: 'invalid IRI mapping', context: localCtx});\n }\n\n if(reverse.match(REGEX_KEYWORD)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'reserved @reverse value',\n level: 'warning',\n message:\n '@reverse values beginning with \"@\" are ' +\n 'reserved for future use and dropped.',\n details: {\n reverse\n }\n },\n options\n });\n }\n if(previousMapping) {\n activeCtx.mappings.set(term, previousMapping);\n } else {\n activeCtx.mappings.delete(term);\n }\n return;\n }\n\n // expand and add @id mapping\n const id = _expandIri(\n activeCtx, reverse, {vocab: true, base: false}, localCtx, defined,\n options);\n if(!_isAbsoluteIri(id)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @context @reverse value must be an ' +\n 'absolute IRI or a blank node identifier.',\n 'jsonld.SyntaxError', {code: 'invalid IRI mapping', context: localCtx});\n }\n\n mapping['@id'] = id;\n mapping.reverse = true;\n } else if('@id' in value) {\n let id = value['@id'];\n if(id && !_isString(id)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @context @id value must be an array ' +\n 'of strings or a string.',\n 'jsonld.SyntaxError', {code: 'invalid IRI mapping', context: localCtx});\n }\n if(id === null) {\n // reserve a null term, which may be protected\n mapping['@id'] = null;\n } else if(!api.isKeyword(id) && id.match(REGEX_KEYWORD)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'reserved @id value',\n level: 'warning',\n message:\n '@id values beginning with \"@\" are ' +\n 'reserved for future use and dropped.',\n details: {\n id\n }\n },\n options\n });\n }\n if(previousMapping) {\n activeCtx.mappings.set(term, previousMapping);\n } else {\n activeCtx.mappings.delete(term);\n }\n return;\n } else if(id !== term) {\n // expand and add @id mapping\n id = _expandIri(\n activeCtx, id, {vocab: true, base: false}, localCtx, defined, options);\n if(!_isAbsoluteIri(id) && !api.isKeyword(id)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @context @id value must be an ' +\n 'absolute IRI, a blank node identifier, or a keyword.',\n 'jsonld.SyntaxError',\n {code: 'invalid IRI mapping', context: localCtx});\n }\n\n // if term has the form of an IRI it must map the same\n if(term.match(/(?::[^:])|\\//)) {\n const termDefined = new Map(defined).set(term, true);\n const termIri = _expandIri(\n activeCtx, term, {vocab: true, base: false},\n localCtx, termDefined, options);\n if(termIri !== id) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; term in form of IRI must ' +\n 'expand to definition.',\n 'jsonld.SyntaxError',\n {code: 'invalid IRI mapping', context: localCtx});\n }\n }\n\n mapping['@id'] = id;\n // indicate if this term may be used as a compact IRI prefix\n mapping._prefix = (simpleTerm &&\n !mapping._termHasColon &&\n id.match(/[:\\/\\?#\\[\\]@]$/));\n }\n }\n\n if(!('@id' in mapping)) {\n // see if the term has a prefix\n if(mapping._termHasColon) {\n const prefix = term.substr(0, colon);\n if(localCtx.hasOwnProperty(prefix)) {\n // define parent prefix\n api.createTermDefinition({\n activeCtx, localCtx, term: prefix, defined, options\n });\n }\n\n if(activeCtx.mappings.has(prefix)) {\n // set @id based on prefix parent\n const suffix = term.substr(colon + 1);\n mapping['@id'] = activeCtx.mappings.get(prefix)['@id'] + suffix;\n } else {\n // term is an absolute IRI\n mapping['@id'] = term;\n }\n } else if(term === '@type') {\n // Special case, were we've previously determined that container is @set\n mapping['@id'] = term;\n } else {\n // non-IRIs *must* define @ids if @vocab is not available\n if(!('@vocab' in activeCtx)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context terms must define an @id.',\n 'jsonld.SyntaxError',\n {code: 'invalid IRI mapping', context: localCtx, term});\n }\n // prepend vocab to term\n mapping['@id'] = activeCtx['@vocab'] + term;\n }\n }\n\n // Handle term protection\n if(value['@protected'] === true ||\n (defined.get('@protected') === true && value['@protected'] !== false)) {\n activeCtx.protected[term] = true;\n mapping.protected = true;\n }\n\n // IRI mapping now defined\n defined.set(term, true);\n\n if('@type' in value) {\n let type = value['@type'];\n if(!_isString(type)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an @context @type value must be a string.',\n 'jsonld.SyntaxError',\n {code: 'invalid type mapping', context: localCtx});\n }\n\n if((type === '@json' || type === '@none')) {\n if(api.processingMode(activeCtx, 1.0)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an @context @type value must not be ' +\n `\"${type}\" in JSON-LD 1.0 mode.`,\n 'jsonld.SyntaxError',\n {code: 'invalid type mapping', context: localCtx});\n }\n } else if(type !== '@id' && type !== '@vocab') {\n // expand @type to full IRI\n type = _expandIri(\n activeCtx, type, {vocab: true, base: false}, localCtx, defined,\n options);\n if(!_isAbsoluteIri(type)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an @context @type value must be an ' +\n 'absolute IRI.',\n 'jsonld.SyntaxError',\n {code: 'invalid type mapping', context: localCtx});\n }\n if(type.indexOf('_:') === 0) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an @context @type value must be an IRI, ' +\n 'not a blank node identifier.',\n 'jsonld.SyntaxError',\n {code: 'invalid type mapping', context: localCtx});\n }\n }\n\n // add @type to mapping\n mapping['@type'] = type;\n }\n\n if('@container' in value) {\n // normalize container to an array form\n const container = _isString(value['@container']) ?\n [value['@container']] : (value['@container'] || []);\n const validContainers = ['@list', '@set', '@index', '@language'];\n let isValid = true;\n const hasSet = container.includes('@set');\n\n // JSON-LD 1.1 support\n if(api.processingMode(activeCtx, 1.1)) {\n validContainers.push('@graph', '@id', '@type');\n\n // check container length\n if(container.includes('@list')) {\n if(container.length !== 1) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @container with @list must ' +\n 'have no other values',\n 'jsonld.SyntaxError',\n {code: 'invalid container mapping', context: localCtx});\n }\n } else if(container.includes('@graph')) {\n if(container.some(key =>\n key !== '@graph' && key !== '@id' && key !== '@index' &&\n key !== '@set')) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @container with @graph must ' +\n 'have no other values other than @id, @index, and @set',\n 'jsonld.SyntaxError',\n {code: 'invalid container mapping', context: localCtx});\n }\n } else {\n // otherwise, container may also include @set\n isValid &= container.length <= (hasSet ? 2 : 1);\n }\n\n if(container.includes('@type')) {\n // If mapping does not have an @type,\n // set it to @id\n mapping['@type'] = mapping['@type'] || '@id';\n\n // type mapping must be either @id or @vocab\n if(!['@id', '@vocab'].includes(mapping['@type'])) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; container: @type requires @type to be ' +\n '@id or @vocab.',\n 'jsonld.SyntaxError',\n {code: 'invalid type mapping', context: localCtx});\n }\n }\n } else {\n // in JSON-LD 1.0, container must not be an array (it must be a string,\n // which is one of the validContainers)\n isValid &= !_isArray(value['@container']);\n\n // check container length\n isValid &= container.length <= 1;\n }\n\n // check against valid containers\n isValid &= container.every(c => validContainers.includes(c));\n\n // @set not allowed with @list\n isValid &= !(hasSet && container.includes('@list'));\n\n if(!isValid) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @container value must be ' +\n 'one of the following: ' + validContainers.join(', '),\n 'jsonld.SyntaxError',\n {code: 'invalid container mapping', context: localCtx});\n }\n\n if(mapping.reverse &&\n !container.every(c => ['@index', '@set'].includes(c))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @container value for a @reverse ' +\n 'type definition must be @index or @set.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property', context: localCtx});\n }\n\n // add @container to mapping\n mapping['@container'] = container;\n }\n\n // property indexing\n if('@index' in value) {\n if(!('@container' in value) || !mapping['@container'].includes('@index')) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @index without @index in @container: ' +\n `\"${value['@index']}\" on term \"${term}\".`, 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n if(!_isString(value['@index']) || value['@index'].indexOf('@') === 0) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @index must expand to an IRI: ' +\n `\"${value['@index']}\" on term \"${term}\".`, 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n mapping['@index'] = value['@index'];\n }\n\n // scoped contexts\n if('@context' in value) {\n mapping['@context'] = value['@context'];\n }\n\n if('@language' in value && !('@type' in value)) {\n let language = value['@language'];\n if(language !== null && !_isString(language)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @language value must be ' +\n 'a string or null.', 'jsonld.SyntaxError',\n {code: 'invalid language mapping', context: localCtx});\n }\n\n // add @language to mapping\n if(language !== null) {\n language = language.toLowerCase();\n }\n mapping['@language'] = language;\n }\n\n // term may be used as a prefix\n if('@prefix' in value) {\n if(term.match(/:|\\//)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @prefix used on a compact IRI term',\n 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n if(api.isKeyword(mapping['@id'])) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; keywords may not be used as prefixes',\n 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n if(typeof value['@prefix'] === 'boolean') {\n mapping._prefix = value['@prefix'] === true;\n } else {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context value for @prefix must be boolean',\n 'jsonld.SyntaxError',\n {code: 'invalid @prefix value', context: localCtx});\n }\n }\n\n if('@direction' in value) {\n const direction = value['@direction'];\n if(direction !== null && direction !== 'ltr' && direction !== 'rtl') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @direction value must be ' +\n 'null, \"ltr\", or \"rtl\".',\n 'jsonld.SyntaxError',\n {code: 'invalid base direction', context: localCtx});\n }\n mapping['@direction'] = direction;\n }\n\n if('@nest' in value) {\n const nest = value['@nest'];\n if(!_isString(nest) || (nest !== '@nest' && nest.indexOf('@') === 0)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @nest value must be ' +\n 'a string which is not a keyword other than @nest.',\n 'jsonld.SyntaxError',\n {code: 'invalid @nest value', context: localCtx});\n }\n mapping['@nest'] = nest;\n }\n\n // disallow aliasing @context and @preserve\n const id = mapping['@id'];\n if(id === '@context' || id === '@preserve') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context and @preserve cannot be aliased.',\n 'jsonld.SyntaxError', {code: 'invalid keyword alias', context: localCtx});\n }\n\n // Check for overriding protected terms\n if(previousMapping && previousMapping.protected && !overrideProtected) {\n // force new term to continue to be protected and see if the mappings would\n // be equal\n activeCtx.protected[term] = true;\n mapping.protected = true;\n if(!_deepCompare(previousMapping, mapping)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; tried to redefine a protected term.',\n 'jsonld.SyntaxError',\n {code: 'protected term redefinition', context: localCtx, term});\n }\n }\n};\n\n/**\n * Expands a string to a full IRI. The string may be a term, a prefix, a\n * relative IRI, or an absolute IRI. The associated absolute IRI will be\n * returned.\n *\n * @param activeCtx the current active context.\n * @param value the string to expand.\n * @param relativeTo options for how to resolve relative IRIs:\n * base: true to resolve against the base IRI, false not to.\n * vocab: true to concatenate after @vocab, false not to.\n * @param {Object} [options] - processing options.\n *\n * @return the expanded value.\n */\napi.expandIri = (activeCtx, value, relativeTo, options) => {\n return _expandIri(activeCtx, value, relativeTo, undefined, undefined,\n options);\n};\n\n/**\n * Expands a string to a full IRI. The string may be a term, a prefix, a\n * relative IRI, or an absolute IRI. The associated absolute IRI will be\n * returned.\n *\n * @param activeCtx the current active context.\n * @param value the string to expand.\n * @param relativeTo options for how to resolve relative IRIs:\n * base: true to resolve against the base IRI, false not to.\n * vocab: true to concatenate after @vocab, false not to.\n * @param localCtx the local context being processed (only given if called\n * during context processing).\n * @param defined a map for tracking cycles in context definitions (only given\n * if called during context processing).\n * @param {Object} [options] - processing options.\n *\n * @return the expanded value.\n */\nfunction _expandIri(activeCtx, value, relativeTo, localCtx, defined, options) {\n // already expanded\n if(value === null || !_isString(value) || api.isKeyword(value)) {\n return value;\n }\n\n // ignore non-keyword things that look like a keyword\n if(value.match(REGEX_KEYWORD)) {\n return null;\n }\n\n // define term dependency if not defined\n if(localCtx && localCtx.hasOwnProperty(value) &&\n defined.get(value) !== true) {\n api.createTermDefinition({\n activeCtx, localCtx, term: value, defined, options\n });\n }\n\n relativeTo = relativeTo || {};\n if(relativeTo.vocab) {\n const mapping = activeCtx.mappings.get(value);\n\n // value is explicitly ignored with a null mapping\n if(mapping === null) {\n return null;\n }\n\n if(_isObject(mapping) && '@id' in mapping) {\n // value is a term\n return mapping['@id'];\n }\n }\n\n // split value into prefix:suffix\n const colon = value.indexOf(':');\n if(colon > 0) {\n const prefix = value.substr(0, colon);\n const suffix = value.substr(colon + 1);\n\n // do not expand blank nodes (prefix of '_') or already-absolute\n // IRIs (suffix of '//')\n if(prefix === '_' || suffix.indexOf('//') === 0) {\n return value;\n }\n\n // prefix dependency not defined, define it\n if(localCtx && localCtx.hasOwnProperty(prefix)) {\n api.createTermDefinition({\n activeCtx, localCtx, term: prefix, defined, options\n });\n }\n\n // use mapping if prefix is defined\n const mapping = activeCtx.mappings.get(prefix);\n if(mapping && mapping._prefix) {\n return mapping['@id'] + suffix;\n }\n\n // already absolute IRI\n if(_isAbsoluteIri(value)) {\n return value;\n }\n }\n\n // A flag that captures whether the iri being expanded is\n // the value for an @type\n //let typeExpansion = false;\n\n //if(options !== undefined && options.typeExpansion !== undefined) {\n // typeExpansion = options.typeExpansion;\n //}\n\n if(relativeTo.vocab && '@vocab' in activeCtx) {\n // prepend vocab\n const prependedResult = activeCtx['@vocab'] + value;\n // FIXME: needed? may be better as debug event.\n /*\n if(options && options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'prepending @vocab during expansion',\n level: 'info',\n message: 'Prepending @vocab during expansion.',\n details: {\n type: '@vocab',\n vocab: activeCtx['@vocab'],\n value,\n result: prependedResult,\n typeExpansion\n }\n },\n options\n });\n }\n */\n // the null case preserves value as potentially relative\n value = prependedResult;\n } else if(relativeTo.base) {\n // prepend base\n let prependedResult;\n let base;\n if('@base' in activeCtx) {\n if(activeCtx['@base']) {\n base = prependBase(options.base, activeCtx['@base']);\n prependedResult = prependBase(base, value);\n } else {\n base = activeCtx['@base'];\n prependedResult = value;\n }\n } else {\n base = options.base;\n prependedResult = prependBase(options.base, value);\n }\n // FIXME: needed? may be better as debug event.\n /*\n if(options && options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'prepending @base during expansion',\n level: 'info',\n message: 'Prepending @base during expansion.',\n details: {\n type: '@base',\n base,\n value,\n result: prependedResult,\n typeExpansion\n }\n },\n options\n });\n }\n */\n // the null case preserves value as potentially relative\n value = prependedResult;\n }\n\n // FIXME: duplicate? needed? maybe just enable in a verbose debug mode\n /*\n if(!_isAbsoluteIri(value) && options && options.eventHandler) {\n // emit event indicating a relative IRI was found, which can result in it\n // being dropped when converting to other RDF representations\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative IRI after expansion',\n // FIXME: what level?\n level: 'warning',\n message: 'Relative IRI after expansion.',\n details: {\n relativeIri: value,\n typeExpansion\n }\n },\n options\n });\n // NOTE: relative reference events emitted at calling sites as needed\n }\n */\n\n return value;\n}\n\n/**\n * Gets the initial context.\n *\n * @param options the options to use:\n * [base] the document base IRI.\n *\n * @return the initial context.\n */\napi.getInitialContext = options => {\n const key = JSON.stringify({processingMode: options.processingMode});\n const cached = INITIAL_CONTEXT_CACHE.get(key);\n if(cached) {\n return cached;\n }\n\n const initialContext = {\n processingMode: options.processingMode,\n mappings: new Map(),\n inverse: null,\n getInverse: _createInverseContext,\n clone: _cloneActiveContext,\n revertToPreviousContext: _revertToPreviousContext,\n protected: {}\n };\n // TODO: consider using LRU cache instead\n if(INITIAL_CONTEXT_CACHE.size === INITIAL_CONTEXT_CACHE_MAX_SIZE) {\n // clear whole cache -- assumes scenario where the cache fills means\n // the cache isn't being used very efficiently anyway\n INITIAL_CONTEXT_CACHE.clear();\n }\n INITIAL_CONTEXT_CACHE.set(key, initialContext);\n return initialContext;\n\n /**\n * Generates an inverse context for use in the compaction algorithm, if\n * not already generated for the given active context.\n *\n * @return the inverse context.\n */\n function _createInverseContext() {\n const activeCtx = this;\n\n // lazily create inverse\n if(activeCtx.inverse) {\n return activeCtx.inverse;\n }\n const inverse = activeCtx.inverse = {};\n\n // variables for building fast CURIE map\n const fastCurieMap = activeCtx.fastCurieMap = {};\n const irisToTerms = {};\n\n // handle default language\n const defaultLanguage = (activeCtx['@language'] || '@none').toLowerCase();\n\n // handle default direction\n const defaultDirection = activeCtx['@direction'];\n\n // create term selections for each mapping in the context, ordered by\n // shortest and then lexicographically least\n const mappings = activeCtx.mappings;\n const terms = [...mappings.keys()].sort(_compareShortestLeast);\n for(const term of terms) {\n const mapping = mappings.get(term);\n if(mapping === null) {\n continue;\n }\n\n let container = mapping['@container'] || '@none';\n container = [].concat(container).sort().join('');\n\n if(mapping['@id'] === null) {\n continue;\n }\n // iterate over every IRI in the mapping\n const ids = _asArray(mapping['@id']);\n for(const iri of ids) {\n let entry = inverse[iri];\n const isKeyword = api.isKeyword(iri);\n\n if(!entry) {\n // initialize entry\n inverse[iri] = entry = {};\n\n if(!isKeyword && !mapping._termHasColon) {\n // init IRI to term map and fast CURIE prefixes\n irisToTerms[iri] = [term];\n const fastCurieEntry = {iri, terms: irisToTerms[iri]};\n if(iri[0] in fastCurieMap) {\n fastCurieMap[iri[0]].push(fastCurieEntry);\n } else {\n fastCurieMap[iri[0]] = [fastCurieEntry];\n }\n }\n } else if(!isKeyword && !mapping._termHasColon) {\n // add IRI to term match\n irisToTerms[iri].push(term);\n }\n\n // add new entry\n if(!entry[container]) {\n entry[container] = {\n '@language': {},\n '@type': {},\n '@any': {}\n };\n }\n entry = entry[container];\n _addPreferredTerm(term, entry['@any'], '@none');\n\n if(mapping.reverse) {\n // term is preferred for values using @reverse\n _addPreferredTerm(term, entry['@type'], '@reverse');\n } else if(mapping['@type'] === '@none') {\n _addPreferredTerm(term, entry['@any'], '@none');\n _addPreferredTerm(term, entry['@language'], '@none');\n _addPreferredTerm(term, entry['@type'], '@none');\n } else if('@type' in mapping) {\n // term is preferred for values using specific type\n _addPreferredTerm(term, entry['@type'], mapping['@type']);\n } else if('@language' in mapping && '@direction' in mapping) {\n // term is preferred for values using specific language and direction\n const language = mapping['@language'];\n const direction = mapping['@direction'];\n if(language && direction) {\n _addPreferredTerm(term, entry['@language'],\n `${language}_${direction}`.toLowerCase());\n } else if(language) {\n _addPreferredTerm(term, entry['@language'], language.toLowerCase());\n } else if(direction) {\n _addPreferredTerm(term, entry['@language'], `_${direction}`);\n } else {\n _addPreferredTerm(term, entry['@language'], '@null');\n }\n } else if('@language' in mapping) {\n _addPreferredTerm(term, entry['@language'],\n (mapping['@language'] || '@null').toLowerCase());\n } else if('@direction' in mapping) {\n if(mapping['@direction']) {\n _addPreferredTerm(term, entry['@language'],\n `_${mapping['@direction']}`);\n } else {\n _addPreferredTerm(term, entry['@language'], '@none');\n }\n } else if(defaultDirection) {\n _addPreferredTerm(term, entry['@language'], `_${defaultDirection}`);\n _addPreferredTerm(term, entry['@language'], '@none');\n _addPreferredTerm(term, entry['@type'], '@none');\n } else {\n // add entries for no type and no language\n _addPreferredTerm(term, entry['@language'], defaultLanguage);\n _addPreferredTerm(term, entry['@language'], '@none');\n _addPreferredTerm(term, entry['@type'], '@none');\n }\n }\n }\n\n // build fast CURIE map\n for(const key in fastCurieMap) {\n _buildIriMap(fastCurieMap, key, 1);\n }\n\n return inverse;\n }\n\n /**\n * Runs a recursive algorithm to build a lookup map for quickly finding\n * potential CURIEs.\n *\n * @param iriMap the map to build.\n * @param key the current key in the map to work on.\n * @param idx the index into the IRI to compare.\n */\n function _buildIriMap(iriMap, key, idx) {\n const entries = iriMap[key];\n const next = iriMap[key] = {};\n\n let iri;\n let letter;\n for(const entry of entries) {\n iri = entry.iri;\n if(idx >= iri.length) {\n letter = '';\n } else {\n letter = iri[idx];\n }\n if(letter in next) {\n next[letter].push(entry);\n } else {\n next[letter] = [entry];\n }\n }\n\n for(const key in next) {\n if(key === '') {\n continue;\n }\n _buildIriMap(next, key, idx + 1);\n }\n }\n\n /**\n * Adds the term for the given entry if not already added.\n *\n * @param term the term to add.\n * @param entry the inverse context typeOrLanguage entry to add to.\n * @param typeOrLanguageValue the key in the entry to add to.\n */\n function _addPreferredTerm(term, entry, typeOrLanguageValue) {\n if(!entry.hasOwnProperty(typeOrLanguageValue)) {\n entry[typeOrLanguageValue] = term;\n }\n }\n\n /**\n * Clones an active context, creating a child active context.\n *\n * @return a clone (child) of the active context.\n */\n function _cloneActiveContext() {\n const child = {};\n child.mappings = util.clone(this.mappings);\n child.clone = this.clone;\n child.inverse = null;\n child.getInverse = this.getInverse;\n child.protected = util.clone(this.protected);\n if(this.previousContext) {\n child.previousContext = this.previousContext.clone();\n }\n child.revertToPreviousContext = this.revertToPreviousContext;\n if('@base' in this) {\n child['@base'] = this['@base'];\n }\n if('@language' in this) {\n child['@language'] = this['@language'];\n }\n if('@vocab' in this) {\n child['@vocab'] = this['@vocab'];\n }\n return child;\n }\n\n /**\n * Reverts any type-scoped context in this active context to the previous\n * context.\n */\n function _revertToPreviousContext() {\n if(!this.previousContext) {\n return this;\n }\n return this.previousContext.clone();\n }\n};\n\n/**\n * Gets the value for the given active context key and type, null if none is\n * set or undefined if none is set and type is '@context'.\n *\n * @param ctx the active context.\n * @param key the context key.\n * @param [type] the type of value to get (eg: '@id', '@type'), if not\n * specified gets the entire entry for a key, null if not found.\n *\n * @return the value, null, or undefined.\n */\napi.getContextValue = (ctx, key, type) => {\n // invalid key\n if(key === null) {\n if(type === '@context') {\n return undefined;\n }\n return null;\n }\n\n // get specific entry information\n if(ctx.mappings.has(key)) {\n const entry = ctx.mappings.get(key);\n\n if(_isUndefined(type)) {\n // return whole entry\n return entry;\n }\n if(entry.hasOwnProperty(type)) {\n // return entry value for type\n return entry[type];\n }\n }\n\n // get default language\n if(type === '@language' && type in ctx) {\n return ctx[type];\n }\n\n // get default direction\n if(type === '@direction' && type in ctx) {\n return ctx[type];\n }\n\n if(type === '@context') {\n return undefined;\n }\n return null;\n};\n\n/**\n * Processing Mode check.\n *\n * @param activeCtx the current active context.\n * @param version the string or numeric version to check.\n *\n * @return boolean.\n */\napi.processingMode = (activeCtx, version) => {\n if(version.toString() >= '1.1') {\n return !activeCtx.processingMode ||\n activeCtx.processingMode >= 'json-ld-' + version.toString();\n } else {\n return activeCtx.processingMode === 'json-ld-1.0';\n }\n};\n\n/**\n * Returns whether or not the given value is a keyword.\n *\n * @param v the value to check.\n *\n * @return true if the value is a keyword, false if not.\n */\napi.isKeyword = v => {\n if(!_isString(v) || v[0] !== '@') {\n return false;\n }\n switch(v) {\n case '@base':\n case '@container':\n case '@context':\n case '@default':\n case '@direction':\n case '@embed':\n case '@explicit':\n case '@graph':\n case '@id':\n case '@included':\n case '@index':\n case '@json':\n case '@language':\n case '@list':\n case '@nest':\n case '@none':\n case '@omitDefault':\n case '@prefix':\n case '@preserve':\n case '@protected':\n case '@requireAll':\n case '@reverse':\n case '@set':\n case '@type':\n case '@value':\n case '@version':\n case '@vocab':\n return true;\n }\n return false;\n};\n\nfunction _deepCompare(x1, x2) {\n // compare `null` or primitive types directly\n if((!(x1 && typeof x1 === 'object')) ||\n (!(x2 && typeof x2 === 'object'))) {\n return x1 === x2;\n }\n // x1 and x2 are objects (also potentially arrays)\n const x1Array = Array.isArray(x1);\n if(x1Array !== Array.isArray(x2)) {\n return false;\n }\n if(x1Array) {\n if(x1.length !== x2.length) {\n return false;\n }\n for(let i = 0; i < x1.length; ++i) {\n if(!_deepCompare(x1[i], x2[i])) {\n return false;\n }\n }\n return true;\n }\n // x1 and x2 are non-array objects\n const k1s = Object.keys(x1);\n const k2s = Object.keys(x2);\n if(k1s.length !== k2s.length) {\n return false;\n }\n for(const k1 in x1) {\n let v1 = x1[k1];\n let v2 = x2[k1];\n // special case: `@container` can be in any order\n if(k1 === '@container') {\n if(Array.isArray(v1) && Array.isArray(v2)) {\n v1 = v1.slice().sort();\n v2 = v2.slice().sort();\n }\n }\n if(!_deepCompare(v1, v2)) {\n return false;\n }\n }\n return true;\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {parseLinkHeader, buildHeaders} = require('../util');\nconst {LINK_HEADER_CONTEXT} = require('../constants');\nconst JsonLdError = require('../JsonLdError');\nconst RequestQueue = require('../RequestQueue');\nconst {prependBase} = require('../url');\n\nconst REGEX_LINK_HEADER = /(^|(\\r\\n))link:/i;\n\n/**\n * Creates a built-in XMLHttpRequest document loader.\n *\n * @param options the options to use:\n * secure: require all URLs to use HTTPS.\n * headers: an object (map) of headers which will be passed as request\n * headers for the requested document. Accept is not allowed.\n * [xhr]: the XMLHttpRequest API to use.\n *\n * @return the XMLHttpRequest document loader.\n */\nmodule.exports = ({\n secure,\n headers = {},\n xhr\n} = {headers: {}}) => {\n headers = buildHeaders(headers);\n const queue = new RequestQueue();\n return queue.wrapLoader(loader);\n\n async function loader(url) {\n if(url.indexOf('http:') !== 0 && url.indexOf('https:') !== 0) {\n throw new JsonLdError(\n 'URL could not be dereferenced; only \"http\" and \"https\" URLs are ' +\n 'supported.',\n 'jsonld.InvalidUrl', {code: 'loading document failed', url});\n }\n if(secure && url.indexOf('https') !== 0) {\n throw new JsonLdError(\n 'URL could not be dereferenced; secure mode is enabled and ' +\n 'the URL\\'s scheme is not \"https\".',\n 'jsonld.InvalidUrl', {code: 'loading document failed', url});\n }\n\n let req;\n try {\n req = await _get(xhr, url, headers);\n } catch(e) {\n throw new JsonLdError(\n 'URL could not be dereferenced, an error occurred.',\n 'jsonld.LoadDocumentError',\n {code: 'loading document failed', url, cause: e});\n }\n\n if(req.status >= 400) {\n throw new JsonLdError(\n 'URL could not be dereferenced: ' + req.statusText,\n 'jsonld.LoadDocumentError', {\n code: 'loading document failed',\n url,\n httpStatusCode: req.status\n });\n }\n\n let doc = {contextUrl: null, documentUrl: url, document: req.response};\n let alternate = null;\n\n // handle Link Header (avoid unsafe header warning by existence testing)\n const contentType = req.getResponseHeader('Content-Type');\n let linkHeader;\n if(REGEX_LINK_HEADER.test(req.getAllResponseHeaders())) {\n linkHeader = req.getResponseHeader('Link');\n }\n if(linkHeader && contentType !== 'application/ld+json') {\n // only 1 related link header permitted\n const linkHeaders = parseLinkHeader(linkHeader);\n const linkedContext = linkHeaders[LINK_HEADER_CONTEXT];\n if(Array.isArray(linkedContext)) {\n throw new JsonLdError(\n 'URL could not be dereferenced, it has more than one ' +\n 'associated HTTP Link Header.',\n 'jsonld.InvalidUrl',\n {code: 'multiple context link headers', url});\n }\n if(linkedContext) {\n doc.contextUrl = linkedContext.target;\n }\n\n // \"alternate\" link header is a redirect\n alternate = linkHeaders.alternate;\n if(alternate &&\n alternate.type == 'application/ld+json' &&\n !(contentType || '').match(/^application\\/(\\w*\\+)?json$/)) {\n doc = await loader(prependBase(url, alternate.target));\n }\n }\n\n return doc;\n }\n};\n\nfunction _get(xhr, url, headers) {\n xhr = xhr || XMLHttpRequest;\n const req = new xhr();\n return new Promise((resolve, reject) => {\n req.onload = () => resolve(req);\n req.onerror = err => reject(err);\n req.open('GET', url, true);\n for(const k in headers) {\n req.setRequestHeader(k, headers[k]);\n }\n req.send();\n });\n}\n","/*\n * Copyright (c) 2020 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst JsonLdError = require('./JsonLdError');\n\nconst {\n isArray: _isArray\n} = require('./types');\n\nconst {\n asArray: _asArray\n} = require('./util');\n\nconst api = {};\nmodule.exports = api;\n\n// default handler, store as null or an array\n// exposed to allow fast external pre-handleEvent() checks\napi.defaultEventHandler = null;\n\n/**\n * Setup event handler.\n *\n * Return an array event handler constructed from an optional safe mode\n * handler, an optional options event handler, and an optional default handler.\n *\n * @param {object} options - processing options\n * {function|object|array} [eventHandler] - an event handler.\n *\n * @return an array event handler.\n */\napi.setupEventHandler = ({options = {}}) => {\n // build in priority order\n const eventHandler = [].concat(\n options.safe ? api.safeEventHandler : [],\n options.eventHandler ? _asArray(options.eventHandler) : [],\n api.defaultEventHandler ? api.defaultEventHandler : []\n );\n // null if no handlers\n return eventHandler.length === 0 ? null : eventHandler;\n};\n\n/**\n * Handle an event.\n *\n * Top level APIs have a common 'eventHandler' option. This option can be a\n * function, array of functions, object mapping event.code to functions (with a\n * default to call next()), or any combination of such handlers. Handlers will\n * be called with an object with an 'event' entry and a 'next' function. Custom\n * handlers should process the event as appropriate. The 'next()' function\n * should be called to let the next handler process the event.\n *\n * NOTE: Only call this function if options.eventHandler is set and is an\n * array of hanlers. This is an optimization. Callers are expected to check\n * for an event handler before constructing events and calling this function.\n *\n * @param {object} event - event structure:\n * {string} code - event code\n * {string} level - severity level, one of: ['warning']\n * {string} message - human readable message\n * {object} details - event specific details\n * @param {object} options - processing options\n * {array} eventHandler - an event handler array.\n */\napi.handleEvent = ({\n event,\n options\n}) => {\n _handle({event, handlers: options.eventHandler});\n};\n\nfunction _handle({event, handlers}) {\n let doNext = true;\n for(let i = 0; doNext && i < handlers.length; ++i) {\n doNext = false;\n const handler = handlers[i];\n if(_isArray(handler)) {\n doNext = _handle({event, handlers: handler});\n } else if(typeof handler === 'function') {\n handler({event, next: () => {\n doNext = true;\n }});\n } else if(typeof handler === 'object') {\n if(event.code in handler) {\n handler[event.code]({event, next: () => {\n doNext = true;\n }});\n } else {\n doNext = true;\n }\n } else {\n throw new JsonLdError(\n 'Invalid event handler.',\n 'jsonld.InvalidEventHandler',\n {event});\n }\n }\n return doNext;\n}\n\nconst _notSafeEventCodes = new Set([\n 'empty object',\n 'free-floating scalar',\n 'invalid @language value',\n 'invalid property',\n // NOTE: spec edge case\n 'null @id value',\n 'null @value value',\n 'object with only @id',\n 'object with only @language',\n 'object with only @list',\n 'object with only @value',\n 'relative @id reference',\n 'relative @type reference',\n 'relative @vocab reference',\n 'reserved @id value',\n 'reserved @reverse value',\n 'reserved term',\n // toRDF\n 'blank node predicate',\n 'relative graph reference',\n 'relative object reference',\n 'relative predicate reference',\n 'relative subject reference'\n]);\n\n// safe handler that rejects unsafe warning conditions\napi.safeEventHandler = function safeEventHandler({event, next}) {\n // fail on all unsafe warnings\n if(event.level === 'warning' && _notSafeEventCodes.has(event.code)) {\n throw new JsonLdError(\n 'Safe mode validation error.',\n 'jsonld.ValidationError',\n {event}\n );\n }\n next();\n};\n\n// logs all events and continues\napi.logEventHandler = function logEventHandler({event, next}) {\n console.log(`EVENT: ${event.message}`, {event});\n next();\n};\n\n// log 'warning' level events\napi.logWarningEventHandler = function logWarningEventHandler({event, next}) {\n if(event.level === 'warning') {\n console.warn(`WARNING: ${event.message}`, {event});\n }\n next();\n};\n\n// fallback to throw errors for any unhandled events\napi.unhandledEventHandler = function unhandledEventHandler({event}) {\n throw new JsonLdError(\n 'No handler for event.',\n 'jsonld.UnhandledEvent',\n {event}\n );\n};\n\n/**\n * Set default event handler.\n *\n * By default, all event are unhandled. It is recommended to pass in an\n * eventHandler into each call. However, this call allows using a default\n * eventHandler when one is not otherwise provided.\n *\n * @param {object} options - default handler options:\n * {function|object|array} eventHandler - a default event handler.\n * falsey to unset.\n */\napi.setDefaultEventHandler = function({eventHandler} = {}) {\n api.defaultEventHandler = eventHandler ? _asArray(eventHandler) : null;\n};\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst JsonLdError = require('./JsonLdError');\n\nconst {\n isArray: _isArray,\n isObject: _isObject,\n isEmptyObject: _isEmptyObject,\n isString: _isString,\n isUndefined: _isUndefined\n} = require('./types');\n\nconst {\n isList: _isList,\n isValue: _isValue,\n isGraph: _isGraph,\n isSubject: _isSubject\n} = require('./graphTypes');\n\nconst {\n expandIri: _expandIri,\n getContextValue: _getContextValue,\n isKeyword: _isKeyword,\n process: _processContext,\n processingMode: _processingMode\n} = require('./context');\n\nconst {\n isAbsolute: _isAbsoluteIri\n} = require('./url');\n\nconst {\n REGEX_BCP47,\n REGEX_KEYWORD,\n addValue: _addValue,\n asArray: _asArray,\n getValues: _getValues,\n validateTypeValue: _validateTypeValue\n} = require('./util');\n\nconst {\n handleEvent: _handleEvent\n} = require('./events');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Recursively expands an element using the given context. Any context in\n * the element will be removed. All context URLs must have been retrieved\n * before calling this method.\n *\n * @param activeCtx the context to use.\n * @param activeProperty the property for the element, null for none.\n * @param element the element to expand.\n * @param options the expansion options.\n * @param insideList true if the element is a list, false if not.\n * @param insideIndex true if the element is inside an index container,\n * false if not.\n * @param typeScopedContext an optional type-scoped active context for\n * expanding values of nodes that were expressed according to\n * a type-scoped context.\n *\n * @return a Promise that resolves to the expanded value.\n */\napi.expand = async ({\n activeCtx,\n activeProperty = null,\n element,\n options = {},\n insideList = false,\n insideIndex = false,\n typeScopedContext = null\n}) => {\n // nothing to expand\n if(element === null || element === undefined) {\n return null;\n }\n\n // disable framing if activeProperty is @default\n if(activeProperty === '@default') {\n options = Object.assign({}, options, {isFrame: false});\n }\n\n if(!_isArray(element) && !_isObject(element)) {\n // drop free-floating scalars that are not in lists\n if(!insideList && (activeProperty === null ||\n _expandIri(activeCtx, activeProperty, {vocab: true},\n options) === '@graph')) {\n // FIXME\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'free-floating scalar',\n level: 'warning',\n message: 'Dropping free-floating scalar not in a list.',\n details: {\n value: element\n //activeProperty\n //insideList\n }\n },\n options\n });\n }\n return null;\n }\n\n // expand element according to value expansion rules\n return _expandValue({activeCtx, activeProperty, value: element, options});\n }\n\n // recursively expand array\n if(_isArray(element)) {\n let rval = [];\n const container = _getContextValue(\n activeCtx, activeProperty, '@container') || [];\n insideList = insideList || container.includes('@list');\n for(let i = 0; i < element.length; ++i) {\n // expand element\n let e = await api.expand({\n activeCtx,\n activeProperty,\n element: element[i],\n options,\n insideIndex,\n typeScopedContext\n });\n if(insideList && _isArray(e)) {\n e = {'@list': e};\n }\n\n if(e === null) {\n // FIXME: add debug event?\n //unmappedValue: element[i],\n //activeProperty,\n //parent: element,\n //index: i,\n //expandedParent: rval,\n //insideList\n\n // NOTE: no-value events emitted at calling sites as needed\n continue;\n }\n\n if(_isArray(e)) {\n rval = rval.concat(e);\n } else {\n rval.push(e);\n }\n }\n return rval;\n }\n\n // recursively expand object:\n\n // first, expand the active property\n const expandedActiveProperty = _expandIri(\n activeCtx, activeProperty, {vocab: true}, options);\n\n // Get any property-scoped context for activeProperty\n const propertyScopedCtx =\n _getContextValue(activeCtx, activeProperty, '@context');\n\n // second, determine if any type-scoped context should be reverted; it\n // should only be reverted when the following are all true:\n // 1. `element` is not a value or subject reference\n // 2. `insideIndex` is false\n typeScopedContext = typeScopedContext ||\n (activeCtx.previousContext ? activeCtx : null);\n let keys = Object.keys(element).sort();\n let mustRevert = !insideIndex;\n if(mustRevert && typeScopedContext && keys.length <= 2 &&\n !keys.includes('@context')) {\n for(const key of keys) {\n const expandedProperty = _expandIri(\n typeScopedContext, key, {vocab: true}, options);\n if(expandedProperty === '@value') {\n // value found, ensure type-scoped context is used to expand it\n mustRevert = false;\n activeCtx = typeScopedContext;\n break;\n }\n if(expandedProperty === '@id' && keys.length === 1) {\n // subject reference found, do not revert\n mustRevert = false;\n break;\n }\n }\n }\n\n if(mustRevert) {\n // revert type scoped context\n activeCtx = activeCtx.revertToPreviousContext();\n }\n\n // apply property-scoped context after reverting term-scoped context\n if(!_isUndefined(propertyScopedCtx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: propertyScopedCtx,\n propagate: true,\n overrideProtected: true,\n options\n });\n }\n\n // if element has a context, process it\n if('@context' in element) {\n activeCtx = await _processContext(\n {activeCtx, localCtx: element['@context'], options});\n }\n\n // set the type-scoped context to the context on input, for use later\n typeScopedContext = activeCtx;\n\n // Remember the first key found expanding to @type\n let typeKey = null;\n\n // look for scoped contexts on `@type`\n for(const key of keys) {\n const expandedProperty = _expandIri(activeCtx, key, {vocab: true}, options);\n if(expandedProperty === '@type') {\n // set scoped contexts from @type\n // avoid sorting if possible\n typeKey = typeKey || key;\n const value = element[key];\n const types =\n Array.isArray(value) ?\n (value.length > 1 ? value.slice().sort() : value) : [value];\n for(const type of types) {\n const ctx = _getContextValue(typeScopedContext, type, '@context');\n if(!_isUndefined(ctx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: ctx,\n options,\n propagate: false\n });\n }\n }\n }\n }\n\n // process each key and value in element, ignoring @nest content\n let rval = {};\n await _expandObject({\n activeCtx,\n activeProperty,\n expandedActiveProperty,\n element,\n expandedParent: rval,\n options,\n insideList,\n typeKey,\n typeScopedContext\n });\n\n // get property count on expanded output\n keys = Object.keys(rval);\n let count = keys.length;\n\n if('@value' in rval) {\n // @value must only have @language or @type\n if('@type' in rval && ('@language' in rval || '@direction' in rval)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an element containing \"@value\" may not ' +\n 'contain both \"@type\" and either \"@language\" or \"@direction\".',\n 'jsonld.SyntaxError', {code: 'invalid value object', element: rval});\n }\n let validCount = count - 1;\n if('@type' in rval) {\n validCount -= 1;\n }\n if('@index' in rval) {\n validCount -= 1;\n }\n if('@language' in rval) {\n validCount -= 1;\n }\n if('@direction' in rval) {\n validCount -= 1;\n }\n if(validCount !== 0) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an element containing \"@value\" may only ' +\n 'have an \"@index\" property and either \"@type\" ' +\n 'or either or both \"@language\" or \"@direction\".',\n 'jsonld.SyntaxError', {code: 'invalid value object', element: rval});\n }\n const values = rval['@value'] === null ? [] : _asArray(rval['@value']);\n const types = _getValues(rval, '@type');\n\n // drop null @values\n if(_processingMode(activeCtx, 1.1) && types.includes('@json') &&\n types.length === 1) {\n // Any value of @value is okay if @type: @json\n } else if(values.length === 0) {\n // FIXME\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'null @value value',\n level: 'warning',\n message: 'Dropping null @value value.',\n details: {\n value: rval\n }\n },\n options\n });\n }\n rval = null;\n } else if(!values.every(v => (_isString(v) || _isEmptyObject(v))) &&\n '@language' in rval) {\n // if @language is present, @value must be a string\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; only strings may be language-tagged.',\n 'jsonld.SyntaxError',\n {code: 'invalid language-tagged value', element: rval});\n } else if(!types.every(t =>\n (_isAbsoluteIri(t) && !(_isString(t) && t.indexOf('_:') === 0) ||\n _isEmptyObject(t)))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an element containing \"@value\" and \"@type\" ' +\n 'must have an absolute IRI for the value of \"@type\".',\n 'jsonld.SyntaxError', {code: 'invalid typed value', element: rval});\n }\n } else if('@type' in rval && !_isArray(rval['@type'])) {\n // convert @type to an array\n rval['@type'] = [rval['@type']];\n } else if('@set' in rval || '@list' in rval) {\n // handle @set and @list\n if(count > 1 && !(count === 2 && '@index' in rval)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; if an element has the property \"@set\" ' +\n 'or \"@list\", then it can have at most one other property that is ' +\n '\"@index\".', 'jsonld.SyntaxError',\n {code: 'invalid set or list object', element: rval});\n }\n // optimize away @set\n if('@set' in rval) {\n rval = rval['@set'];\n keys = Object.keys(rval);\n count = keys.length;\n }\n } else if(count === 1 && '@language' in rval) {\n // drop objects with only @language\n // FIXME\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'object with only @language',\n level: 'warning',\n message: 'Dropping object with only @language.',\n details: {\n value: rval\n }\n },\n options\n });\n }\n rval = null;\n }\n\n // drop certain top-level objects that do not occur in lists\n if(_isObject(rval) &&\n !options.keepFreeFloatingNodes && !insideList &&\n (activeProperty === null ||\n expandedActiveProperty === '@graph' ||\n (_getContextValue(activeCtx, activeProperty, '@container') || [])\n .includes('@graph')\n )) {\n // drop empty object, top-level @value/@list, or object with only @id\n rval = _dropUnsafeObject({value: rval, count, options});\n }\n\n return rval;\n};\n\n/**\n * Drop empty object, top-level @value/@list, or object with only @id\n */\nfunction _dropUnsafeObject({\n value,\n count,\n options\n}) {\n if(count === 0 || '@value' in value || '@list' in value ||\n (count === 1 && '@id' in value)) {\n // FIXME\n if(options.eventHandler) {\n // FIXME: one event or diff event for empty, @v/@l, {@id}?\n let code;\n let message;\n if(count === 0) {\n code = 'empty object';\n message = 'Dropping empty object.';\n } else if('@value' in value) {\n code = 'object with only @value';\n message = 'Dropping object with only @value.';\n } else if('@list' in value) {\n code = 'object with only @list';\n message = 'Dropping object with only @list.';\n } else if(count === 1 && '@id' in value) {\n code = 'object with only @id';\n message = 'Dropping object with only @id.';\n }\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code,\n level: 'warning',\n message,\n details: {\n value\n }\n },\n options\n });\n }\n return null;\n }\n return value;\n}\n\n/**\n * Expand each key and value of element adding to result\n *\n * @param activeCtx the context to use.\n * @param activeProperty the property for the element.\n * @param expandedActiveProperty the expansion of activeProperty\n * @param element the element to expand.\n * @param expandedParent the expanded result into which to add values.\n * @param options the expansion options.\n * @param insideList true if the element is a list, false if not.\n * @param typeKey first key found expanding to @type.\n * @param typeScopedContext the context before reverting.\n */\nasync function _expandObject({\n activeCtx,\n activeProperty,\n expandedActiveProperty,\n element,\n expandedParent,\n options = {},\n insideList,\n typeKey,\n typeScopedContext\n}) {\n const keys = Object.keys(element).sort();\n const nests = [];\n let unexpandedValue;\n\n // Figure out if this is the type for a JSON literal\n const isJsonType = element[typeKey] &&\n _expandIri(activeCtx,\n (_isArray(element[typeKey]) ? element[typeKey][0] : element[typeKey]),\n {vocab: true}, {\n ...options,\n typeExpansion: true\n }) === '@json';\n\n for(const key of keys) {\n let value = element[key];\n let expandedValue;\n\n // skip @context\n if(key === '@context') {\n continue;\n }\n\n // expand property\n const expandedProperty = _expandIri(activeCtx, key, {vocab: true}, options);\n\n // drop non-absolute IRI keys that aren't keywords\n if(expandedProperty === null ||\n !(_isAbsoluteIri(expandedProperty) || _isKeyword(expandedProperty))) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid property',\n level: 'warning',\n message: 'Dropping property that did not expand into an ' +\n 'absolute IRI or keyword.',\n details: {\n property: key,\n expandedProperty\n }\n },\n options\n });\n }\n continue;\n }\n\n if(_isKeyword(expandedProperty)) {\n if(expandedActiveProperty === '@reverse') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a keyword cannot be used as a @reverse ' +\n 'property.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property map', value});\n }\n if(expandedProperty in expandedParent &&\n expandedProperty !== '@included' &&\n expandedProperty !== '@type') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; colliding keywords detected.',\n 'jsonld.SyntaxError',\n {code: 'colliding keywords', keyword: expandedProperty});\n }\n }\n\n // syntax error if @id is not a string\n if(expandedProperty === '@id') {\n if(!_isString(value)) {\n if(!options.isFrame) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@id\" value must a string.',\n 'jsonld.SyntaxError', {code: 'invalid @id value', value});\n }\n if(_isObject(value)) {\n // empty object is a wildcard\n if(!_isEmptyObject(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@id\" value an empty object or array ' +\n 'of strings, if framing',\n 'jsonld.SyntaxError', {code: 'invalid @id value', value});\n }\n } else if(_isArray(value)) {\n if(!value.every(v => _isString(v))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@id\" value an empty object or array ' +\n 'of strings, if framing',\n 'jsonld.SyntaxError', {code: 'invalid @id value', value});\n }\n } else {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@id\" value an empty object or array ' +\n 'of strings, if framing',\n 'jsonld.SyntaxError', {code: 'invalid @id value', value});\n }\n }\n\n _addValue(\n expandedParent, '@id',\n _asArray(value).map(v => {\n if(_isString(v)) {\n const ve = _expandIri(activeCtx, v, {base: true}, options);\n if(options.eventHandler) {\n if(ve === null) {\n // NOTE: spec edge case\n // See https://github.com/w3c/json-ld-api/issues/480\n if(v === null) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'null @id value',\n level: 'warning',\n message: 'Null @id found.',\n details: {\n id: v\n }\n },\n options\n });\n } else {\n // matched KEYWORD regex\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'reserved @id value',\n level: 'warning',\n message: 'Reserved @id found.',\n details: {\n id: v\n }\n },\n options\n });\n }\n } else if(!_isAbsoluteIri(ve)) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative @id reference',\n level: 'warning',\n message: 'Relative @id reference found.',\n details: {\n id: v,\n expandedId: ve\n }\n },\n options\n });\n }\n }\n return ve;\n }\n return v;\n }),\n {propertyIsArray: options.isFrame});\n continue;\n }\n\n if(expandedProperty === '@type') {\n // if framing, can be a default object, but need to expand\n // key to determine that\n if(_isObject(value)) {\n value = Object.fromEntries(Object.entries(value).map(([k, v]) => [\n _expandIri(typeScopedContext, k, {vocab: true}),\n _asArray(v).map(vv =>\n _expandIri(typeScopedContext, vv, {base: true, vocab: true},\n {...options, typeExpansion: true})\n )\n ]));\n }\n _validateTypeValue(value, options.isFrame);\n _addValue(\n expandedParent, '@type',\n _asArray(value).map(v => {\n if(_isString(v)) {\n const ve = _expandIri(typeScopedContext, v,\n {base: true, vocab: true},\n {...options, typeExpansion: true});\n if(ve !== '@json' && !_isAbsoluteIri(ve)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative @type reference',\n level: 'warning',\n message: 'Relative @type reference found.',\n details: {\n type: v\n }\n },\n options\n });\n }\n }\n return ve;\n }\n return v;\n }),\n {propertyIsArray: !!options.isFrame});\n continue;\n }\n\n // Included blocks are treated as an array of separate object nodes sharing\n // the same referencing active_property.\n // For 1.0, it is skipped as are other unknown keywords\n if(expandedProperty === '@included' && _processingMode(activeCtx, 1.1)) {\n const includedResult = _asArray(await api.expand({\n activeCtx,\n activeProperty,\n element: value,\n options\n }));\n\n // Expanded values must be node objects\n if(!includedResult.every(v => _isSubject(v))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; ' +\n 'values of @included must expand to node objects.',\n 'jsonld.SyntaxError', {code: 'invalid @included value', value});\n }\n\n _addValue(\n expandedParent, '@included', includedResult, {propertyIsArray: true});\n continue;\n }\n\n // @graph must be an array or an object\n if(expandedProperty === '@graph' &&\n !(_isObject(value) || _isArray(value))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@graph\" value must not be an ' +\n 'object or an array.',\n 'jsonld.SyntaxError', {code: 'invalid @graph value', value});\n }\n\n if(expandedProperty === '@value') {\n // capture value for later\n // \"colliding keywords\" check prevents this from being set twice\n unexpandedValue = value;\n if(isJsonType && _processingMode(activeCtx, 1.1)) {\n // no coercion to array, and retain all values\n expandedParent['@value'] = value;\n } else {\n _addValue(\n expandedParent, '@value', value, {propertyIsArray: options.isFrame});\n }\n continue;\n }\n\n // @language must be a string\n // it should match BCP47\n if(expandedProperty === '@language') {\n if(value === null) {\n // drop null @language values, they expand as if they didn't exist\n continue;\n }\n if(!_isString(value) && !options.isFrame) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@language\" value must be a string.',\n 'jsonld.SyntaxError',\n {code: 'invalid language-tagged string', value});\n }\n // ensure language value is lowercase\n value = _asArray(value).map(v => _isString(v) ? v.toLowerCase() : v);\n\n // ensure language tag matches BCP47\n for(const language of value) {\n if(_isString(language) && !language.match(REGEX_BCP47)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid @language value',\n level: 'warning',\n message: '@language value must be valid BCP47.',\n details: {\n language\n }\n },\n options\n });\n }\n }\n }\n\n _addValue(\n expandedParent, '@language', value, {propertyIsArray: options.isFrame});\n continue;\n }\n\n // @direction must be \"ltr\" or \"rtl\"\n if(expandedProperty === '@direction') {\n if(!_isString(value) && !options.isFrame) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@direction\" value must be a string.',\n 'jsonld.SyntaxError',\n {code: 'invalid base direction', value});\n }\n\n value = _asArray(value);\n\n // ensure direction is \"ltr\" or \"rtl\"\n for(const dir of value) {\n if(_isString(dir) && dir !== 'ltr' && dir !== 'rtl') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@direction\" must be \"ltr\" or \"rtl\".',\n 'jsonld.SyntaxError',\n {code: 'invalid base direction', value});\n }\n }\n\n _addValue(\n expandedParent, '@direction', value,\n {propertyIsArray: options.isFrame});\n continue;\n }\n\n // @index must be a string\n if(expandedProperty === '@index') {\n if(!_isString(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@index\" value must be a string.',\n 'jsonld.SyntaxError',\n {code: 'invalid @index value', value});\n }\n _addValue(expandedParent, '@index', value);\n continue;\n }\n\n // @reverse must be an object\n if(expandedProperty === '@reverse') {\n if(!_isObject(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@reverse\" value must be an object.',\n 'jsonld.SyntaxError', {code: 'invalid @reverse value', value});\n }\n\n expandedValue = await api.expand({\n activeCtx,\n activeProperty: '@reverse',\n element: value,\n options\n });\n // properties double-reversed\n if('@reverse' in expandedValue) {\n for(const property in expandedValue['@reverse']) {\n _addValue(\n expandedParent, property, expandedValue['@reverse'][property],\n {propertyIsArray: true});\n }\n }\n\n // FIXME: can this be merged with code below to simplify?\n // merge in all reversed properties\n let reverseMap = expandedParent['@reverse'] || null;\n for(const property in expandedValue) {\n if(property === '@reverse') {\n continue;\n }\n if(reverseMap === null) {\n reverseMap = expandedParent['@reverse'] = {};\n }\n _addValue(reverseMap, property, [], {propertyIsArray: true});\n const items = expandedValue[property];\n for(let ii = 0; ii < items.length; ++ii) {\n const item = items[ii];\n if(_isValue(item) || _isList(item)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@reverse\" value must not be a ' +\n '@value or an @list.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property value', value: expandedValue});\n }\n _addValue(reverseMap, property, item, {propertyIsArray: true});\n }\n }\n\n continue;\n }\n\n // nested keys\n if(expandedProperty === '@nest') {\n nests.push(key);\n continue;\n }\n\n // use potential scoped context for key\n let termCtx = activeCtx;\n const ctx = _getContextValue(activeCtx, key, '@context');\n if(!_isUndefined(ctx)) {\n termCtx = await _processContext({\n activeCtx,\n localCtx: ctx,\n propagate: true,\n overrideProtected: true,\n options\n });\n }\n\n const container = _getContextValue(termCtx, key, '@container') || [];\n\n if(container.includes('@language') && _isObject(value)) {\n const direction = _getContextValue(termCtx, key, '@direction');\n // handle language map container (skip if value is not an object)\n expandedValue = _expandLanguageMap(termCtx, value, direction, options);\n } else if(container.includes('@index') && _isObject(value)) {\n // handle index container (skip if value is not an object)\n const asGraph = container.includes('@graph');\n const indexKey = _getContextValue(termCtx, key, '@index') || '@index';\n const propertyIndex = indexKey !== '@index' &&\n _expandIri(activeCtx, indexKey, {vocab: true}, options);\n\n expandedValue = await _expandIndexMap({\n activeCtx: termCtx,\n options,\n activeProperty: key,\n value,\n asGraph,\n indexKey,\n propertyIndex\n });\n } else if(container.includes('@id') && _isObject(value)) {\n // handle id container (skip if value is not an object)\n const asGraph = container.includes('@graph');\n expandedValue = await _expandIndexMap({\n activeCtx: termCtx,\n options,\n activeProperty: key,\n value,\n asGraph,\n indexKey: '@id'\n });\n } else if(container.includes('@type') && _isObject(value)) {\n // handle type container (skip if value is not an object)\n expandedValue = await _expandIndexMap({\n // since container is `@type`, revert type scoped context when expanding\n activeCtx: termCtx.revertToPreviousContext(),\n options,\n activeProperty: key,\n value,\n asGraph: false,\n indexKey: '@type'\n });\n } else {\n // recurse into @list or @set\n const isList = expandedProperty === '@list';\n if(isList || expandedProperty === '@set') {\n let nextActiveProperty = activeProperty;\n if(isList && expandedActiveProperty === '@graph') {\n nextActiveProperty = null;\n }\n expandedValue = await api.expand({\n activeCtx: termCtx,\n activeProperty: nextActiveProperty,\n element: value,\n options,\n insideList: isList\n });\n } else if(\n _getContextValue(activeCtx, key, '@type') === '@json') {\n expandedValue = {\n '@type': '@json',\n '@value': value\n };\n } else {\n // recursively expand value with key as new active property\n expandedValue = await api.expand({\n activeCtx: termCtx,\n activeProperty: key,\n element: value,\n options,\n insideList: false\n });\n }\n }\n\n // drop null values if property is not @value\n if(expandedValue === null && expandedProperty !== '@value') {\n // FIXME: event?\n //unmappedValue: value,\n //expandedProperty,\n //key,\n continue;\n }\n\n // convert expanded value to @list if container specifies it\n if(expandedProperty !== '@list' && !_isList(expandedValue) &&\n container.includes('@list')) {\n // ensure expanded value in @list is an array\n expandedValue = {'@list': _asArray(expandedValue)};\n }\n\n // convert expanded value to @graph if container specifies it\n // and value is not, itself, a graph\n // index cases handled above\n if(container.includes('@graph') &&\n !container.some(key => key === '@id' || key === '@index')) {\n // ensure expanded values are arrays\n // ensure an array\n expandedValue = _asArray(expandedValue);\n // check if needs to be dropped\n const count = Object.keys(expandedValue[0]).length;\n if(!options.isFrame && _dropUnsafeObject({\n value: expandedValue[0], count, options\n }) === null) {\n // skip adding and continue\n continue;\n }\n // convert to graph\n expandedValue = expandedValue.map(v => ({'@graph': _asArray(v)}));\n }\n\n // FIXME: can this be merged with code above to simplify?\n // merge in reverse properties\n if(termCtx.mappings.has(key) && termCtx.mappings.get(key).reverse) {\n const reverseMap =\n expandedParent['@reverse'] = expandedParent['@reverse'] || {};\n expandedValue = _asArray(expandedValue);\n for(let ii = 0; ii < expandedValue.length; ++ii) {\n const item = expandedValue[ii];\n if(_isValue(item) || _isList(item)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@reverse\" value must not be a ' +\n '@value or an @list.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property value', value: expandedValue});\n }\n _addValue(reverseMap, expandedProperty, item, {propertyIsArray: true});\n }\n continue;\n }\n\n // add value for property\n // special keywords handled above\n _addValue(expandedParent, expandedProperty, expandedValue, {\n propertyIsArray: true\n });\n }\n\n // @value must not be an object or an array (unless framing) or if @type is\n // @json\n if('@value' in expandedParent) {\n if(expandedParent['@type'] === '@json' && _processingMode(activeCtx, 1.1)) {\n // allow any value, to be verified when the object is fully expanded and\n // the @type is @json.\n } else if((_isObject(unexpandedValue) || _isArray(unexpandedValue)) &&\n !options.isFrame) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@value\" value must not be an ' +\n 'object or an array.',\n 'jsonld.SyntaxError',\n {code: 'invalid value object value', value: unexpandedValue});\n }\n }\n\n // expand each nested key\n for(const key of nests) {\n const nestedValues = _isArray(element[key]) ? element[key] : [element[key]];\n for(const nv of nestedValues) {\n if(!_isObject(nv) || Object.keys(nv).some(k =>\n _expandIri(activeCtx, k, {vocab: true}, options) === '@value')) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; nested value must be a node object.',\n 'jsonld.SyntaxError',\n {code: 'invalid @nest value', value: nv});\n }\n await _expandObject({\n activeCtx,\n activeProperty,\n expandedActiveProperty,\n element: nv,\n expandedParent,\n options,\n insideList,\n typeScopedContext,\n typeKey\n });\n }\n }\n}\n\n/**\n * Expands the given value by using the coercion and keyword rules in the\n * given context.\n *\n * @param activeCtx the active context to use.\n * @param activeProperty the active property the value is associated with.\n * @param value the value to expand.\n * @param {Object} [options] - processing options.\n *\n * @return the expanded value.\n */\nfunction _expandValue({activeCtx, activeProperty, value, options}) {\n // nothing to expand\n if(value === null || value === undefined) {\n return null;\n }\n\n // special-case expand @id and @type (skips '@id' expansion)\n const expandedProperty = _expandIri(\n activeCtx, activeProperty, {vocab: true}, options);\n if(expandedProperty === '@id') {\n return _expandIri(activeCtx, value, {base: true}, options);\n } else if(expandedProperty === '@type') {\n return _expandIri(activeCtx, value, {vocab: true, base: true},\n {...options, typeExpansion: true});\n }\n\n // get type definition from context\n const type = _getContextValue(activeCtx, activeProperty, '@type');\n\n // do @id expansion (automatic for @graph)\n if((type === '@id' || expandedProperty === '@graph') && _isString(value)) {\n const expandedValue = _expandIri(activeCtx, value, {base: true}, options);\n // NOTE: handle spec edge case and avoid invalid {\"@id\": null}\n if(expandedValue === null && value.match(REGEX_KEYWORD)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'reserved @id value',\n level: 'warning',\n message: 'Reserved @id found.',\n details: {\n id: activeProperty\n }\n },\n options\n });\n }\n }\n return {'@id': expandedValue};\n }\n // do @id expansion w/vocab\n if(type === '@vocab' && _isString(value)) {\n return {\n '@id': _expandIri(activeCtx, value, {vocab: true, base: true}, options)\n };\n }\n\n // do not expand keyword values\n if(_isKeyword(expandedProperty)) {\n return value;\n }\n\n const rval = {};\n\n if(type && !['@id', '@vocab', '@none'].includes(type)) {\n // other type\n rval['@type'] = type;\n } else if(_isString(value)) {\n // check for language tagging for strings\n const language = _getContextValue(activeCtx, activeProperty, '@language');\n if(language !== null) {\n rval['@language'] = language;\n }\n const direction = _getContextValue(activeCtx, activeProperty, '@direction');\n if(direction !== null) {\n rval['@direction'] = direction;\n }\n }\n // do conversion of values that aren't basic JSON types to strings\n if(!['boolean', 'number', 'string'].includes(typeof value)) {\n value = value.toString();\n }\n rval['@value'] = value;\n\n return rval;\n}\n\n/**\n * Expands a language map.\n *\n * @param activeCtx the active context to use.\n * @param languageMap the language map to expand.\n * @param direction the direction to apply to values.\n * @param {Object} [options] - processing options.\n *\n * @return the expanded language map.\n */\nfunction _expandLanguageMap(activeCtx, languageMap, direction, options) {\n const rval = [];\n const keys = Object.keys(languageMap).sort();\n for(const key of keys) {\n const expandedKey = _expandIri(activeCtx, key, {vocab: true}, options);\n let val = languageMap[key];\n if(!_isArray(val)) {\n val = [val];\n }\n for(const item of val) {\n if(item === null) {\n // null values are allowed (8.5) but ignored (3.1)\n continue;\n }\n if(!_isString(item)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; language map values must be strings.',\n 'jsonld.SyntaxError',\n {code: 'invalid language map value', languageMap});\n }\n const val = {'@value': item};\n if(expandedKey !== '@none') {\n if(!key.match(REGEX_BCP47)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid @language value',\n level: 'warning',\n message: '@language value must be valid BCP47.',\n details: {\n language: key\n }\n },\n options\n });\n }\n }\n val['@language'] = key.toLowerCase();\n }\n if(direction) {\n val['@direction'] = direction;\n }\n rval.push(val);\n }\n }\n return rval;\n}\n\nasync function _expandIndexMap({\n activeCtx, options, activeProperty, value, asGraph, indexKey, propertyIndex\n}) {\n const rval = [];\n const keys = Object.keys(value).sort();\n const isTypeIndex = indexKey === '@type';\n for(let key of keys) {\n // if indexKey is @type, there may be a context defined for it\n if(isTypeIndex) {\n const ctx = _getContextValue(activeCtx, key, '@context');\n if(!_isUndefined(ctx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: ctx,\n propagate: false,\n options\n });\n }\n }\n\n let val = value[key];\n if(!_isArray(val)) {\n val = [val];\n }\n\n val = await api.expand({\n activeCtx,\n activeProperty,\n element: val,\n options,\n insideList: false,\n insideIndex: true\n });\n\n // expand for @type, but also for @none\n let expandedKey;\n if(propertyIndex) {\n if(key === '@none') {\n expandedKey = '@none';\n } else {\n expandedKey = _expandValue(\n {activeCtx, activeProperty: indexKey, value: key, options});\n }\n } else {\n expandedKey = _expandIri(activeCtx, key, {vocab: true}, options);\n }\n\n if(indexKey === '@id') {\n // expand document relative\n key = _expandIri(activeCtx, key, {base: true}, options);\n } else if(isTypeIndex) {\n key = expandedKey;\n }\n\n for(let item of val) {\n // If this is also a @graph container, turn items into graphs\n if(asGraph && !_isGraph(item)) {\n item = {'@graph': [item]};\n }\n if(indexKey === '@type') {\n if(expandedKey === '@none') {\n // ignore @none\n } else if(item['@type']) {\n item['@type'] = [key].concat(item['@type']);\n } else {\n item['@type'] = [key];\n }\n } else if(_isValue(item) &&\n !['@language', '@type', '@index'].includes(indexKey)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; Attempt to add illegal key to value ' +\n `object: \"${indexKey}\".`,\n 'jsonld.SyntaxError',\n {code: 'invalid value object', value: item});\n } else if(propertyIndex) {\n // index is a property to be expanded, and values interpreted for that\n // property\n if(expandedKey !== '@none') {\n // expand key as a value\n _addValue(item, propertyIndex, expandedKey, {\n propertyIsArray: true,\n prependValue: true\n });\n }\n } else if(expandedKey !== '@none' && !(indexKey in item)) {\n item[indexKey] = key;\n }\n rval.push(item);\n }\n }\n return rval;\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {\n isSubjectReference: _isSubjectReference\n} = require('./graphTypes');\n\nconst {\n createMergedNodeMap: _createMergedNodeMap\n} = require('./nodeMap');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Performs JSON-LD flattening.\n *\n * @param input the expanded JSON-LD to flatten.\n *\n * @return the flattened output.\n */\napi.flatten = input => {\n const defaultGraph = _createMergedNodeMap(input);\n\n // produce flattened output\n const flattened = [];\n const keys = Object.keys(defaultGraph).sort();\n for(let ki = 0; ki < keys.length; ++ki) {\n const node = defaultGraph[keys[ki]];\n // only add full subjects to top-level\n if(!_isSubjectReference(node)) {\n flattened.push(node);\n }\n }\n return flattened;\n};\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {isKeyword} = require('./context');\nconst graphTypes = require('./graphTypes');\nconst types = require('./types');\nconst util = require('./util');\nconst url = require('./url');\nconst JsonLdError = require('./JsonLdError');\nconst {\n createNodeMap: _createNodeMap,\n mergeNodeMapGraphs: _mergeNodeMapGraphs\n} = require('./nodeMap');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Performs JSON-LD `merged` framing.\n *\n * @param input the expanded JSON-LD to frame.\n * @param frame the expanded JSON-LD frame to use.\n * @param options the framing options.\n *\n * @return the framed output.\n */\napi.frameMergedOrDefault = (input, frame, options) => {\n // create framing state\n const state = {\n options,\n embedded: false,\n graph: '@default',\n graphMap: {'@default': {}},\n subjectStack: [],\n link: {},\n bnodeMap: {}\n };\n\n // produce a map of all graphs and name each bnode\n // FIXME: currently uses subjects from @merged graph only\n const issuer = new util.IdentifierIssuer('_:b');\n _createNodeMap(input, state.graphMap, '@default', issuer);\n if(options.merged) {\n state.graphMap['@merged'] = _mergeNodeMapGraphs(state.graphMap);\n state.graph = '@merged';\n }\n state.subjects = state.graphMap[state.graph];\n\n // frame the subjects\n const framed = [];\n api.frame(state, Object.keys(state.subjects).sort(), frame, framed);\n\n // If pruning blank nodes, find those to prune\n if(options.pruneBlankNodeIdentifiers) {\n // remove all blank nodes appearing only once, done in compaction\n options.bnodesToClear =\n Object.keys(state.bnodeMap).filter(id => state.bnodeMap[id].length === 1);\n }\n\n // remove @preserve from results\n options.link = {};\n return _cleanupPreserve(framed, options);\n};\n\n/**\n * Frames subjects according to the given frame.\n *\n * @param state the current framing state.\n * @param subjects the subjects to filter.\n * @param frame the frame.\n * @param parent the parent subject or top-level array.\n * @param property the parent property, initialized to null.\n */\napi.frame = (state, subjects, frame, parent, property = null) => {\n // validate the frame\n _validateFrame(frame);\n frame = frame[0];\n\n // get flags for current frame\n const options = state.options;\n const flags = {\n embed: _getFrameFlag(frame, options, 'embed'),\n explicit: _getFrameFlag(frame, options, 'explicit'),\n requireAll: _getFrameFlag(frame, options, 'requireAll')\n };\n\n // get link for current graph\n if(!state.link.hasOwnProperty(state.graph)) {\n state.link[state.graph] = {};\n }\n const link = state.link[state.graph];\n\n // filter out subjects that match the frame\n const matches = _filterSubjects(state, subjects, frame, flags);\n\n // add matches to output\n const ids = Object.keys(matches).sort();\n for(const id of ids) {\n const subject = matches[id];\n\n /* Note: In order to treat each top-level match as a compartmentalized\n result, clear the unique embedded subjects map when the property is null,\n which only occurs at the top-level. */\n if(property === null) {\n state.uniqueEmbeds = {[state.graph]: {}};\n } else {\n state.uniqueEmbeds[state.graph] = state.uniqueEmbeds[state.graph] || {};\n }\n\n if(flags.embed === '@link' && id in link) {\n // TODO: may want to also match an existing linked subject against\n // the current frame ... so different frames could produce different\n // subjects that are only shared in-memory when the frames are the same\n\n // add existing linked subject\n _addFrameOutput(parent, property, link[id]);\n continue;\n }\n\n // start output for subject\n const output = {'@id': id};\n if(id.indexOf('_:') === 0) {\n util.addValue(state.bnodeMap, id, output, {propertyIsArray: true});\n }\n link[id] = output;\n\n // validate @embed\n if((flags.embed === '@first' || flags.embed === '@last') && state.is11) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; invalid value of @embed.',\n 'jsonld.SyntaxError', {code: 'invalid @embed value', frame});\n }\n\n if(!state.embedded && state.uniqueEmbeds[state.graph].hasOwnProperty(id)) {\n // skip adding this node object to the top level, as it was\n // already included in another node object\n continue;\n }\n\n // if embed is @never or if a circular reference would be created by an\n // embed, the subject cannot be embedded, just add the reference;\n // note that a circular reference won't occur when the embed flag is\n // `@link` as the above check will short-circuit before reaching this point\n if(state.embedded &&\n (flags.embed === '@never' ||\n _createsCircularReference(subject, state.graph, state.subjectStack))) {\n _addFrameOutput(parent, property, output);\n continue;\n }\n\n // if only the first (or once) should be embedded\n if(state.embedded &&\n (flags.embed == '@first' || flags.embed == '@once') &&\n state.uniqueEmbeds[state.graph].hasOwnProperty(id)) {\n _addFrameOutput(parent, property, output);\n continue;\n }\n\n // if only the last match should be embedded\n if(flags.embed === '@last') {\n // remove any existing embed\n if(id in state.uniqueEmbeds[state.graph]) {\n _removeEmbed(state, id);\n }\n }\n\n state.uniqueEmbeds[state.graph][id] = {parent, property};\n\n // push matching subject onto stack to enable circular embed checks\n state.subjectStack.push({subject, graph: state.graph});\n\n // subject is also the name of a graph\n if(id in state.graphMap) {\n let recurse = false;\n let subframe = null;\n if(!('@graph' in frame)) {\n recurse = state.graph !== '@merged';\n subframe = {};\n } else {\n subframe = frame['@graph'][0];\n recurse = !(id === '@merged' || id === '@default');\n if(!types.isObject(subframe)) {\n subframe = {};\n }\n }\n\n if(recurse) {\n // recurse into graph\n api.frame(\n {...state, graph: id, embedded: false},\n Object.keys(state.graphMap[id]).sort(), [subframe], output, '@graph');\n }\n }\n\n // if frame has @included, recurse over its sub-frame\n if('@included' in frame) {\n api.frame(\n {...state, embedded: false},\n subjects, frame['@included'], output, '@included');\n }\n\n // iterate over subject properties\n for(const prop of Object.keys(subject).sort()) {\n // copy keywords to output\n if(isKeyword(prop)) {\n output[prop] = util.clone(subject[prop]);\n\n if(prop === '@type') {\n // count bnode values of @type\n for(const type of subject['@type']) {\n if(type.indexOf('_:') === 0) {\n util.addValue(\n state.bnodeMap, type, output, {propertyIsArray: true});\n }\n }\n }\n continue;\n }\n\n // explicit is on and property isn't in the frame, skip processing\n if(flags.explicit && !(prop in frame)) {\n continue;\n }\n\n // add objects\n for(const o of subject[prop]) {\n const subframe = (prop in frame ?\n frame[prop] : _createImplicitFrame(flags));\n\n // recurse into list\n if(graphTypes.isList(o)) {\n const subframe =\n (frame[prop] && frame[prop][0] && frame[prop][0]['@list']) ?\n frame[prop][0]['@list'] :\n _createImplicitFrame(flags);\n\n // add empty list\n const list = {'@list': []};\n _addFrameOutput(output, prop, list);\n\n // add list objects\n const src = o['@list'];\n for(const oo of src) {\n if(graphTypes.isSubjectReference(oo)) {\n // recurse into subject reference\n api.frame(\n {...state, embedded: true},\n [oo['@id']], subframe, list, '@list');\n } else {\n // include other values automatically\n _addFrameOutput(list, '@list', util.clone(oo));\n }\n }\n } else if(graphTypes.isSubjectReference(o)) {\n // recurse into subject reference\n api.frame(\n {...state, embedded: true},\n [o['@id']], subframe, output, prop);\n } else if(_valueMatch(subframe[0], o)) {\n // include other values, if they match\n _addFrameOutput(output, prop, util.clone(o));\n }\n }\n }\n\n // handle defaults\n for(const prop of Object.keys(frame).sort()) {\n // skip keywords\n if(prop === '@type') {\n if(!types.isObject(frame[prop][0]) ||\n !('@default' in frame[prop][0])) {\n continue;\n }\n // allow through default types\n } else if(isKeyword(prop)) {\n continue;\n }\n\n // if omit default is off, then include default values for properties\n // that appear in the next frame but are not in the matching subject\n const next = frame[prop][0] || {};\n const omitDefaultOn = _getFrameFlag(next, options, 'omitDefault');\n if(!omitDefaultOn && !(prop in output)) {\n let preserve = '@null';\n if('@default' in next) {\n preserve = util.clone(next['@default']);\n }\n if(!types.isArray(preserve)) {\n preserve = [preserve];\n }\n output[prop] = [{'@preserve': preserve}];\n }\n }\n\n // if embed reverse values by finding nodes having this subject as a value\n // of the associated property\n for(const reverseProp of Object.keys(frame['@reverse'] || {}).sort()) {\n const subframe = frame['@reverse'][reverseProp];\n for(const subject of Object.keys(state.subjects)) {\n const nodeValues =\n util.getValues(state.subjects[subject], reverseProp);\n if(nodeValues.some(v => v['@id'] === id)) {\n // node has property referencing this subject, recurse\n output['@reverse'] = output['@reverse'] || {};\n util.addValue(\n output['@reverse'], reverseProp, [], {propertyIsArray: true});\n api.frame(\n {...state, embedded: true},\n [subject], subframe, output['@reverse'][reverseProp],\n property);\n }\n }\n }\n\n // add output to parent\n _addFrameOutput(parent, property, output);\n\n // pop matching subject from circular ref-checking stack\n state.subjectStack.pop();\n }\n};\n\n/**\n * Replace `@null` with `null`, removing it from arrays.\n *\n * @param input the framed, compacted output.\n * @param options the framing options used.\n *\n * @return the resulting output.\n */\napi.cleanupNull = (input, options) => {\n // recurse through arrays\n if(types.isArray(input)) {\n const noNulls = input.map(v => api.cleanupNull(v, options));\n return noNulls.filter(v => v); // removes nulls from array\n }\n\n if(input === '@null') {\n return null;\n }\n\n if(types.isObject(input)) {\n // handle in-memory linked nodes\n if('@id' in input) {\n const id = input['@id'];\n if(options.link.hasOwnProperty(id)) {\n const idx = options.link[id].indexOf(input);\n if(idx !== -1) {\n // already visited\n return options.link[id][idx];\n }\n // prevent circular visitation\n options.link[id].push(input);\n } else {\n // prevent circular visitation\n options.link[id] = [input];\n }\n }\n\n for(const key in input) {\n input[key] = api.cleanupNull(input[key], options);\n }\n }\n return input;\n};\n\n/**\n * Creates an implicit frame when recursing through subject matches. If\n * a frame doesn't have an explicit frame for a particular property, then\n * a wildcard child frame will be created that uses the same flags that the\n * parent frame used.\n *\n * @param flags the current framing flags.\n *\n * @return the implicit frame.\n */\nfunction _createImplicitFrame(flags) {\n const frame = {};\n for(const key in flags) {\n if(flags[key] !== undefined) {\n frame['@' + key] = [flags[key]];\n }\n }\n return [frame];\n}\n\n/**\n * Checks the current subject stack to see if embedding the given subject\n * would cause a circular reference.\n *\n * @param subjectToEmbed the subject to embed.\n * @param graph the graph the subject to embed is in.\n * @param subjectStack the current stack of subjects.\n *\n * @return true if a circular reference would be created, false if not.\n */\nfunction _createsCircularReference(subjectToEmbed, graph, subjectStack) {\n for(let i = subjectStack.length - 1; i >= 0; --i) {\n const subject = subjectStack[i];\n if(subject.graph === graph &&\n subject.subject['@id'] === subjectToEmbed['@id']) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Gets the frame flag value for the given flag name.\n *\n * @param frame the frame.\n * @param options the framing options.\n * @param name the flag name.\n *\n * @return the flag value.\n */\nfunction _getFrameFlag(frame, options, name) {\n const flag = '@' + name;\n let rval = (flag in frame ? frame[flag][0] : options[name]);\n if(name === 'embed') {\n // default is \"@last\"\n // backwards-compatibility support for \"embed\" maps:\n // true => \"@last\"\n // false => \"@never\"\n if(rval === true) {\n rval = '@once';\n } else if(rval === false) {\n rval = '@never';\n } else if(rval !== '@always' && rval !== '@never' && rval !== '@link' &&\n rval !== '@first' && rval !== '@last' && rval !== '@once') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; invalid value of @embed.',\n 'jsonld.SyntaxError', {code: 'invalid @embed value', frame});\n }\n }\n return rval;\n}\n\n/**\n * Validates a JSON-LD frame, throwing an exception if the frame is invalid.\n *\n * @param frame the frame to validate.\n */\nfunction _validateFrame(frame) {\n if(!types.isArray(frame) || frame.length !== 1 || !types.isObject(frame[0])) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a JSON-LD frame must be a single object.',\n 'jsonld.SyntaxError', {frame});\n }\n\n if('@id' in frame[0]) {\n for(const id of util.asArray(frame[0]['@id'])) {\n // @id must be wildcard or an IRI\n if(!(types.isObject(id) || url.isAbsolute(id)) ||\n (types.isString(id) && id.indexOf('_:') === 0)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; invalid @id in frame.',\n 'jsonld.SyntaxError', {code: 'invalid frame', frame});\n }\n }\n }\n\n if('@type' in frame[0]) {\n for(const type of util.asArray(frame[0]['@type'])) {\n // @type must be wildcard, IRI, or @json\n if(!(types.isObject(type) || url.isAbsolute(type) ||\n (type === '@json')) ||\n (types.isString(type) && type.indexOf('_:') === 0)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; invalid @type in frame.',\n 'jsonld.SyntaxError', {code: 'invalid frame', frame});\n }\n }\n }\n}\n\n/**\n * Returns a map of all of the subjects that match a parsed frame.\n *\n * @param state the current framing state.\n * @param subjects the set of subjects to filter.\n * @param frame the parsed frame.\n * @param flags the frame flags.\n *\n * @return all of the matched subjects.\n */\nfunction _filterSubjects(state, subjects, frame, flags) {\n // filter subjects in @id order\n const rval = {};\n for(const id of subjects) {\n const subject = state.graphMap[state.graph][id];\n if(_filterSubject(state, subject, frame, flags)) {\n rval[id] = subject;\n }\n }\n return rval;\n}\n\n/**\n * Returns true if the given subject matches the given frame.\n *\n * Matches either based on explicit type inclusion where the node has any\n * type listed in the frame. If the frame has empty types defined matches\n * nodes not having a @type. If the frame has a type of {} defined matches\n * nodes having any type defined.\n *\n * Otherwise, does duck typing, where the node must have all of the\n * properties defined in the frame.\n *\n * @param state the current framing state.\n * @param subject the subject to check.\n * @param frame the frame to check.\n * @param flags the frame flags.\n *\n * @return true if the subject matches, false if not.\n */\nfunction _filterSubject(state, subject, frame, flags) {\n // check ducktype\n let wildcard = true;\n let matchesSome = false;\n\n for(const key in frame) {\n let matchThis = false;\n const nodeValues = util.getValues(subject, key);\n const isEmpty = util.getValues(frame, key).length === 0;\n\n if(key === '@id') {\n // match on no @id or any matching @id, including wildcard\n if(types.isEmptyObject(frame['@id'][0] || {})) {\n matchThis = true;\n } else if(frame['@id'].length >= 0) {\n matchThis = frame['@id'].includes(nodeValues[0]);\n }\n if(!flags.requireAll) {\n return matchThis;\n }\n } else if(key === '@type') {\n // check @type (object value means 'any' type,\n // fall through to ducktyping)\n wildcard = false;\n if(isEmpty) {\n if(nodeValues.length > 0) {\n // don't match on no @type\n return false;\n }\n matchThis = true;\n } else if(frame['@type'].length === 1 &&\n types.isEmptyObject(frame['@type'][0])) {\n // match on wildcard @type if there is a type\n matchThis = nodeValues.length > 0;\n } else {\n // match on a specific @type\n for(const type of frame['@type']) {\n if(types.isObject(type) && '@default' in type) {\n // match on default object\n matchThis = true;\n } else {\n matchThis = matchThis || nodeValues.some(tt => tt === type);\n }\n }\n }\n if(!flags.requireAll) {\n return matchThis;\n }\n } else if(isKeyword(key)) {\n continue;\n } else {\n // Force a copy of this frame entry so it can be manipulated\n const thisFrame = util.getValues(frame, key)[0];\n let hasDefault = false;\n if(thisFrame) {\n _validateFrame([thisFrame]);\n hasDefault = '@default' in thisFrame;\n }\n\n // no longer a wildcard pattern if frame has any non-keyword properties\n wildcard = false;\n\n // skip, but allow match if node has no value for property, and frame has\n // a default value\n if(nodeValues.length === 0 && hasDefault) {\n continue;\n }\n\n // if frame value is empty, don't match if subject has any value\n if(nodeValues.length > 0 && isEmpty) {\n return false;\n }\n\n if(thisFrame === undefined) {\n // node does not match if values is not empty and the value of property\n // in frame is match none.\n if(nodeValues.length > 0) {\n return false;\n }\n matchThis = true;\n } else {\n if(graphTypes.isList(thisFrame)) {\n const listValue = thisFrame['@list'][0];\n if(graphTypes.isList(nodeValues[0])) {\n const nodeListValues = nodeValues[0]['@list'];\n\n if(graphTypes.isValue(listValue)) {\n // match on any matching value\n matchThis = nodeListValues.some(lv => _valueMatch(listValue, lv));\n } else if(graphTypes.isSubject(listValue) ||\n graphTypes.isSubjectReference(listValue)) {\n matchThis = nodeListValues.some(lv => _nodeMatch(\n state, listValue, lv, flags));\n }\n }\n } else if(graphTypes.isValue(thisFrame)) {\n matchThis = nodeValues.some(nv => _valueMatch(thisFrame, nv));\n } else if(graphTypes.isSubjectReference(thisFrame)) {\n matchThis =\n nodeValues.some(nv => _nodeMatch(state, thisFrame, nv, flags));\n } else if(types.isObject(thisFrame)) {\n matchThis = nodeValues.length > 0;\n } else {\n matchThis = false;\n }\n }\n }\n\n // all non-defaulted values must match if requireAll is set\n if(!matchThis && flags.requireAll) {\n return false;\n }\n\n matchesSome = matchesSome || matchThis;\n }\n\n // return true if wildcard or subject matches some properties\n return wildcard || matchesSome;\n}\n\n/**\n * Removes an existing embed.\n *\n * @param state the current framing state.\n * @param id the @id of the embed to remove.\n */\nfunction _removeEmbed(state, id) {\n // get existing embed\n const embeds = state.uniqueEmbeds[state.graph];\n const embed = embeds[id];\n const parent = embed.parent;\n const property = embed.property;\n\n // create reference to replace embed\n const subject = {'@id': id};\n\n // remove existing embed\n if(types.isArray(parent)) {\n // replace subject with reference\n for(let i = 0; i < parent.length; ++i) {\n if(util.compareValues(parent[i], subject)) {\n parent[i] = subject;\n break;\n }\n }\n } else {\n // replace subject with reference\n const useArray = types.isArray(parent[property]);\n util.removeValue(parent, property, subject, {propertyIsArray: useArray});\n util.addValue(parent, property, subject, {propertyIsArray: useArray});\n }\n\n // recursively remove dependent dangling embeds\n const removeDependents = id => {\n // get embed keys as a separate array to enable deleting keys in map\n const ids = Object.keys(embeds);\n for(const next of ids) {\n if(next in embeds && types.isObject(embeds[next].parent) &&\n embeds[next].parent['@id'] === id) {\n delete embeds[next];\n removeDependents(next);\n }\n }\n };\n removeDependents(id);\n}\n\n/**\n * Removes the @preserve keywords from expanded result of framing.\n *\n * @param input the framed, framed output.\n * @param options the framing options used.\n *\n * @return the resulting output.\n */\nfunction _cleanupPreserve(input, options) {\n // recurse through arrays\n if(types.isArray(input)) {\n return input.map(value => _cleanupPreserve(value, options));\n }\n\n if(types.isObject(input)) {\n // remove @preserve\n if('@preserve' in input) {\n return input['@preserve'][0];\n }\n\n // skip @values\n if(graphTypes.isValue(input)) {\n return input;\n }\n\n // recurse through @lists\n if(graphTypes.isList(input)) {\n input['@list'] = _cleanupPreserve(input['@list'], options);\n return input;\n }\n\n // handle in-memory linked nodes\n if('@id' in input) {\n const id = input['@id'];\n if(options.link.hasOwnProperty(id)) {\n const idx = options.link[id].indexOf(input);\n if(idx !== -1) {\n // already visited\n return options.link[id][idx];\n }\n // prevent circular visitation\n options.link[id].push(input);\n } else {\n // prevent circular visitation\n options.link[id] = [input];\n }\n }\n\n // recurse through properties\n for(const prop in input) {\n // potentially remove the id, if it is an unreference bnode\n if(prop === '@id' && options.bnodesToClear.includes(input[prop])) {\n delete input['@id'];\n continue;\n }\n\n input[prop] = _cleanupPreserve(input[prop], options);\n }\n }\n return input;\n}\n\n/**\n * Adds framing output to the given parent.\n *\n * @param parent the parent to add to.\n * @param property the parent property.\n * @param output the output to add.\n */\nfunction _addFrameOutput(parent, property, output) {\n if(types.isObject(parent)) {\n util.addValue(parent, property, output, {propertyIsArray: true});\n } else {\n parent.push(output);\n }\n}\n\n/**\n * Node matches if it is a node, and matches the pattern as a frame.\n *\n * @param state the current framing state.\n * @param pattern used to match value\n * @param value to check\n * @param flags the frame flags.\n */\nfunction _nodeMatch(state, pattern, value, flags) {\n if(!('@id' in value)) {\n return false;\n }\n const nodeObject = state.subjects[value['@id']];\n return nodeObject && _filterSubject(state, nodeObject, pattern, flags);\n}\n\n/**\n * Value matches if it is a value and matches the value pattern\n *\n * * `pattern` is empty\n * * @values are the same, or `pattern[@value]` is a wildcard, and\n * * @types are the same or `value[@type]` is not null\n * and `pattern[@type]` is `{}`, or `value[@type]` is null\n * and `pattern[@type]` is null or `[]`, and\n * * @languages are the same or `value[@language]` is not null\n * and `pattern[@language]` is `{}`, or `value[@language]` is null\n * and `pattern[@language]` is null or `[]`.\n *\n * @param pattern used to match value\n * @param value to check\n */\nfunction _valueMatch(pattern, value) {\n const v1 = value['@value'];\n const t1 = value['@type'];\n const l1 = value['@language'];\n const v2 = pattern['@value'] ?\n (types.isArray(pattern['@value']) ?\n pattern['@value'] : [pattern['@value']]) :\n [];\n const t2 = pattern['@type'] ?\n (types.isArray(pattern['@type']) ?\n pattern['@type'] : [pattern['@type']]) :\n [];\n const l2 = pattern['@language'] ?\n (types.isArray(pattern['@language']) ?\n pattern['@language'] : [pattern['@language']]) :\n [];\n\n if(v2.length === 0 && t2.length === 0 && l2.length === 0) {\n return true;\n }\n if(!(v2.includes(v1) || types.isEmptyObject(v2[0]))) {\n return false;\n }\n if(!(!t1 && t2.length === 0 || t2.includes(t1) || t1 &&\n types.isEmptyObject(t2[0]))) {\n return false;\n }\n if(!(!l1 && l2.length === 0 || l2.includes(l1) || l1 &&\n types.isEmptyObject(l2[0]))) {\n return false;\n }\n return true;\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst JsonLdError = require('./JsonLdError');\nconst graphTypes = require('./graphTypes');\nconst types = require('./types');\n\nconst {\n REGEX_BCP47,\n addValue: _addValue\n} = require('./util');\n\nconst {\n handleEvent: _handleEvent\n} = require('./events');\n\n// constants\nconst {\n // RDF,\n RDF_LIST,\n RDF_FIRST,\n RDF_REST,\n RDF_NIL,\n RDF_TYPE,\n // RDF_PLAIN_LITERAL,\n // RDF_XML_LITERAL,\n RDF_JSON_LITERAL,\n // RDF_OBJECT,\n // RDF_LANGSTRING,\n\n // XSD,\n XSD_BOOLEAN,\n XSD_DOUBLE,\n XSD_INTEGER,\n XSD_STRING,\n} = require('./constants');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Converts an RDF dataset to JSON-LD.\n *\n * @param dataset the RDF dataset.\n * @param options the RDF serialization options.\n *\n * @return a Promise that resolves to the JSON-LD output.\n */\napi.fromRDF = async (\n dataset,\n options\n) => {\n const defaultGraph = {};\n const graphMap = {'@default': defaultGraph};\n const referencedOnce = {};\n const {\n useRdfType = false,\n useNativeTypes = false,\n rdfDirection = null\n } = options;\n\n for(const quad of dataset) {\n // TODO: change 'name' to 'graph'\n const name = (quad.graph.termType === 'DefaultGraph') ?\n '@default' : quad.graph.value;\n if(!(name in graphMap)) {\n graphMap[name] = {};\n }\n if(name !== '@default' && !(name in defaultGraph)) {\n defaultGraph[name] = {'@id': name};\n }\n\n const nodeMap = graphMap[name];\n\n // get subject, predicate, object\n const s = quad.subject.value;\n const p = quad.predicate.value;\n const o = quad.object;\n\n if(!(s in nodeMap)) {\n nodeMap[s] = {'@id': s};\n }\n const node = nodeMap[s];\n\n const objectIsNode = o.termType.endsWith('Node');\n if(objectIsNode && !(o.value in nodeMap)) {\n nodeMap[o.value] = {'@id': o.value};\n }\n\n if(p === RDF_TYPE && !useRdfType && objectIsNode) {\n _addValue(node, '@type', o.value, {propertyIsArray: true});\n continue;\n }\n\n const value = _RDFToObject(o, useNativeTypes, rdfDirection, options);\n _addValue(node, p, value, {propertyIsArray: true});\n\n // object may be an RDF list/partial list node but we can't know easily\n // until all triples are read\n if(objectIsNode) {\n if(o.value === RDF_NIL) {\n // track rdf:nil uniquely per graph\n const object = nodeMap[o.value];\n if(!('usages' in object)) {\n object.usages = [];\n }\n object.usages.push({\n node,\n property: p,\n value\n });\n } else if(o.value in referencedOnce) {\n // object referenced more than once\n referencedOnce[o.value] = false;\n } else {\n // keep track of single reference\n referencedOnce[o.value] = {\n node,\n property: p,\n value\n };\n }\n }\n }\n\n /*\n for(let name in dataset) {\n const graph = dataset[name];\n if(!(name in graphMap)) {\n graphMap[name] = {};\n }\n if(name !== '@default' && !(name in defaultGraph)) {\n defaultGraph[name] = {'@id': name};\n }\n const nodeMap = graphMap[name];\n for(let ti = 0; ti < graph.length; ++ti) {\n const triple = graph[ti];\n\n // get subject, predicate, object\n const s = triple.subject.value;\n const p = triple.predicate.value;\n const o = triple.object;\n\n if(!(s in nodeMap)) {\n nodeMap[s] = {'@id': s};\n }\n const node = nodeMap[s];\n\n const objectIsId = (o.type === 'IRI' || o.type === 'blank node');\n if(objectIsId && !(o.value in nodeMap)) {\n nodeMap[o.value] = {'@id': o.value};\n }\n\n if(p === RDF_TYPE && !useRdfType && objectIsId) {\n _addValue(node, '@type', o.value, {propertyIsArray: true});\n continue;\n }\n\n const value = _RDFToObject(o, useNativeTypes);\n _addValue(node, p, value, {propertyIsArray: true});\n\n // object may be an RDF list/partial list node but we can't know easily\n // until all triples are read\n if(objectIsId) {\n if(o.value === RDF_NIL) {\n // track rdf:nil uniquely per graph\n const object = nodeMap[o.value];\n if(!('usages' in object)) {\n object.usages = [];\n }\n object.usages.push({\n node: node,\n property: p,\n value: value\n });\n } else if(o.value in referencedOnce) {\n // object referenced more than once\n referencedOnce[o.value] = false;\n } else {\n // keep track of single reference\n referencedOnce[o.value] = {\n node: node,\n property: p,\n value: value\n };\n }\n }\n }\n }*/\n\n // convert linked lists to @list arrays\n for(const name in graphMap) {\n const graphObject = graphMap[name];\n\n // no @lists to be converted, continue\n if(!(RDF_NIL in graphObject)) {\n continue;\n }\n\n // iterate backwards through each RDF list\n const nil = graphObject[RDF_NIL];\n if(!nil.usages) {\n continue;\n }\n for(let usage of nil.usages) {\n let node = usage.node;\n let property = usage.property;\n let head = usage.value;\n const list = [];\n const listNodes = [];\n\n // ensure node is a well-formed list node; it must:\n // 1. Be referenced only once.\n // 2. Have an array for rdf:first that has 1 item.\n // 3. Have an array for rdf:rest that has 1 item.\n // 4. Have no keys other than: @id, rdf:first, rdf:rest, and,\n // optionally, @type where the value is rdf:List.\n let nodeKeyCount = Object.keys(node).length;\n while(property === RDF_REST &&\n types.isObject(referencedOnce[node['@id']]) &&\n types.isArray(node[RDF_FIRST]) && node[RDF_FIRST].length === 1 &&\n types.isArray(node[RDF_REST]) && node[RDF_REST].length === 1 &&\n (nodeKeyCount === 3 ||\n (nodeKeyCount === 4 && types.isArray(node['@type']) &&\n node['@type'].length === 1 && node['@type'][0] === RDF_LIST))) {\n list.push(node[RDF_FIRST][0]);\n listNodes.push(node['@id']);\n\n // get next node, moving backwards through list\n usage = referencedOnce[node['@id']];\n node = usage.node;\n property = usage.property;\n head = usage.value;\n nodeKeyCount = Object.keys(node).length;\n\n // if node is not a blank node, then list head found\n if(!graphTypes.isBlankNode(node)) {\n break;\n }\n }\n\n // transform list into @list object\n delete head['@id'];\n head['@list'] = list.reverse();\n for(const listNode of listNodes) {\n delete graphObject[listNode];\n }\n }\n\n delete nil.usages;\n }\n\n const result = [];\n const subjects = Object.keys(defaultGraph).sort();\n for(const subject of subjects) {\n const node = defaultGraph[subject];\n if(subject in graphMap) {\n const graph = node['@graph'] = [];\n const graphObject = graphMap[subject];\n const graphSubjects = Object.keys(graphObject).sort();\n for(const graphSubject of graphSubjects) {\n const node = graphObject[graphSubject];\n // only add full subjects to top-level\n if(!graphTypes.isSubjectReference(node)) {\n graph.push(node);\n }\n }\n }\n // only add full subjects to top-level\n if(!graphTypes.isSubjectReference(node)) {\n result.push(node);\n }\n }\n\n return result;\n};\n\n/**\n * Converts an RDF triple object to a JSON-LD object.\n *\n * @param o the RDF triple object to convert.\n * @param useNativeTypes true to output native types, false not to.\n * @param rdfDirection text direction mode [null, i18n-datatype]\n * @param options top level API options\n *\n * @return the JSON-LD object.\n */\nfunction _RDFToObject(o, useNativeTypes, rdfDirection, options) {\n // convert NamedNode/BlankNode object to JSON-LD\n if(o.termType.endsWith('Node')) {\n return {'@id': o.value};\n }\n\n // convert literal to JSON-LD\n const rval = {'@value': o.value};\n\n // add language\n if(o.language) {\n if(!o.language.match(REGEX_BCP47)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid @language value',\n level: 'warning',\n message: '@language value must be valid BCP47.',\n details: {\n language: o.language\n }\n },\n options\n });\n }\n }\n rval['@language'] = o.language;\n } else {\n let type = o.datatype.value;\n if(!type) {\n type = XSD_STRING;\n }\n if(type === RDF_JSON_LITERAL) {\n type = '@json';\n try {\n rval['@value'] = JSON.parse(rval['@value']);\n } catch(e) {\n throw new JsonLdError(\n 'JSON literal could not be parsed.',\n 'jsonld.InvalidJsonLiteral',\n {code: 'invalid JSON literal', value: rval['@value'], cause: e});\n }\n }\n // use native types for certain xsd types\n if(useNativeTypes) {\n if(type === XSD_BOOLEAN) {\n if(rval['@value'] === 'true') {\n rval['@value'] = true;\n } else if(rval['@value'] === 'false') {\n rval['@value'] = false;\n }\n } else if(types.isNumeric(rval['@value'])) {\n if(type === XSD_INTEGER) {\n const i = parseInt(rval['@value'], 10);\n if(i.toFixed(0) === rval['@value']) {\n rval['@value'] = i;\n }\n } else if(type === XSD_DOUBLE) {\n rval['@value'] = parseFloat(rval['@value']);\n }\n }\n // do not add native type\n if(![XSD_BOOLEAN, XSD_INTEGER, XSD_DOUBLE, XSD_STRING].includes(type)) {\n rval['@type'] = type;\n }\n } else if(rdfDirection === 'i18n-datatype' &&\n type.startsWith('https://www.w3.org/ns/i18n#')) {\n const [, language, direction] = type.split(/[#_]/);\n if(language.length > 0) {\n rval['@language'] = language;\n if(!language.match(REGEX_BCP47)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid @language value',\n level: 'warning',\n message: '@language value must be valid BCP47.',\n details: {\n language\n }\n },\n options\n });\n }\n }\n }\n rval['@direction'] = direction;\n } else if(type !== XSD_STRING) {\n rval['@type'] = type;\n }\n }\n\n return rval;\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst types = require('./types');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Returns true if the given value is a subject with properties.\n *\n * @param v the value to check.\n *\n * @return true if the value is a subject with properties, false if not.\n */\napi.isSubject = v => {\n // Note: A value is a subject if all of these hold true:\n // 1. It is an Object.\n // 2. It is not a @value, @set, or @list.\n // 3. It has more than 1 key OR any existing key is not @id.\n if(types.isObject(v) &&\n !(('@value' in v) || ('@set' in v) || ('@list' in v))) {\n const keyCount = Object.keys(v).length;\n return (keyCount > 1 || !('@id' in v));\n }\n return false;\n};\n\n/**\n * Returns true if the given value is a subject reference.\n *\n * @param v the value to check.\n *\n * @return true if the value is a subject reference, false if not.\n */\napi.isSubjectReference = v =>\n // Note: A value is a subject reference if all of these hold true:\n // 1. It is an Object.\n // 2. It has a single key: @id.\n (types.isObject(v) && Object.keys(v).length === 1 && ('@id' in v));\n\n/**\n * Returns true if the given value is a @value.\n *\n * @param v the value to check.\n *\n * @return true if the value is a @value, false if not.\n */\napi.isValue = v =>\n // Note: A value is a @value if all of these hold true:\n // 1. It is an Object.\n // 2. It has the @value property.\n types.isObject(v) && ('@value' in v);\n\n/**\n * Returns true if the given value is a @list.\n *\n * @param v the value to check.\n *\n * @return true if the value is a @list, false if not.\n */\napi.isList = v =>\n // Note: A value is a @list if all of these hold true:\n // 1. It is an Object.\n // 2. It has the @list property.\n types.isObject(v) && ('@list' in v);\n\n/**\n * Returns true if the given value is a @graph.\n *\n * @return true if the value is a @graph, false if not.\n */\napi.isGraph = v => {\n // Note: A value is a graph if all of these hold true:\n // 1. It is an object.\n // 2. It has an `@graph` key.\n // 3. It may have '@id' or '@index'\n return types.isObject(v) &&\n '@graph' in v &&\n Object.keys(v)\n .filter(key => key !== '@id' && key !== '@index').length === 1;\n};\n\n/**\n * Returns true if the given value is a simple @graph.\n *\n * @return true if the value is a simple @graph, false if not.\n */\napi.isSimpleGraph = v => {\n // Note: A value is a simple graph if all of these hold true:\n // 1. It is an object.\n // 2. It has an `@graph` key.\n // 3. It has only 1 key or 2 keys where one of them is `@index`.\n return api.isGraph(v) && !('@id' in v);\n};\n\n/**\n * Returns true if the given value is a blank node.\n *\n * @param v the value to check.\n *\n * @return true if the value is a blank node, false if not.\n */\napi.isBlankNode = v => {\n // Note: A value is a blank node if all of these hold true:\n // 1. It is an Object.\n // 2. If it has an @id key that is not a string OR begins with '_:'.\n // 3. It has no keys OR is not a @value, @set, or @list.\n if(types.isObject(v)) {\n if('@id' in v) {\n const id = v['@id'];\n return !types.isString(id) || id.indexOf('_:') === 0;\n }\n return (Object.keys(v).length === 0 ||\n !(('@value' in v) || ('@set' in v) || ('@list' in v)));\n }\n return false;\n};\n","/**\n * A JavaScript implementation of the JSON-LD API.\n *\n * @author Dave Longley\n *\n * @license BSD 3-Clause License\n * Copyright (c) 2011-2022 Digital Bazaar, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * Neither the name of the Digital Bazaar, Inc. nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n * IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\n * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\n * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\nconst canonize = require('rdf-canonize');\nconst platform = require('./platform');\nconst util = require('./util');\nconst ContextResolver = require('./ContextResolver');\nconst IdentifierIssuer = util.IdentifierIssuer;\nconst JsonLdError = require('./JsonLdError');\nconst LRU = require('lru-cache');\nconst NQuads = require('./NQuads');\n\nconst {expand: _expand} = require('./expand');\nconst {flatten: _flatten} = require('./flatten');\nconst {fromRDF: _fromRDF} = require('./fromRdf');\nconst {toRDF: _toRDF} = require('./toRdf');\n\nconst {\n frameMergedOrDefault: _frameMergedOrDefault,\n cleanupNull: _cleanupNull\n} = require('./frame');\n\nconst {\n isArray: _isArray,\n isObject: _isObject,\n isString: _isString\n} = require('./types');\n\nconst {\n isSubjectReference: _isSubjectReference,\n} = require('./graphTypes');\n\nconst {\n expandIri: _expandIri,\n getInitialContext: _getInitialContext,\n process: _processContext,\n processingMode: _processingMode\n} = require('./context');\n\nconst {\n compact: _compact,\n compactIri: _compactIri\n} = require('./compact');\n\nconst {\n createNodeMap: _createNodeMap,\n createMergedNodeMap: _createMergedNodeMap,\n mergeNodeMaps: _mergeNodeMaps\n} = require('./nodeMap');\n\nconst {\n logEventHandler: _logEventHandler,\n logWarningEventHandler: _logWarningEventHandler,\n safeEventHandler: _safeEventHandler,\n setDefaultEventHandler: _setDefaultEventHandler,\n setupEventHandler: _setupEventHandler,\n strictEventHandler: _strictEventHandler,\n unhandledEventHandler: _unhandledEventHandler\n} = require('./events');\n\n/* eslint-disable indent */\n// attaches jsonld API to the given object\nconst wrapper = function(jsonld) {\n\n/** Registered RDF dataset parsers hashed by content-type. */\nconst _rdfParsers = {};\n\n// resolved context cache\n// TODO: consider basing max on context size rather than number\nconst RESOLVED_CONTEXT_CACHE_MAX_SIZE = 100;\nconst _resolvedContextCache = new LRU({max: RESOLVED_CONTEXT_CACHE_MAX_SIZE});\n\n/* Core API */\n\n/**\n * Performs JSON-LD compaction.\n *\n * @param input the JSON-LD input to compact.\n * @param ctx the context to compact with.\n * @param [options] options to use:\n * [base] the base IRI to use.\n * [compactArrays] true to compact arrays to single values when\n * appropriate, false not to (default: true).\n * [compactToRelative] true to compact IRIs to be relative to document\n * base, false to keep absolute (default: true)\n * [graph] true to always output a top-level graph (default: false).\n * [expandContext] a context to expand with.\n * [skipExpansion] true to assume the input is expanded and skip\n * expansion, false not to, defaults to false.\n * [documentLoader(url, options)] the document loader.\n * [framing] true if compaction is occuring during a framing operation.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the compacted output.\n */\njsonld.compact = async function(input, ctx, options) {\n if(arguments.length < 2) {\n throw new TypeError('Could not compact, too few arguments.');\n }\n\n if(ctx === null) {\n throw new JsonLdError(\n 'The compaction context must not be null.',\n 'jsonld.CompactError', {code: 'invalid local context'});\n }\n\n // nothing to compact\n if(input === null) {\n return null;\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : '',\n compactArrays: true,\n compactToRelative: true,\n graph: false,\n skipExpansion: false,\n link: false,\n issuer: new IdentifierIssuer('_:b'),\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n if(options.link) {\n // force skip expansion when linking, \"link\" is not part of the public\n // API, it should only be called from framing\n options.skipExpansion = true;\n }\n if(!options.compactToRelative) {\n delete options.base;\n }\n\n // expand input\n let expanded;\n if(options.skipExpansion) {\n expanded = input;\n } else {\n expanded = await jsonld.expand(input, options);\n }\n\n // process context\n const activeCtx = await jsonld.processContext(\n _getInitialContext(options), ctx, options);\n\n // do compaction\n let compacted = await _compact({\n activeCtx,\n element: expanded,\n options\n });\n\n // perform clean up\n if(options.compactArrays && !options.graph && _isArray(compacted)) {\n if(compacted.length === 1) {\n // simplify to a single item\n compacted = compacted[0];\n } else if(compacted.length === 0) {\n // simplify to an empty object\n compacted = {};\n }\n } else if(options.graph && _isObject(compacted)) {\n // always use array if graph option is on\n compacted = [compacted];\n }\n\n // follow @context key\n if(_isObject(ctx) && '@context' in ctx) {\n ctx = ctx['@context'];\n }\n\n // build output context\n ctx = util.clone(ctx);\n if(!_isArray(ctx)) {\n ctx = [ctx];\n }\n // remove empty contexts\n const tmp = ctx;\n ctx = [];\n for(let i = 0; i < tmp.length; ++i) {\n if(!_isObject(tmp[i]) || Object.keys(tmp[i]).length > 0) {\n ctx.push(tmp[i]);\n }\n }\n\n // remove array if only one context\n const hasContext = (ctx.length > 0);\n if(ctx.length === 1) {\n ctx = ctx[0];\n }\n\n // add context and/or @graph\n if(_isArray(compacted)) {\n // use '@graph' keyword\n const graphAlias = _compactIri({\n activeCtx, iri: '@graph', relativeTo: {vocab: true}\n });\n const graph = compacted;\n compacted = {};\n if(hasContext) {\n compacted['@context'] = ctx;\n }\n compacted[graphAlias] = graph;\n } else if(_isObject(compacted) && hasContext) {\n // reorder keys so @context is first\n const graph = compacted;\n compacted = {'@context': ctx};\n for(const key in graph) {\n compacted[key] = graph[key];\n }\n }\n\n return compacted;\n};\n\n/**\n * Performs JSON-LD expansion.\n *\n * @param input the JSON-LD input to expand.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [keepFreeFloatingNodes] true to keep free-floating nodes,\n * false not to, defaults to false.\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the expanded output.\n */\njsonld.expand = async function(input, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not expand, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n keepFreeFloatingNodes: false,\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // build set of objects that may have @contexts to resolve\n const toResolve = {};\n\n // build set of contexts to process prior to expansion\n const contextsToProcess = [];\n\n // if an `expandContext` has been given ensure it gets resolved\n if('expandContext' in options) {\n const expandContext = util.clone(options.expandContext);\n if(_isObject(expandContext) && '@context' in expandContext) {\n toResolve.expandContext = expandContext;\n } else {\n toResolve.expandContext = {'@context': expandContext};\n }\n contextsToProcess.push(toResolve.expandContext);\n }\n\n // if input is a string, attempt to dereference remote document\n let defaultBase;\n if(!_isString(input)) {\n // input is not a URL, do not need to retrieve it first\n toResolve.input = util.clone(input);\n } else {\n // load remote doc\n const remoteDoc = await jsonld.get(input, options);\n defaultBase = remoteDoc.documentUrl;\n toResolve.input = remoteDoc.document;\n if(remoteDoc.contextUrl) {\n // context included in HTTP link header and must be resolved\n toResolve.remoteContext = {'@context': remoteDoc.contextUrl};\n contextsToProcess.push(toResolve.remoteContext);\n }\n }\n\n // set default base\n if(!('base' in options)) {\n options.base = defaultBase || '';\n }\n\n // process any additional contexts\n let activeCtx = _getInitialContext(options);\n for(const localCtx of contextsToProcess) {\n activeCtx = await _processContext({activeCtx, localCtx, options});\n }\n\n // expand resolved input\n let expanded = await _expand({\n activeCtx,\n element: toResolve.input,\n options\n });\n\n // optimize away @graph with no other properties\n if(_isObject(expanded) && ('@graph' in expanded) &&\n Object.keys(expanded).length === 1) {\n expanded = expanded['@graph'];\n } else if(expanded === null) {\n expanded = [];\n }\n\n // normalize to an array\n if(!_isArray(expanded)) {\n expanded = [expanded];\n }\n\n return expanded;\n};\n\n/**\n * Performs JSON-LD flattening.\n *\n * @param input the JSON-LD to flatten.\n * @param ctx the context to use to compact the flattened output, or null.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [documentLoader(url, options)] the document loader.\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the flattened output.\n */\njsonld.flatten = async function(input, ctx, options) {\n if(arguments.length < 1) {\n return new TypeError('Could not flatten, too few arguments.');\n }\n\n if(typeof ctx === 'function') {\n ctx = null;\n } else {\n ctx = ctx || null;\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : '',\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // expand input\n const expanded = await jsonld.expand(input, options);\n\n // do flattening\n const flattened = _flatten(expanded);\n\n if(ctx === null) {\n // no compaction required\n return flattened;\n }\n\n // compact result (force @graph option to true, skip expansion)\n options.graph = true;\n options.skipExpansion = true;\n const compacted = await jsonld.compact(flattened, ctx, options);\n\n return compacted;\n};\n\n/**\n * Performs JSON-LD framing.\n *\n * @param input the JSON-LD input to frame.\n * @param frame the JSON-LD frame to use.\n * @param [options] the framing options.\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [embed] default @embed flag: '@last', '@always', '@never', '@link'\n * (default: '@last').\n * [explicit] default @explicit flag (default: false).\n * [requireAll] default @requireAll flag (default: true).\n * [omitDefault] default @omitDefault flag (default: false).\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the framed output.\n */\njsonld.frame = async function(input, frame, options) {\n if(arguments.length < 2) {\n throw new TypeError('Could not frame, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : '',\n embed: '@once',\n explicit: false,\n requireAll: false,\n omitDefault: false,\n bnodesToClear: [],\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // if frame is a string, attempt to dereference remote document\n if(_isString(frame)) {\n // load remote doc\n const remoteDoc = await jsonld.get(frame, options);\n frame = remoteDoc.document;\n\n if(remoteDoc.contextUrl) {\n // inject link header @context into frame\n let ctx = frame['@context'];\n if(!ctx) {\n ctx = remoteDoc.contextUrl;\n } else if(_isArray(ctx)) {\n ctx.push(remoteDoc.contextUrl);\n } else {\n ctx = [ctx, remoteDoc.contextUrl];\n }\n frame['@context'] = ctx;\n }\n }\n\n const frameContext = frame ? frame['@context'] || {} : {};\n\n // process context\n const activeCtx = await jsonld.processContext(\n _getInitialContext(options), frameContext, options);\n\n // mode specific defaults\n if(!options.hasOwnProperty('omitGraph')) {\n options.omitGraph = _processingMode(activeCtx, 1.1);\n }\n if(!options.hasOwnProperty('pruneBlankNodeIdentifiers')) {\n options.pruneBlankNodeIdentifiers = _processingMode(activeCtx, 1.1);\n }\n\n // expand input\n const expanded = await jsonld.expand(input, options);\n\n // expand frame\n const opts = {...options};\n opts.isFrame = true;\n opts.keepFreeFloatingNodes = true;\n const expandedFrame = await jsonld.expand(frame, opts);\n\n // if the unexpanded frame includes a key expanding to @graph, frame the\n // default graph, otherwise, the merged graph\n const frameKeys = Object.keys(frame)\n .map(key => _expandIri(activeCtx, key, {vocab: true}));\n opts.merged = !frameKeys.includes('@graph');\n opts.is11 = _processingMode(activeCtx, 1.1);\n\n // do framing\n const framed = _frameMergedOrDefault(expanded, expandedFrame, opts);\n\n opts.graph = !options.omitGraph;\n opts.skipExpansion = true;\n opts.link = {};\n opts.framing = true;\n let compacted = await jsonld.compact(framed, frameContext, opts);\n\n // replace @null with null, compacting arrays\n opts.link = {};\n compacted = _cleanupNull(compacted, opts);\n\n return compacted;\n};\n\n/**\n * **Experimental**\n *\n * Links a JSON-LD document's nodes in memory.\n *\n * @param input the JSON-LD document to link.\n * @param [ctx] the JSON-LD context to apply.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the linked output.\n */\njsonld.link = async function(input, ctx, options) {\n // API matches running frame with a wildcard frame and embed: '@link'\n // get arguments\n const frame = {};\n if(ctx) {\n frame['@context'] = ctx;\n }\n frame['@embed'] = '@link';\n return jsonld.frame(input, frame, options);\n};\n\n/**\n * Performs RDF dataset normalization on the given input. The input is JSON-LD\n * unless the 'inputFormat' option is used. The output is an RDF dataset\n * unless the 'format' option is used.\n *\n * Note: Canonicalization sets `safe` to `true` and `base` to `null` by\n * default in order to produce safe outputs and \"fail closed\" by default. This\n * is different from the other API transformations in this version which\n * allow unsafe defaults (for cryptographic usage) in order to comply with the\n * JSON-LD 1.1 specification.\n *\n * @param input the input to normalize as JSON-LD or as a format specified by\n * the 'inputFormat' option.\n * @param [options] the options to use:\n * [algorithm] the normalization algorithm to use, `URDNA2015` or\n * `URGNA2012` (default: `URDNA2015`).\n * [base] the base IRI to use (default: `null`).\n * [expandContext] a context to expand with.\n * [skipExpansion] true to assume the input is expanded and skip\n * expansion, false not to, defaults to false.\n * [inputFormat] the format if input is not JSON-LD:\n * 'application/n-quads' for N-Quads.\n * [format] the format if output is a string:\n * 'application/n-quads' for N-Quads.\n * [documentLoader(url, options)] the document loader.\n * [useNative] true to use a native canonize algorithm\n * [safe] true to use safe mode. (default: true).\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the normalized output.\n */\njsonld.normalize = jsonld.canonize = async function(input, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not canonize, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : null,\n algorithm: 'URDNA2015',\n skipExpansion: false,\n safe: true,\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n if('inputFormat' in options) {\n if(options.inputFormat !== 'application/n-quads' &&\n options.inputFormat !== 'application/nquads') {\n throw new JsonLdError(\n 'Unknown canonicalization input format.',\n 'jsonld.CanonizeError');\n }\n // TODO: `await` for async parsers\n const parsedInput = NQuads.parse(input);\n\n // do canonicalization\n return canonize.canonize(parsedInput, options);\n }\n\n // convert to RDF dataset then do normalization\n const opts = {...options};\n delete opts.format;\n opts.produceGeneralizedRdf = false;\n const dataset = await jsonld.toRDF(input, opts);\n\n // do canonicalization\n return canonize.canonize(dataset, options);\n};\n\n/**\n * Converts an RDF dataset to JSON-LD.\n *\n * @param dataset a serialized string of RDF in a format specified by the\n * format option or an RDF dataset to convert.\n * @param [options] the options to use:\n * [format] the format if dataset param must first be parsed:\n * 'application/n-quads' for N-Quads (default).\n * [rdfParser] a custom RDF-parser to use to parse the dataset.\n * [useRdfType] true to use rdf:type, false to use @type\n * (default: false).\n * [useNativeTypes] true to convert XSD types into native types\n * (boolean, integer, double), false not to (default: false).\n * [rdfDirection] 'i18n-datatype' to support RDF transformation of\n * @direction (default: null).\n * [safe] true to use safe mode. (default: false)\n *\n * @return a Promise that resolves to the JSON-LD document.\n */\njsonld.fromRDF = async function(dataset, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not convert from RDF, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n format: _isString(dataset) ? 'application/n-quads' : undefined\n });\n\n const {format} = options;\n let {rdfParser} = options;\n\n // handle special format\n if(format) {\n // check supported formats\n rdfParser = rdfParser || _rdfParsers[format];\n if(!rdfParser) {\n throw new JsonLdError(\n 'Unknown input format.',\n 'jsonld.UnknownFormat', {format});\n }\n } else {\n // no-op parser, assume dataset already parsed\n rdfParser = () => dataset;\n }\n\n // rdfParser must be synchronous or return a promise, no callback support\n const parsedDataset = await rdfParser(dataset);\n return _fromRDF(parsedDataset, options);\n};\n\n/**\n * Outputs the RDF dataset found in the given JSON-LD object.\n *\n * @param input the JSON-LD input.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [skipExpansion] true to assume the input is expanded and skip\n * expansion, false not to, defaults to false.\n * [format] the format to use to output a string:\n * 'application/n-quads' for N-Quads.\n * [produceGeneralizedRdf] true to output generalized RDF, false\n * to produce only standard RDF (default: false).\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the RDF dataset.\n */\njsonld.toRDF = async function(input, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not convert to RDF, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : '',\n skipExpansion: false,\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // TODO: support toRDF custom map?\n let expanded;\n if(options.skipExpansion) {\n expanded = input;\n } else {\n // expand input\n expanded = await jsonld.expand(input, options);\n }\n\n // output RDF dataset\n const dataset = _toRDF(expanded, options);\n if(options.format) {\n if(options.format === 'application/n-quads' ||\n options.format === 'application/nquads') {\n return NQuads.serialize(dataset);\n }\n throw new JsonLdError(\n 'Unknown output format.',\n 'jsonld.UnknownFormat', {format: options.format});\n }\n\n return dataset;\n};\n\n/**\n * **Experimental**\n *\n * Recursively flattens the nodes in the given JSON-LD input into a merged\n * map of node ID => node. All graphs will be merged into the default graph.\n *\n * @param input the JSON-LD input.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [issuer] a jsonld.IdentifierIssuer to use to label blank nodes.\n * [documentLoader(url, options)] the document loader.\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the merged node map.\n */\njsonld.createNodeMap = async function(input, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not create node map, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : '',\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // expand input\n const expanded = await jsonld.expand(input, options);\n\n return _createMergedNodeMap(expanded, options);\n};\n\n/**\n * **Experimental**\n *\n * Merges two or more JSON-LD documents into a single flattened document.\n *\n * @param docs the JSON-LD documents to merge together.\n * @param ctx the context to use to compact the merged result, or null.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [issuer] a jsonld.IdentifierIssuer to use to label blank nodes.\n * [mergeNodes] true to merge properties for nodes with the same ID,\n * false to ignore new properties for nodes with the same ID once\n * the ID has been defined; note that this may not prevent merging\n * new properties where a node is in the `object` position\n * (default: true).\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the merged output.\n */\njsonld.merge = async function(docs, ctx, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not merge, too few arguments.');\n }\n if(!_isArray(docs)) {\n throw new TypeError('Could not merge, \"docs\" must be an array.');\n }\n\n if(typeof ctx === 'function') {\n ctx = null;\n } else {\n ctx = ctx || null;\n }\n\n // set default options\n options = _setDefaults(options, {\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // expand all documents\n const expanded = await Promise.all(docs.map(doc => {\n const opts = {...options};\n return jsonld.expand(doc, opts);\n }));\n\n let mergeNodes = true;\n if('mergeNodes' in options) {\n mergeNodes = options.mergeNodes;\n }\n\n const issuer = options.issuer || new IdentifierIssuer('_:b');\n const graphs = {'@default': {}};\n\n for(let i = 0; i < expanded.length; ++i) {\n // uniquely relabel blank nodes\n const doc = util.relabelBlankNodes(expanded[i], {\n issuer: new IdentifierIssuer('_:b' + i + '-')\n });\n\n // add nodes to the shared node map graphs if merging nodes, to a\n // separate graph set if not\n const _graphs = (mergeNodes || i === 0) ? graphs : {'@default': {}};\n _createNodeMap(doc, _graphs, '@default', issuer);\n\n if(_graphs !== graphs) {\n // merge document graphs but don't merge existing nodes\n for(const graphName in _graphs) {\n const _nodeMap = _graphs[graphName];\n if(!(graphName in graphs)) {\n graphs[graphName] = _nodeMap;\n continue;\n }\n const nodeMap = graphs[graphName];\n for(const key in _nodeMap) {\n if(!(key in nodeMap)) {\n nodeMap[key] = _nodeMap[key];\n }\n }\n }\n }\n }\n\n // add all non-default graphs to default graph\n const defaultGraph = _mergeNodeMaps(graphs);\n\n // produce flattened output\n const flattened = [];\n const keys = Object.keys(defaultGraph).sort();\n for(let ki = 0; ki < keys.length; ++ki) {\n const node = defaultGraph[keys[ki]];\n // only add full subjects to top-level\n if(!_isSubjectReference(node)) {\n flattened.push(node);\n }\n }\n\n if(ctx === null) {\n return flattened;\n }\n\n // compact result (force @graph option to true, skip expansion)\n options.graph = true;\n options.skipExpansion = true;\n const compacted = await jsonld.compact(flattened, ctx, options);\n\n return compacted;\n};\n\n/**\n * The default document loader for external documents.\n *\n * @param url the URL to load.\n *\n * @return a promise that resolves to the remote document.\n */\nObject.defineProperty(jsonld, 'documentLoader', {\n get: () => jsonld._documentLoader,\n set: v => jsonld._documentLoader = v\n});\n// default document loader not implemented\njsonld.documentLoader = async url => {\n throw new JsonLdError(\n 'Could not retrieve a JSON-LD document from the URL. URL ' +\n 'dereferencing not implemented.', 'jsonld.LoadDocumentError',\n {code: 'loading document failed', url});\n};\n\n/**\n * Gets a remote JSON-LD document using the default document loader or\n * one given in the passed options.\n *\n * @param url the URL to fetch.\n * @param [options] the options to use:\n * [documentLoader] the document loader to use.\n *\n * @return a Promise that resolves to the retrieved remote document.\n */\njsonld.get = async function(url, options) {\n let load;\n if(typeof options.documentLoader === 'function') {\n load = options.documentLoader;\n } else {\n load = jsonld.documentLoader;\n }\n\n const remoteDoc = await load(url);\n\n try {\n if(!remoteDoc.document) {\n throw new JsonLdError(\n 'No remote document found at the given URL.',\n 'jsonld.NullRemoteDocument');\n }\n if(_isString(remoteDoc.document)) {\n remoteDoc.document = JSON.parse(remoteDoc.document);\n }\n } catch(e) {\n throw new JsonLdError(\n 'Could not retrieve a JSON-LD document from the URL.',\n 'jsonld.LoadDocumentError', {\n code: 'loading document failed',\n cause: e,\n remoteDoc\n });\n }\n\n return remoteDoc;\n};\n\n/**\n * Processes a local context, resolving any URLs as necessary, and returns a\n * new active context.\n *\n * @param activeCtx the current active context.\n * @param localCtx the local context to process.\n * @param [options] the options to use:\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the new active context.\n */\njsonld.processContext = async function(\n activeCtx, localCtx, options) {\n // set default options\n options = _setDefaults(options, {\n base: '',\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // return initial context early for null context\n if(localCtx === null) {\n return _getInitialContext(options);\n }\n\n // get URLs in localCtx\n localCtx = util.clone(localCtx);\n if(!(_isObject(localCtx) && '@context' in localCtx)) {\n localCtx = {'@context': localCtx};\n }\n\n return _processContext({activeCtx, localCtx, options});\n};\n\n// backwards compatibility\njsonld.getContextValue = require('./context').getContextValue;\n\n/**\n * Document loaders.\n */\njsonld.documentLoaders = {};\n\n/**\n * Assigns the default document loader for external document URLs to a built-in\n * default. Supported types currently include: 'xhr' and 'node'.\n *\n * @param type the type to set.\n * @param [params] the parameters required to use the document loader.\n */\njsonld.useDocumentLoader = function(type) {\n if(!(type in jsonld.documentLoaders)) {\n throw new JsonLdError(\n 'Unknown document loader type: \"' + type + '\"',\n 'jsonld.UnknownDocumentLoader',\n {type});\n }\n\n // set document loader\n jsonld.documentLoader = jsonld.documentLoaders[type].apply(\n jsonld, Array.prototype.slice.call(arguments, 1));\n};\n\n/**\n * Registers an RDF dataset parser by content-type, for use with\n * jsonld.fromRDF. An RDF dataset parser will always be given one parameter,\n * a string of input. An RDF dataset parser can be synchronous or\n * asynchronous (by returning a promise).\n *\n * @param contentType the content-type for the parser.\n * @param parser(input) the parser function (takes a string as a parameter\n * and either returns an RDF dataset or a Promise that resolves to one.\n */\njsonld.registerRDFParser = function(contentType, parser) {\n _rdfParsers[contentType] = parser;\n};\n\n/**\n * Unregisters an RDF dataset parser by content-type.\n *\n * @param contentType the content-type for the parser.\n */\njsonld.unregisterRDFParser = function(contentType) {\n delete _rdfParsers[contentType];\n};\n\n// register the N-Quads RDF parser\njsonld.registerRDFParser('application/n-quads', NQuads.parse);\njsonld.registerRDFParser('application/nquads', NQuads.parse);\n\n/* URL API */\njsonld.url = require('./url');\n\n/* Events API and handlers */\njsonld.logEventHandler = _logEventHandler;\njsonld.logWarningEventHandler = _logWarningEventHandler;\njsonld.safeEventHandler = _safeEventHandler;\njsonld.setDefaultEventHandler = _setDefaultEventHandler;\njsonld.strictEventHandler = _strictEventHandler;\njsonld.unhandledEventHandler = _unhandledEventHandler;\n\n/* Utility API */\njsonld.util = util;\n// backwards compatibility\nObject.assign(jsonld, util);\n\n// reexpose API as jsonld.promises for backwards compatability\njsonld.promises = jsonld;\n\n// backwards compatibility\njsonld.RequestQueue = require('./RequestQueue');\n\n/* WebIDL API */\njsonld.JsonLdProcessor = require('./JsonLdProcessor')(jsonld);\n\nplatform.setupGlobals(jsonld);\nplatform.setupDocumentLoaders(jsonld);\n\nfunction _setDefaults(options, {\n documentLoader = jsonld.documentLoader,\n ...defaults\n}) {\n // fail if obsolete options present\n if(options && 'compactionMap' in options) {\n throw new JsonLdError(\n '\"compactionMap\" not supported.',\n 'jsonld.OptionsError');\n }\n if(options && 'expansionMap' in options) {\n throw new JsonLdError(\n '\"expansionMap\" not supported.',\n 'jsonld.OptionsError');\n }\n return Object.assign(\n {},\n {documentLoader},\n defaults,\n options,\n {eventHandler: _setupEventHandler({options})}\n );\n}\n\n// end of jsonld API `wrapper` factory\nreturn jsonld;\n};\n\n// external APIs:\n\n// used to generate a new jsonld API instance\nconst factory = function() {\n return wrapper(function() {\n return factory();\n });\n};\n\n// wrap the main jsonld API instance\nwrapper(factory);\n// export API\nmodule.exports = factory;\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {isKeyword} = require('./context');\nconst graphTypes = require('./graphTypes');\nconst types = require('./types');\nconst util = require('./util');\nconst JsonLdError = require('./JsonLdError');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Creates a merged JSON-LD node map (node ID => node).\n *\n * @param input the expanded JSON-LD to create a node map of.\n * @param [options] the options to use:\n * [issuer] a jsonld.IdentifierIssuer to use to label blank nodes.\n *\n * @return the node map.\n */\napi.createMergedNodeMap = (input, options) => {\n options = options || {};\n\n // produce a map of all subjects and name each bnode\n const issuer = options.issuer || new util.IdentifierIssuer('_:b');\n const graphs = {'@default': {}};\n api.createNodeMap(input, graphs, '@default', issuer);\n\n // add all non-default graphs to default graph\n return api.mergeNodeMaps(graphs);\n};\n\n/**\n * Recursively flattens the subjects in the given JSON-LD expanded input\n * into a node map.\n *\n * @param input the JSON-LD expanded input.\n * @param graphs a map of graph name to subject map.\n * @param graph the name of the current graph.\n * @param issuer the blank node identifier issuer.\n * @param name the name assigned to the current input if it is a bnode.\n * @param list the list to append to, null for none.\n */\napi.createNodeMap = (input, graphs, graph, issuer, name, list) => {\n // recurse through array\n if(types.isArray(input)) {\n for(const node of input) {\n api.createNodeMap(node, graphs, graph, issuer, undefined, list);\n }\n return;\n }\n\n // add non-object to list\n if(!types.isObject(input)) {\n if(list) {\n list.push(input);\n }\n return;\n }\n\n // add values to list\n if(graphTypes.isValue(input)) {\n if('@type' in input) {\n let type = input['@type'];\n // rename @type blank node\n if(type.indexOf('_:') === 0) {\n input['@type'] = type = issuer.getId(type);\n }\n }\n if(list) {\n list.push(input);\n }\n return;\n } else if(list && graphTypes.isList(input)) {\n const _list = [];\n api.createNodeMap(input['@list'], graphs, graph, issuer, name, _list);\n list.push({'@list': _list});\n return;\n }\n\n // Note: At this point, input must be a subject.\n\n // spec requires @type to be named first, so assign names early\n if('@type' in input) {\n const types = input['@type'];\n for(const type of types) {\n if(type.indexOf('_:') === 0) {\n issuer.getId(type);\n }\n }\n }\n\n // get name for subject\n if(types.isUndefined(name)) {\n name = graphTypes.isBlankNode(input) ?\n issuer.getId(input['@id']) : input['@id'];\n }\n\n // add subject reference to list\n if(list) {\n list.push({'@id': name});\n }\n\n // create new subject or merge into existing one\n const subjects = graphs[graph];\n const subject = subjects[name] = subjects[name] || {};\n subject['@id'] = name;\n const properties = Object.keys(input).sort();\n for(let property of properties) {\n // skip @id\n if(property === '@id') {\n continue;\n }\n\n // handle reverse properties\n if(property === '@reverse') {\n const referencedNode = {'@id': name};\n const reverseMap = input['@reverse'];\n for(const reverseProperty in reverseMap) {\n const items = reverseMap[reverseProperty];\n for(const item of items) {\n let itemName = item['@id'];\n if(graphTypes.isBlankNode(item)) {\n itemName = issuer.getId(itemName);\n }\n api.createNodeMap(item, graphs, graph, issuer, itemName);\n util.addValue(\n subjects[itemName], reverseProperty, referencedNode,\n {propertyIsArray: true, allowDuplicate: false});\n }\n }\n continue;\n }\n\n // recurse into graph\n if(property === '@graph') {\n // add graph subjects map entry\n if(!(name in graphs)) {\n graphs[name] = {};\n }\n api.createNodeMap(input[property], graphs, name, issuer);\n continue;\n }\n\n // recurse into included\n if(property === '@included') {\n api.createNodeMap(input[property], graphs, graph, issuer);\n continue;\n }\n\n // copy non-@type keywords\n if(property !== '@type' && isKeyword(property)) {\n if(property === '@index' && property in subject &&\n (input[property] !== subject[property] ||\n input[property]['@id'] !== subject[property]['@id'])) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; conflicting @index property detected.',\n 'jsonld.SyntaxError',\n {code: 'conflicting indexes', subject});\n }\n subject[property] = input[property];\n continue;\n }\n\n // iterate over objects\n const objects = input[property];\n\n // if property is a bnode, assign it a new id\n if(property.indexOf('_:') === 0) {\n property = issuer.getId(property);\n }\n\n // ensure property is added for empty arrays\n if(objects.length === 0) {\n util.addValue(subject, property, [], {propertyIsArray: true});\n continue;\n }\n for(let o of objects) {\n if(property === '@type') {\n // rename @type blank nodes\n o = (o.indexOf('_:') === 0) ? issuer.getId(o) : o;\n }\n\n // handle embedded subject or subject reference\n if(graphTypes.isSubject(o) || graphTypes.isSubjectReference(o)) {\n // skip null @id\n if('@id' in o && !o['@id']) {\n continue;\n }\n\n // relabel blank node @id\n const id = graphTypes.isBlankNode(o) ?\n issuer.getId(o['@id']) : o['@id'];\n\n // add reference and recurse\n util.addValue(\n subject, property, {'@id': id},\n {propertyIsArray: true, allowDuplicate: false});\n api.createNodeMap(o, graphs, graph, issuer, id);\n } else if(graphTypes.isValue(o)) {\n util.addValue(\n subject, property, o,\n {propertyIsArray: true, allowDuplicate: false});\n } else if(graphTypes.isList(o)) {\n // handle @list\n const _list = [];\n api.createNodeMap(o['@list'], graphs, graph, issuer, name, _list);\n o = {'@list': _list};\n util.addValue(\n subject, property, o,\n {propertyIsArray: true, allowDuplicate: false});\n } else {\n // handle @value\n api.createNodeMap(o, graphs, graph, issuer, name);\n util.addValue(\n subject, property, o, {propertyIsArray: true, allowDuplicate: false});\n }\n }\n }\n};\n\n/**\n * Merge separate named graphs into a single merged graph including\n * all nodes from the default graph and named graphs.\n *\n * @param graphs a map of graph name to subject map.\n *\n * @return the merged graph map.\n */\napi.mergeNodeMapGraphs = graphs => {\n const merged = {};\n for(const name of Object.keys(graphs).sort()) {\n for(const id of Object.keys(graphs[name]).sort()) {\n const node = graphs[name][id];\n if(!(id in merged)) {\n merged[id] = {'@id': id};\n }\n const mergedNode = merged[id];\n\n for(const property of Object.keys(node).sort()) {\n if(isKeyword(property) && property !== '@type') {\n // copy keywords\n mergedNode[property] = util.clone(node[property]);\n } else {\n // merge objects\n for(const value of node[property]) {\n util.addValue(\n mergedNode, property, util.clone(value),\n {propertyIsArray: true, allowDuplicate: false});\n }\n }\n }\n }\n }\n\n return merged;\n};\n\napi.mergeNodeMaps = graphs => {\n // add all non-default graphs to default graph\n const defaultGraph = graphs['@default'];\n const graphNames = Object.keys(graphs).sort();\n for(const graphName of graphNames) {\n if(graphName === '@default') {\n continue;\n }\n const nodeMap = graphs[graphName];\n let subject = defaultGraph[graphName];\n if(!subject) {\n defaultGraph[graphName] = subject = {\n '@id': graphName,\n '@graph': []\n };\n } else if(!('@graph' in subject)) {\n subject['@graph'] = [];\n }\n const graph = subject['@graph'];\n for(const id of Object.keys(nodeMap).sort()) {\n const node = nodeMap[id];\n // only add full subjects\n if(!graphTypes.isSubjectReference(node)) {\n graph.push(node);\n }\n }\n }\n return defaultGraph;\n};\n","/*\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst xhrLoader = require('./documentLoaders/xhr');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Setup browser document loaders.\n *\n * @param jsonld the jsonld api.\n */\napi.setupDocumentLoaders = function(jsonld) {\n if(typeof XMLHttpRequest !== 'undefined') {\n jsonld.documentLoaders.xhr = xhrLoader;\n // use xhr document loader by default\n jsonld.useDocumentLoader('xhr');\n }\n};\n\n/**\n * Setup browser globals.\n *\n * @param jsonld the jsonld api.\n */\napi.setupGlobals = function(jsonld) {\n // setup browser global JsonLdProcessor\n if(typeof globalThis.JsonLdProcessor === 'undefined') {\n Object.defineProperty(globalThis, 'JsonLdProcessor', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: jsonld.JsonLdProcessor\n });\n }\n};\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {createNodeMap} = require('./nodeMap');\nconst {isKeyword} = require('./context');\nconst graphTypes = require('./graphTypes');\nconst jsonCanonicalize = require('canonicalize');\nconst types = require('./types');\nconst util = require('./util');\n\nconst {\n handleEvent: _handleEvent\n} = require('./events');\n\nconst {\n // RDF,\n // RDF_LIST,\n RDF_FIRST,\n RDF_REST,\n RDF_NIL,\n RDF_TYPE,\n // RDF_PLAIN_LITERAL,\n // RDF_XML_LITERAL,\n RDF_JSON_LITERAL,\n // RDF_OBJECT,\n RDF_LANGSTRING,\n\n // XSD,\n XSD_BOOLEAN,\n XSD_DOUBLE,\n XSD_INTEGER,\n XSD_STRING,\n} = require('./constants');\n\nconst {\n isAbsolute: _isAbsoluteIri\n} = require('./url');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Outputs an RDF dataset for the expanded JSON-LD input.\n *\n * @param input the expanded JSON-LD input.\n * @param options the RDF serialization options.\n *\n * @return the RDF dataset.\n */\napi.toRDF = (input, options) => {\n // create node map for default graph (and any named graphs)\n const issuer = new util.IdentifierIssuer('_:b');\n const nodeMap = {'@default': {}};\n createNodeMap(input, nodeMap, '@default', issuer);\n\n const dataset = [];\n const graphNames = Object.keys(nodeMap).sort();\n for(const graphName of graphNames) {\n let graphTerm;\n if(graphName === '@default') {\n graphTerm = {termType: 'DefaultGraph', value: ''};\n } else if(_isAbsoluteIri(graphName)) {\n if(graphName.startsWith('_:')) {\n graphTerm = {termType: 'BlankNode'};\n } else {\n graphTerm = {termType: 'NamedNode'};\n }\n graphTerm.value = graphName;\n } else {\n // skip relative IRIs (not valid RDF)\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative graph reference',\n level: 'warning',\n message: 'Relative graph reference found.',\n details: {\n graph: graphName\n }\n },\n options\n });\n }\n continue;\n }\n _graphToRDF(dataset, nodeMap[graphName], graphTerm, issuer, options);\n }\n\n return dataset;\n};\n\n/**\n * Adds RDF quads for a particular graph to the given dataset.\n *\n * @param dataset the dataset to append RDF quads to.\n * @param graph the graph to create RDF quads for.\n * @param graphTerm the graph term for each quad.\n * @param issuer a IdentifierIssuer for assigning blank node names.\n * @param options the RDF serialization options.\n *\n * @return the array of RDF triples for the given graph.\n */\nfunction _graphToRDF(dataset, graph, graphTerm, issuer, options) {\n const ids = Object.keys(graph).sort();\n for(const id of ids) {\n const node = graph[id];\n const properties = Object.keys(node).sort();\n for(let property of properties) {\n const items = node[property];\n if(property === '@type') {\n property = RDF_TYPE;\n } else if(isKeyword(property)) {\n continue;\n }\n\n for(const item of items) {\n // RDF subject\n const subject = {\n termType: id.startsWith('_:') ? 'BlankNode' : 'NamedNode',\n value: id\n };\n\n // skip relative IRI subjects (not valid RDF)\n if(!_isAbsoluteIri(id)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative subject reference',\n level: 'warning',\n message: 'Relative subject reference found.',\n details: {\n subject: id\n }\n },\n options\n });\n }\n continue;\n }\n\n // RDF predicate\n const predicate = {\n termType: property.startsWith('_:') ? 'BlankNode' : 'NamedNode',\n value: property\n };\n\n // skip relative IRI predicates (not valid RDF)\n if(!_isAbsoluteIri(property)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative predicate reference',\n level: 'warning',\n message: 'Relative predicate reference found.',\n details: {\n predicate: property\n }\n },\n options\n });\n }\n continue;\n }\n\n // skip blank node predicates unless producing generalized RDF\n if(predicate.termType === 'BlankNode' &&\n !options.produceGeneralizedRdf) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'blank node predicate',\n level: 'warning',\n message: 'Dropping blank node predicate.',\n details: {\n // FIXME: add better issuer API to get reverse mapping\n property: issuer.getOldIds()\n .find(key => issuer.getId(key) === property)\n }\n },\n options\n });\n }\n continue;\n }\n\n // convert list, value or node object to triple\n const object = _objectToRDF(\n item, issuer, dataset, graphTerm, options.rdfDirection, options);\n // skip null objects (they are relative IRIs)\n if(object) {\n dataset.push({\n subject,\n predicate,\n object,\n graph: graphTerm\n });\n }\n }\n }\n }\n}\n\n/**\n * Converts a @list value into linked list of blank node RDF quads\n * (an RDF collection).\n *\n * @param list the @list value.\n * @param issuer a IdentifierIssuer for assigning blank node names.\n * @param dataset the array of quads to append to.\n * @param graphTerm the graph term for each quad.\n * @param options the RDF serialization options.\n *\n * @return the head of the list.\n */\nfunction _listToRDF(list, issuer, dataset, graphTerm, rdfDirection, options) {\n const first = {termType: 'NamedNode', value: RDF_FIRST};\n const rest = {termType: 'NamedNode', value: RDF_REST};\n const nil = {termType: 'NamedNode', value: RDF_NIL};\n\n const last = list.pop();\n // Result is the head of the list\n const result = last ? {termType: 'BlankNode', value: issuer.getId()} : nil;\n let subject = result;\n\n for(const item of list) {\n const object = _objectToRDF(\n item, issuer, dataset, graphTerm, rdfDirection, options);\n const next = {termType: 'BlankNode', value: issuer.getId()};\n dataset.push({\n subject,\n predicate: first,\n object,\n graph: graphTerm\n });\n dataset.push({\n subject,\n predicate: rest,\n object: next,\n graph: graphTerm\n });\n subject = next;\n }\n\n // Tail of list\n if(last) {\n const object = _objectToRDF(\n last, issuer, dataset, graphTerm, rdfDirection, options);\n dataset.push({\n subject,\n predicate: first,\n object,\n graph: graphTerm\n });\n dataset.push({\n subject,\n predicate: rest,\n object: nil,\n graph: graphTerm\n });\n }\n\n return result;\n}\n\n/**\n * Converts a JSON-LD value object to an RDF literal or a JSON-LD string,\n * node object to an RDF resource, or adds a list.\n *\n * @param item the JSON-LD value or node object.\n * @param issuer a IdentifierIssuer for assigning blank node names.\n * @param dataset the dataset to append RDF quads to.\n * @param graphTerm the graph term for each quad.\n * @param options the RDF serialization options.\n *\n * @return the RDF literal or RDF resource.\n */\nfunction _objectToRDF(\n item, issuer, dataset, graphTerm, rdfDirection, options\n) {\n const object = {};\n\n // convert value object to RDF\n if(graphTypes.isValue(item)) {\n object.termType = 'Literal';\n object.value = undefined;\n object.datatype = {\n termType: 'NamedNode'\n };\n let value = item['@value'];\n const datatype = item['@type'] || null;\n\n // convert to XSD/JSON datatypes as appropriate\n if(datatype === '@json') {\n object.value = jsonCanonicalize(value);\n object.datatype.value = RDF_JSON_LITERAL;\n } else if(types.isBoolean(value)) {\n object.value = value.toString();\n object.datatype.value = datatype || XSD_BOOLEAN;\n } else if(types.isDouble(value) || datatype === XSD_DOUBLE) {\n if(!types.isDouble(value)) {\n value = parseFloat(value);\n }\n // canonical double representation\n object.value = value.toExponential(15).replace(/(\\d)0*e\\+?/, '$1E');\n object.datatype.value = datatype || XSD_DOUBLE;\n } else if(types.isNumber(value)) {\n object.value = value.toFixed(0);\n object.datatype.value = datatype || XSD_INTEGER;\n } else if(rdfDirection === 'i18n-datatype' &&\n '@direction' in item) {\n const datatype = 'https://www.w3.org/ns/i18n#' +\n (item['@language'] || '') +\n `_${item['@direction']}`;\n object.datatype.value = datatype;\n object.value = value;\n } else if('@language' in item) {\n object.value = value;\n object.datatype.value = datatype || RDF_LANGSTRING;\n object.language = item['@language'];\n } else {\n object.value = value;\n object.datatype.value = datatype || XSD_STRING;\n }\n } else if(graphTypes.isList(item)) {\n const _list = _listToRDF(\n item['@list'], issuer, dataset, graphTerm, rdfDirection, options);\n object.termType = _list.termType;\n object.value = _list.value;\n } else {\n // convert string/node object to RDF\n const id = types.isObject(item) ? item['@id'] : item;\n object.termType = id.startsWith('_:') ? 'BlankNode' : 'NamedNode';\n object.value = id;\n }\n\n // skip relative IRIs, not valid RDF\n if(object.termType === 'NamedNode' && !_isAbsoluteIri(object.value)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative object reference',\n level: 'warning',\n message: 'Relative object reference found.',\n details: {\n object: object.value\n }\n },\n options\n });\n }\n return null;\n }\n\n return object;\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Returns true if the given value is an Array.\n *\n * @param v the value to check.\n *\n * @return true if the value is an Array, false if not.\n */\napi.isArray = Array.isArray;\n\n/**\n * Returns true if the given value is a Boolean.\n *\n * @param v the value to check.\n *\n * @return true if the value is a Boolean, false if not.\n */\napi.isBoolean = v => (typeof v === 'boolean' ||\n Object.prototype.toString.call(v) === '[object Boolean]');\n\n/**\n * Returns true if the given value is a double.\n *\n * @param v the value to check.\n *\n * @return true if the value is a double, false if not.\n */\napi.isDouble = v => api.isNumber(v) &&\n (String(v).indexOf('.') !== -1 || Math.abs(v) >= 1e21);\n\n/**\n * Returns true if the given value is an empty Object.\n *\n * @param v the value to check.\n *\n * @return true if the value is an empty Object, false if not.\n */\napi.isEmptyObject = v => api.isObject(v) && Object.keys(v).length === 0;\n\n/**\n * Returns true if the given value is a Number.\n *\n * @param v the value to check.\n *\n * @return true if the value is a Number, false if not.\n */\napi.isNumber = v => (typeof v === 'number' ||\n Object.prototype.toString.call(v) === '[object Number]');\n\n/**\n * Returns true if the given value is numeric.\n *\n * @param v the value to check.\n *\n * @return true if the value is numeric, false if not.\n */\napi.isNumeric = v => !isNaN(parseFloat(v)) && isFinite(v);\n\n/**\n * Returns true if the given value is an Object.\n *\n * @param v the value to check.\n *\n * @return true if the value is an Object, false if not.\n */\napi.isObject = v => Object.prototype.toString.call(v) === '[object Object]';\n\n/**\n * Returns true if the given value is a String.\n *\n * @param v the value to check.\n *\n * @return true if the value is a String, false if not.\n */\napi.isString = v => (typeof v === 'string' ||\n Object.prototype.toString.call(v) === '[object String]');\n\n/**\n * Returns true if the given value is undefined.\n *\n * @param v the value to check.\n *\n * @return true if the value is undefined, false if not.\n */\napi.isUndefined = v => typeof v === 'undefined';\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst types = require('./types');\n\nconst api = {};\nmodule.exports = api;\n\n// define URL parser\n// parseUri 1.2.2\n// (c) Steven Levithan \n// MIT License\n// with local jsonld.js modifications\napi.parsers = {\n simple: {\n // RFC 3986 basic parts\n keys: [\n 'href', 'scheme', 'authority', 'path', 'query', 'fragment'\n ],\n /* eslint-disable-next-line max-len */\n regex: /^(?:([^:\\/?#]+):)?(?:\\/\\/([^\\/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?/\n },\n full: {\n keys: [\n 'href', 'protocol', 'scheme', 'authority', 'auth', 'user', 'password',\n 'hostname', 'port', 'path', 'directory', 'file', 'query', 'fragment'\n ],\n /* eslint-disable-next-line max-len */\n regex: /^(([^:\\/?#]+):)?(?:\\/\\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?))?(?:(((?:[^?#\\/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/\n }\n};\napi.parse = (str, parser) => {\n const parsed = {};\n const o = api.parsers[parser || 'full'];\n const m = o.regex.exec(str);\n let i = o.keys.length;\n while(i--) {\n parsed[o.keys[i]] = (m[i] === undefined) ? null : m[i];\n }\n\n // remove default ports in found in URLs\n if((parsed.scheme === 'https' && parsed.port === '443') ||\n (parsed.scheme === 'http' && parsed.port === '80')) {\n parsed.href = parsed.href.replace(':' + parsed.port, '');\n parsed.authority = parsed.authority.replace(':' + parsed.port, '');\n parsed.port = null;\n }\n\n parsed.normalizedPath = api.removeDotSegments(parsed.path);\n return parsed;\n};\n\n/**\n * Prepends a base IRI to the given relative IRI.\n *\n * @param base the base IRI.\n * @param iri the relative IRI.\n *\n * @return the absolute IRI.\n */\napi.prependBase = (base, iri) => {\n // skip IRI processing\n if(base === null) {\n return iri;\n }\n // already an absolute IRI\n if(api.isAbsolute(iri)) {\n return iri;\n }\n\n // parse base if it is a string\n if(!base || types.isString(base)) {\n base = api.parse(base || '');\n }\n\n // parse given IRI\n const rel = api.parse(iri);\n\n // per RFC3986 5.2.2\n const transform = {\n protocol: base.protocol || ''\n };\n\n if(rel.authority !== null) {\n transform.authority = rel.authority;\n transform.path = rel.path;\n transform.query = rel.query;\n } else {\n transform.authority = base.authority;\n\n if(rel.path === '') {\n transform.path = base.path;\n if(rel.query !== null) {\n transform.query = rel.query;\n } else {\n transform.query = base.query;\n }\n } else {\n if(rel.path.indexOf('/') === 0) {\n // IRI represents an absolute path\n transform.path = rel.path;\n } else {\n // merge paths\n let path = base.path;\n\n // append relative path to the end of the last directory from base\n path = path.substr(0, path.lastIndexOf('/') + 1);\n if((path.length > 0 || base.authority) && path.substr(-1) !== '/') {\n path += '/';\n }\n path += rel.path;\n\n transform.path = path;\n }\n transform.query = rel.query;\n }\n }\n\n if(rel.path !== '') {\n // remove slashes and dots in path\n transform.path = api.removeDotSegments(transform.path);\n }\n\n // construct URL\n let rval = transform.protocol;\n if(transform.authority !== null) {\n rval += '//' + transform.authority;\n }\n rval += transform.path;\n if(transform.query !== null) {\n rval += '?' + transform.query;\n }\n if(rel.fragment !== null) {\n rval += '#' + rel.fragment;\n }\n\n // handle empty base\n if(rval === '') {\n rval = './';\n }\n\n return rval;\n};\n\n/**\n * Removes a base IRI from the given absolute IRI.\n *\n * @param base the base IRI.\n * @param iri the absolute IRI.\n *\n * @return the relative IRI if relative to base, otherwise the absolute IRI.\n */\napi.removeBase = (base, iri) => {\n // skip IRI processing\n if(base === null) {\n return iri;\n }\n\n if(!base || types.isString(base)) {\n base = api.parse(base || '');\n }\n\n // establish base root\n let root = '';\n if(base.href !== '') {\n root += (base.protocol || '') + '//' + (base.authority || '');\n } else if(iri.indexOf('//')) {\n // support network-path reference with empty base\n root += '//';\n }\n\n // IRI not relative to base\n if(iri.indexOf(root) !== 0) {\n return iri;\n }\n\n // remove root from IRI and parse remainder\n const rel = api.parse(iri.substr(root.length));\n\n // remove path segments that match (do not remove last segment unless there\n // is a hash or query)\n const baseSegments = base.normalizedPath.split('/');\n const iriSegments = rel.normalizedPath.split('/');\n const last = (rel.fragment || rel.query) ? 0 : 1;\n while(baseSegments.length > 0 && iriSegments.length > last) {\n if(baseSegments[0] !== iriSegments[0]) {\n break;\n }\n baseSegments.shift();\n iriSegments.shift();\n }\n\n // use '../' for each non-matching base segment\n let rval = '';\n if(baseSegments.length > 0) {\n // don't count the last segment (if it ends with '/' last path doesn't\n // count and if it doesn't end with '/' it isn't a path)\n baseSegments.pop();\n for(let i = 0; i < baseSegments.length; ++i) {\n rval += '../';\n }\n }\n\n // prepend remaining segments\n rval += iriSegments.join('/');\n\n // add query and hash\n if(rel.query !== null) {\n rval += '?' + rel.query;\n }\n if(rel.fragment !== null) {\n rval += '#' + rel.fragment;\n }\n\n // handle empty base\n if(rval === '') {\n rval = './';\n }\n\n return rval;\n};\n\n/**\n * Removes dot segments from a URL path.\n *\n * @param path the path to remove dot segments from.\n */\napi.removeDotSegments = path => {\n // RFC 3986 5.2.4 (reworked)\n\n // empty path shortcut\n if(path.length === 0) {\n return '';\n }\n\n const input = path.split('/');\n const output = [];\n\n while(input.length > 0) {\n const next = input.shift();\n const done = input.length === 0;\n\n if(next === '.') {\n if(done) {\n // ensure output has trailing /\n output.push('');\n }\n continue;\n }\n\n if(next === '..') {\n output.pop();\n if(done) {\n // ensure output has trailing /\n output.push('');\n }\n continue;\n }\n\n output.push(next);\n }\n\n // if path was absolute, ensure output has leading /\n if(path[0] === '/' && output.length > 0 && output[0] !== '') {\n output.unshift('');\n }\n if(output.length === 1 && output[0] === '') {\n return '/';\n }\n\n return output.join('/');\n};\n\n// TODO: time better isAbsolute/isRelative checks using full regexes:\n// http://jmrware.com/articles/2009/uri_regexp/URI_regex.html\n\n// regex to check for absolute IRI (starting scheme and ':') or blank node IRI\nconst isAbsoluteRegex = /^([A-Za-z][A-Za-z0-9+-.]*|_):[^\\s]*$/;\n\n/**\n * Returns true if the given value is an absolute IRI or blank node IRI, false\n * if not.\n * Note: This weak check only checks for a correct starting scheme.\n *\n * @param v the value to check.\n *\n * @return true if the value is an absolute IRI, false if not.\n */\napi.isAbsolute = v => types.isString(v) && isAbsoluteRegex.test(v);\n\n/**\n * Returns true if the given value is a relative IRI, false if not.\n * Note: this is a weak check.\n *\n * @param v the value to check.\n *\n * @return true if the value is a relative IRI, false if not.\n */\napi.isRelative = v => types.isString(v);\n","/*\n * Copyright (c) 2017-2019 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst graphTypes = require('./graphTypes');\nconst types = require('./types');\n// TODO: move `IdentifierIssuer` to its own package\nconst IdentifierIssuer = require('rdf-canonize').IdentifierIssuer;\nconst JsonLdError = require('./JsonLdError');\n\n// constants\nconst REGEX_BCP47 = /^[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$/;\nconst REGEX_LINK_HEADERS = /(?:<[^>]*?>|\"[^\"]*?\"|[^,])+/g;\nconst REGEX_LINK_HEADER = /\\s*<([^>]*?)>\\s*(?:;\\s*(.*))?/;\nconst REGEX_LINK_HEADER_PARAMS =\n /(.*?)=(?:(?:\"([^\"]*?)\")|([^\"]*?))\\s*(?:(?:;\\s*)|$)/g;\nconst REGEX_KEYWORD = /^@[a-zA-Z]+$/;\n\nconst DEFAULTS = {\n headers: {\n accept: 'application/ld+json, application/json'\n }\n};\n\nconst api = {};\nmodule.exports = api;\napi.IdentifierIssuer = IdentifierIssuer;\napi.REGEX_BCP47 = REGEX_BCP47;\napi.REGEX_KEYWORD = REGEX_KEYWORD;\n\n/**\n * Clones an object, array, Map, Set, or string/number. If a typed JavaScript\n * object is given, such as a Date, it will be converted to a string.\n *\n * @param value the value to clone.\n *\n * @return the cloned value.\n */\napi.clone = function(value) {\n if(value && typeof value === 'object') {\n let rval;\n if(types.isArray(value)) {\n rval = [];\n for(let i = 0; i < value.length; ++i) {\n rval[i] = api.clone(value[i]);\n }\n } else if(value instanceof Map) {\n rval = new Map();\n for(const [k, v] of value) {\n rval.set(k, api.clone(v));\n }\n } else if(value instanceof Set) {\n rval = new Set();\n for(const v of value) {\n rval.add(api.clone(v));\n }\n } else if(types.isObject(value)) {\n rval = {};\n for(const key in value) {\n rval[key] = api.clone(value[key]);\n }\n } else {\n rval = value.toString();\n }\n return rval;\n }\n return value;\n};\n\n/**\n * Ensure a value is an array. If the value is an array, it is returned.\n * Otherwise, it is wrapped in an array.\n *\n * @param value the value to return as an array.\n *\n * @return the value as an array.\n */\napi.asArray = function(value) {\n return Array.isArray(value) ? value : [value];\n};\n\n/**\n * Builds an HTTP headers object for making a JSON-LD request from custom\n * headers and asserts the `accept` header isn't overridden.\n *\n * @param headers an object of headers with keys as header names and values\n * as header values.\n *\n * @return an object of headers with a valid `accept` header.\n */\napi.buildHeaders = (headers = {}) => {\n const hasAccept = Object.keys(headers).some(\n h => h.toLowerCase() === 'accept');\n\n if(hasAccept) {\n throw new RangeError(\n 'Accept header may not be specified; only \"' +\n DEFAULTS.headers.accept + '\" is supported.');\n }\n\n return Object.assign({Accept: DEFAULTS.headers.accept}, headers);\n};\n\n/**\n * Parses a link header. The results will be key'd by the value of \"rel\".\n *\n * Link: ;\n * rel=\"http://www.w3.org/ns/json-ld#context\"; type=\"application/ld+json\"\n *\n * Parses as: {\n * 'http://www.w3.org/ns/json-ld#context': {\n * target: http://json-ld.org/contexts/person.jsonld,\n * type: 'application/ld+json'\n * }\n * }\n *\n * If there is more than one \"rel\" with the same IRI, then entries in the\n * resulting map for that \"rel\" will be arrays.\n *\n * @param header the link header to parse.\n */\napi.parseLinkHeader = header => {\n const rval = {};\n // split on unbracketed/unquoted commas\n const entries = header.match(REGEX_LINK_HEADERS);\n for(let i = 0; i < entries.length; ++i) {\n let match = entries[i].match(REGEX_LINK_HEADER);\n if(!match) {\n continue;\n }\n const result = {target: match[1]};\n const params = match[2];\n while((match = REGEX_LINK_HEADER_PARAMS.exec(params))) {\n result[match[1]] = (match[2] === undefined) ? match[3] : match[2];\n }\n const rel = result.rel || '';\n if(Array.isArray(rval[rel])) {\n rval[rel].push(result);\n } else if(rval.hasOwnProperty(rel)) {\n rval[rel] = [rval[rel], result];\n } else {\n rval[rel] = result;\n }\n }\n return rval;\n};\n\n/**\n * Throws an exception if the given value is not a valid @type value.\n *\n * @param v the value to check.\n */\napi.validateTypeValue = (v, isFrame) => {\n if(types.isString(v)) {\n return;\n }\n\n if(types.isArray(v) && v.every(vv => types.isString(vv))) {\n return;\n }\n if(isFrame && types.isObject(v)) {\n switch(Object.keys(v).length) {\n case 0:\n // empty object is wildcard\n return;\n case 1:\n // default entry is all strings\n if('@default' in v &&\n api.asArray(v['@default']).every(vv => types.isString(vv))) {\n return;\n }\n }\n }\n\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@type\" value must a string, an array of ' +\n 'strings, an empty object, ' +\n 'or a default object.', 'jsonld.SyntaxError',\n {code: 'invalid type value', value: v});\n};\n\n/**\n * Returns true if the given subject has the given property.\n *\n * @param subject the subject to check.\n * @param property the property to look for.\n *\n * @return true if the subject has the given property, false if not.\n */\napi.hasProperty = (subject, property) => {\n if(subject.hasOwnProperty(property)) {\n const value = subject[property];\n return (!types.isArray(value) || value.length > 0);\n }\n return false;\n};\n\n/**\n * Determines if the given value is a property of the given subject.\n *\n * @param subject the subject to check.\n * @param property the property to check.\n * @param value the value to check.\n *\n * @return true if the value exists, false if not.\n */\napi.hasValue = (subject, property, value) => {\n if(api.hasProperty(subject, property)) {\n let val = subject[property];\n const isList = graphTypes.isList(val);\n if(types.isArray(val) || isList) {\n if(isList) {\n val = val['@list'];\n }\n for(let i = 0; i < val.length; ++i) {\n if(api.compareValues(value, val[i])) {\n return true;\n }\n }\n } else if(!types.isArray(value)) {\n // avoid matching the set of values with an array value parameter\n return api.compareValues(value, val);\n }\n }\n return false;\n};\n\n/**\n * Adds a value to a subject. If the value is an array, all values in the\n * array will be added.\n *\n * @param subject the subject to add the value to.\n * @param property the property that relates the value to the subject.\n * @param value the value to add.\n * @param [options] the options to use:\n * [propertyIsArray] true if the property is always an array, false\n * if not (default: false).\n * [valueIsArray] true if the value to be added should be preserved as\n * an array (lists) (default: false).\n * [allowDuplicate] true to allow duplicates, false not to (uses a\n * simple shallow comparison of subject ID or value) (default: true).\n * [prependValue] false to prepend value to any existing values.\n * (default: false)\n */\napi.addValue = (subject, property, value, options) => {\n options = options || {};\n if(!('propertyIsArray' in options)) {\n options.propertyIsArray = false;\n }\n if(!('valueIsArray' in options)) {\n options.valueIsArray = false;\n }\n if(!('allowDuplicate' in options)) {\n options.allowDuplicate = true;\n }\n if(!('prependValue' in options)) {\n options.prependValue = false;\n }\n\n if(options.valueIsArray) {\n subject[property] = value;\n } else if(types.isArray(value)) {\n if(value.length === 0 && options.propertyIsArray &&\n !subject.hasOwnProperty(property)) {\n subject[property] = [];\n }\n if(options.prependValue) {\n value = value.concat(subject[property]);\n subject[property] = [];\n }\n for(let i = 0; i < value.length; ++i) {\n api.addValue(subject, property, value[i], options);\n }\n } else if(subject.hasOwnProperty(property)) {\n // check if subject already has value if duplicates not allowed\n const hasValue = (!options.allowDuplicate &&\n api.hasValue(subject, property, value));\n\n // make property an array if value not present or always an array\n if(!types.isArray(subject[property]) &&\n (!hasValue || options.propertyIsArray)) {\n subject[property] = [subject[property]];\n }\n\n // add new value\n if(!hasValue) {\n if(options.prependValue) {\n subject[property].unshift(value);\n } else {\n subject[property].push(value);\n }\n }\n } else {\n // add new value as set or single value\n subject[property] = options.propertyIsArray ? [value] : value;\n }\n};\n\n/**\n * Gets all of the values for a subject's property as an array.\n *\n * @param subject the subject.\n * @param property the property.\n *\n * @return all of the values for a subject's property as an array.\n */\napi.getValues = (subject, property) => [].concat(subject[property] || []);\n\n/**\n * Removes a property from a subject.\n *\n * @param subject the subject.\n * @param property the property.\n */\napi.removeProperty = (subject, property) => {\n delete subject[property];\n};\n\n/**\n * Removes a value from a subject.\n *\n * @param subject the subject.\n * @param property the property that relates the value to the subject.\n * @param value the value to remove.\n * @param [options] the options to use:\n * [propertyIsArray] true if the property is always an array, false\n * if not (default: false).\n */\napi.removeValue = (subject, property, value, options) => {\n options = options || {};\n if(!('propertyIsArray' in options)) {\n options.propertyIsArray = false;\n }\n\n // filter out value\n const values = api.getValues(subject, property).filter(\n e => !api.compareValues(e, value));\n\n if(values.length === 0) {\n api.removeProperty(subject, property);\n } else if(values.length === 1 && !options.propertyIsArray) {\n subject[property] = values[0];\n } else {\n subject[property] = values;\n }\n};\n\n/**\n * Relabels all blank nodes in the given JSON-LD input.\n *\n * @param input the JSON-LD input.\n * @param [options] the options to use:\n * [issuer] an IdentifierIssuer to use to label blank nodes.\n */\napi.relabelBlankNodes = (input, options) => {\n options = options || {};\n const issuer = options.issuer || new IdentifierIssuer('_:b');\n return _labelBlankNodes(issuer, input);\n};\n\n/**\n * Compares two JSON-LD values for equality. Two JSON-LD values will be\n * considered equal if:\n *\n * 1. They are both primitives of the same type and value.\n * 2. They are both @values with the same @value, @type, @language,\n * and @index, OR\n * 3. They both have @ids they are the same.\n *\n * @param v1 the first value.\n * @param v2 the second value.\n *\n * @return true if v1 and v2 are considered equal, false if not.\n */\napi.compareValues = (v1, v2) => {\n // 1. equal primitives\n if(v1 === v2) {\n return true;\n }\n\n // 2. equal @values\n if(graphTypes.isValue(v1) && graphTypes.isValue(v2) &&\n v1['@value'] === v2['@value'] &&\n v1['@type'] === v2['@type'] &&\n v1['@language'] === v2['@language'] &&\n v1['@index'] === v2['@index']) {\n return true;\n }\n\n // 3. equal @ids\n if(types.isObject(v1) &&\n ('@id' in v1) &&\n types.isObject(v2) &&\n ('@id' in v2)) {\n return v1['@id'] === v2['@id'];\n }\n\n return false;\n};\n\n/**\n * Compares two strings first based on length and then lexicographically.\n *\n * @param a the first string.\n * @param b the second string.\n *\n * @return -1 if a < b, 1 if a > b, 0 if a === b.\n */\napi.compareShortestLeast = (a, b) => {\n if(a.length < b.length) {\n return -1;\n }\n if(b.length < a.length) {\n return 1;\n }\n if(a === b) {\n return 0;\n }\n return (a < b) ? -1 : 1;\n};\n\n/**\n * Labels the blank nodes in the given value using the given IdentifierIssuer.\n *\n * @param issuer the IdentifierIssuer to use.\n * @param element the element with blank nodes to rename.\n *\n * @return the element.\n */\nfunction _labelBlankNodes(issuer, element) {\n if(types.isArray(element)) {\n for(let i = 0; i < element.length; ++i) {\n element[i] = _labelBlankNodes(issuer, element[i]);\n }\n } else if(graphTypes.isList(element)) {\n element['@list'] = _labelBlankNodes(issuer, element['@list']);\n } else if(types.isObject(element)) {\n // relabel blank node\n if(graphTypes.isBlankNode(element)) {\n element['@id'] = issuer.getId(element['@id']);\n }\n\n // recursively apply to all keys\n const keys = Object.keys(element).sort();\n for(let ki = 0; ki < keys.length; ++ki) {\n const key = keys[ki];\n if(key !== '@id') {\n element[key] = _labelBlankNodes(issuer, element[key]);\n }\n }\n }\n\n return element;\n}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","/**\n * An implementation of the RDF Dataset Normalization specification.\n *\n * @author Dave Longley\n *\n * Copyright 2010-2021 Digital Bazaar, Inc.\n */\nmodule.exports = require('./lib');\n","/*!\n * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst IdentifierIssuer = require('./IdentifierIssuer');\nconst MessageDigest = require('./MessageDigest');\nconst Permuter = require('./Permuter');\nconst NQuads = require('./NQuads');\n\nmodule.exports = class URDNA2015 {\n constructor({\n createMessageDigest = () => new MessageDigest('sha256'),\n canonicalIdMap = new Map(),\n maxDeepIterations = Infinity\n } = {}) {\n this.name = 'URDNA2015';\n this.blankNodeInfo = new Map();\n this.canonicalIssuer = new IdentifierIssuer('_:c14n', canonicalIdMap);\n this.createMessageDigest = createMessageDigest;\n this.maxDeepIterations = maxDeepIterations;\n this.quads = null;\n this.deepIterations = null;\n }\n\n // 4.4) Normalization Algorithm\n async main(dataset) {\n this.deepIterations = new Map();\n this.quads = dataset;\n\n // 1) Create the normalization state.\n // 2) For every quad in input dataset:\n for(const quad of dataset) {\n // 2.1) For each blank node that occurs in the quad, add a reference\n // to the quad using the blank node identifier in the blank node to\n // quads map, creating a new entry if necessary.\n this._addBlankNodeQuadInfo({quad, component: quad.subject});\n this._addBlankNodeQuadInfo({quad, component: quad.object});\n this._addBlankNodeQuadInfo({quad, component: quad.graph});\n }\n\n // 3) Create a list of non-normalized blank node identifiers\n // non-normalized identifiers and populate it using the keys from the\n // blank node to quads map.\n // Note: We use a map here and it was generated during step 2.\n\n // 4) `simple` flag is skipped -- loop is optimized away. This optimization\n // is permitted because there was a typo in the hash first degree quads\n // algorithm in the URDNA2015 spec that was implemented widely making it\n // such that it could not be fixed; the result was that the loop only\n // needs to be run once and the first degree quad hashes will never change.\n // 5.1-5.2 are skipped; first degree quad hashes are generated just once\n // for all non-normalized blank nodes.\n\n // 5.3) For each blank node identifier identifier in non-normalized\n // identifiers:\n const hashToBlankNodes = new Map();\n const nonNormalized = [...this.blankNodeInfo.keys()];\n let i = 0;\n for(const id of nonNormalized) {\n // Note: batch hashing first degree quads 100 at a time\n if(++i % 100 === 0) {\n await this._yield();\n }\n // steps 5.3.1 and 5.3.2:\n await this._hashAndTrackBlankNode({id, hashToBlankNodes});\n }\n\n // 5.4) For each hash to identifier list mapping in hash to blank\n // nodes map, lexicographically-sorted by hash:\n const hashes = [...hashToBlankNodes.keys()].sort();\n // optimize away second sort, gather non-unique hashes in order as we go\n const nonUnique = [];\n for(const hash of hashes) {\n // 5.4.1) If the length of identifier list is greater than 1,\n // continue to the next mapping.\n const idList = hashToBlankNodes.get(hash);\n if(idList.length > 1) {\n nonUnique.push(idList);\n continue;\n }\n\n // 5.4.2) Use the Issue Identifier algorithm, passing canonical\n // issuer and the single blank node identifier in identifier\n // list, identifier, to issue a canonical replacement identifier\n // for identifier.\n const id = idList[0];\n this.canonicalIssuer.getId(id);\n\n // Note: These steps are skipped, optimized away since the loop\n // only needs to be run once.\n // 5.4.3) Remove identifier from non-normalized identifiers.\n // 5.4.4) Remove hash from the hash to blank nodes map.\n // 5.4.5) Set simple to true.\n }\n\n // 6) For each hash to identifier list mapping in hash to blank nodes map,\n // lexicographically-sorted by hash:\n // Note: sort optimized away, use `nonUnique`.\n for(const idList of nonUnique) {\n // 6.1) Create hash path list where each item will be a result of\n // running the Hash N-Degree Quads algorithm.\n const hashPathList = [];\n\n // 6.2) For each blank node identifier identifier in identifier list:\n for(const id of idList) {\n // 6.2.1) If a canonical identifier has already been issued for\n // identifier, continue to the next identifier.\n if(this.canonicalIssuer.hasId(id)) {\n continue;\n }\n\n // 6.2.2) Create temporary issuer, an identifier issuer\n // initialized with the prefix _:b.\n const issuer = new IdentifierIssuer('_:b');\n\n // 6.2.3) Use the Issue Identifier algorithm, passing temporary\n // issuer and identifier, to issue a new temporary blank node\n // identifier for identifier.\n issuer.getId(id);\n\n // 6.2.4) Run the Hash N-Degree Quads algorithm, passing\n // temporary issuer, and append the result to the hash path list.\n const result = await this.hashNDegreeQuads(id, issuer);\n hashPathList.push(result);\n }\n\n // 6.3) For each result in the hash path list,\n // lexicographically-sorted by the hash in result:\n hashPathList.sort(_stringHashCompare);\n for(const result of hashPathList) {\n // 6.3.1) For each blank node identifier, existing identifier,\n // that was issued a temporary identifier by identifier issuer\n // in result, issue a canonical identifier, in the same order,\n // using the Issue Identifier algorithm, passing canonical\n // issuer and existing identifier.\n const oldIds = result.issuer.getOldIds();\n for(const id of oldIds) {\n this.canonicalIssuer.getId(id);\n }\n }\n }\n\n /* Note: At this point all blank nodes in the set of RDF quads have been\n assigned canonical identifiers, which have been stored in the canonical\n issuer. Here each quad is updated by assigning each of its blank nodes\n its new identifier. */\n\n // 7) For each quad, quad, in input dataset:\n const normalized = [];\n for(const quad of this.quads) {\n // 7.1) Create a copy, quad copy, of quad and replace any existing\n // blank node identifiers using the canonical identifiers\n // previously issued by canonical issuer.\n // Note: We optimize away the copy here.\n const nQuad = NQuads.serializeQuadComponents(\n this._componentWithCanonicalId(quad.subject),\n quad.predicate,\n this._componentWithCanonicalId(quad.object),\n this._componentWithCanonicalId(quad.graph)\n );\n // 7.2) Add quad copy to the normalized dataset.\n normalized.push(nQuad);\n }\n\n // sort normalized output\n normalized.sort();\n\n // 8) Return the normalized dataset.\n return normalized.join('');\n }\n\n // 4.6) Hash First Degree Quads\n async hashFirstDegreeQuads(id) {\n // 1) Initialize nquads to an empty list. It will be used to store quads in\n // N-Quads format.\n const nquads = [];\n\n // 2) Get the list of quads `quads` associated with the reference blank node\n // identifier in the blank node to quads map.\n const info = this.blankNodeInfo.get(id);\n const quads = info.quads;\n\n // 3) For each quad `quad` in `quads`:\n for(const quad of quads) {\n // 3.1) Serialize the quad in N-Quads format with the following special\n // rule:\n\n // 3.1.1) If any component in quad is an blank node, then serialize it\n // using a special identifier as follows:\n const copy = {\n subject: null, predicate: quad.predicate, object: null, graph: null\n };\n // 3.1.2) If the blank node's existing blank node identifier matches\n // the reference blank node identifier then use the blank node\n // identifier _:a, otherwise, use the blank node identifier _:z.\n copy.subject = this.modifyFirstDegreeComponent(\n id, quad.subject, 'subject');\n copy.object = this.modifyFirstDegreeComponent(\n id, quad.object, 'object');\n copy.graph = this.modifyFirstDegreeComponent(\n id, quad.graph, 'graph');\n nquads.push(NQuads.serializeQuad(copy));\n }\n\n // 4) Sort nquads in lexicographical order.\n nquads.sort();\n\n // 5) Return the hash that results from passing the sorted, joined nquads\n // through the hash algorithm.\n const md = this.createMessageDigest();\n for(const nquad of nquads) {\n md.update(nquad);\n }\n info.hash = await md.digest();\n return info.hash;\n }\n\n // 4.7) Hash Related Blank Node\n async hashRelatedBlankNode(related, quad, issuer, position) {\n // 1) Set the identifier to use for related, preferring first the canonical\n // identifier for related if issued, second the identifier issued by issuer\n // if issued, and last, if necessary, the result of the Hash First Degree\n // Quads algorithm, passing related.\n let id;\n if(this.canonicalIssuer.hasId(related)) {\n id = this.canonicalIssuer.getId(related);\n } else if(issuer.hasId(related)) {\n id = issuer.getId(related);\n } else {\n id = this.blankNodeInfo.get(related).hash;\n }\n\n // 2) Initialize a string input to the value of position.\n // Note: We use a hash object instead.\n const md = this.createMessageDigest();\n md.update(position);\n\n // 3) If position is not g, append <, the value of the predicate in quad,\n // and > to input.\n if(position !== 'g') {\n md.update(this.getRelatedPredicate(quad));\n }\n\n // 4) Append identifier to input.\n md.update(id);\n\n // 5) Return the hash that results from passing input through the hash\n // algorithm.\n return md.digest();\n }\n\n // 4.8) Hash N-Degree Quads\n async hashNDegreeQuads(id, issuer) {\n const deepIterations = this.deepIterations.get(id) || 0;\n if(deepIterations > this.maxDeepIterations) {\n throw new Error(\n `Maximum deep iterations (${this.maxDeepIterations}) exceeded.`);\n }\n this.deepIterations.set(id, deepIterations + 1);\n\n // 1) Create a hash to related blank nodes map for storing hashes that\n // identify related blank nodes.\n // Note: 2) and 3) handled within `createHashToRelated`\n const md = this.createMessageDigest();\n const hashToRelated = await this.createHashToRelated(id, issuer);\n\n // 4) Create an empty string, data to hash.\n // Note: We created a hash object `md` above instead.\n\n // 5) For each related hash to blank node list mapping in hash to related\n // blank nodes map, sorted lexicographically by related hash:\n const hashes = [...hashToRelated.keys()].sort();\n for(const hash of hashes) {\n // 5.1) Append the related hash to the data to hash.\n md.update(hash);\n\n // 5.2) Create a string chosen path.\n let chosenPath = '';\n\n // 5.3) Create an unset chosen issuer variable.\n let chosenIssuer;\n\n // 5.4) For each permutation of blank node list:\n const permuter = new Permuter(hashToRelated.get(hash));\n let i = 0;\n while(permuter.hasNext()) {\n const permutation = permuter.next();\n // Note: batch permutations 3 at a time\n if(++i % 3 === 0) {\n await this._yield();\n }\n\n // 5.4.1) Create a copy of issuer, issuer copy.\n let issuerCopy = issuer.clone();\n\n // 5.4.2) Create a string path.\n let path = '';\n\n // 5.4.3) Create a recursion list, to store blank node identifiers\n // that must be recursively processed by this algorithm.\n const recursionList = [];\n\n // 5.4.4) For each related in permutation:\n let nextPermutation = false;\n for(const related of permutation) {\n // 5.4.4.1) If a canonical identifier has been issued for\n // related, append it to path.\n if(this.canonicalIssuer.hasId(related)) {\n path += this.canonicalIssuer.getId(related);\n } else {\n // 5.4.4.2) Otherwise:\n // 5.4.4.2.1) If issuer copy has not issued an identifier for\n // related, append related to recursion list.\n if(!issuerCopy.hasId(related)) {\n recursionList.push(related);\n }\n // 5.4.4.2.2) Use the Issue Identifier algorithm, passing\n // issuer copy and related and append the result to path.\n path += issuerCopy.getId(related);\n }\n\n // 5.4.4.3) If chosen path is not empty and the length of path\n // is greater than or equal to the length of chosen path and\n // path is lexicographically greater than chosen path, then\n // skip to the next permutation.\n // Note: Comparing path length to chosen path length can be optimized\n // away; only compare lexicographically.\n if(chosenPath.length !== 0 && path > chosenPath) {\n nextPermutation = true;\n break;\n }\n }\n\n if(nextPermutation) {\n continue;\n }\n\n // 5.4.5) For each related in recursion list:\n for(const related of recursionList) {\n // 5.4.5.1) Set result to the result of recursively executing\n // the Hash N-Degree Quads algorithm, passing related for\n // identifier and issuer copy for path identifier issuer.\n const result = await this.hashNDegreeQuads(related, issuerCopy);\n\n // 5.4.5.2) Use the Issue Identifier algorithm, passing issuer\n // copy and related and append the result to path.\n path += issuerCopy.getId(related);\n\n // 5.4.5.3) Append <, the hash in result, and > to path.\n path += `<${result.hash}>`;\n\n // 5.4.5.4) Set issuer copy to the identifier issuer in\n // result.\n issuerCopy = result.issuer;\n\n // 5.4.5.5) If chosen path is not empty and the length of path\n // is greater than or equal to the length of chosen path and\n // path is lexicographically greater than chosen path, then\n // skip to the next permutation.\n // Note: Comparing path length to chosen path length can be optimized\n // away; only compare lexicographically.\n if(chosenPath.length !== 0 && path > chosenPath) {\n nextPermutation = true;\n break;\n }\n }\n\n if(nextPermutation) {\n continue;\n }\n\n // 5.4.6) If chosen path is empty or path is lexicographically\n // less than chosen path, set chosen path to path and chosen\n // issuer to issuer copy.\n if(chosenPath.length === 0 || path < chosenPath) {\n chosenPath = path;\n chosenIssuer = issuerCopy;\n }\n }\n\n // 5.5) Append chosen path to data to hash.\n md.update(chosenPath);\n\n // 5.6) Replace issuer, by reference, with chosen issuer.\n issuer = chosenIssuer;\n }\n\n // 6) Return issuer and the hash that results from passing data to hash\n // through the hash algorithm.\n return {hash: await md.digest(), issuer};\n }\n\n // helper for modifying component during Hash First Degree Quads\n modifyFirstDegreeComponent(id, component) {\n if(component.termType !== 'BlankNode') {\n return component;\n }\n /* Note: A mistake in the URDNA2015 spec that made its way into\n implementations (and therefore must stay to avoid interop breakage)\n resulted in an assigned canonical ID, if available for\n `component.value`, not being used in place of `_:a`/`_:z`, so\n we don't use it here. */\n return {\n termType: 'BlankNode',\n value: component.value === id ? '_:a' : '_:z'\n };\n }\n\n // helper for getting a related predicate\n getRelatedPredicate(quad) {\n return `<${quad.predicate.value}>`;\n }\n\n // helper for creating hash to related blank nodes map\n async createHashToRelated(id, issuer) {\n // 1) Create a hash to related blank nodes map for storing hashes that\n // identify related blank nodes.\n const hashToRelated = new Map();\n\n // 2) Get a reference, quads, to the list of quads in the blank node to\n // quads map for the key identifier.\n const quads = this.blankNodeInfo.get(id).quads;\n\n // 3) For each quad in quads:\n let i = 0;\n for(const quad of quads) {\n // Note: batch hashing related blank node quads 100 at a time\n if(++i % 100 === 0) {\n await this._yield();\n }\n // 3.1) For each component in quad, if component is the subject, object,\n // and graph name and it is a blank node that is not identified by\n // identifier:\n // steps 3.1.1 and 3.1.2 occur in helpers:\n await Promise.all([\n this._addRelatedBlankNodeHash({\n quad, component: quad.subject, position: 's',\n id, issuer, hashToRelated\n }),\n this._addRelatedBlankNodeHash({\n quad, component: quad.object, position: 'o',\n id, issuer, hashToRelated\n }),\n this._addRelatedBlankNodeHash({\n quad, component: quad.graph, position: 'g',\n id, issuer, hashToRelated\n })\n ]);\n }\n\n return hashToRelated;\n }\n\n async _hashAndTrackBlankNode({id, hashToBlankNodes}) {\n // 5.3.1) Create a hash, hash, according to the Hash First Degree\n // Quads algorithm.\n const hash = await this.hashFirstDegreeQuads(id);\n\n // 5.3.2) Add hash and identifier to hash to blank nodes map,\n // creating a new entry if necessary.\n const idList = hashToBlankNodes.get(hash);\n if(!idList) {\n hashToBlankNodes.set(hash, [id]);\n } else {\n idList.push(id);\n }\n }\n\n _addBlankNodeQuadInfo({quad, component}) {\n if(component.termType !== 'BlankNode') {\n return;\n }\n const id = component.value;\n const info = this.blankNodeInfo.get(id);\n if(info) {\n info.quads.add(quad);\n } else {\n this.blankNodeInfo.set(id, {quads: new Set([quad]), hash: null});\n }\n }\n\n async _addRelatedBlankNodeHash(\n {quad, component, position, id, issuer, hashToRelated}) {\n if(!(component.termType === 'BlankNode' && component.value !== id)) {\n return;\n }\n // 3.1.1) Set hash to the result of the Hash Related Blank Node\n // algorithm, passing the blank node identifier for component as\n // related, quad, path identifier issuer as issuer, and position as\n // either s, o, or g based on whether component is a subject, object,\n // graph name, respectively.\n const related = component.value;\n const hash = await this.hashRelatedBlankNode(\n related, quad, issuer, position);\n\n // 3.1.2) Add a mapping of hash to the blank node identifier for\n // component to hash to related blank nodes map, adding an entry as\n // necessary.\n const entries = hashToRelated.get(hash);\n if(entries) {\n entries.push(related);\n } else {\n hashToRelated.set(hash, [related]);\n }\n }\n\n // canonical ids for 7.1\n _componentWithCanonicalId(component) {\n if(component.termType === 'BlankNode' &&\n !component.value.startsWith(this.canonicalIssuer.prefix)) {\n // create new BlankNode\n return {\n termType: 'BlankNode',\n value: this.canonicalIssuer.getId(component.value)\n };\n }\n return component;\n }\n\n async _yield() {\n return new Promise(resolve => setImmediate(resolve));\n }\n};\n\nfunction _stringHashCompare(a, b) {\n return a.hash < b.hash ? -1 : a.hash > b.hash ? 1 : 0;\n}\n","/*!\n * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst MessageDigest = require('./MessageDigest');\nconst URDNA2015 = require('./URDNA2015');\n\nmodule.exports = class URDNA2012 extends URDNA2015 {\n constructor() {\n super();\n this.name = 'URGNA2012';\n this.createMessageDigest = () => new MessageDigest('sha1');\n }\n\n // helper for modifying component during Hash First Degree Quads\n modifyFirstDegreeComponent(id, component, key) {\n if(component.termType !== 'BlankNode') {\n return component;\n }\n if(key === 'graph') {\n return {\n termType: 'BlankNode',\n value: '_:g'\n };\n }\n return {\n termType: 'BlankNode',\n value: (component.value === id ? '_:a' : '_:z')\n };\n }\n\n // helper for getting a related predicate\n getRelatedPredicate(quad) {\n return quad.predicate.value;\n }\n\n // helper for creating hash to related blank nodes map\n async createHashToRelated(id, issuer) {\n // 1) Create a hash to related blank nodes map for storing hashes that\n // identify related blank nodes.\n const hashToRelated = new Map();\n\n // 2) Get a reference, quads, to the list of quads in the blank node to\n // quads map for the key identifier.\n const quads = this.blankNodeInfo.get(id).quads;\n\n // 3) For each quad in quads:\n let i = 0;\n for(const quad of quads) {\n // 3.1) If the quad's subject is a blank node that does not match\n // identifier, set hash to the result of the Hash Related Blank Node\n // algorithm, passing the blank node identifier for subject as related,\n // quad, path identifier issuer as issuer, and p as position.\n let position;\n let related;\n if(quad.subject.termType === 'BlankNode' && quad.subject.value !== id) {\n related = quad.subject.value;\n position = 'p';\n } else if(\n quad.object.termType === 'BlankNode' && quad.object.value !== id) {\n // 3.2) Otherwise, if quad's object is a blank node that does not match\n // identifier, to the result of the Hash Related Blank Node algorithm,\n // passing the blank node identifier for object as related, quad, path\n // identifier issuer as issuer, and r as position.\n related = quad.object.value;\n position = 'r';\n } else {\n // 3.3) Otherwise, continue to the next quad.\n continue;\n }\n // Note: batch hashing related blank nodes 100 at a time\n if(++i % 100 === 0) {\n await this._yield();\n }\n // 3.4) Add a mapping of hash to the blank node identifier for the\n // component that matched (subject or object) to hash to related blank\n // nodes map, adding an entry as necessary.\n const hash = await this.hashRelatedBlankNode(\n related, quad, issuer, position);\n const entries = hashToRelated.get(hash);\n if(entries) {\n entries.push(related);\n } else {\n hashToRelated.set(hash, [related]);\n }\n }\n\n return hashToRelated;\n }\n};\n","/*!\n * Copyright (c) 2016-2021 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst MessageDigest = require('./MessageDigest');\nconst URDNA2015Sync = require('./URDNA2015Sync');\n\nmodule.exports = class URDNA2012Sync extends URDNA2015Sync {\n constructor() {\n super();\n this.name = 'URGNA2012';\n this.createMessageDigest = () => new MessageDigest('sha1');\n }\n\n // helper for modifying component during Hash First Degree Quads\n modifyFirstDegreeComponent(id, component, key) {\n if(component.termType !== 'BlankNode') {\n return component;\n }\n if(key === 'graph') {\n return {\n termType: 'BlankNode',\n value: '_:g'\n };\n }\n return {\n termType: 'BlankNode',\n value: (component.value === id ? '_:a' : '_:z')\n };\n }\n\n // helper for getting a related predicate\n getRelatedPredicate(quad) {\n return quad.predicate.value;\n }\n\n // helper for creating hash to related blank nodes map\n createHashToRelated(id, issuer) {\n // 1) Create a hash to related blank nodes map for storing hashes that\n // identify related blank nodes.\n const hashToRelated = new Map();\n\n // 2) Get a reference, quads, to the list of quads in the blank node to\n // quads map for the key identifier.\n const quads = this.blankNodeInfo.get(id).quads;\n\n // 3) For each quad in quads:\n for(const quad of quads) {\n // 3.1) If the quad's subject is a blank node that does not match\n // identifier, set hash to the result of the Hash Related Blank Node\n // algorithm, passing the blank node identifier for subject as related,\n // quad, path identifier issuer as issuer, and p as position.\n let position;\n let related;\n if(quad.subject.termType === 'BlankNode' && quad.subject.value !== id) {\n related = quad.subject.value;\n position = 'p';\n } else if(\n quad.object.termType === 'BlankNode' && quad.object.value !== id) {\n // 3.2) Otherwise, if quad's object is a blank node that does not match\n // identifier, to the result of the Hash Related Blank Node algorithm,\n // passing the blank node identifier for object as related, quad, path\n // identifier issuer as issuer, and r as position.\n related = quad.object.value;\n position = 'r';\n } else {\n // 3.3) Otherwise, continue to the next quad.\n continue;\n }\n // 3.4) Add a mapping of hash to the blank node identifier for the\n // component that matched (subject or object) to hash to related blank\n // nodes map, adding an entry as necessary.\n const hash = this.hashRelatedBlankNode(related, quad, issuer, position);\n const entries = hashToRelated.get(hash);\n if(entries) {\n entries.push(related);\n } else {\n hashToRelated.set(hash, [related]);\n }\n }\n\n return hashToRelated;\n }\n};\n","/**\n * An implementation of the RDF Dataset Normalization specification.\n * This library works in the browser and node.js.\n *\n * BSD 3-Clause License\n * Copyright (c) 2016-2023 Digital Bazaar, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * Neither the name of the Digital Bazaar, Inc. nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n * IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\n * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\n * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n'use strict';\n\nconst URDNA2015 = require('./URDNA2015');\nconst URGNA2012 = require('./URGNA2012');\nconst URDNA2015Sync = require('./URDNA2015Sync');\nconst URGNA2012Sync = require('./URGNA2012Sync');\n\n// optional native support\nlet rdfCanonizeNative;\ntry {\n rdfCanonizeNative = require('rdf-canonize-native');\n} catch(e) {}\n\n// return a dataset from input dataset or legacy dataset\nfunction _inputToDataset(input/*, options*/) {\n // back-compat with legacy dataset\n if(!Array.isArray(input)) {\n return exports.NQuads.legacyDatasetToQuads(input);\n }\n return input;\n}\n\n// expose helpers\nexports.NQuads = require('./NQuads');\nexports.IdentifierIssuer = require('./IdentifierIssuer');\n\n/**\n * Get or set native API.\n *\n * @param api the native API.\n *\n * @return the currently set native API.\n */\nexports._rdfCanonizeNative = function(api) {\n if(api) {\n rdfCanonizeNative = api;\n }\n return rdfCanonizeNative;\n};\n\n/**\n * Asynchronously canonizes an RDF dataset.\n *\n * @param {Array|object|string} input - The input to canonize given as a\n * dataset or legacy dataset.\n * @param {object} options - The options to use:\n * {string} algorithm - The canonicalization algorithm to use, `URDNA2015` or\n * `URGNA2012`.\n * {Function} [createMessageDigest] - A factory function for creating a\n * `MessageDigest` interface that overrides the built-in message digest\n * implementation used by the canonize algorithm; note that using a hash\n * algorithm (or HMAC algorithm) that differs from the one specified by\n * the canonize algorithm will result in different output.\n * {Map} [canonicalIdMap] - An optional Map to be populated by the canonical\n * identifier issuer with the bnode identifier mapping generated by the\n * canonicalization algorithm.\n * {boolean} [useNative=false] - Use native implementation.\n * {number} [maxDeepIterations=Infinity] - The maximum number of times to run\n * deep comparison algorithms (such as the N-Degree Hash Quads algorithm\n * used in URDNA2015) before bailing out and throwing an error; this is a\n * useful setting for preventing wasted CPU cycles or DoS when canonizing\n * meaningless or potentially malicious datasets, a recommended value is\n * `1`.\n *\n * @return a Promise that resolves to the canonicalized RDF Dataset.\n */\nexports.canonize = async function(input, options) {\n const dataset = _inputToDataset(input, options);\n\n if(options.useNative) {\n if(!rdfCanonizeNative) {\n throw new Error('rdf-canonize-native not available');\n }\n if(options.createMessageDigest) {\n throw new Error(\n '\"createMessageDigest\" cannot be used with \"useNative\".');\n }\n return new Promise((resolve, reject) =>\n rdfCanonizeNative.canonize(dataset, options, (err, canonical) =>\n err ? reject(err) : resolve(canonical)));\n }\n\n if(options.algorithm === 'URDNA2015') {\n return new URDNA2015(options).main(dataset);\n }\n if(options.algorithm === 'URGNA2012') {\n if(options.createMessageDigest) {\n throw new Error(\n '\"createMessageDigest\" cannot be used with \"URGNA2012\".');\n }\n return new URGNA2012(options).main(dataset);\n }\n if(!('algorithm' in options)) {\n throw new Error('No RDF Dataset Canonicalization algorithm specified.');\n }\n throw new Error(\n 'Invalid RDF Dataset Canonicalization algorithm: ' + options.algorithm);\n};\n\n/**\n * This method is no longer available in the public API, it is for testing\n * only. It synchronously canonizes an RDF dataset and does not work in the\n * browser.\n *\n * @param {Array|object|string} input - The input to canonize given as a\n * dataset or legacy dataset.\n * @param {object} options - The options to use:\n * {string} algorithm - The canonicalization algorithm to use, `URDNA2015` or\n * `URGNA2012`.\n * {Function} [createMessageDigest] - A factory function for creating a\n * `MessageDigest` interface that overrides the built-in message digest\n * implementation used by the canonize algorithm; note that using a hash\n * algorithm (or HMAC algorithm) that differs from the one specified by\n * the canonize algorithm will result in different output.\n * {boolean} [useNative=false] - Use native implementation.\n * {number} [maxDeepIterations=Infinity] - The maximum number of times to run\n * deep comparison algorithms (such as the N-Degree Hash Quads algorithm\n * used in URDNA2015) before bailing out and throwing an error; this is a\n * useful setting for preventing wasted CPU cycles or DoS when canonizing\n * meaningless or potentially malicious datasets, a recommended value is\n * `1`.\n *\n * @return the RDF dataset in canonical form.\n */\nexports._canonizeSync = function(input, options) {\n const dataset = _inputToDataset(input, options);\n\n if(options.useNative) {\n if(!rdfCanonizeNative) {\n throw new Error('rdf-canonize-native not available');\n }\n if(options.createMessageDigest) {\n throw new Error(\n '\"createMessageDigest\" cannot be used with \"useNative\".');\n }\n return rdfCanonizeNative.canonizeSync(dataset, options);\n }\n if(options.algorithm === 'URDNA2015') {\n return new URDNA2015Sync(options).main(dataset);\n }\n if(options.algorithm === 'URGNA2012') {\n if(options.createMessageDigest) {\n throw new Error(\n '\"createMessageDigest\" cannot be used with \"URGNA2012\".');\n }\n return new URGNA2012Sync(options).main(dataset);\n }\n if(!('algorithm' in options)) {\n throw new Error('No RDF Dataset Canonicalization algorithm specified.');\n }\n throw new Error(\n 'Invalid RDF Dataset Canonicalization algorithm: ' + options.algorithm);\n};\n","import jsonld from 'jsonld'\nimport { Readable } from 'readable-stream'\nimport chunks from 'stream-chunks/chunks.js'\n\nclass SerializerStream extends Readable {\n constructor (input, {\n baseIRI,\n compact,\n context = {},\n encoding = 'object',\n flatten,\n frame,\n prettyPrint,\n skipContext\n } = {}) {\n super({\n objectMode: true,\n read: () => {}\n })\n\n this.compact = compact\n this.context = context\n this.encoding = encoding\n this.flatten = flatten\n this.frame = frame\n this.prettyPrint = prettyPrint\n this.skipContext = skipContext\n\n if (baseIRI) {\n this.context['@base'] = baseIRI.value || baseIRI.toString()\n }\n\n input.on('prefix', (prefix, namespace) => {\n if (!this.context[prefix]) {\n this.context[prefix] = namespace.value\n }\n })\n\n this.handleData(input)\n }\n\n async handleData (input) {\n try {\n const quadArray = (await chunks(input)).map(SerializerStream.toJsonldQuad)\n const rawJsonld = await jsonld.fromRDF(quadArray)\n const transformedJsonld = await this.transform(rawJsonld, this.options)\n\n this.push(transformedJsonld)\n this.push(null)\n } catch (err) {\n this.emit('error', err)\n }\n }\n\n async transform (data) {\n if (this.compact) {\n data = await jsonld.compact(data, this.context)\n }\n\n if (this.flatten) {\n data = await jsonld.flatten(data, this.context)\n }\n\n if (this.frame) {\n data = await jsonld.frame(data, this.context)\n }\n\n if (this.skipContext && data['@context']) {\n delete data['@context']\n }\n\n if (this.encoding === 'string') {\n if (this.prettyPrint) {\n return JSON.stringify(data, null, 2)\n } else {\n return JSON.stringify(data)\n }\n }\n\n return data\n }\n\n static toJsonldQuad (quad) {\n return {\n subject: SerializerStream.toJsonldTerm(quad.subject),\n predicate: SerializerStream.toJsonldTerm(quad.predicate),\n object: SerializerStream.toJsonldTerm(quad.object),\n graph: SerializerStream.toJsonldTerm(quad.graph)\n }\n }\n\n static toJsonldTerm (term) {\n if (term.termType === 'BlankNode') {\n return {\n termType: 'BlankNode',\n value: `_:${term.value}`\n }\n }\n\n return term\n }\n}\n\nexport default SerializerStream\n","import Sink from '@rdfjs/sink'\nimport SerializerStream from './lib/SerializerStream.js'\n\nclass Serializer extends Sink {\n constructor (options) {\n super(SerializerStream, options)\n }\n}\n\nexport default Serializer\n","class Sink {\n constructor (Impl, options) {\n this.Impl = Impl\n this.options = options\n }\n\n import (input, options) {\n const output = new this.Impl(input, { ...this.options, ...options })\n\n input.on('end', () => {\n if (!output.readable) {\n output.emit('end')\n }\n })\n\n input.on('error', err => {\n output.emit('error', err)\n })\n\n return output\n }\n}\n\nexport default Sink\n"],"names":["AbortError","codes","isNodeStream","isWebStream","kControllerErrorFunction","eos","ERR_INVALID_ARG_TYPE","validateAbortSignal","signal","name","module","exports","addAbortSignal","stream","addAbortSignalNoValidate","onAbort","destroy","undefined","cause","reason","aborted","addEventListener","removeEventListener","StringPrototypeSlice","SymbolIterator","TypedArrayPrototypeSet","Uint8Array","Buffer","inspect","constructor","this","head","tail","length","push","v","entry","data","next","unshift","shift","ret","clear","join","s","p","concat","n","alloc","allocUnsafe","i","consume","hasStrings","slice","_getString","_getBuffer","first","c","str","retLen","buf","buffer","byteOffset","Symbol","for","_","options","depth","customInspect","pipeline","Duplex","destroyer","isReadable","isWritable","isTransformStream","isWritableStream","isReadableStream","ERR_INVALID_ARG_VALUE","ERR_MISSING_ARGS","streams","from","orgStreams","idx","ondrain","onfinish","onreadable","onclose","d","onfinished","err","cb","readable","writable","writableObjectMode","readableObjectMode","_write","chunk","encoding","callback","write","_final","end","on","writer","getWriter","async","ready","catch","close","toRead","_read","read","reader","getReader","value","done","_destroy","process","aggregateTwoErrors","ERR_MULTIPLE_CALLBACK","kDestroyed","isDestroyed","isFinished","isServerRequest","kDestroy","kConstruct","checkError","w","r","stack","errored","_readableState","_writableState","destroyed","constructed","once","er","self","called","onDestroy","closed","nextTick","emitErrorCloseNT","emitCloseNT","emitErrorNT","closeEmitted","emitClose","emit","errorEmitted","undestroy","reading","ended","endEmitted","finalCalled","prefinished","ending","finished","errorOrDestroy","sync","autoDestroy","construct","_construct","listenerCount","constructNT","onConstruct","emitConstructNT","isRequest","setHeader","abort","emitCloseLegacy","emitErrorCloseLegacy","socket","req","ObjectDefineProperties","ObjectGetOwnPropertyDescriptor","ObjectKeys","ObjectSetPrototypeOf","Readable","Writable","prototype","keys","method","call","allowHalfOpen","webStreamsAdapters","duplexify","lazyWebStreams","__proto__","writableHighWaterMark","writableBuffer","writableLength","writableFinished","writableCorked","writableEnded","writableNeedDrain","get","set","fromWeb","pair","newStreamDuplexFromReadableWritablePair","toWeb","duplex","newReadableWritablePairFromDuplex","body","bufferModule","isIterable","isReadableNodeStream","isWritableNodeStream","isDuplexNodeStream","ERR_INVALID_RETURN_VALUE","createDeferredPromise","Blob","globalThis","isBlob","b","AbortController","FunctionPrototypeCall","Duplexify","super","fromAsyncGen","fn","promise","resolve","ac","_promise","_resolve","final","_duplexify","wrap","objectMode","then","val","arrayBuffer","ERR_STREAM_PREMATURE_CLOSE","kEmptyObject","validateFunction","validateObject","validateBoolean","Promise","PromisePrototypeThen","isClosed","isReadableFinished","isReadableErrored","isWritableFinished","isWritableErrored","willEmitClose","_willEmitClose","kIsClosedPromise","nop","_options$readable","_options$writable","arguments","eosWeb","wState","rState","onlegacyfinish","readableFinished","onend","onerror","onclosed","onrequest","error","cleanup","removeListener","endCallback","originalCallback","args","apply","isAborted","resolverFn","opts","_opts","autoCleanup","reject","SymbolAsyncIterator","ERR_STREAM_NULL_VALUES","iterable","iterator","isAsync","highWaterMark","hadError","hasThrow","throw","return","res","e","ArrayIsArray","EventEmitter","EE","Stream","prependListener","emitter","event","_events","pipe","dest","source","ondata","pause","resume","_isStdio","didOnEnd","ERR_OUT_OF_RANGE","validateInteger","kWeakHandler","staticCompose","ArrayPrototypePush","MathFloor","Number","NumberIsNaN","PromiseReject","kEmpty","kEof","compose","composedStream","map","concurrency","_options$signal","_options$signal2","queue","signalOpt","onDone","pump","_val","_options$signal3","asIndexedPairs","index","_options$signal4","some","unused","filter","every","find","result","forEach","forEachFn","filterFn","ReduceAwareErrMissingArgs","message","reduce","reducer","initialValue","_options$signal5","hasInitialValue","gotAnyItemFromStream","_options$signal6","toArray","_options$signal7","flatMap","values","toIntegerOrInfinity","number","drop","_options$signal8","_options$signal9","take","_options$signal10","_options$signal11","streamReturningOperators","promiseReturningOperators","PassThrough","Transform","_transform","destroyImpl","ERR_STREAM_DESTROYED","isReadableEnded","writing","popCallback","pop","makeAsyncIterable","fromReadable","pumpToNode","finish","onresolve","wait","off","pumpToWeb","pipelineImpl","outerSignal","lastStreamCleanup","finishImpl","destroys","finishCount","code","isLastStream","onError","_ret","_ret2","pt","src","dst","endFn","ArrayPrototypeIndexOf","NumberIsInteger","NumberParseInt","SafeSet","ReadableState","debug","BufferList","getHighWaterMark","getDefaultHighWaterMark","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kPaused","StringDecoder","isDuplex","pipes","flowing","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrainWriters","multiAwaitDrain","readingMore","dataEmitted","decoder","maybeReadMore","readableAddChunk","addToFront","state","toString","_isUint8Array","_uint8ArrayToBuffer","onEofChunk","addChunk","emitReadable","_undestroy","captureRejectionSymbol","isPaused","setEncoding","enc","content","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","len","pipeOnDrain","size","delete","updateReadableListening","nReadingNextTick","resume_","streamToAsyncIterator","iter","createAsyncIterator","destroyOnReturn","fromList","endReadable","endReadableNT","endWritableNT","NaN","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanedUp","needDrain","includes","add","dests","splice","ev","addListener","removeAllListeners","paused","streamKeys","j","bind","readableDidRead","enumerable","readableAborted","readableHighWaterMark","readableBuffer","readableFlowing","readableLength","readableEncoding","readableEnded","pipesCount","_fromList","readableStream","newStreamReadableFromReadableStream","streamReadable","newReadableStreamFromStreamReadable","_ref","_src$readableObjectMo","highWaterMarkFrom","duplexKey","hwm","kCallback","transform","flush","_flush","prefinish","SymbolFor","kIsErrored","kIsReadable","kIsDisturbed","obj","strict","_obj$_readableState","_obj$_writableState","pipeThrough","cancel","isWritableEnded","_stream$_writableStat","_stream$_writableStat2","writableErrored","_stream$_readableStat","_stream$_readableStat2","readableErrored","_closed","isOutgoingMessage","_defaultKeepAlive","_removedConnection","_removedContLen","isServerResponse","_sent100","_stream$req","_consuming","_dumped","upgradeOrConnect","isDisturbed","_stream$kIsDisturbed","isErrored","_ref2","_ref3","_ref4","_ref5","_stream$kIsErrored","_stream$_readableStat3","_stream$_writableStat3","_stream$_readableStat4","_stream$_writableStat4","ArrayPrototypeSlice","Error","FunctionPrototypeSymbolHasInstance","ObjectDefineProperty","StringPrototypeToLowerCase","SymbolHasInstance","WritableState","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_ALREADY_FINISHED","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","kOnFinished","noDecode","decodeStrings","corked","bufferProcessing","onwrite","writecb","writelen","afterWriteTickInfo","resetBuffer","pendingcb","buffered","bufferedIndex","allBuffers","allNoop","writev","_writev","clearBuffer","finishMaybe","isEncoding","writeOrBuffer","doWrite","onwriteError","errorBuffer","count","afterWriteTick","afterWrite","_state$errored","onfinishCallbacks","_state$errored2","bufferedLength","chunks","needFinish","callFinal","onFinish","getBuffer","object","cork","uncork","setDefaultEncoding","writableAborted","writableStream","newStreamWritableFromWritableStream","streamWritable","newWritableStreamFromStreamWritable","ArrayPrototypeIncludes","ArrayPrototypeJoin","ArrayPrototypeMap","NumberMAX_SAFE_INTEGER","NumberMIN_SAFE_INTEGER","ObjectPrototypeHasOwnProperty","RegExpPrototypeExec","String","StringPrototypeToUpperCase","StringPrototypeTrim","hideStackFrames","ERR_SOCKET_BAD_PORT","ERR_UNKNOWN_SIGNAL","normalizeEncoding","isAsyncFunction","isArrayBufferView","signals","isInt32","isUint32","octalReg","modeDesc","parseFileMode","def","validateUint32","min","max","validateInt32","positive","validateString","validateNumber","validateOneOf","oneOf","allowed","getOwnPropertyValueOrDefault","key","defaultValue","allowArray","allowFunction","nullable","validateDictionary","validateArray","minLength","validateStringArray","validateBooleanArray","validateSignalName","validateBuffer","validateEncoding","normalizedEncoding","validatePort","port","allowZero","validatePlainFunction","validateUndefined","validateUnion","union","linkValueRegExp","validateLinkHeaderFormat","validateLinkHeaderValue","hints","hintsLength","link","CustomStream","promises","originalDestroy","Object","defineProperty","configurable","format","AggregateError","CustomAggregateError","kIsNodeError","kTypes","classRegExp","nodeInternalPrefix","assert","ERR_INTERNAL_ASSERTION","addNumericalSeparator","start","getMessage","msg","expectedLength","match","E","Base","NodeError","defineProperties","hidden","innerError","outerError","Array","isArray","errors","expected","actual","endsWith","types","instances","other","toLowerCase","test","pos","indexOf","last","_actual$constructor","inspected","colors","TypeError","type","input","_value$constructor","a","range","received","isInteger","Math","abs","RangeError","el","sep","ArrayPrototypePop","thisArgs","instance","Function","hasInstance","floor","isNaN","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseInt","props","prop","getOwnPropertyDescriptor","target","proto","setPrototypeOf","PromisePrototypeCatch","thenFn","catchFn","ReflectApply","Reflect","RegExpPrototypeTest","Set","toUpperCase","trim","asyncIterator","AsyncFunction","getPrototypeOf","freeze","rej","promisify","debuglog","replace","_unused","replacement","toFixed","JSON","stringify","ctor","is","arr","ArrayBuffer","isView","custom","customPromisify","ERR_ILLEGAL_CONSTRUCTOR","utils","op","byteLength","pl","lastArg","serialize","toJSON","t","cv","ci","comma","sort","_isArray","isObject","_isObject","isString","_isString","asArray","_asArray","prependBase","JsonLdError","ResolvedContext","MAX_CONTEXT_URLS","_throwInvalidLocalContext","ctx","context","_resolveContextUrls","base","element","term","sharedCache","perOpCache","Map","activeCtx","documentLoader","cycles","allResolved","resolved","_get","_resolveRemoteContext","url","document","_cacheResolvedContext","tag","tagMap","remoteDoc","_fetchContext","documentUrl","processingMode","has","parse","contextUrl","details","jsonld","JsonLdProcessor","compact","expand","flatten","_requests","wrapLoader","loader","_loader","LRU","MAX_ACTIVE_CONTEXTS","cache","getProcessed","setProcessed","processedCtx","isUndefined","_isUndefined","isList","_isList","isValue","_isValue","isGraph","_isGraph","isSimpleGraph","_isSimpleGraph","isSubjectReference","_isSubjectReference","expandIri","_expandIri","getContextValue","_getContextValue","isKeyword","_isKeyword","_processContext","_processingMode","removeBase","_removeBase","_prependBase","REGEX_KEYWORD","addValue","_addValue","compareShortestLeast","_compareShortestLeast","api","_selectTerm","iri","containers","typeOrLanguage","typeOrLanguageValue","prefs","compactIri","relativeTo","vocab","mappings","langDir","containerMap","inverse","container","typeOrLanguageValueMap","pref","_checkNestProperty","nestProperty","activeProperty","rval","compacted","compactArrays","localCtx","propagate","overrideProtected","hasOwnProperty","linked","expanded","compactValue","insideReverse","inputCtx","revertToPreviousContext","propertyScopedCtx","typeContext","compactedType","expandedProperty","expandedValue","alias","itemActiveProperty","reverse","nestResult","propertyIsArray","expandedItem","inner","compactedItem","valueIsArray","allowDuplicate","mapObject","indexKey","containerKey","others","idKey","typeKey","compactedValue","compactedProperty","useArray","expandedIri","typeAsSet","isPropertyTermScoped","previousContext","inverseCtx","getInverse","defaultLanguage","list","commonLanguage","commonType","item","itemLanguage","itemType","lang","dir","suffix","substr","choice","partialMatches","iriMap","fastCurieMap","maxPartialLength","terms","curie","isUsableCurie","_prefix","td","startsWith","_iri","language","direction","preserveIndex","keyCount","isValueOnlyKey","hasDefaultLanguage","isValueString","hasNullMapping","RDF","XSD","LINK_HEADER_REL","LINK_HEADER_CONTEXT","RDF_LIST","RDF_FIRST","RDF_REST","RDF_NIL","RDF_TYPE","RDF_PLAIN_LITERAL","RDF_XML_LITERAL","RDF_JSON_LITERAL","RDF_OBJECT","RDF_LANGSTRING","XSD_BOOLEAN","XSD_DOUBLE","XSD_INTEGER","XSD_STRING","util","isAbsolute","_isAbsoluteIri","isRelative","_isRelativeIri","handleEvent","_handleEvent","REGEX_BCP47","INITIAL_CONTEXT_CACHE","INITIAL_CONTEXT_CACHE_MAX_SIZE","defined","createTermDefinition","mapping","colon","prefix","prependedResult","_deepCompare","x1","x2","x1Array","k1s","k2s","k1","v1","v2","ctxs","events","eventCaptureHandler","eventHandler","originalOptions","contextResolver","clone","resolvedContext","protected","getInitialContext","processed","level","resolvedImport","processedImport","importCtx","keyCtx","validKeys","k","previousMapping","simpleTerm","kw","_termHasColon","id","termDefined","termIri","validContainers","isValid","hasSet","nest","cached","initialContext","_createInverseContext","_cloneActiveContext","_revertToPreviousContext","irisToTerms","defaultDirection","ids","fastCurieEntry","_addPreferredTerm","_buildIriMap","entries","letter","child","version","parseLinkHeader","buildHeaders","RequestQueue","REGEX_LINK_HEADER","xhr","headers","XMLHttpRequest","onload","open","setRequestHeader","send","secure","status","statusText","httpStatusCode","doc","response","alternate","contentType","getResponseHeader","linkHeader","getAllResponseHeaders","linkHeaders","linkedContext","_handle","handlers","doNext","handler","defaultEventHandler","setupEventHandler","safe","safeEventHandler","_notSafeEventCodes","logEventHandler","console","log","logWarningEventHandler","warn","unhandledEventHandler","setDefaultEventHandler","isEmptyObject","_isEmptyObject","isSubject","_isSubject","getValues","_getValues","validateTypeValue","_validateTypeValue","_dropUnsafeObject","_expandObject","expandedActiveProperty","expandedParent","insideList","typeScopedContext","nests","unexpandedValue","isJsonType","typeExpansion","property","keyword","isFrame","ve","expandedId","fromEntries","vv","includedResult","reverseMap","items","ii","termCtx","_expandLanguageMap","asGraph","propertyIndex","_expandIndexMap","nextActiveProperty","nestedValues","nv","_expandValue","languageMap","expandedKey","isTypeIndex","insideIndex","prependValue","assign","mustRevert","validCount","keepFreeFloatingNodes","createMergedNodeMap","_createMergedNodeMap","defaultGraph","flattened","ki","node","graphTypes","createNodeMap","_createNodeMap","mergeNodeMapGraphs","_mergeNodeMapGraphs","_createImplicitFrame","flags","frame","_createsCircularReference","subjectToEmbed","graph","subjectStack","subject","_getFrameFlag","flag","_validateFrame","_filterSubjects","subjects","graphMap","_filterSubject","wildcard","matchesSome","matchThis","nodeValues","isEmpty","requireAll","tt","thisFrame","hasDefault","listValue","nodeListValues","lv","_valueMatch","_nodeMatch","_removeEmbed","embeds","uniqueEmbeds","embed","parent","compareValues","removeValue","removeDependents","_cleanupPreserve","bnodesToClear","_addFrameOutput","output","pattern","nodeObject","t1","l1","t2","l2","frameMergedOrDefault","embedded","bnodeMap","issuer","IdentifierIssuer","merged","framed","pruneBlankNodeIdentifiers","explicit","matches","is11","recurse","subframe","o","oo","omitDefaultOn","preserve","reverseProp","cleanupNull","noNulls","_RDFToObject","useNativeTypes","rdfDirection","termType","datatype","isNumeric","parseFloat","split","fromRDF","dataset","referencedOnce","useRdfType","quad","nodeMap","predicate","objectIsNode","usages","graphObject","nil","usage","listNodes","nodeKeyCount","isBlankNode","listNode","graphSubjects","graphSubject","canonize","platform","ContextResolver","NQuads","_expand","_flatten","_fromRDF","toRDF","_toRDF","_frameMergedOrDefault","_cleanupNull","_getInitialContext","_compact","_compactIri","mergeNodeMaps","_mergeNodeMaps","_logEventHandler","_logWarningEventHandler","_safeEventHandler","_setDefaultEventHandler","_setupEventHandler","strictEventHandler","_strictEventHandler","_unhandledEventHandler","wrapper","_rdfParsers","RESOLVED_CONTEXT_CACHE_MAX_SIZE","_resolvedContextCache","_setDefaults","defaults","compactToRelative","skipExpansion","processContext","tmp","hasContext","graphAlias","toResolve","contextsToProcess","expandContext","defaultBase","remoteContext","omitDefault","frameContext","omitGraph","expandedFrame","frameKeys","framing","normalize","algorithm","inputFormat","parsedInput","produceGeneralizedRdf","rdfParser","parsedDataset","merge","docs","all","mergeNodes","graphs","relabelBlankNodes","_graphs","graphName","_nodeMap","_documentLoader","load","documentLoaders","useDocumentLoader","registerRDFParser","parser","unregisterRDFParser","setupGlobals","setupDocumentLoaders","factory","getId","_list","properties","referencedNode","reverseProperty","itemName","objects","mergedNode","graphNames","xhrLoader","jsonCanonicalize","_graphToRDF","graphTerm","getOldIds","_objectToRDF","_listToRDF","rest","isBoolean","isDouble","toExponential","isNumber","isFinite","parsers","simple","regex","full","parsed","m","exec","scheme","href","authority","normalizedPath","removeDotSegments","path","rel","protocol","query","lastIndexOf","fragment","root","baseSegments","iriSegments","isAbsoluteRegex","REGEX_LINK_HEADERS","REGEX_LINK_HEADER_PARAMS","DEFAULTS","accept","_labelBlankNodes","hasAccept","h","Accept","header","params","hasProperty","hasValue","removeProperty","Yallist","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","LRUCache","Infinity","lc","stale","maxAge","dispose","noDisposeOnSet","updateAgeOnGet","reset","mL","allowStale","mA","lengthCalculator","lC","hit","itemCount","rforEach","thisp","walker","prev","forEachStep","dump","isStale","now","dumpLru","Date","del","Entry","peek","l","expiresAt","prune","doUse","unshiftNode","diff","removeNode","insert","inserted","Node","create","pushNode","forEachReverse","getReverse","mapReverse","initial","acc","reduceReverse","toArrayReverse","to","sliceReverse","deleteCount","nodes","MessageDigest","Permuter","_stringHashCompare","hash","createMessageDigest","canonicalIdMap","maxDeepIterations","blankNodeInfo","canonicalIssuer","quads","deepIterations","_addBlankNodeQuadInfo","component","hashToBlankNodes","nonNormalized","_yield","_hashAndTrackBlankNode","hashes","nonUnique","idList","hashPathList","hasId","hashNDegreeQuads","oldIds","normalized","nQuad","serializeQuadComponents","_componentWithCanonicalId","nquads","info","copy","modifyFirstDegreeComponent","serializeQuad","md","nquad","update","digest","related","position","getRelatedPredicate","hashToRelated","createHashToRelated","chosenIssuer","chosenPath","permuter","hasNext","permutation","issuerCopy","recursionList","nextPermutation","_addRelatedBlankNodeHash","hashFirstDegreeQuads","hashRelatedBlankNode","setImmediate","URDNA2015","URDNA2015Sync","URGNA2012","URGNA2012Sync","rdfCanonizeNative","_inputToDataset","legacyDatasetToQuads","_rdfCanonizeNative","useNative","canonical","main","_canonizeSync","canonizeSync","SerializerStream","baseIRI","prettyPrint","skipContext","namespace","handleData","quadArray","toJsonldQuad","rawJsonld","transformedJsonld","static","toJsonldTerm","Serializer","Sink","Impl","import"],"sourceRoot":""} \ No newline at end of file diff --git a/js/689.96a6be26.js b/js/689.96a6be26.js new file mode 100644 index 0000000..643b20a --- /dev/null +++ b/js/689.96a6be26.js @@ -0,0 +1,73 @@ +(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[689],{86053:function(e,t,n){"use strict";const{SymbolDispose:r}=n(53464),{AbortError:o,codes:i}=n(52837),{isNodeStream:a,isWebStream:s,kControllerErrorFunction:l}=n(25066),c=n(14434),{ERR_INVALID_ARG_TYPE:d}=i;let u;const f=(e,t)=>{if("object"!==typeof e||!("aborted"in e))throw new d(t,"AbortSignal",e)};e.exports.addAbortSignal=function(t,n){if(f(t,"signal"),!a(n)&&!s(n))throw new d("stream",["ReadableStream","WritableStream","Stream"],n);return e.exports.addAbortSignalNoValidate(t,n)},e.exports.addAbortSignalNoValidate=function(e,t){if("object"!==typeof e||!("aborted"in e))return t;const i=a(t)?()=>{t.destroy(new o(void 0,{cause:e.reason}))}:()=>{t[l](new o(void 0,{cause:e.reason}))};if(e.aborted)i();else{u=u||n(74138).addAbortListener;const o=u(e,i);c(t,o[r])}return t}},12771:function(e,t,n){"use strict";const{StringPrototypeSlice:r,SymbolIterator:o,TypedArrayPrototypeSet:i,Uint8Array:a}=n(53464),{Buffer:s}=n(48764),{inspect:l}=n(74138);e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){const t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(e){const t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}shift(){if(0===this.length)return;const e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(0===this.length)return"";let t=this.head,n=""+t.data;while(null!==(t=t.next))n+=e+t.data;return n}concat(e){if(0===this.length)return s.alloc(0);const t=s.allocUnsafe(e>>>0);let n=this.head,r=0;while(n)i(t,n.data,r),r+=n.data.length,n=n.next;return t}consume(e,t){const n=this.head.data;if(ei.length)){e===i.length?(t+=i,++o,n.next?this.head=n.next:this.head=this.tail=null):(t+=r(i,0,e),this.head=n,n.data=r(i,e));break}t+=i,e-=i.length,++o}while(null!==(n=n.next));return this.length-=o,t}_getBuffer(e){const t=s.allocUnsafe(e),n=e;let r=this.head,o=0;do{const s=r.data;if(!(e>s.length)){e===s.length?(i(t,s,n-e),++o,r.next?this.head=r.next:this.head=this.tail=null):(i(t,new a(s.buffer,s.byteOffset,e),n-e),this.head=r,r.data=s.slice(e));break}i(t,s,n-e),e-=s.length,++o}while(null!==(r=r.next));return this.length-=o,t}[Symbol.for("nodejs.util.inspect.custom")](e,t){return l(this,{...t,depth:0,customInspect:!1})}}},73705:function(e,t,n){"use strict";const{pipeline:r}=n(93101),o=n(41928),{destroyer:i}=n(28697),{isNodeStream:a,isReadable:s,isWritable:l,isWebStream:c,isTransformStream:d,isWritableStream:u,isReadableStream:f}=n(25066),{AbortError:p,codes:{ERR_INVALID_ARG_VALUE:h,ERR_MISSING_ARGS:g}}=n(52837),y=n(14434);e.exports=function(...e){if(0===e.length)throw new g("streams");if(1===e.length)return o.from(e[0]);const t=[...e];if("function"===typeof e[0]&&(e[0]=o.from(e[0])),"function"===typeof e[e.length-1]){const t=e.length-1;e[t]=o.from(e[t])}for(let r=0;r0&&!(l(e[r])||u(e[r])||d(e[r])))throw new h(`streams[${r}]`,t[r],"must be writable")}let n,b,v,m,w;function x(e){const t=m;m=null,t?t(e):e?w.destroy(e):I||E||w.destroy()}const _=e[0],S=r(e,x),E=!!(l(_)||u(_)||d(_)),I=!!(s(S)||f(S)||d(S));if(w=new o({writableObjectMode:!(null===_||void 0===_||!_.writableObjectMode),readableObjectMode:!(null===S||void 0===S||!S.readableObjectMode),writable:E,readable:I}),E){if(a(_))w._write=function(e,t,r){_.write(e,t)?r():n=r},w._final=function(e){_.end(),b=e},_.on("drain",(function(){if(n){const e=n;n=null,e()}}));else if(c(_)){const e=d(_)?_.writable:_,t=e.getWriter();w._write=async function(e,n,r){try{await t.ready,t.write(e).catch((()=>{})),r()}catch(o){r(o)}},w._final=async function(e){try{await t.ready,t.close().catch((()=>{})),b=e}catch(n){e(n)}}}const e=d(S)?S.readable:S;y(e,(()=>{if(b){const e=b;b=null,e()}}))}if(I)if(a(S))S.on("readable",(function(){if(v){const e=v;v=null,e()}})),S.on("end",(function(){w.push(null)})),w._read=function(){while(1){const e=S.read();if(null===e)return void(v=w._read);if(!w.push(e))return}};else if(c(S)){const e=d(S)?S.readable:S,t=e.getReader();w._read=async function(){while(1)try{const{value:e,done:n}=await t.read();if(!w.push(e))return;if(n)return void w.push(null)}catch{return}}}return w._destroy=function(e,t){e||null===m||(e=new p),v=null,n=null,b=null,null===m?t(e):(m=t,a(S)&&i(S,e))},w}},28697:function(e,t,n){"use strict";const r=n(34155),{aggregateTwoErrors:o,codes:{ERR_MULTIPLE_CALLBACK:i},AbortError:a}=n(52837),{Symbol:s}=n(53464),{kIsDestroyed:l,isDestroyed:c,isFinished:d,isServerRequest:u}=n(25066),f=s("kDestroy"),p=s("kConstruct");function h(e,t,n){e&&(e.stack,t&&!t.errored&&(t.errored=e),n&&!n.errored&&(n.errored=e))}function g(e,t){const n=this._readableState,r=this._writableState,i=r||n;return null!==r&&void 0!==r&&r.destroyed||null!==n&&void 0!==n&&n.destroyed?("function"===typeof t&&t(),this):(h(e,r,n),r&&(r.destroyed=!0),n&&(n.destroyed=!0),i.constructed?y(this,e,t):this.once(f,(function(n){y(this,o(n,e),t)})),this)}function y(e,t,n){let o=!1;function i(t){if(o)return;o=!0;const i=e._readableState,a=e._writableState;h(t,a,i),a&&(a.closed=!0),i&&(i.closed=!0),"function"===typeof n&&n(t),t?r.nextTick(b,e,t):r.nextTick(v,e)}try{e._destroy(t||null,i)}catch(t){i(t)}}function b(e,t){m(e,t),v(e)}function v(e){const t=e._readableState,n=e._writableState;n&&(n.closeEmitted=!0),t&&(t.closeEmitted=!0),(null!==n&&void 0!==n&&n.emitClose||null!==t&&void 0!==t&&t.emitClose)&&e.emit("close")}function m(e,t){const n=e._readableState,r=e._writableState;null!==r&&void 0!==r&&r.errorEmitted||null!==n&&void 0!==n&&n.errorEmitted||(r&&(r.errorEmitted=!0),n&&(n.errorEmitted=!0),e.emit("error",t))}function w(){const e=this._readableState,t=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=!1===e.readable,e.endEmitted=!1===e.readable),t&&(t.constructed=!0,t.destroyed=!1,t.closed=!1,t.closeEmitted=!1,t.errored=null,t.errorEmitted=!1,t.finalCalled=!1,t.prefinished=!1,t.ended=!1===t.writable,t.ending=!1===t.writable,t.finished=!1===t.writable)}function x(e,t,n){const o=e._readableState,i=e._writableState;if(null!==i&&void 0!==i&&i.destroyed||null!==o&&void 0!==o&&o.destroyed)return this;null!==o&&void 0!==o&&o.autoDestroy||null!==i&&void 0!==i&&i.autoDestroy?e.destroy(t):t&&(t.stack,i&&!i.errored&&(i.errored=t),o&&!o.errored&&(o.errored=t),n?r.nextTick(m,e,t):m(e,t))}function _(e,t){if("function"!==typeof e._construct)return;const n=e._readableState,o=e._writableState;n&&(n.constructed=!1),o&&(o.constructed=!1),e.once(p,t),e.listenerCount(p)>1||r.nextTick(S,e)}function S(e){let t=!1;function n(n){if(t)return void x(e,null!==n&&void 0!==n?n:new i);t=!0;const o=e._readableState,a=e._writableState,s=a||o;o&&(o.constructed=!0),a&&(a.constructed=!0),s.destroyed?e.emit(f,n):n?x(e,n,!0):r.nextTick(E,e)}try{e._construct((e=>{r.nextTick(n,e)}))}catch(o){r.nextTick(n,o)}}function E(e){e.emit(p)}function I(e){return(null===e||void 0===e?void 0:e.setHeader)&&"function"===typeof e.abort}function j(e){e.emit("close")}function R(e,t){e.emit("error",t),r.nextTick(j,e)}function A(e,t){e&&!c(e)&&(t||d(e)||(t=new a),u(e)?(e.socket=null,e.destroy(t)):I(e)?e.abort():I(e.req)?e.req.abort():"function"===typeof e.destroy?e.destroy(t):"function"===typeof e.close?e.close():t?r.nextTick(R,e,t):r.nextTick(j,e),e.destroyed||(e[l]=!0))}e.exports={construct:_,destroyer:A,destroy:g,undestroy:w,errorOrDestroy:x}},41928:function(e,t,n){"use strict";const{ObjectDefineProperties:r,ObjectGetOwnPropertyDescriptor:o,ObjectKeys:i,ObjectSetPrototypeOf:a}=n(53464);e.exports=c;const s=n(75009),l=n(51572);a(c.prototype,s.prototype),a(c,s);{const e=i(l.prototype);for(let t=0;t{u=!1,e&&v(t,e),f(e)})),c._write=function(e,t,o){n.write(e,t)?o():r=o},c._final=function(e){n.end(),o=e},n.on("drain",(function(){if(r){const e=r;r=null,e()}})),n.on("finish",(function(){if(o){const e=o;o=null,e()}}))),d&&(h(t,(e=>{d=!1,e&&v(t,e),f(e)})),t.on("readable",(function(){if(s){const e=s;s=null,e()}})),t.on("end",(function(){c.push(null)})),c._read=function(){while(1){const e=t.read();if(null===e)return void(s=c._read);if(!c.push(e))return}}),c._destroy=function(e,i){e||null===l||(e=new g),s=null,r=null,o=null,null===l?i(e):(l=i,v(n,e),v(t,e))},c}e.exports=function e(t,n){if(u(t))return t;if(c(t))return k({readable:t});if(d(t))return k({writable:t});if(l(t))return k({writable:!1,readable:!1});if(f(t))return k({readable:w.fromWeb(t)});if(p(t))return k({writable:x.fromWeb(t)});if("function"===typeof t){const{value:e,write:o,final:i,destroy:a}=N(t);if(s(e))return S(A,e,{objectMode:!0,write:o,final:i,destroy:a});const l=null===e||void 0===e?void 0:e.then;if("function"===typeof l){let t;const n=R(l,e,(e=>{if(null!=e)throw new b("nully","body",e)}),(e=>{v(t,e)}));return t=new A({objectMode:!0,readable:!1,write:o,final(e){i((async()=>{try{await n,r.nextTick(e,null)}catch(t){r.nextTick(e,t)}}))},destroy:a})}throw new b("Iterable, AsyncIterable or AsyncFunction",n,e)}if(I(t))return e(t.arrayBuffer());if(s(t))return S(A,t,{objectMode:!0,writable:!1});if(f(null===t||void 0===t?void 0:t.readable)&&p(null===t||void 0===t?void 0:t.writable))return A.fromWeb(t);if("object"===typeof(null===t||void 0===t?void 0:t.writable)||"object"===typeof(null===t||void 0===t?void 0:t.readable)){const n=null!==t&&void 0!==t&&t.readable?c(null===t||void 0===t?void 0:t.readable)?null===t||void 0===t?void 0:t.readable:e(t.readable):void 0,r=null!==t&&void 0!==t&&t.writable?d(null===t||void 0===t?void 0:t.writable)?null===t||void 0===t?void 0:t.writable:e(t.writable):void 0;return k({readable:n,writable:r})}const o=null===t||void 0===t?void 0:t.then;if("function"===typeof o){let e;return R(o,t,(t=>{null!=t&&e.push(t),e.push(null)}),(t=>{v(e,t)})),e=new A({objectMode:!0,writable:!1,read(){}})}throw new y(n,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],t)}},14434:function(e,t,n){const r=n(34155),{AbortError:o,codes:i}=n(52837),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:s}=i,{kEmptyObject:l,once:c}=n(74138),{validateAbortSignal:d,validateFunction:u,validateObject:f,validateBoolean:p}=n(95793),{Promise:h,PromisePrototypeThen:g,SymbolDispose:y}=n(53464),{isClosed:b,isReadable:v,isReadableNodeStream:m,isReadableStream:w,isReadableFinished:x,isReadableErrored:_,isWritable:S,isWritableNodeStream:E,isWritableStream:I,isWritableFinished:j,isWritableErrored:R,isNodeStream:A,willEmitClose:N,kIsClosedPromise:k}=n(25066);let D;function O(e){return e.setHeader&&"function"===typeof e.abort}const T=()=>{};function L(e,t,i){var p,h;if(2===arguments.length?(i=t,t=l):null==t?t=l:f(t,"options"),u(i,"callback"),d(t.signal,"options.signal"),i=c(i),w(e)||I(e))return C(e,t,i);if(!A(e))throw new a("stream",["ReadableStream","WritableStream","Stream"],e);const g=null!==(p=t.readable)&&void 0!==p?p:m(e),k=null!==(h=t.writable)&&void 0!==h?h:E(e),L=e._writableState,M=e._readableState,P=()=>{e.writable||J()};let F=N(e)&&m(e)===g&&E(e)===k,W=j(e,!1);const J=()=>{W=!0,e.destroyed&&(F=!1),(!F||e.readable&&!g)&&(g&&!B||i.call(e))};let B=x(e,!1);const $=()=>{B=!0,e.destroyed&&(F=!1),(!F||e.writable&&!k)&&(k&&!W||i.call(e))},H=t=>{i.call(e,t)};let U=b(e);const V=()=>{U=!0;const t=R(e)||_(e);return t&&"boolean"!==typeof t?i.call(e,t):g&&!B&&m(e,!0)&&!x(e,!1)?i.call(e,new s):!k||W||j(e,!1)?void i.call(e):i.call(e,new s)},q=()=>{U=!0;const t=R(e)||_(e);if(t&&"boolean"!==typeof t)return i.call(e,t);i.call(e)},G=()=>{e.req.on("finish",J)};O(e)?(e.on("complete",J),F||e.on("abort",V),e.req?G():e.on("request",G)):k&&!L&&(e.on("end",P),e.on("close",P)),F||"boolean"!==typeof e.aborted||e.on("aborted",V),e.on("end",$),e.on("finish",J),!1!==t.error&&e.on("error",H),e.on("close",V),U?r.nextTick(V):null!==L&&void 0!==L&&L.errorEmitted||null!==M&&void 0!==M&&M.errorEmitted?F||r.nextTick(q):(g||F&&!v(e)||!W&&!1!==S(e))&&(k||F&&!S(e)||!B&&!1!==v(e))?M&&e.req&&e.aborted&&r.nextTick(q):r.nextTick(q);const z=()=>{i=T,e.removeListener("aborted",V),e.removeListener("complete",J),e.removeListener("abort",V),e.removeListener("request",G),e.req&&e.req.removeListener("finish",J),e.removeListener("end",P),e.removeListener("close",P),e.removeListener("finish",J),e.removeListener("end",$),e.removeListener("error",H),e.removeListener("close",V)};if(t.signal&&!U){const a=()=>{const n=i;z(),n.call(e,new o(void 0,{cause:t.signal.reason}))};if(t.signal.aborted)r.nextTick(a);else{D=D||n(74138).addAbortListener;const r=D(t.signal,a),o=i;i=c(((...t)=>{r[y](),o.apply(e,t)}))}}return z}function C(e,t,i){let a=!1,s=T;if(t.signal)if(s=()=>{a=!0,i.call(e,new o(void 0,{cause:t.signal.reason}))},t.signal.aborted)r.nextTick(s);else{D=D||n(74138).addAbortListener;const r=D(t.signal,s),o=i;i=c(((...t)=>{r[y](),o.apply(e,t)}))}const l=(...t)=>{a||r.nextTick((()=>i.apply(e,t)))};return g(e[k].promise,l,l),T}function M(e,t){var n;let r=!1;return null===t&&(t=l),null!==(n=t)&&void 0!==n&&n.cleanup&&(p(t.cleanup,"cleanup"),r=t.cleanup),new h(((n,o)=>{const i=L(e,t,(e=>{r&&i(),e?o(e):n()}))}))}e.exports=L,e.exports.finished=M},40399:function(e,t,n){"use strict";const r=n(34155),{PromisePrototypeThen:o,SymbolAsyncIterator:i,SymbolIterator:a}=n(53464),{Buffer:s}=n(48764),{ERR_INVALID_ARG_TYPE:l,ERR_STREAM_NULL_VALUES:c}=n(52837).codes;function d(e,t,n){let d,u;if("string"===typeof t||t instanceof s)return new e({objectMode:!0,...n,read(){this.push(t),this.push(null)}});if(t&&t[i])u=!0,d=t[i]();else{if(!t||!t[a])throw new l("iterable",["Iterable"],t);u=!1,d=t[a]()}const f=new e({objectMode:!0,highWaterMark:1,...n});let p=!1;async function h(e){const t=void 0!==e&&null!==e,n="function"===typeof d.throw;if(t&&n){const{value:t,done:n}=await d.throw(e);if(await t,n)return}if("function"===typeof d.return){const{value:e}=await d.return();await e}}async function g(){for(;;){try{const{value:e,done:t}=u?await d.next():d.next();if(t)f.push(null);else{const t=e&&"function"===typeof e.then?await e:e;if(null===t)throw p=!1,new c;if(f.push(t))continue;p=!1}}catch(e){f.destroy(e)}break}}return f._read=function(){p||(p=!0,g())},f._destroy=function(e,t){o(h(e),(()=>r.nextTick(t,e)),(n=>r.nextTick(t,n||e)))},f}e.exports=d},78951:function(e,t,n){"use strict";const{ArrayIsArray:r,ObjectSetPrototypeOf:o}=n(53464),{EventEmitter:i}=n(17187);function a(e){i.call(this,e)}function s(e,t,n){if("function"===typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?r(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}o(a.prototype,i.prototype),o(a,i),a.prototype.pipe=function(e,t){const n=this;function r(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function o(){n.readable&&n.resume&&n.resume()}n.on("data",r),e.on("drain",o),e._isStdio||t&&!1===t.end||(n.on("end",l),n.on("close",c));let a=!1;function l(){a||(a=!0,e.end())}function c(){a||(a=!0,"function"===typeof e.destroy&&e.destroy())}function d(e){u(),0===i.listenerCount(this,"error")&&this.emit("error",e)}function u(){n.removeListener("data",r),e.removeListener("drain",o),n.removeListener("end",l),n.removeListener("close",c),n.removeListener("error",d),e.removeListener("error",d),n.removeListener("end",u),n.removeListener("close",u),e.removeListener("close",u)}return s(n,"error",d),s(e,"error",d),n.on("end",u),n.on("close",u),e.on("close",u),e.emit("pipe",n),e},e.exports={Stream:a,prependListener:s}},71902:function(e,t,n){"use strict";const r=globalThis.AbortController||n(28599).AbortController,{codes:{ERR_INVALID_ARG_VALUE:o,ERR_INVALID_ARG_TYPE:i,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:s},AbortError:l}=n(52837),{validateAbortSignal:c,validateInteger:d,validateObject:u}=n(95793),f=n(53464).Symbol("kWeak"),p=n(53464).Symbol("kResistStopPropagation"),{finished:h}=n(14434),g=n(73705),{addAbortSignalNoValidate:y}=n(86053),{isWritable:b,isNodeStream:v}=n(25066),{deprecate:m}=n(74138),{ArrayPrototypePush:w,Boolean:x,MathFloor:_,Number:S,NumberIsNaN:E,Promise:I,PromiseReject:j,PromiseResolve:R,PromisePrototypeThen:A,Symbol:N}=n(53464),k=N("kEmpty"),D=N("kEof");function O(e,t){if(null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&c(t.signal,"options.signal"),v(e)&&!b(e))throw new o("stream",e,"must be writable");const n=g(this,e);return null!==t&&void 0!==t&&t.signal&&y(t.signal,n),n}function T(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&c(t.signal,"options.signal");let r=1;null!=(null===t||void 0===t?void 0:t.concurrency)&&(r=_(t.concurrency));let o=r-1;return null!=(null===t||void 0===t?void 0:t.highWaterMark)&&(o=_(t.highWaterMark)),d(r,"options.concurrency",1),d(o,"options.highWaterMark",0),o+=r,async function*(){const i=n(74138).AbortSignalAny([null===t||void 0===t?void 0:t.signal].filter(x)),a=this,s=[],c={signal:i};let d,u,f=!1,p=0;function h(){f=!0,g()}function g(){p-=1,y()}function y(){u&&!f&&p=o||p>=r)&&await new I((e=>{u=e}))}s.push(D)}catch(t){const e=j(t);A(e,g,h),s.push(e)}finally{f=!0,d&&(d(),d=null)}}b();try{while(1){while(s.length>0){const e=await s[0];if(e===D)return;if(i.aborted)throw new l;e!==k&&(yield e),s.shift(),y()}await new I((e=>{d=e}))}}finally{f=!0,u&&(u(),u=null)}}.call(this)}function L(e=void 0){return null!=e&&u(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&c(e.signal,"options.signal"),async function*(){let t=0;for await(const r of this){var n;if(null!==e&&void 0!==e&&null!==(n=e.signal)&&void 0!==n&&n.aborted)throw new l({cause:e.signal.reason});yield[t++,r]}}.call(this)}async function C(e,t=void 0){for await(const n of W.call(this,e,t))return!0;return!1}async function M(e,t=void 0){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);return!await C.call(this,(async(...t)=>!await e(...t)),t)}async function P(e,t){for await(const n of W.call(this,e,t))return n}async function F(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);async function n(t,n){return await e(t,n),k}for await(const r of T.call(this,n,t));}function W(e,t){if("function"!==typeof e)throw new i("fn",["Function","AsyncFunction"],e);async function n(t,n){return await e(t,n)?t:k}return T.call(this,n,t)}class J extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function B(e,t,n){var o;if("function"!==typeof e)throw new i("reducer",["Function","AsyncFunction"],e);null!=n&&u(n,"options"),null!=(null===n||void 0===n?void 0:n.signal)&&c(n.signal,"options.signal");let a=arguments.length>1;if(null!==n&&void 0!==n&&null!==(o=n.signal)&&void 0!==o&&o.aborted){const e=new l(void 0,{cause:n.signal.reason});throw this.once("error",(()=>{})),await h(this.destroy(e)),e}const s=new r,d=s.signal;if(null!==n&&void 0!==n&&n.signal){const e={once:!0,[f]:this,[p]:!0};n.signal.addEventListener("abort",(()=>s.abort()),e)}let g=!1;try{for await(const r of this){var y;if(g=!0,null!==n&&void 0!==n&&null!==(y=n.signal)&&void 0!==y&&y.aborted)throw new l;a?t=await e(t,r,{signal:d}):(t=r,a=!0)}if(!g&&!a)throw new J}finally{s.abort()}return t}async function $(e){null!=e&&u(e,"options"),null!=(null===e||void 0===e?void 0:e.signal)&&c(e.signal,"options.signal");const t=[];for await(const r of this){var n;if(null!==e&&void 0!==e&&null!==(n=e.signal)&&void 0!==n&&n.aborted)throw new l(void 0,{cause:e.signal.reason});w(t,r)}return t}function H(e,t){const n=T.call(this,e,t);return async function*(){for await(const e of n)yield*e}.call(this)}function U(e){if(e=S(e),E(e))return 0;if(e<0)throw new s("number",">= 0",e);return e}function V(e,t=void 0){return null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&c(t.signal,"options.signal"),e=U(e),async function*(){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;for await(const o of this){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;e--<=0&&(yield o)}}.call(this)}function q(e,t=void 0){return null!=t&&u(t,"options"),null!=(null===t||void 0===t?void 0:t.signal)&&c(t.signal,"options.signal"),e=U(e),async function*(){var n;if(null!==t&&void 0!==t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new l;for await(const o of this){var r;if(null!==t&&void 0!==t&&null!==(r=t.signal)&&void 0!==r&&r.aborted)throw new l;if(e-- >0&&(yield o),e<=0)return}}.call(this)}e.exports.streamReturningOperators={asIndexedPairs:m(L,"readable.asIndexedPairs will be removed in a future version."),drop:V,filter:W,flatMap:H,map:T,take:q,compose:O},e.exports.promiseReturningOperators={every:M,forEach:F,reduce:B,toArray:$,some:C,find:P}},75955:function(e,t,n){"use strict";const{ObjectSetPrototypeOf:r}=n(53464);e.exports=i;const o=n(53606);function i(e){if(!(this instanceof i))return new i(e);o.call(this,e)}r(i.prototype,o.prototype),r(i,o),i.prototype._transform=function(e,t,n){n(null,e)}},93101:function(e,t,n){const r=n(34155),{ArrayIsArray:o,Promise:i,SymbolAsyncIterator:a,SymbolDispose:s}=n(53464),l=n(14434),{once:c}=n(74138),d=n(28697),u=n(41928),{aggregateTwoErrors:f,codes:{ERR_INVALID_ARG_TYPE:p,ERR_INVALID_RETURN_VALUE:h,ERR_MISSING_ARGS:g,ERR_STREAM_DESTROYED:y,ERR_STREAM_PREMATURE_CLOSE:b},AbortError:v}=n(52837),{validateFunction:m,validateAbortSignal:w}=n(95793),{isIterable:x,isReadable:_,isReadableNodeStream:S,isNodeStream:E,isTransformStream:I,isWebStream:j,isReadableStream:R,isReadableFinished:A}=n(25066),N=globalThis.AbortController||n(28599).AbortController;let k,D,O;function T(e,t,n){let r=!1;e.on("close",(()=>{r=!0}));const o=l(e,{readable:t,writable:n},(e=>{r=!e}));return{destroy:t=>{r||(r=!0,d.destroyer(e,t||new y("pipe")))},cleanup:o}}function L(e){return m(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function C(e){if(x(e))return e;if(S(e))return M(e);throw new p("val",["Readable","Iterable","AsyncIterable"],e)}async function*M(e){D||(D=n(75009)),yield*D.prototype[a].call(e)}async function P(e,t,n,{end:r}){let o,a=null;const s=e=>{if(e&&(o=e),a){const e=a;a=null,e()}},c=()=>new i(((e,t)=>{o?t(o):a=()=>{o?t(o):e()}}));t.on("drain",s);const d=l(t,{readable:!1},s);try{t.writableNeedDrain&&await c();for await(const n of e)t.write(n)||await c();r&&(t.end(),await c()),n()}catch(u){n(o!==u?f(o,u):u)}finally{d(),t.off("drain",s)}}async function F(e,t,n,{end:r}){I(t)&&(t=t.writable);const o=t.getWriter();try{for await(const t of e)await o.ready,o.write(t).catch((()=>{}));await o.ready,r&&await o.close(),n()}catch(i){try{await o.abort(i),n(i)}catch(i){n(i)}}}function W(...e){return J(e,c(L(e)))}function J(e,t,i){if(1===e.length&&o(e[0])&&(e=e[0]),e.length<2)throw new g("streams");const a=new N,l=a.signal,c=null===i||void 0===i?void 0:i.signal,d=[];function f(){W(new v)}let y,b,m;w(c,"options.signal"),O=O||n(74138).addAbortListener,c&&(y=O(c,f));const A=[];let D,L=0;function M(e){W(e,0===--L)}function W(e,n){var o;if(!e||b&&"ERR_STREAM_PREMATURE_CLOSE"!==b.code||(b=e),b||n){while(A.length)A.shift()(b);null===(o=y)||void 0===o||o[s](),a.abort(),n&&(b||d.forEach((e=>e())),r.nextTick(t,b,m))}}for(let U=0;U0,z=q||!1!==(null===i||void 0===i?void 0:i.end),K=U===e.length-1;if(E(V)){if(z){const{destroy:Q,cleanup:X}=T(V,q,G);A.push(Q),_(V)&&K&&d.push(X)}function J(e){e&&"AbortError"!==e.name&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code&&M(e)}V.on("error",J),_(V)&&K&&d.push((()=>{V.removeListener("error",J)}))}if(0===U)if("function"===typeof V){if(D=V({signal:l}),!x(D))throw new h("Iterable, AsyncIterable or Stream","source",D)}else D=x(V)||S(V)||I(V)?V:u.from(V);else if("function"===typeof V){var $;if(I(D))D=C(null===($=D)||void 0===$?void 0:$.readable);else D=C(D);if(D=V(D,{signal:l}),q){if(!x(D,!0))throw new h("AsyncIterable",`transform[${U-1}]`,D)}else{var H;k||(k=n(75955));const Y=new k({objectMode:!0}),Z=null===(H=D)||void 0===H?void 0:H.then;if("function"===typeof Z)L++,Z.call(D,(e=>{m=e,null!=e&&Y.write(e),z&&Y.end(),r.nextTick(M)}),(e=>{Y.destroy(e),r.nextTick(M,e)}));else if(x(D,!0))L++,P(D,Y,M,{end:z});else{if(!R(D)&&!I(D))throw new h("AsyncIterable or Promise","destination",D);{const ne=D.readable||D;L++,P(ne,Y,M,{end:z})}}D=Y;const{destroy:ee,cleanup:te}=T(D,!1,!0);A.push(ee),K&&d.push(te)}}else if(E(V)){if(S(D)){L+=2;const re=B(D,V,M,{end:z});_(V)&&K&&d.push(re)}else if(I(D)||R(D)){const oe=D.readable||D;L++,P(oe,V,M,{end:z})}else{if(!x(D))throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],D);L++,P(D,V,M,{end:z})}D=V}else if(j(V)){if(S(D))L++,F(C(D),V,M,{end:z});else if(R(D)||x(D))L++,F(D,V,M,{end:z});else{if(!I(D))throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],D);L++,F(D.readable,V,M,{end:z})}D=V}else D=u.from(V)}return(null!==l&&void 0!==l&&l.aborted||null!==c&&void 0!==c&&c.aborted)&&r.nextTick(f),D}function B(e,t,n,{end:o}){let i=!1;if(t.on("close",(()=>{i||n(new b)})),e.pipe(t,{end:!1}),o){function a(){i=!0,t.end()}A(e)?r.nextTick(a):e.once("end",a)}else n();return l(e,{readable:!0,writable:!1},(t=>{const r=e._readableState;t&&"ERR_STREAM_PREMATURE_CLOSE"===t.code&&r&&r.ended&&!r.errored&&!r.errorEmitted?e.once("end",n).once("error",n):n(t)})),l(t,{readable:!1,writable:!0},n)}e.exports={pipelineImpl:J,pipeline:W}},75009:function(e,t,n){const r=n(34155),{ArrayPrototypeIndexOf:o,NumberIsInteger:i,NumberIsNaN:a,NumberParseInt:s,ObjectDefineProperties:l,ObjectKeys:c,ObjectSetPrototypeOf:d,Promise:u,SafeSet:f,SymbolAsyncDispose:p,SymbolAsyncIterator:h,Symbol:g}=n(53464);e.exports=se,se.ReadableState=ae;const{EventEmitter:y}=n(17187),{Stream:b,prependListener:v}=n(78951),{Buffer:m}=n(48764),{addAbortSignal:w}=n(86053),x=n(14434);let _=n(74138).debuglog("stream",(e=>{_=e}));const S=n(12771),E=n(28697),{getHighWaterMark:I,getDefaultHighWaterMark:j}=n(33716),{aggregateTwoErrors:R,codes:{ERR_INVALID_ARG_TYPE:A,ERR_METHOD_NOT_IMPLEMENTED:N,ERR_OUT_OF_RANGE:k,ERR_STREAM_PUSH_AFTER_EOF:D,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:O},AbortError:T}=n(52837),{validateObject:L}=n(95793),C=g("kPaused"),{StringDecoder:M}=n(32553),P=n(40399);d(se.prototype,b.prototype),d(se,b);const F=()=>{},{errorOrDestroy:W}=E,J=1,B=2,$=4,H=8,U=16,V=32,q=64,G=128,z=256,K=512,Q=1024,X=2048,Y=4096,Z=8192,ee=16384,te=32768,ne=65536,re=1<<17,oe=1<<18;function ie(e){return{enumerable:!1,get(){return 0!==(this.state&e)},set(t){t?this.state|=e:this.state&=~e}}}function ae(e,t,r){"boolean"!==typeof r&&(r=t instanceof n(41928)),this.state=X|Y|U|V,e&&e.objectMode&&(this.state|=J),r&&e&&e.readableObjectMode&&(this.state|=J),this.highWaterMark=e?I(this,e,"readableHighWaterMark",r):j(!1),this.buffer=new S,this.length=0,this.pipes=[],this.flowing=null,this[C]=null,e&&!1===e.emitClose&&(this.state&=~X),e&&!1===e.autoDestroy&&(this.state&=~Y),this.errored=null,this.defaultEncoding=e&&e.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,e&&e.encoding&&(this.decoder=new M(e.encoding),this.encoding=e.encoding)}function se(e){if(!(this instanceof se))return new se(e);const t=this instanceof n(41928);this._readableState=new ae(e,this,t),e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.construct&&(this._construct=e.construct),e.signal&&!t&&w(e.signal,this)),b.call(this,e),E.construct(this,(()=>{this._readableState.needReadable&&ye(this,this._readableState)}))}function le(e,t,n,r){_("readableAddChunk",t);const o=e._readableState;let i;if(0===(o.state&J)&&("string"===typeof t?(n=n||o.defaultEncoding,o.encoding!==n&&(r&&o.encoding?t=m.from(t,n).toString(o.encoding):(t=m.from(t,n),n=""))):t instanceof m?n="":b._isUint8Array(t)?(t=b._uint8ArrayToBuffer(t),n=""):null!=t&&(i=new A("chunk",["string","Buffer","Uint8Array"],t))),i)W(e,i);else if(null===t)o.state&=~H,pe(e,o);else if(0!==(o.state&J)||t&&t.length>0)if(r)if(0!==(o.state&$))W(e,new O);else{if(o.destroyed||o.errored)return!1;ce(e,o,t,!0)}else if(o.ended)W(e,new D);else{if(o.destroyed||o.errored)return!1;o.state&=~H,o.decoder&&!n?(t=o.decoder.write(t),o.objectMode||0!==t.length?ce(e,o,t,!1):ye(e,o)):ce(e,o,t,!1)}else r||(o.state&=~H,ye(e,o));return!o.ended&&(o.length0?(0!==(t.state&ne)?t.awaitDrainWriters.clear():t.awaitDrainWriters=null,t.dataEmitted=!0,e.emit("data",n)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),0!==(t.state&q)&&he(e)),ye(e,t)}l(ae.prototype,{objectMode:ie(J),ended:ie(B),endEmitted:ie($),reading:ie(H),constructed:ie(U),sync:ie(V),needReadable:ie(q),emittedReadable:ie(G),readableListening:ie(z),resumeScheduled:ie(K),errorEmitted:ie(Q),emitClose:ie(X),autoDestroy:ie(Y),destroyed:ie(Z),closed:ie(ee),closeEmitted:ie(te),multiAwaitDrain:ie(ne),readingMore:ie(re),dataEmitted:ie(oe)}),se.prototype.destroy=E.destroy,se.prototype._undestroy=E.undestroy,se.prototype._destroy=function(e,t){t(e)},se.prototype[y.captureRejectionSymbol]=function(e){this.destroy(e)},se.prototype[p]=function(){let e;return this.destroyed||(e=this.readableEnded?null:new T,this.destroy(e)),new u(((t,n)=>x(this,(r=>r&&r!==e?n(r):t(null)))))},se.prototype.push=function(e,t){return le(this,e,t,!1)},se.prototype.unshift=function(e,t){return le(this,e,t,!0)},se.prototype.isPaused=function(){const e=this._readableState;return!0===e[C]||!1===e.flowing},se.prototype.setEncoding=function(e){const t=new M(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;const n=this._readableState.buffer;let r="";for(const o of n)r+=t.write(o);return n.clear(),""!==r&&n.push(r),this._readableState.length=r.length,this};const de=1073741824;function ue(e){if(e>de)throw new k("size","<= 1GiB",e);return e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++,e}function fe(e,t){return e<=0||0===t.length&&t.ended?0:0!==(t.state&J)?1:a(e)?t.flowing&&t.length?t.buffer.first().length:t.length:e<=t.length?e:t.ended?t.length:0}function pe(e,t){if(_("onEofChunk"),!t.ended){if(t.decoder){const e=t.decoder.end();e&&e.length&&(t.buffer.push(e),t.length+=t.objectMode?1:e.length)}t.ended=!0,t.sync?he(e):(t.needReadable=!1,t.emittedReadable=!0,ge(e))}}function he(e){const t=e._readableState;_("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(_("emitReadable",t.flowing),t.emittedReadable=!0,r.nextTick(ge,e))}function ge(e){const t=e._readableState;_("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||t.errored||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,Se(e)}function ye(e,t){!t.readingMore&&t.constructed&&(t.readingMore=!0,r.nextTick(be,e,t))}function be(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!1===t[C]?t.flowing=!0:e.listenerCount("data")>0?e.resume():t.readableListening||(t.flowing=null)}function we(e){_("readable nexttick read 0"),e.read(0)}function xe(e,t){t.resumeScheduled||(t.resumeScheduled=!0,r.nextTick(_e,e,t))}function _e(e,t){_("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Se(e),t.flowing&&!t.reading&&e.read(0)}function Se(e){const t=e._readableState;_("flow",t.flowing);while(t.flowing&&null!==e.read());}function Ee(e,t){"function"!==typeof e.read&&(e=se.wrap(e,{objectMode:!0}));const n=Ie(e,t);return n.stream=e,n}async function*Ie(e,t){let n,r=F;function o(t){this===e?(r(),r=F):r=t}e.on("readable",o);const i=x(e,{writable:!1},(e=>{n=e?R(n,e):null,r(),r=F}));try{while(1){const t=e.destroyed?null:e.read();if(null!==t)yield t;else{if(n)throw n;if(null===n)return;await new u(o)}}}catch(a){throw n=R(n,a),n}finally{!n&&!1===(null===t||void 0===t?void 0:t.destroyOnReturn)||void 0!==n&&!e._readableState.autoDestroy?(e.off("readable",o),i()):E.destroyer(e,null)}}function je(e,t){if(0===t.length)return null;let n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n}function Re(e){const t=e._readableState;_("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,r.nextTick(Ae,t,e))}function Ae(e,t){if(_("endReadableNT",e.endEmitted,e.length),!e.errored&&!e.closeEmitted&&!e.endEmitted&&0===e.length)if(e.endEmitted=!0,t.emit("end"),t.writable&&!1===t.allowHalfOpen)r.nextTick(Ne,t);else if(e.autoDestroy){const e=t._writableState,n=!e||e.autoDestroy&&(e.finished||!1===e.writable);n&&t.destroy()}}function Ne(e){const t=e.writable&&!e.writableEnded&&!e.destroyed;t&&e.end()}let ke;function De(){return void 0===ke&&(ke={}),ke}se.prototype.read=function(e){_("read",e),void 0===e?e=NaN:i(e)||(e=s(e,10));const t=this._readableState,n=e;if(e>t.highWaterMark&&(t.highWaterMark=ue(e)),0!==e&&(t.state&=~G),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return _("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?Re(this):he(this),null;if(e=fe(e,t),0===e&&t.ended)return 0===t.length&&Re(this),null;let r,o=0!==(t.state&q);if(_("need readable",o),(0===t.length||t.length-e0?je(e,t):null,null===r?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.multiAwaitDrain?t.awaitDrainWriters.clear():t.awaitDrainWriters=null),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&Re(this)),null===r||t.errorEmitted||t.closeEmitted||(t.dataEmitted=!0,this.emit("data",r)),r},se.prototype._read=function(e){throw new N("_read()")},se.prototype.pipe=function(e,t){const n=this,o=this._readableState;1===o.pipes.length&&(o.multiAwaitDrain||(o.multiAwaitDrain=!0,o.awaitDrainWriters=new f(o.awaitDrainWriters?[o.awaitDrainWriters]:[]))),o.pipes.push(e),_("pipe count=%d opts=%j",o.pipes.length,t);const i=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr,a=i?l:m;function s(e,t){_("onunpipe"),e===n&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,u())}function l(){_("onend"),e.end()}let c;o.endEmitted?r.nextTick(a):n.once("end",a),e.on("unpipe",s);let d=!1;function u(){_("cleanup"),e.removeListener("close",y),e.removeListener("finish",b),c&&e.removeListener("drain",c),e.removeListener("error",g),e.removeListener("unpipe",s),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",h),d=!0,c&&o.awaitDrainWriters&&(!e._writableState||e._writableState.needDrain)&&c()}function p(){d||(1===o.pipes.length&&o.pipes[0]===e?(_("false write response, pause",0),o.awaitDrainWriters=e,o.multiAwaitDrain=!1):o.pipes.length>1&&o.pipes.includes(e)&&(_("false write response, pause",o.awaitDrainWriters.size),o.awaitDrainWriters.add(e)),n.pause()),c||(c=ve(n,e),e.on("drain",c))}function h(t){_("ondata");const n=e.write(t);_("dest.write",n),!1===n&&p()}function g(t){if(_("onerror",t),m(),e.removeListener("error",g),0===e.listenerCount("error")){const n=e._writableState||e._readableState;n&&!n.errorEmitted?W(e,t):e.emit("error",t)}}function y(){e.removeListener("finish",b),m()}function b(){_("onfinish"),e.removeListener("close",y),m()}function m(){_("unpipe"),n.unpipe(e)}return n.on("data",h),v(e,"error",g),e.once("close",y),e.once("finish",b),e.emit("pipe",n),!0===e.writableNeedDrain?p():o.flowing||(_("pipe resume"),n.resume()),e},se.prototype.unpipe=function(e){const t=this._readableState,n={hasUnpiped:!1};if(0===t.pipes.length)return this;if(!e){const e=t.pipes;t.pipes=[],this.pause();for(let t=0;t0,!1!==o.flowing&&this.resume()):"readable"===e&&(o.endEmitted||o.readableListening||(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,_("on readable",o.length,o.reading),o.length?he(this):o.reading||r.nextTick(we,this))),n},se.prototype.addListener=se.prototype.on,se.prototype.removeListener=function(e,t){const n=b.prototype.removeListener.call(this,e,t);return"readable"===e&&r.nextTick(me,this),n},se.prototype.off=se.prototype.removeListener,se.prototype.removeAllListeners=function(e){const t=b.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||r.nextTick(me,this),t},se.prototype.resume=function(){const e=this._readableState;return e.flowing||(_("resume"),e.flowing=!e.readableListening,xe(this,e)),e[C]=!1,this},se.prototype.pause=function(){return _("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(_("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[C]=!0,this},se.prototype.wrap=function(e){let t=!1;e.on("data",(n=>{!this.push(n)&&e.pause&&(t=!0,e.pause())})),e.on("end",(()=>{this.push(null)})),e.on("error",(e=>{W(this,e)})),e.on("close",(()=>{this.destroy()})),e.on("destroy",(()=>{this.destroy()})),this._read=()=>{t&&e.resume&&(t=!1,e.resume())};const n=c(e);for(let r=1;r{t?e?e(t):this.destroy(t):(null!=n&&this.push(n),this.push(null),e&&e())}))}function u(){this._final!==d&&d.call(this)}c.prototype._final=d,c.prototype._transform=function(e,t,n){throw new i("_transform()")},c.prototype._write=function(e,t,n){const r=this._readableState,o=this._writableState,i=r.length;this._transform(e,t,((e,t)=>{e?n(e):(null!=t&&this.push(t),o.ended||i===r.length||r.length{const e=this._writableState;e.writing||H(this,e),G(this,e)}))}function C(e,t,n,o){const i=e._writableState;if("function"===typeof n)o=n,n=i.defaultEncoding;else{if(n){if("buffer"!==n&&!g.isEncoding(n))throw new A(n)}else n=i.defaultEncoding;"function"!==typeof o&&(o=k)}if(null===t)throw new j;if(!i.objectMode)if("string"===typeof t)!1!==i.decodeStrings&&(t=g.from(t,n),n="buffer");else if(t instanceof g)n="buffer";else{if(!h._isUint8Array(t))throw new w("chunk",["string","Buffer","Uint8Array"],t);t=h._uint8ArrayToBuffer(t),n="buffer"}let a;return i.ending?a=new R:i.destroyed&&(a=new E("write")),a?(r.nextTick(o,a),N(e,a,!0),a):(i.pendingcb++,M(e,i,t,n,o))}function M(e,t,n,r,o){const i=t.objectMode?1:n.length;t.length+=i;const a=t.lengthn.bufferedIndex&&H(e,n),o?null!==n.afterWriteTickInfo&&n.afterWriteTickInfo.cb===i?n.afterWriteTickInfo.count++:(n.afterWriteTickInfo={count:1,cb:i,stream:e,state:n},r.nextTick(J,n.afterWriteTickInfo)):B(e,n,1,i))):N(e,new _)}function J({stream:e,state:t,count:n,cb:r}){return t.afterWriteTickInfo=null,B(e,t,n,r)}function B(e,t,n,r){const o=!t.ending&&!e.destroyed&&0===t.length&&t.needDrain;o&&(t.needDrain=!1,e.emit("drain"));while(n-- >0)t.pendingcb--,r();t.destroyed&&$(t),G(e,t)}function $(e){if(e.writing)return;for(let o=e.bufferedIndex;o1&&e._writev){t.pendingcb-=a-1;const r=t.allNoop?k:e=>{for(let t=s;t256?(n.splice(0,s),t.bufferedIndex=0):t.bufferedIndex=s}t.bufferProcessing=!1}function U(e){return e.ending&&!e.destroyed&&e.constructed&&0===e.length&&!e.errored&&0===e.buffered.length&&!e.finished&&!e.writing&&!e.errorEmitted&&!e.closeEmitted}function V(e,t){let n=!1;function o(o){if(n)N(e,null!==o&&void 0!==o?o:_());else if(n=!0,t.pendingcb--,o){const n=t[D].splice(0);for(let e=0;e{U(t)?z(e,t):t.pendingcb--}),e,t)):U(t)&&(t.pendingcb++,z(e,t))))}function z(e,t){t.pendingcb--,t.finished=!0;const n=t[D].splice(0);for(let r=0;r>>0}const N=/^[0-7]+$/,k="must be a 32-bit unsigned integer or an octal string";function D(e,t,n){if("undefined"===typeof e&&(e=n),"string"===typeof e){if(null===p(N,e))throw new w(t,e,k);e=u(e,8)}return L(e,t),e}const O=b(((e,t,n=d,r=c)=>{if("number"!==typeof e)throw new m(t,"number",e);if(!s(e))throw new x(t,"an integer",e);if(er)throw new x(t,`>= ${n} && <= ${r}`,e)})),T=b(((e,t,n=-2147483648,r=2147483647)=>{if("number"!==typeof e)throw new m(t,"number",e);if(!s(e))throw new x(t,"an integer",e);if(er)throw new x(t,`>= ${n} && <= ${r}`,e)})),L=b(((e,t,n=!1)=>{if("number"!==typeof e)throw new m(t,"number",e);if(!s(e))throw new x(t,"an integer",e);const r=n?1:0,o=4294967295;if(eo)throw new x(t,`>= ${r} && <= ${o}`,e)}));function C(e,t){if("string"!==typeof e)throw new m(t,"string",e)}function M(e,t,n=void 0,r){if("number"!==typeof e)throw new m(t,"number",e);if(null!=n&&er||(null!=n||null!=r)&&l(e))throw new x(t,`${null!=n?`>= ${n}`:""}${null!=n&&null!=r?" && ":""}${null!=r?`<= ${r}`:""}`,e)}const P=b(((e,t,n)=>{if(!o(n,e)){const r=i(a(n,(e=>"string"===typeof e?`'${e}'`:h(e))),", "),o="must be one of: "+r;throw new w(t,e,o)}}));function F(e,t){if("boolean"!==typeof e)throw new m(t,"boolean",e)}function W(e,t,n){return null!=e&&f(e,t)?e[t]:n}const J=b(((e,t,n=null)=>{const o=W(n,"allowArray",!1),i=W(n,"allowFunction",!1),a=W(n,"nullable",!1);if(!a&&null===e||!o&&r(e)||"object"!==typeof e&&(!i||"function"!==typeof e))throw new m(t,"Object",e)})),B=b(((e,t)=>{if(null!=e&&"object"!==typeof e&&"function"!==typeof e)throw new m(t,"a dictionary",e)})),$=b(((e,t,n=0)=>{if(!r(e))throw new m(t,"Array",e);if(e.length{if(!I(e))throw new m(t,["Buffer","TypedArray","DataView"],e)}));function z(e,t){const n=S(t),r=e.length;if("hex"===n&&r%2!==0)throw new w("encoding",t,`is invalid for data of length ${r}`)}function K(e,t="Port",n=!0){if("number"!==typeof e&&"string"!==typeof e||"string"===typeof e&&0===y(e).length||+e!==+e>>>0||e>65535||0===e&&!n)throw new v(t,e,n);return 0|e}const Q=b(((e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new m(t,"AbortSignal",e)})),X=b(((e,t)=>{if("function"!==typeof e)throw new m(t,"Function",e)})),Y=b(((e,t)=>{if("function"!==typeof e||E(e))throw new m(t,"Function",e)})),Z=b(((e,t)=>{if(void 0!==e)throw new m(t,"undefined",e)}));function ee(e,t,n){if(!o(n,e))throw new m(t,`('${i(n,"|")}')`,e)}const te=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function ne(e,t){if("undefined"===typeof e||!p(te,e))throw new w(t,e,'must be an array or string of format "; rel=preload; as=style"')}function re(e){if("string"===typeof e)return ne(e,"hints"),e;if(r(e)){const t=e.length;let n="";if(0===t)return n;for(let r=0;r; rel=preload; as=style"')}e.exports={isInt32:R,isUint32:A,parseFileMode:D,validateArray:$,validateStringArray:H,validateBooleanArray:U,validateAbortSignalArray:V,validateBoolean:F,validateBuffer:G,validateDictionary:B,validateEncoding:z,validateFunction:X,validateInt32:T,validateInteger:O,validateNumber:M,validateObject:J,validateOneOf:P,validatePlainFunction:Y,validatePort:K,validateSignalName:q,validateString:C,validateUint32:L,validateUndefined:Z,validateUnion:ee,validateAbortSignal:Q,validateLinkHeaderValue:re}},57164:function(e,t,n){"use strict";const r=n(17373),o=n(97019),i=r.Readable.destroy;e.exports=r.Readable,e.exports._uint8ArrayToBuffer=r._uint8ArrayToBuffer,e.exports._isUint8Array=r._isUint8Array,e.exports.isDisturbed=r.isDisturbed,e.exports.isErrored=r.isErrored,e.exports.isReadable=r.isReadable,e.exports.Readable=r.Readable,e.exports.Writable=r.Writable,e.exports.Duplex=r.Duplex,e.exports.Transform=r.Transform,e.exports.PassThrough=r.PassThrough,e.exports.addAbortSignal=r.addAbortSignal,e.exports.finished=r.finished,e.exports.destroy=r.destroy,e.exports.destroy=i,e.exports.pipeline=r.pipeline,e.exports.compose=r.compose,Object.defineProperty(r,"promises",{configurable:!0,enumerable:!0,get(){return o}}),e.exports.Stream=r.Stream,e.exports["default"]=e.exports},52837:function(e,t,n){"use strict";const{format:r,inspect:o,AggregateError:i}=n(74138),a=globalThis.AggregateError||i,s=Symbol("kIsNodeError"),l=["string","function","number","object","Function","Object","boolean","bigint","symbol"],c=/^([A-Z][a-z0-9]*)+$/,d="__node_internal_",u={};function f(e,t){if(!e)throw new u.ERR_INTERNAL_ASSERTION(t)}function p(e){let t="",n=e.length;const r="-"===e[0]?1:0;for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function h(e,t,n){if("function"===typeof t)return f(t.length<=n.length,`Code: ${e}; The provided arguments length (${n.length}) does not match the required ones (${t.length}).`),t(...n);const o=(t.match(/%[dfijoOs]/g)||[]).length;return f(o===n.length,`Code: ${e}; The provided arguments length (${n.length}) does not match the required ones (${o}).`),0===n.length?t:r(t,...n)}function g(e,t,n){n||(n=Error);class r extends n{constructor(...n){super(h(e,t,n))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(r.prototype,{name:{value:n.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),r.prototype.code=e,r.prototype[s]=!0,u[e]=r}function y(e){const t=d+e.name;return Object.defineProperty(e,"name",{value:t}),e}function b(e,t){if(e&&t&&e!==t){if(Array.isArray(t.errors))return t.errors.push(e),t;const n=new a([t,e],t.message);return n.code=t.code,n}return e||t}class v extends Error{constructor(e="The operation was aborted",t=void 0){if(void 0!==t&&"object"!==typeof t)throw new u.ERR_INVALID_ARG_TYPE("options","Object",t);super(e,t),this.code="ABORT_ERR",this.name="AbortError"}}g("ERR_ASSERTION","%s",Error),g("ERR_INVALID_ARG_TYPE",((e,t,n)=>{f("string"===typeof e,"'name' must be a string"),Array.isArray(t)||(t=[t]);let r="The ";e.endsWith(" argument")?r+=`${e} `:r+=`"${e}" ${e.includes(".")?"property":"argument"} `,r+="must be ";const i=[],a=[],s=[];for(const o of t)f("string"===typeof o,"All expected entries have to be of type string"),l.includes(o)?i.push(o.toLowerCase()):c.test(o)?a.push(o):(f("object"!==o,'The value "object" should be written as "Object"'),s.push(o));if(a.length>0){const e=i.indexOf("object");-1!==e&&(i.splice(i,e,1),a.push("Object"))}if(i.length>0){switch(i.length){case 1:r+=`of type ${i[0]}`;break;case 2:r+=`one of type ${i[0]} or ${i[1]}`;break;default:{const e=i.pop();r+=`one of type ${i.join(", ")}, or ${e}`}}(a.length>0||s.length>0)&&(r+=" or ")}if(a.length>0){switch(a.length){case 1:r+=`an instance of ${a[0]}`;break;case 2:r+=`an instance of ${a[0]} or ${a[1]}`;break;default:{const e=a.pop();r+=`an instance of ${a.join(", ")}, or ${e}`}}s.length>0&&(r+=" or ")}switch(s.length){case 0:break;case 1:s[0].toLowerCase()!==s[0]&&(r+="an "),r+=`${s[0]}`;break;case 2:r+=`one of ${s[0]} or ${s[1]}`;break;default:{const e=s.pop();r+=`one of ${s.join(", ")}, or ${e}`}}if(null==n)r+=`. Received ${n}`;else if("function"===typeof n&&n.name)r+=`. Received function ${n.name}`;else if("object"===typeof n){var d;if(null!==(d=n.constructor)&&void 0!==d&&d.name)r+=`. Received an instance of ${n.constructor.name}`;else{const e=o(n,{depth:-1});r+=`. Received ${e}`}}else{let e=o(n,{colors:!1});e.length>25&&(e=`${e.slice(0,25)}...`),r+=`. Received type ${typeof n} (${e})`}return r}),TypeError),g("ERR_INVALID_ARG_VALUE",((e,t,n="is invalid")=>{let r=o(t);r.length>128&&(r=r.slice(0,128)+"...");const i=e.includes(".")?"property":"argument";return`The ${i} '${e}' ${n}. Received ${r}`}),TypeError),g("ERR_INVALID_RETURN_VALUE",((e,t,n)=>{var r;const o=null!==n&&void 0!==n&&null!==(r=n.constructor)&&void 0!==r&&r.name?`instance of ${n.constructor.name}`:"type "+typeof n;return`Expected ${e} to be returned from the "${t}" function but got ${o}.`}),TypeError),g("ERR_MISSING_ARGS",((...e)=>{let t;f(e.length>0,"At least one arg needs to be specified");const n=e.length;switch(e=(Array.isArray(e)?e:[e]).map((e=>`"${e}"`)).join(" or "),n){case 1:t+=`The ${e[0]} argument`;break;case 2:t+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const n=e.pop();t+=`The ${e.join(", ")}, and ${n} arguments`}break}return`${t} must be specified`}),TypeError),g("ERR_OUT_OF_RANGE",((e,t,n)=>{let r;return f(t,'Missing "range" argument'),Number.isInteger(n)&&Math.abs(n)>2**32?r=p(String(n)):"bigint"===typeof n?(r=String(n),(n>2n**32n||n<-(2n**32n))&&(r=p(r)),r+="n"):r=o(n),`The value of "${e}" is out of range. It must be ${t}. Received ${r}`}),RangeError),g("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),g("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),g("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),g("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),g("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),g("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),g("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),g("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),g("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),g("ERR_STREAM_WRITE_AFTER_END","write after end",Error),g("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:v,aggregateTwoErrors:y(b),hideStackFrames:y,codes:u}},53464:function(e){"use strict";e.exports={ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,t){return e.includes(t)},ArrayPrototypeIndexOf(e,t){return e.indexOf(t)},ArrayPrototypeJoin(e,t){return e.join(t)},ArrayPrototypeMap(e,t){return e.map(t)},ArrayPrototypePop(e,t){return e.pop(t)},ArrayPrototypePush(e,t){return e.push(t)},ArrayPrototypeSlice(e,t,n){return e.slice(t,n)},Error:Error,FunctionPrototypeCall(e,t,...n){return e.call(t,...n)},FunctionPrototypeSymbolHasInstance(e,t){return Function.prototype[Symbol.hasInstance].call(e,t)},MathFloor:Math.floor,Number:Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(e,t){return Object.defineProperties(e,t)},ObjectDefineProperty(e,t,n){return Object.defineProperty(e,t,n)},ObjectGetOwnPropertyDescriptor(e,t){return Object.getOwnPropertyDescriptor(e,t)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,t){return Object.setPrototypeOf(e,t)},Promise:Promise,PromisePrototypeCatch(e,t){return e.catch(t)},PromisePrototypeThen(e,t,n){return e.then(t,n)},PromiseReject(e){return Promise.reject(e)},PromiseResolve(e){return Promise.resolve(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,t){return e.test(t)},SafeSet:Set,String:String,StringPrototypeSlice(e,t,n){return e.slice(t,n)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol:Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,SymbolDispose:Symbol.dispose||Symbol("Symbol.dispose"),SymbolAsyncDispose:Symbol.asyncDispose||Symbol("Symbol.asyncDispose"),TypedArrayPrototypeSet(e,t,n){return e.set(t,n)},Boolean:Boolean,Uint8Array:Uint8Array}},74138:function(e,t,n){"use strict";const r=n(48764),{kResistStopPropagation:o,SymbolDispose:i}=n(53464),a=globalThis.AbortSignal||n(28599).AbortSignal,s=globalThis.AbortController||n(28599).AbortController,l=Object.getPrototypeOf((async function(){})).constructor,c=globalThis.Blob||r.Blob,d="undefined"!==typeof c?function(e){return e instanceof c}:function(e){return!1},u=(e,t)=>{if(void 0!==e&&(null===e||"object"!==typeof e||!("aborted"in e)))throw new ERR_INVALID_ARG_TYPE(t,"AbortSignal",e)},f=(e,t)=>{if("function"!==typeof e)throw new ERR_INVALID_ARG_TYPE(t,"Function",e)};class p extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t="";for(let n=0;n{e=n,t=r}));return{promise:n,resolve:e,reject:t}},promisify(e){return new Promise(((t,n)=>{e(((e,...r)=>e?n(e):t(...r)))}))},debuglog(){return function(){}},format(e,...t){return e.replace(/%([sdifj])/g,(function(...[e,n]){const r=t.shift();if("f"===n)return r.toFixed(6);if("j"===n)return JSON.stringify(r);if("s"===n&&"object"===typeof r){const e=r.constructor!==Object?r.constructor.name:"";return`${e} {}`.trim()}return r.toString()}))},inspect(e){switch(typeof e){case"string":if(e.includes("'")){if(!e.includes('"'))return`"${e}"`;if(!e.includes("`")&&!e.includes("${"))return`\`${e}\``}return`'${e}'`;case"number":return isNaN(e)?"NaN":Object.is(e,-0)?String(e):e;case"bigint":return`${String(e)}n`;case"boolean":case"undefined":return String(e);case"object":return"{}"}},types:{isAsyncFunction(e){return e instanceof l},isArrayBufferView(e){return ArrayBuffer.isView(e)}},isBlob:d,deprecate(e,t){return e},addAbortListener:n(17187).addAbortListener||function(e,t){if(void 0===e)throw new ERR_INVALID_ARG_TYPE("signal","AbortSignal",e);let n;return u(e,"signal"),f(t,"listener"),e.aborted?queueMicrotask((()=>t())):(e.addEventListener("abort",t,{__proto__:null,once:!0,[o]:!0}),n=()=>{e.removeEventListener("abort",t)}),{__proto__:null,[i](){var e;null===(e=n)||void 0===e||e()}}},AbortSignalAny:a.any||function(e){if(1===e.length)return e[0];const t=new s,n=()=>t.abort();return e.forEach((e=>{u(e,"signals"),e.addEventListener("abort",n,{once:!0})})),t.signal.addEventListener("abort",(()=>{e.forEach((e=>e.removeEventListener("abort",n)))}),{once:!0}),t.signal}},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},17373:function(e,t,n){const{Buffer:r}=n(48764),{ObjectDefineProperty:o,ObjectKeys:i,ReflectApply:a}=n(53464),{promisify:{custom:s}}=n(74138),{streamReturningOperators:l,promiseReturningOperators:c}=n(71902),{codes:{ERR_ILLEGAL_CONSTRUCTOR:d}}=n(52837),u=n(73705),{setDefaultHighWaterMark:f,getDefaultHighWaterMark:p}=n(33716),{pipeline:h}=n(93101),{destroyer:g}=n(28697),y=n(14434),b=n(97019),v=n(25066),m=e.exports=n(78951).Stream;m.isDestroyed=v.isDestroyed,m.isDisturbed=v.isDisturbed,m.isErrored=v.isErrored,m.isReadable=v.isReadable,m.isWritable=v.isWritable,m.Readable=n(75009);for(const _ of i(l)){const S=l[_];function w(...e){if(new.target)throw d();return m.Readable.from(a(S,this,e))}o(w,"name",{__proto__:null,value:S.name}),o(w,"length",{__proto__:null,value:S.length}),o(m.Readable.prototype,_,{__proto__:null,value:w,enumerable:!1,configurable:!0,writable:!0})}for(const E of i(c)){const I=c[E];function w(...e){if(new.target)throw d();return a(I,this,e)}o(w,"name",{__proto__:null,value:I.name}),o(w,"length",{__proto__:null,value:I.length}),o(m.Readable.prototype,E,{__proto__:null,value:w,enumerable:!1,configurable:!0,writable:!0})}m.Writable=n(51572),m.Duplex=n(41928),m.Transform=n(53606),m.PassThrough=n(75955),m.pipeline=h;const{addAbortSignal:x}=n(86053);m.addAbortSignal=x,m.finished=y,m.destroy=g,m.compose=u,m.setDefaultHighWaterMark=f,m.getDefaultHighWaterMark=p,o(m,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return b}}),o(h,s,{__proto__:null,enumerable:!0,get(){return b.pipeline}}),o(y,s,{__proto__:null,enumerable:!0,get(){return b.finished}}),m.Stream=m,m._isUint8Array=function(e){return e instanceof Uint8Array},m._uint8ArrayToBuffer=function(e){return r.from(e.buffer,e.byteOffset,e.byteLength)}},97019:function(e,t,n){"use strict";const{ArrayPrototypePop:r,Promise:o}=n(53464),{isIterable:i,isNodeStream:a,isWebStream:s}=n(25066),{pipelineImpl:l}=n(93101),{finished:c}=n(14434);function d(...e){return new o(((t,n)=>{let o,c;const d=e[e.length-1];if(d&&"object"===typeof d&&!a(d)&&!i(d)&&!s(d)){const t=r(e);o=t.signal,c=t.end}l(e,((e,r)=>{e?n(e):t(r)}),{signal:o,end:c})}))}n(17373),e.exports={finished:c,pipeline:d}},95456:function(e){"use strict";e.exports=function e(t){return null===t||"object"!==typeof t||null!=t.toJSON?JSON.stringify(t):Array.isArray(t)?"["+t.reduce(((t,n,r)=>{const o=0===r?"":",",i=void 0===n||"symbol"===typeof n?null:n;return t+o+e(i)}),"")+"]":"{"+Object.keys(t).sort().reduce(((n,r,o)=>{if(void 0===t[r]||"symbol"===typeof t[r])return n;const i=0===n.length?"":",";return n+i+e(r)+":"+e(t[r])}),"")+"}"}},68058:function(e,t,n){"use strict";const{isArray:r,isObject:o,isString:i}=n(30832),{asArray:a}=n(51055),{prependBase:s}=n(82278),l=n(54093),c=n(26767),d=10;function u(e){throw new l("Invalid JSON-LD syntax; @context must be an object.","jsonld.SyntaxError",{code:"invalid local context",context:e})}function f({context:e,base:t}){if(!e)return;const n=e["@context"];if(i(n))e["@context"]=s(t,n);else if(r(n))for(let r=0;rd)throw new l("Maximum number of @context URLs exceeded.","jsonld.ContextUrlError",{code:"json-ld-1.0"===e.processingMode?"loading remote context failed":"context overflow",max:d});if(a.has(t))throw new l("Cyclical @context URLs detected.","jsonld.ContextUrlError",{code:"json-ld-1.0"===e.processingMode?"recursive context inclusion":"context overflow",url:t});let s,c;a.add(t);try{c=await n(t),s=c.document||null,i(s)&&(s=JSON.parse(s))}catch(u){throw new l("Dereferencing a URL did not result in a valid JSON-LD object. Possible causes are an inaccessible URL perhaps due to a same-origin policy (ensure the server uses CORS if you are using client-side JavaScript), too many redirects, a non-JSON response, or more than one HTTP Link Header was provided for a remote context.","jsonld.InvalidUrl",{code:"loading remote context failed",url:t,cause:u})}if(!o(s))throw new l("Dereferencing a URL did not result in a JSON object. The response was valid JSON, but it was not a JSON object.","jsonld.InvalidUrl",{code:"invalid remote context",url:t});return s="@context"in s?{"@context":s["@context"]}:{"@context":{}},c.contextUrl&&(r(s["@context"])||(s["@context"]=[s["@context"]]),s["@context"].push(c.contextUrl)),{context:s,remoteDoc:c}}}},54093:function(e){"use strict";e.exports=class extends Error{constructor(e="An unspecified JSON-LD error occurred.",t="jsonld.Error",n={}){super(e),this.name=t,this.message=e,this.details=n}}},60731:function(e){"use strict";e.exports=e=>{class t{toString(){return"[object JsonLdProcessor]"}}return Object.defineProperty(t,"prototype",{writable:!1,enumerable:!1}),Object.defineProperty(t.prototype,"constructor",{writable:!0,enumerable:!1,configurable:!0,value:t}),t.compact=function(t,n){return arguments.length<2?Promise.reject(new TypeError("Could not compact, too few arguments.")):e.compact(t,n)},t.expand=function(t){return arguments.length<1?Promise.reject(new TypeError("Could not expand, too few arguments.")):e.expand(t)},t.flatten=function(t){return arguments.length<1?Promise.reject(new TypeError("Could not flatten, too few arguments.")):e.flatten(t)},t}},69048:function(e,t,n){"use strict";e.exports=n(47055).NQuads},40533:function(e){"use strict";e.exports=class{constructor(){this._requests={}}wrapLoader(e){const t=this;return t._loader=e,function(){return t.add.apply(t,arguments)}}async add(e){let t=this._requests[e];if(t)return Promise.resolve(t);t=this._requests[e]=this._loader(e);try{return await t}finally{delete this._requests[e]}}}},26767:function(e,t,n){"use strict";const r=n(80421),o=10;e.exports=class{constructor({document:e}){this.document=e,this.cache=new r({max:o})}getProcessed(e){return this.cache.get(e)}setProcessed(e,t){this.cache.set(e,t)}}},83251:function(e,t,n){"use strict";const r=n(54093),{isArray:o,isObject:i,isString:a,isUndefined:s}=n(30832),{isList:l,isValue:c,isGraph:d,isSimpleGraph:u,isSubjectReference:f}=n(18463),{expandIri:p,getContextValue:h,isKeyword:g,process:y,processingMode:b}=n(54131),{removeBase:v,prependBase:m}=n(82278),{REGEX_KEYWORD:w,addValue:x,asArray:_,compareShortestLeast:S}=n(51055),E={};function I(e,t,n,r,o,a){null===a&&(a="@null");const s=[];if(("@id"===a||"@reverse"===a)&&i(n)&&"@id"in n){"@reverse"===a&&s.push("@reverse");const t=E.compactIri({activeCtx:e,iri:n["@id"],relativeTo:{vocab:!0}});e.mappings.has(t)&&e.mappings.get(t)&&e.mappings.get(t)["@id"]===n["@id"]?s.push.apply(s,["@vocab","@id"]):s.push.apply(s,["@id","@vocab"])}else{s.push(a);const e=s.find((e=>e.includes("_")));e&&s.push(e.replace(/^[^_]+_/,"_"))}s.push("@none");const l=e.inverse[t];for(const i of r){if(!(i in l))continue;const e=l[i][o];for(const t of s)if(t in e)return e[t]}return null}function j(e,t,n){if("@nest"!==p(e,t,{vocab:!0},n))throw new r("JSON-LD compact error; nested property must have an @nest value resolving to @nest.","jsonld.SyntaxError",{code:"invalid @nest value"})}e.exports=E,E.compact=async({activeCtx:e,activeProperty:t=null,element:n,options:p={}})=>{if(o(n)){let r=[];for(let o=0;o1&&(I=Array.from(I).sort());const R=e;for(const t of I){const n=E.compactIri({activeCtx:R,iri:t,relativeTo:{vocab:!0}}),r=h(w,n,"@context");s(r)||(e=await y({activeCtx:e,localCtx:r,options:p,propagate:!1}))}const A=Object.keys(n).sort();for(const s of A){const f=n[s];if("@id"!==s)if("@type"!==s)if("@reverse"!==s)if("@preserve"!==s)if("@index"!==s)if("@graph"!==s&&"@list"!==s&&"@included"!==s&&g(s)){const t=E.compactIri({activeCtx:e,iri:s,relativeTo:{vocab:!0}});x(m,t,f)}else{if(!o(f))throw new r("JSON-LD expansion error; expanded value must be an array.","jsonld.SyntaxError");if(0===f.length){const t=E.compactIri({activeCtx:e,iri:s,value:f,relativeTo:{vocab:!0},reverse:v}),n=e.mappings.has(t)?e.mappings.get(t)["@nest"]:null;let r=m;n&&(j(e,n,p),i(m[n])||(m[n]={}),r=m[n]),x(r,t,f,{propertyIsArray:!0})}for(const t of f){const n=E.compactIri({activeCtx:e,iri:s,value:t,relativeTo:{vocab:!0},reverse:v}),r=e.mappings.has(n)?e.mappings.get(n)["@nest"]:null;let f=m;r&&(j(e,r,p),i(m[r])||(m[r]={}),f=m[r]);const g=h(e,n,"@container")||[],y=d(t),b=l(t);let w;b?w=t["@list"]:y&&(w=t["@graph"]);let S=await E.compact({activeCtx:e,activeProperty:n,element:b||y?w:t,options:p});if(b){if(o(S)||(S=[S]),g.includes("@list")){x(f,n,S,{valueIsArray:!0,allowDuplicate:!0});continue}S={[E.compactIri({activeCtx:e,iri:"@list",relativeTo:{vocab:!0}})]:S},"@index"in t&&(S[E.compactIri({activeCtx:e,iri:"@index",relativeTo:{vocab:!0}})]=t["@index"])}if(y)if(g.includes("@graph")&&(g.includes("@id")||g.includes("@index")&&u(t))){let r;f.hasOwnProperty(n)?r=f[n]:f[n]=r={};const o=(g.includes("@id")?t["@id"]:t["@index"])||E.compactIri({activeCtx:e,iri:"@none",relativeTo:{vocab:!0}});x(r,o,S,{propertyIsArray:!p.compactArrays||g.includes("@set")})}else g.includes("@graph")&&u(t)?(o(S)&&S.length>1&&(S={"@included":S}),x(f,n,S,{propertyIsArray:!p.compactArrays||g.includes("@set")})):(o(S)&&1===S.length&&p.compactArrays&&(S=S[0]),S={[E.compactIri({activeCtx:e,iri:"@graph",relativeTo:{vocab:!0}})]:S},"@id"in t&&(S[E.compactIri({activeCtx:e,iri:"@id",relativeTo:{vocab:!0}})]=t["@id"]),"@index"in t&&(S[E.compactIri({activeCtx:e,iri:"@index",relativeTo:{vocab:!0}})]=t["@index"]),x(f,n,S,{propertyIsArray:!p.compactArrays||g.includes("@set")}));else if(g.includes("@language")||g.includes("@index")||g.includes("@id")||g.includes("@type")){let r,o;if(f.hasOwnProperty(n)?r=f[n]:f[n]=r={},g.includes("@language"))c(S)&&(S=S["@value"]),o=t["@language"];else if(g.includes("@index")){const r=h(e,n,"@index")||"@index",i=E.compactIri({activeCtx:e,iri:r,relativeTo:{vocab:!0}});if("@index"===r)o=t["@index"],delete S[i];else{let e;if([o,...e]=_(S[r]||[]),a(o))switch(e.length){case 0:delete S[r];break;case 1:S[r]=e[0];break;default:S[r]=e;break}else o=null}}else if(g.includes("@id")){const t=E.compactIri({activeCtx:e,iri:"@id",relativeTo:{vocab:!0}});o=S[t],delete S[t]}else if(g.includes("@type")){const r=E.compactIri({activeCtx:e,iri:"@type",relativeTo:{vocab:!0}});let i;switch([o,...i]=_(S[r]||[]),i.length){case 0:delete S[r];break;case 1:S[r]=i[0];break;default:S[r]=i;break}1===Object.keys(S).length&&"@id"in t&&(S=await E.compact({activeCtx:e,activeProperty:n,element:{"@id":t["@id"]},options:p}))}o||(o=E.compactIri({activeCtx:e,iri:"@none",relativeTo:{vocab:!0}})),x(r,o,S,{propertyIsArray:g.includes("@set")})}else{const e=!p.compactArrays||g.includes("@set")||g.includes("@list")||o(S)&&0===S.length||"@list"===s||"@graph"===s;x(f,n,S,{propertyIsArray:e})}}}else{const n=h(e,t,"@container")||[];if(n.includes("@index"))continue;const r=E.compactIri({activeCtx:e,iri:s,relativeTo:{vocab:!0}});x(m,r,f)}else{const n=await E.compact({activeCtx:e,activeProperty:t,element:f,options:p});o(n)&&0===n.length||x(m,s,n)}else{const t=await E.compact({activeCtx:e,activeProperty:"@reverse",element:f,options:p});for(const n in t)if(e.mappings.has(n)&&e.mappings.get(n).reverse){const r=t[n],o=h(e,n,"@container")||[],i=o.includes("@set")||!p.compactArrays;x(m,n,r,{propertyIsArray:i}),delete t[n]}if(Object.keys(t).length>0){const n=E.compactIri({activeCtx:e,iri:s,relativeTo:{vocab:!0}});x(m,n,t)}}else{let t=_(f).map((e=>E.compactIri({activeCtx:w,iri:e,relativeTo:{vocab:!0}})));1===t.length&&(t=t[0]);const n=E.compactIri({activeCtx:e,iri:"@type",relativeTo:{vocab:!0}}),r=h(e,n,"@container")||[],i=r.includes("@set")&&b(e,1.1),a=i||o(t)&&0===f.length;x(m,n,t,{propertyIsArray:a})}else{let t=_(f).map((t=>E.compactIri({activeCtx:e,iri:t,relativeTo:{vocab:!1},base:p.base})));1===t.length&&(t=t[0]);const n=E.compactIri({activeCtx:e,iri:"@id",relativeTo:{vocab:!0}});m[n]=t}}return m}return n},E.compactIri=({activeCtx:e,iri:t,value:n=null,relativeTo:o={vocab:!1},reverse:a=!1,base:s=null})=>{if(null===t)return t;e.isPropertyTermScoped&&e.previousContext&&(e=e.previousContext);const u=e.getInverse();if(g(t)&&t in u&&"@none"in u[t]&&"@type"in u[t]["@none"]&&"@none"in u[t]["@none"]["@type"])return u[t]["@none"]["@type"]["@none"];if(o.vocab&&t in u){const r=e["@language"]||"@none",o=[];i(n)&&"@index"in n&&!("@graph"in n)&&o.push("@index","@index@set"),i(n)&&"@preserve"in n&&(n=n["@preserve"][0]),d(n)?("@index"in n&&o.push("@graph@index","@graph@index@set","@index","@index@set"),"@id"in n&&o.push("@graph@id","@graph@id@set"),o.push("@graph","@graph@set","@set"),"@index"in n||o.push("@graph@index","@graph@index@set","@index","@index@set"),"@id"in n||o.push("@graph@id","@graph@id@set")):i(n)&&!c(n)&&o.push("@id","@id@set","@type","@set@type");let s="@language",u="@null";if(a)s="@type",u="@reverse",o.push("@set");else if(l(n)){"@index"in n||o.push("@list");const e=n["@list"];if(0===e.length)s="@any",u="@none";else{let t=0===e.length?r:null,n=null;for(let r=0;r=0;--r){const o=p[r],i=o.terms;for(const r of i){const i=r+":"+t.substr(o.iri.length),a=e.mappings.get(r)._prefix&&(!e.mappings.has(i)||null===n&&e.mappings.get(i)["@id"]===t);a&&(null===f||S(i,f)<0)&&(f=i)}}if(null!==f)return f;for(const[i,l]of e.mappings)if(l&&l._prefix&&t.startsWith(i+":"))throw new r(`Absolute IRI "${t}" confused with prefix "${i}".`,"jsonld.SyntaxError",{code:"IRI confused with prefix",context:e});if(!o.vocab){if("@base"in e){if(e["@base"]){const n=v(m(s,e["@base"]),t);return w.test(n)?`./${n}`:n}return t}return v(s,t)}return t},E.compactValue=({activeCtx:e,activeProperty:t,value:n,options:r})=>{if(c(n)){const r=h(e,t,"@type"),o=h(e,t,"@language"),i=h(e,t,"@direction"),s=h(e,t,"@container")||[],l="@index"in n&&!s.includes("@index");if(!l&&"@none"!==r){if(n["@type"]===r)return n["@value"];if("@language"in n&&n["@language"]===o&&"@direction"in n&&n["@direction"]===i)return n["@value"];if("@language"in n&&n["@language"]===o)return n["@value"];if("@direction"in n&&n["@direction"]===i)return n["@value"]}const c=Object.keys(n).length,d=1===c||2===c&&"@index"in n&&!l,u="@language"in e,f=a(n["@value"]),p=e.mappings.has(t)&&null===e.mappings.get(t)["@language"];if(d&&"@none"!==r&&(!u||!f||p))return n["@value"];const g={};return l&&(g[E.compactIri({activeCtx:e,iri:"@index",relativeTo:{vocab:!0}})]=n["@index"]),"@type"in n?g[E.compactIri({activeCtx:e,iri:"@type",relativeTo:{vocab:!0}})]=E.compactIri({activeCtx:e,iri:n["@type"],relativeTo:{vocab:!0}}):"@language"in n&&(g[E.compactIri({activeCtx:e,iri:"@language",relativeTo:{vocab:!0}})]=n["@language"]),"@direction"in n&&(g[E.compactIri({activeCtx:e,iri:"@direction",relativeTo:{vocab:!0}})]=n["@direction"]),g[E.compactIri({activeCtx:e,iri:"@value",relativeTo:{vocab:!0}})]=n["@value"],g}const o=p(e,t,{vocab:!0},r),i=h(e,t,"@type"),s=E.compactIri({activeCtx:e,iri:n["@id"],relativeTo:{vocab:"@vocab"===i},base:r.base});return"@id"===i||"@vocab"===i||"@graph"===o?s:{[E.compactIri({activeCtx:e,iri:"@id",relativeTo:{vocab:!0}})]:s}}},93770:function(e){"use strict";const t="http://www.w3.org/1999/02/22-rdf-syntax-ns#",n="http://www.w3.org/2001/XMLSchema#";e.exports={LINK_HEADER_REL:"http://www.w3.org/ns/json-ld#context",LINK_HEADER_CONTEXT:"http://www.w3.org/ns/json-ld#context",RDF:t,RDF_LIST:t+"List",RDF_FIRST:t+"first",RDF_REST:t+"rest",RDF_NIL:t+"nil",RDF_TYPE:t+"type",RDF_PLAIN_LITERAL:t+"PlainLiteral",RDF_XML_LITERAL:t+"XMLLiteral",RDF_JSON_LITERAL:t+"JSON",RDF_OBJECT:t+"object",RDF_LANGSTRING:t+"langString",XSD:n,XSD_BOOLEAN:n+"boolean",XSD_DOUBLE:n+"double",XSD_INTEGER:n+"integer",XSD_STRING:n+"string"}},54131:function(e,t,n){"use strict";const r=n(51055),o=n(54093),{isArray:i,isObject:a,isString:s,isUndefined:l}=n(30832),{isAbsolute:c,isRelative:d,prependBase:u}=n(82278),{handleEvent:f}=n(91696),{REGEX_BCP47:p,REGEX_KEYWORD:h,asArray:g,compareShortestLeast:y}=n(51055),b=new Map,v=1e4,m={};function w(e,t,n,r,o,i){if(null===t||!s(t)||m.isKeyword(t))return t;if(t.match(h))return null;if(r&&r.hasOwnProperty(t)&&!0!==o.get(t)&&m.createTermDefinition({activeCtx:e,localCtx:r,term:t,defined:o,options:i}),n=n||{},n.vocab){const n=e.mappings.get(t);if(null===n)return null;if(a(n)&&"@id"in n)return n["@id"]}const l=t.indexOf(":");if(l>0){const n=t.substr(0,l),a=t.substr(l+1);if("_"===n||0===a.indexOf("//"))return t;r&&r.hasOwnProperty(n)&&m.createTermDefinition({activeCtx:e,localCtx:r,term:n,defined:o,options:i});const s=e.mappings.get(n);if(s&&s._prefix)return s["@id"]+a;if(c(t))return t}if(n.vocab&&"@vocab"in e){const n=e["@vocab"]+t;t=n}else if(n.base){let n,r;"@base"in e?e["@base"]?(r=u(i.base,e["@base"]),n=u(r,t)):(r=e["@base"],n=t):(r=i.base,n=u(i.base,t)),t=n}return t}function x(e,t){if(!e||"object"!==typeof e||!t||"object"!==typeof t)return e===t;const n=Array.isArray(e);if(n!==Array.isArray(t))return!1;if(n){if(e.length!==t.length)return!1;for(let n=0;n{a(t)&&"@context"in t&&i(t["@context"])&&(t=t["@context"]);const y=g(t);if(0===y.length)return e;const b=[],v=[({event:e,next:t})=>{b.push(e),t()}];n.eventHandler&&v.push(n.eventHandler);const x=n;n={...n,eventHandler:v};const _=await n.contextResolver.resolve({activeCtx:e,context:t,documentLoader:n.documentLoader,base:n.base});a(_[0].document)&&"boolean"===typeof _[0].document["@propagate"]&&(r=_[0].document["@propagate"]);let S=e;r||S.previousContext||(S=S.clone(),S.previousContext=e);for(const i of _){let{document:r}=i;if(e=S,null===r){if(!l&&0!==Object.keys(e.protected).length)throw new o("Tried to nullify a context with protected terms outside of a term definition.","jsonld.SyntaxError",{code:"invalid context nullification"});S=e=m.getInitialContext(n).clone();continue}const g=i.getProcessed(e);if(g){if(x.eventHandler)for(const e of g.events)f({event:e,options:x});S=e=g.context;continue}if(a(r)&&"@context"in r&&(r=r["@context"]),!a(r))throw new o("Invalid JSON-LD syntax; @context must be an object.","jsonld.SyntaxError",{code:"invalid local context",context:r});S=S.clone();const y=new Map;if("@version"in r){if(1.1!==r["@version"])throw new o("Unsupported JSON-LD version: "+r["@version"],"jsonld.UnsupportedVersion",{code:"invalid @version value",context:r});if(e.processingMode&&"json-ld-1.0"===e.processingMode)throw new o("@version: "+r["@version"]+" not compatible with "+e.processingMode,"jsonld.ProcessingModeConflict",{code:"processing mode conflict",context:r});S.processingMode="json-ld-1.1",S["@version"]=r["@version"],y.set("@version",!0)}if(S.processingMode=S.processingMode||e.processingMode,"@base"in r){let e=r["@base"];if(null===e||c(e));else{if(!d(e))throw new o('Invalid JSON-LD syntax; the value of "@base" in a @context must be an absolute IRI, a relative IRI, or null.',"jsonld.SyntaxError",{code:"invalid base IRI",context:r});e=u(S["@base"],e)}S["@base"]=e,y.set("@base",!0)}if("@vocab"in r){const e=r["@vocab"];if(null===e)delete S["@vocab"];else{if(!s(e))throw new o('Invalid JSON-LD syntax; the value of "@vocab" in a @context must be a string or null.',"jsonld.SyntaxError",{code:"invalid vocab mapping",context:r});if(!c(e)&&m.processingMode(S,1))throw new o('Invalid JSON-LD syntax; the value of "@vocab" in a @context must be an absolute IRI.',"jsonld.SyntaxError",{code:"invalid vocab mapping",context:r});{const t=w(S,e,{vocab:!0,base:!0},void 0,void 0,n);c(t)||n.eventHandler&&f({event:{type:["JsonLdEvent"],code:"relative @vocab reference",level:"warning",message:"Relative @vocab reference found.",details:{vocab:t}},options:n}),S["@vocab"]=t}}y.set("@vocab",!0)}if("@language"in r){const e=r["@language"];if(null===e)delete S["@language"];else{if(!s(e))throw new o('Invalid JSON-LD syntax; the value of "@language" in a @context must be a string or null.',"jsonld.SyntaxError",{code:"invalid default language",context:r});e.match(p)||n.eventHandler&&f({event:{type:["JsonLdEvent"],code:"invalid @language value",level:"warning",message:"@language value must be valid BCP47.",details:{language:e}},options:n}),S["@language"]=e.toLowerCase()}y.set("@language",!0)}if("@direction"in r){const t=r["@direction"];if("json-ld-1.0"===e.processingMode)throw new o("Invalid JSON-LD syntax; @direction not compatible with "+e.processingMode,"jsonld.SyntaxError",{code:"invalid context member",context:r});if(null===t)delete S["@direction"];else{if("ltr"!==t&&"rtl"!==t)throw new o('Invalid JSON-LD syntax; the value of "@direction" in a @context must be null, "ltr", or "rtl".',"jsonld.SyntaxError",{code:"invalid base direction",context:r});S["@direction"]=t}y.set("@direction",!0)}if("@propagate"in r){const n=r["@propagate"];if("json-ld-1.0"===e.processingMode)throw new o("Invalid JSON-LD syntax; @propagate not compatible with "+e.processingMode,"jsonld.SyntaxError",{code:"invalid context entry",context:r});if("boolean"!==typeof n)throw new o("Invalid JSON-LD syntax; @propagate value must be a boolean.","jsonld.SyntaxError",{code:"invalid @propagate value",context:t});y.set("@propagate",!0)}if("@import"in r){const i=r["@import"];if("json-ld-1.0"===e.processingMode)throw new o("Invalid JSON-LD syntax; @import not compatible with "+e.processingMode,"jsonld.SyntaxError",{code:"invalid context entry",context:r});if(!s(i))throw new o("Invalid JSON-LD syntax; @import must be a string.","jsonld.SyntaxError",{code:"invalid @import value",context:t});const a=await n.contextResolver.resolve({activeCtx:e,context:i,documentLoader:n.documentLoader,base:n.base});if(1!==a.length)throw new o("Invalid JSON-LD syntax; @import must reference a single context.","jsonld.SyntaxError",{code:"invalid remote context",context:t});const l=a[0].getProcessed(e);if(l)r=l;else{const n=a[0].document;if("@import"in n)throw new o("Invalid JSON-LD syntax: imported context must not include @import.","jsonld.SyntaxError",{code:"invalid context entry",context:t});for(const e in n)r.hasOwnProperty(e)||(r[e]=n[e]);a[0].setProcessed(e,r)}y.set("@import",!0)}y.set("@protected",r["@protected"]||!1);for(const e in r)if(m.createTermDefinition({activeCtx:S,localCtx:r,term:e,defined:y,options:n,overrideProtected:l}),a(r[e])&&"@context"in r[e]){const t=r[e]["@context"];let i=!0;if(s(t)){const e=u(n.base,t);h.has(e)?i=!1:h.add(e)}if(i)try{await m.process({activeCtx:S.clone(),localCtx:r[e]["@context"],overrideProtected:!0,options:n,cycles:h})}catch(E){throw new o("Invalid JSON-LD syntax; invalid scoped context.","jsonld.SyntaxError",{code:"invalid scoped context",context:r[e]["@context"],term:e})}}i.setProcessed(e,{context:S,events:b})}return S},m.createTermDefinition=({activeCtx:e,localCtx:t,term:n,defined:r,options:l,overrideProtected:d=!1})=>{if(r.has(n)){if(r.get(n))return;throw new o("Cyclical context definition detected.","jsonld.CyclicalContext",{code:"cyclic IRI mapping",context:t,term:n})}let u;if(r.set(n,!1),t.hasOwnProperty(n)&&(u=t[n]),"@type"===n&&a(u)&&"@set"===(u["@container"]||"@set")&&m.processingMode(e,1.1)){const e=["@container","@id","@protected"],r=Object.keys(u);if(0===r.length||r.some((t=>!e.includes(t))))throw new o("Invalid JSON-LD syntax; keywords cannot be overridden.","jsonld.SyntaxError",{code:"keyword redefinition",context:t,term:n})}else{if(m.isKeyword(n))throw new o("Invalid JSON-LD syntax; keywords cannot be overridden.","jsonld.SyntaxError",{code:"keyword redefinition",context:t,term:n});if(n.match(h))return void(l.eventHandler&&f({event:{type:["JsonLdEvent"],code:"reserved term",level:"warning",message:'Terms beginning with "@" are reserved for future use and dropped.',details:{term:n}},options:l}));if(""===n)throw new o("Invalid JSON-LD syntax; a term cannot be an empty string.","jsonld.SyntaxError",{code:"invalid term definition",context:t})}const p=e.mappings.get(n);e.mappings.has(n)&&e.mappings.delete(n);let g=!1;if((s(u)||null===u)&&(g=!0,u={"@id":u}),!a(u))throw new o("Invalid JSON-LD syntax; @context term values must be strings or objects.","jsonld.SyntaxError",{code:"invalid term definition",context:t});const y={};e.mappings.set(n,y),y.reverse=!1;const b=["@container","@id","@language","@reverse","@type"];m.processingMode(e,1.1)&&b.push("@context","@direction","@index","@nest","@prefix","@protected");for(const i in u)if(!b.includes(i))throw new o("Invalid JSON-LD syntax; a term definition must not contain "+i,"jsonld.SyntaxError",{code:"invalid term definition",context:t});const v=n.indexOf(":");if(y._termHasColon=v>0,"@reverse"in u){if("@id"in u)throw new o("Invalid JSON-LD syntax; a @reverse term definition must not contain @id.","jsonld.SyntaxError",{code:"invalid reverse property",context:t});if("@nest"in u)throw new o("Invalid JSON-LD syntax; a @reverse term definition must not contain @nest.","jsonld.SyntaxError",{code:"invalid reverse property",context:t});const i=u["@reverse"];if(!s(i))throw new o("Invalid JSON-LD syntax; a @context @reverse value must be a string.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t});if(i.match(h))return l.eventHandler&&f({event:{type:["JsonLdEvent"],code:"reserved @reverse value",level:"warning",message:'@reverse values beginning with "@" are reserved for future use and dropped.',details:{reverse:i}},options:l}),void(p?e.mappings.set(n,p):e.mappings.delete(n));const a=w(e,i,{vocab:!0,base:!1},t,r,l);if(!c(a))throw new o("Invalid JSON-LD syntax; a @context @reverse value must be an absolute IRI or a blank node identifier.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t});y["@id"]=a,y.reverse=!0}else if("@id"in u){let i=u["@id"];if(i&&!s(i))throw new o("Invalid JSON-LD syntax; a @context @id value must be an array of strings or a string.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t});if(null===i)y["@id"]=null;else{if(!m.isKeyword(i)&&i.match(h))return l.eventHandler&&f({event:{type:["JsonLdEvent"],code:"reserved @id value",level:"warning",message:'@id values beginning with "@" are reserved for future use and dropped.',details:{id:i}},options:l}),void(p?e.mappings.set(n,p):e.mappings.delete(n));if(i!==n){if(i=w(e,i,{vocab:!0,base:!1},t,r,l),!c(i)&&!m.isKeyword(i))throw new o("Invalid JSON-LD syntax; a @context @id value must be an absolute IRI, a blank node identifier, or a keyword.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t});if(n.match(/(?::[^:])|\//)){const a=new Map(r).set(n,!0),s=w(e,n,{vocab:!0,base:!1},t,a,l);if(s!==i)throw new o("Invalid JSON-LD syntax; term in form of IRI must expand to definition.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t})}y["@id"]=i,y._prefix=g&&!y._termHasColon&&null!==i.match(/[:\/\?#\[\]@]$/)}}}if(!("@id"in y))if(y._termHasColon){const o=n.substr(0,v);if(t.hasOwnProperty(o)&&m.createTermDefinition({activeCtx:e,localCtx:t,term:o,defined:r,options:l}),e.mappings.has(o)){const t=n.substr(v+1);y["@id"]=e.mappings.get(o)["@id"]+t}else y["@id"]=n}else if("@type"===n)y["@id"]=n;else{if(!("@vocab"in e))throw new o("Invalid JSON-LD syntax; @context terms must define an @id.","jsonld.SyntaxError",{code:"invalid IRI mapping",context:t,term:n});y["@id"]=e["@vocab"]+n}if((!0===u["@protected"]||!0===r.get("@protected")&&!1!==u["@protected"])&&(e.protected[n]=!0,y.protected=!0),r.set(n,!0),"@type"in u){let n=u["@type"];if(!s(n))throw new o("Invalid JSON-LD syntax; an @context @type value must be a string.","jsonld.SyntaxError",{code:"invalid type mapping",context:t});if("@json"===n||"@none"===n){if(m.processingMode(e,1))throw new o(`Invalid JSON-LD syntax; an @context @type value must not be "${n}" in JSON-LD 1.0 mode.`,"jsonld.SyntaxError",{code:"invalid type mapping",context:t})}else if("@id"!==n&&"@vocab"!==n){if(n=w(e,n,{vocab:!0,base:!1},t,r,l),!c(n))throw new o("Invalid JSON-LD syntax; an @context @type value must be an absolute IRI.","jsonld.SyntaxError",{code:"invalid type mapping",context:t});if(0===n.indexOf("_:"))throw new o("Invalid JSON-LD syntax; an @context @type value must be an IRI, not a blank node identifier.","jsonld.SyntaxError",{code:"invalid type mapping",context:t})}y["@type"]=n}if("@container"in u){const n=s(u["@container"])?[u["@container"]]:u["@container"]||[],r=["@list","@set","@index","@language"];let a=!0;const l=n.includes("@set");if(m.processingMode(e,1.1)){if(r.push("@graph","@id","@type"),n.includes("@list")){if(1!==n.length)throw new o("Invalid JSON-LD syntax; @context @container with @list must have no other values","jsonld.SyntaxError",{code:"invalid container mapping",context:t})}else if(n.includes("@graph")){if(n.some((e=>"@graph"!==e&&"@id"!==e&&"@index"!==e&&"@set"!==e)))throw new o("Invalid JSON-LD syntax; @context @container with @graph must have no other values other than @id, @index, and @set","jsonld.SyntaxError",{code:"invalid container mapping",context:t})}else a&=n.length<=(l?2:1);if(n.includes("@type")&&(y["@type"]=y["@type"]||"@id",!["@id","@vocab"].includes(y["@type"])))throw new o("Invalid JSON-LD syntax; container: @type requires @type to be @id or @vocab.","jsonld.SyntaxError",{code:"invalid type mapping",context:t})}else a&=!i(u["@container"]),a&=n.length<=1;if(a&=n.every((e=>r.includes(e))),a&=!(l&&n.includes("@list")),!a)throw new o("Invalid JSON-LD syntax; @context @container value must be one of the following: "+r.join(", "),"jsonld.SyntaxError",{code:"invalid container mapping",context:t});if(y.reverse&&!n.every((e=>["@index","@set"].includes(e))))throw new o("Invalid JSON-LD syntax; @context @container value for a @reverse type definition must be @index or @set.","jsonld.SyntaxError",{code:"invalid reverse property",context:t});y["@container"]=n}if("@index"in u){if(!("@container"in u)||!y["@container"].includes("@index"))throw new o(`Invalid JSON-LD syntax; @index without @index in @container: "${u["@index"]}" on term "${n}".`,"jsonld.SyntaxError",{code:"invalid term definition",context:t});if(!s(u["@index"])||0===u["@index"].indexOf("@"))throw new o(`Invalid JSON-LD syntax; @index must expand to an IRI: "${u["@index"]}" on term "${n}".`,"jsonld.SyntaxError",{code:"invalid term definition",context:t});y["@index"]=u["@index"]}if("@context"in u&&(y["@context"]=u["@context"]),"@language"in u&&!("@type"in u)){let e=u["@language"];if(null!==e&&!s(e))throw new o("Invalid JSON-LD syntax; @context @language value must be a string or null.","jsonld.SyntaxError",{code:"invalid language mapping",context:t});null!==e&&(e=e.toLowerCase()),y["@language"]=e}if("@prefix"in u){if(n.match(/:|\//))throw new o("Invalid JSON-LD syntax; @context @prefix used on a compact IRI term","jsonld.SyntaxError",{code:"invalid term definition",context:t});if(m.isKeyword(y["@id"]))throw new o("Invalid JSON-LD syntax; keywords may not be used as prefixes","jsonld.SyntaxError",{code:"invalid term definition",context:t});if("boolean"!==typeof u["@prefix"])throw new o("Invalid JSON-LD syntax; @context value for @prefix must be boolean","jsonld.SyntaxError",{code:"invalid @prefix value",context:t});y._prefix=!0===u["@prefix"]}if("@direction"in u){const e=u["@direction"];if(null!==e&&"ltr"!==e&&"rtl"!==e)throw new o('Invalid JSON-LD syntax; @direction value must be null, "ltr", or "rtl".',"jsonld.SyntaxError",{code:"invalid base direction",context:t});y["@direction"]=e}if("@nest"in u){const e=u["@nest"];if(!s(e)||"@nest"!==e&&0===e.indexOf("@"))throw new o("Invalid JSON-LD syntax; @context @nest value must be a string which is not a keyword other than @nest.","jsonld.SyntaxError",{code:"invalid @nest value",context:t});y["@nest"]=e} +// disallow aliasing @context and @preserve +const _=y["@id"];if("@context"===_||"@preserve"===_)throw new o("Invalid JSON-LD syntax; @context and @preserve cannot be aliased.","jsonld.SyntaxError",{code:"invalid keyword alias",context:t});if(p&&p.protected&&!d&&(e.protected[n]=!0,y.protected=!0,!x(p,y)))throw new o("Invalid JSON-LD syntax; tried to redefine a protected term.","jsonld.SyntaxError",{code:"protected term redefinition",context:t,term:n})},m.expandIri=(e,t,n,r)=>w(e,t,n,void 0,void 0,r),m.getInitialContext=e=>{const t=JSON.stringify({processingMode:e.processingMode}),n=b.get(t);if(n)return n;const o={processingMode:e.processingMode,mappings:new Map,inverse:null,getInverse:i,clone:l,revertToPreviousContext:c,protected:{}};return b.size===v&&b.clear(),b.set(t,o),o;function i(){const e=this;if(e.inverse)return e.inverse;const t=e.inverse={},n=e.fastCurieMap={},r={},o=(e["@language"]||"@none").toLowerCase(),i=e["@direction"],l=e.mappings,c=[...l.keys()].sort(y);for(const a of c){const e=l.get(a);if(null===e)continue;let c=e["@container"]||"@none";if(c=[].concat(c).sort().join(""),null===e["@id"])continue;const d=g(e["@id"]);for(const l of d){let d=t[l];const u=m.isKeyword(l);if(d)u||e._termHasColon||r[l].push(a);else if(t[l]=d={},!u&&!e._termHasColon){r[l]=[a];const e={iri:l,terms:r[l]};l[0]in n?n[l[0]].push(e):n[l[0]]=[e]}if(d[c]||(d[c]={"@language":{},"@type":{},"@any":{}}),d=d[c],s(a,d["@any"],"@none"),e.reverse)s(a,d["@type"],"@reverse");else if("@none"===e["@type"])s(a,d["@any"],"@none"),s(a,d["@language"],"@none"),s(a,d["@type"],"@none");else if("@type"in e)s(a,d["@type"],e["@type"]);else if("@language"in e&&"@direction"in e){const t=e["@language"],n=e["@direction"];s(a,d["@language"],t&&n?`${t}_${n}`.toLowerCase():t?t.toLowerCase():n?`_${n}`:"@null")}else"@language"in e?s(a,d["@language"],(e["@language"]||"@null").toLowerCase()):"@direction"in e?e["@direction"]?s(a,d["@language"],`_${e["@direction"]}`):s(a,d["@language"],"@none"):i?(s(a,d["@language"],`_${i}`),s(a,d["@language"],"@none"),s(a,d["@type"],"@none")):(s(a,d["@language"],o),s(a,d["@language"],"@none"),s(a,d["@type"],"@none"))}}for(const s in n)a(n,s,1);return t}function a(e,t,n){const r=e[t],o=e[t]={};let i,s;for(const a of r)i=a.iri,s=n>=i.length?"":i[n],s in o?o[s].push(a):o[s]=[a];for(const l in o)""!==l&&a(o,l,n+1)}function s(e,t,n){t.hasOwnProperty(n)||(t[n]=e)}function l(){const e={};return e.mappings=r.clone(this.mappings),e.clone=this.clone,e.inverse=null,e.getInverse=this.getInverse,e.protected=r.clone(this.protected),this.previousContext&&(e.previousContext=this.previousContext.clone()),e.revertToPreviousContext=this.revertToPreviousContext,"@base"in this&&(e["@base"]=this["@base"]),"@language"in this&&(e["@language"]=this["@language"]),"@vocab"in this&&(e["@vocab"]=this["@vocab"]),e}function c(){return this.previousContext?this.previousContext.clone():this}},m.getContextValue=(e,t,n)=>{if(null===t){if("@context"===n)return;return null}if(e.mappings.has(t)){const r=e.mappings.get(t);if(l(n))return r;if(r.hasOwnProperty(n))return r[n]}return"@language"===n&&n in e||"@direction"===n&&n in e?e[n]:"@context"!==n?null:void 0},m.processingMode=(e,t)=>t.toString()>="1.1"?!e.processingMode||e.processingMode>="json-ld-"+t.toString():"json-ld-1.0"===e.processingMode,m.isKeyword=e=>{if(!s(e)||"@"!==e[0])return!1;switch(e){case"@base":case"@container":case"@context":case"@default":case"@direction":case"@embed":case"@explicit":case"@graph":case"@id":case"@included":case"@index":case"@json":case"@language":case"@list":case"@nest":case"@none":case"@omitDefault":case"@prefix":case"@preserve":case"@protected":case"@requireAll":case"@reverse":case"@set":case"@type":case"@value":case"@version":case"@vocab":return!0}return!1}},8831:function(e,t,n){"use strict";const{parseLinkHeader:r,buildHeaders:o}=n(51055),{LINK_HEADER_CONTEXT:i}=n(93770),a=n(54093),s=n(40533),{prependBase:l}=n(82278),c=/(^|(\r\n))link:/i;function d(e,t,n){e=e||XMLHttpRequest;const r=new e;return new Promise(((e,o)=>{r.onload=()=>e(r),r.onerror=e=>o(e),r.open("GET",t,!0);for(const t in n)r.setRequestHeader(t,n[t]);r.send()}))}e.exports=({secure:e,headers:t={},xhr:n}={headers:{}})=>{t=o(t);const u=new s;return u.wrapLoader(f);async function f(o){if(0!==o.indexOf("http:")&&0!==o.indexOf("https:"))throw new a('URL could not be dereferenced; only "http" and "https" URLs are supported.',"jsonld.InvalidUrl",{code:"loading document failed",url:o});if(e&&0!==o.indexOf("https"))throw new a('URL could not be dereferenced; secure mode is enabled and the URL\'s scheme is not "https".',"jsonld.InvalidUrl",{code:"loading document failed",url:o});let s;try{s=await d(n,o,t)}catch(y){throw new a("URL could not be dereferenced, an error occurred.","jsonld.LoadDocumentError",{code:"loading document failed",url:o,cause:y})}if(s.status>=400)throw new a("URL could not be dereferenced: "+s.statusText,"jsonld.LoadDocumentError",{code:"loading document failed",url:o,httpStatusCode:s.status});let u={contextUrl:null,documentUrl:o,document:s.response},p=null;const h=s.getResponseHeader("Content-Type");let g;if(c.test(s.getAllResponseHeaders())&&(g=s.getResponseHeader("Link")),g&&"application/ld+json"!==h){const e=r(g),t=e[i];if(Array.isArray(t))throw new a("URL could not be dereferenced, it has more than one associated HTTP Link Header.","jsonld.InvalidUrl",{code:"multiple context link headers",url:o});t&&(u.contextUrl=t.target),p=e.alternate,p&&"application/ld+json"==p.type&&!(h||"").match(/^application\/(\w*\+)?json$/)&&(u=await f(l(o,p.target)))}return u}}},91696:function(e,t,n){"use strict";const r=n(54093),{isArray:o}=n(30832),{asArray:i}=n(51055),a={};function s({event:e,handlers:t}){let n=!0;for(let i=0;n&&i{n=!0}});else{if("object"!==typeof a)throw new r("Invalid event handler.","jsonld.InvalidEventHandler",{event:e});e.code in a?a[e.code]({event:e,next:()=>{n=!0}}):n=!0}}return n}e.exports=a,a.defaultEventHandler=null,a.setupEventHandler=({options:e={}})=>{const t=[].concat(e.safe?a.safeEventHandler:[],e.eventHandler?i(e.eventHandler):[],a.defaultEventHandler?a.defaultEventHandler:[]);return 0===t.length?null:t},a.handleEvent=({event:e,options:t})=>{s({event:e,handlers:t.eventHandler})};const l=new Set(["empty object","free-floating scalar","invalid @language value","invalid property","null @id value","null @value value","object with only @id","object with only @language","object with only @list","object with only @value","relative @id reference","relative @type reference","relative @vocab reference","reserved @id value","reserved @reverse value","reserved term","blank node predicate","relative graph reference","relative object reference","relative predicate reference","relative subject reference","rdfDirection not set"]);a.safeEventHandler=function({event:e,next:t}){if("warning"===e.level&&l.has(e.code))throw new r("Safe mode validation error.","jsonld.ValidationError",{event:e});t()},a.logEventHandler=function({event:e,next:t}){console.log(`EVENT: ${e.message}`,{event:e}),t()},a.logWarningEventHandler=function({event:e,next:t}){"warning"===e.level&&console.warn(`WARNING: ${e.message}`,{event:e}),t()},a.unhandledEventHandler=function({event:e}){throw new r("No handler for event.","jsonld.UnhandledEvent",{event:e})},a.setDefaultEventHandler=function({eventHandler:e}={}){a.defaultEventHandler=e?i(e):null}},62759:function(e,t,n){"use strict";const r=n(54093),{isArray:o,isObject:i,isEmptyObject:a,isString:s,isUndefined:l}=n(30832),{isList:c,isValue:d,isGraph:u,isSubject:f}=n(18463),{expandIri:p,getContextValue:h,isKeyword:g,process:y,processingMode:b}=n(54131),{isAbsolute:v}=n(82278),{REGEX_BCP47:m,REGEX_KEYWORD:w,addValue:x,asArray:_,getValues:S,validateTypeValue:E}=n(51055),{handleEvent:I}=n(91696),j={};function R({value:e,count:t,options:n}){if(0===t||"@value"in e||"@list"in e||1===t&&"@id"in e){if(n.eventHandler){let r,o;0===t?(r="empty object",o="Dropping empty object."):"@value"in e?(r="object with only @value",o="Dropping object with only @value."):"@list"in e?(r="object with only @list",o="Dropping object with only @list."):1===t&&"@id"in e&&(r="object with only @id",o="Dropping object with only @id."),I({event:{type:["JsonLdEvent"],code:r,level:"warning",message:o,details:{value:e}},options:n})}return null}return e}async function A({activeCtx:e,activeProperty:t,expandedActiveProperty:n,element:u,expandedParent:w,options:S={},insideList:N,typeKey:O,typeScopedContext:T}){const L=Object.keys(u).sort(),C=[];let M;const P=u[O]&&"@json"===p(e,o(u[O])?u[O][0]:u[O],{vocab:!0},{...S,typeExpansion:!0});for(const A of L){let N,O=u[A];if("@context"===A)continue;const L=p(e,A,{vocab:!0},S);if(null===L||!v(L)&&!g(L)){S.eventHandler&&I({event:{type:["JsonLdEvent"],code:"invalid property",level:"warning",message:"Dropping property that did not expand into an absolute IRI or keyword.",details:{property:A,expandedProperty:L}},options:S});continue}if(g(L)){if("@reverse"===n)throw new r("Invalid JSON-LD syntax; a keyword cannot be used as a @reverse property.","jsonld.SyntaxError",{code:"invalid reverse property map",value:O});if(L in w&&"@included"!==L&&"@type"!==L)throw new r("Invalid JSON-LD syntax; colliding keywords detected.","jsonld.SyntaxError",{code:"colliding keywords",keyword:L})}if("@id"===L){if(!s(O)){if(!S.isFrame)throw new r('Invalid JSON-LD syntax; "@id" value must a string.',"jsonld.SyntaxError",{code:"invalid @id value",value:O});if(i(O)){if(!a(O))throw new r('Invalid JSON-LD syntax; "@id" value an empty object or array of strings, if framing',"jsonld.SyntaxError",{code:"invalid @id value",value:O})}else{if(!o(O))throw new r('Invalid JSON-LD syntax; "@id" value an empty object or array of strings, if framing',"jsonld.SyntaxError",{code:"invalid @id value",value:O});if(!O.every((e=>s(e))))throw new r('Invalid JSON-LD syntax; "@id" value an empty object or array of strings, if framing',"jsonld.SyntaxError",{code:"invalid @id value",value:O})}}x(w,"@id",_(O).map((t=>{if(s(t)){const n=p(e,t,{base:!0},S);return S.eventHandler&&(null===n?I(null===t?{event:{type:["JsonLdEvent"],code:"null @id value",level:"warning",message:"Null @id found.",details:{id:t}},options:S}:{event:{type:["JsonLdEvent"],code:"reserved @id value",level:"warning",message:"Reserved @id found.",details:{id:t}},options:S}):v(n)||I({event:{type:["JsonLdEvent"],code:"relative @id reference",level:"warning",message:"Relative @id reference found.",details:{id:t,expandedId:n}},options:S})),n}return t})),{propertyIsArray:S.isFrame});continue}if("@type"===L){i(O)&&(O=Object.fromEntries(Object.entries(O).map((([e,t])=>[p(T,e,{vocab:!0}),_(t).map((e=>p(T,e,{base:!0,vocab:!0},{...S,typeExpansion:!0})))])))),E(O,S.isFrame),x(w,"@type",_(O).map((e=>{if(s(e)){const t=p(T,e,{base:!0,vocab:!0},{...S,typeExpansion:!0});return"@json"===t||v(t)||S.eventHandler&&I({event:{type:["JsonLdEvent"],code:"relative @type reference",level:"warning",message:"Relative @type reference found.",details:{type:e}},options:S}),t}return e})),{propertyIsArray:!!S.isFrame});continue}if("@included"===L&&b(e,1.1)){const n=_(await j.expand({activeCtx:e,activeProperty:t,element:O,options:S}));if(!n.every((e=>f(e))))throw new r("Invalid JSON-LD syntax; values of @included must expand to node objects.","jsonld.SyntaxError",{code:"invalid @included value",value:O});x(w,"@included",n,{propertyIsArray:!0});continue}if("@graph"===L&&!i(O)&&!o(O))throw new r('Invalid JSON-LD syntax; "@graph" value must not be an object or an array.',"jsonld.SyntaxError",{code:"invalid @graph value",value:O});if("@value"===L){M=O,P&&b(e,1.1)?w["@value"]=O:x(w,"@value",O,{propertyIsArray:S.isFrame});continue}if("@language"===L){if(null===O)continue;if(!s(O)&&!S.isFrame)throw new r('Invalid JSON-LD syntax; "@language" value must be a string.',"jsonld.SyntaxError",{code:"invalid language-tagged string",value:O});O=_(O).map((e=>s(e)?e.toLowerCase():e));for(const e of O)s(e)&&!e.match(m)&&S.eventHandler&&I({event:{type:["JsonLdEvent"],code:"invalid @language value",level:"warning",message:"@language value must be valid BCP47.",details:{language:e}},options:S});x(w,"@language",O,{propertyIsArray:S.isFrame});continue}if("@direction"===L){if(!s(O)&&!S.isFrame)throw new r('Invalid JSON-LD syntax; "@direction" value must be a string.',"jsonld.SyntaxError",{code:"invalid base direction",value:O});O=_(O);for(const e of O)if(s(e)&&"ltr"!==e&&"rtl"!==e)throw new r('Invalid JSON-LD syntax; "@direction" must be "ltr" or "rtl".',"jsonld.SyntaxError",{code:"invalid base direction",value:O});x(w,"@direction",O,{propertyIsArray:S.isFrame});continue}if("@index"===L){if(!s(O))throw new r('Invalid JSON-LD syntax; "@index" value must be a string.',"jsonld.SyntaxError",{code:"invalid @index value",value:O});x(w,"@index",O);continue}if("@reverse"===L){if(!i(O))throw new r('Invalid JSON-LD syntax; "@reverse" value must be an object.',"jsonld.SyntaxError",{code:"invalid @reverse value",value:O});if(N=await j.expand({activeCtx:e,activeProperty:"@reverse",element:O,options:S}),"@reverse"in N)for(const e in N["@reverse"])x(w,e,N["@reverse"][e],{propertyIsArray:!0});let t=w["@reverse"]||null;for(const e in N){if("@reverse"===e)continue;null===t&&(t=w["@reverse"]={}),x(t,e,[],{propertyIsArray:!0});const n=N[e];for(let o=0;o"@id"===e||"@index"===e))){if(N=_(N),S.isFrame||(N=N.filter((e=>{const t=Object.keys(e).length;return null!==R({value:e,count:t,options:S})}))),0===N.length)continue;N=N.map((e=>({"@graph":_(e)})))}if(F.mappings.has(A)&&F.mappings.get(A).reverse){const e=w["@reverse"]=w["@reverse"]||{};N=_(N);for(let t=0;t"@value"===p(e,t,{vocab:!0},S))))throw new r("Invalid JSON-LD syntax; nested value must be a node object.","jsonld.SyntaxError",{code:"invalid @nest value",value:o});await A({activeCtx:e,activeProperty:t,expandedActiveProperty:n,element:o,expandedParent:w,options:S,insideList:N,typeScopedContext:T,typeKey:O})}}}function N({activeCtx:e,activeProperty:t,value:n,options:r}){if(null===n||void 0===n)return null;const o=p(e,t,{vocab:!0},r);if("@id"===o)return p(e,n,{base:!0},r);if("@type"===o)return p(e,n,{vocab:!0,base:!0},{...r,typeExpansion:!0});const i=h(e,t,"@type");if(("@id"===i||"@graph"===o)&&s(n)){const o=p(e,n,{base:!0},r);return null===o&&n.match(w)&&r.eventHandler&&I({event:{type:["JsonLdEvent"],code:"reserved @id value",level:"warning",message:"Reserved @id found.",details:{id:t}},options:r}),{"@id":o}}if("@vocab"===i&&s(n))return{"@id":p(e,n,{vocab:!0,base:!0},r)};if(g(o))return n;const a={};if(i&&!["@id","@vocab","@none"].includes(i))a["@type"]=i;else if(s(n)){const n=h(e,t,"@language");null!==n&&(a["@language"]=n);const r=h(e,t,"@direction");null!==r&&(a["@direction"]=r)}return["boolean","number","string"].includes(typeof n)||(n=n.toString()),a["@value"]=n,a}function k(e,t,n,i){const a=[],l=Object.keys(t).sort();for(const c of l){const l=p(e,c,{vocab:!0},i);let d=t[c];o(d)||(d=[d]);for(const e of d){if(null===e)continue;if(!s(e))throw new r("Invalid JSON-LD syntax; language map values must be strings.","jsonld.SyntaxError",{code:"invalid language map value",languageMap:t});const o={"@value":e};"@none"!==l&&(c.match(m)||i.eventHandler&&I({event:{type:["JsonLdEvent"],code:"invalid @language value",level:"warning",message:"@language value must be valid BCP47.",details:{language:c}},options:i}),o["@language"]=c.toLowerCase()),n&&(o["@direction"]=n),a.push(o)}}return a}async function D({activeCtx:e,options:t,activeProperty:n,value:i,asGraph:a,indexKey:s,propertyIndex:c}){const f=[],g=Object.keys(i).sort(),b="@type"===s;for(let v of g){if(b){const n=h(e,v,"@context");l(n)||(e=await y({activeCtx:e,localCtx:n,propagate:!1,options:t}))}let g,m=i[v];o(m)||(m=[m]),m=await j.expand({activeCtx:e,activeProperty:n,element:m,options:t,insideList:!1,insideIndex:!0}),g=c?"@none"===v?"@none":N({activeCtx:e,activeProperty:s,value:v,options:t}):p(e,v,{vocab:!0},t),"@id"===s?v=p(e,v,{base:!0},t):b&&(v=g);for(let e of m){if(a&&!u(e)&&(e={"@graph":[e]}),"@type"===s)"@none"===g||(e["@type"]?e["@type"]=[v].concat(e["@type"]):e["@type"]=[v]);else{if(d(e)&&!["@language","@type","@index"].includes(s))throw new r(`Invalid JSON-LD syntax; Attempt to add illegal key to value object: "${s}".`,"jsonld.SyntaxError",{code:"invalid value object",value:e});c?"@none"!==g&&x(e,c,g,{propertyIsArray:!0,prependValue:!0}):"@none"===g||s in e||(e[s]=v)}f.push(e)}}return f}e.exports=j,j.expand=async({activeCtx:e,activeProperty:t=null,element:n,options:c={},insideList:d=!1,insideIndex:u=!1,typeScopedContext:f=null})=>{if(null===n||void 0===n)return null;if("@default"===t&&(c=Object.assign({},c,{isFrame:!1})),!o(n)&&!i(n))return d||null!==t&&"@graph"!==p(e,t,{vocab:!0},c)?N({activeCtx:e,activeProperty:t,value:n,options:c}):(c.eventHandler&&I({event:{type:["JsonLdEvent"],code:"free-floating scalar",level:"warning",message:"Dropping free-floating scalar not in a list.",details:{value:n}},options:c}),null);if(o(n)){let r=[];const i=h(e,t,"@container")||[];d=d||i.includes("@list");for(let a=0;a1?t.slice().sort():t:[t];for(const n of o){const t=h(f,n,"@context");l(t)||(e=await y({activeCtx:e,localCtx:t,options:c,propagate:!1}))}}}let k={};await A({activeCtx:e,activeProperty:t,expandedActiveProperty:g,element:n,expandedParent:k,options:c,insideList:d,typeKey:E,typeScopedContext:f}),w=Object.keys(k);let D=w.length;if("@value"in k){if("@type"in k&&("@language"in k||"@direction"in k))throw new r('Invalid JSON-LD syntax; an element containing "@value" may not contain both "@type" and either "@language" or "@direction".',"jsonld.SyntaxError",{code:"invalid value object",element:k});let t=D-1;if("@type"in k&&(t-=1),"@index"in k&&(t-=1),"@language"in k&&(t-=1),"@direction"in k&&(t-=1),0!==t)throw new r('Invalid JSON-LD syntax; an element containing "@value" may only have an "@index" property and either "@type" or either or both "@language" or "@direction".',"jsonld.SyntaxError",{code:"invalid value object",element:k});const n=null===k["@value"]?[]:_(k["@value"]),o=S(k,"@type");if(b(e,1.1)&&o.includes("@json")&&1===o.length);else if(0===n.length)c.eventHandler&&I({event:{type:["JsonLdEvent"],code:"null @value value",level:"warning",message:"Dropping null @value value.",details:{value:k}},options:c}),k=null;else{if(!n.every((e=>s(e)||a(e)))&&"@language"in k)throw new r("Invalid JSON-LD syntax; only strings may be language-tagged.","jsonld.SyntaxError",{code:"invalid language-tagged value",element:k});if(!o.every((e=>v(e)&&!(s(e)&&0===e.indexOf("_:"))||a(e))))throw new r('Invalid JSON-LD syntax; an element containing "@value" and "@type" must have an absolute IRI for the value of "@type".',"jsonld.SyntaxError",{code:"invalid typed value",element:k})}}else if("@type"in k&&!o(k["@type"]))k["@type"]=[k["@type"]];else if("@set"in k||"@list"in k){if(D>1&&(2!==D||!("@index"in k)))throw new r('Invalid JSON-LD syntax; if an element has the property "@set" or "@list", then it can have at most one other property that is "@index".',"jsonld.SyntaxError",{code:"invalid set or list object",element:k});"@set"in k&&(k=k["@set"],w=Object.keys(k),D=w.length)}else 1===D&&"@language"in k&&(c.eventHandler&&I({event:{type:["JsonLdEvent"],code:"object with only @language",level:"warning",message:"Dropping object with only @language.",details:{value:k}},options:c}),k=null);return!i(k)||c.keepFreeFloatingNodes||d||null!==t&&"@graph"!==g&&!(h(e,t,"@container")||[]).includes("@graph")||(k=R({value:k,count:D,options:c})),k}},41565:function(e,t,n){"use strict";const{isSubjectReference:r}=n(18463),{createMergedNodeMap:o}=n(32664),i={};e.exports=i,i.flatten=e=>{const t=o(e),n=[],i=Object.keys(t).sort();for(let o=0;o=0;--r){const o=n[r];if(o.graph===t&&o.subject["@id"]===e["@id"])return!0}return!1}function h(e,t,n){const r="@"+n;let o=r in e?e[r][0]:t[n];if("embed"===n)if(!0===o)o="@once";else if(!1===o)o="@never";else if("@always"!==o&&"@never"!==o&&"@link"!==o&&"@first"!==o&&"@last"!==o&&"@once"!==o)throw new l("Invalid JSON-LD syntax; invalid value of @embed.","jsonld.SyntaxError",{code:"invalid @embed value",frame:e});return o}function g(e){if(!i.isArray(e)||1!==e.length||!i.isObject(e[0]))throw new l("Invalid JSON-LD syntax; a JSON-LD frame must be a single object.","jsonld.SyntaxError",{frame:e});if("@id"in e[0])for(const t of a.asArray(e[0]["@id"]))if(!i.isObject(t)&&!s.isAbsolute(t)||i.isString(t)&&0===t.indexOf("_:"))throw new l("Invalid JSON-LD syntax; invalid @id in frame.","jsonld.SyntaxError",{code:"invalid frame",frame:e});if("@type"in e[0])for(const t of a.asArray(e[0]["@type"]))if(!i.isObject(t)&&!s.isAbsolute(t)&&"@json"!==t||i.isString(t)&&0===t.indexOf("_:"))throw new l("Invalid JSON-LD syntax; invalid @type in frame.","jsonld.SyntaxError",{code:"invalid frame",frame:e})}function y(e,t,n,r){const o={};for(const i of t){const t=e.graphMap[e.graph][i];b(e,t,n,r)&&(o[i]=t)}return o}function b(e,t,n,s){let l=!0,c=!1;for(const d in n){let u=!1;const f=a.getValues(t,d),p=0===a.getValues(n,d).length;if("@id"===d){if(i.isEmptyObject(n["@id"][0]||{})?u=!0:n["@id"].length>=0&&(u=n["@id"].includes(f[0])),!s.requireAll)return u}else if("@type"===d){if(l=!1,p){if(f.length>0)return!1;u=!0}else if(1===n["@type"].length&&i.isEmptyObject(n["@type"][0]))u=f.length>0;else for(const e of n["@type"])u=!(!i.isObject(e)||!("@default"in e))||(u||f.some((t=>t===e)));if(!s.requireAll)return u}else{if(r(d))continue;{const t=a.getValues(n,d)[0];let r=!1;if(t&&(g([t]),r="@default"in t),l=!1,0===f.length&&r)continue;if(f.length>0&&p)return!1;if(void 0===t){if(f.length>0)return!1;u=!0}else if(o.isList(t)){const n=t["@list"][0];if(o.isList(f[0])){const t=f[0]["@list"];o.isValue(n)?u=t.some((e=>_(n,e))):(o.isSubject(n)||o.isSubjectReference(n))&&(u=t.some((t=>x(e,n,t,s))))}}else u=o.isValue(t)?f.some((e=>_(t,e))):o.isSubjectReference(t)?f.some((n=>x(e,t,n,s))):!!i.isObject(t)&&f.length>0}}if(!u&&s.requireAll)return!1;c=c||u}return l||c}function v(e,t){const n=e.uniqueEmbeds[e.graph],r=n[t],o=r.parent,s=r.property,l={"@id":t};if(i.isArray(o)){for(let i=0;i{const t=Object.keys(n);for(const r of t)r in n&&i.isObject(n[r].parent)&&n[r].parent["@id"]===e&&(delete n[r],c(r))};c(t)} +/** + * Removes the @preserve keywords from expanded result of framing. + * + * @param input the framed, framed output. + * @param options the framing options used. + * + * @return the resulting output. + */function m(e,t){if(i.isArray(e))return e.map((e=>m(e,t)));if(i.isObject(e)){ +// remove @preserve +if("@preserve"in e)return e["@preserve"][0];if(o.isValue(e))return e;if(o.isList(e))return e["@list"]=m(e["@list"],t),e;if("@id"in e){const n=e["@id"];if(t.link.hasOwnProperty(n)){const r=t.link[n].indexOf(e);if(-1!==r)return t.link[n][r];t.link[n].push(e)}else t.link[n]=[e]}for(const n in e)"@id"===n&&t.bnodesToClear.includes(e[n])?delete e["@id"]:e[n]=m(e[n],t)}return e}function w(e,t,n){i.isObject(e)?a.addValue(e,t,n,{propertyIsArray:!0}):e.push(n)}function x(e,t,n,r){if(!("@id"in n))return!1;const o=e.subjects[n["@id"]];return o&&b(e,o,t,r)}function _(e,t){const n=t["@value"],r=t["@type"],o=t["@language"],a=e["@value"]?i.isArray(e["@value"])?e["@value"]:[e["@value"]]:[],s=e["@type"]?i.isArray(e["@type"])?e["@type"]:[e["@type"]]:[],l=e["@language"]?i.isArray(e["@language"])?e["@language"]:[e["@language"]]:[];return 0===a.length&&0===s.length&&0===l.length||!(!a.includes(n)&&!i.isEmptyObject(a[0]))&&(!!(!r&&0===s.length||s.includes(r)||r&&i.isEmptyObject(s[0]))&&!!(!o&&0===l.length||l.includes(o)||o&&i.isEmptyObject(l[0])))}e.exports=u,u.frameMergedOrDefault=(e,t,n)=>{const r={options:n,embedded:!1,graph:"@default",graphMap:{"@default":{}},subjectStack:[],link:{},bnodeMap:{}},o=new a.IdentifierIssuer("_:b");c(e,r.graphMap,"@default",o),n.merged&&(r.graphMap["@merged"]=d(r.graphMap),r.graph="@merged"),r.subjects=r.graphMap[r.graph];const i=[];return u.frame(r,Object.keys(r.subjects).sort(),t,i),n.pruneBlankNodeIdentifiers&&(n.bnodesToClear=Object.keys(r.bnodeMap).filter((e=>1===r.bnodeMap[e].length))), +// remove @preserve from results +n.link={},m(i,n)},u.frame=(e,t,n,s,c=null)=>{g(n),n=n[0];const d=e.options,b={embed:h(n,d,"embed"),explicit:h(n,d,"explicit"),requireAll:h(n,d,"requireAll")};e.link.hasOwnProperty(e.graph)||(e.link[e.graph]={});const m=e.link[e.graph],x=y(e,t,n,b),S=Object.keys(x).sort();for(const g of S){const y=x[g];if(null===c?e.uniqueEmbeds={[e.graph]:{}}:e.uniqueEmbeds[e.graph]=e.uniqueEmbeds[e.graph]||{},"@link"===b.embed&&g in m){w(s,c,m[g]);continue}const S={"@id":g};if(0===g.indexOf("_:")&&a.addValue(e.bnodeMap,g,S,{propertyIsArray:!0}),m[g]=S,("@first"===b.embed||"@last"===b.embed)&&e.is11)throw new l("Invalid JSON-LD syntax; invalid value of @embed.","jsonld.SyntaxError",{code:"invalid @embed value",frame:n});if(e.embedded||!e.uniqueEmbeds[e.graph].hasOwnProperty(g))if(!e.embedded||"@never"!==b.embed&&!p(y,e.graph,e.subjectStack))if(!e.embedded||"@first"!=b.embed&&"@once"!=b.embed||!e.uniqueEmbeds[e.graph].hasOwnProperty(g)){if("@last"===b.embed&&g in e.uniqueEmbeds[e.graph]&&v(e,g),e.uniqueEmbeds[e.graph][g]={parent:s,property:c},e.subjectStack.push({subject:y,graph:e.graph}),g in e.graphMap){let t=!1,r=null;"@graph"in n?(r=n["@graph"][0],t=!("@merged"===g||"@default"===g),i.isObject(r)||(r={})):(t="@merged"!==e.graph,r={}),t&&u.frame({...e,graph:g,embedded:!1},Object.keys(e.graphMap[g]).sort(),[r],S,"@graph")}"@included"in n&&u.frame({...e,embedded:!1},t,n["@included"],S,"@included");for(const t of Object.keys(y).sort())if(r(t)){if(S[t]=a.clone(y[t]),"@type"===t)for(const n of y["@type"])0===n.indexOf("_:")&&a.addValue(e.bnodeMap,n,S,{propertyIsArray:!0})}else if(!b.explicit||t in n)for(const r of y[t]){const i=t in n?n[t]:f(b);if(o.isList(r)){const i=n[t]&&n[t][0]&&n[t][0]["@list"]?n[t][0]["@list"]:f(b),s={"@list":[]};w(S,t,s);const l=r["@list"];for(const t of l)o.isSubjectReference(t)?u.frame({...e,embedded:!0},[t["@id"]],i,s,"@list"):w(s,"@list",a.clone(t))}else o.isSubjectReference(r)?u.frame({...e,embedded:!0},[r["@id"]],i,S,t):_(i[0],r)&&w(S,t,a.clone(r))}for(const e of Object.keys(n).sort()){if("@type"===e){if(!i.isObject(n[e][0])||!("@default"in n[e][0]))continue}else if(r(e))continue;const t=n[e][0]||{},o=h(t,d,"omitDefault");if(!o&&!(e in S)){let n="@null";"@default"in t&&(n=a.clone(t["@default"])),i.isArray(n)||(n=[n]),S[e]=[{"@preserve":n}]}}for(const t of Object.keys(n["@reverse"]||{}).sort()){const r=n["@reverse"][t];for(const n of Object.keys(e.subjects)){const o=a.getValues(e.subjects[n],t);o.some((e=>e["@id"]===g))&&(S["@reverse"]=S["@reverse"]||{},a.addValue(S["@reverse"],t,[],{propertyIsArray:!0}),u.frame({...e,embedded:!0},[n],r,S["@reverse"][t],c))}}w(s,c,S),e.subjectStack.pop()}else w(s,c,S);else w(s,c,S)}},u.cleanupNull=(e,t)=>{if(i.isArray(e)){const n=e.map((e=>u.cleanupNull(e,t)));return n.filter((e=>e))}if("@null"===e)return null;if(i.isObject(e)){if("@id"in e){const n=e["@id"];if(t.link.hasOwnProperty(n)){const r=t.link[n].indexOf(e);if(-1!==r)return t.link[n][r];t.link[n].push(e)}else t.link[n]=[e]}for(const n in e)e[n]=u.cleanupNull(e[n],t)}return e}},25076:function(e,t,n){"use strict";const r=n(54093),o=n(18463),i=n(30832),{REGEX_BCP47:a,addValue:s}=n(51055),{handleEvent:l}=n(91696),{RDF_LIST:c,RDF_FIRST:d,RDF_REST:u,RDF_NIL:f,RDF_TYPE:p,RDF_JSON_LITERAL:h,XSD_BOOLEAN:g,XSD_DOUBLE:y,XSD_INTEGER:b,XSD_STRING:v}=n(93770),m={};function w(e,t,n,o){if(e.termType.endsWith("Node"))return{"@id":e.value};const s={"@value":e.value};if(e.language)e.language.match(a)||o.eventHandler&&l({event:{type:["JsonLdEvent"],code:"invalid @language value",level:"warning",message:"@language value must be valid BCP47.",details:{language:e.language}},options:o}),s["@language"]=e.language;else{let d=e.datatype.value;if(d||(d=v),d===h){d="@json";try{s["@value"]=JSON.parse(s["@value"])}catch(c){throw new r("JSON literal could not be parsed.","jsonld.InvalidJsonLiteral",{code:"invalid JSON literal",value:s["@value"],cause:c})}}if(t){if(d===g)"true"===s["@value"]?s["@value"]=!0:"false"===s["@value"]&&(s["@value"]=!1);else if(i.isNumeric(s["@value"]))if(d===b){const e=parseInt(s["@value"],10);e.toFixed(0)===s["@value"]&&(s["@value"]=e)}else d===y&&(s["@value"]=parseFloat(s["@value"]));[g,b,y,v].includes(d)||(s["@type"]=d)}else if("i18n-datatype"===n&&d.startsWith("https://www.w3.org/ns/i18n#")){const[,e,t]=d.split(/[#_]/);e.length>0&&(s["@language"]=e,e.match(a)||o.eventHandler&&l({event:{type:["JsonLdEvent"],code:"invalid @language value",level:"warning",message:"@language value must be valid BCP47.",details:{language:e}},options:o})),s["@direction"]=t}else d!==v&&(s["@type"]=d)}return s}e.exports=m,m.fromRDF=async(e,t)=>{const{useRdfType:n=!1,useNativeTypes:a=!1,rdfDirection:l=null}=t,h={},g={"@default":h},y={};if(l){if("compound-literal"===l)throw new r("Unsupported rdfDirection value.","jsonld.InvalidRdfDirection",{value:l});if("i18n-datatype"!==l)throw new r("Unknown rdfDirection value.","jsonld.InvalidRdfDirection",{value:l})}for(const r of e){const e="DefaultGraph"===r.graph.termType?"@default":r.graph.value;e in g||(g[e]={}),"@default"===e||e in h||(h[e]={"@id":e});const o=g[e],i=r.subject.value,c=r.predicate.value,d=r.object;i in o||(o[i]={"@id":i});const u=o[i],b=d.termType.endsWith("Node");if(b&&!(d.value in o)&&(o[d.value]={"@id":d.value}),c===p&&!n&&b){s(u,"@type",d.value,{propertyIsArray:!0});continue}const v=w(d,a,l,t);if(s(u,c,v,{propertyIsArray:!0}),b)if(d.value===f){const e=o[d.value];"usages"in e||(e.usages=[]),e.usages.push({node:u,property:c,value:v})}else d.value in y?y[d.value]=!1:y[d.value]={node:u,property:c,value:v}}for(const r in g){const e=g[r];if(!(f in e))continue;const t=e[f];if(t.usages){for(let n of t.usages){let t=n.node,r=n.property,a=n.value;const s=[],l=[];let f=Object.keys(t).length;while(r===u&&i.isObject(y[t["@id"]])&&i.isArray(t[d])&&1===t[d].length&&i.isArray(t[u])&&1===t[u].length&&(3===f||4===f&&i.isArray(t["@type"])&&1===t["@type"].length&&t["@type"][0]===c))if(s.push(t[d][0]),l.push(t["@id"]),n=y[t["@id"]],t=n.node,r=n.property,a=n.value,f=Object.keys(t).length,!o.isBlankNode(t))break;delete a["@id"],a["@list"]=s.reverse();for(const n of l)delete e[n]}delete t.usages}}const b=[],v=Object.keys(h).sort();for(const r of v){const e=h[r];if(r in g){const t=e["@graph"]=[],n=g[r],i=Object.keys(n).sort();for(const e of i){const r=n[e];o.isSubjectReference(r)||t.push(r)}}o.isSubjectReference(e)||b.push(e)}return b}},18463:function(e,t,n){"use strict";const r=n(30832),o={};e.exports=o,o.isSubject=e=>{if(r.isObject(e)&&!("@value"in e||"@set"in e||"@list"in e)){const t=Object.keys(e).length;return t>1||!("@id"in e)}return!1},o.isSubjectReference=e=>r.isObject(e)&&1===Object.keys(e).length&&"@id"in e,o.isValue=e=>r.isObject(e)&&"@value"in e,o.isList=e=>r.isObject(e)&&"@list"in e,o.isGraph=e=>r.isObject(e)&&"@graph"in e&&1===Object.keys(e).filter((e=>"@id"!==e&&"@index"!==e)).length,o.isSimpleGraph=e=>o.isGraph(e)&&!("@id"in e),o.isBlankNode=e=>{if(r.isObject(e)){if("@id"in e){const t=e["@id"];return!r.isString(t)||0===t.indexOf("_:")}return 0===Object.keys(e).length||!("@value"in e||"@set"in e||"@list"in e)}return!1}},36805:function(e,t,n){ +/** + * A JavaScript implementation of the JSON-LD API. + * + * @author Dave Longley + * + * @license BSD 3-Clause License + * Copyright (c) 2011-2022 Digital Bazaar, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * Neither the name of the Digital Bazaar, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +const r=n(47055),o=n(67222),i=n(51055),a=n(68058),s=i.IdentifierIssuer,l=n(54093),c=n(80421),d=n(69048),{expand:u}=n(62759),{flatten:f}=n(41565),{fromRDF:p}=n(25076),{toRDF:h}=n(19382),{frameMergedOrDefault:g,cleanupNull:y}=n(63859),{isArray:b,isObject:v,isString:m}=n(30832),{isSubjectReference:w}=n(18463),{expandIri:x,getInitialContext:_,process:S,processingMode:E}=n(54131),{compact:I,compactIri:j}=n(83251),{createNodeMap:R,createMergedNodeMap:A,mergeNodeMaps:N}=n(32664),{logEventHandler:k,logWarningEventHandler:D,safeEventHandler:O,setDefaultEventHandler:T,setupEventHandler:L,strictEventHandler:C,unhandledEventHandler:M}=n(91696),P=function(e){const t={},P=100,F=new c({max:P});function W(t,{documentLoader:n=e.documentLoader,...r}){if(t&&"compactionMap"in t)throw new l('"compactionMap" not supported.',"jsonld.OptionsError");if(t&&"expansionMap"in t)throw new l('"expansionMap" not supported.',"jsonld.OptionsError");return Object.assign({},{documentLoader:n},r,t,{eventHandler:L({options:t})})}return e.compact=async function(t,n,r){if(arguments.length<2)throw new TypeError("Could not compact, too few arguments.");if(null===n)throw new l("The compaction context must not be null.","jsonld.CompactError",{code:"invalid local context"});if(null===t)return null;let o;r=W(r,{base:m(t)?t:"",compactArrays:!0,compactToRelative:!0,graph:!1,skipExpansion:!1,link:!1,issuer:new s("_:b"),contextResolver:new a({sharedCache:F})}),r.link&&(r.skipExpansion=!0),r.compactToRelative||delete r.base,o=r.skipExpansion?t:await e.expand(t,r);const c=await e.processContext(_(r),n,r);let d=await I({activeCtx:c,element:o,options:r});r.compactArrays&&!r.graph&&b(d)?1===d.length?d=d[0]:0===d.length&&(d={}):r.graph&&v(d)&&(d=[d]),v(n)&&"@context"in n&&(n=n["@context"]),n=i.clone(n),b(n)||(n=[n]);const u=n;n=[];for(let e=0;e0)&&n.push(u[e]);const f=n.length>0;if(1===n.length&&(n=n[0]),b(d)){const e=j({activeCtx:c,iri:"@graph",relativeTo:{vocab:!0}}),t=d;d={},f&&(d["@context"]=n),d[e]=t}else if(v(d)&&f){const e=d;d={"@context":n};for(const t in e)d[t]=e[t]}return d},e.expand=async function(t,n){if(arguments.length<1)throw new TypeError("Could not expand, too few arguments.");n=W(n,{keepFreeFloatingNodes:!1,contextResolver:new a({sharedCache:F})});const r={},o=[];if("expandContext"in n){const e=i.clone(n.expandContext);v(e)&&"@context"in e?r.expandContext=e:r.expandContext={"@context":e},o.push(r.expandContext)}let s;if(m(t)){const i=await e.get(t,n);s=i.documentUrl,r.input=i.document,i.contextUrl&&(r.remoteContext={"@context":i.contextUrl},o.push(r.remoteContext))}else r.input=i.clone(t);"base"in n||(n.base=s||"");let l=_(n);for(const e of o)l=await S({activeCtx:l,localCtx:e,options:n});let c=await u({activeCtx:l,element:r.input,options:n});return v(c)&&"@graph"in c&&1===Object.keys(c).length?c=c["@graph"]:null===c&&(c=[]),b(c)||(c=[c]),c},e.flatten=async function(t,n,r){if(arguments.length<1)return new TypeError("Could not flatten, too few arguments.");n="function"===typeof n?null:n||null,r=W(r,{base:m(t)?t:"",contextResolver:new a({sharedCache:F})});const o=await e.expand(t,r),i=f(o);if(null===n)return i;r.graph=!0,r.skipExpansion=!0;const s=await e.compact(i,n,r);return s},e.frame=async function(t,n,r){if(arguments.length<2)throw new TypeError("Could not frame, too few arguments.");if(r=W(r,{base:m(t)?t:"",embed:"@once",explicit:!1,requireAll:!1,omitDefault:!1,bnodesToClear:[],contextResolver:new a({sharedCache:F})}),m(n)){const t=await e.get(n,r);if(n=t.document,t.contextUrl){let e=n["@context"];e?b(e)?e.push(t.contextUrl):e=[e,t.contextUrl]:e=t.contextUrl,n["@context"]=e}}const o=n&&n["@context"]||{},i=await e.processContext(_(r),o,r);r.hasOwnProperty("omitGraph")||(r.omitGraph=E(i,1.1)),r.hasOwnProperty("pruneBlankNodeIdentifiers")||(r.pruneBlankNodeIdentifiers=E(i,1.1));const s=await e.expand(t,r),l={...r};l.isFrame=!0,l.keepFreeFloatingNodes=!0;const c=await e.expand(n,l),d=Object.keys(n).map((e=>x(i,e,{vocab:!0})));l.merged=!d.includes("@graph"),l.is11=E(i,1.1);const u=g(s,c,l);l.graph=!r.omitGraph,l.skipExpansion=!0,l.link={},l.framing=!0;let f=await e.compact(u,o,l);return l.link={},f=y(f,l),f},e.link=async function(t,n,r){const o={};return n&&(o["@context"]=n),o["@embed"]="@link",e.frame(t,o,r)},e.normalize=e.canonize=async function(t,n){if(arguments.length<1)throw new TypeError("Could not canonize, too few arguments.");if(n=W(n,{base:m(t)?t:null,algorithm:"URDNA2015",skipExpansion:!1,safe:!0,contextResolver:new a({sharedCache:F})}),"inputFormat"in n){if("application/n-quads"!==n.inputFormat&&"application/nquads"!==n.inputFormat)throw new l("Unknown canonicalization input format.","jsonld.CanonizeError");const e=d.parse(t);return r.canonize(e,n)}const o={...n};delete o.format,o.produceGeneralizedRdf=!1;const i=await e.toRDF(t,o);return r.canonize(i,n)},e.fromRDF=async function(e,n){if(arguments.length<1)throw new TypeError("Could not convert from RDF, too few arguments.");n=W(n,{format:m(e)?"application/n-quads":void 0});const{format:r}=n;let{rdfParser:o}=n;if(r){if(o=o||t[r],!o)throw new l("Unknown input format.","jsonld.UnknownFormat",{format:r})}else o=()=>e;const i=await o(e);return p(i,n)},e.toRDF=async function(t,n){if(arguments.length<1)throw new TypeError("Could not convert to RDF, too few arguments.");let r;n=W(n,{base:m(t)?t:"",skipExpansion:!1,contextResolver:new a({sharedCache:F})}),r=n.skipExpansion?t:await e.expand(t,n);const o=h(r,n);if(n.format){if("application/n-quads"===n.format||"application/nquads"===n.format)return d.serialize(o);throw new l("Unknown output format.","jsonld.UnknownFormat",{format:n.format})}return o},e.createNodeMap=async function(t,n){if(arguments.length<1)throw new TypeError("Could not create node map, too few arguments.");n=W(n,{base:m(t)?t:"",contextResolver:new a({sharedCache:F})});const r=await e.expand(t,n);return A(r,n)},e.merge=async function(t,n,r){if(arguments.length<1)throw new TypeError("Could not merge, too few arguments.");if(!b(t))throw new TypeError('Could not merge, "docs" must be an array.');n="function"===typeof n?null:n||null,r=W(r,{contextResolver:new a({sharedCache:F})});const o=await Promise.all(t.map((t=>{const n={...r};return e.expand(t,n)})));let l=!0;"mergeNodes"in r&&(l=r.mergeNodes);const c=r.issuer||new s("_:b"),d={"@default":{}};for(let e=0;ee._documentLoader,set:t=>e._documentLoader=t}),e.documentLoader=async e=>{throw new l("Could not retrieve a JSON-LD document from the URL. URL dereferencing not implemented.","jsonld.LoadDocumentError",{code:"loading document failed",url:e})},e.get=async function(t,n){let r;r="function"===typeof n.documentLoader?n.documentLoader:e.documentLoader;const o=await r(t);try{if(!o.document)throw new l("No remote document found at the given URL.","jsonld.NullRemoteDocument");m(o.document)&&(o.document=JSON.parse(o.document))}catch(i){throw new l("Could not retrieve a JSON-LD document from the URL.","jsonld.LoadDocumentError",{code:"loading document failed",cause:i,remoteDoc:o})}return o},e.processContext=async function(e,t,n){return n=W(n,{base:"",contextResolver:new a({sharedCache:F})}),null===t?_(n):(t=i.clone(t),v(t)&&"@context"in t||(t={"@context":t}),S({activeCtx:e,localCtx:t,options:n}))},e.getContextValue=n(54131).getContextValue,e.documentLoaders={},e.useDocumentLoader=function(t){if(!(t in e.documentLoaders))throw new l('Unknown document loader type: "'+t+'"',"jsonld.UnknownDocumentLoader",{type:t});e.documentLoader=e.documentLoaders[t].apply(e,Array.prototype.slice.call(arguments,1))},e.registerRDFParser=function(e,n){t[e]=n},e.unregisterRDFParser=function(e){delete t[e]},e.registerRDFParser("application/n-quads",d.parse),e.registerRDFParser("application/nquads",d.parse),e.url=n(82278),e.logEventHandler=k,e.logWarningEventHandler=D,e.safeEventHandler=O,e.setDefaultEventHandler=T,e.strictEventHandler=C,e.unhandledEventHandler=M,e.util=i,Object.assign(e,i),e.promises=e,e.RequestQueue=n(40533),e.JsonLdProcessor=n(60731)(e),o.setupGlobals(e),o.setupDocumentLoaders(e),e},F=function(){return P((function(){return F()}))};P(F),e.exports=F},32664:function(e,t,n){"use strict";const{isKeyword:r}=n(54131),o=n(18463),i=n(30832),a=n(51055),s=n(54093),l={};e.exports=l,l.createMergedNodeMap=(e,t)=>{t=t||{};const n=t.issuer||new a.IdentifierIssuer("_:b"),r={"@default":{}};return l.createNodeMap(e,r,"@default",n),l.mergeNodeMaps(r)},l.createNodeMap=(e,t,n,c,d,u)=>{if(i.isArray(e)){for(const r of e)l.createNodeMap(r,t,n,c,void 0,u);return}if(!i.isObject(e))return void(u&&u.push(e));if(o.isValue(e)){if("@type"in e){let t=e["@type"];0===t.indexOf("_:")&&(e["@type"]=t=c.getId(t))}return void(u&&u.push(e))}if(u&&o.isList(e)){const r=[];return l.createNodeMap(e["@list"],t,n,c,d,r),void u.push({"@list":r})}if("@type"in e){const t=e["@type"];for(const e of t)0===e.indexOf("_:")&&c.getId(e)}i.isUndefined(d)&&(d=o.isBlankNode(e)?c.getId(e["@id"]):e["@id"]),u&&u.push({"@id":d});const f=t[n],p=f[d]=f[d]||{};p["@id"]=d;const h=Object.keys(e).sort();for(let i of h){if("@id"===i)continue;if("@reverse"===i){const r={"@id":d},i=e["@reverse"];for(const e in i){const s=i[e];for(const i of s){let s=i["@id"];o.isBlankNode(i)&&(s=c.getId(s)),l.createNodeMap(i,t,n,c,s),a.addValue(f[s],e,r,{propertyIsArray:!0,allowDuplicate:!1})}}continue}if("@graph"===i){d in t||(t[d]={}),l.createNodeMap(e[i],t,d,c);continue}if("@included"===i){l.createNodeMap(e[i],t,n,c);continue}if("@type"!==i&&r(i)){if("@index"===i&&i in p&&(e[i]!==p[i]||e[i]["@id"]!==p[i]["@id"]))throw new s("Invalid JSON-LD syntax; conflicting @index property detected.","jsonld.SyntaxError",{code:"conflicting indexes",subject:p});p[i]=e[i];continue}const u=e[i];if(0===i.indexOf("_:")&&(i=c.getId(i)),0!==u.length)for(let e of u)if("@type"===i&&(e=0===e.indexOf("_:")?c.getId(e):e),o.isSubject(e)||o.isSubjectReference(e)){if("@id"in e&&!e["@id"])continue;const r=o.isBlankNode(e)?c.getId(e["@id"]):e["@id"];a.addValue(p,i,{"@id":r},{propertyIsArray:!0,allowDuplicate:!1}),l.createNodeMap(e,t,n,c,r)}else if(o.isValue(e))a.addValue(p,i,e,{propertyIsArray:!0,allowDuplicate:!1});else if(o.isList(e)){const r=[];l.createNodeMap(e["@list"],t,n,c,d,r),e={"@list":r},a.addValue(p,i,e,{propertyIsArray:!0,allowDuplicate:!1})}else l.createNodeMap(e,t,n,c,d),a.addValue(p,i,e,{propertyIsArray:!0,allowDuplicate:!1});else a.addValue(p,i,[],{propertyIsArray:!0})}},l.mergeNodeMapGraphs=e=>{const t={};for(const n of Object.keys(e).sort())for(const o of Object.keys(e[n]).sort()){const i=e[n][o];o in t||(t[o]={"@id":o});const s=t[o];for(const e of Object.keys(i).sort())if(r(e)&&"@type"!==e)s[e]=a.clone(i[e]);else for(const t of i[e])a.addValue(s,e,a.clone(t),{propertyIsArray:!0,allowDuplicate:!1})}return t},l.mergeNodeMaps=e=>{const t=e["@default"],n=Object.keys(e).sort();for(const r of n){if("@default"===r)continue;const n=e[r];let i=t[r];i?"@graph"in i||(i["@graph"]=[]):t[r]=i={"@id":r,"@graph":[]};const a=i["@graph"];for(const e of Object.keys(n).sort()){const t=n[e];o.isSubjectReference(t)||a.push(t)}}return t}},67222:function(e,t,n){"use strict";const r=n(8831),o={};e.exports=o,o.setupDocumentLoaders=function(e){"undefined"!==typeof XMLHttpRequest&&(e.documentLoaders.xhr=r,e.useDocumentLoader("xhr"))},o.setupGlobals=function(e){"undefined"===typeof globalThis.JsonLdProcessor&&Object.defineProperty(globalThis,"JsonLdProcessor",{writable:!0,enumerable:!1,configurable:!0,value:e.JsonLdProcessor})}},19382:function(e,t,n){"use strict";const{createNodeMap:r}=n(32664),{isKeyword:o}=n(54131),i=n(18463),a=n(95456),s=n(54093),l=n(30832),c=n(51055),{handleEvent:d}=n(91696),{RDF_FIRST:u,RDF_REST:f,RDF_NIL:p,RDF_TYPE:h,RDF_JSON_LITERAL:g,RDF_LANGSTRING:y,XSD_BOOLEAN:b,XSD_DOUBLE:v,XSD_INTEGER:m,XSD_STRING:w}=n(93770),{isAbsolute:x}=n(82278),_={};function S(e,t,n,r,i){const a=Object.keys(t).sort();for(const s of a){const a=t[s],l=Object.keys(a).sort();for(let t of l){const l=a[t];if("@type"===t)t=h;else if(o(t))continue;for(const o of l){const a={termType:s.startsWith("_:")?"BlankNode":"NamedNode",value:s};if(!x(s)){i.eventHandler&&d({event:{type:["JsonLdEvent"],code:"relative subject reference",level:"warning",message:"Relative subject reference found.",details:{subject:s}},options:i});continue}const l={termType:t.startsWith("_:")?"BlankNode":"NamedNode",value:t};if(!x(t)){i.eventHandler&&d({event:{type:["JsonLdEvent"],code:"relative predicate reference",level:"warning",message:"Relative predicate reference found.",details:{predicate:t}},options:i});continue}if("BlankNode"===l.termType&&!i.produceGeneralizedRdf){i.eventHandler&&d({event:{type:["JsonLdEvent"],code:"blank node predicate",level:"warning",message:"Dropping blank node predicate.",details:{property:r.getOldIds().find((e=>r.getId(e)===t))}},options:i});continue}const c=I(o,r,e,n,i.rdfDirection,i);c&&e.push({subject:a,predicate:l,object:c,graph:n})}}}}function E(e,t,n,r,o,i){const a={termType:"NamedNode",value:u},s={termType:"NamedNode",value:f},l={termType:"NamedNode",value:p},c=e.pop(),d=c?{termType:"BlankNode",value:t.getId()}:l;let h=d;for(const u of e){const e=I(u,t,n,r,o,i),l={termType:"BlankNode",value:t.getId()};n.push({subject:h,predicate:a,object:e,graph:r}),n.push({subject:h,predicate:s,object:l,graph:r}),h=l}if(c){const e=I(c,t,n,r,o,i);n.push({subject:h,predicate:a,object:e,graph:r}),n.push({subject:h,predicate:s,object:l,graph:r})}return d}function I(e,t,n,r,o,c){const u={};if(i.isValue(e)){u.termType="Literal",u.value=void 0,u.datatype={termType:"NamedNode"};let t=e["@value"];const n=e["@type"]||null;if("@json"===n)u.value=a(t),u.datatype.value=g;else if(l.isBoolean(t))u.value=t.toString(),u.datatype.value=n||b;else if(l.isDouble(t)||n===v)l.isDouble(t)||(t=parseFloat(t)),u.value=t.toExponential(15).replace(/(\d)0*e\+?/,"$1E"),u.datatype.value=n||v;else if(l.isNumber(t))u.value=t.toFixed(0),u.datatype.value=n||m;else if("@direction"in e&&"i18n-datatype"===o){const n=(e["@language"]||"").toLowerCase(),r=e["@direction"],o=`https://www.w3.org/ns/i18n#${n}_${r}`;u.datatype.value=o,u.value=t}else{if("@direction"in e&&"compound-literal"===o)throw new s("Unsupported rdfDirection value.","jsonld.InvalidRdfDirection",{value:o});if("@direction"in e&&o)throw new s("Unknown rdfDirection value.","jsonld.InvalidRdfDirection",{value:o});"@language"in e?("@direction"in e&&!o&&c.eventHandler&&d({event:{type:["JsonLdEvent"],code:"rdfDirection not set",level:"warning",message:"rdfDirection not set for @direction.",details:{object:u.value}},options:c}),u.value=t,u.datatype.value=n||y,u.language=e["@language"]):("@direction"in e&&!o&&c.eventHandler&&d({event:{type:["JsonLdEvent"],code:"rdfDirection not set",level:"warning",message:"rdfDirection not set for @direction.",details:{object:u.value}},options:c}),u.value=t,u.datatype.value=n||w)}}else if(i.isList(e)){const i=E(e["@list"],t,n,r,o,c);u.termType=i.termType,u.value=i.value}else{const t=l.isObject(e)?e["@id"]:e;u.termType=t.startsWith("_:")?"BlankNode":"NamedNode",u.value=t}return"NamedNode"!==u.termType||x(u.value)?u:(c.eventHandler&&d({event:{type:["JsonLdEvent"],code:"relative object reference",level:"warning",message:"Relative object reference found.",details:{object:u.value}},options:c}),null)}e.exports=_,_.toRDF=(e,t)=>{const n=new c.IdentifierIssuer("_:b"),o={"@default":{}};r(e,o,"@default",n);const i=[],a=Object.keys(o).sort();for(const r of a){let e;if("@default"===r)e={termType:"DefaultGraph",value:""};else{if(!x(r)){t.eventHandler&&d({event:{type:["JsonLdEvent"],code:"relative graph reference",level:"warning",message:"Relative graph reference found.",details:{graph:r}},options:t});continue}e=r.startsWith("_:")?{termType:"BlankNode"}:{termType:"NamedNode"},e.value=r}S(i,o[r],e,n,t)}return i}},30832:function(e){"use strict";const t={};e.exports=t,t.isArray=Array.isArray,t.isBoolean=e=>"boolean"===typeof e||"[object Boolean]"===Object.prototype.toString.call(e),t.isDouble=e=>t.isNumber(e)&&(-1!==String(e).indexOf(".")||Math.abs(e)>=1e21),t.isEmptyObject=e=>t.isObject(e)&&0===Object.keys(e).length,t.isNumber=e=>"number"===typeof e||"[object Number]"===Object.prototype.toString.call(e),t.isNumeric=e=>!isNaN(parseFloat(e))&&isFinite(e),t.isObject=e=>"[object Object]"===Object.prototype.toString.call(e),t.isString=e=>"string"===typeof e||"[object String]"===Object.prototype.toString.call(e),t.isUndefined=e=>"undefined"===typeof e},82278:function(e,t,n){"use strict";const r=n(30832),o={};e.exports=o,o.parsers={simple:{keys:["href","scheme","authority","path","query","fragment"],regex:/^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/},full:{keys:["href","protocol","scheme","authority","auth","user","password","hostname","port","path","directory","file","query","fragment"],regex:/^(([a-zA-Z][a-zA-Z0-9+-.]*):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?(?:(((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/}},o.parse=(e,t)=>{const n={},r=o.parsers[t||"full"],i=r.regex.exec(e);let a=r.keys.length;while(a--)n[r.keys[a]]=void 0===i[a]?null:i[a];return("https"===n.scheme&&"443"===n.port||"http"===n.scheme&&"80"===n.port)&&(n.href=n.href.replace(":"+n.port,""),n.authority=n.authority.replace(":"+n.port,""),n.port=null),n.normalizedPath=o.removeDotSegments(n.path),n},o.prependBase=(e,t)=>{if(null===e)return t;if(o.isAbsolute(t))return t;e&&!r.isString(e)||(e=o.parse(e||""));const n=o.parse(t),i={protocol:e.protocol||""};if(null!==n.authority)i.authority=n.authority,i.path=n.path,i.query=n.query;else if(i.authority=e.authority,""===n.path)i.path=e.path,null!==n.query?i.query=n.query:i.query=e.query;else{if(0===n.path.indexOf("/"))i.path=n.path;else{let t=e.path;t=t.substr(0,t.lastIndexOf("/")+1),(t.length>0||e.authority)&&"/"!==t.substr(-1)&&(t+="/"),t+=n.path,i.path=t}i.query=n.query}""!==n.path&&(i.path=o.removeDotSegments(i.path));let a=i.protocol;return null!==i.authority&&(a+="//"+i.authority),a+=i.path,null!==i.query&&(a+="?"+i.query),null!==n.fragment&&(a+="#"+n.fragment),""===a&&(a="./"),a},o.removeBase=(e,t)=>{if(null===e)return t;e&&!r.isString(e)||(e=o.parse(e||""));let n="";if(""!==e.href?n+=(e.protocol||"")+"//"+(e.authority||""):t.indexOf("//")&&(n+="//"),0!==t.indexOf(n))return t;const i=o.parse(t.substr(n.length)),a=e.normalizedPath.split("/"),s=i.normalizedPath.split("/"),l=i.fragment||i.query?0:1;while(a.length>0&&s.length>l){if(a[0]!==s[0])break;a.shift(),s.shift()}let c="";if(a.length>0){a.pop();for(let e=0;e{if(0===e.length)return"";const t=e.split("/"),n=[];while(t.length>0){const e=t.shift(),r=0===t.length;"."!==e?".."!==e?n.push(e):(n.pop(),r&&n.push("")):r&&n.push("")}return"/"===e[0]&&n.length>0&&""!==n[0]&&n.unshift(""),1===n.length&&""===n[0]?"/":n.join("/")};const i=/^([A-Za-z][A-Za-z0-9+-.]*|_):[^\s]*$/;o.isAbsolute=e=>r.isString(e)&&i.test(e),o.isRelative=e=>r.isString(e)},51055:function(e,t,n){"use strict";const r=n(18463),o=n(30832),i=n(47055).IdentifierIssuer,a=n(54093),s=/^[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$/,l=/(?:<[^>]*?>|"[^"]*?"|[^,])+/g,c=/\s*<([^>]*?)>\s*(?:;\s*(.*))?/,d=/(.*?)=(?:(?:"([^"]*?)")|([^"]*?))\s*(?:(?:;\s*)|$)/g,u=/^@[a-zA-Z]+$/,f={headers:{accept:"application/ld+json, application/json"}},p={};function h(e,t){if(o.isArray(t))for(let n=0;n{const t=Object.keys(e).some((e=>"accept"===e.toLowerCase()));if(t)throw new RangeError('Accept header may not be specified; only "'+f.headers.accept+'" is supported.');return Object.assign({Accept:f.headers.accept},e)},p.parseLinkHeader=e=>{const t={},n=e.match(l);for(let r=0;r{if(!o.isString(e)&&(!o.isArray(e)||!e.every((e=>o.isString(e))))){if(t&&o.isObject(e))switch(Object.keys(e).length){case 0:return;case 1:if("@default"in e&&p.asArray(e["@default"]).every((e=>o.isString(e))))return}throw new a('Invalid JSON-LD syntax; "@type" value must a string, an array of strings, an empty object, or a default object.',"jsonld.SyntaxError",{code:"invalid type value",value:e})}},p.hasProperty=(e,t)=>{if(e.hasOwnProperty(t)){const n=e[t];return!o.isArray(n)||n.length>0}return!1},p.hasValue=(e,t,n)=>{if(p.hasProperty(e,t)){let i=e[t];const a=r.isList(i);if(o.isArray(i)||a){a&&(i=i["@list"]);for(let e=0;e{if(r=r||{},"propertyIsArray"in r||(r.propertyIsArray=!1),"valueIsArray"in r||(r.valueIsArray=!1),"allowDuplicate"in r||(r.allowDuplicate=!0),"prependValue"in r||(r.prependValue=!1),r.valueIsArray)e[t]=n;else if(o.isArray(n)){0===n.length&&r.propertyIsArray&&!e.hasOwnProperty(t)&&(e[t]=[]),r.prependValue&&(n=n.concat(e[t]),e[t]=[]);for(let o=0;o[].concat(e[t]||[]),p.removeProperty=(e,t)=>{delete e[t]},p.removeValue=(e,t,n,r)=>{r=r||{},"propertyIsArray"in r||(r.propertyIsArray=!1);const o=p.getValues(e,t).filter((e=>!p.compareValues(e,n)));0===o.length?p.removeProperty(e,t):1!==o.length||r.propertyIsArray?e[t]=o:e[t]=o[0]},p.relabelBlankNodes=(e,t)=>{t=t||{};const n=t.issuer||new i("_:b");return h(n,e)},p.compareValues=(e,t)=>e===t||(!(!r.isValue(e)||!r.isValue(t)||e["@value"]!==t["@value"]||e["@type"]!==t["@type"]||e["@language"]!==t["@language"]||e["@index"]!==t["@index"])||!!(o.isObject(e)&&"@id"in e&&o.isObject(t)&&"@id"in t)&&e["@id"]===t["@id"]),p.compareShortestLeast=(e,t)=>e.length1;class g{constructor(e){if("number"===typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!==typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[o]=e.max||1/0;const t=e.length||h;if(this[a]="function"!==typeof t?h:t,this[s]=e.stale||!1,e.maxAge&&"number"!==typeof e.maxAge)throw new TypeError("maxAge must be a number");this[l]=e.maxAge||0,this[c]=e.dispose,this[d]=e.noDisposeOnSet||!1,this[p]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!==typeof e||e<0)throw new TypeError("max must be a non-negative number");this[o]=e||1/0,v(this)}get max(){return this[o]}set allowStale(e){this[s]=!!e}get allowStale(){return this[s]}set maxAge(e){if("number"!==typeof e)throw new TypeError("maxAge must be a non-negative number");this[l]=e,v(this)}get maxAge(){return this[l]}set lengthCalculator(e){"function"!==typeof e&&(e=h),e!==this[a]&&(this[a]=e,this[i]=0,this[u].forEach((e=>{e.length=this[a](e.value,e.key),this[i]+=e.length}))),v(this)}get lengthCalculator(){return this[a]}get length(){return this[i]}get itemCount(){return this[u].length}rforEach(e,t){t=t||this;for(let n=this[u].tail;null!==n;){const r=n.prev;x(this,e,n,t),n=r}}forEach(e,t){t=t||this;for(let n=this[u].head;null!==n;){const r=n.next;x(this,e,n,t),n=r}}keys(){return this[u].toArray().map((e=>e.key))}values(){return this[u].toArray().map((e=>e.value))}reset(){this[c]&&this[u]&&this[u].length&&this[u].forEach((e=>this[c](e.key,e.value))),this[f]=new Map,this[u]=new r,this[i]=0}dump(){return this[u].map((e=>!b(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[u]}set(e,t,n){if(n=n||this[l],n&&"number"!==typeof n)throw new TypeError("maxAge must be a number");const r=n?Date.now():0,s=this[a](t,e);if(this[f].has(e)){if(s>this[o])return m(this,this[f].get(e)),!1;const a=this[f].get(e),l=a.value;return this[c]&&(this[d]||this[c](e,l.value)),l.now=r,l.maxAge=n,l.value=t,this[i]+=s-l.length,l.length=s,this.get(e),v(this),!0}const p=new w(e,t,s,r,n);return p.length>this[o]?(this[c]&&this[c](e,t),!1):(this[i]+=p.length,this[u].unshift(p),this[f].set(e,this[u].head),v(this),!0)}has(e){if(!this[f].has(e))return!1;const t=this[f].get(e).value;return!b(this,t)}get(e){return y(this,e,!0)}peek(e){return y(this,e,!1)}pop(){const e=this[u].tail;return e?(m(this,e),e.value):null}del(e){m(this,this[f].get(e))}load(e){this.reset();const t=Date.now();for(let n=e.length-1;n>=0;n--){const r=e[n],o=r.e||0;if(0===o)this.set(r.k,r.v);else{const e=o-t;e>0&&this.set(r.k,r.v,e)}}}prune(){this[f].forEach(((e,t)=>y(this,t,!1)))}}const y=(e,t,n)=>{const r=e[f].get(t);if(r){const t=r.value;if(b(e,t)){if(m(e,r),!e[s])return}else n&&(e[p]&&(r.value.now=Date.now()),e[u].unshiftNode(r));return t.value}},b=(e,t)=>{if(!t||!t.maxAge&&!e[l])return!1;const n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[l]&&n>e[l]},v=e=>{if(e[i]>e[o])for(let t=e[u].tail;e[i]>e[o]&&null!==t;){const n=t.prev;m(e,t),t=n}},m=(e,t)=>{if(t){const n=t.value;e[c]&&e[c](n.key,n.value),e[i]-=n.length,e[f].delete(n.key),e[u].removeNode(t)}};class w{constructor(e,t,n,r,o){this.key=e,this.value=t,this.length=n,this.now=r,this.maxAge=o||0}}const x=(e,t,n,r)=>{let o=n.value;b(e,o)&&(m(e,n),e[s]||(o=void 0)),o&&t.call(r,o.value,o.key,e)};e.exports=g},36890:function(e){"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},48701:function(e,t,n){"use strict";function r(e){var t=this;if(t instanceof r||(t=new r),t.tail=null,t.head=null,t.length=0,e&&"function"===typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,o=arguments.length;n1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");r=this.head.next,n=this.head.value}for(var o=0;null!==r;o++)n=e(n,r.value,o),r=r.next;return n},r.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");r=this.tail.prev,n=this.tail.value}for(var o=this.length-1;null!==r;o--)n=e(n,r.value,o),r=r.prev;return n},r.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},r.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},r.prototype.slice=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var n=new r;if(tthis.length&&(t=this.length);for(var o=0,i=this.head;null!==i&&othis.length&&(t=this.length);for(var o=this.length,i=this.tail;null!==i&&o>t;o--)i=i.prev;for(;null!==i&&o>e;o--,i=i.prev)n.push(i.value);return n},r.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var r=0,i=this.head;null!==i&&r{const e="(?:<([^:]+:[^>]*)>)",t="A-Za-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�",n=t+"_",r=n+"0-9-·̀-ͯ‿-⁀",o="(_:(?:["+n+"0-9])(?:(?:["+r+".])*(?:["+r+"]))?)",i=o,a='"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"',s="(?:\\^\\^"+e+")",c="(?:@([a-zA-Z]+(?:-[a-zA-Z0-9]+)*))",d="(?:"+a+"(?:"+s+"|"+c+")?)",u="[ \\t]+",f="[ \\t]*",p="(?:"+e+"|"+i+")"+u,h=e+u,g="(?:"+e+"|"+i+"|"+d+")"+f,y="(?:\\.|(?:(?:"+e+"|"+i+")"+f+"\\.))";l.eoln=/(?:\r\n)|(?:\n)|(?:\r)/g,l.empty=new RegExp("^"+f+"$"),l.quad=new RegExp("^"+f+p+h+g+y+f+"$")})(),e.exports=class e{static parse(e){const t=[],d={},u=e.split(l.eoln);let f=0;for(const h of u){if(f++,l.empty.test(h))continue;const e=h.match(l.quad);if(null===e)throw new Error("N-Quads parse error on line "+f+".");const u={subject:null,predicate:null,object:null,graph:null};if(void 0!==e[1]?u.subject={termType:o,value:e[1]}:u.subject={termType:i,value:e[2]},u.predicate={termType:o,value:e[3]},void 0!==e[4]?u.object={termType:o,value:e[4]}:void 0!==e[5]?u.object={termType:i,value:e[5]}:(u.object={termType:a,value:void 0,datatype:{termType:o}},void 0!==e[7]?u.object.datatype.value=e[7]:void 0!==e[8]?(u.object.datatype.value=n,u.object.language=e[8]):u.object.datatype.value=r,u.object.value=p(e[6])),void 0!==e[9]?u.graph={termType:o,value:e[9]}:void 0!==e[10]?u.graph={termType:i,value:e[10]}:u.graph={termType:s,value:""},u.graph.value in d){let e=!0;const n=d[u.graph.value];for(const t of n)if(c(t,u)){e=!1;break}e&&(n.push(u),t.push(u))}else d[u.graph.value]=[u],t.push(u)}return t}static serialize(t){Array.isArray(t)||(t=e.legacyDatasetToQuads(t));const n=[];for(const r of t)n.push(e.serializeQuad(r));return n.sort().join("")}static serializeQuadComponents(e,t,a,s){let l="";return e.termType===o?l+=`<${e.value}>`:l+=`${e.value}`,l+=` <${t.value}> `,a.termType===o?l+=`<${a.value}>`:a.termType===i?l+=a.value:(l+=`"${u(a.value)}"`,a.datatype.value===n?a.language&&(l+=`@${a.language}`):a.datatype.value!==r&&(l+=`^^<${a.datatype.value}>`)),s.termType===o?l+=` <${s.value}>`:s.termType===i&&(l+=` ${s.value}`),l+=" .\n",l}static serializeQuad(t){return e.serializeQuadComponents(t.subject,t.predicate,t.object,t.graph)}static legacyDatasetToQuads(e){const t=[],l={"blank node":i,IRI:o,literal:a};for(const c in e){const d=e[c];d.forEach((e=>{const d={};for(const t in e){const i=e[t],s={termType:l[i.type],value:i.value};s.termType===a&&(s.datatype={termType:o},"datatype"in i&&(s.datatype.value=i.datatype),"language"in i?("datatype"in i||(s.datatype.value=n),s.language=i.language):"datatype"in i||(s.datatype.value=r)),d[t]=s}d.graph="@default"===c?{termType:s,value:""}:{termType:c.startsWith("_:")?i:o,value:c},t.push(d)}))}return t}};const d=/["\\\n\r]/g;function u(e){return e.replace(d,(function(e){switch(e){case'"':return'\\"';case"\\":return"\\\\";case"\n":return"\\n";case"\r":return"\\r"}}))}const f=/(?:\\([tbnrf"'\\]))|(?:\\u([0-9A-Fa-f]{4}))|(?:\\U([0-9A-Fa-f]{8}))/g;function p(e){return e.replace(f,(function(e,t,n,r){if(t)switch(t){case"t":return"\t";case"b":return"\b";case"n":return"\n";case"r":return"\r";case"f":return"\f";case'"':return'"';case"'":return"'";case"\\":return"\\"}if(n)return String.fromCharCode(parseInt(n,16));if(r)throw new Error("Unsupported U escape")}))}},68326:function(e){"use strict"; +/*! + * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved. + */e.exports=class{constructor(e){this.current=e.sort(),this.done=!1,this.dir=new Map;for(let t=0;tr)&&(s&&a>0&&n>e[a-1]||!s&&ae[a+1])&&(r=n,o=a)}if(null===r)this.done=!0;else{const n=t.get(r)?o-1:o+1;e[o]=e[n],e[n]=r;for(const o of e)o>r&&t.set(o,!t.get(o))}return n}}},23445:function(e,t,n){"use strict"; +/*! + * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved. + */const r=n(12401),o=n(75947),i=n(68326),a=n(69980);function s(e,t){return e.hasht.hash?1:0}e.exports=class{constructor({createMessageDigest:e=(()=>new o("sha256")),canonicalIdMap:t=new Map,maxDeepIterations:n=1/0}={}){this.name="URDNA2015",this.blankNodeInfo=new Map,this.canonicalIssuer=new r("_:c14n",t),this.createMessageDigest=e,this.maxDeepIterations=n,this.quads=null,this.deepIterations=null}async main(e){this.deepIterations=new Map,this.quads=e;for(const r of e)this._addBlankNodeQuadInfo({quad:r,component:r.subject}),this._addBlankNodeQuadInfo({quad:r,component:r.object}),this._addBlankNodeQuadInfo({quad:r,component:r.graph});const t=new Map,n=[...this.blankNodeInfo.keys()];let o=0;for(const r of n)++o%100===0&&await this._yield(),await this._hashAndTrackBlankNode({id:r,hashToBlankNodes:t});const i=[...t.keys()].sort(),l=[];for(const r of i){const e=t.get(r);if(e.length>1){l.push(e);continue}const n=e[0];this.canonicalIssuer.getId(n)}for(const a of l){const e=[];for(const t of a){if(this.canonicalIssuer.hasId(t))continue;const n=new r("_:b");n.getId(t);const o=await this.hashNDegreeQuads(t,n);e.push(o)}e.sort(s);for(const t of e){const e=t.issuer.getOldIds();for(const t of e)this.canonicalIssuer.getId(t)}}const c=[];for(const r of this.quads){const e=a.serializeQuadComponents(this._componentWithCanonicalId(r.subject),r.predicate,this._componentWithCanonicalId(r.object),this._componentWithCanonicalId(r.graph));c.push(e)}return c.sort(),c.join("")}async hashFirstDegreeQuads(e){const t=[],n=this.blankNodeInfo.get(e),r=n.quads;for(const i of r){const n={subject:null,predicate:i.predicate,object:null,graph:null};n.subject=this.modifyFirstDegreeComponent(e,i.subject,"subject"),n.object=this.modifyFirstDegreeComponent(e,i.object,"object"),n.graph=this.modifyFirstDegreeComponent(e,i.graph,"graph"),t.push(a.serializeQuad(n))}t.sort();const o=this.createMessageDigest();for(const i of t)o.update(i);return n.hash=await o.digest(),n.hash}async hashRelatedBlankNode(e,t,n,r){let o;o=this.canonicalIssuer.hasId(e)?this.canonicalIssuer.getId(e):n.hasId(e)?n.getId(e):this.blankNodeInfo.get(e).hash;const i=this.createMessageDigest();return i.update(r),"g"!==r&&i.update(this.getRelatedPredicate(t)),i.update(o),i.digest()}async hashNDegreeQuads(e,t){const n=this.deepIterations.get(e)||0;if(n>this.maxDeepIterations)throw new Error(`Maximum deep iterations (${this.maxDeepIterations}) exceeded.`);this.deepIterations.set(e,n+1);const r=this.createMessageDigest(),o=await this.createHashToRelated(e,t),a=[...o.keys()].sort();for(const s of a){r.update(s);let e,n="";const a=new i(o.get(s));let l=0;while(a.hasNext()){const r=a.next();++l%3===0&&await this._yield();let o=t.clone(),i="";const s=[];let c=!1;for(const e of r)if(this.canonicalIssuer.hasId(e)?i+=this.canonicalIssuer.getId(e):(o.hasId(e)||s.push(e),i+=o.getId(e)),0!==n.length&&i>n){c=!0;break}if(!c){for(const e of s){const t=await this.hashNDegreeQuads(e,o);if(i+=o.getId(e),i+=`<${t.hash}>`,o=t.issuer,0!==n.length&&i>n){c=!0;break}}c||(0===n.length||i`}async createHashToRelated(e,t){const n=new Map,r=this.blankNodeInfo.get(e).quads;let o=0;for(const i of r)++o%100===0&&await this._yield(),await Promise.all([this._addRelatedBlankNodeHash({quad:i,component:i.subject,position:"s",id:e,issuer:t,hashToRelated:n}),this._addRelatedBlankNodeHash({quad:i,component:i.object,position:"o",id:e,issuer:t,hashToRelated:n}),this._addRelatedBlankNodeHash({quad:i,component:i.graph,position:"g",id:e,issuer:t,hashToRelated:n})]);return n}async _hashAndTrackBlankNode({id:e,hashToBlankNodes:t}){const n=await this.hashFirstDegreeQuads(e),r=t.get(n);r?r.push(e):t.set(n,[e])}_addBlankNodeQuadInfo({quad:e,component:t}){if("BlankNode"!==t.termType)return;const n=t.value,r=this.blankNodeInfo.get(n);r?r.quads.add(e):this.blankNodeInfo.set(n,{quads:new Set([e]),hash:null})}async _addRelatedBlankNodeHash({quad:e,component:t,position:n,id:r,issuer:o,hashToRelated:i}){if("BlankNode"!==t.termType||t.value===r)return;const a=t.value,s=await this.hashRelatedBlankNode(a,e,o,n),l=i.get(s);l?l.push(a):i.set(s,[a])}_componentWithCanonicalId(e){return"BlankNode"!==e.termType||e.value.startsWith(this.canonicalIssuer.prefix)?e:{termType:"BlankNode",value:this.canonicalIssuer.getId(e.value)}}async _yield(){return new Promise((e=>setImmediate(e)))}}},5643:function(e,t,n){"use strict"; +/*! + * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved. + */const r=n(12401),o=n(75947),i=n(68326),a=n(69980);function s(e,t){return e.hasht.hash?1:0}e.exports=class{constructor({createMessageDigest:e=(()=>new o("sha256")),canonicalIdMap:t=new Map,maxDeepIterations:n=1/0}={}){this.name="URDNA2015",this.blankNodeInfo=new Map,this.canonicalIssuer=new r("_:c14n",t),this.createMessageDigest=e,this.maxDeepIterations=n,this.quads=null,this.deepIterations=null}main(e){this.deepIterations=new Map,this.quads=e;for(const r of e)this._addBlankNodeQuadInfo({quad:r,component:r.subject}),this._addBlankNodeQuadInfo({quad:r,component:r.object}),this._addBlankNodeQuadInfo({quad:r,component:r.graph});const t=new Map,n=[...this.blankNodeInfo.keys()];for(const r of n)this._hashAndTrackBlankNode({id:r,hashToBlankNodes:t});const o=[...t.keys()].sort(),i=[];for(const r of o){const e=t.get(r);if(e.length>1){i.push(e);continue}const n=e[0];this.canonicalIssuer.getId(n)}for(const a of i){const e=[];for(const t of a){if(this.canonicalIssuer.hasId(t))continue;const n=new r("_:b");n.getId(t);const o=this.hashNDegreeQuads(t,n);e.push(o)}e.sort(s);for(const t of e){const e=t.issuer.getOldIds();for(const t of e)this.canonicalIssuer.getId(t)}}const l=[];for(const r of this.quads){const e=a.serializeQuadComponents(this._componentWithCanonicalId({component:r.subject}),r.predicate,this._componentWithCanonicalId({component:r.object}),this._componentWithCanonicalId({component:r.graph}));l.push(e)}return l.sort(),l.join("")}hashFirstDegreeQuads(e){const t=[],n=this.blankNodeInfo.get(e),r=n.quads;for(const i of r){const n={subject:null,predicate:i.predicate,object:null,graph:null};n.subject=this.modifyFirstDegreeComponent(e,i.subject,"subject"),n.object=this.modifyFirstDegreeComponent(e,i.object,"object"),n.graph=this.modifyFirstDegreeComponent(e,i.graph,"graph"),t.push(a.serializeQuad(n))}t.sort();const o=this.createMessageDigest();for(const i of t)o.update(i);return n.hash=o.digest(),n.hash}hashRelatedBlankNode(e,t,n,r){let o;o=this.canonicalIssuer.hasId(e)?this.canonicalIssuer.getId(e):n.hasId(e)?n.getId(e):this.blankNodeInfo.get(e).hash;const i=this.createMessageDigest();return i.update(r),"g"!==r&&i.update(this.getRelatedPredicate(t)),i.update(o),i.digest()}hashNDegreeQuads(e,t){const n=this.deepIterations.get(e)||0;if(n>this.maxDeepIterations)throw new Error(`Maximum deep iterations (${this.maxDeepIterations}) exceeded.`);this.deepIterations.set(e,n+1);const r=this.createMessageDigest(),o=this.createHashToRelated(e,t),a=[...o.keys()].sort();for(const s of a){r.update(s);let e,n="";const a=new i(o.get(s));while(a.hasNext()){const r=a.next();let o=t.clone(),i="";const s=[];let l=!1;for(const e of r)if(this.canonicalIssuer.hasId(e)?i+=this.canonicalIssuer.getId(e):(o.hasId(e)||s.push(e),i+=o.getId(e)),0!==n.length&&i>n){l=!0;break}if(!l){for(const e of s){const t=this.hashNDegreeQuads(e,o);if(i+=o.getId(e),i+=`<${t.hash}>`,o=t.issuer,0!==n.length&&i>n){l=!0;break}}l||(0===n.length||i`}createHashToRelated(e,t){const n=new Map,r=this.blankNodeInfo.get(e).quads;for(const o of r)this._addRelatedBlankNodeHash({quad:o,component:o.subject,position:"s",id:e,issuer:t,hashToRelated:n}),this._addRelatedBlankNodeHash({quad:o,component:o.object,position:"o",id:e,issuer:t,hashToRelated:n}),this._addRelatedBlankNodeHash({quad:o,component:o.graph,position:"g",id:e,issuer:t,hashToRelated:n});return n}_hashAndTrackBlankNode({id:e,hashToBlankNodes:t}){const n=this.hashFirstDegreeQuads(e),r=t.get(n);r?r.push(e):t.set(n,[e])}_addBlankNodeQuadInfo({quad:e,component:t}){if("BlankNode"!==t.termType)return;const n=t.value,r=this.blankNodeInfo.get(n);r?r.quads.add(e):this.blankNodeInfo.set(n,{quads:new Set([e]),hash:null})}_addRelatedBlankNodeHash({quad:e,component:t,position:n,id:r,issuer:o,hashToRelated:i}){if("BlankNode"!==t.termType||t.value===r)return;const a=t.value,s=this.hashRelatedBlankNode(a,e,o,n),l=i.get(s);l?l.push(a):i.set(s,[a])}_componentWithCanonicalId({component:e}){return"BlankNode"!==e.termType||e.value.startsWith(this.canonicalIssuer.prefix)?e:{termType:"BlankNode",value:this.canonicalIssuer.getId(e.value)}}}},89201:function(e,t,n){"use strict"; +/*! + * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved. + */const r=n(75947),o=n(23445);e.exports=class extends o{constructor(){super(),this.name="URGNA2012",this.createMessageDigest=()=>new r("sha1")}modifyFirstDegreeComponent(e,t,n){return"BlankNode"!==t.termType?t:"graph"===n?{termType:"BlankNode",value:"_:g"}:{termType:"BlankNode",value:t.value===e?"_:a":"_:z"}}getRelatedPredicate(e){return e.predicate.value}async createHashToRelated(e,t){const n=new Map,r=this.blankNodeInfo.get(e).quads;let o=0;for(const i of r){let r,a;if("BlankNode"===i.subject.termType&&i.subject.value!==e)a=i.subject.value,r="p";else{if("BlankNode"!==i.object.termType||i.object.value===e)continue;a=i.object.value,r="r"}++o%100===0&&await this._yield();const s=await this.hashRelatedBlankNode(a,i,t,r),l=n.get(s);l?l.push(a):n.set(s,[a])}return n}}},17702:function(e,t,n){"use strict"; +/*! + * Copyright (c) 2016-2021 Digital Bazaar, Inc. All rights reserved. + */const r=n(75947),o=n(5643);e.exports=class extends o{constructor(){super(),this.name="URGNA2012",this.createMessageDigest=()=>new r("sha1")}modifyFirstDegreeComponent(e,t,n){return"BlankNode"!==t.termType?t:"graph"===n?{termType:"BlankNode",value:"_:g"}:{termType:"BlankNode",value:t.value===e?"_:a":"_:z"}}getRelatedPredicate(e){return e.predicate.value}createHashToRelated(e,t){const n=new Map,r=this.blankNodeInfo.get(e).quads;for(const o of r){let r,i;if("BlankNode"===o.subject.termType&&o.subject.value!==e)i=o.subject.value,r="p";else{if("BlankNode"!==o.object.termType||o.object.value===e)continue;i=o.object.value,r="r"}const a=this.hashRelatedBlankNode(i,o,t,r),s=n.get(a);s?s.push(i):n.set(a,[i])}return n}}},29344:function(e,t,n){"use strict";const r=n(23445),o=n(89201),i=n(5643),a=n(17702);let s;try{s=n(97670)}catch(c){}function l(e){return Array.isArray(e)?e:t.NQuads.legacyDatasetToQuads(e)}t.NQuads=n(69980),t.IdentifierIssuer=n(12401),t._rdfCanonizeNative=function(e){return e&&(s=e),s},t.canonize=async function(e,t){const n=l(e,t);if(t.useNative){if(!s)throw new Error("rdf-canonize-native not available");if(t.createMessageDigest)throw new Error('"createMessageDigest" cannot be used with "useNative".');return new Promise(((e,r)=>s.canonize(n,t,((t,n)=>t?r(t):e(n)))))}if("URDNA2015"===t.algorithm)return new r(t).main(n);if("URGNA2012"===t.algorithm){if(t.createMessageDigest)throw new Error('"createMessageDigest" cannot be used with "URGNA2012".');return new o(t).main(n)}if(!("algorithm"in t))throw new Error("No RDF Dataset Canonicalization algorithm specified.");throw new Error("Invalid RDF Dataset Canonicalization algorithm: "+t.algorithm)},t._canonizeSync=function(e,t){const n=l(e,t);if(t.useNative){if(!s)throw new Error("rdf-canonize-native not available");if(t.createMessageDigest)throw new Error('"createMessageDigest" cannot be used with "useNative".');return s.canonizeSync(n,t)}if("URDNA2015"===t.algorithm)return new i(t).main(n);if("URGNA2012"===t.algorithm){if(t.createMessageDigest)throw new Error('"createMessageDigest" cannot be used with "URGNA2012".');return new a(t).main(n)}if(!("algorithm"in t))throw new Error("No RDF Dataset Canonicalization algorithm specified.");throw new Error("Invalid RDF Dataset Canonicalization algorithm: "+t.algorithm)}},24889:function(e,t,n){var r=n(34155);(function(e,t){"use strict";if(!e.setImmediate){var n,o=1,i={},a=!1,s=e.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(e);l=l&&l.setTimeout?l:e,"[object process]"==={}.toString.call(e.process)?p():h()?g():e.MessageChannel?y():s&&"onreadystatechange"in s.createElement("script")?b():v(),l.setImmediate=c,l.clearImmediate=d}function c(e){"function"!==typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r{}}),this.compact=n,this.context=r,this.encoding=o,this.flatten=i,this.frame=a,this.prettyPrint=s,this.skipContext=l,t&&(this.context["@base"]=t.value||t.toString()),e.on("prefix",((e,t)=>{this.context[e]||(this.context[e]=t.value)})),this.handleData(e)}async handleData(e){try{const t=(await(0,a.Z)(e)).map(s.toJsonldQuad),n=await o.fromRDF(t),r=await this.transform(n,this.options);this.push(r),this.push(null)}catch(t){this.emit("error",t)}}async transform(e){return this.compact&&(e=await o.compact(e,this.context)),this.flatten&&(e=await o.flatten(e,this.context)),this.frame&&(e=await o.frame(e,this.context)),this.skipContext&&e["@context"]&&delete e["@context"],"string"===this.encoding?this.prettyPrint?JSON.stringify(e,null,2):JSON.stringify(e):e}static toJsonldQuad(e){return{subject:s.toJsonldTerm(e.subject),predicate:s.toJsonldTerm(e.predicate),object:s.toJsonldTerm(e.object),graph:s.toJsonldTerm(e.graph)}}static toJsonldTerm(e){return"BlankNode"===e.termType?{termType:"BlankNode",value:`_:${e.value}`}:e}}var l=s;class c extends r.Z{constructor(e){super(l,e)}}var d=c}}]); +//# sourceMappingURL=689.96a6be26.js.map \ No newline at end of file diff --git a/js/689.96a6be26.js.map b/js/689.96a6be26.js.map new file mode 100644 index 0000000..94f9ed2 --- /dev/null +++ b/js/689.96a6be26.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/689.96a6be26.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/compose.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/from.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/operators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/readable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/state.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/transform.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/utils.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/streams/writable.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/internal/validators.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/ours/browser.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/ours/errors.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/ours/primordials.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/ours/util.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/stream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/node_modules/readable-stream/lib/stream/promises.js","webpack://@zazuko/spex/./node_modules/canonicalize/lib/canonicalize.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/ContextResolver.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/JsonLdError.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/JsonLdProcessor.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/NQuads.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/RequestQueue.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/ResolvedContext.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/compact.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/constants.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/context.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/documentLoaders/xhr.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/events.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/expand.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/flatten.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/frame.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/fromRdf.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/graphTypes.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/jsonld.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/nodeMap.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/platform-browser.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/toRdf.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/types.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/url.js","webpack://@zazuko/spex/./node_modules/jsonld/lib/util.js","webpack://@zazuko/spex/./node_modules/jsonld/node_modules/lru-cache/index.js","webpack://@zazuko/spex/./node_modules/jsonld/node_modules/yallist/iterator.js","webpack://@zazuko/spex/./node_modules/jsonld/node_modules/yallist/yallist.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/index.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/IdentifierIssuer.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/MessageDigest-browser.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/NQuads.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/Permuter.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/URDNA2015.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/URDNA2015Sync.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/URGNA2012.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/URGNA2012Sync.js","webpack://@zazuko/spex/./node_modules/rdf-canonize/lib/index.js","webpack://@zazuko/spex/./node_modules/setimmediate/setImmediate.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/lib/SerializerStream.js","webpack://@zazuko/spex/./node_modules/@rdfjs/serializer-jsonld-ext/index.js"],"sourcesContent":["'use strict'\n\nconst { SymbolDispose } = require('../../ours/primordials')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\nlet addAbortListener\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(signal, onAbort)\n eos(stream, disposable[SymbolDispose])\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.readableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kIsDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream,\n isReadableStream,\n isWritableStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n if (isReadableStream(body)) {\n return _duplexify({\n readable: Readable.fromWeb(body)\n })\n }\n if (isWritableStream(body)) {\n return _duplexify({\n writable: Writable.fromWeb(body)\n })\n }\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n if (\n isReadableStream(body === null || body === undefined ? undefined : body.readable) &&\n isWritableStream(body === null || body === undefined ? undefined : body.writable)\n ) {\n return Duplexify.fromWeb(body)\n }\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen, SymbolDispose } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nlet addAbortListener\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst kResistStopPropagation = require('../../ours/primordials').Symbol('kResistStopPropagation')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst { deprecate } = require('../../ours/util')\nconst {\n ArrayPrototypePush,\n Boolean,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromiseResolve,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n let highWaterMark = concurrency - 1\n if ((options === null || options === undefined ? undefined : options.highWaterMark) != null) {\n highWaterMark = MathFloor(options.highWaterMark)\n }\n validateInteger(concurrency, 'options.concurrency', 1)\n validateInteger(highWaterMark, 'options.highWaterMark', 0)\n highWaterMark += concurrency\n return async function* map() {\n const signal = require('../../ours/util').AbortSignalAny(\n [options === null || options === undefined ? undefined : options.signal].filter(Boolean)\n )\n const stream = this\n const queue = []\n const signalOpt = {\n signal\n }\n let next\n let resume\n let done = false\n let cnt = 0\n function onCatch() {\n done = true\n afterItemProcessed()\n }\n function afterItemProcessed() {\n cnt -= 1\n maybeResume()\n }\n function maybeResume() {\n if (resume && !done && cnt < concurrency && queue.length < highWaterMark) {\n resume()\n resume = null\n }\n }\n async function pump() {\n try {\n for await (let val of stream) {\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n if (val === kEmpty) {\n continue\n }\n val = PromiseResolve(val)\n } catch (err) {\n val = PromiseReject(err)\n }\n cnt += 1\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && (queue.length >= highWaterMark || cnt >= concurrency)) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n } finally {\n done = true\n if (next) {\n next()\n next = null\n }\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n maybeResume()\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal2\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal2 = options.signal) !== null &&\n _options$signal2 !== undefined &&\n _options$signal2.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this,\n [kResistStopPropagation]: true\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal3\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal3 = options.signal) !== null &&\n _options$signal3 !== undefined &&\n _options$signal3.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal5\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal6\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n }\n\n // Don't get another item from iterator in case we reached the end\n if (number <= 0) {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs: deprecate(asIndexedPairs, 'readable.asIndexedPairs will be removed in a future version.'),\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator, SymbolDispose } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableFinished\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nlet addAbortListener\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n await wait()\n }\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n let disposable\n if (outerSignal) {\n disposable = addAbortListener(outerSignal, abort)\n }\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n var _disposable\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n ;(_disposable = disposable) === null || _disposable === undefined ? undefined : _disposable[SymbolDispose]()\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableFinished(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncDispose,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nconst kObjectMode = 1 << 0\nconst kEnded = 1 << 1\nconst kEndEmitted = 1 << 2\nconst kReading = 1 << 3\nconst kConstructed = 1 << 4\nconst kSync = 1 << 5\nconst kNeedReadable = 1 << 6\nconst kEmittedReadable = 1 << 7\nconst kReadableListening = 1 << 8\nconst kResumeScheduled = 1 << 9\nconst kErrorEmitted = 1 << 10\nconst kEmitClose = 1 << 11\nconst kAutoDestroy = 1 << 12\nconst kDestroyed = 1 << 13\nconst kClosed = 1 << 14\nconst kCloseEmitted = 1 << 15\nconst kMultiAwaitDrain = 1 << 16\nconst kReadingMore = 1 << 17\nconst kDataEmitted = 1 << 18\n\n// TODO(benjamingr) it is likely slower to do it this way than with free functions\nfunction makeBitMapDescriptor(bit) {\n return {\n enumerable: false,\n get() {\n return (this.state & bit) !== 0\n },\n set(value) {\n if (value) this.state |= bit\n else this.state &= ~bit\n }\n }\n}\nObjectDefineProperties(ReadableState.prototype, {\n objectMode: makeBitMapDescriptor(kObjectMode),\n ended: makeBitMapDescriptor(kEnded),\n endEmitted: makeBitMapDescriptor(kEndEmitted),\n reading: makeBitMapDescriptor(kReading),\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n constructed: makeBitMapDescriptor(kConstructed),\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n sync: makeBitMapDescriptor(kSync),\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n needReadable: makeBitMapDescriptor(kNeedReadable),\n emittedReadable: makeBitMapDescriptor(kEmittedReadable),\n readableListening: makeBitMapDescriptor(kReadableListening),\n resumeScheduled: makeBitMapDescriptor(kResumeScheduled),\n // True if the error was already emitted and should not be thrown again.\n errorEmitted: makeBitMapDescriptor(kErrorEmitted),\n emitClose: makeBitMapDescriptor(kEmitClose),\n autoDestroy: makeBitMapDescriptor(kAutoDestroy),\n // Has it been destroyed.\n destroyed: makeBitMapDescriptor(kDestroyed),\n // Indicates whether the stream has finished destroying.\n closed: makeBitMapDescriptor(kClosed),\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n closeEmitted: makeBitMapDescriptor(kCloseEmitted),\n multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain),\n // If true, a maybeReadMore has been scheduled.\n readingMore: makeBitMapDescriptor(kReadingMore),\n dataEmitted: makeBitMapDescriptor(kDataEmitted)\n})\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Bit map field to store ReadableState more effciently with 1 bit per field\n // instead of a V8 slot per field.\n this.state = kEmitClose | kAutoDestroy | kConstructed | kSync\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n if (options && options.objectMode) this.state |= kObjectMode\n if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this[kPaused] = null\n\n // Should close be emitted on destroy. Defaults to true.\n if (options && options.emitClose === false) this.state &= ~kEmitClose\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nReadable.prototype[SymbolAsyncDispose] = function () {\n let error\n if (!this.destroyed) {\n error = this.readableEnded ? null : new AbortError()\n this.destroy(error)\n }\n return new Promise((resolve, reject) => eos(this, (err) => (err && err !== error ? reject(err) : resolve(null))))\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if ((state.state & kObjectMode) === 0) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.state &= ~kReading\n onEofChunk(stream, state)\n } else if ((state.state & kObjectMode) !== 0 || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.state &= ~kReading\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.state &= ~kReading\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if ((state.state & kMultiAwaitDrain) !== 0) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if ((state.state & kNeedReadable) !== 0) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if ((state.state & kObjectMode) !== 0) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.state &= ~kEmittedReadable\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = (state.state & kNeedReadable) !== 0\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.state |= kReading | kSync\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.state |= kNeedReadable\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.state &= ~kSync\n\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n pause()\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { validateInteger } = require('../validators')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nlet defaultHighWaterMarkBytes = 16 * 1024\nlet defaultHighWaterMarkObjectMode = 16\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? defaultHighWaterMarkObjectMode : defaultHighWaterMarkBytes\n}\nfunction setDefaultHighWaterMark(objectMode, value) {\n validateInteger(value, 'value', 0)\n if (objectMode) {\n defaultHighWaterMarkObjectMode = value\n } else {\n defaultHighWaterMarkBytes = value\n }\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark,\n setDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\n\n// We need to use SymbolFor to make these globally available\n// for interopt with readable-stream, i.e. readable-stream\n// and node core needs to be able to read/write private state\n// from each other for proper interoperability.\nconst kIsDestroyed = SymbolFor('nodejs.stream.destroyed')\nconst kIsErrored = SymbolFor('nodejs.stream.errored')\nconst kIsReadable = SymbolFor('nodejs.stream.readable')\nconst kIsWritable = SymbolFor('nodejs.stream.writable')\nconst kIsDisturbed = SymbolFor('nodejs.stream.disturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kIsDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (stream && stream[kIsWritable] != null) return stream[kIsWritable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n isDestroyed,\n kIsDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n kIsWritable,\n isClosed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateAbortSignalArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is AbortSignal[]}\n */\n\n/** @type {validateAbortSignalArray} */\nfunction validateAbortSignalArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n const signal = value[i]\n const indexedName = `${name}[${i}]`\n if (signal == null) {\n throw new ERR_INVALID_ARG_TYPE(indexedName, 'AbortSignal', signal)\n }\n validateAbortSignal(signal, indexedName)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateAbortSignalArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n PromiseResolve(val) {\n return Promise.resolve(val)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n SymbolDispose: Symbol.dispose || Symbol('Symbol.dispose'),\n SymbolAsyncDispose: Symbol.asyncDispose || Symbol('Symbol.asyncDispose'),\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Boolean: Boolean,\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst { kResistStopPropagation, SymbolDispose } = require('./primordials')\nconst AbortSignal = globalThis.AbortSignal || require('abort-controller').AbortSignal\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\nconst validateAbortSignal = (signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nconst validateFunction = (value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n}\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob,\n deprecate(fn, message) {\n return fn\n },\n addAbortListener:\n require('events').addAbortListener ||\n function addAbortListener(signal, listener) {\n if (signal === undefined) {\n throw new ERR_INVALID_ARG_TYPE('signal', 'AbortSignal', signal)\n }\n validateAbortSignal(signal, 'signal')\n validateFunction(listener, 'listener')\n let removeEventListener\n if (signal.aborted) {\n queueMicrotask(() => listener())\n } else {\n signal.addEventListener('abort', listener, {\n __proto__: null,\n once: true,\n [kResistStopPropagation]: true\n })\n removeEventListener = () => {\n signal.removeEventListener('abort', listener)\n }\n }\n return {\n __proto__: null,\n [SymbolDispose]() {\n var _removeEventListener\n ;(_removeEventListener = removeEventListener) === null || _removeEventListener === undefined\n ? undefined\n : _removeEventListener()\n }\n }\n },\n AbortSignalAny:\n AbortSignal.any ||\n function AbortSignalAny(signals) {\n // Fast path if there is only one signal.\n if (signals.length === 1) {\n return signals[0]\n }\n const ac = new AbortController()\n const abort = () => ac.abort()\n signals.forEach((signal) => {\n validateAbortSignal(signal, 'signals')\n signal.addEventListener('abort', abort, {\n once: true\n })\n })\n ac.signal.addEventListener(\n 'abort',\n () => {\n signals.forEach((signal) => signal.removeEventListener('abort', abort))\n },\n {\n once: true\n }\n )\n return ac.signal\n }\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { setDefaultHighWaterMark, getDefaultHighWaterMark } = require('./internal/streams/state')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDestroyed = utils.isDestroyed\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.isWritable = utils.isWritable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nStream.setDefaultHighWaterMark = setDefaultHighWaterMark\nStream.getDefaultHighWaterMark = getDefaultHighWaterMark\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('../../lib/stream.js')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","/* jshint esversion: 6 */\n/* jslint node: true */\n'use strict';\n\nmodule.exports = function serialize (object) {\n if (object === null || typeof object !== 'object' || object.toJSON != null) {\n return JSON.stringify(object);\n }\n\n if (Array.isArray(object)) {\n return '[' + object.reduce((t, cv, ci) => {\n const comma = ci === 0 ? '' : ',';\n const value = cv === undefined || typeof cv === 'symbol' ? null : cv;\n return t + comma + serialize(value);\n }, '') + ']';\n }\n\n return '{' + Object.keys(object).sort().reduce((t, cv, ci) => {\n if (object[cv] === undefined ||\n typeof object[cv] === 'symbol') {\n return t;\n }\n const comma = t.length === 0 ? '' : ',';\n return t + comma + serialize(cv) + ':' + serialize(object[cv]);\n }, '') + '}';\n};\n","/*\n * Copyright (c) 2019 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {\n isArray: _isArray,\n isObject: _isObject,\n isString: _isString,\n} = require('./types');\nconst {\n asArray: _asArray\n} = require('./util');\nconst {prependBase} = require('./url');\nconst JsonLdError = require('./JsonLdError');\nconst ResolvedContext = require('./ResolvedContext');\n\nconst MAX_CONTEXT_URLS = 10;\n\nmodule.exports = class ContextResolver {\n /**\n * Creates a ContextResolver.\n *\n * @param sharedCache a shared LRU cache with `get` and `set` APIs.\n */\n constructor({sharedCache}) {\n this.perOpCache = new Map();\n this.sharedCache = sharedCache;\n }\n\n async resolve({\n activeCtx, context, documentLoader, base, cycles = new Set()\n }) {\n // process `@context`\n if(context && _isObject(context) && context['@context']) {\n context = context['@context'];\n }\n\n // context is one or more contexts\n context = _asArray(context);\n\n // resolve each context in the array\n const allResolved = [];\n for(const ctx of context) {\n if(_isString(ctx)) {\n // see if `ctx` has been resolved before...\n let resolved = this._get(ctx);\n if(!resolved) {\n // not resolved yet, resolve\n resolved = await this._resolveRemoteContext(\n {activeCtx, url: ctx, documentLoader, base, cycles});\n }\n\n // add to output and continue\n if(_isArray(resolved)) {\n allResolved.push(...resolved);\n } else {\n allResolved.push(resolved);\n }\n continue;\n }\n if(ctx === null) {\n // handle `null` context, nothing to cache\n allResolved.push(new ResolvedContext({document: null}));\n continue;\n }\n if(!_isObject(ctx)) {\n _throwInvalidLocalContext(context);\n }\n // context is an object, get/create `ResolvedContext` for it\n const key = JSON.stringify(ctx);\n let resolved = this._get(key);\n if(!resolved) {\n // create a new static `ResolvedContext` and cache it\n resolved = new ResolvedContext({document: ctx});\n this._cacheResolvedContext({key, resolved, tag: 'static'});\n }\n allResolved.push(resolved);\n }\n\n return allResolved;\n }\n\n _get(key) {\n // get key from per operation cache; no `tag` is used with this cache so\n // any retrieved context will always be the same during a single operation\n let resolved = this.perOpCache.get(key);\n if(!resolved) {\n // see if the shared cache has a `static` entry for this URL\n const tagMap = this.sharedCache.get(key);\n if(tagMap) {\n resolved = tagMap.get('static');\n if(resolved) {\n this.perOpCache.set(key, resolved);\n }\n }\n }\n return resolved;\n }\n\n _cacheResolvedContext({key, resolved, tag}) {\n this.perOpCache.set(key, resolved);\n if(tag !== undefined) {\n let tagMap = this.sharedCache.get(key);\n if(!tagMap) {\n tagMap = new Map();\n this.sharedCache.set(key, tagMap);\n }\n tagMap.set(tag, resolved);\n }\n return resolved;\n }\n\n async _resolveRemoteContext({activeCtx, url, documentLoader, base, cycles}) {\n // resolve relative URL and fetch context\n url = prependBase(base, url);\n const {context, remoteDoc} = await this._fetchContext(\n {activeCtx, url, documentLoader, cycles});\n\n // update base according to remote document and resolve any relative URLs\n base = remoteDoc.documentUrl || url;\n _resolveContextUrls({context, base});\n\n // resolve, cache, and return context\n const resolved = await this.resolve(\n {activeCtx, context, documentLoader, base, cycles});\n this._cacheResolvedContext({key: url, resolved, tag: remoteDoc.tag});\n return resolved;\n }\n\n async _fetchContext({activeCtx, url, documentLoader, cycles}) {\n // check for max context URLs fetched during a resolve operation\n if(cycles.size > MAX_CONTEXT_URLS) {\n throw new JsonLdError(\n 'Maximum number of @context URLs exceeded.',\n 'jsonld.ContextUrlError',\n {\n code: activeCtx.processingMode === 'json-ld-1.0' ?\n 'loading remote context failed' :\n 'context overflow',\n max: MAX_CONTEXT_URLS\n });\n }\n\n // check for context URL cycle\n // shortcut to avoid extra work that would eventually hit the max above\n if(cycles.has(url)) {\n throw new JsonLdError(\n 'Cyclical @context URLs detected.',\n 'jsonld.ContextUrlError',\n {\n code: activeCtx.processingMode === 'json-ld-1.0' ?\n 'recursive context inclusion' :\n 'context overflow',\n url\n });\n }\n\n // track cycles\n cycles.add(url);\n\n let context;\n let remoteDoc;\n\n try {\n remoteDoc = await documentLoader(url);\n context = remoteDoc.document || null;\n // parse string context as JSON\n if(_isString(context)) {\n context = JSON.parse(context);\n }\n } catch(e) {\n throw new JsonLdError(\n 'Dereferencing a URL did not result in a valid JSON-LD object. ' +\n 'Possible causes are an inaccessible URL perhaps due to ' +\n 'a same-origin policy (ensure the server uses CORS if you are ' +\n 'using client-side JavaScript), too many redirects, a ' +\n 'non-JSON response, or more than one HTTP Link Header was ' +\n 'provided for a remote context.',\n 'jsonld.InvalidUrl',\n {code: 'loading remote context failed', url, cause: e});\n }\n\n // ensure ctx is an object\n if(!_isObject(context)) {\n throw new JsonLdError(\n 'Dereferencing a URL did not result in a JSON object. The ' +\n 'response was valid JSON, but it was not a JSON object.',\n 'jsonld.InvalidUrl', {code: 'invalid remote context', url});\n }\n\n // use empty context if no @context key is present\n if(!('@context' in context)) {\n context = {'@context': {}};\n } else {\n context = {'@context': context['@context']};\n }\n\n // append @context URL to context if given\n if(remoteDoc.contextUrl) {\n if(!_isArray(context['@context'])) {\n context['@context'] = [context['@context']];\n }\n context['@context'].push(remoteDoc.contextUrl);\n }\n\n return {context, remoteDoc};\n }\n};\n\nfunction _throwInvalidLocalContext(ctx) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context must be an object.',\n 'jsonld.SyntaxError', {\n code: 'invalid local context', context: ctx\n });\n}\n\n/**\n * Resolve all relative `@context` URLs in the given context by inline\n * replacing them with absolute URLs.\n *\n * @param context the context.\n * @param base the base IRI to use to resolve relative IRIs.\n */\nfunction _resolveContextUrls({context, base}) {\n if(!context) {\n return;\n }\n\n const ctx = context['@context'];\n\n if(_isString(ctx)) {\n context['@context'] = prependBase(base, ctx);\n return;\n }\n\n if(_isArray(ctx)) {\n for(let i = 0; i < ctx.length; ++i) {\n const element = ctx[i];\n if(_isString(element)) {\n ctx[i] = prependBase(base, element);\n continue;\n }\n if(_isObject(element)) {\n _resolveContextUrls({context: {'@context': element}, base});\n }\n }\n return;\n }\n\n if(!_isObject(ctx)) {\n // no @context URLs can be found in non-object\n return;\n }\n\n // ctx is an object, resolve any context URLs in terms\n for(const term in ctx) {\n _resolveContextUrls({context: ctx[term], base});\n }\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nmodule.exports = class JsonLdError extends Error {\n /**\n * Creates a JSON-LD Error.\n *\n * @param msg the error message.\n * @param type the error type.\n * @param details the error details.\n */\n constructor(\n message = 'An unspecified JSON-LD error occurred.',\n name = 'jsonld.Error',\n details = {}) {\n super(message);\n this.name = name;\n this.message = message;\n this.details = details;\n }\n};\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nmodule.exports = jsonld => {\n class JsonLdProcessor {\n toString() {\n return '[object JsonLdProcessor]';\n }\n }\n Object.defineProperty(JsonLdProcessor, 'prototype', {\n writable: false,\n enumerable: false\n });\n Object.defineProperty(JsonLdProcessor.prototype, 'constructor', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: JsonLdProcessor\n });\n\n // The Web IDL test harness will check the number of parameters defined in\n // the functions below. The number of parameters must exactly match the\n // required (non-optional) parameters of the JsonLdProcessor interface as\n // defined here:\n // https://www.w3.org/TR/json-ld-api/#the-jsonldprocessor-interface\n\n JsonLdProcessor.compact = function(input, ctx) {\n if(arguments.length < 2) {\n return Promise.reject(\n new TypeError('Could not compact, too few arguments.'));\n }\n return jsonld.compact(input, ctx);\n };\n JsonLdProcessor.expand = function(input) {\n if(arguments.length < 1) {\n return Promise.reject(\n new TypeError('Could not expand, too few arguments.'));\n }\n return jsonld.expand(input);\n };\n JsonLdProcessor.flatten = function(input) {\n if(arguments.length < 1) {\n return Promise.reject(\n new TypeError('Could not flatten, too few arguments.'));\n }\n return jsonld.flatten(input);\n };\n\n return JsonLdProcessor;\n};\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\n// TODO: move `NQuads` to its own package\nmodule.exports = require('rdf-canonize').NQuads;\n","/*\n * Copyright (c) 2017-2019 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nmodule.exports = class RequestQueue {\n /**\n * Creates a simple queue for requesting documents.\n */\n constructor() {\n this._requests = {};\n }\n\n wrapLoader(loader) {\n const self = this;\n self._loader = loader;\n return function(/* url */) {\n return self.add.apply(self, arguments);\n };\n }\n\n async add(url) {\n let promise = this._requests[url];\n if(promise) {\n // URL already queued, wait for it to load\n return Promise.resolve(promise);\n }\n\n // queue URL and load it\n promise = this._requests[url] = this._loader(url);\n\n try {\n return await promise;\n } finally {\n delete this._requests[url];\n }\n }\n};\n","/*\n * Copyright (c) 2019 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst LRU = require('lru-cache');\n\nconst MAX_ACTIVE_CONTEXTS = 10;\n\nmodule.exports = class ResolvedContext {\n /**\n * Creates a ResolvedContext.\n *\n * @param document the context document.\n */\n constructor({document}) {\n this.document = document;\n // TODO: enable customization of processed context cache\n // TODO: limit based on size of processed contexts vs. number of them\n this.cache = new LRU({max: MAX_ACTIVE_CONTEXTS});\n }\n\n getProcessed(activeCtx) {\n return this.cache.get(activeCtx);\n }\n\n setProcessed(activeCtx, processedCtx) {\n this.cache.set(activeCtx, processedCtx);\n }\n};\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst JsonLdError = require('./JsonLdError');\n\nconst {\n isArray: _isArray,\n isObject: _isObject,\n isString: _isString,\n isUndefined: _isUndefined\n} = require('./types');\n\nconst {\n isList: _isList,\n isValue: _isValue,\n isGraph: _isGraph,\n isSimpleGraph: _isSimpleGraph,\n isSubjectReference: _isSubjectReference\n} = require('./graphTypes');\n\nconst {\n expandIri: _expandIri,\n getContextValue: _getContextValue,\n isKeyword: _isKeyword,\n process: _processContext,\n processingMode: _processingMode\n} = require('./context');\n\nconst {\n removeBase: _removeBase,\n prependBase: _prependBase\n} = require('./url');\n\nconst {\n REGEX_KEYWORD,\n addValue: _addValue,\n asArray: _asArray,\n compareShortestLeast: _compareShortestLeast\n} = require('./util');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Recursively compacts an element using the given active context. All values\n * must be in expanded form before this method is called.\n *\n * @param activeCtx the active context to use.\n * @param activeProperty the compacted property associated with the element\n * to compact, null for none.\n * @param element the element to compact.\n * @param options the compaction options.\n *\n * @return a promise that resolves to the compacted value.\n */\napi.compact = async ({\n activeCtx,\n activeProperty = null,\n element,\n options = {}\n}) => {\n // recursively compact array\n if(_isArray(element)) {\n let rval = [];\n for(let i = 0; i < element.length; ++i) {\n const compacted = await api.compact({\n activeCtx,\n activeProperty,\n element: element[i],\n options\n });\n if(compacted === null) {\n // FIXME: need event?\n continue;\n }\n rval.push(compacted);\n }\n if(options.compactArrays && rval.length === 1) {\n // use single element if no container is specified\n const container = _getContextValue(\n activeCtx, activeProperty, '@container') || [];\n if(container.length === 0) {\n rval = rval[0];\n }\n }\n return rval;\n }\n\n // use any scoped context on activeProperty\n const ctx = _getContextValue(activeCtx, activeProperty, '@context');\n if(!_isUndefined(ctx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: ctx,\n propagate: true,\n overrideProtected: true,\n options\n });\n }\n\n // recursively compact object\n if(_isObject(element)) {\n if(options.link && '@id' in element &&\n options.link.hasOwnProperty(element['@id'])) {\n // check for a linked element to reuse\n const linked = options.link[element['@id']];\n for(let i = 0; i < linked.length; ++i) {\n if(linked[i].expanded === element) {\n return linked[i].compacted;\n }\n }\n }\n\n // do value compaction on @values and subject references\n if(_isValue(element) || _isSubjectReference(element)) {\n const rval =\n api.compactValue({activeCtx, activeProperty, value: element, options});\n if(options.link && _isSubjectReference(element)) {\n // store linked element\n if(!(options.link.hasOwnProperty(element['@id']))) {\n options.link[element['@id']] = [];\n }\n options.link[element['@id']].push({expanded: element, compacted: rval});\n }\n return rval;\n }\n\n // if expanded property is @list and we're contained within a list\n // container, recursively compact this item to an array\n if(_isList(element)) {\n const container = _getContextValue(\n activeCtx, activeProperty, '@container') || [];\n if(container.includes('@list')) {\n return api.compact({\n activeCtx,\n activeProperty,\n element: element['@list'],\n options\n });\n }\n }\n\n // FIXME: avoid misuse of active property as an expanded property?\n const insideReverse = (activeProperty === '@reverse');\n\n const rval = {};\n\n // original context before applying property-scoped and local contexts\n const inputCtx = activeCtx;\n\n // revert to previous context, if there is one,\n // and element is not a value object or a node reference\n if(!_isValue(element) && !_isSubjectReference(element)) {\n activeCtx = activeCtx.revertToPreviousContext();\n }\n\n // apply property-scoped context after reverting term-scoped context\n const propertyScopedCtx =\n _getContextValue(inputCtx, activeProperty, '@context');\n if(!_isUndefined(propertyScopedCtx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: propertyScopedCtx,\n propagate: true,\n overrideProtected: true,\n options\n });\n }\n\n if(options.link && '@id' in element) {\n // store linked element\n if(!options.link.hasOwnProperty(element['@id'])) {\n options.link[element['@id']] = [];\n }\n options.link[element['@id']].push({expanded: element, compacted: rval});\n }\n\n // apply any context defined on an alias of @type\n // if key is @type and any compacted value is a term having a local\n // context, overlay that context\n let types = element['@type'] || [];\n if(types.length > 1) {\n types = Array.from(types).sort();\n }\n // find all type-scoped contexts based on current context, prior to\n // updating it\n const typeContext = activeCtx;\n for(const type of types) {\n const compactedType = api.compactIri(\n {activeCtx: typeContext, iri: type, relativeTo: {vocab: true}});\n\n // Use any type-scoped context defined on this value\n const ctx = _getContextValue(inputCtx, compactedType, '@context');\n if(!_isUndefined(ctx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: ctx,\n options,\n propagate: false\n });\n }\n }\n\n // process element keys in order\n const keys = Object.keys(element).sort();\n for(const expandedProperty of keys) {\n const expandedValue = element[expandedProperty];\n\n // compact @id\n if(expandedProperty === '@id') {\n let compactedValue = _asArray(expandedValue).map(\n expandedIri => api.compactIri({\n activeCtx,\n iri: expandedIri,\n relativeTo: {vocab: false},\n base: options.base\n }));\n if(compactedValue.length === 1) {\n compactedValue = compactedValue[0];\n }\n\n // use keyword alias and add value\n const alias = api.compactIri(\n {activeCtx, iri: '@id', relativeTo: {vocab: true}});\n\n rval[alias] = compactedValue;\n continue;\n }\n\n // compact @type(s)\n if(expandedProperty === '@type') {\n // resolve type values against previous context\n let compactedValue = _asArray(expandedValue).map(\n expandedIri => api.compactIri({\n activeCtx: inputCtx,\n iri: expandedIri,\n relativeTo: {vocab: true}\n }));\n if(compactedValue.length === 1) {\n compactedValue = compactedValue[0];\n }\n\n // use keyword alias and add value\n const alias = api.compactIri(\n {activeCtx, iri: '@type', relativeTo: {vocab: true}});\n const container = _getContextValue(\n activeCtx, alias, '@container') || [];\n\n // treat as array for @type if @container includes @set\n const typeAsSet =\n container.includes('@set') &&\n _processingMode(activeCtx, 1.1);\n const isArray =\n typeAsSet || (_isArray(compactedValue) && expandedValue.length === 0);\n _addValue(rval, alias, compactedValue, {propertyIsArray: isArray});\n continue;\n }\n\n // handle @reverse\n if(expandedProperty === '@reverse') {\n // recursively compact expanded value\n const compactedValue = await api.compact({\n activeCtx,\n activeProperty: '@reverse',\n element: expandedValue,\n options\n });\n\n // handle double-reversed properties\n for(const compactedProperty in compactedValue) {\n if(activeCtx.mappings.has(compactedProperty) &&\n activeCtx.mappings.get(compactedProperty).reverse) {\n const value = compactedValue[compactedProperty];\n const container = _getContextValue(\n activeCtx, compactedProperty, '@container') || [];\n const useArray = (\n container.includes('@set') || !options.compactArrays);\n _addValue(\n rval, compactedProperty, value, {propertyIsArray: useArray});\n delete compactedValue[compactedProperty];\n }\n }\n\n if(Object.keys(compactedValue).length > 0) {\n // use keyword alias and add value\n const alias = api.compactIri({\n activeCtx,\n iri: expandedProperty,\n relativeTo: {vocab: true}\n });\n _addValue(rval, alias, compactedValue);\n }\n\n continue;\n }\n\n if(expandedProperty === '@preserve') {\n // compact using activeProperty\n const compactedValue = await api.compact({\n activeCtx,\n activeProperty,\n element: expandedValue,\n options\n });\n\n if(!(_isArray(compactedValue) && compactedValue.length === 0)) {\n _addValue(rval, expandedProperty, compactedValue);\n }\n continue;\n }\n\n // handle @index property\n if(expandedProperty === '@index') {\n // drop @index if inside an @index container\n const container = _getContextValue(\n activeCtx, activeProperty, '@container') || [];\n if(container.includes('@index')) {\n continue;\n }\n\n // use keyword alias and add value\n const alias = api.compactIri({\n activeCtx,\n iri: expandedProperty,\n relativeTo: {vocab: true}\n });\n _addValue(rval, alias, expandedValue);\n continue;\n }\n\n // skip array processing for keywords that aren't\n // @graph, @list, or @included\n if(expandedProperty !== '@graph' && expandedProperty !== '@list' &&\n expandedProperty !== '@included' &&\n _isKeyword(expandedProperty)) {\n // use keyword alias and add value as is\n const alias = api.compactIri({\n activeCtx,\n iri: expandedProperty,\n relativeTo: {vocab: true}\n });\n _addValue(rval, alias, expandedValue);\n continue;\n }\n\n // Note: expanded value must be an array due to expansion algorithm.\n if(!_isArray(expandedValue)) {\n throw new JsonLdError(\n 'JSON-LD expansion error; expanded value must be an array.',\n 'jsonld.SyntaxError');\n }\n\n // preserve empty arrays\n if(expandedValue.length === 0) {\n const itemActiveProperty = api.compactIri({\n activeCtx,\n iri: expandedProperty,\n value: expandedValue,\n relativeTo: {vocab: true},\n reverse: insideReverse\n });\n const nestProperty = activeCtx.mappings.has(itemActiveProperty) ?\n activeCtx.mappings.get(itemActiveProperty)['@nest'] : null;\n let nestResult = rval;\n if(nestProperty) {\n _checkNestProperty(activeCtx, nestProperty, options);\n if(!_isObject(rval[nestProperty])) {\n rval[nestProperty] = {};\n }\n nestResult = rval[nestProperty];\n }\n _addValue(\n nestResult, itemActiveProperty, expandedValue, {\n propertyIsArray: true\n });\n }\n\n // recusively process array values\n for(const expandedItem of expandedValue) {\n // compact property and get container type\n const itemActiveProperty = api.compactIri({\n activeCtx,\n iri: expandedProperty,\n value: expandedItem,\n relativeTo: {vocab: true},\n reverse: insideReverse\n });\n\n // if itemActiveProperty is a @nest property, add values to nestResult,\n // otherwise rval\n const nestProperty = activeCtx.mappings.has(itemActiveProperty) ?\n activeCtx.mappings.get(itemActiveProperty)['@nest'] : null;\n let nestResult = rval;\n if(nestProperty) {\n _checkNestProperty(activeCtx, nestProperty, options);\n if(!_isObject(rval[nestProperty])) {\n rval[nestProperty] = {};\n }\n nestResult = rval[nestProperty];\n }\n\n const container = _getContextValue(\n activeCtx, itemActiveProperty, '@container') || [];\n\n // get simple @graph or @list value if appropriate\n const isGraph = _isGraph(expandedItem);\n const isList = _isList(expandedItem);\n let inner;\n if(isList) {\n inner = expandedItem['@list'];\n } else if(isGraph) {\n inner = expandedItem['@graph'];\n }\n\n // recursively compact expanded item\n let compactedItem = await api.compact({\n activeCtx,\n activeProperty: itemActiveProperty,\n element: (isList || isGraph) ? inner : expandedItem,\n options\n });\n\n // handle @list\n if(isList) {\n // ensure @list value is an array\n if(!_isArray(compactedItem)) {\n compactedItem = [compactedItem];\n }\n\n if(!container.includes('@list')) {\n // wrap using @list alias\n compactedItem = {\n [api.compactIri({\n activeCtx,\n iri: '@list',\n relativeTo: {vocab: true}\n })]: compactedItem\n };\n\n // include @index from expanded @list, if any\n if('@index' in expandedItem) {\n compactedItem[api.compactIri({\n activeCtx,\n iri: '@index',\n relativeTo: {vocab: true}\n })] = expandedItem['@index'];\n }\n } else {\n _addValue(nestResult, itemActiveProperty, compactedItem, {\n valueIsArray: true,\n allowDuplicate: true\n });\n continue;\n }\n }\n\n // Graph object compaction cases\n if(isGraph) {\n if(container.includes('@graph') && (container.includes('@id') ||\n container.includes('@index') && _isSimpleGraph(expandedItem))) {\n // get or create the map object\n let mapObject;\n if(nestResult.hasOwnProperty(itemActiveProperty)) {\n mapObject = nestResult[itemActiveProperty];\n } else {\n nestResult[itemActiveProperty] = mapObject = {};\n }\n\n // index on @id or @index or alias of @none\n const key = (container.includes('@id') ?\n expandedItem['@id'] : expandedItem['@index']) ||\n api.compactIri({activeCtx, iri: '@none',\n relativeTo: {vocab: true}});\n // add compactedItem to map, using value of `@id` or a new blank\n // node identifier\n\n _addValue(\n mapObject, key, compactedItem, {\n propertyIsArray:\n (!options.compactArrays || container.includes('@set'))\n });\n } else if(container.includes('@graph') &&\n _isSimpleGraph(expandedItem)) {\n // container includes @graph but not @id or @index and value is a\n // simple graph object add compact value\n // if compactedItem contains multiple values, it is wrapped in\n // `@included`\n if(_isArray(compactedItem) && compactedItem.length > 1) {\n compactedItem = {'@included': compactedItem};\n }\n _addValue(\n nestResult, itemActiveProperty, compactedItem, {\n propertyIsArray:\n (!options.compactArrays || container.includes('@set'))\n });\n } else {\n // wrap using @graph alias, remove array if only one item and\n // compactArrays not set\n if(_isArray(compactedItem) && compactedItem.length === 1 &&\n options.compactArrays) {\n compactedItem = compactedItem[0];\n }\n compactedItem = {\n [api.compactIri({\n activeCtx,\n iri: '@graph',\n relativeTo: {vocab: true}\n })]: compactedItem\n };\n\n // include @id from expanded graph, if any\n if('@id' in expandedItem) {\n compactedItem[api.compactIri({\n activeCtx,\n iri: '@id',\n relativeTo: {vocab: true}\n })] = expandedItem['@id'];\n }\n\n // include @index from expanded graph, if any\n if('@index' in expandedItem) {\n compactedItem[api.compactIri({\n activeCtx,\n iri: '@index',\n relativeTo: {vocab: true}\n })] = expandedItem['@index'];\n }\n _addValue(\n nestResult, itemActiveProperty, compactedItem, {\n propertyIsArray:\n (!options.compactArrays || container.includes('@set'))\n });\n }\n } else if(container.includes('@language') ||\n container.includes('@index') || container.includes('@id') ||\n container.includes('@type')) {\n // handle language and index maps\n // get or create the map object\n let mapObject;\n if(nestResult.hasOwnProperty(itemActiveProperty)) {\n mapObject = nestResult[itemActiveProperty];\n } else {\n nestResult[itemActiveProperty] = mapObject = {};\n }\n\n let key;\n if(container.includes('@language')) {\n // if container is a language map, simplify compacted value to\n // a simple string\n if(_isValue(compactedItem)) {\n compactedItem = compactedItem['@value'];\n }\n key = expandedItem['@language'];\n } else if(container.includes('@index')) {\n const indexKey = _getContextValue(\n activeCtx, itemActiveProperty, '@index') || '@index';\n const containerKey = api.compactIri(\n {activeCtx, iri: indexKey, relativeTo: {vocab: true}});\n if(indexKey === '@index') {\n key = expandedItem['@index'];\n delete compactedItem[containerKey];\n } else {\n let others;\n [key, ...others] = _asArray(compactedItem[indexKey] || []);\n if(!_isString(key)) {\n // Will use @none if it isn't a string.\n key = null;\n } else {\n switch(others.length) {\n case 0:\n delete compactedItem[indexKey];\n break;\n case 1:\n compactedItem[indexKey] = others[0];\n break;\n default:\n compactedItem[indexKey] = others;\n break;\n }\n }\n }\n } else if(container.includes('@id')) {\n const idKey = api.compactIri({activeCtx, iri: '@id',\n relativeTo: {vocab: true}});\n key = compactedItem[idKey];\n delete compactedItem[idKey];\n } else if(container.includes('@type')) {\n const typeKey = api.compactIri({\n activeCtx,\n iri: '@type',\n relativeTo: {vocab: true}\n });\n let types;\n [key, ...types] = _asArray(compactedItem[typeKey] || []);\n switch(types.length) {\n case 0:\n delete compactedItem[typeKey];\n break;\n case 1:\n compactedItem[typeKey] = types[0];\n break;\n default:\n compactedItem[typeKey] = types;\n break;\n }\n\n // If compactedItem contains a single entry\n // whose key maps to @id, recompact without @type\n if(Object.keys(compactedItem).length === 1 &&\n '@id' in expandedItem) {\n compactedItem = await api.compact({\n activeCtx,\n activeProperty: itemActiveProperty,\n element: {'@id': expandedItem['@id']},\n options\n });\n }\n }\n\n // if compacting this value which has no key, index on @none\n if(!key) {\n key = api.compactIri({activeCtx, iri: '@none',\n relativeTo: {vocab: true}});\n }\n // add compact value to map object using key from expanded value\n // based on the container type\n _addValue(\n mapObject, key, compactedItem, {\n propertyIsArray: container.includes('@set')\n });\n } else {\n // use an array if: compactArrays flag is false,\n // @container is @set or @list , value is an empty\n // array, or key is @graph\n const isArray = (!options.compactArrays ||\n container.includes('@set') || container.includes('@list') ||\n (_isArray(compactedItem) && compactedItem.length === 0) ||\n expandedProperty === '@list' || expandedProperty === '@graph');\n\n // add compact value\n _addValue(\n nestResult, itemActiveProperty, compactedItem,\n {propertyIsArray: isArray});\n }\n }\n }\n\n return rval;\n }\n\n // only primitives remain which are already compact\n return element;\n};\n\n/**\n * Compacts an IRI or keyword into a term or prefix if it can be. If the\n * IRI has an associated value it may be passed.\n *\n * @param activeCtx the active context to use.\n * @param iri the IRI to compact.\n * @param value the value to check or null.\n * @param relativeTo options for how to compact IRIs:\n * vocab: true to split after @vocab, false not to.\n * @param reverse true if a reverse property is being compacted, false if not.\n * @param base the absolute URL to use for compacting document-relative IRIs.\n *\n * @return the compacted term, prefix, keyword alias, or the original IRI.\n */\napi.compactIri = ({\n activeCtx,\n iri,\n value = null,\n relativeTo = {vocab: false},\n reverse = false,\n base = null\n}) => {\n // can't compact null\n if(iri === null) {\n return iri;\n }\n\n // if context is from a property term scoped context composed with a\n // type-scoped context, then use the previous context instead\n if(activeCtx.isPropertyTermScoped && activeCtx.previousContext) {\n activeCtx = activeCtx.previousContext;\n }\n\n const inverseCtx = activeCtx.getInverse();\n\n // if term is a keyword, it may be compacted to a simple alias\n if(_isKeyword(iri) &&\n iri in inverseCtx &&\n '@none' in inverseCtx[iri] &&\n '@type' in inverseCtx[iri]['@none'] &&\n '@none' in inverseCtx[iri]['@none']['@type']) {\n return inverseCtx[iri]['@none']['@type']['@none'];\n }\n\n // use inverse context to pick a term if iri is relative to vocab\n if(relativeTo.vocab && iri in inverseCtx) {\n const defaultLanguage = activeCtx['@language'] || '@none';\n\n // prefer @index if available in value\n const containers = [];\n if(_isObject(value) && '@index' in value && !('@graph' in value)) {\n containers.push('@index', '@index@set');\n }\n\n // if value is a preserve object, use its value\n if(_isObject(value) && '@preserve' in value) {\n value = value['@preserve'][0];\n }\n\n // prefer most specific container including @graph, prefering @set\n // variations\n if(_isGraph(value)) {\n // favor indexmap if the graph is indexed\n if('@index' in value) {\n containers.push(\n '@graph@index', '@graph@index@set', '@index', '@index@set');\n }\n // favor idmap if the graph is has an @id\n if('@id' in value) {\n containers.push(\n '@graph@id', '@graph@id@set');\n }\n containers.push('@graph', '@graph@set', '@set');\n // allow indexmap if the graph is not indexed\n if(!('@index' in value)) {\n containers.push(\n '@graph@index', '@graph@index@set', '@index', '@index@set');\n }\n // allow idmap if the graph does not have an @id\n if(!('@id' in value)) {\n containers.push('@graph@id', '@graph@id@set');\n }\n } else if(_isObject(value) && !_isValue(value)) {\n containers.push('@id', '@id@set', '@type', '@set@type');\n }\n\n // defaults for term selection based on type/language\n let typeOrLanguage = '@language';\n let typeOrLanguageValue = '@null';\n\n if(reverse) {\n typeOrLanguage = '@type';\n typeOrLanguageValue = '@reverse';\n containers.push('@set');\n } else if(_isList(value)) {\n // choose the most specific term that works for all elements in @list\n // only select @list containers if @index is NOT in value\n if(!('@index' in value)) {\n containers.push('@list');\n }\n const list = value['@list'];\n if(list.length === 0) {\n // any empty list can be matched against any term that uses the\n // @list container regardless of @type or @language\n typeOrLanguage = '@any';\n typeOrLanguageValue = '@none';\n } else {\n let commonLanguage = (list.length === 0) ? defaultLanguage : null;\n let commonType = null;\n for(let i = 0; i < list.length; ++i) {\n const item = list[i];\n let itemLanguage = '@none';\n let itemType = '@none';\n if(_isValue(item)) {\n if('@direction' in item) {\n const lang = (item['@language'] || '').toLowerCase();\n const dir = item['@direction'];\n itemLanguage = `${lang}_${dir}`;\n } else if('@language' in item) {\n itemLanguage = item['@language'].toLowerCase();\n } else if('@type' in item) {\n itemType = item['@type'];\n } else {\n // plain literal\n itemLanguage = '@null';\n }\n } else {\n itemType = '@id';\n }\n if(commonLanguage === null) {\n commonLanguage = itemLanguage;\n } else if(itemLanguage !== commonLanguage && _isValue(item)) {\n commonLanguage = '@none';\n }\n if(commonType === null) {\n commonType = itemType;\n } else if(itemType !== commonType) {\n commonType = '@none';\n }\n // there are different languages and types in the list, so choose\n // the most generic term, no need to keep iterating the list\n if(commonLanguage === '@none' && commonType === '@none') {\n break;\n }\n }\n commonLanguage = commonLanguage || '@none';\n commonType = commonType || '@none';\n if(commonType !== '@none') {\n typeOrLanguage = '@type';\n typeOrLanguageValue = commonType;\n } else {\n typeOrLanguageValue = commonLanguage;\n }\n }\n } else {\n if(_isValue(value)) {\n if('@language' in value && !('@index' in value)) {\n containers.push('@language', '@language@set');\n typeOrLanguageValue = value['@language'];\n const dir = value['@direction'];\n if(dir) {\n typeOrLanguageValue = `${typeOrLanguageValue}_${dir}`;\n }\n } else if('@direction' in value && !('@index' in value)) {\n typeOrLanguageValue = `_${value['@direction']}`;\n } else if('@type' in value) {\n typeOrLanguage = '@type';\n typeOrLanguageValue = value['@type'];\n }\n } else {\n typeOrLanguage = '@type';\n typeOrLanguageValue = '@id';\n }\n containers.push('@set');\n }\n\n // do term selection\n containers.push('@none');\n\n // an index map can be used to index values using @none, so add as a low\n // priority\n if(_isObject(value) && !('@index' in value)) {\n // allow indexing even if no @index present\n containers.push('@index', '@index@set');\n }\n\n // values without type or language can use @language map\n if(_isValue(value) && Object.keys(value).length === 1) {\n // allow indexing even if no @index present\n containers.push('@language', '@language@set');\n }\n\n const term = _selectTerm(\n activeCtx, iri, value, containers, typeOrLanguage, typeOrLanguageValue);\n if(term !== null) {\n return term;\n }\n }\n\n // no term match, use @vocab if available\n if(relativeTo.vocab) {\n if('@vocab' in activeCtx) {\n // determine if vocab is a prefix of the iri\n const vocab = activeCtx['@vocab'];\n if(iri.indexOf(vocab) === 0 && iri !== vocab) {\n // use suffix as relative iri if it is not a term in the active context\n const suffix = iri.substr(vocab.length);\n if(!activeCtx.mappings.has(suffix)) {\n return suffix;\n }\n }\n }\n }\n\n // no term or @vocab match, check for possible CURIEs\n let choice = null;\n // TODO: make FastCurieMap a class with a method to do this lookup\n const partialMatches = [];\n let iriMap = activeCtx.fastCurieMap;\n // check for partial matches of against `iri`, which means look until\n // iri.length - 1, not full length\n const maxPartialLength = iri.length - 1;\n for(let i = 0; i < maxPartialLength && iri[i] in iriMap; ++i) {\n iriMap = iriMap[iri[i]];\n if('' in iriMap) {\n partialMatches.push(iriMap[''][0]);\n }\n }\n // check partial matches in reverse order to prefer longest ones first\n for(let i = partialMatches.length - 1; i >= 0; --i) {\n const entry = partialMatches[i];\n const terms = entry.terms;\n for(const term of terms) {\n // a CURIE is usable if:\n // 1. it has no mapping, OR\n // 2. value is null, which means we're not compacting an @value, AND\n // the mapping matches the IRI\n const curie = term + ':' + iri.substr(entry.iri.length);\n const isUsableCurie = (activeCtx.mappings.get(term)._prefix &&\n (!activeCtx.mappings.has(curie) ||\n (value === null && activeCtx.mappings.get(curie)['@id'] === iri)));\n\n // select curie if it is shorter or the same length but lexicographically\n // less than the current choice\n if(isUsableCurie && (choice === null ||\n _compareShortestLeast(curie, choice) < 0)) {\n choice = curie;\n }\n }\n }\n\n // return chosen curie\n if(choice !== null) {\n return choice;\n }\n\n // If iri could be confused with a compact IRI using a term in this context,\n // signal an error\n for(const [term, td] of activeCtx.mappings) {\n if(td && td._prefix && iri.startsWith(term + ':')) {\n throw new JsonLdError(\n `Absolute IRI \"${iri}\" confused with prefix \"${term}\".`,\n 'jsonld.SyntaxError',\n {code: 'IRI confused with prefix', context: activeCtx});\n }\n }\n\n // compact IRI relative to base\n if(!relativeTo.vocab) {\n if('@base' in activeCtx) {\n if(!activeCtx['@base']) {\n // The None case preserves rval as potentially relative\n return iri;\n } else {\n const _iri = _removeBase(_prependBase(base, activeCtx['@base']), iri);\n return REGEX_KEYWORD.test(_iri) ? `./${_iri}` : _iri;\n }\n } else {\n return _removeBase(base, iri);\n }\n }\n\n // return IRI as is\n return iri;\n};\n\n/**\n * Performs value compaction on an object with '@value' or '@id' as the only\n * property.\n *\n * @param activeCtx the active context.\n * @param activeProperty the active property that points to the value.\n * @param value the value to compact.\n * @param {Object} [options] - processing options.\n *\n * @return the compaction result.\n */\napi.compactValue = ({activeCtx, activeProperty, value, options}) => {\n // value is a @value\n if(_isValue(value)) {\n // get context rules\n const type = _getContextValue(activeCtx, activeProperty, '@type');\n const language = _getContextValue(activeCtx, activeProperty, '@language');\n const direction = _getContextValue(activeCtx, activeProperty, '@direction');\n const container =\n _getContextValue(activeCtx, activeProperty, '@container') || [];\n\n // whether or not the value has an @index that must be preserved\n const preserveIndex = '@index' in value && !container.includes('@index');\n\n // if there's no @index to preserve ...\n if(!preserveIndex && type !== '@none') {\n // matching @type or @language specified in context, compact value\n if(value['@type'] === type) {\n return value['@value'];\n }\n if('@language' in value && value['@language'] === language &&\n '@direction' in value && value['@direction'] === direction) {\n return value['@value'];\n }\n if('@language' in value && value['@language'] === language) {\n return value['@value'];\n }\n if('@direction' in value && value['@direction'] === direction) {\n return value['@value'];\n }\n }\n\n // return just the value of @value if all are true:\n // 1. @value is the only key or @index isn't being preserved\n // 2. there is no default language or @value is not a string or\n // the key has a mapping with a null @language\n const keyCount = Object.keys(value).length;\n const isValueOnlyKey = (keyCount === 1 ||\n (keyCount === 2 && '@index' in value && !preserveIndex));\n const hasDefaultLanguage = ('@language' in activeCtx);\n const isValueString = _isString(value['@value']);\n const hasNullMapping = (activeCtx.mappings.has(activeProperty) &&\n activeCtx.mappings.get(activeProperty)['@language'] === null);\n if(isValueOnlyKey &&\n type !== '@none' &&\n (!hasDefaultLanguage || !isValueString || hasNullMapping)) {\n return value['@value'];\n }\n\n const rval = {};\n\n // preserve @index\n if(preserveIndex) {\n rval[api.compactIri({\n activeCtx,\n iri: '@index',\n relativeTo: {vocab: true}\n })] = value['@index'];\n }\n\n if('@type' in value) {\n // compact @type IRI\n rval[api.compactIri({\n activeCtx,\n iri: '@type',\n relativeTo: {vocab: true}\n })] = api.compactIri(\n {activeCtx, iri: value['@type'], relativeTo: {vocab: true}});\n } else if('@language' in value) {\n // alias @language\n rval[api.compactIri({\n activeCtx,\n iri: '@language',\n relativeTo: {vocab: true}\n })] = value['@language'];\n }\n\n if('@direction' in value) {\n // alias @direction\n rval[api.compactIri({\n activeCtx,\n iri: '@direction',\n relativeTo: {vocab: true}\n })] = value['@direction'];\n }\n\n // alias @value\n rval[api.compactIri({\n activeCtx,\n iri: '@value',\n relativeTo: {vocab: true}\n })] = value['@value'];\n\n return rval;\n }\n\n // value is a subject reference\n const expandedProperty = _expandIri(activeCtx, activeProperty, {vocab: true},\n options);\n const type = _getContextValue(activeCtx, activeProperty, '@type');\n const compacted = api.compactIri({\n activeCtx,\n iri: value['@id'],\n relativeTo: {vocab: type === '@vocab'},\n base: options.base});\n\n // compact to scalar\n if(type === '@id' || type === '@vocab' || expandedProperty === '@graph') {\n return compacted;\n }\n\n return {\n [api.compactIri({\n activeCtx,\n iri: '@id',\n relativeTo: {vocab: true}\n })]: compacted\n };\n};\n\n/**\n * Picks the preferred compaction term from the given inverse context entry.\n *\n * @param activeCtx the active context.\n * @param iri the IRI to pick the term for.\n * @param value the value to pick the term for.\n * @param containers the preferred containers.\n * @param typeOrLanguage either '@type' or '@language'.\n * @param typeOrLanguageValue the preferred value for '@type' or '@language'.\n *\n * @return the preferred term.\n */\nfunction _selectTerm(\n activeCtx, iri, value, containers, typeOrLanguage, typeOrLanguageValue) {\n if(typeOrLanguageValue === null) {\n typeOrLanguageValue = '@null';\n }\n\n // preferences for the value of @type or @language\n const prefs = [];\n\n // determine prefs for @id based on whether or not value compacts to a term\n if((typeOrLanguageValue === '@id' || typeOrLanguageValue === '@reverse') &&\n _isObject(value) && '@id' in value) {\n // prefer @reverse first\n if(typeOrLanguageValue === '@reverse') {\n prefs.push('@reverse');\n }\n // try to compact value to a term\n const term = api.compactIri(\n {activeCtx, iri: value['@id'], relativeTo: {vocab: true}});\n if(activeCtx.mappings.has(term) &&\n activeCtx.mappings.get(term) &&\n activeCtx.mappings.get(term)['@id'] === value['@id']) {\n // prefer @vocab\n prefs.push.apply(prefs, ['@vocab', '@id']);\n } else {\n // prefer @id\n prefs.push.apply(prefs, ['@id', '@vocab']);\n }\n } else {\n prefs.push(typeOrLanguageValue);\n\n // consider direction only\n const langDir = prefs.find(el => el.includes('_'));\n if(langDir) {\n // consider _dir portion\n prefs.push(langDir.replace(/^[^_]+_/, '_'));\n }\n }\n prefs.push('@none');\n\n const containerMap = activeCtx.inverse[iri];\n for(const container of containers) {\n // if container not available in the map, continue\n if(!(container in containerMap)) {\n continue;\n }\n\n const typeOrLanguageValueMap = containerMap[container][typeOrLanguage];\n for(const pref of prefs) {\n // if type/language option not available in the map, continue\n if(!(pref in typeOrLanguageValueMap)) {\n continue;\n }\n\n // select term\n return typeOrLanguageValueMap[pref];\n }\n }\n\n return null;\n}\n\n/**\n * The value of `@nest` in the term definition must either be `@nest`, or a term\n * which resolves to `@nest`.\n *\n * @param activeCtx the active context.\n * @param nestProperty a term in the active context or `@nest`.\n * @param {Object} [options] - processing options.\n */\nfunction _checkNestProperty(activeCtx, nestProperty, options) {\n if(_expandIri(activeCtx, nestProperty, {vocab: true}, options) !== '@nest') {\n throw new JsonLdError(\n 'JSON-LD compact error; nested property must have an @nest value ' +\n 'resolving to @nest.',\n 'jsonld.SyntaxError', {code: 'invalid @nest value'});\n }\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nconst XSD = 'http://www.w3.org/2001/XMLSchema#';\n\nmodule.exports = {\n // TODO: Deprecated and will be removed later. Use LINK_HEADER_CONTEXT.\n LINK_HEADER_REL: 'http://www.w3.org/ns/json-ld#context',\n\n LINK_HEADER_CONTEXT: 'http://www.w3.org/ns/json-ld#context',\n\n RDF,\n RDF_LIST: RDF + 'List',\n RDF_FIRST: RDF + 'first',\n RDF_REST: RDF + 'rest',\n RDF_NIL: RDF + 'nil',\n RDF_TYPE: RDF + 'type',\n RDF_PLAIN_LITERAL: RDF + 'PlainLiteral',\n RDF_XML_LITERAL: RDF + 'XMLLiteral',\n RDF_JSON_LITERAL: RDF + 'JSON',\n RDF_OBJECT: RDF + 'object',\n RDF_LANGSTRING: RDF + 'langString',\n\n XSD,\n XSD_BOOLEAN: XSD + 'boolean',\n XSD_DOUBLE: XSD + 'double',\n XSD_INTEGER: XSD + 'integer',\n XSD_STRING: XSD + 'string',\n};\n","/*\n * Copyright (c) 2017-2019 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst util = require('./util');\nconst JsonLdError = require('./JsonLdError');\n\nconst {\n isArray: _isArray,\n isObject: _isObject,\n isString: _isString,\n isUndefined: _isUndefined\n} = require('./types');\n\nconst {\n isAbsolute: _isAbsoluteIri,\n isRelative: _isRelativeIri,\n prependBase\n} = require('./url');\n\nconst {\n handleEvent: _handleEvent\n} = require('./events');\n\nconst {\n REGEX_BCP47,\n REGEX_KEYWORD,\n asArray: _asArray,\n compareShortestLeast: _compareShortestLeast\n} = require('./util');\n\nconst INITIAL_CONTEXT_CACHE = new Map();\nconst INITIAL_CONTEXT_CACHE_MAX_SIZE = 10000;\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Processes a local context and returns a new active context.\n *\n * @param activeCtx the current active context.\n * @param localCtx the local context to process.\n * @param options the context processing options.\n * @param propagate `true` if `false`, retains any previously defined term,\n * which can be rolled back when the descending into a new node object.\n * @param overrideProtected `false` allows protected terms to be modified.\n *\n * @return a Promise that resolves to the new active context.\n */\napi.process = async ({\n activeCtx, localCtx, options,\n propagate = true,\n overrideProtected = false,\n cycles = new Set()\n}) => {\n // normalize local context to an array of @context objects\n if(_isObject(localCtx) && '@context' in localCtx &&\n _isArray(localCtx['@context'])) {\n localCtx = localCtx['@context'];\n }\n const ctxs = _asArray(localCtx);\n\n // no contexts in array, return current active context w/o changes\n if(ctxs.length === 0) {\n return activeCtx;\n }\n\n // event handler for capturing events to replay when using a cached context\n const events = [];\n const eventCaptureHandler = [\n ({event, next}) => {\n events.push(event);\n next();\n }\n ];\n // chain to original handler\n if(options.eventHandler) {\n eventCaptureHandler.push(options.eventHandler);\n }\n // store original options to use when replaying events\n const originalOptions = options;\n // shallow clone options with event capture handler\n options = {...options, eventHandler: eventCaptureHandler};\n\n // resolve contexts\n const resolved = await options.contextResolver.resolve({\n activeCtx,\n context: localCtx,\n documentLoader: options.documentLoader,\n base: options.base\n });\n\n // override propagate if first resolved context has `@propagate`\n if(_isObject(resolved[0].document) &&\n typeof resolved[0].document['@propagate'] === 'boolean') {\n // retrieve early, error checking done later\n propagate = resolved[0].document['@propagate'];\n }\n\n // process each context in order, update active context\n // on each iteration to ensure proper caching\n let rval = activeCtx;\n\n // track the previous context\n // if not propagating, make sure rval has a previous context\n if(!propagate && !rval.previousContext) {\n // clone `rval` context before updating\n rval = rval.clone();\n rval.previousContext = activeCtx;\n }\n\n for(const resolvedContext of resolved) {\n let {document: ctx} = resolvedContext;\n\n // update active context to one computed from last iteration\n activeCtx = rval;\n\n // reset to initial context\n if(ctx === null) {\n // We can't nullify if there are protected terms and we're\n // not allowing overrides (e.g. processing a property term scoped context)\n if(!overrideProtected && Object.keys(activeCtx.protected).length !== 0) {\n throw new JsonLdError(\n 'Tried to nullify a context with protected terms outside of ' +\n 'a term definition.',\n 'jsonld.SyntaxError',\n {code: 'invalid context nullification'});\n }\n rval = activeCtx = api.getInitialContext(options).clone();\n continue;\n }\n\n // get processed context from cache if available\n const processed = resolvedContext.getProcessed(activeCtx);\n if(processed) {\n if(originalOptions.eventHandler) {\n // replay events with original non-capturing options\n for(const event of processed.events) {\n _handleEvent({event, options: originalOptions});\n }\n }\n\n rval = activeCtx = processed.context;\n continue;\n }\n\n // dereference @context key if present\n if(_isObject(ctx) && '@context' in ctx) {\n ctx = ctx['@context'];\n }\n\n // context must be an object by now, all URLs retrieved before this call\n if(!_isObject(ctx)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context must be an object.',\n 'jsonld.SyntaxError', {code: 'invalid local context', context: ctx});\n }\n\n // TODO: there is likely a `previousContext` cloning optimization that\n // could be applied here (no need to copy it under certain conditions)\n\n // clone context before updating it\n rval = rval.clone();\n\n // define context mappings for keys in local context\n const defined = new Map();\n\n // handle @version\n if('@version' in ctx) {\n if(ctx['@version'] !== 1.1) {\n throw new JsonLdError(\n 'Unsupported JSON-LD version: ' + ctx['@version'],\n 'jsonld.UnsupportedVersion',\n {code: 'invalid @version value', context: ctx});\n }\n if(activeCtx.processingMode &&\n activeCtx.processingMode === 'json-ld-1.0') {\n throw new JsonLdError(\n '@version: ' + ctx['@version'] + ' not compatible with ' +\n activeCtx.processingMode,\n 'jsonld.ProcessingModeConflict',\n {code: 'processing mode conflict', context: ctx});\n }\n rval.processingMode = 'json-ld-1.1';\n rval['@version'] = ctx['@version'];\n defined.set('@version', true);\n }\n\n // if not set explicitly, set processingMode to \"json-ld-1.1\"\n rval.processingMode =\n rval.processingMode || activeCtx.processingMode;\n\n // handle @base\n if('@base' in ctx) {\n let base = ctx['@base'];\n\n if(base === null || _isAbsoluteIri(base)) {\n // no action\n } else if(_isRelativeIri(base)) {\n base = prependBase(rval['@base'], base);\n } else {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; the value of \"@base\" in a ' +\n '@context must be an absolute IRI, a relative IRI, or null.',\n 'jsonld.SyntaxError', {code: 'invalid base IRI', context: ctx});\n }\n\n rval['@base'] = base;\n defined.set('@base', true);\n }\n\n // handle @vocab\n if('@vocab' in ctx) {\n const value = ctx['@vocab'];\n if(value === null) {\n delete rval['@vocab'];\n } else if(!_isString(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; the value of \"@vocab\" in a ' +\n '@context must be a string or null.',\n 'jsonld.SyntaxError', {code: 'invalid vocab mapping', context: ctx});\n } else if(!_isAbsoluteIri(value) && api.processingMode(rval, 1.0)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; the value of \"@vocab\" in a ' +\n '@context must be an absolute IRI.',\n 'jsonld.SyntaxError', {code: 'invalid vocab mapping', context: ctx});\n } else {\n const vocab = _expandIri(rval, value, {vocab: true, base: true},\n undefined, undefined, options);\n if(!_isAbsoluteIri(vocab)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative @vocab reference',\n level: 'warning',\n message: 'Relative @vocab reference found.',\n details: {\n vocab\n }\n },\n options\n });\n }\n }\n rval['@vocab'] = vocab;\n }\n defined.set('@vocab', true);\n }\n\n // handle @language\n if('@language' in ctx) {\n const value = ctx['@language'];\n if(value === null) {\n delete rval['@language'];\n } else if(!_isString(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; the value of \"@language\" in a ' +\n '@context must be a string or null.',\n 'jsonld.SyntaxError',\n {code: 'invalid default language', context: ctx});\n } else {\n if(!value.match(REGEX_BCP47)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid @language value',\n level: 'warning',\n message: '@language value must be valid BCP47.',\n details: {\n language: value\n }\n },\n options\n });\n }\n }\n rval['@language'] = value.toLowerCase();\n }\n defined.set('@language', true);\n }\n\n // handle @direction\n if('@direction' in ctx) {\n const value = ctx['@direction'];\n if(activeCtx.processingMode === 'json-ld-1.0') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @direction not compatible with ' +\n activeCtx.processingMode,\n 'jsonld.SyntaxError',\n {code: 'invalid context member', context: ctx});\n }\n if(value === null) {\n delete rval['@direction'];\n } else if(value !== 'ltr' && value !== 'rtl') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; the value of \"@direction\" in a ' +\n '@context must be null, \"ltr\", or \"rtl\".',\n 'jsonld.SyntaxError',\n {code: 'invalid base direction', context: ctx});\n } else {\n rval['@direction'] = value;\n }\n defined.set('@direction', true);\n }\n\n // handle @propagate\n // note: we've already extracted it, here we just do error checking\n if('@propagate' in ctx) {\n const value = ctx['@propagate'];\n if(activeCtx.processingMode === 'json-ld-1.0') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @propagate not compatible with ' +\n activeCtx.processingMode,\n 'jsonld.SyntaxError',\n {code: 'invalid context entry', context: ctx});\n }\n if(typeof value !== 'boolean') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @propagate value must be a boolean.',\n 'jsonld.SyntaxError',\n {code: 'invalid @propagate value', context: localCtx});\n }\n defined.set('@propagate', true);\n }\n\n // handle @import\n if('@import' in ctx) {\n const value = ctx['@import'];\n if(activeCtx.processingMode === 'json-ld-1.0') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @import not compatible with ' +\n activeCtx.processingMode,\n 'jsonld.SyntaxError',\n {code: 'invalid context entry', context: ctx});\n }\n if(!_isString(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @import must be a string.',\n 'jsonld.SyntaxError',\n {code: 'invalid @import value', context: localCtx});\n }\n\n // resolve contexts\n const resolvedImport = await options.contextResolver.resolve({\n activeCtx,\n context: value,\n documentLoader: options.documentLoader,\n base: options.base\n });\n if(resolvedImport.length !== 1) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @import must reference a single context.',\n 'jsonld.SyntaxError',\n {code: 'invalid remote context', context: localCtx});\n }\n const processedImport = resolvedImport[0].getProcessed(activeCtx);\n if(processedImport) {\n // Note: if the same context were used in this active context\n // as a reference context, then processed_input might not\n // be a dict.\n ctx = processedImport;\n } else {\n const importCtx = resolvedImport[0].document;\n if('@import' in importCtx) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax: ' +\n 'imported context must not include @import.',\n 'jsonld.SyntaxError',\n {code: 'invalid context entry', context: localCtx});\n }\n\n // merge ctx into importCtx and replace rval with the result\n for(const key in importCtx) {\n if(!ctx.hasOwnProperty(key)) {\n ctx[key] = importCtx[key];\n }\n }\n\n // Note: this could potenially conflict if the import\n // were used in the same active context as a referenced\n // context and an import. In this case, we\n // could override the cached result, but seems unlikely.\n resolvedImport[0].setProcessed(activeCtx, ctx);\n }\n\n defined.set('@import', true);\n }\n\n // handle @protected; determine whether this sub-context is declaring\n // all its terms to be \"protected\" (exceptions can be made on a\n // per-definition basis)\n defined.set('@protected', ctx['@protected'] || false);\n\n // process all other keys\n for(const key in ctx) {\n api.createTermDefinition({\n activeCtx: rval,\n localCtx: ctx,\n term: key,\n defined,\n options,\n overrideProtected\n });\n\n if(_isObject(ctx[key]) && '@context' in ctx[key]) {\n const keyCtx = ctx[key]['@context'];\n let process = true;\n if(_isString(keyCtx)) {\n const url = prependBase(options.base, keyCtx);\n // track processed contexts to avoid scoped context recursion\n if(cycles.has(url)) {\n process = false;\n } else {\n cycles.add(url);\n }\n }\n // parse context to validate\n if(process) {\n try {\n await api.process({\n activeCtx: rval.clone(),\n localCtx: ctx[key]['@context'],\n overrideProtected: true,\n options,\n cycles\n });\n } catch(e) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; invalid scoped context.',\n 'jsonld.SyntaxError',\n {\n code: 'invalid scoped context',\n context: ctx[key]['@context'],\n term: key\n });\n }\n }\n }\n }\n\n // cache processed result\n resolvedContext.setProcessed(activeCtx, {\n context: rval,\n events\n });\n }\n\n return rval;\n};\n\n/**\n * Creates a term definition during context processing.\n *\n * @param activeCtx the current active context.\n * @param localCtx the local context being processed.\n * @param term the term in the local context to define the mapping for.\n * @param defined a map of defining/defined keys to detect cycles and prevent\n * double definitions.\n * @param {Object} [options] - creation options.\n * @param overrideProtected `false` allows protected terms to be modified.\n */\napi.createTermDefinition = ({\n activeCtx,\n localCtx,\n term,\n defined,\n options,\n overrideProtected = false,\n}) => {\n if(defined.has(term)) {\n // term already defined\n if(defined.get(term)) {\n return;\n }\n // cycle detected\n throw new JsonLdError(\n 'Cyclical context definition detected.',\n 'jsonld.CyclicalContext',\n {code: 'cyclic IRI mapping', context: localCtx, term});\n }\n\n // now defining term\n defined.set(term, false);\n\n // get context term value\n let value;\n if(localCtx.hasOwnProperty(term)) {\n value = localCtx[term];\n }\n\n if(term === '@type' &&\n _isObject(value) &&\n (value['@container'] || '@set') === '@set' &&\n api.processingMode(activeCtx, 1.1)) {\n\n const validKeys = ['@container', '@id', '@protected'];\n const keys = Object.keys(value);\n if(keys.length === 0 || keys.some(k => !validKeys.includes(k))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; keywords cannot be overridden.',\n 'jsonld.SyntaxError',\n {code: 'keyword redefinition', context: localCtx, term});\n }\n } else if(api.isKeyword(term)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; keywords cannot be overridden.',\n 'jsonld.SyntaxError',\n {code: 'keyword redefinition', context: localCtx, term});\n } else if(term.match(REGEX_KEYWORD)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'reserved term',\n level: 'warning',\n message:\n 'Terms beginning with \"@\" are ' +\n 'reserved for future use and dropped.',\n details: {\n term\n }\n },\n options\n });\n }\n return;\n } else if(term === '') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a term cannot be an empty string.',\n 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n\n // keep reference to previous mapping for potential `@protected` check\n const previousMapping = activeCtx.mappings.get(term);\n\n // remove old mapping\n if(activeCtx.mappings.has(term)) {\n activeCtx.mappings.delete(term);\n }\n\n // convert short-hand value to object w/@id\n let simpleTerm = false;\n if(_isString(value) || value === null) {\n simpleTerm = true;\n value = {'@id': value};\n }\n\n if(!_isObject(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context term values must be ' +\n 'strings or objects.',\n 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n\n // create new mapping\n const mapping = {};\n activeCtx.mappings.set(term, mapping);\n mapping.reverse = false;\n\n // make sure term definition only has expected keywords\n const validKeys = ['@container', '@id', '@language', '@reverse', '@type'];\n\n // JSON-LD 1.1 support\n if(api.processingMode(activeCtx, 1.1)) {\n validKeys.push(\n '@context', '@direction', '@index', '@nest', '@prefix', '@protected');\n }\n\n for(const kw in value) {\n if(!validKeys.includes(kw)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a term definition must not contain ' + kw,\n 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n }\n\n // always compute whether term has a colon as an optimization for\n // _compactIri\n const colon = term.indexOf(':');\n mapping._termHasColon = (colon > 0);\n\n if('@reverse' in value) {\n if('@id' in value) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @reverse term definition must not ' +\n 'contain @id.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property', context: localCtx});\n }\n if('@nest' in value) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @reverse term definition must not ' +\n 'contain @nest.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property', context: localCtx});\n }\n const reverse = value['@reverse'];\n if(!_isString(reverse)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @context @reverse value must be a string.',\n 'jsonld.SyntaxError', {code: 'invalid IRI mapping', context: localCtx});\n }\n\n if(reverse.match(REGEX_KEYWORD)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'reserved @reverse value',\n level: 'warning',\n message:\n '@reverse values beginning with \"@\" are ' +\n 'reserved for future use and dropped.',\n details: {\n reverse\n }\n },\n options\n });\n }\n if(previousMapping) {\n activeCtx.mappings.set(term, previousMapping);\n } else {\n activeCtx.mappings.delete(term);\n }\n return;\n }\n\n // expand and add @id mapping\n const id = _expandIri(\n activeCtx, reverse, {vocab: true, base: false}, localCtx, defined,\n options);\n if(!_isAbsoluteIri(id)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @context @reverse value must be an ' +\n 'absolute IRI or a blank node identifier.',\n 'jsonld.SyntaxError', {code: 'invalid IRI mapping', context: localCtx});\n }\n\n mapping['@id'] = id;\n mapping.reverse = true;\n } else if('@id' in value) {\n let id = value['@id'];\n if(id && !_isString(id)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @context @id value must be an array ' +\n 'of strings or a string.',\n 'jsonld.SyntaxError', {code: 'invalid IRI mapping', context: localCtx});\n }\n if(id === null) {\n // reserve a null term, which may be protected\n mapping['@id'] = null;\n } else if(!api.isKeyword(id) && id.match(REGEX_KEYWORD)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'reserved @id value',\n level: 'warning',\n message:\n '@id values beginning with \"@\" are ' +\n 'reserved for future use and dropped.',\n details: {\n id\n }\n },\n options\n });\n }\n if(previousMapping) {\n activeCtx.mappings.set(term, previousMapping);\n } else {\n activeCtx.mappings.delete(term);\n }\n return;\n } else if(id !== term) {\n // expand and add @id mapping\n id = _expandIri(\n activeCtx, id, {vocab: true, base: false}, localCtx, defined, options);\n if(!_isAbsoluteIri(id) && !api.isKeyword(id)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a @context @id value must be an ' +\n 'absolute IRI, a blank node identifier, or a keyword.',\n 'jsonld.SyntaxError',\n {code: 'invalid IRI mapping', context: localCtx});\n }\n\n // if term has the form of an IRI it must map the same\n if(term.match(/(?::[^:])|\\//)) {\n const termDefined = new Map(defined).set(term, true);\n const termIri = _expandIri(\n activeCtx, term, {vocab: true, base: false},\n localCtx, termDefined, options);\n if(termIri !== id) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; term in form of IRI must ' +\n 'expand to definition.',\n 'jsonld.SyntaxError',\n {code: 'invalid IRI mapping', context: localCtx});\n }\n }\n\n mapping['@id'] = id;\n // indicate if this term may be used as a compact IRI prefix\n mapping._prefix = (simpleTerm &&\n !mapping._termHasColon &&\n id.match(/[:\\/\\?#\\[\\]@]$/) !== null);\n }\n }\n\n if(!('@id' in mapping)) {\n // see if the term has a prefix\n if(mapping._termHasColon) {\n const prefix = term.substr(0, colon);\n if(localCtx.hasOwnProperty(prefix)) {\n // define parent prefix\n api.createTermDefinition({\n activeCtx, localCtx, term: prefix, defined, options\n });\n }\n\n if(activeCtx.mappings.has(prefix)) {\n // set @id based on prefix parent\n const suffix = term.substr(colon + 1);\n mapping['@id'] = activeCtx.mappings.get(prefix)['@id'] + suffix;\n } else {\n // term is an absolute IRI\n mapping['@id'] = term;\n }\n } else if(term === '@type') {\n // Special case, were we've previously determined that container is @set\n mapping['@id'] = term;\n } else {\n // non-IRIs *must* define @ids if @vocab is not available\n if(!('@vocab' in activeCtx)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context terms must define an @id.',\n 'jsonld.SyntaxError',\n {code: 'invalid IRI mapping', context: localCtx, term});\n }\n // prepend vocab to term\n mapping['@id'] = activeCtx['@vocab'] + term;\n }\n }\n\n // Handle term protection\n if(value['@protected'] === true ||\n (defined.get('@protected') === true && value['@protected'] !== false)) {\n activeCtx.protected[term] = true;\n mapping.protected = true;\n }\n\n // IRI mapping now defined\n defined.set(term, true);\n\n if('@type' in value) {\n let type = value['@type'];\n if(!_isString(type)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an @context @type value must be a string.',\n 'jsonld.SyntaxError',\n {code: 'invalid type mapping', context: localCtx});\n }\n\n if((type === '@json' || type === '@none')) {\n if(api.processingMode(activeCtx, 1.0)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an @context @type value must not be ' +\n `\"${type}\" in JSON-LD 1.0 mode.`,\n 'jsonld.SyntaxError',\n {code: 'invalid type mapping', context: localCtx});\n }\n } else if(type !== '@id' && type !== '@vocab') {\n // expand @type to full IRI\n type = _expandIri(\n activeCtx, type, {vocab: true, base: false}, localCtx, defined,\n options);\n if(!_isAbsoluteIri(type)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an @context @type value must be an ' +\n 'absolute IRI.',\n 'jsonld.SyntaxError',\n {code: 'invalid type mapping', context: localCtx});\n }\n if(type.indexOf('_:') === 0) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an @context @type value must be an IRI, ' +\n 'not a blank node identifier.',\n 'jsonld.SyntaxError',\n {code: 'invalid type mapping', context: localCtx});\n }\n }\n\n // add @type to mapping\n mapping['@type'] = type;\n }\n\n if('@container' in value) {\n // normalize container to an array form\n const container = _isString(value['@container']) ?\n [value['@container']] : (value['@container'] || []);\n const validContainers = ['@list', '@set', '@index', '@language'];\n let isValid = true;\n const hasSet = container.includes('@set');\n\n // JSON-LD 1.1 support\n if(api.processingMode(activeCtx, 1.1)) {\n validContainers.push('@graph', '@id', '@type');\n\n // check container length\n if(container.includes('@list')) {\n if(container.length !== 1) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @container with @list must ' +\n 'have no other values',\n 'jsonld.SyntaxError',\n {code: 'invalid container mapping', context: localCtx});\n }\n } else if(container.includes('@graph')) {\n if(container.some(key =>\n key !== '@graph' && key !== '@id' && key !== '@index' &&\n key !== '@set')) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @container with @graph must ' +\n 'have no other values other than @id, @index, and @set',\n 'jsonld.SyntaxError',\n {code: 'invalid container mapping', context: localCtx});\n }\n } else {\n // otherwise, container may also include @set\n isValid &= container.length <= (hasSet ? 2 : 1);\n }\n\n if(container.includes('@type')) {\n // If mapping does not have an @type,\n // set it to @id\n mapping['@type'] = mapping['@type'] || '@id';\n\n // type mapping must be either @id or @vocab\n if(!['@id', '@vocab'].includes(mapping['@type'])) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; container: @type requires @type to be ' +\n '@id or @vocab.',\n 'jsonld.SyntaxError',\n {code: 'invalid type mapping', context: localCtx});\n }\n }\n } else {\n // in JSON-LD 1.0, container must not be an array (it must be a string,\n // which is one of the validContainers)\n isValid &= !_isArray(value['@container']);\n\n // check container length\n isValid &= container.length <= 1;\n }\n\n // check against valid containers\n isValid &= container.every(c => validContainers.includes(c));\n\n // @set not allowed with @list\n isValid &= !(hasSet && container.includes('@list'));\n\n if(!isValid) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @container value must be ' +\n 'one of the following: ' + validContainers.join(', '),\n 'jsonld.SyntaxError',\n {code: 'invalid container mapping', context: localCtx});\n }\n\n if(mapping.reverse &&\n !container.every(c => ['@index', '@set'].includes(c))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @container value for a @reverse ' +\n 'type definition must be @index or @set.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property', context: localCtx});\n }\n\n // add @container to mapping\n mapping['@container'] = container;\n }\n\n // property indexing\n if('@index' in value) {\n if(!('@container' in value) || !mapping['@container'].includes('@index')) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @index without @index in @container: ' +\n `\"${value['@index']}\" on term \"${term}\".`, 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n if(!_isString(value['@index']) || value['@index'].indexOf('@') === 0) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @index must expand to an IRI: ' +\n `\"${value['@index']}\" on term \"${term}\".`, 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n mapping['@index'] = value['@index'];\n }\n\n // scoped contexts\n if('@context' in value) {\n mapping['@context'] = value['@context'];\n }\n\n if('@language' in value && !('@type' in value)) {\n let language = value['@language'];\n if(language !== null && !_isString(language)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @language value must be ' +\n 'a string or null.', 'jsonld.SyntaxError',\n {code: 'invalid language mapping', context: localCtx});\n }\n\n // add @language to mapping\n if(language !== null) {\n language = language.toLowerCase();\n }\n mapping['@language'] = language;\n }\n\n // term may be used as a prefix\n if('@prefix' in value) {\n if(term.match(/:|\\//)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @prefix used on a compact IRI term',\n 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n if(api.isKeyword(mapping['@id'])) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; keywords may not be used as prefixes',\n 'jsonld.SyntaxError',\n {code: 'invalid term definition', context: localCtx});\n }\n if(typeof value['@prefix'] === 'boolean') {\n mapping._prefix = value['@prefix'] === true;\n } else {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context value for @prefix must be boolean',\n 'jsonld.SyntaxError',\n {code: 'invalid @prefix value', context: localCtx});\n }\n }\n\n if('@direction' in value) {\n const direction = value['@direction'];\n if(direction !== null && direction !== 'ltr' && direction !== 'rtl') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @direction value must be ' +\n 'null, \"ltr\", or \"rtl\".',\n 'jsonld.SyntaxError',\n {code: 'invalid base direction', context: localCtx});\n }\n mapping['@direction'] = direction;\n }\n\n if('@nest' in value) {\n const nest = value['@nest'];\n if(!_isString(nest) || (nest !== '@nest' && nest.indexOf('@') === 0)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context @nest value must be ' +\n 'a string which is not a keyword other than @nest.',\n 'jsonld.SyntaxError',\n {code: 'invalid @nest value', context: localCtx});\n }\n mapping['@nest'] = nest;\n }\n\n // disallow aliasing @context and @preserve\n const id = mapping['@id'];\n if(id === '@context' || id === '@preserve') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; @context and @preserve cannot be aliased.',\n 'jsonld.SyntaxError', {code: 'invalid keyword alias', context: localCtx});\n }\n\n // Check for overriding protected terms\n if(previousMapping && previousMapping.protected && !overrideProtected) {\n // force new term to continue to be protected and see if the mappings would\n // be equal\n activeCtx.protected[term] = true;\n mapping.protected = true;\n if(!_deepCompare(previousMapping, mapping)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; tried to redefine a protected term.',\n 'jsonld.SyntaxError',\n {code: 'protected term redefinition', context: localCtx, term});\n }\n }\n};\n\n/**\n * Expands a string to a full IRI. The string may be a term, a prefix, a\n * relative IRI, or an absolute IRI. The associated absolute IRI will be\n * returned.\n *\n * @param activeCtx the current active context.\n * @param value the string to expand.\n * @param relativeTo options for how to resolve relative IRIs:\n * base: true to resolve against the base IRI, false not to.\n * vocab: true to concatenate after @vocab, false not to.\n * @param {Object} [options] - processing options.\n *\n * @return the expanded value.\n */\napi.expandIri = (activeCtx, value, relativeTo, options) => {\n return _expandIri(activeCtx, value, relativeTo, undefined, undefined,\n options);\n};\n\n/**\n * Expands a string to a full IRI. The string may be a term, a prefix, a\n * relative IRI, or an absolute IRI. The associated absolute IRI will be\n * returned.\n *\n * @param activeCtx the current active context.\n * @param value the string to expand.\n * @param relativeTo options for how to resolve relative IRIs:\n * base: true to resolve against the base IRI, false not to.\n * vocab: true to concatenate after @vocab, false not to.\n * @param localCtx the local context being processed (only given if called\n * during context processing).\n * @param defined a map for tracking cycles in context definitions (only given\n * if called during context processing).\n * @param {Object} [options] - processing options.\n *\n * @return the expanded value.\n */\nfunction _expandIri(activeCtx, value, relativeTo, localCtx, defined, options) {\n // already expanded\n if(value === null || !_isString(value) || api.isKeyword(value)) {\n return value;\n }\n\n // ignore non-keyword things that look like a keyword\n if(value.match(REGEX_KEYWORD)) {\n return null;\n }\n\n // define term dependency if not defined\n if(localCtx && localCtx.hasOwnProperty(value) &&\n defined.get(value) !== true) {\n api.createTermDefinition({\n activeCtx, localCtx, term: value, defined, options\n });\n }\n\n relativeTo = relativeTo || {};\n if(relativeTo.vocab) {\n const mapping = activeCtx.mappings.get(value);\n\n // value is explicitly ignored with a null mapping\n if(mapping === null) {\n return null;\n }\n\n if(_isObject(mapping) && '@id' in mapping) {\n // value is a term\n return mapping['@id'];\n }\n }\n\n // split value into prefix:suffix\n const colon = value.indexOf(':');\n if(colon > 0) {\n const prefix = value.substr(0, colon);\n const suffix = value.substr(colon + 1);\n\n // do not expand blank nodes (prefix of '_') or already-absolute\n // IRIs (suffix of '//')\n if(prefix === '_' || suffix.indexOf('//') === 0) {\n return value;\n }\n\n // prefix dependency not defined, define it\n if(localCtx && localCtx.hasOwnProperty(prefix)) {\n api.createTermDefinition({\n activeCtx, localCtx, term: prefix, defined, options\n });\n }\n\n // use mapping if prefix is defined\n const mapping = activeCtx.mappings.get(prefix);\n if(mapping && mapping._prefix) {\n return mapping['@id'] + suffix;\n }\n\n // already absolute IRI\n if(_isAbsoluteIri(value)) {\n return value;\n }\n }\n\n // A flag that captures whether the iri being expanded is\n // the value for an @type\n //let typeExpansion = false;\n\n //if(options !== undefined && options.typeExpansion !== undefined) {\n // typeExpansion = options.typeExpansion;\n //}\n\n if(relativeTo.vocab && '@vocab' in activeCtx) {\n // prepend vocab\n const prependedResult = activeCtx['@vocab'] + value;\n // FIXME: needed? may be better as debug event.\n /*\n if(options && options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'prepending @vocab during expansion',\n level: 'info',\n message: 'Prepending @vocab during expansion.',\n details: {\n type: '@vocab',\n vocab: activeCtx['@vocab'],\n value,\n result: prependedResult,\n typeExpansion\n }\n },\n options\n });\n }\n */\n // the null case preserves value as potentially relative\n value = prependedResult;\n } else if(relativeTo.base) {\n // prepend base\n let prependedResult;\n let base;\n if('@base' in activeCtx) {\n if(activeCtx['@base']) {\n base = prependBase(options.base, activeCtx['@base']);\n prependedResult = prependBase(base, value);\n } else {\n base = activeCtx['@base'];\n prependedResult = value;\n }\n } else {\n base = options.base;\n prependedResult = prependBase(options.base, value);\n }\n // FIXME: needed? may be better as debug event.\n /*\n if(options && options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'prepending @base during expansion',\n level: 'info',\n message: 'Prepending @base during expansion.',\n details: {\n type: '@base',\n base,\n value,\n result: prependedResult,\n typeExpansion\n }\n },\n options\n });\n }\n */\n // the null case preserves value as potentially relative\n value = prependedResult;\n }\n\n // FIXME: duplicate? needed? maybe just enable in a verbose debug mode\n /*\n if(!_isAbsoluteIri(value) && options && options.eventHandler) {\n // emit event indicating a relative IRI was found, which can result in it\n // being dropped when converting to other RDF representations\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative IRI after expansion',\n // FIXME: what level?\n level: 'warning',\n message: 'Relative IRI after expansion.',\n details: {\n relativeIri: value,\n typeExpansion\n }\n },\n options\n });\n // NOTE: relative reference events emitted at calling sites as needed\n }\n */\n\n return value;\n}\n\n/**\n * Gets the initial context.\n *\n * @param options the options to use:\n * [base] the document base IRI.\n *\n * @return the initial context.\n */\napi.getInitialContext = options => {\n const key = JSON.stringify({processingMode: options.processingMode});\n const cached = INITIAL_CONTEXT_CACHE.get(key);\n if(cached) {\n return cached;\n }\n\n const initialContext = {\n processingMode: options.processingMode,\n mappings: new Map(),\n inverse: null,\n getInverse: _createInverseContext,\n clone: _cloneActiveContext,\n revertToPreviousContext: _revertToPreviousContext,\n protected: {}\n };\n // TODO: consider using LRU cache instead\n if(INITIAL_CONTEXT_CACHE.size === INITIAL_CONTEXT_CACHE_MAX_SIZE) {\n // clear whole cache -- assumes scenario where the cache fills means\n // the cache isn't being used very efficiently anyway\n INITIAL_CONTEXT_CACHE.clear();\n }\n INITIAL_CONTEXT_CACHE.set(key, initialContext);\n return initialContext;\n\n /**\n * Generates an inverse context for use in the compaction algorithm, if\n * not already generated for the given active context.\n *\n * @return the inverse context.\n */\n function _createInverseContext() {\n const activeCtx = this;\n\n // lazily create inverse\n if(activeCtx.inverse) {\n return activeCtx.inverse;\n }\n const inverse = activeCtx.inverse = {};\n\n // variables for building fast CURIE map\n const fastCurieMap = activeCtx.fastCurieMap = {};\n const irisToTerms = {};\n\n // handle default language\n const defaultLanguage = (activeCtx['@language'] || '@none').toLowerCase();\n\n // handle default direction\n const defaultDirection = activeCtx['@direction'];\n\n // create term selections for each mapping in the context, ordered by\n // shortest and then lexicographically least\n const mappings = activeCtx.mappings;\n const terms = [...mappings.keys()].sort(_compareShortestLeast);\n for(const term of terms) {\n const mapping = mappings.get(term);\n if(mapping === null) {\n continue;\n }\n\n let container = mapping['@container'] || '@none';\n container = [].concat(container).sort().join('');\n\n if(mapping['@id'] === null) {\n continue;\n }\n // iterate over every IRI in the mapping\n const ids = _asArray(mapping['@id']);\n for(const iri of ids) {\n let entry = inverse[iri];\n const isKeyword = api.isKeyword(iri);\n\n if(!entry) {\n // initialize entry\n inverse[iri] = entry = {};\n\n if(!isKeyword && !mapping._termHasColon) {\n // init IRI to term map and fast CURIE prefixes\n irisToTerms[iri] = [term];\n const fastCurieEntry = {iri, terms: irisToTerms[iri]};\n if(iri[0] in fastCurieMap) {\n fastCurieMap[iri[0]].push(fastCurieEntry);\n } else {\n fastCurieMap[iri[0]] = [fastCurieEntry];\n }\n }\n } else if(!isKeyword && !mapping._termHasColon) {\n // add IRI to term match\n irisToTerms[iri].push(term);\n }\n\n // add new entry\n if(!entry[container]) {\n entry[container] = {\n '@language': {},\n '@type': {},\n '@any': {}\n };\n }\n entry = entry[container];\n _addPreferredTerm(term, entry['@any'], '@none');\n\n if(mapping.reverse) {\n // term is preferred for values using @reverse\n _addPreferredTerm(term, entry['@type'], '@reverse');\n } else if(mapping['@type'] === '@none') {\n _addPreferredTerm(term, entry['@any'], '@none');\n _addPreferredTerm(term, entry['@language'], '@none');\n _addPreferredTerm(term, entry['@type'], '@none');\n } else if('@type' in mapping) {\n // term is preferred for values using specific type\n _addPreferredTerm(term, entry['@type'], mapping['@type']);\n } else if('@language' in mapping && '@direction' in mapping) {\n // term is preferred for values using specific language and direction\n const language = mapping['@language'];\n const direction = mapping['@direction'];\n if(language && direction) {\n _addPreferredTerm(term, entry['@language'],\n `${language}_${direction}`.toLowerCase());\n } else if(language) {\n _addPreferredTerm(term, entry['@language'], language.toLowerCase());\n } else if(direction) {\n _addPreferredTerm(term, entry['@language'], `_${direction}`);\n } else {\n _addPreferredTerm(term, entry['@language'], '@null');\n }\n } else if('@language' in mapping) {\n _addPreferredTerm(term, entry['@language'],\n (mapping['@language'] || '@null').toLowerCase());\n } else if('@direction' in mapping) {\n if(mapping['@direction']) {\n _addPreferredTerm(term, entry['@language'],\n `_${mapping['@direction']}`);\n } else {\n _addPreferredTerm(term, entry['@language'], '@none');\n }\n } else if(defaultDirection) {\n _addPreferredTerm(term, entry['@language'], `_${defaultDirection}`);\n _addPreferredTerm(term, entry['@language'], '@none');\n _addPreferredTerm(term, entry['@type'], '@none');\n } else {\n // add entries for no type and no language\n _addPreferredTerm(term, entry['@language'], defaultLanguage);\n _addPreferredTerm(term, entry['@language'], '@none');\n _addPreferredTerm(term, entry['@type'], '@none');\n }\n }\n }\n\n // build fast CURIE map\n for(const key in fastCurieMap) {\n _buildIriMap(fastCurieMap, key, 1);\n }\n\n return inverse;\n }\n\n /**\n * Runs a recursive algorithm to build a lookup map for quickly finding\n * potential CURIEs.\n *\n * @param iriMap the map to build.\n * @param key the current key in the map to work on.\n * @param idx the index into the IRI to compare.\n */\n function _buildIriMap(iriMap, key, idx) {\n const entries = iriMap[key];\n const next = iriMap[key] = {};\n\n let iri;\n let letter;\n for(const entry of entries) {\n iri = entry.iri;\n if(idx >= iri.length) {\n letter = '';\n } else {\n letter = iri[idx];\n }\n if(letter in next) {\n next[letter].push(entry);\n } else {\n next[letter] = [entry];\n }\n }\n\n for(const key in next) {\n if(key === '') {\n continue;\n }\n _buildIriMap(next, key, idx + 1);\n }\n }\n\n /**\n * Adds the term for the given entry if not already added.\n *\n * @param term the term to add.\n * @param entry the inverse context typeOrLanguage entry to add to.\n * @param typeOrLanguageValue the key in the entry to add to.\n */\n function _addPreferredTerm(term, entry, typeOrLanguageValue) {\n if(!entry.hasOwnProperty(typeOrLanguageValue)) {\n entry[typeOrLanguageValue] = term;\n }\n }\n\n /**\n * Clones an active context, creating a child active context.\n *\n * @return a clone (child) of the active context.\n */\n function _cloneActiveContext() {\n const child = {};\n child.mappings = util.clone(this.mappings);\n child.clone = this.clone;\n child.inverse = null;\n child.getInverse = this.getInverse;\n child.protected = util.clone(this.protected);\n if(this.previousContext) {\n child.previousContext = this.previousContext.clone();\n }\n child.revertToPreviousContext = this.revertToPreviousContext;\n if('@base' in this) {\n child['@base'] = this['@base'];\n }\n if('@language' in this) {\n child['@language'] = this['@language'];\n }\n if('@vocab' in this) {\n child['@vocab'] = this['@vocab'];\n }\n return child;\n }\n\n /**\n * Reverts any type-scoped context in this active context to the previous\n * context.\n */\n function _revertToPreviousContext() {\n if(!this.previousContext) {\n return this;\n }\n return this.previousContext.clone();\n }\n};\n\n/**\n * Gets the value for the given active context key and type, null if none is\n * set or undefined if none is set and type is '@context'.\n *\n * @param ctx the active context.\n * @param key the context key.\n * @param [type] the type of value to get (eg: '@id', '@type'), if not\n * specified gets the entire entry for a key, null if not found.\n *\n * @return the value, null, or undefined.\n */\napi.getContextValue = (ctx, key, type) => {\n // invalid key\n if(key === null) {\n if(type === '@context') {\n return undefined;\n }\n return null;\n }\n\n // get specific entry information\n if(ctx.mappings.has(key)) {\n const entry = ctx.mappings.get(key);\n\n if(_isUndefined(type)) {\n // return whole entry\n return entry;\n }\n if(entry.hasOwnProperty(type)) {\n // return entry value for type\n return entry[type];\n }\n }\n\n // get default language\n if(type === '@language' && type in ctx) {\n return ctx[type];\n }\n\n // get default direction\n if(type === '@direction' && type in ctx) {\n return ctx[type];\n }\n\n if(type === '@context') {\n return undefined;\n }\n return null;\n};\n\n/**\n * Processing Mode check.\n *\n * @param activeCtx the current active context.\n * @param version the string or numeric version to check.\n *\n * @return boolean.\n */\napi.processingMode = (activeCtx, version) => {\n if(version.toString() >= '1.1') {\n return !activeCtx.processingMode ||\n activeCtx.processingMode >= 'json-ld-' + version.toString();\n } else {\n return activeCtx.processingMode === 'json-ld-1.0';\n }\n};\n\n/**\n * Returns whether or not the given value is a keyword.\n *\n * @param v the value to check.\n *\n * @return true if the value is a keyword, false if not.\n */\napi.isKeyword = v => {\n if(!_isString(v) || v[0] !== '@') {\n return false;\n }\n switch(v) {\n case '@base':\n case '@container':\n case '@context':\n case '@default':\n case '@direction':\n case '@embed':\n case '@explicit':\n case '@graph':\n case '@id':\n case '@included':\n case '@index':\n case '@json':\n case '@language':\n case '@list':\n case '@nest':\n case '@none':\n case '@omitDefault':\n case '@prefix':\n case '@preserve':\n case '@protected':\n case '@requireAll':\n case '@reverse':\n case '@set':\n case '@type':\n case '@value':\n case '@version':\n case '@vocab':\n return true;\n }\n return false;\n};\n\nfunction _deepCompare(x1, x2) {\n // compare `null` or primitive types directly\n if((!(x1 && typeof x1 === 'object')) ||\n (!(x2 && typeof x2 === 'object'))) {\n return x1 === x2;\n }\n // x1 and x2 are objects (also potentially arrays)\n const x1Array = Array.isArray(x1);\n if(x1Array !== Array.isArray(x2)) {\n return false;\n }\n if(x1Array) {\n if(x1.length !== x2.length) {\n return false;\n }\n for(let i = 0; i < x1.length; ++i) {\n if(!_deepCompare(x1[i], x2[i])) {\n return false;\n }\n }\n return true;\n }\n // x1 and x2 are non-array objects\n const k1s = Object.keys(x1);\n const k2s = Object.keys(x2);\n if(k1s.length !== k2s.length) {\n return false;\n }\n for(const k1 in x1) {\n let v1 = x1[k1];\n let v2 = x2[k1];\n // special case: `@container` can be in any order\n if(k1 === '@container') {\n if(Array.isArray(v1) && Array.isArray(v2)) {\n v1 = v1.slice().sort();\n v2 = v2.slice().sort();\n }\n }\n if(!_deepCompare(v1, v2)) {\n return false;\n }\n }\n return true;\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {parseLinkHeader, buildHeaders} = require('../util');\nconst {LINK_HEADER_CONTEXT} = require('../constants');\nconst JsonLdError = require('../JsonLdError');\nconst RequestQueue = require('../RequestQueue');\nconst {prependBase} = require('../url');\n\nconst REGEX_LINK_HEADER = /(^|(\\r\\n))link:/i;\n\n/**\n * Creates a built-in XMLHttpRequest document loader.\n *\n * @param options the options to use:\n * secure: require all URLs to use HTTPS.\n * headers: an object (map) of headers which will be passed as request\n * headers for the requested document. Accept is not allowed.\n * [xhr]: the XMLHttpRequest API to use.\n *\n * @return the XMLHttpRequest document loader.\n */\nmodule.exports = ({\n secure,\n headers = {},\n xhr\n} = {headers: {}}) => {\n headers = buildHeaders(headers);\n const queue = new RequestQueue();\n return queue.wrapLoader(loader);\n\n async function loader(url) {\n if(url.indexOf('http:') !== 0 && url.indexOf('https:') !== 0) {\n throw new JsonLdError(\n 'URL could not be dereferenced; only \"http\" and \"https\" URLs are ' +\n 'supported.',\n 'jsonld.InvalidUrl', {code: 'loading document failed', url});\n }\n if(secure && url.indexOf('https') !== 0) {\n throw new JsonLdError(\n 'URL could not be dereferenced; secure mode is enabled and ' +\n 'the URL\\'s scheme is not \"https\".',\n 'jsonld.InvalidUrl', {code: 'loading document failed', url});\n }\n\n let req;\n try {\n req = await _get(xhr, url, headers);\n } catch(e) {\n throw new JsonLdError(\n 'URL could not be dereferenced, an error occurred.',\n 'jsonld.LoadDocumentError',\n {code: 'loading document failed', url, cause: e});\n }\n\n if(req.status >= 400) {\n throw new JsonLdError(\n 'URL could not be dereferenced: ' + req.statusText,\n 'jsonld.LoadDocumentError', {\n code: 'loading document failed',\n url,\n httpStatusCode: req.status\n });\n }\n\n let doc = {contextUrl: null, documentUrl: url, document: req.response};\n let alternate = null;\n\n // handle Link Header (avoid unsafe header warning by existence testing)\n const contentType = req.getResponseHeader('Content-Type');\n let linkHeader;\n if(REGEX_LINK_HEADER.test(req.getAllResponseHeaders())) {\n linkHeader = req.getResponseHeader('Link');\n }\n if(linkHeader && contentType !== 'application/ld+json') {\n // only 1 related link header permitted\n const linkHeaders = parseLinkHeader(linkHeader);\n const linkedContext = linkHeaders[LINK_HEADER_CONTEXT];\n if(Array.isArray(linkedContext)) {\n throw new JsonLdError(\n 'URL could not be dereferenced, it has more than one ' +\n 'associated HTTP Link Header.',\n 'jsonld.InvalidUrl',\n {code: 'multiple context link headers', url});\n }\n if(linkedContext) {\n doc.contextUrl = linkedContext.target;\n }\n\n // \"alternate\" link header is a redirect\n alternate = linkHeaders.alternate;\n if(alternate &&\n alternate.type == 'application/ld+json' &&\n !(contentType || '').match(/^application\\/(\\w*\\+)?json$/)) {\n doc = await loader(prependBase(url, alternate.target));\n }\n }\n\n return doc;\n }\n};\n\nfunction _get(xhr, url, headers) {\n xhr = xhr || XMLHttpRequest;\n const req = new xhr();\n return new Promise((resolve, reject) => {\n req.onload = () => resolve(req);\n req.onerror = err => reject(err);\n req.open('GET', url, true);\n for(const k in headers) {\n req.setRequestHeader(k, headers[k]);\n }\n req.send();\n });\n}\n","/*\n * Copyright (c) 2020 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst JsonLdError = require('./JsonLdError');\n\nconst {\n isArray: _isArray\n} = require('./types');\n\nconst {\n asArray: _asArray\n} = require('./util');\n\nconst api = {};\nmodule.exports = api;\n\n// default handler, store as null or an array\n// exposed to allow fast external pre-handleEvent() checks\napi.defaultEventHandler = null;\n\n/**\n * Setup event handler.\n *\n * Return an array event handler constructed from an optional safe mode\n * handler, an optional options event handler, and an optional default handler.\n *\n * @param {object} options - processing options\n * {function|object|array} [eventHandler] - an event handler.\n *\n * @return an array event handler.\n */\napi.setupEventHandler = ({options = {}}) => {\n // build in priority order\n const eventHandler = [].concat(\n options.safe ? api.safeEventHandler : [],\n options.eventHandler ? _asArray(options.eventHandler) : [],\n api.defaultEventHandler ? api.defaultEventHandler : []\n );\n // null if no handlers\n return eventHandler.length === 0 ? null : eventHandler;\n};\n\n/**\n * Handle an event.\n *\n * Top level APIs have a common 'eventHandler' option. This option can be a\n * function, array of functions, object mapping event.code to functions (with a\n * default to call next()), or any combination of such handlers. Handlers will\n * be called with an object with an 'event' entry and a 'next' function. Custom\n * handlers should process the event as appropriate. The 'next()' function\n * should be called to let the next handler process the event.\n *\n * NOTE: Only call this function if options.eventHandler is set and is an\n * array of hanlers. This is an optimization. Callers are expected to check\n * for an event handler before constructing events and calling this function.\n *\n * @param {object} event - event structure:\n * {string} code - event code\n * {string} level - severity level, one of: ['warning']\n * {string} message - human readable message\n * {object} details - event specific details\n * @param {object} options - processing options\n * {array} eventHandler - an event handler array.\n */\napi.handleEvent = ({\n event,\n options\n}) => {\n _handle({event, handlers: options.eventHandler});\n};\n\nfunction _handle({event, handlers}) {\n let doNext = true;\n for(let i = 0; doNext && i < handlers.length; ++i) {\n doNext = false;\n const handler = handlers[i];\n if(_isArray(handler)) {\n doNext = _handle({event, handlers: handler});\n } else if(typeof handler === 'function') {\n handler({event, next: () => {\n doNext = true;\n }});\n } else if(typeof handler === 'object') {\n if(event.code in handler) {\n handler[event.code]({event, next: () => {\n doNext = true;\n }});\n } else {\n doNext = true;\n }\n } else {\n throw new JsonLdError(\n 'Invalid event handler.',\n 'jsonld.InvalidEventHandler',\n {event});\n }\n }\n return doNext;\n}\n\nconst _notSafeEventCodes = new Set([\n 'empty object',\n 'free-floating scalar',\n 'invalid @language value',\n 'invalid property',\n // NOTE: spec edge case\n 'null @id value',\n 'null @value value',\n 'object with only @id',\n 'object with only @language',\n 'object with only @list',\n 'object with only @value',\n 'relative @id reference',\n 'relative @type reference',\n 'relative @vocab reference',\n 'reserved @id value',\n 'reserved @reverse value',\n 'reserved term',\n // toRDF\n 'blank node predicate',\n 'relative graph reference',\n 'relative object reference',\n 'relative predicate reference',\n 'relative subject reference',\n // toRDF / fromRDF\n 'rdfDirection not set'\n]);\n\n// safe handler that rejects unsafe warning conditions\napi.safeEventHandler = function safeEventHandler({event, next}) {\n // fail on all unsafe warnings\n if(event.level === 'warning' && _notSafeEventCodes.has(event.code)) {\n throw new JsonLdError(\n 'Safe mode validation error.',\n 'jsonld.ValidationError',\n {event}\n );\n }\n next();\n};\n\n// logs all events and continues\napi.logEventHandler = function logEventHandler({event, next}) {\n console.log(`EVENT: ${event.message}`, {event});\n next();\n};\n\n// log 'warning' level events\napi.logWarningEventHandler = function logWarningEventHandler({event, next}) {\n if(event.level === 'warning') {\n console.warn(`WARNING: ${event.message}`, {event});\n }\n next();\n};\n\n// fallback to throw errors for any unhandled events\napi.unhandledEventHandler = function unhandledEventHandler({event}) {\n throw new JsonLdError(\n 'No handler for event.',\n 'jsonld.UnhandledEvent',\n {event}\n );\n};\n\n/**\n * Set default event handler.\n *\n * By default, all event are unhandled. It is recommended to pass in an\n * eventHandler into each call. However, this call allows using a default\n * eventHandler when one is not otherwise provided.\n *\n * @param {object} options - default handler options:\n * {function|object|array} eventHandler - a default event handler.\n * falsey to unset.\n */\napi.setDefaultEventHandler = function({eventHandler} = {}) {\n api.defaultEventHandler = eventHandler ? _asArray(eventHandler) : null;\n};\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst JsonLdError = require('./JsonLdError');\n\nconst {\n isArray: _isArray,\n isObject: _isObject,\n isEmptyObject: _isEmptyObject,\n isString: _isString,\n isUndefined: _isUndefined\n} = require('./types');\n\nconst {\n isList: _isList,\n isValue: _isValue,\n isGraph: _isGraph,\n isSubject: _isSubject\n} = require('./graphTypes');\n\nconst {\n expandIri: _expandIri,\n getContextValue: _getContextValue,\n isKeyword: _isKeyword,\n process: _processContext,\n processingMode: _processingMode\n} = require('./context');\n\nconst {\n isAbsolute: _isAbsoluteIri\n} = require('./url');\n\nconst {\n REGEX_BCP47,\n REGEX_KEYWORD,\n addValue: _addValue,\n asArray: _asArray,\n getValues: _getValues,\n validateTypeValue: _validateTypeValue\n} = require('./util');\n\nconst {\n handleEvent: _handleEvent\n} = require('./events');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Recursively expands an element using the given context. Any context in\n * the element will be removed. All context URLs must have been retrieved\n * before calling this method.\n *\n * @param activeCtx the context to use.\n * @param activeProperty the property for the element, null for none.\n * @param element the element to expand.\n * @param options the expansion options.\n * @param insideList true if the element is a list, false if not.\n * @param insideIndex true if the element is inside an index container,\n * false if not.\n * @param typeScopedContext an optional type-scoped active context for\n * expanding values of nodes that were expressed according to\n * a type-scoped context.\n *\n * @return a Promise that resolves to the expanded value.\n */\napi.expand = async ({\n activeCtx,\n activeProperty = null,\n element,\n options = {},\n insideList = false,\n insideIndex = false,\n typeScopedContext = null\n}) => {\n // nothing to expand\n if(element === null || element === undefined) {\n return null;\n }\n\n // disable framing if activeProperty is @default\n if(activeProperty === '@default') {\n options = Object.assign({}, options, {isFrame: false});\n }\n\n if(!_isArray(element) && !_isObject(element)) {\n // drop free-floating scalars that are not in lists\n if(!insideList && (activeProperty === null ||\n _expandIri(activeCtx, activeProperty, {vocab: true},\n options) === '@graph')) {\n // FIXME\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'free-floating scalar',\n level: 'warning',\n message: 'Dropping free-floating scalar not in a list.',\n details: {\n value: element\n //activeProperty\n //insideList\n }\n },\n options\n });\n }\n return null;\n }\n\n // expand element according to value expansion rules\n return _expandValue({activeCtx, activeProperty, value: element, options});\n }\n\n // recursively expand array\n if(_isArray(element)) {\n let rval = [];\n const container = _getContextValue(\n activeCtx, activeProperty, '@container') || [];\n insideList = insideList || container.includes('@list');\n for(let i = 0; i < element.length; ++i) {\n // expand element\n let e = await api.expand({\n activeCtx,\n activeProperty,\n element: element[i],\n options,\n insideIndex,\n typeScopedContext\n });\n if(insideList && _isArray(e)) {\n e = {'@list': e};\n }\n\n if(e === null) {\n // FIXME: add debug event?\n //unmappedValue: element[i],\n //activeProperty,\n //parent: element,\n //index: i,\n //expandedParent: rval,\n //insideList\n\n // NOTE: no-value events emitted at calling sites as needed\n continue;\n }\n\n if(_isArray(e)) {\n rval = rval.concat(e);\n } else {\n rval.push(e);\n }\n }\n return rval;\n }\n\n // recursively expand object:\n\n // first, expand the active property\n const expandedActiveProperty = _expandIri(\n activeCtx, activeProperty, {vocab: true}, options);\n\n // Get any property-scoped context for activeProperty\n const propertyScopedCtx =\n _getContextValue(activeCtx, activeProperty, '@context');\n\n // second, determine if any type-scoped context should be reverted; it\n // should only be reverted when the following are all true:\n // 1. `element` is not a value or subject reference\n // 2. `insideIndex` is false\n typeScopedContext = typeScopedContext ||\n (activeCtx.previousContext ? activeCtx : null);\n let keys = Object.keys(element).sort();\n let mustRevert = !insideIndex;\n if(mustRevert && typeScopedContext && keys.length <= 2 &&\n !keys.includes('@context')) {\n for(const key of keys) {\n const expandedProperty = _expandIri(\n typeScopedContext, key, {vocab: true}, options);\n if(expandedProperty === '@value') {\n // value found, ensure type-scoped context is used to expand it\n mustRevert = false;\n activeCtx = typeScopedContext;\n break;\n }\n if(expandedProperty === '@id' && keys.length === 1) {\n // subject reference found, do not revert\n mustRevert = false;\n break;\n }\n }\n }\n\n if(mustRevert) {\n // revert type scoped context\n activeCtx = activeCtx.revertToPreviousContext();\n }\n\n // apply property-scoped context after reverting term-scoped context\n if(!_isUndefined(propertyScopedCtx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: propertyScopedCtx,\n propagate: true,\n overrideProtected: true,\n options\n });\n }\n\n // if element has a context, process it\n if('@context' in element) {\n activeCtx = await _processContext(\n {activeCtx, localCtx: element['@context'], options});\n }\n\n // set the type-scoped context to the context on input, for use later\n typeScopedContext = activeCtx;\n\n // Remember the first key found expanding to @type\n let typeKey = null;\n\n // look for scoped contexts on `@type`\n for(const key of keys) {\n const expandedProperty = _expandIri(activeCtx, key, {vocab: true}, options);\n if(expandedProperty === '@type') {\n // set scoped contexts from @type\n // avoid sorting if possible\n typeKey = typeKey || key;\n const value = element[key];\n const types =\n Array.isArray(value) ?\n (value.length > 1 ? value.slice().sort() : value) : [value];\n for(const type of types) {\n const ctx = _getContextValue(typeScopedContext, type, '@context');\n if(!_isUndefined(ctx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: ctx,\n options,\n propagate: false\n });\n }\n }\n }\n }\n\n // process each key and value in element, ignoring @nest content\n let rval = {};\n await _expandObject({\n activeCtx,\n activeProperty,\n expandedActiveProperty,\n element,\n expandedParent: rval,\n options,\n insideList,\n typeKey,\n typeScopedContext\n });\n\n // get property count on expanded output\n keys = Object.keys(rval);\n let count = keys.length;\n\n if('@value' in rval) {\n // @value must only have @language or @type\n if('@type' in rval && ('@language' in rval || '@direction' in rval)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an element containing \"@value\" may not ' +\n 'contain both \"@type\" and either \"@language\" or \"@direction\".',\n 'jsonld.SyntaxError', {code: 'invalid value object', element: rval});\n }\n let validCount = count - 1;\n if('@type' in rval) {\n validCount -= 1;\n }\n if('@index' in rval) {\n validCount -= 1;\n }\n if('@language' in rval) {\n validCount -= 1;\n }\n if('@direction' in rval) {\n validCount -= 1;\n }\n if(validCount !== 0) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an element containing \"@value\" may only ' +\n 'have an \"@index\" property and either \"@type\" ' +\n 'or either or both \"@language\" or \"@direction\".',\n 'jsonld.SyntaxError', {code: 'invalid value object', element: rval});\n }\n const values = rval['@value'] === null ? [] : _asArray(rval['@value']);\n const types = _getValues(rval, '@type');\n\n // drop null @values\n if(_processingMode(activeCtx, 1.1) && types.includes('@json') &&\n types.length === 1) {\n // Any value of @value is okay if @type: @json\n } else if(values.length === 0) {\n // FIXME\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'null @value value',\n level: 'warning',\n message: 'Dropping null @value value.',\n details: {\n value: rval\n }\n },\n options\n });\n }\n rval = null;\n } else if(!values.every(v => (_isString(v) || _isEmptyObject(v))) &&\n '@language' in rval) {\n // if @language is present, @value must be a string\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; only strings may be language-tagged.',\n 'jsonld.SyntaxError',\n {code: 'invalid language-tagged value', element: rval});\n } else if(!types.every(t =>\n (_isAbsoluteIri(t) && !(_isString(t) && t.indexOf('_:') === 0) ||\n _isEmptyObject(t)))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; an element containing \"@value\" and \"@type\" ' +\n 'must have an absolute IRI for the value of \"@type\".',\n 'jsonld.SyntaxError', {code: 'invalid typed value', element: rval});\n }\n } else if('@type' in rval && !_isArray(rval['@type'])) {\n // convert @type to an array\n rval['@type'] = [rval['@type']];\n } else if('@set' in rval || '@list' in rval) {\n // handle @set and @list\n if(count > 1 && !(count === 2 && '@index' in rval)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; if an element has the property \"@set\" ' +\n 'or \"@list\", then it can have at most one other property that is ' +\n '\"@index\".', 'jsonld.SyntaxError',\n {code: 'invalid set or list object', element: rval});\n }\n // optimize away @set\n if('@set' in rval) {\n rval = rval['@set'];\n keys = Object.keys(rval);\n count = keys.length;\n }\n } else if(count === 1 && '@language' in rval) {\n // drop objects with only @language\n // FIXME\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'object with only @language',\n level: 'warning',\n message: 'Dropping object with only @language.',\n details: {\n value: rval\n }\n },\n options\n });\n }\n rval = null;\n }\n\n // drop certain top-level objects that do not occur in lists\n if(_isObject(rval) &&\n !options.keepFreeFloatingNodes && !insideList &&\n (activeProperty === null ||\n expandedActiveProperty === '@graph' ||\n (_getContextValue(activeCtx, activeProperty, '@container') || [])\n .includes('@graph')\n )) {\n // drop empty object, top-level @value/@list, or object with only @id\n rval = _dropUnsafeObject({value: rval, count, options});\n }\n\n return rval;\n};\n\n/**\n * Drop empty object, top-level @value/@list, or object with only @id\n *\n * @param value Value to check.\n * @param count Number of properties in object.\n * @param options The expansion options.\n *\n * @return null if dropped, value otherwise.\n */\nfunction _dropUnsafeObject({\n value,\n count,\n options\n}) {\n if(count === 0 || '@value' in value || '@list' in value ||\n (count === 1 && '@id' in value)) {\n // FIXME\n if(options.eventHandler) {\n // FIXME: one event or diff event for empty, @v/@l, {@id}?\n let code;\n let message;\n if(count === 0) {\n code = 'empty object';\n message = 'Dropping empty object.';\n } else if('@value' in value) {\n code = 'object with only @value';\n message = 'Dropping object with only @value.';\n } else if('@list' in value) {\n code = 'object with only @list';\n message = 'Dropping object with only @list.';\n } else if(count === 1 && '@id' in value) {\n code = 'object with only @id';\n message = 'Dropping object with only @id.';\n }\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code,\n level: 'warning',\n message,\n details: {\n value\n }\n },\n options\n });\n }\n return null;\n }\n return value;\n}\n\n/**\n * Expand each key and value of element adding to result\n *\n * @param activeCtx the context to use.\n * @param activeProperty the property for the element.\n * @param expandedActiveProperty the expansion of activeProperty\n * @param element the element to expand.\n * @param expandedParent the expanded result into which to add values.\n * @param options the expansion options.\n * @param insideList true if the element is a list, false if not.\n * @param typeKey first key found expanding to @type.\n * @param typeScopedContext the context before reverting.\n */\nasync function _expandObject({\n activeCtx,\n activeProperty,\n expandedActiveProperty,\n element,\n expandedParent,\n options = {},\n insideList,\n typeKey,\n typeScopedContext\n}) {\n const keys = Object.keys(element).sort();\n const nests = [];\n let unexpandedValue;\n\n // Figure out if this is the type for a JSON literal\n const isJsonType = element[typeKey] &&\n _expandIri(activeCtx,\n (_isArray(element[typeKey]) ? element[typeKey][0] : element[typeKey]),\n {vocab: true}, {\n ...options,\n typeExpansion: true\n }) === '@json';\n\n for(const key of keys) {\n let value = element[key];\n let expandedValue;\n\n // skip @context\n if(key === '@context') {\n continue;\n }\n\n // expand property\n const expandedProperty = _expandIri(activeCtx, key, {vocab: true}, options);\n\n // drop non-absolute IRI keys that aren't keywords\n if(expandedProperty === null ||\n !(_isAbsoluteIri(expandedProperty) || _isKeyword(expandedProperty))) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid property',\n level: 'warning',\n message: 'Dropping property that did not expand into an ' +\n 'absolute IRI or keyword.',\n details: {\n property: key,\n expandedProperty\n }\n },\n options\n });\n }\n continue;\n }\n\n if(_isKeyword(expandedProperty)) {\n if(expandedActiveProperty === '@reverse') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a keyword cannot be used as a @reverse ' +\n 'property.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property map', value});\n }\n if(expandedProperty in expandedParent &&\n expandedProperty !== '@included' &&\n expandedProperty !== '@type') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; colliding keywords detected.',\n 'jsonld.SyntaxError',\n {code: 'colliding keywords', keyword: expandedProperty});\n }\n }\n\n // syntax error if @id is not a string\n if(expandedProperty === '@id') {\n if(!_isString(value)) {\n if(!options.isFrame) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@id\" value must a string.',\n 'jsonld.SyntaxError', {code: 'invalid @id value', value});\n }\n if(_isObject(value)) {\n // empty object is a wildcard\n if(!_isEmptyObject(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@id\" value an empty object or array ' +\n 'of strings, if framing',\n 'jsonld.SyntaxError', {code: 'invalid @id value', value});\n }\n } else if(_isArray(value)) {\n if(!value.every(v => _isString(v))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@id\" value an empty object or array ' +\n 'of strings, if framing',\n 'jsonld.SyntaxError', {code: 'invalid @id value', value});\n }\n } else {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@id\" value an empty object or array ' +\n 'of strings, if framing',\n 'jsonld.SyntaxError', {code: 'invalid @id value', value});\n }\n }\n\n _addValue(\n expandedParent, '@id',\n _asArray(value).map(v => {\n if(_isString(v)) {\n const ve = _expandIri(activeCtx, v, {base: true}, options);\n if(options.eventHandler) {\n if(ve === null) {\n // NOTE: spec edge case\n // See https://github.com/w3c/json-ld-api/issues/480\n if(v === null) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'null @id value',\n level: 'warning',\n message: 'Null @id found.',\n details: {\n id: v\n }\n },\n options\n });\n } else {\n // matched KEYWORD regex\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'reserved @id value',\n level: 'warning',\n message: 'Reserved @id found.',\n details: {\n id: v\n }\n },\n options\n });\n }\n } else if(!_isAbsoluteIri(ve)) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative @id reference',\n level: 'warning',\n message: 'Relative @id reference found.',\n details: {\n id: v,\n expandedId: ve\n }\n },\n options\n });\n }\n }\n return ve;\n }\n return v;\n }),\n {propertyIsArray: options.isFrame});\n continue;\n }\n\n if(expandedProperty === '@type') {\n // if framing, can be a default object, but need to expand\n // key to determine that\n if(_isObject(value)) {\n value = Object.fromEntries(Object.entries(value).map(([k, v]) => [\n _expandIri(typeScopedContext, k, {vocab: true}),\n _asArray(v).map(vv =>\n _expandIri(typeScopedContext, vv, {base: true, vocab: true},\n {...options, typeExpansion: true})\n )\n ]));\n }\n _validateTypeValue(value, options.isFrame);\n _addValue(\n expandedParent, '@type',\n _asArray(value).map(v => {\n if(_isString(v)) {\n const ve = _expandIri(typeScopedContext, v,\n {base: true, vocab: true},\n {...options, typeExpansion: true});\n if(ve !== '@json' && !_isAbsoluteIri(ve)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative @type reference',\n level: 'warning',\n message: 'Relative @type reference found.',\n details: {\n type: v\n }\n },\n options\n });\n }\n }\n return ve;\n }\n return v;\n }),\n {propertyIsArray: !!options.isFrame});\n continue;\n }\n\n // Included blocks are treated as an array of separate object nodes sharing\n // the same referencing active_property.\n // For 1.0, it is skipped as are other unknown keywords\n if(expandedProperty === '@included' && _processingMode(activeCtx, 1.1)) {\n const includedResult = _asArray(await api.expand({\n activeCtx,\n activeProperty,\n element: value,\n options\n }));\n\n // Expanded values must be node objects\n if(!includedResult.every(v => _isSubject(v))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; ' +\n 'values of @included must expand to node objects.',\n 'jsonld.SyntaxError', {code: 'invalid @included value', value});\n }\n\n _addValue(\n expandedParent, '@included', includedResult, {propertyIsArray: true});\n continue;\n }\n\n // @graph must be an array or an object\n if(expandedProperty === '@graph' &&\n !(_isObject(value) || _isArray(value))) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@graph\" value must not be an ' +\n 'object or an array.',\n 'jsonld.SyntaxError', {code: 'invalid @graph value', value});\n }\n\n if(expandedProperty === '@value') {\n // capture value for later\n // \"colliding keywords\" check prevents this from being set twice\n unexpandedValue = value;\n if(isJsonType && _processingMode(activeCtx, 1.1)) {\n // no coercion to array, and retain all values\n expandedParent['@value'] = value;\n } else {\n _addValue(\n expandedParent, '@value', value, {propertyIsArray: options.isFrame});\n }\n continue;\n }\n\n // @language must be a string\n // it should match BCP47\n if(expandedProperty === '@language') {\n if(value === null) {\n // drop null @language values, they expand as if they didn't exist\n continue;\n }\n if(!_isString(value) && !options.isFrame) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@language\" value must be a string.',\n 'jsonld.SyntaxError',\n {code: 'invalid language-tagged string', value});\n }\n // ensure language value is lowercase\n value = _asArray(value).map(v => _isString(v) ? v.toLowerCase() : v);\n\n // ensure language tag matches BCP47\n for(const language of value) {\n if(_isString(language) && !language.match(REGEX_BCP47)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid @language value',\n level: 'warning',\n message: '@language value must be valid BCP47.',\n details: {\n language\n }\n },\n options\n });\n }\n }\n }\n\n _addValue(\n expandedParent, '@language', value, {propertyIsArray: options.isFrame});\n continue;\n }\n\n // @direction must be \"ltr\" or \"rtl\"\n if(expandedProperty === '@direction') {\n if(!_isString(value) && !options.isFrame) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@direction\" value must be a string.',\n 'jsonld.SyntaxError',\n {code: 'invalid base direction', value});\n }\n\n value = _asArray(value);\n\n // ensure direction is \"ltr\" or \"rtl\"\n for(const dir of value) {\n if(_isString(dir) && dir !== 'ltr' && dir !== 'rtl') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@direction\" must be \"ltr\" or \"rtl\".',\n 'jsonld.SyntaxError',\n {code: 'invalid base direction', value});\n }\n }\n\n _addValue(\n expandedParent, '@direction', value,\n {propertyIsArray: options.isFrame});\n continue;\n }\n\n // @index must be a string\n if(expandedProperty === '@index') {\n if(!_isString(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@index\" value must be a string.',\n 'jsonld.SyntaxError',\n {code: 'invalid @index value', value});\n }\n _addValue(expandedParent, '@index', value);\n continue;\n }\n\n // @reverse must be an object\n if(expandedProperty === '@reverse') {\n if(!_isObject(value)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@reverse\" value must be an object.',\n 'jsonld.SyntaxError', {code: 'invalid @reverse value', value});\n }\n\n expandedValue = await api.expand({\n activeCtx,\n activeProperty: '@reverse',\n element: value,\n options\n });\n // properties double-reversed\n if('@reverse' in expandedValue) {\n for(const property in expandedValue['@reverse']) {\n _addValue(\n expandedParent, property, expandedValue['@reverse'][property],\n {propertyIsArray: true});\n }\n }\n\n // FIXME: can this be merged with code below to simplify?\n // merge in all reversed properties\n let reverseMap = expandedParent['@reverse'] || null;\n for(const property in expandedValue) {\n if(property === '@reverse') {\n continue;\n }\n if(reverseMap === null) {\n reverseMap = expandedParent['@reverse'] = {};\n }\n _addValue(reverseMap, property, [], {propertyIsArray: true});\n const items = expandedValue[property];\n for(let ii = 0; ii < items.length; ++ii) {\n const item = items[ii];\n if(_isValue(item) || _isList(item)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@reverse\" value must not be a ' +\n '@value or an @list.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property value', value: expandedValue});\n }\n _addValue(reverseMap, property, item, {propertyIsArray: true});\n }\n }\n\n continue;\n }\n\n // nested keys\n if(expandedProperty === '@nest') {\n nests.push(key);\n continue;\n }\n\n // use potential scoped context for key\n let termCtx = activeCtx;\n const ctx = _getContextValue(activeCtx, key, '@context');\n if(!_isUndefined(ctx)) {\n termCtx = await _processContext({\n activeCtx,\n localCtx: ctx,\n propagate: true,\n overrideProtected: true,\n options\n });\n }\n\n const container = _getContextValue(activeCtx, key, '@container') || [];\n\n if(container.includes('@language') && _isObject(value)) {\n const direction = _getContextValue(termCtx, key, '@direction');\n // handle language map container (skip if value is not an object)\n expandedValue = _expandLanguageMap(termCtx, value, direction, options);\n } else if(container.includes('@index') && _isObject(value)) {\n // handle index container (skip if value is not an object)\n const asGraph = container.includes('@graph');\n const indexKey = _getContextValue(termCtx, key, '@index') || '@index';\n const propertyIndex = indexKey !== '@index' &&\n _expandIri(activeCtx, indexKey, {vocab: true}, options);\n\n expandedValue = await _expandIndexMap({\n activeCtx: termCtx,\n options,\n activeProperty: key,\n value,\n asGraph,\n indexKey,\n propertyIndex\n });\n } else if(container.includes('@id') && _isObject(value)) {\n // handle id container (skip if value is not an object)\n const asGraph = container.includes('@graph');\n expandedValue = await _expandIndexMap({\n activeCtx: termCtx,\n options,\n activeProperty: key,\n value,\n asGraph,\n indexKey: '@id'\n });\n } else if(container.includes('@type') && _isObject(value)) {\n // handle type container (skip if value is not an object)\n expandedValue = await _expandIndexMap({\n // since container is `@type`, revert type scoped context when expanding\n activeCtx: termCtx.revertToPreviousContext(),\n options,\n activeProperty: key,\n value,\n asGraph: false,\n indexKey: '@type'\n });\n } else {\n // recurse into @list or @set\n const isList = expandedProperty === '@list';\n if(isList || expandedProperty === '@set') {\n let nextActiveProperty = activeProperty;\n if(isList && expandedActiveProperty === '@graph') {\n nextActiveProperty = null;\n }\n expandedValue = await api.expand({\n activeCtx: termCtx,\n activeProperty: nextActiveProperty,\n element: value,\n options,\n insideList: isList\n });\n } else if(\n _getContextValue(activeCtx, key, '@type') === '@json') {\n expandedValue = {\n '@type': '@json',\n '@value': value\n };\n } else {\n // recursively expand value with key as new active property\n expandedValue = await api.expand({\n activeCtx: termCtx,\n activeProperty: key,\n element: value,\n options,\n insideList: false\n });\n }\n }\n\n // drop null values if property is not @value\n if(expandedValue === null && expandedProperty !== '@value') {\n // FIXME: event?\n //unmappedValue: value,\n //expandedProperty,\n //key,\n continue;\n }\n\n // convert expanded value to @list if container specifies it\n if(expandedProperty !== '@list' && !_isList(expandedValue) &&\n container.includes('@list')) {\n // ensure expanded value in @list is an array\n expandedValue = {'@list': _asArray(expandedValue)};\n }\n\n // convert expanded value to @graph if container specifies it\n // and value is not, itself, a graph\n // index cases handled above\n if(container.includes('@graph') &&\n !container.some(key => key === '@id' || key === '@index')) {\n // ensure expanded values are in an array\n expandedValue = _asArray(expandedValue);\n if(!options.isFrame) {\n // drop items if needed\n expandedValue = expandedValue.filter(v => {\n const count = Object.keys(v).length;\n return _dropUnsafeObject({value: v, count, options}) !== null;\n });\n }\n if(expandedValue.length === 0) {\n // all items dropped, skip adding and continue\n continue;\n }\n // convert to graph\n expandedValue = expandedValue.map(v => ({'@graph': _asArray(v)}));\n }\n\n // FIXME: can this be merged with code above to simplify?\n // merge in reverse properties\n if(termCtx.mappings.has(key) && termCtx.mappings.get(key).reverse) {\n const reverseMap =\n expandedParent['@reverse'] = expandedParent['@reverse'] || {};\n expandedValue = _asArray(expandedValue);\n for(let ii = 0; ii < expandedValue.length; ++ii) {\n const item = expandedValue[ii];\n if(_isValue(item) || _isList(item)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@reverse\" value must not be a ' +\n '@value or an @list.', 'jsonld.SyntaxError',\n {code: 'invalid reverse property value', value: expandedValue});\n }\n _addValue(reverseMap, expandedProperty, item, {propertyIsArray: true});\n }\n continue;\n }\n\n // add value for property\n // special keywords handled above\n _addValue(expandedParent, expandedProperty, expandedValue, {\n propertyIsArray: true\n });\n }\n\n // @value must not be an object or an array (unless framing) or if @type is\n // @json\n if('@value' in expandedParent) {\n if(expandedParent['@type'] === '@json' && _processingMode(activeCtx, 1.1)) {\n // allow any value, to be verified when the object is fully expanded and\n // the @type is @json.\n } else if((_isObject(unexpandedValue) || _isArray(unexpandedValue)) &&\n !options.isFrame) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@value\" value must not be an ' +\n 'object or an array.',\n 'jsonld.SyntaxError',\n {code: 'invalid value object value', value: unexpandedValue});\n }\n }\n\n // expand each nested key\n for(const key of nests) {\n const nestedValues = _isArray(element[key]) ? element[key] : [element[key]];\n for(const nv of nestedValues) {\n if(!_isObject(nv) || Object.keys(nv).some(k =>\n _expandIri(activeCtx, k, {vocab: true}, options) === '@value')) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; nested value must be a node object.',\n 'jsonld.SyntaxError',\n {code: 'invalid @nest value', value: nv});\n }\n await _expandObject({\n activeCtx,\n activeProperty,\n expandedActiveProperty,\n element: nv,\n expandedParent,\n options,\n insideList,\n typeScopedContext,\n typeKey\n });\n }\n }\n}\n\n/**\n * Expands the given value by using the coercion and keyword rules in the\n * given context.\n *\n * @param activeCtx the active context to use.\n * @param activeProperty the active property the value is associated with.\n * @param value the value to expand.\n * @param {Object} [options] - processing options.\n *\n * @return the expanded value.\n */\nfunction _expandValue({activeCtx, activeProperty, value, options}) {\n // nothing to expand\n if(value === null || value === undefined) {\n return null;\n }\n\n // special-case expand @id and @type (skips '@id' expansion)\n const expandedProperty = _expandIri(\n activeCtx, activeProperty, {vocab: true}, options);\n if(expandedProperty === '@id') {\n return _expandIri(activeCtx, value, {base: true}, options);\n } else if(expandedProperty === '@type') {\n return _expandIri(activeCtx, value, {vocab: true, base: true},\n {...options, typeExpansion: true});\n }\n\n // get type definition from context\n const type = _getContextValue(activeCtx, activeProperty, '@type');\n\n // do @id expansion (automatic for @graph)\n if((type === '@id' || expandedProperty === '@graph') && _isString(value)) {\n const expandedValue = _expandIri(activeCtx, value, {base: true}, options);\n // NOTE: handle spec edge case and avoid invalid {\"@id\": null}\n if(expandedValue === null && value.match(REGEX_KEYWORD)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'reserved @id value',\n level: 'warning',\n message: 'Reserved @id found.',\n details: {\n id: activeProperty\n }\n },\n options\n });\n }\n }\n return {'@id': expandedValue};\n }\n // do @id expansion w/vocab\n if(type === '@vocab' && _isString(value)) {\n return {\n '@id': _expandIri(activeCtx, value, {vocab: true, base: true}, options)\n };\n }\n\n // do not expand keyword values\n if(_isKeyword(expandedProperty)) {\n return value;\n }\n\n const rval = {};\n\n if(type && !['@id', '@vocab', '@none'].includes(type)) {\n // other type\n rval['@type'] = type;\n } else if(_isString(value)) {\n // check for language tagging for strings\n const language = _getContextValue(activeCtx, activeProperty, '@language');\n if(language !== null) {\n rval['@language'] = language;\n }\n const direction = _getContextValue(activeCtx, activeProperty, '@direction');\n if(direction !== null) {\n rval['@direction'] = direction;\n }\n }\n // do conversion of values that aren't basic JSON types to strings\n if(!['boolean', 'number', 'string'].includes(typeof value)) {\n value = value.toString();\n }\n rval['@value'] = value;\n\n return rval;\n}\n\n/**\n * Expands a language map.\n *\n * @param activeCtx the active context to use.\n * @param languageMap the language map to expand.\n * @param direction the direction to apply to values.\n * @param {Object} [options] - processing options.\n *\n * @return the expanded language map.\n */\nfunction _expandLanguageMap(activeCtx, languageMap, direction, options) {\n const rval = [];\n const keys = Object.keys(languageMap).sort();\n for(const key of keys) {\n const expandedKey = _expandIri(activeCtx, key, {vocab: true}, options);\n let val = languageMap[key];\n if(!_isArray(val)) {\n val = [val];\n }\n for(const item of val) {\n if(item === null) {\n // null values are allowed (8.5) but ignored (3.1)\n continue;\n }\n if(!_isString(item)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; language map values must be strings.',\n 'jsonld.SyntaxError',\n {code: 'invalid language map value', languageMap});\n }\n const val = {'@value': item};\n if(expandedKey !== '@none') {\n if(!key.match(REGEX_BCP47)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid @language value',\n level: 'warning',\n message: '@language value must be valid BCP47.',\n details: {\n language: key\n }\n },\n options\n });\n }\n }\n val['@language'] = key.toLowerCase();\n }\n if(direction) {\n val['@direction'] = direction;\n }\n rval.push(val);\n }\n }\n return rval;\n}\n\nasync function _expandIndexMap({\n activeCtx, options, activeProperty, value, asGraph, indexKey, propertyIndex\n}) {\n const rval = [];\n const keys = Object.keys(value).sort();\n const isTypeIndex = indexKey === '@type';\n for(let key of keys) {\n // if indexKey is @type, there may be a context defined for it\n if(isTypeIndex) {\n const ctx = _getContextValue(activeCtx, key, '@context');\n if(!_isUndefined(ctx)) {\n activeCtx = await _processContext({\n activeCtx,\n localCtx: ctx,\n propagate: false,\n options\n });\n }\n }\n\n let val = value[key];\n if(!_isArray(val)) {\n val = [val];\n }\n\n val = await api.expand({\n activeCtx,\n activeProperty,\n element: val,\n options,\n insideList: false,\n insideIndex: true\n });\n\n // expand for @type, but also for @none\n let expandedKey;\n if(propertyIndex) {\n if(key === '@none') {\n expandedKey = '@none';\n } else {\n expandedKey = _expandValue(\n {activeCtx, activeProperty: indexKey, value: key, options});\n }\n } else {\n expandedKey = _expandIri(activeCtx, key, {vocab: true}, options);\n }\n\n if(indexKey === '@id') {\n // expand document relative\n key = _expandIri(activeCtx, key, {base: true}, options);\n } else if(isTypeIndex) {\n key = expandedKey;\n }\n\n for(let item of val) {\n // If this is also a @graph container, turn items into graphs\n if(asGraph && !_isGraph(item)) {\n item = {'@graph': [item]};\n }\n if(indexKey === '@type') {\n if(expandedKey === '@none') {\n // ignore @none\n } else if(item['@type']) {\n item['@type'] = [key].concat(item['@type']);\n } else {\n item['@type'] = [key];\n }\n } else if(_isValue(item) &&\n !['@language', '@type', '@index'].includes(indexKey)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; Attempt to add illegal key to value ' +\n `object: \"${indexKey}\".`,\n 'jsonld.SyntaxError',\n {code: 'invalid value object', value: item});\n } else if(propertyIndex) {\n // index is a property to be expanded, and values interpreted for that\n // property\n if(expandedKey !== '@none') {\n // expand key as a value\n _addValue(item, propertyIndex, expandedKey, {\n propertyIsArray: true,\n prependValue: true\n });\n }\n } else if(expandedKey !== '@none' && !(indexKey in item)) {\n item[indexKey] = key;\n }\n rval.push(item);\n }\n }\n return rval;\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {\n isSubjectReference: _isSubjectReference\n} = require('./graphTypes');\n\nconst {\n createMergedNodeMap: _createMergedNodeMap\n} = require('./nodeMap');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Performs JSON-LD flattening.\n *\n * @param input the expanded JSON-LD to flatten.\n *\n * @return the flattened output.\n */\napi.flatten = input => {\n const defaultGraph = _createMergedNodeMap(input);\n\n // produce flattened output\n const flattened = [];\n const keys = Object.keys(defaultGraph).sort();\n for(let ki = 0; ki < keys.length; ++ki) {\n const node = defaultGraph[keys[ki]];\n // only add full subjects to top-level\n if(!_isSubjectReference(node)) {\n flattened.push(node);\n }\n }\n return flattened;\n};\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {isKeyword} = require('./context');\nconst graphTypes = require('./graphTypes');\nconst types = require('./types');\nconst util = require('./util');\nconst url = require('./url');\nconst JsonLdError = require('./JsonLdError');\nconst {\n createNodeMap: _createNodeMap,\n mergeNodeMapGraphs: _mergeNodeMapGraphs\n} = require('./nodeMap');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Performs JSON-LD `merged` framing.\n *\n * @param input the expanded JSON-LD to frame.\n * @param frame the expanded JSON-LD frame to use.\n * @param options the framing options.\n *\n * @return the framed output.\n */\napi.frameMergedOrDefault = (input, frame, options) => {\n // create framing state\n const state = {\n options,\n embedded: false,\n graph: '@default',\n graphMap: {'@default': {}},\n subjectStack: [],\n link: {},\n bnodeMap: {}\n };\n\n // produce a map of all graphs and name each bnode\n // FIXME: currently uses subjects from @merged graph only\n const issuer = new util.IdentifierIssuer('_:b');\n _createNodeMap(input, state.graphMap, '@default', issuer);\n if(options.merged) {\n state.graphMap['@merged'] = _mergeNodeMapGraphs(state.graphMap);\n state.graph = '@merged';\n }\n state.subjects = state.graphMap[state.graph];\n\n // frame the subjects\n const framed = [];\n api.frame(state, Object.keys(state.subjects).sort(), frame, framed);\n\n // If pruning blank nodes, find those to prune\n if(options.pruneBlankNodeIdentifiers) {\n // remove all blank nodes appearing only once, done in compaction\n options.bnodesToClear =\n Object.keys(state.bnodeMap).filter(id => state.bnodeMap[id].length === 1);\n }\n\n // remove @preserve from results\n options.link = {};\n return _cleanupPreserve(framed, options);\n};\n\n/**\n * Frames subjects according to the given frame.\n *\n * @param state the current framing state.\n * @param subjects the subjects to filter.\n * @param frame the frame.\n * @param parent the parent subject or top-level array.\n * @param property the parent property, initialized to null.\n */\napi.frame = (state, subjects, frame, parent, property = null) => {\n // validate the frame\n _validateFrame(frame);\n frame = frame[0];\n\n // get flags for current frame\n const options = state.options;\n const flags = {\n embed: _getFrameFlag(frame, options, 'embed'),\n explicit: _getFrameFlag(frame, options, 'explicit'),\n requireAll: _getFrameFlag(frame, options, 'requireAll')\n };\n\n // get link for current graph\n if(!state.link.hasOwnProperty(state.graph)) {\n state.link[state.graph] = {};\n }\n const link = state.link[state.graph];\n\n // filter out subjects that match the frame\n const matches = _filterSubjects(state, subjects, frame, flags);\n\n // add matches to output\n const ids = Object.keys(matches).sort();\n for(const id of ids) {\n const subject = matches[id];\n\n /* Note: In order to treat each top-level match as a compartmentalized\n result, clear the unique embedded subjects map when the property is null,\n which only occurs at the top-level. */\n if(property === null) {\n state.uniqueEmbeds = {[state.graph]: {}};\n } else {\n state.uniqueEmbeds[state.graph] = state.uniqueEmbeds[state.graph] || {};\n }\n\n if(flags.embed === '@link' && id in link) {\n // TODO: may want to also match an existing linked subject against\n // the current frame ... so different frames could produce different\n // subjects that are only shared in-memory when the frames are the same\n\n // add existing linked subject\n _addFrameOutput(parent, property, link[id]);\n continue;\n }\n\n // start output for subject\n const output = {'@id': id};\n if(id.indexOf('_:') === 0) {\n util.addValue(state.bnodeMap, id, output, {propertyIsArray: true});\n }\n link[id] = output;\n\n // validate @embed\n if((flags.embed === '@first' || flags.embed === '@last') && state.is11) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; invalid value of @embed.',\n 'jsonld.SyntaxError', {code: 'invalid @embed value', frame});\n }\n\n if(!state.embedded && state.uniqueEmbeds[state.graph].hasOwnProperty(id)) {\n // skip adding this node object to the top level, as it was\n // already included in another node object\n continue;\n }\n\n // if embed is @never or if a circular reference would be created by an\n // embed, the subject cannot be embedded, just add the reference;\n // note that a circular reference won't occur when the embed flag is\n // `@link` as the above check will short-circuit before reaching this point\n if(state.embedded &&\n (flags.embed === '@never' ||\n _createsCircularReference(subject, state.graph, state.subjectStack))) {\n _addFrameOutput(parent, property, output);\n continue;\n }\n\n // if only the first (or once) should be embedded\n if(state.embedded &&\n (flags.embed == '@first' || flags.embed == '@once') &&\n state.uniqueEmbeds[state.graph].hasOwnProperty(id)) {\n _addFrameOutput(parent, property, output);\n continue;\n }\n\n // if only the last match should be embedded\n if(flags.embed === '@last') {\n // remove any existing embed\n if(id in state.uniqueEmbeds[state.graph]) {\n _removeEmbed(state, id);\n }\n }\n\n state.uniqueEmbeds[state.graph][id] = {parent, property};\n\n // push matching subject onto stack to enable circular embed checks\n state.subjectStack.push({subject, graph: state.graph});\n\n // subject is also the name of a graph\n if(id in state.graphMap) {\n let recurse = false;\n let subframe = null;\n if(!('@graph' in frame)) {\n recurse = state.graph !== '@merged';\n subframe = {};\n } else {\n subframe = frame['@graph'][0];\n recurse = !(id === '@merged' || id === '@default');\n if(!types.isObject(subframe)) {\n subframe = {};\n }\n }\n\n if(recurse) {\n // recurse into graph\n api.frame(\n {...state, graph: id, embedded: false},\n Object.keys(state.graphMap[id]).sort(), [subframe], output, '@graph');\n }\n }\n\n // if frame has @included, recurse over its sub-frame\n if('@included' in frame) {\n api.frame(\n {...state, embedded: false},\n subjects, frame['@included'], output, '@included');\n }\n\n // iterate over subject properties\n for(const prop of Object.keys(subject).sort()) {\n // copy keywords to output\n if(isKeyword(prop)) {\n output[prop] = util.clone(subject[prop]);\n\n if(prop === '@type') {\n // count bnode values of @type\n for(const type of subject['@type']) {\n if(type.indexOf('_:') === 0) {\n util.addValue(\n state.bnodeMap, type, output, {propertyIsArray: true});\n }\n }\n }\n continue;\n }\n\n // explicit is on and property isn't in the frame, skip processing\n if(flags.explicit && !(prop in frame)) {\n continue;\n }\n\n // add objects\n for(const o of subject[prop]) {\n const subframe = (prop in frame ?\n frame[prop] : _createImplicitFrame(flags));\n\n // recurse into list\n if(graphTypes.isList(o)) {\n const subframe =\n (frame[prop] && frame[prop][0] && frame[prop][0]['@list']) ?\n frame[prop][0]['@list'] :\n _createImplicitFrame(flags);\n\n // add empty list\n const list = {'@list': []};\n _addFrameOutput(output, prop, list);\n\n // add list objects\n const src = o['@list'];\n for(const oo of src) {\n if(graphTypes.isSubjectReference(oo)) {\n // recurse into subject reference\n api.frame(\n {...state, embedded: true},\n [oo['@id']], subframe, list, '@list');\n } else {\n // include other values automatically\n _addFrameOutput(list, '@list', util.clone(oo));\n }\n }\n } else if(graphTypes.isSubjectReference(o)) {\n // recurse into subject reference\n api.frame(\n {...state, embedded: true},\n [o['@id']], subframe, output, prop);\n } else if(_valueMatch(subframe[0], o)) {\n // include other values, if they match\n _addFrameOutput(output, prop, util.clone(o));\n }\n }\n }\n\n // handle defaults\n for(const prop of Object.keys(frame).sort()) {\n // skip keywords\n if(prop === '@type') {\n if(!types.isObject(frame[prop][0]) ||\n !('@default' in frame[prop][0])) {\n continue;\n }\n // allow through default types\n } else if(isKeyword(prop)) {\n continue;\n }\n\n // if omit default is off, then include default values for properties\n // that appear in the next frame but are not in the matching subject\n const next = frame[prop][0] || {};\n const omitDefaultOn = _getFrameFlag(next, options, 'omitDefault');\n if(!omitDefaultOn && !(prop in output)) {\n let preserve = '@null';\n if('@default' in next) {\n preserve = util.clone(next['@default']);\n }\n if(!types.isArray(preserve)) {\n preserve = [preserve];\n }\n output[prop] = [{'@preserve': preserve}];\n }\n }\n\n // if embed reverse values by finding nodes having this subject as a value\n // of the associated property\n for(const reverseProp of Object.keys(frame['@reverse'] || {}).sort()) {\n const subframe = frame['@reverse'][reverseProp];\n for(const subject of Object.keys(state.subjects)) {\n const nodeValues =\n util.getValues(state.subjects[subject], reverseProp);\n if(nodeValues.some(v => v['@id'] === id)) {\n // node has property referencing this subject, recurse\n output['@reverse'] = output['@reverse'] || {};\n util.addValue(\n output['@reverse'], reverseProp, [], {propertyIsArray: true});\n api.frame(\n {...state, embedded: true},\n [subject], subframe, output['@reverse'][reverseProp],\n property);\n }\n }\n }\n\n // add output to parent\n _addFrameOutput(parent, property, output);\n\n // pop matching subject from circular ref-checking stack\n state.subjectStack.pop();\n }\n};\n\n/**\n * Replace `@null` with `null`, removing it from arrays.\n *\n * @param input the framed, compacted output.\n * @param options the framing options used.\n *\n * @return the resulting output.\n */\napi.cleanupNull = (input, options) => {\n // recurse through arrays\n if(types.isArray(input)) {\n const noNulls = input.map(v => api.cleanupNull(v, options));\n return noNulls.filter(v => v); // removes nulls from array\n }\n\n if(input === '@null') {\n return null;\n }\n\n if(types.isObject(input)) {\n // handle in-memory linked nodes\n if('@id' in input) {\n const id = input['@id'];\n if(options.link.hasOwnProperty(id)) {\n const idx = options.link[id].indexOf(input);\n if(idx !== -1) {\n // already visited\n return options.link[id][idx];\n }\n // prevent circular visitation\n options.link[id].push(input);\n } else {\n // prevent circular visitation\n options.link[id] = [input];\n }\n }\n\n for(const key in input) {\n input[key] = api.cleanupNull(input[key], options);\n }\n }\n return input;\n};\n\n/**\n * Creates an implicit frame when recursing through subject matches. If\n * a frame doesn't have an explicit frame for a particular property, then\n * a wildcard child frame will be created that uses the same flags that the\n * parent frame used.\n *\n * @param flags the current framing flags.\n *\n * @return the implicit frame.\n */\nfunction _createImplicitFrame(flags) {\n const frame = {};\n for(const key in flags) {\n if(flags[key] !== undefined) {\n frame['@' + key] = [flags[key]];\n }\n }\n return [frame];\n}\n\n/**\n * Checks the current subject stack to see if embedding the given subject\n * would cause a circular reference.\n *\n * @param subjectToEmbed the subject to embed.\n * @param graph the graph the subject to embed is in.\n * @param subjectStack the current stack of subjects.\n *\n * @return true if a circular reference would be created, false if not.\n */\nfunction _createsCircularReference(subjectToEmbed, graph, subjectStack) {\n for(let i = subjectStack.length - 1; i >= 0; --i) {\n const subject = subjectStack[i];\n if(subject.graph === graph &&\n subject.subject['@id'] === subjectToEmbed['@id']) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Gets the frame flag value for the given flag name.\n *\n * @param frame the frame.\n * @param options the framing options.\n * @param name the flag name.\n *\n * @return the flag value.\n */\nfunction _getFrameFlag(frame, options, name) {\n const flag = '@' + name;\n let rval = (flag in frame ? frame[flag][0] : options[name]);\n if(name === 'embed') {\n // default is \"@last\"\n // backwards-compatibility support for \"embed\" maps:\n // true => \"@last\"\n // false => \"@never\"\n if(rval === true) {\n rval = '@once';\n } else if(rval === false) {\n rval = '@never';\n } else if(rval !== '@always' && rval !== '@never' && rval !== '@link' &&\n rval !== '@first' && rval !== '@last' && rval !== '@once') {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; invalid value of @embed.',\n 'jsonld.SyntaxError', {code: 'invalid @embed value', frame});\n }\n }\n return rval;\n}\n\n/**\n * Validates a JSON-LD frame, throwing an exception if the frame is invalid.\n *\n * @param frame the frame to validate.\n */\nfunction _validateFrame(frame) {\n if(!types.isArray(frame) || frame.length !== 1 || !types.isObject(frame[0])) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; a JSON-LD frame must be a single object.',\n 'jsonld.SyntaxError', {frame});\n }\n\n if('@id' in frame[0]) {\n for(const id of util.asArray(frame[0]['@id'])) {\n // @id must be wildcard or an IRI\n if(!(types.isObject(id) || url.isAbsolute(id)) ||\n (types.isString(id) && id.indexOf('_:') === 0)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; invalid @id in frame.',\n 'jsonld.SyntaxError', {code: 'invalid frame', frame});\n }\n }\n }\n\n if('@type' in frame[0]) {\n for(const type of util.asArray(frame[0]['@type'])) {\n // @type must be wildcard, IRI, or @json\n if(!(types.isObject(type) || url.isAbsolute(type) ||\n (type === '@json')) ||\n (types.isString(type) && type.indexOf('_:') === 0)) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; invalid @type in frame.',\n 'jsonld.SyntaxError', {code: 'invalid frame', frame});\n }\n }\n }\n}\n\n/**\n * Returns a map of all of the subjects that match a parsed frame.\n *\n * @param state the current framing state.\n * @param subjects the set of subjects to filter.\n * @param frame the parsed frame.\n * @param flags the frame flags.\n *\n * @return all of the matched subjects.\n */\nfunction _filterSubjects(state, subjects, frame, flags) {\n // filter subjects in @id order\n const rval = {};\n for(const id of subjects) {\n const subject = state.graphMap[state.graph][id];\n if(_filterSubject(state, subject, frame, flags)) {\n rval[id] = subject;\n }\n }\n return rval;\n}\n\n/**\n * Returns true if the given subject matches the given frame.\n *\n * Matches either based on explicit type inclusion where the node has any\n * type listed in the frame. If the frame has empty types defined matches\n * nodes not having a @type. If the frame has a type of {} defined matches\n * nodes having any type defined.\n *\n * Otherwise, does duck typing, where the node must have all of the\n * properties defined in the frame.\n *\n * @param state the current framing state.\n * @param subject the subject to check.\n * @param frame the frame to check.\n * @param flags the frame flags.\n *\n * @return true if the subject matches, false if not.\n */\nfunction _filterSubject(state, subject, frame, flags) {\n // check ducktype\n let wildcard = true;\n let matchesSome = false;\n\n for(const key in frame) {\n let matchThis = false;\n const nodeValues = util.getValues(subject, key);\n const isEmpty = util.getValues(frame, key).length === 0;\n\n if(key === '@id') {\n // match on no @id or any matching @id, including wildcard\n if(types.isEmptyObject(frame['@id'][0] || {})) {\n matchThis = true;\n } else if(frame['@id'].length >= 0) {\n matchThis = frame['@id'].includes(nodeValues[0]);\n }\n if(!flags.requireAll) {\n return matchThis;\n }\n } else if(key === '@type') {\n // check @type (object value means 'any' type,\n // fall through to ducktyping)\n wildcard = false;\n if(isEmpty) {\n if(nodeValues.length > 0) {\n // don't match on no @type\n return false;\n }\n matchThis = true;\n } else if(frame['@type'].length === 1 &&\n types.isEmptyObject(frame['@type'][0])) {\n // match on wildcard @type if there is a type\n matchThis = nodeValues.length > 0;\n } else {\n // match on a specific @type\n for(const type of frame['@type']) {\n if(types.isObject(type) && '@default' in type) {\n // match on default object\n matchThis = true;\n } else {\n matchThis = matchThis || nodeValues.some(tt => tt === type);\n }\n }\n }\n if(!flags.requireAll) {\n return matchThis;\n }\n } else if(isKeyword(key)) {\n continue;\n } else {\n // Force a copy of this frame entry so it can be manipulated\n const thisFrame = util.getValues(frame, key)[0];\n let hasDefault = false;\n if(thisFrame) {\n _validateFrame([thisFrame]);\n hasDefault = '@default' in thisFrame;\n }\n\n // no longer a wildcard pattern if frame has any non-keyword properties\n wildcard = false;\n\n // skip, but allow match if node has no value for property, and frame has\n // a default value\n if(nodeValues.length === 0 && hasDefault) {\n continue;\n }\n\n // if frame value is empty, don't match if subject has any value\n if(nodeValues.length > 0 && isEmpty) {\n return false;\n }\n\n if(thisFrame === undefined) {\n // node does not match if values is not empty and the value of property\n // in frame is match none.\n if(nodeValues.length > 0) {\n return false;\n }\n matchThis = true;\n } else {\n if(graphTypes.isList(thisFrame)) {\n const listValue = thisFrame['@list'][0];\n if(graphTypes.isList(nodeValues[0])) {\n const nodeListValues = nodeValues[0]['@list'];\n\n if(graphTypes.isValue(listValue)) {\n // match on any matching value\n matchThis = nodeListValues.some(lv => _valueMatch(listValue, lv));\n } else if(graphTypes.isSubject(listValue) ||\n graphTypes.isSubjectReference(listValue)) {\n matchThis = nodeListValues.some(lv => _nodeMatch(\n state, listValue, lv, flags));\n }\n }\n } else if(graphTypes.isValue(thisFrame)) {\n matchThis = nodeValues.some(nv => _valueMatch(thisFrame, nv));\n } else if(graphTypes.isSubjectReference(thisFrame)) {\n matchThis =\n nodeValues.some(nv => _nodeMatch(state, thisFrame, nv, flags));\n } else if(types.isObject(thisFrame)) {\n matchThis = nodeValues.length > 0;\n } else {\n matchThis = false;\n }\n }\n }\n\n // all non-defaulted values must match if requireAll is set\n if(!matchThis && flags.requireAll) {\n return false;\n }\n\n matchesSome = matchesSome || matchThis;\n }\n\n // return true if wildcard or subject matches some properties\n return wildcard || matchesSome;\n}\n\n/**\n * Removes an existing embed.\n *\n * @param state the current framing state.\n * @param id the @id of the embed to remove.\n */\nfunction _removeEmbed(state, id) {\n // get existing embed\n const embeds = state.uniqueEmbeds[state.graph];\n const embed = embeds[id];\n const parent = embed.parent;\n const property = embed.property;\n\n // create reference to replace embed\n const subject = {'@id': id};\n\n // remove existing embed\n if(types.isArray(parent)) {\n // replace subject with reference\n for(let i = 0; i < parent.length; ++i) {\n if(util.compareValues(parent[i], subject)) {\n parent[i] = subject;\n break;\n }\n }\n } else {\n // replace subject with reference\n const useArray = types.isArray(parent[property]);\n util.removeValue(parent, property, subject, {propertyIsArray: useArray});\n util.addValue(parent, property, subject, {propertyIsArray: useArray});\n }\n\n // recursively remove dependent dangling embeds\n const removeDependents = id => {\n // get embed keys as a separate array to enable deleting keys in map\n const ids = Object.keys(embeds);\n for(const next of ids) {\n if(next in embeds && types.isObject(embeds[next].parent) &&\n embeds[next].parent['@id'] === id) {\n delete embeds[next];\n removeDependents(next);\n }\n }\n };\n removeDependents(id);\n}\n\n/**\n * Removes the @preserve keywords from expanded result of framing.\n *\n * @param input the framed, framed output.\n * @param options the framing options used.\n *\n * @return the resulting output.\n */\nfunction _cleanupPreserve(input, options) {\n // recurse through arrays\n if(types.isArray(input)) {\n return input.map(value => _cleanupPreserve(value, options));\n }\n\n if(types.isObject(input)) {\n // remove @preserve\n if('@preserve' in input) {\n return input['@preserve'][0];\n }\n\n // skip @values\n if(graphTypes.isValue(input)) {\n return input;\n }\n\n // recurse through @lists\n if(graphTypes.isList(input)) {\n input['@list'] = _cleanupPreserve(input['@list'], options);\n return input;\n }\n\n // handle in-memory linked nodes\n if('@id' in input) {\n const id = input['@id'];\n if(options.link.hasOwnProperty(id)) {\n const idx = options.link[id].indexOf(input);\n if(idx !== -1) {\n // already visited\n return options.link[id][idx];\n }\n // prevent circular visitation\n options.link[id].push(input);\n } else {\n // prevent circular visitation\n options.link[id] = [input];\n }\n }\n\n // recurse through properties\n for(const prop in input) {\n // potentially remove the id, if it is an unreference bnode\n if(prop === '@id' && options.bnodesToClear.includes(input[prop])) {\n delete input['@id'];\n continue;\n }\n\n input[prop] = _cleanupPreserve(input[prop], options);\n }\n }\n return input;\n}\n\n/**\n * Adds framing output to the given parent.\n *\n * @param parent the parent to add to.\n * @param property the parent property.\n * @param output the output to add.\n */\nfunction _addFrameOutput(parent, property, output) {\n if(types.isObject(parent)) {\n util.addValue(parent, property, output, {propertyIsArray: true});\n } else {\n parent.push(output);\n }\n}\n\n/**\n * Node matches if it is a node, and matches the pattern as a frame.\n *\n * @param state the current framing state.\n * @param pattern used to match value\n * @param value to check\n * @param flags the frame flags.\n */\nfunction _nodeMatch(state, pattern, value, flags) {\n if(!('@id' in value)) {\n return false;\n }\n const nodeObject = state.subjects[value['@id']];\n return nodeObject && _filterSubject(state, nodeObject, pattern, flags);\n}\n\n/**\n * Value matches if it is a value and matches the value pattern\n *\n * * `pattern` is empty\n * * @values are the same, or `pattern[@value]` is a wildcard, and\n * * @types are the same or `value[@type]` is not null\n * and `pattern[@type]` is `{}`, or `value[@type]` is null\n * and `pattern[@type]` is null or `[]`, and\n * * @languages are the same or `value[@language]` is not null\n * and `pattern[@language]` is `{}`, or `value[@language]` is null\n * and `pattern[@language]` is null or `[]`.\n *\n * @param pattern used to match value\n * @param value to check\n */\nfunction _valueMatch(pattern, value) {\n const v1 = value['@value'];\n const t1 = value['@type'];\n const l1 = value['@language'];\n const v2 = pattern['@value'] ?\n (types.isArray(pattern['@value']) ?\n pattern['@value'] : [pattern['@value']]) :\n [];\n const t2 = pattern['@type'] ?\n (types.isArray(pattern['@type']) ?\n pattern['@type'] : [pattern['@type']]) :\n [];\n const l2 = pattern['@language'] ?\n (types.isArray(pattern['@language']) ?\n pattern['@language'] : [pattern['@language']]) :\n [];\n\n if(v2.length === 0 && t2.length === 0 && l2.length === 0) {\n return true;\n }\n if(!(v2.includes(v1) || types.isEmptyObject(v2[0]))) {\n return false;\n }\n if(!(!t1 && t2.length === 0 || t2.includes(t1) || t1 &&\n types.isEmptyObject(t2[0]))) {\n return false;\n }\n if(!(!l1 && l2.length === 0 || l2.includes(l1) || l1 &&\n types.isEmptyObject(l2[0]))) {\n return false;\n }\n return true;\n}\n","/*\n * Copyright (c) 2017-2023 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst JsonLdError = require('./JsonLdError');\nconst graphTypes = require('./graphTypes');\nconst types = require('./types');\n\nconst {\n REGEX_BCP47,\n addValue: _addValue\n} = require('./util');\n\nconst {\n handleEvent: _handleEvent\n} = require('./events');\n\n// constants\nconst {\n // RDF,\n RDF_LIST,\n RDF_FIRST,\n RDF_REST,\n RDF_NIL,\n RDF_TYPE,\n // RDF_PLAIN_LITERAL,\n // RDF_XML_LITERAL,\n RDF_JSON_LITERAL,\n // RDF_OBJECT,\n // RDF_LANGSTRING,\n\n // XSD,\n XSD_BOOLEAN,\n XSD_DOUBLE,\n XSD_INTEGER,\n XSD_STRING,\n} = require('./constants');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Converts an RDF dataset to JSON-LD.\n *\n * @param dataset the RDF dataset.\n * @param options the RDF serialization options.\n *\n * @return a Promise that resolves to the JSON-LD output.\n */\napi.fromRDF = async (\n dataset,\n options\n) => {\n const {\n useRdfType = false,\n useNativeTypes = false,\n rdfDirection = null\n } = options;\n // FIXME: use Maps?\n const defaultGraph = {};\n const graphMap = {'@default': defaultGraph};\n const referencedOnce = {};\n if(rdfDirection) {\n if(rdfDirection === 'compound-literal') {\n throw new JsonLdError(\n 'Unsupported rdfDirection value.',\n 'jsonld.InvalidRdfDirection',\n {value: rdfDirection});\n } else if(rdfDirection !== 'i18n-datatype') {\n throw new JsonLdError(\n 'Unknown rdfDirection value.',\n 'jsonld.InvalidRdfDirection',\n {value: rdfDirection});\n }\n }\n\n for(const quad of dataset) {\n // TODO: change 'name' to 'graph'\n const name = (quad.graph.termType === 'DefaultGraph') ?\n '@default' : quad.graph.value;\n if(!(name in graphMap)) {\n graphMap[name] = {};\n }\n if(name !== '@default' && !(name in defaultGraph)) {\n defaultGraph[name] = {'@id': name};\n }\n\n const nodeMap = graphMap[name];\n\n // get subject, predicate, object\n const s = quad.subject.value;\n const p = quad.predicate.value;\n const o = quad.object;\n\n if(!(s in nodeMap)) {\n nodeMap[s] = {'@id': s};\n }\n const node = nodeMap[s];\n\n const objectIsNode = o.termType.endsWith('Node');\n if(objectIsNode && !(o.value in nodeMap)) {\n nodeMap[o.value] = {'@id': o.value};\n }\n\n if(p === RDF_TYPE && !useRdfType && objectIsNode) {\n _addValue(node, '@type', o.value, {propertyIsArray: true});\n continue;\n }\n\n const value = _RDFToObject(o, useNativeTypes, rdfDirection, options);\n _addValue(node, p, value, {propertyIsArray: true});\n\n // object may be an RDF list/partial list node but we can't know easily\n // until all triples are read\n if(objectIsNode) {\n if(o.value === RDF_NIL) {\n // track rdf:nil uniquely per graph\n const object = nodeMap[o.value];\n if(!('usages' in object)) {\n object.usages = [];\n }\n object.usages.push({\n node,\n property: p,\n value\n });\n } else if(o.value in referencedOnce) {\n // object referenced more than once\n referencedOnce[o.value] = false;\n } else {\n // keep track of single reference\n referencedOnce[o.value] = {\n node,\n property: p,\n value\n };\n }\n }\n }\n\n /*\n for(let name in dataset) {\n const graph = dataset[name];\n if(!(name in graphMap)) {\n graphMap[name] = {};\n }\n if(name !== '@default' && !(name in defaultGraph)) {\n defaultGraph[name] = {'@id': name};\n }\n const nodeMap = graphMap[name];\n for(let ti = 0; ti < graph.length; ++ti) {\n const triple = graph[ti];\n\n // get subject, predicate, object\n const s = triple.subject.value;\n const p = triple.predicate.value;\n const o = triple.object;\n\n if(!(s in nodeMap)) {\n nodeMap[s] = {'@id': s};\n }\n const node = nodeMap[s];\n\n const objectIsId = (o.type === 'IRI' || o.type === 'blank node');\n if(objectIsId && !(o.value in nodeMap)) {\n nodeMap[o.value] = {'@id': o.value};\n }\n\n if(p === RDF_TYPE && !useRdfType && objectIsId) {\n _addValue(node, '@type', o.value, {propertyIsArray: true});\n continue;\n }\n\n const value = _RDFToObject(o, useNativeTypes);\n _addValue(node, p, value, {propertyIsArray: true});\n\n // object may be an RDF list/partial list node but we can't know easily\n // until all triples are read\n if(objectIsId) {\n if(o.value === RDF_NIL) {\n // track rdf:nil uniquely per graph\n const object = nodeMap[o.value];\n if(!('usages' in object)) {\n object.usages = [];\n }\n object.usages.push({\n node: node,\n property: p,\n value: value\n });\n } else if(o.value in referencedOnce) {\n // object referenced more than once\n referencedOnce[o.value] = false;\n } else {\n // keep track of single reference\n referencedOnce[o.value] = {\n node: node,\n property: p,\n value: value\n };\n }\n }\n }\n }*/\n\n // convert linked lists to @list arrays\n for(const name in graphMap) {\n const graphObject = graphMap[name];\n\n // no @lists to be converted, continue\n if(!(RDF_NIL in graphObject)) {\n continue;\n }\n\n // iterate backwards through each RDF list\n const nil = graphObject[RDF_NIL];\n if(!nil.usages) {\n continue;\n }\n for(let usage of nil.usages) {\n let node = usage.node;\n let property = usage.property;\n let head = usage.value;\n const list = [];\n const listNodes = [];\n\n // ensure node is a well-formed list node; it must:\n // 1. Be referenced only once.\n // 2. Have an array for rdf:first that has 1 item.\n // 3. Have an array for rdf:rest that has 1 item.\n // 4. Have no keys other than: @id, rdf:first, rdf:rest, and,\n // optionally, @type where the value is rdf:List.\n let nodeKeyCount = Object.keys(node).length;\n while(property === RDF_REST &&\n types.isObject(referencedOnce[node['@id']]) &&\n types.isArray(node[RDF_FIRST]) && node[RDF_FIRST].length === 1 &&\n types.isArray(node[RDF_REST]) && node[RDF_REST].length === 1 &&\n (nodeKeyCount === 3 ||\n (nodeKeyCount === 4 && types.isArray(node['@type']) &&\n node['@type'].length === 1 && node['@type'][0] === RDF_LIST))) {\n list.push(node[RDF_FIRST][0]);\n listNodes.push(node['@id']);\n\n // get next node, moving backwards through list\n usage = referencedOnce[node['@id']];\n node = usage.node;\n property = usage.property;\n head = usage.value;\n nodeKeyCount = Object.keys(node).length;\n\n // if node is not a blank node, then list head found\n if(!graphTypes.isBlankNode(node)) {\n break;\n }\n }\n\n // transform list into @list object\n delete head['@id'];\n head['@list'] = list.reverse();\n for(const listNode of listNodes) {\n delete graphObject[listNode];\n }\n }\n\n delete nil.usages;\n }\n\n const result = [];\n const subjects = Object.keys(defaultGraph).sort();\n for(const subject of subjects) {\n const node = defaultGraph[subject];\n if(subject in graphMap) {\n const graph = node['@graph'] = [];\n const graphObject = graphMap[subject];\n const graphSubjects = Object.keys(graphObject).sort();\n for(const graphSubject of graphSubjects) {\n const node = graphObject[graphSubject];\n // only add full subjects to top-level\n if(!graphTypes.isSubjectReference(node)) {\n graph.push(node);\n }\n }\n }\n // only add full subjects to top-level\n if(!graphTypes.isSubjectReference(node)) {\n result.push(node);\n }\n }\n\n return result;\n};\n\n/**\n * Converts an RDF triple object to a JSON-LD object.\n *\n * @param o the RDF triple object to convert.\n * @param useNativeTypes true to output native types, false not to.\n * @param rdfDirection text direction mode [null, i18n-datatype]\n * @param options top level API options\n *\n * @return the JSON-LD object.\n */\nfunction _RDFToObject(o, useNativeTypes, rdfDirection, options) {\n // convert NamedNode/BlankNode object to JSON-LD\n if(o.termType.endsWith('Node')) {\n return {'@id': o.value};\n }\n\n // convert literal to JSON-LD\n const rval = {'@value': o.value};\n\n // add language\n if(o.language) {\n if(!o.language.match(REGEX_BCP47)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid @language value',\n level: 'warning',\n message: '@language value must be valid BCP47.',\n details: {\n language: o.language\n }\n },\n options\n });\n }\n }\n rval['@language'] = o.language;\n } else {\n let type = o.datatype.value;\n if(!type) {\n type = XSD_STRING;\n }\n if(type === RDF_JSON_LITERAL) {\n type = '@json';\n try {\n rval['@value'] = JSON.parse(rval['@value']);\n } catch(e) {\n throw new JsonLdError(\n 'JSON literal could not be parsed.',\n 'jsonld.InvalidJsonLiteral',\n {code: 'invalid JSON literal', value: rval['@value'], cause: e});\n }\n }\n // use native types for certain xsd types\n if(useNativeTypes) {\n if(type === XSD_BOOLEAN) {\n if(rval['@value'] === 'true') {\n rval['@value'] = true;\n } else if(rval['@value'] === 'false') {\n rval['@value'] = false;\n }\n } else if(types.isNumeric(rval['@value'])) {\n if(type === XSD_INTEGER) {\n const i = parseInt(rval['@value'], 10);\n if(i.toFixed(0) === rval['@value']) {\n rval['@value'] = i;\n }\n } else if(type === XSD_DOUBLE) {\n rval['@value'] = parseFloat(rval['@value']);\n }\n }\n // do not add native type\n if(![XSD_BOOLEAN, XSD_INTEGER, XSD_DOUBLE, XSD_STRING].includes(type)) {\n rval['@type'] = type;\n }\n } else if(rdfDirection === 'i18n-datatype' &&\n type.startsWith('https://www.w3.org/ns/i18n#')) {\n const [, language, direction] = type.split(/[#_]/);\n if(language.length > 0) {\n rval['@language'] = language;\n if(!language.match(REGEX_BCP47)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'invalid @language value',\n level: 'warning',\n message: '@language value must be valid BCP47.',\n details: {\n language\n }\n },\n options\n });\n }\n }\n }\n rval['@direction'] = direction;\n } else if(type !== XSD_STRING) {\n rval['@type'] = type;\n }\n }\n\n return rval;\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst types = require('./types');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Returns true if the given value is a subject with properties.\n *\n * @param v the value to check.\n *\n * @return true if the value is a subject with properties, false if not.\n */\napi.isSubject = v => {\n // Note: A value is a subject if all of these hold true:\n // 1. It is an Object.\n // 2. It is not a @value, @set, or @list.\n // 3. It has more than 1 key OR any existing key is not @id.\n if(types.isObject(v) &&\n !(('@value' in v) || ('@set' in v) || ('@list' in v))) {\n const keyCount = Object.keys(v).length;\n return (keyCount > 1 || !('@id' in v));\n }\n return false;\n};\n\n/**\n * Returns true if the given value is a subject reference.\n *\n * @param v the value to check.\n *\n * @return true if the value is a subject reference, false if not.\n */\napi.isSubjectReference = v =>\n // Note: A value is a subject reference if all of these hold true:\n // 1. It is an Object.\n // 2. It has a single key: @id.\n (types.isObject(v) && Object.keys(v).length === 1 && ('@id' in v));\n\n/**\n * Returns true if the given value is a @value.\n *\n * @param v the value to check.\n *\n * @return true if the value is a @value, false if not.\n */\napi.isValue = v =>\n // Note: A value is a @value if all of these hold true:\n // 1. It is an Object.\n // 2. It has the @value property.\n types.isObject(v) && ('@value' in v);\n\n/**\n * Returns true if the given value is a @list.\n *\n * @param v the value to check.\n *\n * @return true if the value is a @list, false if not.\n */\napi.isList = v =>\n // Note: A value is a @list if all of these hold true:\n // 1. It is an Object.\n // 2. It has the @list property.\n types.isObject(v) && ('@list' in v);\n\n/**\n * Returns true if the given value is a @graph.\n *\n * @return true if the value is a @graph, false if not.\n */\napi.isGraph = v => {\n // Note: A value is a graph if all of these hold true:\n // 1. It is an object.\n // 2. It has an `@graph` key.\n // 3. It may have '@id' or '@index'\n return types.isObject(v) &&\n '@graph' in v &&\n Object.keys(v)\n .filter(key => key !== '@id' && key !== '@index').length === 1;\n};\n\n/**\n * Returns true if the given value is a simple @graph.\n *\n * @return true if the value is a simple @graph, false if not.\n */\napi.isSimpleGraph = v => {\n // Note: A value is a simple graph if all of these hold true:\n // 1. It is an object.\n // 2. It has an `@graph` key.\n // 3. It has only 1 key or 2 keys where one of them is `@index`.\n return api.isGraph(v) && !('@id' in v);\n};\n\n/**\n * Returns true if the given value is a blank node.\n *\n * @param v the value to check.\n *\n * @return true if the value is a blank node, false if not.\n */\napi.isBlankNode = v => {\n // Note: A value is a blank node if all of these hold true:\n // 1. It is an Object.\n // 2. If it has an @id key that is not a string OR begins with '_:'.\n // 3. It has no keys OR is not a @value, @set, or @list.\n if(types.isObject(v)) {\n if('@id' in v) {\n const id = v['@id'];\n return !types.isString(id) || id.indexOf('_:') === 0;\n }\n return (Object.keys(v).length === 0 ||\n !(('@value' in v) || ('@set' in v) || ('@list' in v)));\n }\n return false;\n};\n","/**\n * A JavaScript implementation of the JSON-LD API.\n *\n * @author Dave Longley\n *\n * @license BSD 3-Clause License\n * Copyright (c) 2011-2022 Digital Bazaar, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * Neither the name of the Digital Bazaar, Inc. nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n * IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\n * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\n * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\nconst canonize = require('rdf-canonize');\nconst platform = require('./platform');\nconst util = require('./util');\nconst ContextResolver = require('./ContextResolver');\nconst IdentifierIssuer = util.IdentifierIssuer;\nconst JsonLdError = require('./JsonLdError');\nconst LRU = require('lru-cache');\nconst NQuads = require('./NQuads');\n\nconst {expand: _expand} = require('./expand');\nconst {flatten: _flatten} = require('./flatten');\nconst {fromRDF: _fromRDF} = require('./fromRdf');\nconst {toRDF: _toRDF} = require('./toRdf');\n\nconst {\n frameMergedOrDefault: _frameMergedOrDefault,\n cleanupNull: _cleanupNull\n} = require('./frame');\n\nconst {\n isArray: _isArray,\n isObject: _isObject,\n isString: _isString\n} = require('./types');\n\nconst {\n isSubjectReference: _isSubjectReference,\n} = require('./graphTypes');\n\nconst {\n expandIri: _expandIri,\n getInitialContext: _getInitialContext,\n process: _processContext,\n processingMode: _processingMode\n} = require('./context');\n\nconst {\n compact: _compact,\n compactIri: _compactIri\n} = require('./compact');\n\nconst {\n createNodeMap: _createNodeMap,\n createMergedNodeMap: _createMergedNodeMap,\n mergeNodeMaps: _mergeNodeMaps\n} = require('./nodeMap');\n\nconst {\n logEventHandler: _logEventHandler,\n logWarningEventHandler: _logWarningEventHandler,\n safeEventHandler: _safeEventHandler,\n setDefaultEventHandler: _setDefaultEventHandler,\n setupEventHandler: _setupEventHandler,\n strictEventHandler: _strictEventHandler,\n unhandledEventHandler: _unhandledEventHandler\n} = require('./events');\n\n/* eslint-disable indent */\n// attaches jsonld API to the given object\nconst wrapper = function(jsonld) {\n\n/** Registered RDF dataset parsers hashed by content-type. */\nconst _rdfParsers = {};\n\n// resolved context cache\n// TODO: consider basing max on context size rather than number\nconst RESOLVED_CONTEXT_CACHE_MAX_SIZE = 100;\nconst _resolvedContextCache = new LRU({max: RESOLVED_CONTEXT_CACHE_MAX_SIZE});\n\n/* Core API */\n\n/**\n * Performs JSON-LD compaction.\n *\n * @param input the JSON-LD input to compact.\n * @param ctx the context to compact with.\n * @param [options] options to use:\n * [base] the base IRI to use.\n * [compactArrays] true to compact arrays to single values when\n * appropriate, false not to (default: true).\n * [compactToRelative] true to compact IRIs to be relative to document\n * base, false to keep absolute (default: true)\n * [graph] true to always output a top-level graph (default: false).\n * [expandContext] a context to expand with.\n * [skipExpansion] true to assume the input is expanded and skip\n * expansion, false not to, defaults to false. Some well-formed\n * and safe-mode checks may be omitted.\n * [documentLoader(url, options)] the document loader.\n * [framing] true if compaction is occuring during a framing operation.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the compacted output.\n */\njsonld.compact = async function(input, ctx, options) {\n if(arguments.length < 2) {\n throw new TypeError('Could not compact, too few arguments.');\n }\n\n if(ctx === null) {\n throw new JsonLdError(\n 'The compaction context must not be null.',\n 'jsonld.CompactError', {code: 'invalid local context'});\n }\n\n // nothing to compact\n if(input === null) {\n return null;\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : '',\n compactArrays: true,\n compactToRelative: true,\n graph: false,\n skipExpansion: false,\n link: false,\n issuer: new IdentifierIssuer('_:b'),\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n if(options.link) {\n // force skip expansion when linking, \"link\" is not part of the public\n // API, it should only be called from framing\n options.skipExpansion = true;\n }\n if(!options.compactToRelative) {\n delete options.base;\n }\n\n // expand input\n let expanded;\n if(options.skipExpansion) {\n expanded = input;\n } else {\n expanded = await jsonld.expand(input, options);\n }\n\n // process context\n const activeCtx = await jsonld.processContext(\n _getInitialContext(options), ctx, options);\n\n // do compaction\n let compacted = await _compact({\n activeCtx,\n element: expanded,\n options\n });\n\n // perform clean up\n if(options.compactArrays && !options.graph && _isArray(compacted)) {\n if(compacted.length === 1) {\n // simplify to a single item\n compacted = compacted[0];\n } else if(compacted.length === 0) {\n // simplify to an empty object\n compacted = {};\n }\n } else if(options.graph && _isObject(compacted)) {\n // always use array if graph option is on\n compacted = [compacted];\n }\n\n // follow @context key\n if(_isObject(ctx) && '@context' in ctx) {\n ctx = ctx['@context'];\n }\n\n // build output context\n ctx = util.clone(ctx);\n if(!_isArray(ctx)) {\n ctx = [ctx];\n }\n // remove empty contexts\n const tmp = ctx;\n ctx = [];\n for(let i = 0; i < tmp.length; ++i) {\n if(!_isObject(tmp[i]) || Object.keys(tmp[i]).length > 0) {\n ctx.push(tmp[i]);\n }\n }\n\n // remove array if only one context\n const hasContext = (ctx.length > 0);\n if(ctx.length === 1) {\n ctx = ctx[0];\n }\n\n // add context and/or @graph\n if(_isArray(compacted)) {\n // use '@graph' keyword\n const graphAlias = _compactIri({\n activeCtx, iri: '@graph', relativeTo: {vocab: true}\n });\n const graph = compacted;\n compacted = {};\n if(hasContext) {\n compacted['@context'] = ctx;\n }\n compacted[graphAlias] = graph;\n } else if(_isObject(compacted) && hasContext) {\n // reorder keys so @context is first\n const graph = compacted;\n compacted = {'@context': ctx};\n for(const key in graph) {\n compacted[key] = graph[key];\n }\n }\n\n return compacted;\n};\n\n/**\n * Performs JSON-LD expansion.\n *\n * @param input the JSON-LD input to expand.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [keepFreeFloatingNodes] true to keep free-floating nodes,\n * false not to, defaults to false.\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the expanded output.\n */\njsonld.expand = async function(input, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not expand, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n keepFreeFloatingNodes: false,\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // build set of objects that may have @contexts to resolve\n const toResolve = {};\n\n // build set of contexts to process prior to expansion\n const contextsToProcess = [];\n\n // if an `expandContext` has been given ensure it gets resolved\n if('expandContext' in options) {\n const expandContext = util.clone(options.expandContext);\n if(_isObject(expandContext) && '@context' in expandContext) {\n toResolve.expandContext = expandContext;\n } else {\n toResolve.expandContext = {'@context': expandContext};\n }\n contextsToProcess.push(toResolve.expandContext);\n }\n\n // if input is a string, attempt to dereference remote document\n let defaultBase;\n if(!_isString(input)) {\n // input is not a URL, do not need to retrieve it first\n toResolve.input = util.clone(input);\n } else {\n // load remote doc\n const remoteDoc = await jsonld.get(input, options);\n defaultBase = remoteDoc.documentUrl;\n toResolve.input = remoteDoc.document;\n if(remoteDoc.contextUrl) {\n // context included in HTTP link header and must be resolved\n toResolve.remoteContext = {'@context': remoteDoc.contextUrl};\n contextsToProcess.push(toResolve.remoteContext);\n }\n }\n\n // set default base\n if(!('base' in options)) {\n options.base = defaultBase || '';\n }\n\n // process any additional contexts\n let activeCtx = _getInitialContext(options);\n for(const localCtx of contextsToProcess) {\n activeCtx = await _processContext({activeCtx, localCtx, options});\n }\n\n // expand resolved input\n let expanded = await _expand({\n activeCtx,\n element: toResolve.input,\n options\n });\n\n // optimize away @graph with no other properties\n if(_isObject(expanded) && ('@graph' in expanded) &&\n Object.keys(expanded).length === 1) {\n expanded = expanded['@graph'];\n } else if(expanded === null) {\n expanded = [];\n }\n\n // normalize to an array\n if(!_isArray(expanded)) {\n expanded = [expanded];\n }\n\n return expanded;\n};\n\n/**\n * Performs JSON-LD flattening.\n *\n * @param input the JSON-LD to flatten.\n * @param ctx the context to use to compact the flattened output, or null.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [documentLoader(url, options)] the document loader.\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the flattened output.\n */\njsonld.flatten = async function(input, ctx, options) {\n if(arguments.length < 1) {\n return new TypeError('Could not flatten, too few arguments.');\n }\n\n if(typeof ctx === 'function') {\n ctx = null;\n } else {\n ctx = ctx || null;\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : '',\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // expand input\n const expanded = await jsonld.expand(input, options);\n\n // do flattening\n const flattened = _flatten(expanded);\n\n if(ctx === null) {\n // no compaction required\n return flattened;\n }\n\n // compact result (force @graph option to true, skip expansion)\n options.graph = true;\n options.skipExpansion = true;\n const compacted = await jsonld.compact(flattened, ctx, options);\n\n return compacted;\n};\n\n/**\n * Performs JSON-LD framing.\n *\n * @param input the JSON-LD input to frame.\n * @param frame the JSON-LD frame to use.\n * @param [options] the framing options.\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [embed] default @embed flag: '@last', '@always', '@never', '@link'\n * (default: '@last').\n * [explicit] default @explicit flag (default: false).\n * [requireAll] default @requireAll flag (default: true).\n * [omitDefault] default @omitDefault flag (default: false).\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the framed output.\n */\njsonld.frame = async function(input, frame, options) {\n if(arguments.length < 2) {\n throw new TypeError('Could not frame, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : '',\n embed: '@once',\n explicit: false,\n requireAll: false,\n omitDefault: false,\n bnodesToClear: [],\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // if frame is a string, attempt to dereference remote document\n if(_isString(frame)) {\n // load remote doc\n const remoteDoc = await jsonld.get(frame, options);\n frame = remoteDoc.document;\n\n if(remoteDoc.contextUrl) {\n // inject link header @context into frame\n let ctx = frame['@context'];\n if(!ctx) {\n ctx = remoteDoc.contextUrl;\n } else if(_isArray(ctx)) {\n ctx.push(remoteDoc.contextUrl);\n } else {\n ctx = [ctx, remoteDoc.contextUrl];\n }\n frame['@context'] = ctx;\n }\n }\n\n const frameContext = frame ? frame['@context'] || {} : {};\n\n // process context\n const activeCtx = await jsonld.processContext(\n _getInitialContext(options), frameContext, options);\n\n // mode specific defaults\n if(!options.hasOwnProperty('omitGraph')) {\n options.omitGraph = _processingMode(activeCtx, 1.1);\n }\n if(!options.hasOwnProperty('pruneBlankNodeIdentifiers')) {\n options.pruneBlankNodeIdentifiers = _processingMode(activeCtx, 1.1);\n }\n\n // expand input\n const expanded = await jsonld.expand(input, options);\n\n // expand frame\n const opts = {...options};\n opts.isFrame = true;\n opts.keepFreeFloatingNodes = true;\n const expandedFrame = await jsonld.expand(frame, opts);\n\n // if the unexpanded frame includes a key expanding to @graph, frame the\n // default graph, otherwise, the merged graph\n const frameKeys = Object.keys(frame)\n .map(key => _expandIri(activeCtx, key, {vocab: true}));\n opts.merged = !frameKeys.includes('@graph');\n opts.is11 = _processingMode(activeCtx, 1.1);\n\n // do framing\n const framed = _frameMergedOrDefault(expanded, expandedFrame, opts);\n\n opts.graph = !options.omitGraph;\n opts.skipExpansion = true;\n opts.link = {};\n opts.framing = true;\n let compacted = await jsonld.compact(framed, frameContext, opts);\n\n // replace @null with null, compacting arrays\n opts.link = {};\n compacted = _cleanupNull(compacted, opts);\n\n return compacted;\n};\n\n/**\n * **Experimental**\n *\n * Links a JSON-LD document's nodes in memory.\n *\n * @param input the JSON-LD document to link.\n * @param [ctx] the JSON-LD context to apply.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the linked output.\n */\njsonld.link = async function(input, ctx, options) {\n // API matches running frame with a wildcard frame and embed: '@link'\n // get arguments\n const frame = {};\n if(ctx) {\n frame['@context'] = ctx;\n }\n frame['@embed'] = '@link';\n return jsonld.frame(input, frame, options);\n};\n\n/**\n * Performs RDF dataset normalization on the given input. The input is JSON-LD\n * unless the 'inputFormat' option is used. The output is an RDF dataset\n * unless the 'format' option is used.\n *\n * Note: Canonicalization sets `safe` to `true` and `base` to `null` by\n * default in order to produce safe outputs and \"fail closed\" by default. This\n * is different from the other API transformations in this version which\n * allow unsafe defaults (for cryptographic usage) in order to comply with the\n * JSON-LD 1.1 specification.\n *\n * @param input the input to normalize as JSON-LD or as a format specified by\n * the 'inputFormat' option.\n * @param [options] the options to use:\n * [algorithm] the normalization algorithm to use, `URDNA2015` or\n * `URGNA2012` (default: `URDNA2015`).\n * [base] the base IRI to use (default: `null`).\n * [expandContext] a context to expand with.\n * [skipExpansion] true to assume the input is expanded and skip\n * expansion, false not to, defaults to false. Some well-formed\n * and safe-mode checks may be omitted.\n * [inputFormat] the format if input is not JSON-LD:\n * 'application/n-quads' for N-Quads.\n * [format] the format if output is a string:\n * 'application/n-quads' for N-Quads.\n * [documentLoader(url, options)] the document loader.\n * [useNative] true to use a native canonize algorithm\n * [rdfDirection] null or 'i18n-datatype' to support RDF\n * transformation of @direction (default: null).\n * [safe] true to use safe mode. (default: true).\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the normalized output.\n */\njsonld.normalize = jsonld.canonize = async function(input, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not canonize, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : null,\n algorithm: 'URDNA2015',\n skipExpansion: false,\n safe: true,\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n if('inputFormat' in options) {\n if(options.inputFormat !== 'application/n-quads' &&\n options.inputFormat !== 'application/nquads') {\n throw new JsonLdError(\n 'Unknown canonicalization input format.',\n 'jsonld.CanonizeError');\n }\n // TODO: `await` for async parsers\n const parsedInput = NQuads.parse(input);\n\n // do canonicalization\n return canonize.canonize(parsedInput, options);\n }\n\n // convert to RDF dataset then do normalization\n const opts = {...options};\n delete opts.format;\n opts.produceGeneralizedRdf = false;\n const dataset = await jsonld.toRDF(input, opts);\n\n // do canonicalization\n return canonize.canonize(dataset, options);\n};\n\n/**\n * Converts an RDF dataset to JSON-LD.\n *\n * @param dataset a serialized string of RDF in a format specified by the\n * format option or an RDF dataset to convert.\n * @param [options] the options to use:\n * [format] the format if dataset param must first be parsed:\n * 'application/n-quads' for N-Quads (default).\n * [rdfParser] a custom RDF-parser to use to parse the dataset.\n * [useRdfType] true to use rdf:type, false to use @type\n * (default: false).\n * [useNativeTypes] true to convert XSD types into native types\n * (boolean, integer, double), false not to (default: false).\n * [rdfDirection] null or 'i18n-datatype' to support RDF\n * transformation of @direction (default: null).\n * [safe] true to use safe mode. (default: false)\n *\n * @return a Promise that resolves to the JSON-LD document.\n */\njsonld.fromRDF = async function(dataset, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not convert from RDF, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n format: _isString(dataset) ? 'application/n-quads' : undefined\n });\n\n const {format} = options;\n let {rdfParser} = options;\n\n // handle special format\n if(format) {\n // check supported formats\n rdfParser = rdfParser || _rdfParsers[format];\n if(!rdfParser) {\n throw new JsonLdError(\n 'Unknown input format.',\n 'jsonld.UnknownFormat', {format});\n }\n } else {\n // no-op parser, assume dataset already parsed\n rdfParser = () => dataset;\n }\n\n // rdfParser must be synchronous or return a promise, no callback support\n const parsedDataset = await rdfParser(dataset);\n return _fromRDF(parsedDataset, options);\n};\n\n/**\n * Outputs the RDF dataset found in the given JSON-LD object.\n *\n * @param input the JSON-LD input.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [skipExpansion] true to assume the input is expanded and skip\n * expansion, false not to, defaults to false. Some well-formed\n * and safe-mode checks may be omitted.\n * [format] the format to use to output a string:\n * 'application/n-quads' for N-Quads.\n * [produceGeneralizedRdf] true to output generalized RDF, false\n * to produce only standard RDF (default: false).\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [rdfDirection] null or 'i18n-datatype' to support RDF\n * transformation of @direction (default: null).\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the RDF dataset.\n */\njsonld.toRDF = async function(input, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not convert to RDF, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : '',\n skipExpansion: false,\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // TODO: support toRDF custom map?\n let expanded;\n if(options.skipExpansion) {\n expanded = input;\n } else {\n // expand input\n expanded = await jsonld.expand(input, options);\n }\n\n // output RDF dataset\n const dataset = _toRDF(expanded, options);\n if(options.format) {\n if(options.format === 'application/n-quads' ||\n options.format === 'application/nquads') {\n return NQuads.serialize(dataset);\n }\n throw new JsonLdError(\n 'Unknown output format.',\n 'jsonld.UnknownFormat', {format: options.format});\n }\n\n return dataset;\n};\n\n/**\n * **Experimental**\n *\n * Recursively flattens the nodes in the given JSON-LD input into a merged\n * map of node ID => node. All graphs will be merged into the default graph.\n *\n * @param input the JSON-LD input.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [issuer] a jsonld.IdentifierIssuer to use to label blank nodes.\n * [documentLoader(url, options)] the document loader.\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the merged node map.\n */\njsonld.createNodeMap = async function(input, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not create node map, too few arguments.');\n }\n\n // set default options\n options = _setDefaults(options, {\n base: _isString(input) ? input : '',\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // expand input\n const expanded = await jsonld.expand(input, options);\n\n return _createMergedNodeMap(expanded, options);\n};\n\n/**\n * **Experimental**\n *\n * Merges two or more JSON-LD documents into a single flattened document.\n *\n * @param docs the JSON-LD documents to merge together.\n * @param ctx the context to use to compact the merged result, or null.\n * @param [options] the options to use:\n * [base] the base IRI to use.\n * [expandContext] a context to expand with.\n * [issuer] a jsonld.IdentifierIssuer to use to label blank nodes.\n * [mergeNodes] true to merge properties for nodes with the same ID,\n * false to ignore new properties for nodes with the same ID once\n * the ID has been defined; note that this may not prevent merging\n * new properties where a node is in the `object` position\n * (default: true).\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the merged output.\n */\njsonld.merge = async function(docs, ctx, options) {\n if(arguments.length < 1) {\n throw new TypeError('Could not merge, too few arguments.');\n }\n if(!_isArray(docs)) {\n throw new TypeError('Could not merge, \"docs\" must be an array.');\n }\n\n if(typeof ctx === 'function') {\n ctx = null;\n } else {\n ctx = ctx || null;\n }\n\n // set default options\n options = _setDefaults(options, {\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // expand all documents\n const expanded = await Promise.all(docs.map(doc => {\n const opts = {...options};\n return jsonld.expand(doc, opts);\n }));\n\n let mergeNodes = true;\n if('mergeNodes' in options) {\n mergeNodes = options.mergeNodes;\n }\n\n const issuer = options.issuer || new IdentifierIssuer('_:b');\n const graphs = {'@default': {}};\n\n for(let i = 0; i < expanded.length; ++i) {\n // uniquely relabel blank nodes\n const doc = util.relabelBlankNodes(expanded[i], {\n issuer: new IdentifierIssuer('_:b' + i + '-')\n });\n\n // add nodes to the shared node map graphs if merging nodes, to a\n // separate graph set if not\n const _graphs = (mergeNodes || i === 0) ? graphs : {'@default': {}};\n _createNodeMap(doc, _graphs, '@default', issuer);\n\n if(_graphs !== graphs) {\n // merge document graphs but don't merge existing nodes\n for(const graphName in _graphs) {\n const _nodeMap = _graphs[graphName];\n if(!(graphName in graphs)) {\n graphs[graphName] = _nodeMap;\n continue;\n }\n const nodeMap = graphs[graphName];\n for(const key in _nodeMap) {\n if(!(key in nodeMap)) {\n nodeMap[key] = _nodeMap[key];\n }\n }\n }\n }\n }\n\n // add all non-default graphs to default graph\n const defaultGraph = _mergeNodeMaps(graphs);\n\n // produce flattened output\n const flattened = [];\n const keys = Object.keys(defaultGraph).sort();\n for(let ki = 0; ki < keys.length; ++ki) {\n const node = defaultGraph[keys[ki]];\n // only add full subjects to top-level\n if(!_isSubjectReference(node)) {\n flattened.push(node);\n }\n }\n\n if(ctx === null) {\n return flattened;\n }\n\n // compact result (force @graph option to true, skip expansion)\n options.graph = true;\n options.skipExpansion = true;\n const compacted = await jsonld.compact(flattened, ctx, options);\n\n return compacted;\n};\n\n/**\n * The default document loader for external documents.\n *\n * @param url the URL to load.\n *\n * @return a promise that resolves to the remote document.\n */\nObject.defineProperty(jsonld, 'documentLoader', {\n get: () => jsonld._documentLoader,\n set: v => jsonld._documentLoader = v\n});\n// default document loader not implemented\njsonld.documentLoader = async url => {\n throw new JsonLdError(\n 'Could not retrieve a JSON-LD document from the URL. URL ' +\n 'dereferencing not implemented.', 'jsonld.LoadDocumentError',\n {code: 'loading document failed', url});\n};\n\n/**\n * Gets a remote JSON-LD document using the default document loader or\n * one given in the passed options.\n *\n * @param url the URL to fetch.\n * @param [options] the options to use:\n * [documentLoader] the document loader to use.\n *\n * @return a Promise that resolves to the retrieved remote document.\n */\njsonld.get = async function(url, options) {\n let load;\n if(typeof options.documentLoader === 'function') {\n load = options.documentLoader;\n } else {\n load = jsonld.documentLoader;\n }\n\n const remoteDoc = await load(url);\n\n try {\n if(!remoteDoc.document) {\n throw new JsonLdError(\n 'No remote document found at the given URL.',\n 'jsonld.NullRemoteDocument');\n }\n if(_isString(remoteDoc.document)) {\n remoteDoc.document = JSON.parse(remoteDoc.document);\n }\n } catch(e) {\n throw new JsonLdError(\n 'Could not retrieve a JSON-LD document from the URL.',\n 'jsonld.LoadDocumentError', {\n code: 'loading document failed',\n cause: e,\n remoteDoc\n });\n }\n\n return remoteDoc;\n};\n\n/**\n * Processes a local context, resolving any URLs as necessary, and returns a\n * new active context.\n *\n * @param activeCtx the current active context.\n * @param localCtx the local context to process.\n * @param [options] the options to use:\n * [documentLoader(url, options)] the document loader.\n * [safe] true to use safe mode. (default: false)\n * [contextResolver] internal use only.\n *\n * @return a Promise that resolves to the new active context.\n */\njsonld.processContext = async function(\n activeCtx, localCtx, options) {\n // set default options\n options = _setDefaults(options, {\n base: '',\n contextResolver: new ContextResolver(\n {sharedCache: _resolvedContextCache})\n });\n\n // return initial context early for null context\n if(localCtx === null) {\n return _getInitialContext(options);\n }\n\n // get URLs in localCtx\n localCtx = util.clone(localCtx);\n if(!(_isObject(localCtx) && '@context' in localCtx)) {\n localCtx = {'@context': localCtx};\n }\n\n return _processContext({activeCtx, localCtx, options});\n};\n\n// backwards compatibility\njsonld.getContextValue = require('./context').getContextValue;\n\n/**\n * Document loaders.\n */\njsonld.documentLoaders = {};\n\n/**\n * Assigns the default document loader for external document URLs to a built-in\n * default. Supported types currently include: 'xhr' and 'node'.\n *\n * @param type the type to set.\n * @param [params] the parameters required to use the document loader.\n */\njsonld.useDocumentLoader = function(type) {\n if(!(type in jsonld.documentLoaders)) {\n throw new JsonLdError(\n 'Unknown document loader type: \"' + type + '\"',\n 'jsonld.UnknownDocumentLoader',\n {type});\n }\n\n // set document loader\n jsonld.documentLoader = jsonld.documentLoaders[type].apply(\n jsonld, Array.prototype.slice.call(arguments, 1));\n};\n\n/**\n * Registers an RDF dataset parser by content-type, for use with\n * jsonld.fromRDF. An RDF dataset parser will always be given one parameter,\n * a string of input. An RDF dataset parser can be synchronous or\n * asynchronous (by returning a promise).\n *\n * @param contentType the content-type for the parser.\n * @param parser(input) the parser function (takes a string as a parameter\n * and either returns an RDF dataset or a Promise that resolves to one.\n */\njsonld.registerRDFParser = function(contentType, parser) {\n _rdfParsers[contentType] = parser;\n};\n\n/**\n * Unregisters an RDF dataset parser by content-type.\n *\n * @param contentType the content-type for the parser.\n */\njsonld.unregisterRDFParser = function(contentType) {\n delete _rdfParsers[contentType];\n};\n\n// register the N-Quads RDF parser\njsonld.registerRDFParser('application/n-quads', NQuads.parse);\njsonld.registerRDFParser('application/nquads', NQuads.parse);\n\n/* URL API */\njsonld.url = require('./url');\n\n/* Events API and handlers */\njsonld.logEventHandler = _logEventHandler;\njsonld.logWarningEventHandler = _logWarningEventHandler;\njsonld.safeEventHandler = _safeEventHandler;\njsonld.setDefaultEventHandler = _setDefaultEventHandler;\njsonld.strictEventHandler = _strictEventHandler;\njsonld.unhandledEventHandler = _unhandledEventHandler;\n\n/* Utility API */\njsonld.util = util;\n// backwards compatibility\nObject.assign(jsonld, util);\n\n// reexpose API as jsonld.promises for backwards compatability\njsonld.promises = jsonld;\n\n// backwards compatibility\njsonld.RequestQueue = require('./RequestQueue');\n\n/* WebIDL API */\njsonld.JsonLdProcessor = require('./JsonLdProcessor')(jsonld);\n\nplatform.setupGlobals(jsonld);\nplatform.setupDocumentLoaders(jsonld);\n\nfunction _setDefaults(options, {\n documentLoader = jsonld.documentLoader,\n ...defaults\n}) {\n // fail if obsolete options present\n if(options && 'compactionMap' in options) {\n throw new JsonLdError(\n '\"compactionMap\" not supported.',\n 'jsonld.OptionsError');\n }\n if(options && 'expansionMap' in options) {\n throw new JsonLdError(\n '\"expansionMap\" not supported.',\n 'jsonld.OptionsError');\n }\n return Object.assign(\n {},\n {documentLoader},\n defaults,\n options,\n {eventHandler: _setupEventHandler({options})}\n );\n}\n\n// end of jsonld API `wrapper` factory\nreturn jsonld;\n};\n\n// external APIs:\n\n// used to generate a new jsonld API instance\nconst factory = function() {\n return wrapper(function() {\n return factory();\n });\n};\n\n// wrap the main jsonld API instance\nwrapper(factory);\n// export API\nmodule.exports = factory;\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {isKeyword} = require('./context');\nconst graphTypes = require('./graphTypes');\nconst types = require('./types');\nconst util = require('./util');\nconst JsonLdError = require('./JsonLdError');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Creates a merged JSON-LD node map (node ID => node).\n *\n * @param input the expanded JSON-LD to create a node map of.\n * @param [options] the options to use:\n * [issuer] a jsonld.IdentifierIssuer to use to label blank nodes.\n *\n * @return the node map.\n */\napi.createMergedNodeMap = (input, options) => {\n options = options || {};\n\n // produce a map of all subjects and name each bnode\n const issuer = options.issuer || new util.IdentifierIssuer('_:b');\n const graphs = {'@default': {}};\n api.createNodeMap(input, graphs, '@default', issuer);\n\n // add all non-default graphs to default graph\n return api.mergeNodeMaps(graphs);\n};\n\n/**\n * Recursively flattens the subjects in the given JSON-LD expanded input\n * into a node map.\n *\n * @param input the JSON-LD expanded input.\n * @param graphs a map of graph name to subject map.\n * @param graph the name of the current graph.\n * @param issuer the blank node identifier issuer.\n * @param name the name assigned to the current input if it is a bnode.\n * @param list the list to append to, null for none.\n */\napi.createNodeMap = (input, graphs, graph, issuer, name, list) => {\n // recurse through array\n if(types.isArray(input)) {\n for(const node of input) {\n api.createNodeMap(node, graphs, graph, issuer, undefined, list);\n }\n return;\n }\n\n // add non-object to list\n if(!types.isObject(input)) {\n if(list) {\n list.push(input);\n }\n return;\n }\n\n // add values to list\n if(graphTypes.isValue(input)) {\n if('@type' in input) {\n let type = input['@type'];\n // rename @type blank node\n if(type.indexOf('_:') === 0) {\n input['@type'] = type = issuer.getId(type);\n }\n }\n if(list) {\n list.push(input);\n }\n return;\n } else if(list && graphTypes.isList(input)) {\n const _list = [];\n api.createNodeMap(input['@list'], graphs, graph, issuer, name, _list);\n list.push({'@list': _list});\n return;\n }\n\n // Note: At this point, input must be a subject.\n\n // spec requires @type to be named first, so assign names early\n if('@type' in input) {\n const types = input['@type'];\n for(const type of types) {\n if(type.indexOf('_:') === 0) {\n issuer.getId(type);\n }\n }\n }\n\n // get name for subject\n if(types.isUndefined(name)) {\n name = graphTypes.isBlankNode(input) ?\n issuer.getId(input['@id']) : input['@id'];\n }\n\n // add subject reference to list\n if(list) {\n list.push({'@id': name});\n }\n\n // create new subject or merge into existing one\n const subjects = graphs[graph];\n const subject = subjects[name] = subjects[name] || {};\n subject['@id'] = name;\n const properties = Object.keys(input).sort();\n for(let property of properties) {\n // skip @id\n if(property === '@id') {\n continue;\n }\n\n // handle reverse properties\n if(property === '@reverse') {\n const referencedNode = {'@id': name};\n const reverseMap = input['@reverse'];\n for(const reverseProperty in reverseMap) {\n const items = reverseMap[reverseProperty];\n for(const item of items) {\n let itemName = item['@id'];\n if(graphTypes.isBlankNode(item)) {\n itemName = issuer.getId(itemName);\n }\n api.createNodeMap(item, graphs, graph, issuer, itemName);\n util.addValue(\n subjects[itemName], reverseProperty, referencedNode,\n {propertyIsArray: true, allowDuplicate: false});\n }\n }\n continue;\n }\n\n // recurse into graph\n if(property === '@graph') {\n // add graph subjects map entry\n if(!(name in graphs)) {\n graphs[name] = {};\n }\n api.createNodeMap(input[property], graphs, name, issuer);\n continue;\n }\n\n // recurse into included\n if(property === '@included') {\n api.createNodeMap(input[property], graphs, graph, issuer);\n continue;\n }\n\n // copy non-@type keywords\n if(property !== '@type' && isKeyword(property)) {\n if(property === '@index' && property in subject &&\n (input[property] !== subject[property] ||\n input[property]['@id'] !== subject[property]['@id'])) {\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; conflicting @index property detected.',\n 'jsonld.SyntaxError',\n {code: 'conflicting indexes', subject});\n }\n subject[property] = input[property];\n continue;\n }\n\n // iterate over objects\n const objects = input[property];\n\n // if property is a bnode, assign it a new id\n if(property.indexOf('_:') === 0) {\n property = issuer.getId(property);\n }\n\n // ensure property is added for empty arrays\n if(objects.length === 0) {\n util.addValue(subject, property, [], {propertyIsArray: true});\n continue;\n }\n for(let o of objects) {\n if(property === '@type') {\n // rename @type blank nodes\n o = (o.indexOf('_:') === 0) ? issuer.getId(o) : o;\n }\n\n // handle embedded subject or subject reference\n if(graphTypes.isSubject(o) || graphTypes.isSubjectReference(o)) {\n // skip null @id\n if('@id' in o && !o['@id']) {\n continue;\n }\n\n // relabel blank node @id\n const id = graphTypes.isBlankNode(o) ?\n issuer.getId(o['@id']) : o['@id'];\n\n // add reference and recurse\n util.addValue(\n subject, property, {'@id': id},\n {propertyIsArray: true, allowDuplicate: false});\n api.createNodeMap(o, graphs, graph, issuer, id);\n } else if(graphTypes.isValue(o)) {\n util.addValue(\n subject, property, o,\n {propertyIsArray: true, allowDuplicate: false});\n } else if(graphTypes.isList(o)) {\n // handle @list\n const _list = [];\n api.createNodeMap(o['@list'], graphs, graph, issuer, name, _list);\n o = {'@list': _list};\n util.addValue(\n subject, property, o,\n {propertyIsArray: true, allowDuplicate: false});\n } else {\n // handle @value\n api.createNodeMap(o, graphs, graph, issuer, name);\n util.addValue(\n subject, property, o, {propertyIsArray: true, allowDuplicate: false});\n }\n }\n }\n};\n\n/**\n * Merge separate named graphs into a single merged graph including\n * all nodes from the default graph and named graphs.\n *\n * @param graphs a map of graph name to subject map.\n *\n * @return the merged graph map.\n */\napi.mergeNodeMapGraphs = graphs => {\n const merged = {};\n for(const name of Object.keys(graphs).sort()) {\n for(const id of Object.keys(graphs[name]).sort()) {\n const node = graphs[name][id];\n if(!(id in merged)) {\n merged[id] = {'@id': id};\n }\n const mergedNode = merged[id];\n\n for(const property of Object.keys(node).sort()) {\n if(isKeyword(property) && property !== '@type') {\n // copy keywords\n mergedNode[property] = util.clone(node[property]);\n } else {\n // merge objects\n for(const value of node[property]) {\n util.addValue(\n mergedNode, property, util.clone(value),\n {propertyIsArray: true, allowDuplicate: false});\n }\n }\n }\n }\n }\n\n return merged;\n};\n\napi.mergeNodeMaps = graphs => {\n // add all non-default graphs to default graph\n const defaultGraph = graphs['@default'];\n const graphNames = Object.keys(graphs).sort();\n for(const graphName of graphNames) {\n if(graphName === '@default') {\n continue;\n }\n const nodeMap = graphs[graphName];\n let subject = defaultGraph[graphName];\n if(!subject) {\n defaultGraph[graphName] = subject = {\n '@id': graphName,\n '@graph': []\n };\n } else if(!('@graph' in subject)) {\n subject['@graph'] = [];\n }\n const graph = subject['@graph'];\n for(const id of Object.keys(nodeMap).sort()) {\n const node = nodeMap[id];\n // only add full subjects\n if(!graphTypes.isSubjectReference(node)) {\n graph.push(node);\n }\n }\n }\n return defaultGraph;\n};\n","/*\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst xhrLoader = require('./documentLoaders/xhr');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Setup browser document loaders.\n *\n * @param jsonld the jsonld api.\n */\napi.setupDocumentLoaders = function(jsonld) {\n if(typeof XMLHttpRequest !== 'undefined') {\n jsonld.documentLoaders.xhr = xhrLoader;\n // use xhr document loader by default\n jsonld.useDocumentLoader('xhr');\n }\n};\n\n/**\n * Setup browser globals.\n *\n * @param jsonld the jsonld api.\n */\napi.setupGlobals = function(jsonld) {\n // setup browser global JsonLdProcessor\n if(typeof globalThis.JsonLdProcessor === 'undefined') {\n Object.defineProperty(globalThis, 'JsonLdProcessor', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: jsonld.JsonLdProcessor\n });\n }\n};\n","/*\n * Copyright (c) 2017-2023 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst {createNodeMap} = require('./nodeMap');\nconst {isKeyword} = require('./context');\nconst graphTypes = require('./graphTypes');\nconst jsonCanonicalize = require('canonicalize');\nconst JsonLdError = require('./JsonLdError');\nconst types = require('./types');\nconst util = require('./util');\n\nconst {\n handleEvent: _handleEvent\n} = require('./events');\n\nconst {\n // RDF,\n // RDF_LIST,\n RDF_FIRST,\n RDF_REST,\n RDF_NIL,\n RDF_TYPE,\n // RDF_PLAIN_LITERAL,\n // RDF_XML_LITERAL,\n RDF_JSON_LITERAL,\n // RDF_OBJECT,\n RDF_LANGSTRING,\n\n // XSD,\n XSD_BOOLEAN,\n XSD_DOUBLE,\n XSD_INTEGER,\n XSD_STRING,\n} = require('./constants');\n\nconst {\n isAbsolute: _isAbsoluteIri\n} = require('./url');\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Outputs an RDF dataset for the expanded JSON-LD input.\n *\n * @param input the expanded JSON-LD input.\n * @param options the RDF serialization options.\n *\n * @return the RDF dataset.\n */\napi.toRDF = (input, options) => {\n // create node map for default graph (and any named graphs)\n const issuer = new util.IdentifierIssuer('_:b');\n const nodeMap = {'@default': {}};\n createNodeMap(input, nodeMap, '@default', issuer);\n\n const dataset = [];\n const graphNames = Object.keys(nodeMap).sort();\n for(const graphName of graphNames) {\n let graphTerm;\n if(graphName === '@default') {\n graphTerm = {termType: 'DefaultGraph', value: ''};\n } else if(_isAbsoluteIri(graphName)) {\n if(graphName.startsWith('_:')) {\n graphTerm = {termType: 'BlankNode'};\n } else {\n graphTerm = {termType: 'NamedNode'};\n }\n graphTerm.value = graphName;\n } else {\n // skip relative IRIs (not valid RDF)\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative graph reference',\n level: 'warning',\n message: 'Relative graph reference found.',\n details: {\n graph: graphName\n }\n },\n options\n });\n }\n continue;\n }\n _graphToRDF(dataset, nodeMap[graphName], graphTerm, issuer, options);\n }\n\n return dataset;\n};\n\n/**\n * Adds RDF quads for a particular graph to the given dataset.\n *\n * @param dataset the dataset to append RDF quads to.\n * @param graph the graph to create RDF quads for.\n * @param graphTerm the graph term for each quad.\n * @param issuer a IdentifierIssuer for assigning blank node names.\n * @param options the RDF serialization options.\n *\n * @return the array of RDF triples for the given graph.\n */\nfunction _graphToRDF(dataset, graph, graphTerm, issuer, options) {\n const ids = Object.keys(graph).sort();\n for(const id of ids) {\n const node = graph[id];\n const properties = Object.keys(node).sort();\n for(let property of properties) {\n const items = node[property];\n if(property === '@type') {\n property = RDF_TYPE;\n } else if(isKeyword(property)) {\n continue;\n }\n\n for(const item of items) {\n // RDF subject\n const subject = {\n termType: id.startsWith('_:') ? 'BlankNode' : 'NamedNode',\n value: id\n };\n\n // skip relative IRI subjects (not valid RDF)\n if(!_isAbsoluteIri(id)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative subject reference',\n level: 'warning',\n message: 'Relative subject reference found.',\n details: {\n subject: id\n }\n },\n options\n });\n }\n continue;\n }\n\n // RDF predicate\n const predicate = {\n termType: property.startsWith('_:') ? 'BlankNode' : 'NamedNode',\n value: property\n };\n\n // skip relative IRI predicates (not valid RDF)\n if(!_isAbsoluteIri(property)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative predicate reference',\n level: 'warning',\n message: 'Relative predicate reference found.',\n details: {\n predicate: property\n }\n },\n options\n });\n }\n continue;\n }\n\n // skip blank node predicates unless producing generalized RDF\n if(predicate.termType === 'BlankNode' &&\n !options.produceGeneralizedRdf) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'blank node predicate',\n level: 'warning',\n message: 'Dropping blank node predicate.',\n details: {\n // FIXME: add better issuer API to get reverse mapping\n property: issuer.getOldIds()\n .find(key => issuer.getId(key) === property)\n }\n },\n options\n });\n }\n continue;\n }\n\n // convert list, value or node object to triple\n const object = _objectToRDF(\n item, issuer, dataset, graphTerm, options.rdfDirection, options);\n // skip null objects (they are relative IRIs)\n if(object) {\n dataset.push({\n subject,\n predicate,\n object,\n graph: graphTerm\n });\n }\n }\n }\n }\n}\n\n/**\n * Converts a @list value into linked list of blank node RDF quads\n * (an RDF collection).\n *\n * @param list the @list value.\n * @param issuer a IdentifierIssuer for assigning blank node names.\n * @param dataset the array of quads to append to.\n * @param graphTerm the graph term for each quad.\n * @param options the RDF serialization options.\n *\n * @return the head of the list.\n */\nfunction _listToRDF(list, issuer, dataset, graphTerm, rdfDirection, options) {\n const first = {termType: 'NamedNode', value: RDF_FIRST};\n const rest = {termType: 'NamedNode', value: RDF_REST};\n const nil = {termType: 'NamedNode', value: RDF_NIL};\n\n const last = list.pop();\n // Result is the head of the list\n const result = last ? {termType: 'BlankNode', value: issuer.getId()} : nil;\n let subject = result;\n\n for(const item of list) {\n const object = _objectToRDF(\n item, issuer, dataset, graphTerm, rdfDirection, options);\n const next = {termType: 'BlankNode', value: issuer.getId()};\n dataset.push({\n subject,\n predicate: first,\n object,\n graph: graphTerm\n });\n dataset.push({\n subject,\n predicate: rest,\n object: next,\n graph: graphTerm\n });\n subject = next;\n }\n\n // Tail of list\n if(last) {\n const object = _objectToRDF(\n last, issuer, dataset, graphTerm, rdfDirection, options);\n dataset.push({\n subject,\n predicate: first,\n object,\n graph: graphTerm\n });\n dataset.push({\n subject,\n predicate: rest,\n object: nil,\n graph: graphTerm\n });\n }\n\n return result;\n}\n\n/**\n * Converts a JSON-LD value object to an RDF literal or a JSON-LD string,\n * node object to an RDF resource, or adds a list.\n *\n * @param item the JSON-LD value or node object.\n * @param issuer a IdentifierIssuer for assigning blank node names.\n * @param dataset the dataset to append RDF quads to.\n * @param graphTerm the graph term for each quad.\n * @param options the RDF serialization options.\n *\n * @return the RDF literal or RDF resource.\n */\nfunction _objectToRDF(\n item, issuer, dataset, graphTerm, rdfDirection, options\n) {\n const object = {};\n\n // convert value object to RDF\n if(graphTypes.isValue(item)) {\n object.termType = 'Literal';\n object.value = undefined;\n object.datatype = {\n termType: 'NamedNode'\n };\n let value = item['@value'];\n const datatype = item['@type'] || null;\n\n // convert to XSD/JSON datatypes as appropriate\n if(datatype === '@json') {\n object.value = jsonCanonicalize(value);\n object.datatype.value = RDF_JSON_LITERAL;\n } else if(types.isBoolean(value)) {\n object.value = value.toString();\n object.datatype.value = datatype || XSD_BOOLEAN;\n } else if(types.isDouble(value) || datatype === XSD_DOUBLE) {\n if(!types.isDouble(value)) {\n value = parseFloat(value);\n }\n // canonical double representation\n object.value = value.toExponential(15).replace(/(\\d)0*e\\+?/, '$1E');\n object.datatype.value = datatype || XSD_DOUBLE;\n } else if(types.isNumber(value)) {\n object.value = value.toFixed(0);\n object.datatype.value = datatype || XSD_INTEGER;\n } else if('@direction' in item && rdfDirection === 'i18n-datatype') {\n const language = (item['@language'] || '').toLowerCase();\n const direction = item['@direction'];\n const datatype = `https://www.w3.org/ns/i18n#${language}_${direction}`;\n object.datatype.value = datatype;\n object.value = value;\n } else if('@direction' in item && rdfDirection === 'compound-literal') {\n throw new JsonLdError(\n 'Unsupported rdfDirection value.',\n 'jsonld.InvalidRdfDirection',\n {value: rdfDirection});\n } else if('@direction' in item && rdfDirection) {\n throw new JsonLdError(\n 'Unknown rdfDirection value.',\n 'jsonld.InvalidRdfDirection',\n {value: rdfDirection});\n } else if('@language' in item) {\n if('@direction' in item && !rdfDirection) {\n if(options.eventHandler) {\n // FIXME: only emit once?\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'rdfDirection not set',\n level: 'warning',\n message: 'rdfDirection not set for @direction.',\n details: {\n object: object.value\n }\n },\n options\n });\n }\n }\n object.value = value;\n object.datatype.value = datatype || RDF_LANGSTRING;\n object.language = item['@language'];\n } else {\n if('@direction' in item && !rdfDirection) {\n if(options.eventHandler) {\n // FIXME: only emit once?\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'rdfDirection not set',\n level: 'warning',\n message: 'rdfDirection not set for @direction.',\n details: {\n object: object.value\n }\n },\n options\n });\n }\n }\n object.value = value;\n object.datatype.value = datatype || XSD_STRING;\n }\n } else if(graphTypes.isList(item)) {\n const _list = _listToRDF(\n item['@list'], issuer, dataset, graphTerm, rdfDirection, options);\n object.termType = _list.termType;\n object.value = _list.value;\n } else {\n // convert string/node object to RDF\n const id = types.isObject(item) ? item['@id'] : item;\n object.termType = id.startsWith('_:') ? 'BlankNode' : 'NamedNode';\n object.value = id;\n }\n\n // skip relative IRIs, not valid RDF\n if(object.termType === 'NamedNode' && !_isAbsoluteIri(object.value)) {\n if(options.eventHandler) {\n _handleEvent({\n event: {\n type: ['JsonLdEvent'],\n code: 'relative object reference',\n level: 'warning',\n message: 'Relative object reference found.',\n details: {\n object: object.value\n }\n },\n options\n });\n }\n return null;\n }\n\n return object;\n}\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst api = {};\nmodule.exports = api;\n\n/**\n * Returns true if the given value is an Array.\n *\n * @param v the value to check.\n *\n * @return true if the value is an Array, false if not.\n */\napi.isArray = Array.isArray;\n\n/**\n * Returns true if the given value is a Boolean.\n *\n * @param v the value to check.\n *\n * @return true if the value is a Boolean, false if not.\n */\napi.isBoolean = v => (typeof v === 'boolean' ||\n Object.prototype.toString.call(v) === '[object Boolean]');\n\n/**\n * Returns true if the given value is a double.\n *\n * @param v the value to check.\n *\n * @return true if the value is a double, false if not.\n */\napi.isDouble = v => api.isNumber(v) &&\n (String(v).indexOf('.') !== -1 || Math.abs(v) >= 1e21);\n\n/**\n * Returns true if the given value is an empty Object.\n *\n * @param v the value to check.\n *\n * @return true if the value is an empty Object, false if not.\n */\napi.isEmptyObject = v => api.isObject(v) && Object.keys(v).length === 0;\n\n/**\n * Returns true if the given value is a Number.\n *\n * @param v the value to check.\n *\n * @return true if the value is a Number, false if not.\n */\napi.isNumber = v => (typeof v === 'number' ||\n Object.prototype.toString.call(v) === '[object Number]');\n\n/**\n * Returns true if the given value is numeric.\n *\n * @param v the value to check.\n *\n * @return true if the value is numeric, false if not.\n */\napi.isNumeric = v => !isNaN(parseFloat(v)) && isFinite(v);\n\n/**\n * Returns true if the given value is an Object.\n *\n * @param v the value to check.\n *\n * @return true if the value is an Object, false if not.\n */\napi.isObject = v => Object.prototype.toString.call(v) === '[object Object]';\n\n/**\n * Returns true if the given value is a String.\n *\n * @param v the value to check.\n *\n * @return true if the value is a String, false if not.\n */\napi.isString = v => (typeof v === 'string' ||\n Object.prototype.toString.call(v) === '[object String]');\n\n/**\n * Returns true if the given value is undefined.\n *\n * @param v the value to check.\n *\n * @return true if the value is undefined, false if not.\n */\napi.isUndefined = v => typeof v === 'undefined';\n","/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst types = require('./types');\n\nconst api = {};\nmodule.exports = api;\n\n// define URL parser\n// parseUri 1.2.2\n// (c) Steven Levithan \n// MIT License\n// with local jsonld.js modifications\napi.parsers = {\n simple: {\n // RFC 3986 basic parts\n keys: [\n 'href', 'scheme', 'authority', 'path', 'query', 'fragment'\n ],\n /* eslint-disable-next-line max-len */\n regex: /^(?:([^:\\/?#]+):)?(?:\\/\\/([^\\/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?/\n },\n full: {\n keys: [\n 'href', 'protocol', 'scheme', 'authority', 'auth', 'user', 'password',\n 'hostname', 'port', 'path', 'directory', 'file', 'query', 'fragment'\n ],\n /* eslint-disable-next-line max-len */\n regex: /^(([a-zA-Z][a-zA-Z0-9+-.]*):)?(?:\\/\\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?))?(?:(((?:[^?#\\/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/\n }\n};\napi.parse = (str, parser) => {\n const parsed = {};\n const o = api.parsers[parser || 'full'];\n const m = o.regex.exec(str);\n let i = o.keys.length;\n while(i--) {\n parsed[o.keys[i]] = (m[i] === undefined) ? null : m[i];\n }\n\n // remove default ports in found in URLs\n if((parsed.scheme === 'https' && parsed.port === '443') ||\n (parsed.scheme === 'http' && parsed.port === '80')) {\n parsed.href = parsed.href.replace(':' + parsed.port, '');\n parsed.authority = parsed.authority.replace(':' + parsed.port, '');\n parsed.port = null;\n }\n\n parsed.normalizedPath = api.removeDotSegments(parsed.path);\n return parsed;\n};\n\n/**\n * Prepends a base IRI to the given relative IRI.\n *\n * @param base the base IRI.\n * @param iri the relative IRI.\n *\n * @return the absolute IRI.\n */\napi.prependBase = (base, iri) => {\n // skip IRI processing\n if(base === null) {\n return iri;\n }\n // already an absolute IRI\n if(api.isAbsolute(iri)) {\n return iri;\n }\n\n // parse base if it is a string\n if(!base || types.isString(base)) {\n base = api.parse(base || '');\n }\n\n // parse given IRI\n const rel = api.parse(iri);\n\n // per RFC3986 5.2.2\n const transform = {\n protocol: base.protocol || ''\n };\n\n if(rel.authority !== null) {\n transform.authority = rel.authority;\n transform.path = rel.path;\n transform.query = rel.query;\n } else {\n transform.authority = base.authority;\n\n if(rel.path === '') {\n transform.path = base.path;\n if(rel.query !== null) {\n transform.query = rel.query;\n } else {\n transform.query = base.query;\n }\n } else {\n if(rel.path.indexOf('/') === 0) {\n // IRI represents an absolute path\n transform.path = rel.path;\n } else {\n // merge paths\n let path = base.path;\n\n // append relative path to the end of the last directory from base\n path = path.substr(0, path.lastIndexOf('/') + 1);\n if((path.length > 0 || base.authority) && path.substr(-1) !== '/') {\n path += '/';\n }\n path += rel.path;\n\n transform.path = path;\n }\n transform.query = rel.query;\n }\n }\n\n if(rel.path !== '') {\n // remove slashes and dots in path\n transform.path = api.removeDotSegments(transform.path);\n }\n\n // construct URL\n let rval = transform.protocol;\n if(transform.authority !== null) {\n rval += '//' + transform.authority;\n }\n rval += transform.path;\n if(transform.query !== null) {\n rval += '?' + transform.query;\n }\n if(rel.fragment !== null) {\n rval += '#' + rel.fragment;\n }\n\n // handle empty base\n if(rval === '') {\n rval = './';\n }\n\n return rval;\n};\n\n/**\n * Removes a base IRI from the given absolute IRI.\n *\n * @param base the base IRI.\n * @param iri the absolute IRI.\n *\n * @return the relative IRI if relative to base, otherwise the absolute IRI.\n */\napi.removeBase = (base, iri) => {\n // skip IRI processing\n if(base === null) {\n return iri;\n }\n\n if(!base || types.isString(base)) {\n base = api.parse(base || '');\n }\n\n // establish base root\n let root = '';\n if(base.href !== '') {\n root += (base.protocol || '') + '//' + (base.authority || '');\n } else if(iri.indexOf('//')) {\n // support network-path reference with empty base\n root += '//';\n }\n\n // IRI not relative to base\n if(iri.indexOf(root) !== 0) {\n return iri;\n }\n\n // remove root from IRI and parse remainder\n const rel = api.parse(iri.substr(root.length));\n\n // remove path segments that match (do not remove last segment unless there\n // is a hash or query)\n const baseSegments = base.normalizedPath.split('/');\n const iriSegments = rel.normalizedPath.split('/');\n const last = (rel.fragment || rel.query) ? 0 : 1;\n while(baseSegments.length > 0 && iriSegments.length > last) {\n if(baseSegments[0] !== iriSegments[0]) {\n break;\n }\n baseSegments.shift();\n iriSegments.shift();\n }\n\n // use '../' for each non-matching base segment\n let rval = '';\n if(baseSegments.length > 0) {\n // don't count the last segment (if it ends with '/' last path doesn't\n // count and if it doesn't end with '/' it isn't a path)\n baseSegments.pop();\n for(let i = 0; i < baseSegments.length; ++i) {\n rval += '../';\n }\n }\n\n // prepend remaining segments\n rval += iriSegments.join('/');\n\n // add query and hash\n if(rel.query !== null) {\n rval += '?' + rel.query;\n }\n if(rel.fragment !== null) {\n rval += '#' + rel.fragment;\n }\n\n // handle empty base\n if(rval === '') {\n rval = './';\n }\n\n return rval;\n};\n\n/**\n * Removes dot segments from a URL path.\n *\n * @param path the path to remove dot segments from.\n */\napi.removeDotSegments = path => {\n // RFC 3986 5.2.4 (reworked)\n\n // empty path shortcut\n if(path.length === 0) {\n return '';\n }\n\n const input = path.split('/');\n const output = [];\n\n while(input.length > 0) {\n const next = input.shift();\n const done = input.length === 0;\n\n if(next === '.') {\n if(done) {\n // ensure output has trailing /\n output.push('');\n }\n continue;\n }\n\n if(next === '..') {\n output.pop();\n if(done) {\n // ensure output has trailing /\n output.push('');\n }\n continue;\n }\n\n output.push(next);\n }\n\n // if path was absolute, ensure output has leading /\n if(path[0] === '/' && output.length > 0 && output[0] !== '') {\n output.unshift('');\n }\n if(output.length === 1 && output[0] === '') {\n return '/';\n }\n\n return output.join('/');\n};\n\n// TODO: time better isAbsolute/isRelative checks using full regexes:\n// http://jmrware.com/articles/2009/uri_regexp/URI_regex.html\n\n// regex to check for absolute IRI (starting scheme and ':') or blank node IRI\nconst isAbsoluteRegex = /^([A-Za-z][A-Za-z0-9+-.]*|_):[^\\s]*$/;\n\n/**\n * Returns true if the given value is an absolute IRI or blank node IRI, false\n * if not.\n * Note: This weak check only checks for a correct starting scheme.\n *\n * @param v the value to check.\n *\n * @return true if the value is an absolute IRI, false if not.\n */\napi.isAbsolute = v => types.isString(v) && isAbsoluteRegex.test(v);\n\n/**\n * Returns true if the given value is a relative IRI, false if not.\n * Note: this is a weak check.\n *\n * @param v the value to check.\n *\n * @return true if the value is a relative IRI, false if not.\n */\napi.isRelative = v => types.isString(v);\n","/*\n * Copyright (c) 2017-2019 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst graphTypes = require('./graphTypes');\nconst types = require('./types');\n// TODO: move `IdentifierIssuer` to its own package\nconst IdentifierIssuer = require('rdf-canonize').IdentifierIssuer;\nconst JsonLdError = require('./JsonLdError');\n\n// constants\nconst REGEX_BCP47 = /^[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$/;\nconst REGEX_LINK_HEADERS = /(?:<[^>]*?>|\"[^\"]*?\"|[^,])+/g;\nconst REGEX_LINK_HEADER = /\\s*<([^>]*?)>\\s*(?:;\\s*(.*))?/;\nconst REGEX_LINK_HEADER_PARAMS =\n /(.*?)=(?:(?:\"([^\"]*?)\")|([^\"]*?))\\s*(?:(?:;\\s*)|$)/g;\nconst REGEX_KEYWORD = /^@[a-zA-Z]+$/;\n\nconst DEFAULTS = {\n headers: {\n accept: 'application/ld+json, application/json'\n }\n};\n\nconst api = {};\nmodule.exports = api;\napi.IdentifierIssuer = IdentifierIssuer;\napi.REGEX_BCP47 = REGEX_BCP47;\napi.REGEX_KEYWORD = REGEX_KEYWORD;\n\n/**\n * Clones an object, array, Map, Set, or string/number. If a typed JavaScript\n * object is given, such as a Date, it will be converted to a string.\n *\n * @param value the value to clone.\n *\n * @return the cloned value.\n */\napi.clone = function(value) {\n if(value && typeof value === 'object') {\n let rval;\n if(types.isArray(value)) {\n rval = [];\n for(let i = 0; i < value.length; ++i) {\n rval[i] = api.clone(value[i]);\n }\n } else if(value instanceof Map) {\n rval = new Map();\n for(const [k, v] of value) {\n rval.set(k, api.clone(v));\n }\n } else if(value instanceof Set) {\n rval = new Set();\n for(const v of value) {\n rval.add(api.clone(v));\n }\n } else if(types.isObject(value)) {\n rval = {};\n for(const key in value) {\n rval[key] = api.clone(value[key]);\n }\n } else {\n rval = value.toString();\n }\n return rval;\n }\n return value;\n};\n\n/**\n * Ensure a value is an array. If the value is an array, it is returned.\n * Otherwise, it is wrapped in an array.\n *\n * @param value the value to return as an array.\n *\n * @return the value as an array.\n */\napi.asArray = function(value) {\n return Array.isArray(value) ? value : [value];\n};\n\n/**\n * Builds an HTTP headers object for making a JSON-LD request from custom\n * headers and asserts the `accept` header isn't overridden.\n *\n * @param headers an object of headers with keys as header names and values\n * as header values.\n *\n * @return an object of headers with a valid `accept` header.\n */\napi.buildHeaders = (headers = {}) => {\n const hasAccept = Object.keys(headers).some(\n h => h.toLowerCase() === 'accept');\n\n if(hasAccept) {\n throw new RangeError(\n 'Accept header may not be specified; only \"' +\n DEFAULTS.headers.accept + '\" is supported.');\n }\n\n return Object.assign({Accept: DEFAULTS.headers.accept}, headers);\n};\n\n/**\n * Parses a link header. The results will be key'd by the value of \"rel\".\n *\n * Link: ;\n * rel=\"http://www.w3.org/ns/json-ld#context\"; type=\"application/ld+json\"\n *\n * Parses as: {\n * 'http://www.w3.org/ns/json-ld#context': {\n * target: http://json-ld.org/contexts/person.jsonld,\n * type: 'application/ld+json'\n * }\n * }\n *\n * If there is more than one \"rel\" with the same IRI, then entries in the\n * resulting map for that \"rel\" will be arrays.\n *\n * @param header the link header to parse.\n */\napi.parseLinkHeader = header => {\n const rval = {};\n // split on unbracketed/unquoted commas\n const entries = header.match(REGEX_LINK_HEADERS);\n for(let i = 0; i < entries.length; ++i) {\n let match = entries[i].match(REGEX_LINK_HEADER);\n if(!match) {\n continue;\n }\n const result = {target: match[1]};\n const params = match[2];\n while((match = REGEX_LINK_HEADER_PARAMS.exec(params))) {\n result[match[1]] = (match[2] === undefined) ? match[3] : match[2];\n }\n const rel = result.rel || '';\n if(Array.isArray(rval[rel])) {\n rval[rel].push(result);\n } else if(rval.hasOwnProperty(rel)) {\n rval[rel] = [rval[rel], result];\n } else {\n rval[rel] = result;\n }\n }\n return rval;\n};\n\n/**\n * Throws an exception if the given value is not a valid @type value.\n *\n * @param v the value to check.\n */\napi.validateTypeValue = (v, isFrame) => {\n if(types.isString(v)) {\n return;\n }\n\n if(types.isArray(v) && v.every(vv => types.isString(vv))) {\n return;\n }\n if(isFrame && types.isObject(v)) {\n switch(Object.keys(v).length) {\n case 0:\n // empty object is wildcard\n return;\n case 1:\n // default entry is all strings\n if('@default' in v &&\n api.asArray(v['@default']).every(vv => types.isString(vv))) {\n return;\n }\n }\n }\n\n throw new JsonLdError(\n 'Invalid JSON-LD syntax; \"@type\" value must a string, an array of ' +\n 'strings, an empty object, ' +\n 'or a default object.', 'jsonld.SyntaxError',\n {code: 'invalid type value', value: v});\n};\n\n/**\n * Returns true if the given subject has the given property.\n *\n * @param subject the subject to check.\n * @param property the property to look for.\n *\n * @return true if the subject has the given property, false if not.\n */\napi.hasProperty = (subject, property) => {\n if(subject.hasOwnProperty(property)) {\n const value = subject[property];\n return (!types.isArray(value) || value.length > 0);\n }\n return false;\n};\n\n/**\n * Determines if the given value is a property of the given subject.\n *\n * @param subject the subject to check.\n * @param property the property to check.\n * @param value the value to check.\n *\n * @return true if the value exists, false if not.\n */\napi.hasValue = (subject, property, value) => {\n if(api.hasProperty(subject, property)) {\n let val = subject[property];\n const isList = graphTypes.isList(val);\n if(types.isArray(val) || isList) {\n if(isList) {\n val = val['@list'];\n }\n for(let i = 0; i < val.length; ++i) {\n if(api.compareValues(value, val[i])) {\n return true;\n }\n }\n } else if(!types.isArray(value)) {\n // avoid matching the set of values with an array value parameter\n return api.compareValues(value, val);\n }\n }\n return false;\n};\n\n/**\n * Adds a value to a subject. If the value is an array, all values in the\n * array will be added.\n *\n * @param subject the subject to add the value to.\n * @param property the property that relates the value to the subject.\n * @param value the value to add.\n * @param [options] the options to use:\n * [propertyIsArray] true if the property is always an array, false\n * if not (default: false).\n * [valueIsArray] true if the value to be added should be preserved as\n * an array (lists) (default: false).\n * [allowDuplicate] true to allow duplicates, false not to (uses a\n * simple shallow comparison of subject ID or value) (default: true).\n * [prependValue] false to prepend value to any existing values.\n * (default: false)\n */\napi.addValue = (subject, property, value, options) => {\n options = options || {};\n if(!('propertyIsArray' in options)) {\n options.propertyIsArray = false;\n }\n if(!('valueIsArray' in options)) {\n options.valueIsArray = false;\n }\n if(!('allowDuplicate' in options)) {\n options.allowDuplicate = true;\n }\n if(!('prependValue' in options)) {\n options.prependValue = false;\n }\n\n if(options.valueIsArray) {\n subject[property] = value;\n } else if(types.isArray(value)) {\n if(value.length === 0 && options.propertyIsArray &&\n !subject.hasOwnProperty(property)) {\n subject[property] = [];\n }\n if(options.prependValue) {\n value = value.concat(subject[property]);\n subject[property] = [];\n }\n for(let i = 0; i < value.length; ++i) {\n api.addValue(subject, property, value[i], options);\n }\n } else if(subject.hasOwnProperty(property)) {\n // check if subject already has value if duplicates not allowed\n const hasValue = (!options.allowDuplicate &&\n api.hasValue(subject, property, value));\n\n // make property an array if value not present or always an array\n if(!types.isArray(subject[property]) &&\n (!hasValue || options.propertyIsArray)) {\n subject[property] = [subject[property]];\n }\n\n // add new value\n if(!hasValue) {\n if(options.prependValue) {\n subject[property].unshift(value);\n } else {\n subject[property].push(value);\n }\n }\n } else {\n // add new value as set or single value\n subject[property] = options.propertyIsArray ? [value] : value;\n }\n};\n\n/**\n * Gets all of the values for a subject's property as an array.\n *\n * @param subject the subject.\n * @param property the property.\n *\n * @return all of the values for a subject's property as an array.\n */\napi.getValues = (subject, property) => [].concat(subject[property] || []);\n\n/**\n * Removes a property from a subject.\n *\n * @param subject the subject.\n * @param property the property.\n */\napi.removeProperty = (subject, property) => {\n delete subject[property];\n};\n\n/**\n * Removes a value from a subject.\n *\n * @param subject the subject.\n * @param property the property that relates the value to the subject.\n * @param value the value to remove.\n * @param [options] the options to use:\n * [propertyIsArray] true if the property is always an array, false\n * if not (default: false).\n */\napi.removeValue = (subject, property, value, options) => {\n options = options || {};\n if(!('propertyIsArray' in options)) {\n options.propertyIsArray = false;\n }\n\n // filter out value\n const values = api.getValues(subject, property).filter(\n e => !api.compareValues(e, value));\n\n if(values.length === 0) {\n api.removeProperty(subject, property);\n } else if(values.length === 1 && !options.propertyIsArray) {\n subject[property] = values[0];\n } else {\n subject[property] = values;\n }\n};\n\n/**\n * Relabels all blank nodes in the given JSON-LD input.\n *\n * @param input the JSON-LD input.\n * @param [options] the options to use:\n * [issuer] an IdentifierIssuer to use to label blank nodes.\n */\napi.relabelBlankNodes = (input, options) => {\n options = options || {};\n const issuer = options.issuer || new IdentifierIssuer('_:b');\n return _labelBlankNodes(issuer, input);\n};\n\n/**\n * Compares two JSON-LD values for equality. Two JSON-LD values will be\n * considered equal if:\n *\n * 1. They are both primitives of the same type and value.\n * 2. They are both @values with the same @value, @type, @language,\n * and @index, OR\n * 3. They both have @ids they are the same.\n *\n * @param v1 the first value.\n * @param v2 the second value.\n *\n * @return true if v1 and v2 are considered equal, false if not.\n */\napi.compareValues = (v1, v2) => {\n // 1. equal primitives\n if(v1 === v2) {\n return true;\n }\n\n // 2. equal @values\n if(graphTypes.isValue(v1) && graphTypes.isValue(v2) &&\n v1['@value'] === v2['@value'] &&\n v1['@type'] === v2['@type'] &&\n v1['@language'] === v2['@language'] &&\n v1['@index'] === v2['@index']) {\n return true;\n }\n\n // 3. equal @ids\n if(types.isObject(v1) &&\n ('@id' in v1) &&\n types.isObject(v2) &&\n ('@id' in v2)) {\n return v1['@id'] === v2['@id'];\n }\n\n return false;\n};\n\n/**\n * Compares two strings first based on length and then lexicographically.\n *\n * @param a the first string.\n * @param b the second string.\n *\n * @return -1 if a < b, 1 if a > b, 0 if a === b.\n */\napi.compareShortestLeast = (a, b) => {\n if(a.length < b.length) {\n return -1;\n }\n if(b.length < a.length) {\n return 1;\n }\n if(a === b) {\n return 0;\n }\n return (a < b) ? -1 : 1;\n};\n\n/**\n * Labels the blank nodes in the given value using the given IdentifierIssuer.\n *\n * @param issuer the IdentifierIssuer to use.\n * @param element the element with blank nodes to rename.\n *\n * @return the element.\n */\nfunction _labelBlankNodes(issuer, element) {\n if(types.isArray(element)) {\n for(let i = 0; i < element.length; ++i) {\n element[i] = _labelBlankNodes(issuer, element[i]);\n }\n } else if(graphTypes.isList(element)) {\n element['@list'] = _labelBlankNodes(issuer, element['@list']);\n } else if(types.isObject(element)) {\n // relabel blank node\n if(graphTypes.isBlankNode(element)) {\n element['@id'] = issuer.getId(element['@id']);\n }\n\n // recursively apply to all keys\n const keys = Object.keys(element).sort();\n for(let ki = 0; ki < keys.length; ++ki) {\n const key = keys[ki];\n if(key !== '@id') {\n element[key] = _labelBlankNodes(issuer, element[key]);\n }\n }\n }\n\n return element;\n}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","/**\n * An implementation of the RDF Dataset Normalization specification.\n *\n * @author Dave Longley\n *\n * Copyright 2010-2021 Digital Bazaar, Inc.\n */\nmodule.exports = require('./lib');\n","/*\n * Copyright (c) 2016-2021 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nmodule.exports = class IdentifierIssuer {\n /**\n * Creates a new IdentifierIssuer. A IdentifierIssuer issues unique\n * identifiers, keeping track of any previously issued identifiers.\n *\n * @param prefix the prefix to use ('').\n * @param existing an existing Map to use.\n * @param counter the counter to use.\n */\n constructor(prefix, existing = new Map(), counter = 0) {\n this.prefix = prefix;\n this._existing = existing;\n this.counter = counter;\n }\n\n /**\n * Copies this IdentifierIssuer.\n *\n * @return a copy of this IdentifierIssuer.\n */\n clone() {\n const {prefix, _existing, counter} = this;\n return new IdentifierIssuer(prefix, new Map(_existing), counter);\n }\n\n /**\n * Gets the new identifier for the given old identifier, where if no old\n * identifier is given a new identifier will be generated.\n *\n * @param [old] the old identifier to get the new identifier for.\n *\n * @return the new identifier.\n */\n getId(old) {\n // return existing old identifier\n const existing = old && this._existing.get(old);\n if(existing) {\n return existing;\n }\n\n // get next identifier\n const identifier = this.prefix + this.counter;\n this.counter++;\n\n // save mapping\n if(old) {\n this._existing.set(old, identifier);\n }\n\n return identifier;\n }\n\n /**\n * Returns true if the given old identifer has already been assigned a new\n * identifier.\n *\n * @param old the old identifier to check.\n *\n * @return true if the old identifier has been assigned a new identifier,\n * false if not.\n */\n hasId(old) {\n return this._existing.has(old);\n }\n\n /**\n * Returns all of the IDs that have been issued new IDs in the order in\n * which they were issued new IDs.\n *\n * @return the list of old IDs that has been issued new IDs in order.\n */\n getOldIds() {\n return [...this._existing.keys()];\n }\n};\n","/*!\n * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nrequire('setimmediate');\n\nconst crypto = self.crypto || self.msCrypto;\n\nmodule.exports = class MessageDigest {\n /**\n * Creates a new MessageDigest.\n *\n * @param algorithm the algorithm to use.\n */\n constructor(algorithm) {\n // check if crypto.subtle is available\n // check is here rather than top-level to only fail if class is used\n if(!(crypto && crypto.subtle)) {\n throw new Error('crypto.subtle not found.');\n }\n if(algorithm === 'sha256') {\n this.algorithm = {name: 'SHA-256'};\n } else if(algorithm === 'sha1') {\n this.algorithm = {name: 'SHA-1'};\n } else {\n throw new Error(`Unsupported algorithm \"${algorithm}\".`);\n }\n this._content = '';\n }\n\n update(msg) {\n this._content += msg;\n }\n\n async digest() {\n const data = new TextEncoder().encode(this._content);\n const buffer = new Uint8Array(\n await crypto.subtle.digest(this.algorithm, data));\n // return digest in hex\n let hex = '';\n for(let i = 0; i < buffer.length; ++i) {\n hex += buffer[i].toString(16).padStart(2, '0');\n }\n return hex;\n }\n};\n","/*!\n * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\n// eslint-disable-next-line no-unused-vars\nconst TERMS = ['subject', 'predicate', 'object', 'graph'];\nconst RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nconst RDF_LANGSTRING = RDF + 'langString';\nconst XSD_STRING = 'http://www.w3.org/2001/XMLSchema#string';\n\nconst TYPE_NAMED_NODE = 'NamedNode';\nconst TYPE_BLANK_NODE = 'BlankNode';\nconst TYPE_LITERAL = 'Literal';\nconst TYPE_DEFAULT_GRAPH = 'DefaultGraph';\n\n// build regexes\nconst REGEX = {};\n(() => {\n const iri = '(?:<([^:]+:[^>]*)>)';\n // https://www.w3.org/TR/turtle/#grammar-production-BLANK_NODE_LABEL\n const PN_CHARS_BASE =\n 'A-Z' + 'a-z' +\n '\\u00C0-\\u00D6' +\n '\\u00D8-\\u00F6' +\n '\\u00F8-\\u02FF' +\n '\\u0370-\\u037D' +\n '\\u037F-\\u1FFF' +\n '\\u200C-\\u200D' +\n '\\u2070-\\u218F' +\n '\\u2C00-\\u2FEF' +\n '\\u3001-\\uD7FF' +\n '\\uF900-\\uFDCF' +\n '\\uFDF0-\\uFFFD';\n // TODO:\n //'\\u10000-\\uEFFFF';\n const PN_CHARS_U =\n PN_CHARS_BASE +\n '_';\n const PN_CHARS =\n PN_CHARS_U +\n '0-9' +\n '-' +\n '\\u00B7' +\n '\\u0300-\\u036F' +\n '\\u203F-\\u2040';\n const BLANK_NODE_LABEL =\n '(_:' +\n '(?:[' + PN_CHARS_U + '0-9])' +\n '(?:(?:[' + PN_CHARS + '.])*(?:[' + PN_CHARS + ']))?' +\n ')';\n const bnode = BLANK_NODE_LABEL;\n const plain = '\"([^\"\\\\\\\\]*(?:\\\\\\\\.[^\"\\\\\\\\]*)*)\"';\n const datatype = '(?:\\\\^\\\\^' + iri + ')';\n const language = '(?:@([a-zA-Z]+(?:-[a-zA-Z0-9]+)*))';\n const literal = '(?:' + plain + '(?:' + datatype + '|' + language + ')?)';\n const ws = '[ \\\\t]+';\n const wso = '[ \\\\t]*';\n\n // define quad part regexes\n const subject = '(?:' + iri + '|' + bnode + ')' + ws;\n const property = iri + ws;\n const object = '(?:' + iri + '|' + bnode + '|' + literal + ')' + wso;\n const graphName = '(?:\\\\.|(?:(?:' + iri + '|' + bnode + ')' + wso + '\\\\.))';\n\n // end of line and empty regexes\n REGEX.eoln = /(?:\\r\\n)|(?:\\n)|(?:\\r)/g;\n REGEX.empty = new RegExp('^' + wso + '$');\n\n // full quad regex\n REGEX.quad = new RegExp(\n '^' + wso + subject + property + object + graphName + wso + '$');\n})();\n\nmodule.exports = class NQuads {\n /**\n * Parses RDF in the form of N-Quads.\n *\n * @param input the N-Quads input to parse.\n *\n * @return an RDF dataset (an array of quads per http://rdf.js.org/).\n */\n static parse(input) {\n // build RDF dataset\n const dataset = [];\n\n const graphs = {};\n\n // split N-Quad input into lines\n const lines = input.split(REGEX.eoln);\n let lineNumber = 0;\n for(const line of lines) {\n lineNumber++;\n\n // skip empty lines\n if(REGEX.empty.test(line)) {\n continue;\n }\n\n // parse quad\n const match = line.match(REGEX.quad);\n if(match === null) {\n throw new Error('N-Quads parse error on line ' + lineNumber + '.');\n }\n\n // create RDF quad\n const quad = {subject: null, predicate: null, object: null, graph: null};\n\n // get subject\n if(match[1] !== undefined) {\n quad.subject = {termType: TYPE_NAMED_NODE, value: match[1]};\n } else {\n quad.subject = {termType: TYPE_BLANK_NODE, value: match[2]};\n }\n\n // get predicate\n quad.predicate = {termType: TYPE_NAMED_NODE, value: match[3]};\n\n // get object\n if(match[4] !== undefined) {\n quad.object = {termType: TYPE_NAMED_NODE, value: match[4]};\n } else if(match[5] !== undefined) {\n quad.object = {termType: TYPE_BLANK_NODE, value: match[5]};\n } else {\n quad.object = {\n termType: TYPE_LITERAL,\n value: undefined,\n datatype: {\n termType: TYPE_NAMED_NODE\n }\n };\n if(match[7] !== undefined) {\n quad.object.datatype.value = match[7];\n } else if(match[8] !== undefined) {\n quad.object.datatype.value = RDF_LANGSTRING;\n quad.object.language = match[8];\n } else {\n quad.object.datatype.value = XSD_STRING;\n }\n quad.object.value = _unescape(match[6]);\n }\n\n // get graph\n if(match[9] !== undefined) {\n quad.graph = {\n termType: TYPE_NAMED_NODE,\n value: match[9]\n };\n } else if(match[10] !== undefined) {\n quad.graph = {\n termType: TYPE_BLANK_NODE,\n value: match[10]\n };\n } else {\n quad.graph = {\n termType: TYPE_DEFAULT_GRAPH,\n value: ''\n };\n }\n\n // only add quad if it is unique in its graph\n if(!(quad.graph.value in graphs)) {\n graphs[quad.graph.value] = [quad];\n dataset.push(quad);\n } else {\n let unique = true;\n const quads = graphs[quad.graph.value];\n for(const q of quads) {\n if(_compareTriples(q, quad)) {\n unique = false;\n break;\n }\n }\n if(unique) {\n quads.push(quad);\n dataset.push(quad);\n }\n }\n }\n\n return dataset;\n }\n\n /**\n * Converts an RDF dataset to N-Quads.\n *\n * @param dataset (array of quads) the RDF dataset to convert.\n *\n * @return the N-Quads string.\n */\n static serialize(dataset) {\n if(!Array.isArray(dataset)) {\n dataset = NQuads.legacyDatasetToQuads(dataset);\n }\n const quads = [];\n for(const quad of dataset) {\n quads.push(NQuads.serializeQuad(quad));\n }\n return quads.sort().join('');\n }\n\n /**\n * Converts RDF quad components to an N-Quad string (a single quad).\n *\n * @param {Object} s - N-Quad subject component.\n * @param {Object} p - N-Quad predicate component.\n * @param {Object} o - N-Quad object component.\n * @param {Object} g - N-Quad graph component.\n *\n * @return {string} the N-Quad.\n */\n static serializeQuadComponents(s, p, o, g) {\n let nquad = '';\n\n // subject can only be NamedNode or BlankNode\n if(s.termType === TYPE_NAMED_NODE) {\n nquad += `<${s.value}>`;\n } else {\n nquad += `${s.value}`;\n }\n\n // predicate can only be NamedNode\n nquad += ` <${p.value}> `;\n\n // object is NamedNode, BlankNode, or Literal\n if(o.termType === TYPE_NAMED_NODE) {\n nquad += `<${o.value}>`;\n } else if(o.termType === TYPE_BLANK_NODE) {\n nquad += o.value;\n } else {\n nquad += `\"${_escape(o.value)}\"`;\n if(o.datatype.value === RDF_LANGSTRING) {\n if(o.language) {\n nquad += `@${o.language}`;\n }\n } else if(o.datatype.value !== XSD_STRING) {\n nquad += `^^<${o.datatype.value}>`;\n }\n }\n\n // graph can only be NamedNode or BlankNode (or DefaultGraph, but that\n // does not add to `nquad`)\n if(g.termType === TYPE_NAMED_NODE) {\n nquad += ` <${g.value}>`;\n } else if(g.termType === TYPE_BLANK_NODE) {\n nquad += ` ${g.value}`;\n }\n\n nquad += ' .\\n';\n return nquad;\n }\n\n /**\n * Converts an RDF quad to an N-Quad string (a single quad).\n *\n * @param quad the RDF quad convert.\n *\n * @return the N-Quad string.\n */\n static serializeQuad(quad) {\n return NQuads.serializeQuadComponents(\n quad.subject, quad.predicate, quad.object, quad.graph);\n }\n\n /**\n * Converts a legacy-formatted dataset to an array of quads dataset per\n * http://rdf.js.org/.\n *\n * @param dataset the legacy dataset to convert.\n *\n * @return the array of quads dataset.\n */\n static legacyDatasetToQuads(dataset) {\n const quads = [];\n\n const termTypeMap = {\n 'blank node': TYPE_BLANK_NODE,\n IRI: TYPE_NAMED_NODE,\n literal: TYPE_LITERAL\n };\n\n for(const graphName in dataset) {\n const triples = dataset[graphName];\n triples.forEach(triple => {\n const quad = {};\n for(const componentName in triple) {\n const oldComponent = triple[componentName];\n const newComponent = {\n termType: termTypeMap[oldComponent.type],\n value: oldComponent.value\n };\n if(newComponent.termType === TYPE_LITERAL) {\n newComponent.datatype = {\n termType: TYPE_NAMED_NODE\n };\n if('datatype' in oldComponent) {\n newComponent.datatype.value = oldComponent.datatype;\n }\n if('language' in oldComponent) {\n if(!('datatype' in oldComponent)) {\n newComponent.datatype.value = RDF_LANGSTRING;\n }\n newComponent.language = oldComponent.language;\n } else if(!('datatype' in oldComponent)) {\n newComponent.datatype.value = XSD_STRING;\n }\n }\n quad[componentName] = newComponent;\n }\n if(graphName === '@default') {\n quad.graph = {\n termType: TYPE_DEFAULT_GRAPH,\n value: ''\n };\n } else {\n quad.graph = {\n termType: graphName.startsWith('_:') ?\n TYPE_BLANK_NODE : TYPE_NAMED_NODE,\n value: graphName\n };\n }\n quads.push(quad);\n });\n }\n\n return quads;\n }\n};\n\n/**\n * Compares two RDF triples for equality.\n *\n * @param t1 the first triple.\n * @param t2 the second triple.\n *\n * @return true if the triples are the same, false if not.\n */\nfunction _compareTriples(t1, t2) {\n // compare subject and object types first as it is the quickest check\n if(!(t1.subject.termType === t2.subject.termType &&\n t1.object.termType === t2.object.termType)) {\n return false;\n }\n // compare values\n if(!(t1.subject.value === t2.subject.value &&\n t1.predicate.value === t2.predicate.value &&\n t1.object.value === t2.object.value)) {\n return false;\n }\n if(t1.object.termType !== TYPE_LITERAL) {\n // no `datatype` or `language` to check\n return true;\n }\n return (\n (t1.object.datatype.termType === t2.object.datatype.termType) &&\n (t1.object.language === t2.object.language) &&\n (t1.object.datatype.value === t2.object.datatype.value)\n );\n}\n\nconst _escapeRegex = /[\"\\\\\\n\\r]/g;\n/**\n * Escape string to N-Quads literal\n */\nfunction _escape(s) {\n return s.replace(_escapeRegex, function(match) {\n switch(match) {\n case '\"': return '\\\\\"';\n case '\\\\': return '\\\\\\\\';\n case '\\n': return '\\\\n';\n case '\\r': return '\\\\r';\n }\n });\n}\n\nconst _unescapeRegex =\n /(?:\\\\([tbnrf\"'\\\\]))|(?:\\\\u([0-9A-Fa-f]{4}))|(?:\\\\U([0-9A-Fa-f]{8}))/g;\n/**\n * Unescape N-Quads literal to string\n */\nfunction _unescape(s) {\n return s.replace(_unescapeRegex, function(match, code, u, U) {\n if(code) {\n switch(code) {\n case 't': return '\\t';\n case 'b': return '\\b';\n case 'n': return '\\n';\n case 'r': return '\\r';\n case 'f': return '\\f';\n case '\"': return '\"';\n case '\\'': return '\\'';\n case '\\\\': return '\\\\';\n }\n }\n if(u) {\n return String.fromCharCode(parseInt(u, 16));\n }\n if(U) {\n // FIXME: support larger values\n throw new Error('Unsupported U escape');\n }\n });\n}\n","/*!\n * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nmodule.exports = class Permuter {\n /**\n * A Permuter iterates over all possible permutations of the given array\n * of elements.\n *\n * @param list the array of elements to iterate over.\n */\n constructor(list) {\n // original array\n this.current = list.sort();\n // indicates whether there are more permutations\n this.done = false;\n // directional info for permutation algorithm\n this.dir = new Map();\n for(let i = 0; i < list.length; ++i) {\n this.dir.set(list[i], true);\n }\n }\n\n /**\n * Returns true if there is another permutation.\n *\n * @return true if there is another permutation, false if not.\n */\n hasNext() {\n return !this.done;\n }\n\n /**\n * Gets the next permutation. Call hasNext() to ensure there is another one\n * first.\n *\n * @return the next permutation.\n */\n next() {\n // copy current permutation to return it\n const {current, dir} = this;\n const rval = current.slice();\n\n /* Calculate the next permutation using the Steinhaus-Johnson-Trotter\n permutation algorithm. */\n\n // get largest mobile element k\n // (mobile: element is greater than the one it is looking at)\n let k = null;\n let pos = 0;\n const length = current.length;\n for(let i = 0; i < length; ++i) {\n const element = current[i];\n const left = dir.get(element);\n if((k === null || element > k) &&\n ((left && i > 0 && element > current[i - 1]) ||\n (!left && i < (length - 1) && element > current[i + 1]))) {\n k = element;\n pos = i;\n }\n }\n\n // no more permutations\n if(k === null) {\n this.done = true;\n } else {\n // swap k and the element it is looking at\n const swap = dir.get(k) ? pos - 1 : pos + 1;\n current[pos] = current[swap];\n current[swap] = k;\n\n // reverse the direction of all elements larger than k\n for(const element of current) {\n if(element > k) {\n dir.set(element, !dir.get(element));\n }\n }\n }\n\n return rval;\n }\n};\n","/*!\n * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst IdentifierIssuer = require('./IdentifierIssuer');\nconst MessageDigest = require('./MessageDigest');\nconst Permuter = require('./Permuter');\nconst NQuads = require('./NQuads');\n\nmodule.exports = class URDNA2015 {\n constructor({\n createMessageDigest = () => new MessageDigest('sha256'),\n canonicalIdMap = new Map(),\n maxDeepIterations = Infinity\n } = {}) {\n this.name = 'URDNA2015';\n this.blankNodeInfo = new Map();\n this.canonicalIssuer = new IdentifierIssuer('_:c14n', canonicalIdMap);\n this.createMessageDigest = createMessageDigest;\n this.maxDeepIterations = maxDeepIterations;\n this.quads = null;\n this.deepIterations = null;\n }\n\n // 4.4) Normalization Algorithm\n async main(dataset) {\n this.deepIterations = new Map();\n this.quads = dataset;\n\n // 1) Create the normalization state.\n // 2) For every quad in input dataset:\n for(const quad of dataset) {\n // 2.1) For each blank node that occurs in the quad, add a reference\n // to the quad using the blank node identifier in the blank node to\n // quads map, creating a new entry if necessary.\n this._addBlankNodeQuadInfo({quad, component: quad.subject});\n this._addBlankNodeQuadInfo({quad, component: quad.object});\n this._addBlankNodeQuadInfo({quad, component: quad.graph});\n }\n\n // 3) Create a list of non-normalized blank node identifiers\n // non-normalized identifiers and populate it using the keys from the\n // blank node to quads map.\n // Note: We use a map here and it was generated during step 2.\n\n // 4) `simple` flag is skipped -- loop is optimized away. This optimization\n // is permitted because there was a typo in the hash first degree quads\n // algorithm in the URDNA2015 spec that was implemented widely making it\n // such that it could not be fixed; the result was that the loop only\n // needs to be run once and the first degree quad hashes will never change.\n // 5.1-5.2 are skipped; first degree quad hashes are generated just once\n // for all non-normalized blank nodes.\n\n // 5.3) For each blank node identifier identifier in non-normalized\n // identifiers:\n const hashToBlankNodes = new Map();\n const nonNormalized = [...this.blankNodeInfo.keys()];\n let i = 0;\n for(const id of nonNormalized) {\n // Note: batch hashing first degree quads 100 at a time\n if(++i % 100 === 0) {\n await this._yield();\n }\n // steps 5.3.1 and 5.3.2:\n await this._hashAndTrackBlankNode({id, hashToBlankNodes});\n }\n\n // 5.4) For each hash to identifier list mapping in hash to blank\n // nodes map, lexicographically-sorted by hash:\n const hashes = [...hashToBlankNodes.keys()].sort();\n // optimize away second sort, gather non-unique hashes in order as we go\n const nonUnique = [];\n for(const hash of hashes) {\n // 5.4.1) If the length of identifier list is greater than 1,\n // continue to the next mapping.\n const idList = hashToBlankNodes.get(hash);\n if(idList.length > 1) {\n nonUnique.push(idList);\n continue;\n }\n\n // 5.4.2) Use the Issue Identifier algorithm, passing canonical\n // issuer and the single blank node identifier in identifier\n // list, identifier, to issue a canonical replacement identifier\n // for identifier.\n const id = idList[0];\n this.canonicalIssuer.getId(id);\n\n // Note: These steps are skipped, optimized away since the loop\n // only needs to be run once.\n // 5.4.3) Remove identifier from non-normalized identifiers.\n // 5.4.4) Remove hash from the hash to blank nodes map.\n // 5.4.5) Set simple to true.\n }\n\n // 6) For each hash to identifier list mapping in hash to blank nodes map,\n // lexicographically-sorted by hash:\n // Note: sort optimized away, use `nonUnique`.\n for(const idList of nonUnique) {\n // 6.1) Create hash path list where each item will be a result of\n // running the Hash N-Degree Quads algorithm.\n const hashPathList = [];\n\n // 6.2) For each blank node identifier identifier in identifier list:\n for(const id of idList) {\n // 6.2.1) If a canonical identifier has already been issued for\n // identifier, continue to the next identifier.\n if(this.canonicalIssuer.hasId(id)) {\n continue;\n }\n\n // 6.2.2) Create temporary issuer, an identifier issuer\n // initialized with the prefix _:b.\n const issuer = new IdentifierIssuer('_:b');\n\n // 6.2.3) Use the Issue Identifier algorithm, passing temporary\n // issuer and identifier, to issue a new temporary blank node\n // identifier for identifier.\n issuer.getId(id);\n\n // 6.2.4) Run the Hash N-Degree Quads algorithm, passing\n // temporary issuer, and append the result to the hash path list.\n const result = await this.hashNDegreeQuads(id, issuer);\n hashPathList.push(result);\n }\n\n // 6.3) For each result in the hash path list,\n // lexicographically-sorted by the hash in result:\n hashPathList.sort(_stringHashCompare);\n for(const result of hashPathList) {\n // 6.3.1) For each blank node identifier, existing identifier,\n // that was issued a temporary identifier by identifier issuer\n // in result, issue a canonical identifier, in the same order,\n // using the Issue Identifier algorithm, passing canonical\n // issuer and existing identifier.\n const oldIds = result.issuer.getOldIds();\n for(const id of oldIds) {\n this.canonicalIssuer.getId(id);\n }\n }\n }\n\n /* Note: At this point all blank nodes in the set of RDF quads have been\n assigned canonical identifiers, which have been stored in the canonical\n issuer. Here each quad is updated by assigning each of its blank nodes\n its new identifier. */\n\n // 7) For each quad, quad, in input dataset:\n const normalized = [];\n for(const quad of this.quads) {\n // 7.1) Create a copy, quad copy, of quad and replace any existing\n // blank node identifiers using the canonical identifiers\n // previously issued by canonical issuer.\n // Note: We optimize away the copy here.\n const nQuad = NQuads.serializeQuadComponents(\n this._componentWithCanonicalId(quad.subject),\n quad.predicate,\n this._componentWithCanonicalId(quad.object),\n this._componentWithCanonicalId(quad.graph)\n );\n // 7.2) Add quad copy to the normalized dataset.\n normalized.push(nQuad);\n }\n\n // sort normalized output\n normalized.sort();\n\n // 8) Return the normalized dataset.\n return normalized.join('');\n }\n\n // 4.6) Hash First Degree Quads\n async hashFirstDegreeQuads(id) {\n // 1) Initialize nquads to an empty list. It will be used to store quads in\n // N-Quads format.\n const nquads = [];\n\n // 2) Get the list of quads `quads` associated with the reference blank node\n // identifier in the blank node to quads map.\n const info = this.blankNodeInfo.get(id);\n const quads = info.quads;\n\n // 3) For each quad `quad` in `quads`:\n for(const quad of quads) {\n // 3.1) Serialize the quad in N-Quads format with the following special\n // rule:\n\n // 3.1.1) If any component in quad is an blank node, then serialize it\n // using a special identifier as follows:\n const copy = {\n subject: null, predicate: quad.predicate, object: null, graph: null\n };\n // 3.1.2) If the blank node's existing blank node identifier matches\n // the reference blank node identifier then use the blank node\n // identifier _:a, otherwise, use the blank node identifier _:z.\n copy.subject = this.modifyFirstDegreeComponent(\n id, quad.subject, 'subject');\n copy.object = this.modifyFirstDegreeComponent(\n id, quad.object, 'object');\n copy.graph = this.modifyFirstDegreeComponent(\n id, quad.graph, 'graph');\n nquads.push(NQuads.serializeQuad(copy));\n }\n\n // 4) Sort nquads in lexicographical order.\n nquads.sort();\n\n // 5) Return the hash that results from passing the sorted, joined nquads\n // through the hash algorithm.\n const md = this.createMessageDigest();\n for(const nquad of nquads) {\n md.update(nquad);\n }\n info.hash = await md.digest();\n return info.hash;\n }\n\n // 4.7) Hash Related Blank Node\n async hashRelatedBlankNode(related, quad, issuer, position) {\n // 1) Set the identifier to use for related, preferring first the canonical\n // identifier for related if issued, second the identifier issued by issuer\n // if issued, and last, if necessary, the result of the Hash First Degree\n // Quads algorithm, passing related.\n let id;\n if(this.canonicalIssuer.hasId(related)) {\n id = this.canonicalIssuer.getId(related);\n } else if(issuer.hasId(related)) {\n id = issuer.getId(related);\n } else {\n id = this.blankNodeInfo.get(related).hash;\n }\n\n // 2) Initialize a string input to the value of position.\n // Note: We use a hash object instead.\n const md = this.createMessageDigest();\n md.update(position);\n\n // 3) If position is not g, append <, the value of the predicate in quad,\n // and > to input.\n if(position !== 'g') {\n md.update(this.getRelatedPredicate(quad));\n }\n\n // 4) Append identifier to input.\n md.update(id);\n\n // 5) Return the hash that results from passing input through the hash\n // algorithm.\n return md.digest();\n }\n\n // 4.8) Hash N-Degree Quads\n async hashNDegreeQuads(id, issuer) {\n const deepIterations = this.deepIterations.get(id) || 0;\n if(deepIterations > this.maxDeepIterations) {\n throw new Error(\n `Maximum deep iterations (${this.maxDeepIterations}) exceeded.`);\n }\n this.deepIterations.set(id, deepIterations + 1);\n\n // 1) Create a hash to related blank nodes map for storing hashes that\n // identify related blank nodes.\n // Note: 2) and 3) handled within `createHashToRelated`\n const md = this.createMessageDigest();\n const hashToRelated = await this.createHashToRelated(id, issuer);\n\n // 4) Create an empty string, data to hash.\n // Note: We created a hash object `md` above instead.\n\n // 5) For each related hash to blank node list mapping in hash to related\n // blank nodes map, sorted lexicographically by related hash:\n const hashes = [...hashToRelated.keys()].sort();\n for(const hash of hashes) {\n // 5.1) Append the related hash to the data to hash.\n md.update(hash);\n\n // 5.2) Create a string chosen path.\n let chosenPath = '';\n\n // 5.3) Create an unset chosen issuer variable.\n let chosenIssuer;\n\n // 5.4) For each permutation of blank node list:\n const permuter = new Permuter(hashToRelated.get(hash));\n let i = 0;\n while(permuter.hasNext()) {\n const permutation = permuter.next();\n // Note: batch permutations 3 at a time\n if(++i % 3 === 0) {\n await this._yield();\n }\n\n // 5.4.1) Create a copy of issuer, issuer copy.\n let issuerCopy = issuer.clone();\n\n // 5.4.2) Create a string path.\n let path = '';\n\n // 5.4.3) Create a recursion list, to store blank node identifiers\n // that must be recursively processed by this algorithm.\n const recursionList = [];\n\n // 5.4.4) For each related in permutation:\n let nextPermutation = false;\n for(const related of permutation) {\n // 5.4.4.1) If a canonical identifier has been issued for\n // related, append it to path.\n if(this.canonicalIssuer.hasId(related)) {\n path += this.canonicalIssuer.getId(related);\n } else {\n // 5.4.4.2) Otherwise:\n // 5.4.4.2.1) If issuer copy has not issued an identifier for\n // related, append related to recursion list.\n if(!issuerCopy.hasId(related)) {\n recursionList.push(related);\n }\n // 5.4.4.2.2) Use the Issue Identifier algorithm, passing\n // issuer copy and related and append the result to path.\n path += issuerCopy.getId(related);\n }\n\n // 5.4.4.3) If chosen path is not empty and the length of path\n // is greater than or equal to the length of chosen path and\n // path is lexicographically greater than chosen path, then\n // skip to the next permutation.\n // Note: Comparing path length to chosen path length can be optimized\n // away; only compare lexicographically.\n if(chosenPath.length !== 0 && path > chosenPath) {\n nextPermutation = true;\n break;\n }\n }\n\n if(nextPermutation) {\n continue;\n }\n\n // 5.4.5) For each related in recursion list:\n for(const related of recursionList) {\n // 5.4.5.1) Set result to the result of recursively executing\n // the Hash N-Degree Quads algorithm, passing related for\n // identifier and issuer copy for path identifier issuer.\n const result = await this.hashNDegreeQuads(related, issuerCopy);\n\n // 5.4.5.2) Use the Issue Identifier algorithm, passing issuer\n // copy and related and append the result to path.\n path += issuerCopy.getId(related);\n\n // 5.4.5.3) Append <, the hash in result, and > to path.\n path += `<${result.hash}>`;\n\n // 5.4.5.4) Set issuer copy to the identifier issuer in\n // result.\n issuerCopy = result.issuer;\n\n // 5.4.5.5) If chosen path is not empty and the length of path\n // is greater than or equal to the length of chosen path and\n // path is lexicographically greater than chosen path, then\n // skip to the next permutation.\n // Note: Comparing path length to chosen path length can be optimized\n // away; only compare lexicographically.\n if(chosenPath.length !== 0 && path > chosenPath) {\n nextPermutation = true;\n break;\n }\n }\n\n if(nextPermutation) {\n continue;\n }\n\n // 5.4.6) If chosen path is empty or path is lexicographically\n // less than chosen path, set chosen path to path and chosen\n // issuer to issuer copy.\n if(chosenPath.length === 0 || path < chosenPath) {\n chosenPath = path;\n chosenIssuer = issuerCopy;\n }\n }\n\n // 5.5) Append chosen path to data to hash.\n md.update(chosenPath);\n\n // 5.6) Replace issuer, by reference, with chosen issuer.\n issuer = chosenIssuer;\n }\n\n // 6) Return issuer and the hash that results from passing data to hash\n // through the hash algorithm.\n return {hash: await md.digest(), issuer};\n }\n\n // helper for modifying component during Hash First Degree Quads\n modifyFirstDegreeComponent(id, component) {\n if(component.termType !== 'BlankNode') {\n return component;\n }\n /* Note: A mistake in the URDNA2015 spec that made its way into\n implementations (and therefore must stay to avoid interop breakage)\n resulted in an assigned canonical ID, if available for\n `component.value`, not being used in place of `_:a`/`_:z`, so\n we don't use it here. */\n return {\n termType: 'BlankNode',\n value: component.value === id ? '_:a' : '_:z'\n };\n }\n\n // helper for getting a related predicate\n getRelatedPredicate(quad) {\n return `<${quad.predicate.value}>`;\n }\n\n // helper for creating hash to related blank nodes map\n async createHashToRelated(id, issuer) {\n // 1) Create a hash to related blank nodes map for storing hashes that\n // identify related blank nodes.\n const hashToRelated = new Map();\n\n // 2) Get a reference, quads, to the list of quads in the blank node to\n // quads map for the key identifier.\n const quads = this.blankNodeInfo.get(id).quads;\n\n // 3) For each quad in quads:\n let i = 0;\n for(const quad of quads) {\n // Note: batch hashing related blank node quads 100 at a time\n if(++i % 100 === 0) {\n await this._yield();\n }\n // 3.1) For each component in quad, if component is the subject, object,\n // and graph name and it is a blank node that is not identified by\n // identifier:\n // steps 3.1.1 and 3.1.2 occur in helpers:\n await Promise.all([\n this._addRelatedBlankNodeHash({\n quad, component: quad.subject, position: 's',\n id, issuer, hashToRelated\n }),\n this._addRelatedBlankNodeHash({\n quad, component: quad.object, position: 'o',\n id, issuer, hashToRelated\n }),\n this._addRelatedBlankNodeHash({\n quad, component: quad.graph, position: 'g',\n id, issuer, hashToRelated\n })\n ]);\n }\n\n return hashToRelated;\n }\n\n async _hashAndTrackBlankNode({id, hashToBlankNodes}) {\n // 5.3.1) Create a hash, hash, according to the Hash First Degree\n // Quads algorithm.\n const hash = await this.hashFirstDegreeQuads(id);\n\n // 5.3.2) Add hash and identifier to hash to blank nodes map,\n // creating a new entry if necessary.\n const idList = hashToBlankNodes.get(hash);\n if(!idList) {\n hashToBlankNodes.set(hash, [id]);\n } else {\n idList.push(id);\n }\n }\n\n _addBlankNodeQuadInfo({quad, component}) {\n if(component.termType !== 'BlankNode') {\n return;\n }\n const id = component.value;\n const info = this.blankNodeInfo.get(id);\n if(info) {\n info.quads.add(quad);\n } else {\n this.blankNodeInfo.set(id, {quads: new Set([quad]), hash: null});\n }\n }\n\n async _addRelatedBlankNodeHash(\n {quad, component, position, id, issuer, hashToRelated}) {\n if(!(component.termType === 'BlankNode' && component.value !== id)) {\n return;\n }\n // 3.1.1) Set hash to the result of the Hash Related Blank Node\n // algorithm, passing the blank node identifier for component as\n // related, quad, path identifier issuer as issuer, and position as\n // either s, o, or g based on whether component is a subject, object,\n // graph name, respectively.\n const related = component.value;\n const hash = await this.hashRelatedBlankNode(\n related, quad, issuer, position);\n\n // 3.1.2) Add a mapping of hash to the blank node identifier for\n // component to hash to related blank nodes map, adding an entry as\n // necessary.\n const entries = hashToRelated.get(hash);\n if(entries) {\n entries.push(related);\n } else {\n hashToRelated.set(hash, [related]);\n }\n }\n\n // canonical ids for 7.1\n _componentWithCanonicalId(component) {\n if(component.termType === 'BlankNode' &&\n !component.value.startsWith(this.canonicalIssuer.prefix)) {\n // create new BlankNode\n return {\n termType: 'BlankNode',\n value: this.canonicalIssuer.getId(component.value)\n };\n }\n return component;\n }\n\n async _yield() {\n return new Promise(resolve => setImmediate(resolve));\n }\n};\n\nfunction _stringHashCompare(a, b) {\n return a.hash < b.hash ? -1 : a.hash > b.hash ? 1 : 0;\n}\n","/*!\n * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst IdentifierIssuer = require('./IdentifierIssuer');\n// FIXME: do not import; convert to requiring a\n// hash factory\nconst MessageDigest = require('./MessageDigest');\nconst Permuter = require('./Permuter');\nconst NQuads = require('./NQuads');\n\nmodule.exports = class URDNA2015Sync {\n constructor({\n createMessageDigest = () => new MessageDigest('sha256'),\n canonicalIdMap = new Map(),\n maxDeepIterations = Infinity\n } = {}) {\n this.name = 'URDNA2015';\n this.blankNodeInfo = new Map();\n this.canonicalIssuer = new IdentifierIssuer('_:c14n', canonicalIdMap);\n this.createMessageDigest = createMessageDigest;\n this.maxDeepIterations = maxDeepIterations;\n this.quads = null;\n this.deepIterations = null;\n }\n\n // 4.4) Normalization Algorithm\n main(dataset) {\n this.deepIterations = new Map();\n this.quads = dataset;\n\n // 1) Create the normalization state.\n // 2) For every quad in input dataset:\n for(const quad of dataset) {\n // 2.1) For each blank node that occurs in the quad, add a reference\n // to the quad using the blank node identifier in the blank node to\n // quads map, creating a new entry if necessary.\n this._addBlankNodeQuadInfo({quad, component: quad.subject});\n this._addBlankNodeQuadInfo({quad, component: quad.object});\n this._addBlankNodeQuadInfo({quad, component: quad.graph});\n }\n\n // 3) Create a list of non-normalized blank node identifiers\n // non-normalized identifiers and populate it using the keys from the\n // blank node to quads map.\n // Note: We use a map here and it was generated during step 2.\n\n // 4) `simple` flag is skipped -- loop is optimized away. This optimization\n // is permitted because there was a typo in the hash first degree quads\n // algorithm in the URDNA2015 spec that was implemented widely making it\n // such that it could not be fixed; the result was that the loop only\n // needs to be run once and the first degree quad hashes will never change.\n // 5.1-5.2 are skipped; first degree quad hashes are generated just once\n // for all non-normalized blank nodes.\n\n // 5.3) For each blank node identifier identifier in non-normalized\n // identifiers:\n const hashToBlankNodes = new Map();\n const nonNormalized = [...this.blankNodeInfo.keys()];\n for(const id of nonNormalized) {\n // steps 5.3.1 and 5.3.2:\n this._hashAndTrackBlankNode({id, hashToBlankNodes});\n }\n\n // 5.4) For each hash to identifier list mapping in hash to blank\n // nodes map, lexicographically-sorted by hash:\n const hashes = [...hashToBlankNodes.keys()].sort();\n // optimize away second sort, gather non-unique hashes in order as we go\n const nonUnique = [];\n for(const hash of hashes) {\n // 5.4.1) If the length of identifier list is greater than 1,\n // continue to the next mapping.\n const idList = hashToBlankNodes.get(hash);\n if(idList.length > 1) {\n nonUnique.push(idList);\n continue;\n }\n\n // 5.4.2) Use the Issue Identifier algorithm, passing canonical\n // issuer and the single blank node identifier in identifier\n // list, identifier, to issue a canonical replacement identifier\n // for identifier.\n const id = idList[0];\n this.canonicalIssuer.getId(id);\n\n // Note: These steps are skipped, optimized away since the loop\n // only needs to be run once.\n // 5.4.3) Remove identifier from non-normalized identifiers.\n // 5.4.4) Remove hash from the hash to blank nodes map.\n // 5.4.5) Set simple to true.\n }\n\n // 6) For each hash to identifier list mapping in hash to blank nodes map,\n // lexicographically-sorted by hash:\n // Note: sort optimized away, use `nonUnique`.\n for(const idList of nonUnique) {\n // 6.1) Create hash path list where each item will be a result of\n // running the Hash N-Degree Quads algorithm.\n const hashPathList = [];\n\n // 6.2) For each blank node identifier identifier in identifier list:\n for(const id of idList) {\n // 6.2.1) If a canonical identifier has already been issued for\n // identifier, continue to the next identifier.\n if(this.canonicalIssuer.hasId(id)) {\n continue;\n }\n\n // 6.2.2) Create temporary issuer, an identifier issuer\n // initialized with the prefix _:b.\n const issuer = new IdentifierIssuer('_:b');\n\n // 6.2.3) Use the Issue Identifier algorithm, passing temporary\n // issuer and identifier, to issue a new temporary blank node\n // identifier for identifier.\n issuer.getId(id);\n\n // 6.2.4) Run the Hash N-Degree Quads algorithm, passing\n // temporary issuer, and append the result to the hash path list.\n const result = this.hashNDegreeQuads(id, issuer);\n hashPathList.push(result);\n }\n\n // 6.3) For each result in the hash path list,\n // lexicographically-sorted by the hash in result:\n hashPathList.sort(_stringHashCompare);\n for(const result of hashPathList) {\n // 6.3.1) For each blank node identifier, existing identifier,\n // that was issued a temporary identifier by identifier issuer\n // in result, issue a canonical identifier, in the same order,\n // using the Issue Identifier algorithm, passing canonical\n // issuer and existing identifier.\n const oldIds = result.issuer.getOldIds();\n for(const id of oldIds) {\n this.canonicalIssuer.getId(id);\n }\n }\n }\n\n /* Note: At this point all blank nodes in the set of RDF quads have been\n assigned canonical identifiers, which have been stored in the canonical\n issuer. Here each quad is updated by assigning each of its blank nodes\n its new identifier. */\n\n // 7) For each quad, quad, in input dataset:\n const normalized = [];\n for(const quad of this.quads) {\n // 7.1) Create a copy, quad copy, of quad and replace any existing\n // blank node identifiers using the canonical identifiers\n // previously issued by canonical issuer.\n // Note: We optimize away the copy here.\n const nQuad = NQuads.serializeQuadComponents(\n this._componentWithCanonicalId({component: quad.subject}),\n quad.predicate,\n this._componentWithCanonicalId({component: quad.object}),\n this._componentWithCanonicalId({component: quad.graph})\n );\n // 7.2) Add quad copy to the normalized dataset.\n normalized.push(nQuad);\n }\n\n // sort normalized output\n normalized.sort();\n\n // 8) Return the normalized dataset.\n return normalized.join('');\n }\n\n // 4.6) Hash First Degree Quads\n hashFirstDegreeQuads(id) {\n // 1) Initialize nquads to an empty list. It will be used to store quads in\n // N-Quads format.\n const nquads = [];\n\n // 2) Get the list of quads `quads` associated with the reference blank node\n // identifier in the blank node to quads map.\n const info = this.blankNodeInfo.get(id);\n const quads = info.quads;\n\n // 3) For each quad `quad` in `quads`:\n for(const quad of quads) {\n // 3.1) Serialize the quad in N-Quads format with the following special\n // rule:\n\n // 3.1.1) If any component in quad is an blank node, then serialize it\n // using a special identifier as follows:\n const copy = {\n subject: null, predicate: quad.predicate, object: null, graph: null\n };\n // 3.1.2) If the blank node's existing blank node identifier matches\n // the reference blank node identifier then use the blank node\n // identifier _:a, otherwise, use the blank node identifier _:z.\n copy.subject = this.modifyFirstDegreeComponent(\n id, quad.subject, 'subject');\n copy.object = this.modifyFirstDegreeComponent(\n id, quad.object, 'object');\n copy.graph = this.modifyFirstDegreeComponent(\n id, quad.graph, 'graph');\n nquads.push(NQuads.serializeQuad(copy));\n }\n\n // 4) Sort nquads in lexicographical order.\n nquads.sort();\n\n // 5) Return the hash that results from passing the sorted, joined nquads\n // through the hash algorithm.\n const md = this.createMessageDigest();\n for(const nquad of nquads) {\n md.update(nquad);\n }\n info.hash = md.digest();\n return info.hash;\n }\n\n // 4.7) Hash Related Blank Node\n hashRelatedBlankNode(related, quad, issuer, position) {\n // 1) Set the identifier to use for related, preferring first the canonical\n // identifier for related if issued, second the identifier issued by issuer\n // if issued, and last, if necessary, the result of the Hash First Degree\n // Quads algorithm, passing related.\n let id;\n if(this.canonicalIssuer.hasId(related)) {\n id = this.canonicalIssuer.getId(related);\n } else if(issuer.hasId(related)) {\n id = issuer.getId(related);\n } else {\n id = this.blankNodeInfo.get(related).hash;\n }\n\n // 2) Initialize a string input to the value of position.\n // Note: We use a hash object instead.\n const md = this.createMessageDigest();\n md.update(position);\n\n // 3) If position is not g, append <, the value of the predicate in quad,\n // and > to input.\n if(position !== 'g') {\n md.update(this.getRelatedPredicate(quad));\n }\n\n // 4) Append identifier to input.\n md.update(id);\n\n // 5) Return the hash that results from passing input through the hash\n // algorithm.\n return md.digest();\n }\n\n // 4.8) Hash N-Degree Quads\n hashNDegreeQuads(id, issuer) {\n const deepIterations = this.deepIterations.get(id) || 0;\n if(deepIterations > this.maxDeepIterations) {\n throw new Error(\n `Maximum deep iterations (${this.maxDeepIterations}) exceeded.`);\n }\n this.deepIterations.set(id, deepIterations + 1);\n\n // 1) Create a hash to related blank nodes map for storing hashes that\n // identify related blank nodes.\n // Note: 2) and 3) handled within `createHashToRelated`\n const md = this.createMessageDigest();\n const hashToRelated = this.createHashToRelated(id, issuer);\n\n // 4) Create an empty string, data to hash.\n // Note: We created a hash object `md` above instead.\n\n // 5) For each related hash to blank node list mapping in hash to related\n // blank nodes map, sorted lexicographically by related hash:\n const hashes = [...hashToRelated.keys()].sort();\n for(const hash of hashes) {\n // 5.1) Append the related hash to the data to hash.\n md.update(hash);\n\n // 5.2) Create a string chosen path.\n let chosenPath = '';\n\n // 5.3) Create an unset chosen issuer variable.\n let chosenIssuer;\n\n // 5.4) For each permutation of blank node list:\n const permuter = new Permuter(hashToRelated.get(hash));\n while(permuter.hasNext()) {\n const permutation = permuter.next();\n\n // 5.4.1) Create a copy of issuer, issuer copy.\n let issuerCopy = issuer.clone();\n\n // 5.4.2) Create a string path.\n let path = '';\n\n // 5.4.3) Create a recursion list, to store blank node identifiers\n // that must be recursively processed by this algorithm.\n const recursionList = [];\n\n // 5.4.4) For each related in permutation:\n let nextPermutation = false;\n for(const related of permutation) {\n // 5.4.4.1) If a canonical identifier has been issued for\n // related, append it to path.\n if(this.canonicalIssuer.hasId(related)) {\n path += this.canonicalIssuer.getId(related);\n } else {\n // 5.4.4.2) Otherwise:\n // 5.4.4.2.1) If issuer copy has not issued an identifier for\n // related, append related to recursion list.\n if(!issuerCopy.hasId(related)) {\n recursionList.push(related);\n }\n // 5.4.4.2.2) Use the Issue Identifier algorithm, passing\n // issuer copy and related and append the result to path.\n path += issuerCopy.getId(related);\n }\n\n // 5.4.4.3) If chosen path is not empty and the length of path\n // is greater than or equal to the length of chosen path and\n // path is lexicographically greater than chosen path, then\n // skip to the next permutation.\n // Note: Comparing path length to chosen path length can be optimized\n // away; only compare lexicographically.\n if(chosenPath.length !== 0 && path > chosenPath) {\n nextPermutation = true;\n break;\n }\n }\n\n if(nextPermutation) {\n continue;\n }\n\n // 5.4.5) For each related in recursion list:\n for(const related of recursionList) {\n // 5.4.5.1) Set result to the result of recursively executing\n // the Hash N-Degree Quads algorithm, passing related for\n // identifier and issuer copy for path identifier issuer.\n const result = this.hashNDegreeQuads(related, issuerCopy);\n\n // 5.4.5.2) Use the Issue Identifier algorithm, passing issuer\n // copy and related and append the result to path.\n path += issuerCopy.getId(related);\n\n // 5.4.5.3) Append <, the hash in result, and > to path.\n path += `<${result.hash}>`;\n\n // 5.4.5.4) Set issuer copy to the identifier issuer in\n // result.\n issuerCopy = result.issuer;\n\n // 5.4.5.5) If chosen path is not empty and the length of path\n // is greater than or equal to the length of chosen path and\n // path is lexicographically greater than chosen path, then\n // skip to the next permutation.\n // Note: Comparing path length to chosen path length can be optimized\n // away; only compare lexicographically.\n if(chosenPath.length !== 0 && path > chosenPath) {\n nextPermutation = true;\n break;\n }\n }\n\n if(nextPermutation) {\n continue;\n }\n\n // 5.4.6) If chosen path is empty or path is lexicographically\n // less than chosen path, set chosen path to path and chosen\n // issuer to issuer copy.\n if(chosenPath.length === 0 || path < chosenPath) {\n chosenPath = path;\n chosenIssuer = issuerCopy;\n }\n }\n\n // 5.5) Append chosen path to data to hash.\n md.update(chosenPath);\n\n // 5.6) Replace issuer, by reference, with chosen issuer.\n issuer = chosenIssuer;\n }\n\n // 6) Return issuer and the hash that results from passing data to hash\n // through the hash algorithm.\n return {hash: md.digest(), issuer};\n }\n\n // helper for modifying component during Hash First Degree Quads\n modifyFirstDegreeComponent(id, component) {\n if(component.termType !== 'BlankNode') {\n return component;\n }\n /* Note: A mistake in the URDNA2015 spec that made its way into\n implementations (and therefore must stay to avoid interop breakage)\n resulted in an assigned canonical ID, if available for\n `component.value`, not being used in place of `_:a`/`_:z`, so\n we don't use it here. */\n return {\n termType: 'BlankNode',\n value: component.value === id ? '_:a' : '_:z'\n };\n }\n\n // helper for getting a related predicate\n getRelatedPredicate(quad) {\n return `<${quad.predicate.value}>`;\n }\n\n // helper for creating hash to related blank nodes map\n createHashToRelated(id, issuer) {\n // 1) Create a hash to related blank nodes map for storing hashes that\n // identify related blank nodes.\n const hashToRelated = new Map();\n\n // 2) Get a reference, quads, to the list of quads in the blank node to\n // quads map for the key identifier.\n const quads = this.blankNodeInfo.get(id).quads;\n\n // 3) For each quad in quads:\n for(const quad of quads) {\n // 3.1) For each component in quad, if component is the subject, object,\n // or graph name and it is a blank node that is not identified by\n // identifier:\n // steps 3.1.1 and 3.1.2 occur in helpers:\n this._addRelatedBlankNodeHash({\n quad, component: quad.subject, position: 's',\n id, issuer, hashToRelated\n });\n this._addRelatedBlankNodeHash({\n quad, component: quad.object, position: 'o',\n id, issuer, hashToRelated\n });\n this._addRelatedBlankNodeHash({\n quad, component: quad.graph, position: 'g',\n id, issuer, hashToRelated\n });\n }\n\n return hashToRelated;\n }\n\n _hashAndTrackBlankNode({id, hashToBlankNodes}) {\n // 5.3.1) Create a hash, hash, according to the Hash First Degree\n // Quads algorithm.\n const hash = this.hashFirstDegreeQuads(id);\n\n // 5.3.2) Add hash and identifier to hash to blank nodes map,\n // creating a new entry if necessary.\n const idList = hashToBlankNodes.get(hash);\n if(!idList) {\n hashToBlankNodes.set(hash, [id]);\n } else {\n idList.push(id);\n }\n }\n\n _addBlankNodeQuadInfo({quad, component}) {\n if(component.termType !== 'BlankNode') {\n return;\n }\n const id = component.value;\n const info = this.blankNodeInfo.get(id);\n if(info) {\n info.quads.add(quad);\n } else {\n this.blankNodeInfo.set(id, {quads: new Set([quad]), hash: null});\n }\n }\n\n _addRelatedBlankNodeHash(\n {quad, component, position, id, issuer, hashToRelated}) {\n if(!(component.termType === 'BlankNode' && component.value !== id)) {\n return;\n }\n // 3.1.1) Set hash to the result of the Hash Related Blank Node\n // algorithm, passing the blank node identifier for component as\n // related, quad, path identifier issuer as issuer, and position as\n // either s, o, or g based on whether component is a subject, object,\n // graph name, respectively.\n const related = component.value;\n const hash = this.hashRelatedBlankNode(related, quad, issuer, position);\n\n // 3.1.2) Add a mapping of hash to the blank node identifier for\n // component to hash to related blank nodes map, adding an entry as\n // necessary.\n const entries = hashToRelated.get(hash);\n if(entries) {\n entries.push(related);\n } else {\n hashToRelated.set(hash, [related]);\n }\n }\n\n // canonical ids for 7.1\n _componentWithCanonicalId({component}) {\n if(component.termType === 'BlankNode' &&\n !component.value.startsWith(this.canonicalIssuer.prefix)) {\n // create new BlankNode\n return {\n termType: 'BlankNode',\n value: this.canonicalIssuer.getId(component.value)\n };\n }\n return component;\n }\n};\n\nfunction _stringHashCompare(a, b) {\n return a.hash < b.hash ? -1 : a.hash > b.hash ? 1 : 0;\n}\n","/*!\n * Copyright (c) 2016-2022 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst MessageDigest = require('./MessageDigest');\nconst URDNA2015 = require('./URDNA2015');\n\nmodule.exports = class URDNA2012 extends URDNA2015 {\n constructor() {\n super();\n this.name = 'URGNA2012';\n this.createMessageDigest = () => new MessageDigest('sha1');\n }\n\n // helper for modifying component during Hash First Degree Quads\n modifyFirstDegreeComponent(id, component, key) {\n if(component.termType !== 'BlankNode') {\n return component;\n }\n if(key === 'graph') {\n return {\n termType: 'BlankNode',\n value: '_:g'\n };\n }\n return {\n termType: 'BlankNode',\n value: (component.value === id ? '_:a' : '_:z')\n };\n }\n\n // helper for getting a related predicate\n getRelatedPredicate(quad) {\n return quad.predicate.value;\n }\n\n // helper for creating hash to related blank nodes map\n async createHashToRelated(id, issuer) {\n // 1) Create a hash to related blank nodes map for storing hashes that\n // identify related blank nodes.\n const hashToRelated = new Map();\n\n // 2) Get a reference, quads, to the list of quads in the blank node to\n // quads map for the key identifier.\n const quads = this.blankNodeInfo.get(id).quads;\n\n // 3) For each quad in quads:\n let i = 0;\n for(const quad of quads) {\n // 3.1) If the quad's subject is a blank node that does not match\n // identifier, set hash to the result of the Hash Related Blank Node\n // algorithm, passing the blank node identifier for subject as related,\n // quad, path identifier issuer as issuer, and p as position.\n let position;\n let related;\n if(quad.subject.termType === 'BlankNode' && quad.subject.value !== id) {\n related = quad.subject.value;\n position = 'p';\n } else if(\n quad.object.termType === 'BlankNode' && quad.object.value !== id) {\n // 3.2) Otherwise, if quad's object is a blank node that does not match\n // identifier, to the result of the Hash Related Blank Node algorithm,\n // passing the blank node identifier for object as related, quad, path\n // identifier issuer as issuer, and r as position.\n related = quad.object.value;\n position = 'r';\n } else {\n // 3.3) Otherwise, continue to the next quad.\n continue;\n }\n // Note: batch hashing related blank nodes 100 at a time\n if(++i % 100 === 0) {\n await this._yield();\n }\n // 3.4) Add a mapping of hash to the blank node identifier for the\n // component that matched (subject or object) to hash to related blank\n // nodes map, adding an entry as necessary.\n const hash = await this.hashRelatedBlankNode(\n related, quad, issuer, position);\n const entries = hashToRelated.get(hash);\n if(entries) {\n entries.push(related);\n } else {\n hashToRelated.set(hash, [related]);\n }\n }\n\n return hashToRelated;\n }\n};\n","/*!\n * Copyright (c) 2016-2021 Digital Bazaar, Inc. All rights reserved.\n */\n'use strict';\n\nconst MessageDigest = require('./MessageDigest');\nconst URDNA2015Sync = require('./URDNA2015Sync');\n\nmodule.exports = class URDNA2012Sync extends URDNA2015Sync {\n constructor() {\n super();\n this.name = 'URGNA2012';\n this.createMessageDigest = () => new MessageDigest('sha1');\n }\n\n // helper for modifying component during Hash First Degree Quads\n modifyFirstDegreeComponent(id, component, key) {\n if(component.termType !== 'BlankNode') {\n return component;\n }\n if(key === 'graph') {\n return {\n termType: 'BlankNode',\n value: '_:g'\n };\n }\n return {\n termType: 'BlankNode',\n value: (component.value === id ? '_:a' : '_:z')\n };\n }\n\n // helper for getting a related predicate\n getRelatedPredicate(quad) {\n return quad.predicate.value;\n }\n\n // helper for creating hash to related blank nodes map\n createHashToRelated(id, issuer) {\n // 1) Create a hash to related blank nodes map for storing hashes that\n // identify related blank nodes.\n const hashToRelated = new Map();\n\n // 2) Get a reference, quads, to the list of quads in the blank node to\n // quads map for the key identifier.\n const quads = this.blankNodeInfo.get(id).quads;\n\n // 3) For each quad in quads:\n for(const quad of quads) {\n // 3.1) If the quad's subject is a blank node that does not match\n // identifier, set hash to the result of the Hash Related Blank Node\n // algorithm, passing the blank node identifier for subject as related,\n // quad, path identifier issuer as issuer, and p as position.\n let position;\n let related;\n if(quad.subject.termType === 'BlankNode' && quad.subject.value !== id) {\n related = quad.subject.value;\n position = 'p';\n } else if(\n quad.object.termType === 'BlankNode' && quad.object.value !== id) {\n // 3.2) Otherwise, if quad's object is a blank node that does not match\n // identifier, to the result of the Hash Related Blank Node algorithm,\n // passing the blank node identifier for object as related, quad, path\n // identifier issuer as issuer, and r as position.\n related = quad.object.value;\n position = 'r';\n } else {\n // 3.3) Otherwise, continue to the next quad.\n continue;\n }\n // 3.4) Add a mapping of hash to the blank node identifier for the\n // component that matched (subject or object) to hash to related blank\n // nodes map, adding an entry as necessary.\n const hash = this.hashRelatedBlankNode(related, quad, issuer, position);\n const entries = hashToRelated.get(hash);\n if(entries) {\n entries.push(related);\n } else {\n hashToRelated.set(hash, [related]);\n }\n }\n\n return hashToRelated;\n }\n};\n","/**\n * An implementation of the RDF Dataset Normalization specification.\n * This library works in the browser and node.js.\n *\n * BSD 3-Clause License\n * Copyright (c) 2016-2023 Digital Bazaar, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * Neither the name of the Digital Bazaar, Inc. nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n * IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\n * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\n * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n'use strict';\n\nconst URDNA2015 = require('./URDNA2015');\nconst URGNA2012 = require('./URGNA2012');\nconst URDNA2015Sync = require('./URDNA2015Sync');\nconst URGNA2012Sync = require('./URGNA2012Sync');\n\n// optional native support\nlet rdfCanonizeNative;\ntry {\n rdfCanonizeNative = require('rdf-canonize-native');\n} catch(e) {}\n\n// return a dataset from input dataset or legacy dataset\nfunction _inputToDataset(input/*, options*/) {\n // back-compat with legacy dataset\n if(!Array.isArray(input)) {\n return exports.NQuads.legacyDatasetToQuads(input);\n }\n return input;\n}\n\n// expose helpers\nexports.NQuads = require('./NQuads');\nexports.IdentifierIssuer = require('./IdentifierIssuer');\n\n/**\n * Get or set native API.\n *\n * @param api the native API.\n *\n * @return the currently set native API.\n */\nexports._rdfCanonizeNative = function(api) {\n if(api) {\n rdfCanonizeNative = api;\n }\n return rdfCanonizeNative;\n};\n\n/**\n * Asynchronously canonizes an RDF dataset.\n *\n * @param {Array|object|string} input - The input to canonize given as a\n * dataset or legacy dataset.\n * @param {object} options - The options to use:\n * {string} algorithm - The canonicalization algorithm to use, `URDNA2015` or\n * `URGNA2012`.\n * {Function} [createMessageDigest] - A factory function for creating a\n * `MessageDigest` interface that overrides the built-in message digest\n * implementation used by the canonize algorithm; note that using a hash\n * algorithm (or HMAC algorithm) that differs from the one specified by\n * the canonize algorithm will result in different output.\n * {Map} [canonicalIdMap] - An optional Map to be populated by the canonical\n * identifier issuer with the bnode identifier mapping generated by the\n * canonicalization algorithm.\n * {boolean} [useNative=false] - Use native implementation.\n * {number} [maxDeepIterations=Infinity] - The maximum number of times to run\n * deep comparison algorithms (such as the N-Degree Hash Quads algorithm\n * used in URDNA2015) before bailing out and throwing an error; this is a\n * useful setting for preventing wasted CPU cycles or DoS when canonizing\n * meaningless or potentially malicious datasets, a recommended value is\n * `1`.\n *\n * @return a Promise that resolves to the canonicalized RDF Dataset.\n */\nexports.canonize = async function(input, options) {\n const dataset = _inputToDataset(input, options);\n\n if(options.useNative) {\n if(!rdfCanonizeNative) {\n throw new Error('rdf-canonize-native not available');\n }\n if(options.createMessageDigest) {\n throw new Error(\n '\"createMessageDigest\" cannot be used with \"useNative\".');\n }\n return new Promise((resolve, reject) =>\n rdfCanonizeNative.canonize(dataset, options, (err, canonical) =>\n err ? reject(err) : resolve(canonical)));\n }\n\n if(options.algorithm === 'URDNA2015') {\n return new URDNA2015(options).main(dataset);\n }\n if(options.algorithm === 'URGNA2012') {\n if(options.createMessageDigest) {\n throw new Error(\n '\"createMessageDigest\" cannot be used with \"URGNA2012\".');\n }\n return new URGNA2012(options).main(dataset);\n }\n if(!('algorithm' in options)) {\n throw new Error('No RDF Dataset Canonicalization algorithm specified.');\n }\n throw new Error(\n 'Invalid RDF Dataset Canonicalization algorithm: ' + options.algorithm);\n};\n\n/**\n * This method is no longer available in the public API, it is for testing\n * only. It synchronously canonizes an RDF dataset and does not work in the\n * browser.\n *\n * @param {Array|object|string} input - The input to canonize given as a\n * dataset or legacy dataset.\n * @param {object} options - The options to use:\n * {string} algorithm - The canonicalization algorithm to use, `URDNA2015` or\n * `URGNA2012`.\n * {Function} [createMessageDigest] - A factory function for creating a\n * `MessageDigest` interface that overrides the built-in message digest\n * implementation used by the canonize algorithm; note that using a hash\n * algorithm (or HMAC algorithm) that differs from the one specified by\n * the canonize algorithm will result in different output.\n * {boolean} [useNative=false] - Use native implementation.\n * {number} [maxDeepIterations=Infinity] - The maximum number of times to run\n * deep comparison algorithms (such as the N-Degree Hash Quads algorithm\n * used in URDNA2015) before bailing out and throwing an error; this is a\n * useful setting for preventing wasted CPU cycles or DoS when canonizing\n * meaningless or potentially malicious datasets, a recommended value is\n * `1`.\n *\n * @return the RDF dataset in canonical form.\n */\nexports._canonizeSync = function(input, options) {\n const dataset = _inputToDataset(input, options);\n\n if(options.useNative) {\n if(!rdfCanonizeNative) {\n throw new Error('rdf-canonize-native not available');\n }\n if(options.createMessageDigest) {\n throw new Error(\n '\"createMessageDigest\" cannot be used with \"useNative\".');\n }\n return rdfCanonizeNative.canonizeSync(dataset, options);\n }\n if(options.algorithm === 'URDNA2015') {\n return new URDNA2015Sync(options).main(dataset);\n }\n if(options.algorithm === 'URGNA2012') {\n if(options.createMessageDigest) {\n throw new Error(\n '\"createMessageDigest\" cannot be used with \"URGNA2012\".');\n }\n return new URGNA2012Sync(options).main(dataset);\n }\n if(!('algorithm' in options)) {\n throw new Error('No RDF Dataset Canonicalization algorithm specified.');\n }\n throw new Error(\n 'Invalid RDF Dataset Canonicalization algorithm: ' + options.algorithm);\n};\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a \n","import { render } from \"./ShaclEditor.vue?vue&type=template&id=5108d189\"\nimport script from \"./ShaclEditor.vue?vue&type=script&lang=js\"\nexport * from \"./ShaclEditor.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createElementVNode","class","for","_createBlock","_component_Splitpanes","_createVNode","_component_Pane","size","_hoisted_1","_component_rdf_editor","format","$data","value","shacl","ref","_hoisted_2","_hoisted_3","_hoisted_4","id","$event","_createElementBlock","_Fragment","_renderList","formats","key","_hoisted_5","onClick","_cache","args","$options","loadShacl","_component_ArrowPathIcon","_hoisted_6","horizontal","_hoisted_7","_hoisted_8","_component_GraphLayout","nodes","datamodel","tables","links","activeLinks","node","_withCtx","_component_ResourceCard","resource","error","_hoisted_9","_hoisted_10","_hoisted_11","_toDisplayString","parsers","keys","initialEditorContent","components","GraphLayout","Splitpanes","Pane","ArrowPathIcon","ResourceCard","data","viewports","isIntrospected","computed","this","tableIds","Set","map","flatMap","table","properties","property","reduce","acc","values","forEach","source","target","has","push","sourceProperty","label","name","methods","async","editor","$refs","shaclEditor","shrink","uri","_shrink","quads","dataset","rdfEnvironment","shapes","clownface","rdf","type","sh","NodeShape","tablesFromSHACL","e","toString","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/js/976.67e32a1d.js b/js/976.67e32a1d.js deleted file mode 100644 index 4db9566..0000000 --- a/js/976.67e32a1d.js +++ /dev/null @@ -1,2 +0,0 @@ -(self["webpackChunk_zazuko_spex"]=self["webpackChunk_zazuko_spex"]||[]).push([[976],{84905:function(e,t,r){const n=r(13767);e.exports=n},77762:function(e){class t{constructor(e){this.value=e||"b"+ ++t.nextId}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value}}t.prototype.termType="BlankNode",t.nextId=0,e.exports=t},13767:function(e,t,r){const n=r(77762),a=r(59060),s=r(95170),o=r(44591),u=r(12591),i=r(73669),p=r(58987);function l(e){return new u(e)}function c(e){return new n(e)}function h(e,t){return"string"===typeof t?-1===t.indexOf(":")?new o(e,t):new o(e,null,w.namedNode(t)):new o(e,null,t)}function f(e){return new p(e)}function d(){return w.defaultGraphInstance}function m(e,t,r){return w.quad(e,t,r)}function y(e,t,r,n){return new i(e,t,r,n||w.defaultGraphInstance)}function T(e){return s.call(w,e)}function g(e){return s.call(w,e)}const w={namedNode:l,blankNode:c,literal:h,variable:f,defaultGraph:d,triple:m,quad:y,fromTerm:T,fromQuad:g,defaultGraphInstance:new a};e.exports=w},59060:function(e){class t{equals(e){return!!e&&e.termType===this.termType}}t.prototype.termType="DefaultGraph",t.prototype.value="",e.exports=t},44591:function(e,t,r){const n=r(12591);class a{constructor(e,t,r){this.value=e,this.datatype=a.stringDatatype,this.language="",t?(this.language=t,this.datatype=a.langStringDatatype):r&&(this.datatype=r)}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value&&e.language===this.language&&e.datatype.equals(this.datatype)}}a.prototype.termType="Literal",a.langStringDatatype=new n("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"),a.stringDatatype=new n("http://www.w3.org/2001/XMLSchema#string"),e.exports=a},12591:function(e){class t{constructor(e){this.value=e}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value}}t.prototype.termType="NamedNode",e.exports=t},73669:function(e,t,r){const n=r(59060);class a{constructor(e,t,r,a){this.subject=e,this.predicate=t,this.object=r,this.graph=a||new n}equals(e){return!!e&&("Quad"===e.termType||!e.termType)&&e.subject.equals(this.subject)&&e.predicate.equals(this.predicate)&&e.object.equals(this.object)&&e.graph.equals(this.graph)}}a.prototype.termType="Quad",a.prototype.value="",e.exports=a},58987:function(e){class t{constructor(e){this.value=e}equals(e){return!!e&&e.termType===this.termType&&e.value===this.value}}t.prototype.termType="Variable",e.exports=t},95170:function(e){function t(e){if(!e)return null;if("BlankNode"===e.termType)return this.blankNode(e.value);if("DefaultGraph"===e.termType)return this.defaultGraph();if("Literal"===e.termType)return this.literal(e.value,e.language||this.namedNode(e.datatype.value));if("NamedNode"===e.termType)return this.namedNode(e.value);if("Quad"===e.termType){const t=this.fromTerm(e.subject),r=this.fromTerm(e.predicate),n=this.fromTerm(e.object),a=this.fromTerm(e.graph);return this.quad(t,r,n,a)}if("Variable"===e.termType)return this.variable(e.value);throw new Error(`unknown termType ${e.termType}`)}e.exports=t},41976:function(e,t,r){const n=r(15273),a=r(95883);class s extends a{constructor(e){super(n,e)}}e.exports=s},15273:function(e,t,r){const n=r(71581),a=r(84905),{finished:s}=r(88473),o=r(96650);class u extends o{constructor(e,{baseIRI:t="",factory:r=a}={}){const o=new n.StreamParser({baseIRI:t,factory:r});super(o,{objectMode:!0}),o.on("prefix",((e,t)=>{this.emit("prefix",e,t)})),o.on("error",(e=>{this.destroy(e)})),s(this,(()=>{o.end()})),e.pipe(o)}}e.exports=u},95883:function(e){class t{constructor(e,t){this.Impl=e,this.options=t}import(e,t){const r=new this.Impl(e,Object.assign({},this.options,t));return e.on("end",(()=>{r.readable||r.emit("end")})),e.on("error",(e=>{r.emit("error",e)})),r}}e.exports=t}}]); -//# sourceMappingURL=976.67e32a1d.js.map \ No newline at end of file diff --git a/js/976.67e32a1d.js.map b/js/976.67e32a1d.js.map deleted file mode 100644 index 1bb6e76..0000000 --- a/js/976.67e32a1d.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/976.67e32a1d.js","mappings":"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","sources":["webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/index.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/BlankNode.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/DataFactory.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/DefaultGraph.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/Literal.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/NamedNode.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/Quad.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/Variable.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/data-model/lib/fromTerm.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/parser-n3/index.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/parser-n3/lib/ParserStream.js","webpack://@zazuko/spex/./node_modules/@rdf-esm/formats-common/node_modules/@rdfjs/sink/index.js"],"sourcesContent":["const DataFactory = require('./lib/DataFactory.js')\n\nmodule.exports = DataFactory\n","class BlankNode {\n constructor (id) {\n this.value = id || ('b' + (++BlankNode.nextId))\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nBlankNode.prototype.termType = 'BlankNode'\n\nBlankNode.nextId = 0\n\nmodule.exports = BlankNode\n","const BlankNode = require('./BlankNode.js')\nconst DefaultGraph = require('./DefaultGraph.js')\nconst fromTermRaw = require('./fromTerm.js')\nconst Literal = require('./Literal.js')\nconst NamedNode = require('./NamedNode.js')\nconst Quad = require('./Quad.js')\nconst Variable = require('./Variable.js')\n\nfunction namedNode (value) {\n return new NamedNode(value)\n}\n\nfunction blankNode (value) {\n return new BlankNode(value)\n}\n\nfunction literal (value, languageOrDatatype) {\n if (typeof languageOrDatatype === 'string') {\n if (languageOrDatatype.indexOf(':') === -1) {\n return new Literal(value, languageOrDatatype)\n }\n\n return new Literal(value, null, DataFactory.namedNode(languageOrDatatype))\n }\n\n return new Literal(value, null, languageOrDatatype)\n}\n\nfunction variable (value) {\n return new Variable(value)\n}\n\nfunction defaultGraph () {\n return DataFactory.defaultGraphInstance\n}\n\nfunction triple (subject, predicate, object) {\n return DataFactory.quad(subject, predicate, object)\n}\n\nfunction quad (subject, predicate, object, graph) {\n return new Quad(subject, predicate, object, graph || DataFactory.defaultGraphInstance)\n}\n\nfunction fromTerm (original) {\n return fromTermRaw.call(DataFactory, original)\n}\n\nfunction fromQuad (original) {\n return fromTermRaw.call(DataFactory, original)\n}\n\nconst DataFactory = {\n namedNode,\n blankNode,\n literal,\n variable,\n defaultGraph,\n triple,\n quad,\n fromTerm,\n fromQuad,\n defaultGraphInstance: new DefaultGraph()\n}\n\nmodule.exports = DataFactory\n","class DefaultGraph {\n equals (other) {\n return !!other && other.termType === this.termType\n }\n}\n\nDefaultGraph.prototype.termType = 'DefaultGraph'\nDefaultGraph.prototype.value = ''\n\nmodule.exports = DefaultGraph\n","const NamedNode = require('./NamedNode.js')\n\nclass Literal {\n constructor (value, language, datatype) {\n this.value = value\n this.datatype = Literal.stringDatatype\n this.language = ''\n\n if (language) {\n this.language = language\n this.datatype = Literal.langStringDatatype\n } else if (datatype) {\n this.datatype = datatype\n }\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value &&\n other.language === this.language && other.datatype.equals(this.datatype)\n }\n}\n\nLiteral.prototype.termType = 'Literal'\n\nLiteral.langStringDatatype = new NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString')\nLiteral.stringDatatype = new NamedNode('http://www.w3.org/2001/XMLSchema#string')\n\nmodule.exports = Literal\n","class NamedNode {\n constructor (iri) {\n this.value = iri\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nNamedNode.prototype.termType = 'NamedNode'\n\nmodule.exports = NamedNode\n","const DefaultGraph = require('./DefaultGraph.js')\n\nclass Quad {\n constructor (subject, predicate, object, graph) {\n this.subject = subject\n this.predicate = predicate\n this.object = object\n\n if (graph) {\n this.graph = graph\n } else {\n this.graph = new DefaultGraph()\n }\n }\n\n equals (other) {\n // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n return !!other && (other.termType === 'Quad' || !other.termType) &&\n other.subject.equals(this.subject) && other.predicate.equals(this.predicate) &&\n other.object.equals(this.object) && other.graph.equals(this.graph)\n }\n}\n\nQuad.prototype.termType = 'Quad'\nQuad.prototype.value = ''\n\nmodule.exports = Quad\n","class Variable {\n constructor (name) {\n this.value = name\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nVariable.prototype.termType = 'Variable'\n\nmodule.exports = Variable\n","function fromTerm (original) {\n if (!original) {\n return null\n }\n\n if (original.termType === 'BlankNode') {\n return this.blankNode(original.value)\n }\n\n if (original.termType === 'DefaultGraph') {\n return this.defaultGraph()\n }\n\n if (original.termType === 'Literal') {\n return this.literal(original.value, original.language || this.namedNode(original.datatype.value))\n }\n\n if (original.termType === 'NamedNode') {\n return this.namedNode(original.value)\n }\n\n if (original.termType === 'Quad') {\n const subject = this.fromTerm(original.subject)\n const predicate = this.fromTerm(original.predicate)\n const object = this.fromTerm(original.object)\n const graph = this.fromTerm(original.graph)\n\n return this.quad(subject, predicate, object, graph)\n }\n\n if (original.termType === 'Variable') {\n return this.variable(original.value)\n }\n\n throw new Error(`unknown termType ${original.termType}`)\n}\n\nmodule.exports = fromTerm\n","const ParserStream = require('./lib/ParserStream')\nconst Sink = require('@rdfjs/sink')\n\nclass Parser extends Sink {\n constructor (options) {\n super(ParserStream, options)\n }\n}\n\nmodule.exports = Parser\n","const N3 = require('n3')\nconst rdf = require('@rdfjs/data-model')\nconst { finished } = require('readable-stream')\nconst ReadableToReadable = require('readable-to-readable')\n\nclass ParserStream extends ReadableToReadable {\n constructor (input, { baseIRI = '', factory = rdf } = {}) {\n const parser = new N3.StreamParser({ baseIRI, factory })\n\n super(parser, { objectMode: true })\n\n parser.on('prefix', (prefix, term) => {\n this.emit('prefix', prefix, term)\n })\n\n parser.on('error', err => {\n this.destroy(err)\n })\n\n finished(this, () => {\n parser.end()\n })\n\n input.pipe(parser)\n }\n}\n\nmodule.exports = ParserStream\n","class Sink {\n constructor (Impl, options) {\n this.Impl = Impl\n this.options = options\n }\n\n import (input, options) {\n const output = new this.Impl(input, Object.assign({}, this.options, options))\n\n input.on('end', () => {\n if (!output.readable) {\n output.emit('end')\n }\n })\n\n input.on('error', (err) => {\n output.emit('error', err)\n })\n\n return output\n }\n}\n\nmodule.exports = Sink\n"],"names":["DataFactory","module","exports","BlankNode","constructor","id","this","value","nextId","equals","other","termType","prototype","DefaultGraph","fromTermRaw","Literal","NamedNode","Quad","Variable","namedNode","blankNode","literal","languageOrDatatype","indexOf","variable","defaultGraph","defaultGraphInstance","triple","subject","predicate","object","quad","graph","fromTerm","original","call","fromQuad","language","datatype","stringDatatype","langStringDatatype","iri","name","Error","ParserStream","Sink","Parser","options","super","N3","rdf","finished","ReadableToReadable","input","baseIRI","factory","parser","StreamParser","objectMode","on","prefix","term","emit","err","destroy","end","pipe","Impl","import","output","Object","assign","readable"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.4f33480c.js b/js/app.4f33480c.js deleted file mode 100644 index 189df11..0000000 --- a/js/app.4f33480c.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){var e={46849:function(e,t,a){"use strict";var n=a(49963),s=a(66252);const l={id:"app",class:"h-full flex flex-col"};var r=(0,s.aZ)({__name:"App",setup(e){let t=null;function a(e){t=e.detail,n()}function n(){t&&t.waiting&&t.waiting.postMessage({type:"SKIP_WAITING"})}function r(){window.location.reload()}return(0,s.bv)((()=>{document.addEventListener("swUpdated",a,{once:!0}),navigator.serviceWorker.addEventListener("controllerchange",r)})),(0,s.Jd)((()=>{document.addEventListener("swUpdated",a),navigator.serviceWorker.removeEventListener("controllerchange",r)})),(e,t)=>{const a=(0,s.up)("router-view");return(0,s.wg)(),(0,s.iD)("div",l,[(0,s.Wm)(a)])}}});const o=r;var i=o,c=a(22201),u=(a(57658),a(2262)),d=a(3577),p=a(16148),f=a(22886),m=a(47327),h=a(74919),v=a(2363),g=a(39155),w=a.n(g),y=a(54803),b=a(58027);const x=".well-known/void",k=[...Object.keys(b.q1)],S=["en","*"];class E{static getInstance(e){if(null===this._endpointInstance&&e)return this._endpointInstance=new E(e),this._endpointInstance;if(e&&this._endpointInstance&&this._endpointInstance.applySettings(e),null===this._endpointInstance)throw new Error("Endpoint Not Configured");return this._endpointInstance}constructor(e){(0,m.Z)(this,"_settings",void 0),(0,m.Z)(this,"_client",void 0),this._settings=e,this.applySettings(e)}applySettings(e){this._settings=e,this._client=new(w())({endpointUrl:this._settings.sparqlEndpoint??"",user:this._settings.username??void 0,password:this._settings.password??void 0}),Object.keys(b.q1).forEach((e=>{k.includes(e)||delete b.q1[e]})),this._settings.prefixes.forEach((({prefix:e,namespace:t})=>{b.q1[e]=t}))}shrink(e){return(0,h.F)(e)||e}async fetchGraphs(e){const t=e?.offset??0,a=e?.limit??null,n=`\n PREFIX rdf: \n\n SELECT DISTINCT ?g\n WHERE {\n GRAPH ?g { ?s ?p ?o }\n }\n ORDER BY ?g\n OFFSET ${t}\n LIMIT ${a}\n `,s=await this._client.query.select(n);return s.map((({g:{value:e}})=>e))}async fetchDataModel(){if(this._settings.forceIntrospection)return this.fetchIntrospectDataModel();const e=await this.fetchPredefinedDataModel();if(null!==e)return e;const t=this.fetchIntrospectDataModel();return t}get datasetURI(){return this._settings.sparqlEndpoint?.replace(/query\/?$/,x)??""}get sparqlEndpoint(){return this._settings.sparqlEndpoint??""}get prefixes(){return this._settings.prefixes}async fetchPredefinedDataModel(){const e=this._settings.namedGraph?`FROM <${this._settings.namedGraph}>`:"",t=`\n #pragma describe.strategy cbd\n DESCRIBE <${this.datasetURI}>\n ${e}\n `,a=await this._client.query.construct(t);if(0===a.length)return null;const n=v.ZP.clownface({dataset:v.ZP.dataset(a),term:v.ZP.namedNode(this.datasetURI)});return this.dataModelFromSHACL(n)}dataModelFromSHACL(e){return(0,y.zV)(e,S,this.shrink)}dataModelToSHACL(e){return(0,y.oV)(e,this.datasetURI)}async fetchIntrospectDataModel(){const e=await this._fetchStructure(),t=e.reduce(((e,{cls:t,property:a,linktype:n,datatype:s})=>{const l=e.get(t.value)??{id:t.value,name:this.shrink(t.value),properties:new Map,isShown:"http://www.w3.org/2000/01/rdf-schema#Class"!==t.value},r=n&&n.value||s&&s.value||null,o=n?"NamedNode":s?"Literal":null,i=r&&{id:r,name:this.shrink(r),termType:o};return l.properties.has(a.value)?i&&l.properties.get(a.value).values.push(i):l.properties.set(a.value,{id:a.value,name:this.shrink(a.value),values:i?[i]:[]}),e.set(t.value,l),e}),new Map),a=[...t.values()].map((e=>({...e,properties:[...e.properties.values()]}))),n=await this.countClasses();return a.forEach((e=>{e.count=n.get(e.id)})),{tables:a,viewports:[],isIntrospected:!0}}async _fetchStructure(){const e=this._settings.namedGraph?`FROM <${this._settings.namedGraph}>`:"",t=`\n PREFIX rdf: \n\n SELECT DISTINCT ?cls ?property ?linktype ?datatype\n ${e}\n WHERE {\n ?subject a ?cls .\n ?subject ?property ?object .\n\n FILTER(?property != rdf:type)\n OPTIONAL {\n ?object a ?linktype .\n }\n\n BIND(DATATYPE(?object) AS ?datatype)\n }\n `;return this._client.query.select(t)}async fetchTableData(e,t){const a=v.ZP.namedNode(e.id),n=t?.limit??10,s=t?.offset??0,l=this._settings.namedGraph?`GRAPH <${this._settings.namedGraph}>`:"",r=`\n DESCRIBE ?subject {\n {\n SELECT ?subject\n WHERE {\n ${l} {\n ?subject a <${e.id}>\n }\n }\n LIMIT ${n}\n OFFSET ${s}\n }\n }\n `,o=await this._client.query.construct(r),i=v.ZP.dataset(o),c=[...i.match(null,b.E_.type,a)],u=v.ZP.termMap(c.map((({subject:e})=>[e,{id:e.value,term:e}])));return o.forEach((({subject:e,predicate:{value:t},object:a})=>{const n=u.get(e);n&&(n[t]||(n[t]=v.ZP.termSet()),n[t].add(a),u.set(e,n))})),[...u.values()]}async fetchResource(e){const t=`\n DESCRIBE <${e}> {}\n `,a=await this._client.query.construct(t),n=a.reduce(((e,{predicate:t,object:a})=>{if(!e.has(t.value)){const a={id:t.value,term:t,name:this.shrink(t.value),values:v.ZP.termSet()};e.set(t.value,a)}return e.get(t.value).values.add(a),e}),new Map),s={value:e,termType:"NamedNode"};return{id:e,term:s,name:this.shrink(s.value),properties:[...n.values()]}}async canFetchOne(){const e="\n SELECT ?s WHERE {\n ?s ?p ?o\n } LIMIT 1\n ";try{const t=await this._client.query.select(e);return 1===t.length}catch(t){return!1}}async countClasses(){const e=new Map,t=q(this._settings.namedGraph),a=await this._client.query.select(t);return a.forEach((t=>{e.set(t.class.value,Number(t.count.value))})),e}}function q(e){const t=e?`FROM <${e}>`:"";return`\nPREFIX rdf: \nPREFIX rdfs: \n\nSELECT ?class (count(?x) as ?count) ${t} WHERE {\n ?x a ?class . \n} group by ?class\n`}(0,m.Z)(E,"_endpointInstance",null);a(72723);var A=a(82784),U=a(95771),V=a(3591),_=a(61784);const W={class:"flex items-center justify-center min-h-screen"},Z={class:"modal-card"},j={name:"SpexDialog"};var H=(0,s.aZ)({...j,props:{open:{type:Boolean}},emits:["close"],setup(e,{emit:t}){return(e,t)=>((0,s.wg)(),(0,s.j4)((0,u.SU)(_.Vq),{open:e.open,onClose:t[0]||(t[0]=t=>e.$emit("close")),class:"fixed inset-0 z-10 overflow-y-auto"},{default:(0,s.w5)((()=>[(0,s._)("div",W,[(0,s.Wm)((0,u.SU)(_.t9),{class:"fixed inset-0 bg-black opacity-50"}),(0,s._)("div",Z,[(0,s.WI)(e.$slots,"default")])])])),_:3},8,["open"]))}});const D=H;var C=D,I=a(59540),T=a(91520);const O=e=>((0,s.dD)("data-v-369db967"),e=e(),(0,s.Cn)(),e),L={class:"modal-card-head py-4"},z=O((()=>(0,s._)("h3",{style:{color:"grey"}},"Generated SHACL shapes",-1))),P={class:"ml-auto"},N={class:"modal-card-body overflow-y-hidden flex flex-col pb-0"},K={class:"flex justify-between"},R={class:"flex items-center gap-2"},F=O((()=>(0,s._)("span",null,"Copy",-1))),M={name:"ModalShacl"};var X=(0,s.aZ)({...M,props:{datamodel:{},loadShacl:{}},emits:["close","open-load-shacl"],setup(e,{emit:t}){const a=e,l=E.getInstance(),r=(0,s.Fl)((()=>l.prefixes.reduce(((e,{prefix:t,namespace:a})=>({...e,[t]:a})),{}))),o=(0,s.Fl)((()=>[...l.dataModelToSHACL(a.datamodel).dataset])),i=(0,u.iH)(null),c=(0,u.iH)(null),p=(0,u.iH)([{label:"JSON-LD",value:"application/ld+json"},{label:"Turtle",value:"text/turtle"},{label:"N-Triples",value:"application/n-triples"}]),f=(0,u.iH)("application/ld+json"),m=(0,u.iH)(["sh","schema"].join(","));async function h(){const e=c.value.codeMirror.value;await navigator.clipboard.writeText(e),i.value="Copied 👍",setTimeout((()=>{i.value=null}),3e3)}function v(){t("open-load-shacl"),t("close")}return(e,t)=>{const a=(0,s.up)("rdf-editor");return(0,s.wg)(),(0,s.j4)(C,{onClose:t[2]||(t[2]=t=>e.$emit("close"))},{default:(0,s.w5)((()=>[(0,s._)("div",L,[z,(0,s._)("div",P,[(0,s.Wm)(I.Z,{label:"Load SHACL shapes",position:"bottom",class:"mr-4"},{default:(0,s.w5)((()=>[(0,s._)("button",{class:"button",onClick:v},[(0,s.Wm)((0,u.SU)(A.Z),{class:"icon"})])])),_:1}),(0,s.Wm)(I.Z,{label:"Close",position:"bottom"},{default:(0,s.w5)((()=>[(0,s._)("button",{class:"button is-light",onClick:t[0]||(t[0]=t=>e.$emit("close"))},[(0,s.Wm)((0,u.SU)(U.Z),{class:"icon"})])])),_:1})])]),(0,s._)("div",N,[(0,s._)("div",K,[(0,s.Wm)((0,u.SU)(T.Ee),{modelValue:f.value,"onUpdate:modelValue":t[1]||(t[1]=e=>f.value=e),class:"field has-addons"},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(p.value,(e=>((0,s.wg)(),(0,s.j4)((0,u.SU)(T.$v),{key:e.value,value:e.value,class:"control"},{default:(0,s.w5)((({checked:t})=>[(0,s._)("span",{class:(0,d.C_)(["button",t?"is-primary":""])},(0,d.zw)(e.label),3)])),_:2},1032,["value"])))),128))])),_:1},8,["modelValue"]),(0,s._)("div",R,[(0,s.wy)((0,s._)("span",{class:"text-green-500"},(0,d.zw)(i.value),513),[[n.F8,i.value]]),(0,s._)("button",{class:"button",onClick:h},[(0,s.Wm)((0,u.SU)(V.Z),{class:"icon"}),F])])]),(0,s.Wm)(a,{format:f.value,".quads":o.value,".prefixes":m.value,".customPrefixes":r.value,ref_key:"snippet",ref:c,class:"overflow-y-auto"},null,8,["format",".quads",".prefixes",".customPrefixes"])])])),_:1})}}}),B=a(83744);const G=(0,B.Z)(X,[["__scopeId","data-v-369db967"]]);var Q=G;const J={class:"modal-card-head py-4"},Y=(0,s._)("h3",{style:{color:"grey"}},"Load SHACL shapes",-1),$={class:"ml-auto"},ee={class:"modal-card-body"},te={class:"field"},ae={key:0,class:"help is-danger"},ne=(0,s._)("p",{class:"help",style:{color:"grey"}},[(0,s.Uk)(" Paste your SHACL shapes in "),(0,s._)("strong",null,"Turtle"),(0,s.Uk)(" format in the field above. ")],-1),se=(0,s._)("div",{class:"field"},[(0,s._)("button",{class:"button is-primary",type:"submit"},"Load")],-1);function le(e,t,a,l,r,o){const i=(0,s.up)("XMarkIcon"),c=(0,s.up)("SpexDialog");return(0,s.wg)(),(0,s.j4)(c,{onClose:t[3]||(t[3]=t=>e.$emit("close"))},{default:(0,s.w5)((()=>[(0,s._)("div",J,[Y,(0,s._)("div",$,[(0,s._)("button",{class:"button is-light",title:"Close",onClick:t[0]||(t[0]=t=>e.$emit("close"))},[(0,s.Wm)(i,{class:"icon"})])])]),(0,s._)("div",ee,[(0,s._)("form",{onSubmit:t[2]||(t[2]=(0,n.iM)(((...e)=>o.onSubmit&&o.onSubmit(...e)),["prevent"]))},[(0,s._)("div",te,[(0,s.wy)((0,s._)("textarea",{type:"textarea",class:(0,d.C_)(["textarea",{"is-danger":r.error}]),"onUpdate:modelValue":t[1]||(t[1]=e=>r.data=e)},null,2),[[n.nr,r.data]]),r.error?((0,s.wg)(),(0,s.iD)("p",ae,(0,d.zw)(r.error),1)):(0,s.kq)("",!0),ne]),se],32)])])),_:1})}var re=a(57003),oe={name:"ModalShaclLoad",props:["load","endpoint"],emits:["close"],components:{SpexDialog:C,XMarkIcon:U.Z},data(){return{data:"",error:null}},methods:{async onSubmit(){if(!this.data)return;const e=new re.Z;try{const t=e.parse(this.data),a=v.ZP.dataset(t),n=v.ZP.clownface({dataset:a,term:b.It.DefaultShapes}).in(b.E_.type).in(b.It.shape);if(!n.term)throw new Error("No node with spex:shape pointing to a spex:DefaultShapes found");const s=this.endpoint.dataModelFromSHACL(n);this.load(s),this.$emit("close")}catch(t){this.error=t.toString()}}}};const ie=(0,B.Z)(oe,[["render",le]]);var ce=ie,ue=a(60313),de=a(42181),pe=a(43265),fe=a(70199);const me={class:"flex justify-center flex-row gap-1"},he={class:"relative z-50 text-right flex justify-center flex-row"},ve={class:"flex h-full justify-center"},ge={class:"px-1 py-1"},we={name:"ShapeComponentActions"};var ye=(0,s.aZ)({...we,props:{table:{}},emits:["hide","explore","export"],setup(e,{emit:t}){const a=(0,u.iH)(null);function l(e){t("export",e),a.value="👍",setTimeout((()=>{a.value=null}),1500)}return(e,t)=>((0,s.wg)(),(0,s.iD)("div",me,[(0,s._)("div",null,[(0,s._)("div",he,[(0,s.Wm)((0,u.SU)(fe.v2),{as:"div",class:"relative inline-block"},{default:(0,s.w5)((()=>[(0,s._)("div",ve,[(0,s.Wm)((0,u.SU)(fe.j2),{style:{"font-size":"0.75rem",height:"2.5em",width:"2.5em","border-radius":"2px","padding-top":"1px"},class:"inline-flex w-full justify-center rounded-md bg-black bg-opacity-20 text-sm font-medium text-white hover:bg-opacity-30 focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75"},{default:(0,s.w5)((()=>[(0,s.Wm)((0,u.SU)(ue.Z),{class:"h-7 w-7 --color-primary-300 hover:text-orange","aria-hidden":"true"})])),_:1})]),(0,s.Wm)(n.uT,{"enter-active-class":"transition duration-100 ease-out","enter-from-class":"transform scale-95 opacity-0","enter-to-class":"transform scale-100 opacity-100","leave-active-class":"transition duration-75 ease-in","leave-from-class":"transform scale-100 opacity-100","leave-to-class":"transform scale-95 opacity-0"},{default:(0,s.w5)((()=>[(0,s.Wm)((0,u.SU)(fe.sd),{class:"absolute right-0 mt-2 w-56 origin-top-right divide-y divide-gray-100 rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none"},{default:(0,s.w5)((()=>[(0,s._)("div",ge,[(0,s.Wm)((0,u.SU)(fe.sN),null,{default:(0,s.w5)((({active:a})=>[(0,s._)("button",{class:(0,d.C_)([a?"bg-orange-400 text-white":"text-gray-900","group flex w-full items-center rounded-md px-2 py-2 text-sm"]),onClick:t[0]||(t[0]=t=>l(e.table))},[(0,s.Wm)((0,u.SU)(V.Z),{class:"mr-2 h-5 w-5 icon","aria-hidden":"true"}),(0,s.Uk)(" Copy NodeShape ")],2)])),_:1}),(0,s.Wm)((0,u.SU)(fe.sN),null,{default:(0,s.w5)((({active:a})=>[(0,s._)("button",{class:(0,d.C_)([a?"bg-orange-400 text-white":"text-gray-900","group flex w-full items-center rounded-md px-2 py-2 text-sm"]),onClick:t[1]||(t[1]=t=>e.$emit("explore",e.table))},[(0,s.Wm)((0,u.SU)(de.Z),{class:"mr-2 h-5 w-5 icon","aria-hidden":"true"}),(0,s.Uk)(" Explore Data ")],2)])),_:1})])])),_:1})])),_:1})])),_:1})])]),(0,s.Wm)(I.Z,{label:"Hide"},{default:(0,s.w5)((()=>[(0,s._)("button",{class:"button is-light is-small",onClick:t[2]||(t[2]=t=>e.$emit("hide",e.table))},[(0,s.Wm)((0,u.SU)(pe.Z),{class:"icon"})])])),_:1})]))}});const be=ye;var xe=be;const ke={class:"font-bold"},Se={class:"w-full"},Ee=["data-id","onMouseenter","onMouseleave"],qe={class:"text-inherit dark:border-gray-500 px-3 py-2"},Ae={class:"text-inherit dark:border-gray-500 px-3 py-2"},Ue={name:"ShapeComponent"};var Ve=(0,s.aZ)({...Ue,props:{table:{},activeLinks:{}},emits:["hide","explore","export","hover-title","unhover-title","hover-property","unhover-property"],setup(e,{emit:t}){const a=e;function n(e){e.stopPropagation()}const l=(0,s.Fl)((()=>a.activeLinks.some((e=>e.target===a.table.id))));function r(e){return a.activeLinks.some((t=>t.source===a.table.id&&t.sourceProperty===e.id))}return(e,t)=>((0,s.wg)(),(0,s.iD)("div",{class:(0,d.C_)(["border dark:border-gray-500 rounded-lg shadow-md bg-white dark:bg-gray-800 opacity-90 text-sm",{active:l.value}])},[(0,s._)("header",{class:"bg-gray-100 dark:bg-gray-900 flex items-center gap-4 justify-between px-3 py-2 rounded-lg",onMouseenter:t[3]||(t[3]=t=>e.$emit("hover-title",e.table)),onMouseleave:t[4]||(t[4]=t=>e.$emit("unhover-title",e.table))},[(0,s.Wm)(I.Z,{label:e.table.id},{default:(0,s.w5)((()=>[(0,s._)("h3",ke,(0,d.zw)(e.table.name),1)])),_:1},8,["label"]),(0,s.Wm)(xe,{table:e.table,onExport:t[0]||(t[0]=t=>e.$emit("export",e.table)),onHide:t[1]||(t[1]=t=>e.$emit("hide",e.table)),onExplore:t[2]||(t[2]=t=>e.$emit("explore",e.table))},null,8,["table"])],32),(0,s._)("table",Se,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.table.properties,((t,a)=>((0,s.wg)(),(0,s.iD)("tr",{class:(0,d.C_)(["border-b last:border-b-0 hover:bg-orange-400 hover:bg-opacity-20 text-gray-800 dark:text-gray-50",{active:r(t)}]),key:a,"data-id":t.id,onMouseenter:a=>e.$emit("hover-property",e.table,t),onMouseleave:a=>e.$emit("unhover-property",e.table,t)},[(0,s._)("th",qe,[(0,s.Wm)(I.Z,{label:t.id},{default:(0,s.w5)((()=>[(0,s._)("span",{onMousedown:n},(0,d.zw)(t.name),33)])),_:2},1032,["label"])]),(0,s._)("td",Ae,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(t.values,(t=>((0,s.wg)(),(0,s.iD)("div",{key:t.id},[(0,s.WI)(e.$slots,"property-value",{value:t},(()=>[(0,s.Wm)(I.Z,{label:t.id},{default:(0,s.w5)((()=>[(0,s._)("span",{onMousedown:n},(0,d.zw)(t.name),33)])),_:2},1032,["label"])]))])))),128))])],42,Ee)))),128))])],2))}});const _e=Ve;var We=_e,Ze=a(80211);const je={class:"z-10 absolute bottom-2 right-2 text-sm text-gray-400"},He={key:1,class:"flex-grow bg-light dark:bg-dark flex flex-col items-center justify-center"},De=(0,s._)("p",{class:"pb-4"},"No classes to show",-1),Ce=[De],Ie={name:"DataModelComponent"};var Te=(0,s.aZ)({...Ie,props:{datamodel:{}},emits:["explore","toggle-shape","export"],setup(e,{emit:t}){const a=e,l=(0,u.iH)([]),r=(0,s.Fl)((()=>a.datamodel.tables.filter((({isShown:e})=>e)))),o={rankdir:"LR",align:"UR",nodesep:40,ranksep:500,marginx:10,marginy:10},i=(0,s.Fl)((()=>{const e=new Set(r.value.map((({id:e})=>e)));return r.value.flatMap((e=>e.properties.map((t=>({...t,table:e}))))).reduce(((t,a)=>(a.values.forEach((n=>{const s=a.table.id,l=n.id;e.has(l)&&t.push({source:s,target:l,sourceProperty:a.id,label:a.name})})),t)),[])}));function c(e){l.value=i.value.filter((t=>t.source===e.id))}function d(e,t){l.value=i.value.filter((a=>a.source===e.id&&a.sourceProperty===t.id))}function p(){l.value=[]}function f(e){l.value=[e]}return(e,t)=>r.value.length>0?((0,s.wg)(),(0,s.j4)((0,u.SU)(Ze.Y),{key:0,nodes:r.value,links:i.value,"active-links":l.value,layoutCfg:o,onLinkEnter:f,onLinkOut:p,class:"bg-light dark:bg-dark flex-grow"},{node:(0,s.w5)((({node:a})=>[(0,s.Wm)(We,{table:a,"active-links":l.value,onExplore:t[0]||(t[0]=t=>e.$emit("explore",t)),onHide:t[1]||(t[1]=t=>e.$emit("toggle-shape",t,!1)),onExport:t[2]||(t[2]=t=>e.$emit("export",t)),onHoverTitle:c,onUnhoverTitle:p,onHoverProperty:d,onUnhoverProperty:p},null,8,["table","active-links"])])),default:(0,s.w5)((()=>[(0,s.WI)(e.$slots,"default"),(0,s.wy)((0,s._)("p",je," introspected ",512),[[n.F8,e.datamodel.isIntrospected]])])),_:3},8,["nodes","links","active-links"])):((0,s.wg)(),(0,s.iD)("div",He,Ce))}});const Oe=Te;var Le=Oe,ze=a(71028),Pe=a(81407);const Ne={key:0,class:"has-text-grey"},Ke={name:"SpexTerm"};var Re=(0,s.aZ)({...Ke,props:{term:{}},setup(e){const t=e,a=E.getInstance(),n=(0,u.iH)(i(a,t.term)),l=c(a,t.term),r=(0,u.iH)(t.term&&t.term.language),o=(0,u.iH)(l!==n.value?l:"");function i(e,t){return t?"NamedNode"===t.termType?e.shrink(t.value):t.value:t}function c(e,t){if("Literal"===t.termType){const a=t.datatype?`^^${e.shrink(t.datatype.value)}`:"",n=t.language?`@${t.language}`:"";return`${t.value}${a}${n}`}return t.value}return(e,t)=>((0,s.wg)(),(0,s.j4)(I.Z,{label:o.value},{default:(0,s.w5)((()=>[(0,s.Uk)((0,d.zw)(n.value),1),r.value?((0,s.wg)(),(0,s.iD)("small",Ne,"@"+(0,d.zw)(r.value),1)):(0,s.kq)("",!0)])),_:1},8,["label"]))}});const Fe=Re;var Me=Fe,Xe=a(52561);const Be={name:"TermExploreButton"};var Ge=(0,s.aZ)({...Be,props:{term:{}},emits:["explore-resource"],setup(e,{emit:t}){const a=e,n=(0,s.Fl)((()=>["NamedNode","BlankNode"].includes(a.term.termType))),l=(0,s.Fl)((()=>{const e={id:a.term.value,name:a.term.value,term:a.term};return e}));return(e,t)=>n.value?((0,s.wg)(),(0,s.j4)(I.Z,{key:0,label:"Explore"},{default:(0,s.w5)((()=>[(0,s._)("button",{class:"button is-white is-small",onClick:t[0]||(t[0]=t=>e.$emit("explore-resource",l.value))},[(0,s.Wm)((0,u.SU)(Xe.Z),{class:"icon"})])])),_:1})):(0,s.kq)("",!0)}});const Qe=Ge;var Je=Qe;const Ye={class:"card h-full flex flex-col"},$e={class:"card-header has-background-light"},et=(0,s._)("h3",{class:"card-header-title"}," Resources Explorer ",-1),tt={class:"card-header-icon py-0 px-1"},at=["href"],nt=["onClick"],st={class:"flex items-center"},lt={name:"ResourcesExplorer"};var rt=(0,s.aZ)({...lt,props:{resources:{}},emits:["explore-resource","unexplore-resource","close"],setup(e,{emit:t}){const a=e,n=(0,c.yj)(),l=E.getInstance(),r=(0,s.Fl)((()=>{const e=new Set(a.resources.map((({id:e})=>e)));return a.resources.filter((e=>e.properties)).flatMap((e=>e.properties.map((t=>({...t,resource:e}))))).reduce(((t,a)=>(a.values.forEach((n=>{const s=a.resource.id,l=n.value;e.has(l)&&t.push({source:s,target:l,sourceProperty:a.id,label:a.name})})),t)),[])})),o=(0,u.iH)([]);function i(e){o.value.push(e)}function d(){o.value=[]}function p(e){o.value=r.value.filter((t=>t.source===e.id))}function f(e,t){o.value=r.value.filter((a=>a.source===e.id&&a.sourceProperty===t.id))}async function m(){a.resources.forEach((async e=>{if(!e.isFetched)try{const a=await l.fetchResource(e.id),n={...a,isFetched:!0};t("explore-resource",n)}catch(a){const n={...e,isFetched:!0};t("explore-resource",n)}}))}(0,s.bv)((()=>{m()})),(0,s.YP)(a.resources,m);(0,s.Fl)((()=>n.params.uri));return(e,t)=>((0,s.wg)(),(0,s.iD)("div",Ye,[(0,s._)("div",$e,[et,(0,s._)("p",tt,[(0,s._)("button",{class:"button is-light",onClick:t[0]||(t[0]=t=>e.$emit("close")),title:"Close"},[(0,s.Wm)((0,u.SU)(U.Z),{class:"icon"})])])]),(0,s.Wm)((0,u.SU)(Ze.Y),{class:"card-content p-0",nodes:e.resources,links:r.value,"active-links":o.value,"auto-zoom":!1,onLinkEnter:i,onLinkOut:d},{node:(0,s.w5)((({node:a})=>[(0,s.Wm)(Pe.Z,{resource:a,"active-links":o.value,onHoverTitle:p,onUnhoverTitle:d,onHoverProperty:f,onUnhoverProperty:d},{actions:(0,s.w5)((()=>[(0,s.Wm)(I.Z,{label:"Open URI in new tab"},{default:(0,s.w5)((()=>[(0,s._)("a",{href:a.id,target:"_blank",rel:"noopener noreferrer",class:"button is-light"},[(0,s.Wm)((0,u.SU)(ze.Z),{class:"icon"})],8,at)])),_:2},1024),(0,s.Wm)(I.Z,{label:"Hide"},{default:(0,s.w5)((()=>[(0,s._)("button",{class:"button is-light",onClick:t=>e.$emit("unexplore-resource",a)},[(0,s.Wm)((0,u.SU)(pe.Z),{class:"icon"})],8,nt)])),_:2},1024)])),"property-value":(0,s.w5)((({value:a})=>[(0,s._)("div",st,[(0,s.Wm)(Me,{term:a,endpoint:(0,u.SU)(l)},null,8,["term","endpoint"]),(0,s.Wm)(Je,{term:a,onExploreResource:t[1]||(t[1]=t=>e.$emit("explore-resource",t))},null,8,["term"])])])),_:2},1032,["resource","active-links"])])),_:1},8,["nodes","links","active-links"])]))}});const ot=rt;var it=ot,ct=a(48220),ut=a(40564),dt=a(90895),pt=a(80889),ft=a(27886);const mt={class:"animate-spin h-8 w-8",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},ht=(0,s._)("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"#ffb15e","stroke-width":"4"},null,-1),vt=(0,s._)("path",{class:"opacity-75",fill:"#ffb15e",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1),gt=[ht,vt];function wt(e,t){return(0,s.wg)(),(0,s.iD)("svg",mt,gt)}const yt={},bt=(0,B.Z)(yt,[["render",wt]]);var xt=bt;const kt=["id","value"],St={key:0},Et=(0,s._)("span",null,"Load more",-1),qt={name:"SelectGraph"};var At=(0,s.aZ)({...qt,props:{id:{},modelValue:{},graphs:{},loading:{type:Boolean},hasMoreGraphs:{type:Boolean}},emits:["update:modelValue","fetch-more"],setup(e,{emit:t}){return(e,t)=>((0,s.wg)(),(0,s.j4)((0,u.SU)(pt.Ri),{as:"div",class:"control",modelValue:e.modelValue,"onUpdate:modelValue":t[2]||(t[2]=t=>e.$emit("update:modelValue",t))},{default:(0,s.w5)((()=>[(0,s.Wm)((0,u.SU)(pt.Y4),{as:"div",class:"relative"},{default:(0,s.w5)((()=>[(0,s._)("input",{id:e.id,placeholder:"DEFAULT",class:"input",value:e.modelValue,onInput:t[0]||(t[0]=t=>e.$emit("update:modelValue",t.target.value)),autocomplete:"off"},null,40,kt),(0,s.wy)((0,s.Wm)(xt,{class:"absolute top-2 right-2"},null,512),[[n.F8,e.loading]])])),_:1}),(0,s.Wm)(n.uT,{"enter-active-class":"transition duration-100 ease-out","enter-from-class":"scale-95 opacity-0","enter-to-class":"scale-100 opacity-100","leave-active-class":"transition duration-75 ease-out","leave-from-class":"scale-100 opacity-100","leave-to-class":"scale-95 opacity-0"},{default:(0,s.w5)((()=>[(0,s.Wm)((0,u.SU)(pt.O_),{as:"ul",class:"bg-white border border-gray-100 shadow-md absolute w-full z-10 max-h-64 overflow-y-scroll"},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.graphs,(e=>((0,s.wg)(),(0,s.j4)((0,u.SU)(pt.wt),{as:"template",key:e,value:e},{default:(0,s.w5)((({active:t,selected:a})=>[(0,s._)("li",{class:(0,d.C_)(["px-2 py-2",{"bg-gray-100":t,"bg-primary-300":a}])},(0,d.zw)(e),3)])),_:2},1032,["value"])))),128)),e.hasMoreGraphs?((0,s.wg)(),(0,s.iD)("li",St,[(0,s._)("button",{type:"button",class:(0,d.C_)(["button is-light justify-start w-full",{"is-loading":e.loading}]),onClick:t[1]||(t[1]=t=>e.$emit("fetch-more"))},[(0,s.Wm)((0,u.SU)(ft.Z),{class:"icon"}),Et],2)])):(0,s.kq)("",!0)])),_:1})])),_:1})])),_:1},8,["modelValue"]))}});const Ut=At;var Vt=Ut,_t=a(77925);const Wt={name:"SpexSwitch"};var Zt=(0,s.aZ)({...Wt,props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){return(e,t)=>((0,s.wg)(),(0,s.j4)((0,u.SU)(_t.rs),{modelValue:e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=t=>e.$emit("update:modelValue",t)),class:(0,d.C_)([e.modelValue?"bg-primary-400":"bg-gray-300","relative inline-flex shrink-0 items-center h-6 w-10 rounded-full shadow-inner"])},{default:(0,s.w5)((()=>[(0,s._)("span",{class:(0,d.C_)([e.modelValue?"translate-x-5":"translate-x-1","inline-block w-4 h-4 bg-white rounded-full shadow transition duration-200 ease-in-out"])},null,2)])),_:1},8,["modelValue","class"]))}});const jt=Zt;var Ht=jt;const Dt={class:"card is-shadowless h-full overflow-y-auto"},Ct={class:"card-header has-background-light"},It=(0,s._)("h3",{class:"card-header-title"},"Options",-1),Tt={class:"card-header-icon py-0 px-1"},Ot={class:"card-content"},Lt={class:"field"},zt=(0,s._)("label",{class:"label",for:"endpoint"},"Sparql Endpoint URL",-1),Pt={class:"control has-icons-right"},Nt={key:0,class:"icon is-small is-right",CheckIcon:""},Kt={class:"field"},Rt=(0,s._)("label",{class:"label",for:"username"},"Username",-1),Ft={class:"field"},Mt=(0,s._)("label",{class:"label",for:"password"},"Password",-1),Xt=(0,s._)("label",{class:"label",for:"graph"},"Named Graph",-1),Bt={class:"field"},Gt={key:0,class:"message is-danger"},Qt={class:"message-body"},Jt={class:"field"},Yt=(0,s._)("label",{class:"label"},"Custom prefixes",-1),$t={class:"flex flex-col gap-1"},ea=["onUpdate:modelValue"],ta=["onUpdate:modelValue"],aa=["onClick"],na={key:0,class:"has-text-grey"},sa={class:"field"},la={class:"label flex items-center gap-2"},ra=(0,s._)("p",{class:"help"},[(0,s.Uk)(" By default, the explorer will use the endpoint schema provided at "),(0,s._)("code",null,"endpoint/.well-known/void"),(0,s.Uk)(" (if any). Use this option to force an introspection. ")],-1),oa={name:"SettingsPane"};var ia=(0,s.aZ)({...oa,props:{settings:{}},emits:["settingsChanged","close"],setup(e,{emit:t}){const a=e,l=10,r=(0,u.iH)({sparqlEndpoint:a.settings.sparqlEndpoint,namedGraph:a.settings.namedGraph,prefixes:a.settings.prefixes,username:a.settings.username,password:a.settings.password,forceIntrospection:a.settings.forceIntrospection}),o=(0,u.iH)(!1),i=(0,u.iH)(!1);let c=null;a.settings.sparqlEndpoint&&x();const p=(0,u.iH)([]),f=(0,u.iH)(!1),m=(0,u.iH)(!1),h=(0,u.iH)(null),v=(0,u.iH)(0);function g(e){e.preventDefault(),e.stopPropagation(),t("settingsChanged",r.value)}function w(){t("close")}function y(e){r.value.namedGraph=null,x()}function b(e){((r.value.username?.length??0)>0&&(r.value.username?.length??0)>0||0===(r.value.username?.length??0)&&0===(r.value.username?.length??0))&&x()}async function x(){const e=E.getInstance(r.value);o.value=await e.canFetchOne(),i.value=!1,o.value&&k()}async function k(){m.value=!0,c=E.getInstance(r.value),v.value=0,p.value=await q()??[]}async function S(){const e=await q()??[];p.value=p.value.concat(e)}async function q(){m.value=!0,h.value="";try{const e={offset:v.value,limit:l},t=await(c?.fetchGraphs(e));return v.value=v.value+l,f.value=(t?.length??0)>=l,t}catch(e){return h.value=e.toString(),[]}finally{m.value=!1}}function A(){r.value.prefixes.push({prefix:"",namespace:""})}function V(e){r.value.prefixes.splice(e,1)}function _(){i.value=!0,c=null}return(0,s.bv)((async()=>{null!==a.settings.sparqlEndpoint&&await k()})),(e,t)=>((0,s.wg)(),(0,s.iD)("div",Dt,[(0,s._)("div",Ct,[It,(0,s._)("p",Tt,[(0,s._)("button",{type:"button",class:"button is-light",onClick:w,title:"Close"},[(0,s.Wm)((0,u.SU)(U.Z),{class:"icon"})])])]),(0,s._)("form",Ot,[(0,s._)("div",Lt,[zt,(0,s._)("p",Pt,[(0,s.wy)((0,s._)("input",{id:"endpoint",type:"text",class:"input","onUpdate:modelValue":t[0]||(t[0]=e=>r.value.sparqlEndpoint=e),onBlur:y,onFocusin:_},null,544),[[n.nr,r.value.sparqlEndpoint]]),i.value?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("span",Nt,[o.value?((0,s.wg)(),(0,s.j4)((0,u.SU)(ct.Z),{key:0,class:"icon",style:{color:"green"}})):(0,s.kq)("",!0),o.value?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)((0,u.SU)(U.Z),{key:1,class:"icon",style:{color:"red"}}))]))])]),(0,s._)("div",Kt,[Rt,(0,s.wy)((0,s._)("input",{id:"username",type:"text",class:"input","onUpdate:modelValue":t[1]||(t[1]=e=>r.value.username=e),onBlur:b},null,544),[[n.nr,r.value.username]])]),(0,s._)("div",Ft,[Mt,(0,s.wy)((0,s._)("input",{id:"password",type:"password",class:"input","onUpdate:modelValue":t[2]||(t[2]=e=>r.value.password=e),onBlur:b},null,544),[[n.nr,r.value.password]])]),(0,s._)("div",{class:(0,d.C_)(["field",h.value?"is-danger":""])},[Xt,(0,s.Wm)(Vt,{id:"graph",modelValue:r.value.namedGraph,"onUpdate:modelValue":t[3]||(t[3]=e=>r.value.namedGraph=e),graphs:p.value,loading:m.value,"has-more-graphs":f.value,onFetchMore:S},null,8,["modelValue","graphs","loading","has-more-graphs"])],2),(0,s._)("div",Bt,[h.value?((0,s.wg)(),(0,s.iD)("div",Gt,[(0,s._)("div",Qt,(0,d.zw)(h.value),1)])):(0,s.kq)("",!0)]),(0,s._)("div",Jt,[Yt,(0,s._)("div",$t,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.value.prefixes,((e,t)=>((0,s.wg)(),(0,s.iD)("div",{key:t,class:"flex gap-1"},[(0,s.wy)((0,s._)("input",{type:"text","onUpdate:modelValue":t=>e.prefix=t,placeholder:"schema",class:"input w-24",required:""},null,8,ea),[[n.nr,e.prefix]]),(0,s.wy)((0,s._)("input",{type:"text","onUpdate:modelValue":t=>e.namespace=t,placeholder:"http://schema.org/",class:"input flex-grow",required:""},null,8,ta),[[n.nr,e.namespace]]),(0,s._)("button",{type:"button",class:"button is-white",title:"Remove prefix",onClick:e=>V(t)},[(0,s.Wm)((0,u.SU)(ut.Z),{class:"icon"})],8,aa)])))),128)),0===r.value.prefixes.length?((0,s.wg)(),(0,s.iD)("p",na," No custom prefix ")):(0,s.kq)("",!0),(0,s._)("p",null,[(0,s._)("button",{type:"button",class:"button is-white",title:"Add prefix",onClick:A},[(0,s.Wm)((0,u.SU)(dt.Z),{class:"icon"})])])])]),(0,s._)("div",sa,[(0,s._)("label",la,[(0,s.Wm)(Ht,{modelValue:r.value.forceIntrospection,"onUpdate:modelValue":t[4]||(t[4]=e=>r.value.forceIntrospection=e)},null,8,["modelValue"]),(0,s.Uk)(" Force introspection ")]),ra]),(0,s._)("div",{class:"field"},[(0,s._)("button",{class:"button is-primary",type:"submit",onClick:g},"Load")])])]))}});const ca=ia;var ua=ca,da=a(29434),pa=a(32950);const fa={class:"card h-full flex flex-col"},ma={class:"card-header has-background-light"},ha={class:"card-header-title"},va={key:0},ga={key:1},wa={class:"card-header-icon py-0 px-1"},ya={class:"card-content h-full p-0 overflow-auto flex flex-col"},ba={key:0,class:"table is-fullwidth mb-0"},xa=(0,s._)("th",null,"URI",-1),ka={class:"border-b"},Sa={class:"flex items-center"},Ea={class:"sticky bottom-0"},qa={class:"bg-gray-50"},Aa=["colspan"],Ua={class:"flex items-center gap-2"},Va=["disabled"],_a={key:1,class:"flex-grow flex justify-center items-center"},Wa={key:2,class:"message is-danger"},Za={class:"message-body"},ja={name:"TableExplorer"};var Ha=(0,s.aZ)({...ja,props:{table:{},tables:{}},emits:["close","explore-resource"],setup(e,{emit:t}){const a=e,l=E.getInstance(),r=(0,u.iH)([]),o=(0,u.iH)(null),i=(0,u.iH)(!1),c=10,p=(0,u.iH)(1),f=async()=>{if(r.value=[],o.value=null,!a.table)return;const e=(p.value-1)*c,t=c;i.value=!0;try{l&&(r.value=await l.fetchTableData(a.table,{offset:e,limit:t}))}catch(n){o.value=n,console.error(n)}finally{i.value=!1}};(0,s.YP)((()=>a.table),((e,t)=>{m(1)}));const m=e=>{p.value=e,f()};return(0,s.bv)((()=>{m(1)})),(e,t)=>((0,s.wg)(),(0,s.iD)("div",fa,[(0,s._)("div",ma,[(0,s._)("h3",ha,[e.table?((0,s.wg)(),(0,s.iD)("span",va,(0,d.zw)(e.table.name),1)):((0,s.wg)(),(0,s.iD)("span",ga,"No table selected"))]),(0,s._)("p",wa,[(0,s._)("button",{class:"button is-light",onClick:t[0]||(t[0]=t=>e.$emit("close")),title:"Close"},[(0,s.Wm)((0,u.SU)(U.Z),{class:"icon"})])])]),(0,s._)("div",ya,[e.table?((0,s.wg)(),(0,s.iD)("table",ba,[(0,s._)("thead",null,[(0,s._)("tr",null,[xa,((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.table.properties,((e,t)=>((0,s.wg)(),(0,s.iD)("th",{key:t},(0,d.zw)(e.name),1)))),128))])]),(0,s._)("tbody",ka,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.value,((a,n)=>((0,s.wg)(),(0,s.iD)("tr",{key:n},[(0,s._)("td",null,[(0,s._)("p",Sa,[(0,s.Wm)(Me,{term:a.term,endpoint:(0,u.SU)(l)},null,8,["term","endpoint"]),(0,s.Wm)(Je,{term:a.term,onExploreResource:t[1]||(t[1]=t=>e.$emit("explore-resource",t))},null,8,["term"])])]),((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.table.properties,((n,r)=>((0,s.wg)(),(0,s.iD)("td",{key:r},[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(a[n.id]||[],((a,n)=>((0,s.wg)(),(0,s.iD)("p",{class:"flex items-center",key:n},[(0,s.Wm)(Me,{term:a,endpoint:(0,u.SU)(l)},null,8,["term","endpoint"]),(0,s.Wm)(Je,{term:a,onExploreResource:t[2]||(t[2]=t=>e.$emit("explore-resource",t))},null,8,["term"])])))),128))])))),128))])))),128))]),(0,s.wy)((0,s._)("tfoot",Ea,[(0,s._)("tr",qa,[(0,s._)("td",{colspan:1+e.table.properties.length},[(0,s._)("div",Ua,[(0,s._)("button",{class:"button px-2",disabled:1===p.value,onClick:t[3]||(t[3]=e=>m(p.value-1))},[(0,s.Wm)((0,u.SU)(da.Z),{class:"w-5 h-5"})],8,Va),(0,s._)("span",null,"Page "+(0,d.zw)(p.value),1),(0,s._)("button",{class:"button px-2",onClick:t[4]||(t[4]=e=>m(p.value+1))},[(0,s.Wm)((0,u.SU)(pa.Z),{class:"w-5 h-5"})])])],8,Aa)])],512),[[n.F8,!i.value]])])):(0,s.kq)("",!0),i.value?((0,s.wg)(),(0,s.iD)("div",_a,[(0,s.Wm)(xt)])):(0,s.kq)("",!0),o.value?((0,s.wg)(),(0,s.iD)("div",Wa,[(0,s._)("div",Za," Error loading data: "+(0,d.zw)(o.value),1)])):(0,s.kq)("",!0)])]))}});const Da=Ha;var Ca=Da,Ia=a(16391),Ta=a(56643),Oa=a(759);const La={class:"panel-block is-justify-content-space-between"},za={style:{"flex-grow":"1","overflow-x":"clip","text-overflow":"ellipsis"}},Pa={style:{"flex-grow":"0"},class:"badge"},Na={name:"TableListItem"};var Ka=(0,s.aZ)({...Na,props:{table:{}},emits:["toggle-table","select-viewport"],setup(e,{emit:t}){const a=e,n=(0,s.Fl)((()=>{const e=a.table.count??0;return e>1e3&&e<1e6?l(e/1e3,1)+"K":e>1e6?l(e/1e6,1)+"M":`${e}`}));function l(e,t){const a=Math.pow(10,t||0);return Math.round(e*a)/a}return(e,t)=>((0,s.wg)(),(0,s.iD)("div",La,[(0,s._)("span",za,(0,d.zw)(e.table.name),1),(0,s.Wm)(I.Z,{label:"Instances"},{default:(0,s.w5)((()=>[(0,s._)("div",Pa,(0,d.zw)(n.value),1)])),_:1}),(0,s.Wm)(Ht,{style:{"flex-grow":"0"},modelValue:e.table.isShown,"onUpdate:modelValue":t[0]||(t[0]=t=>e.$emit("toggle-table",e.table,t))},null,8,["modelValue"])]))}});const Ra=(0,B.Z)(Ka,[["__scopeId","data-v-1d718848"]]);var Fa=Ra;const Ma={class:"card is-shadowless overflow-y-auto"},Xa={class:"card-header has-background-light"},Ba=(0,s._)("h3",{class:"card-header-title"},"Classes",-1),Ga={class:"card-header-icon py-0 px-1"},Qa={class:"card-content px-0 py-1"},Ja={class:"field m-0 px-2 py-2 border-b flex flex-wrap justify-end items-center gap-2"},Ya=(0,s._)("label",{class:"label m-0",for:"predefined-views"},"Predefined views",-1),$a={class:"select"},en=(0,s._)("option",{value:""},"-",-1),tn=["value"],an={class:"panel-block is-justify-content-space-between"},nn={style:{"flex-grow":"1",display:"flex","flex-direction":"row","align-items":"center"}},sn={name:"TableList"};var ln=(0,s.aZ)({...sn,props:{datamodel:{}},emits:["toggle-table","select-viewport","close"],setup(e,{emit:t}){const a=e,l=(0,u.iH)(!0),r=(0,u.iH)(!1),o=(0,u.iH)(""),i=(0,u.iH)(a.datamodel.tables);(0,s.bv)((()=>{i.value=i.value.sort(((e,t)=>(t.count??0)-(e.count??0)))})),(0,s.YP)(o,((e,t)=>{r.value?i.value=a.datamodel.tables.filter((t=>t.name.toLocaleLowerCase().indexOf(e.toLocaleLowerCase())>-1)).sort(((e,t)=>(e.count??0)-(t.count??0))):i.value=a.datamodel.tables.filter((t=>t.name.toLocaleLowerCase().indexOf(e.toLocaleLowerCase())>-1)).sort(((e,t)=>(t.count??0)-(e.count??0)))})),(0,s.YP)(r,((e,t)=>{i.value=e?a.datamodel.tables.filter((e=>e.name.toLocaleLowerCase().indexOf(o.value.toLocaleLowerCase())>-1)).sort(((e,t)=>(e.count??0)-(t.count??0))):a.datamodel.tables.filter((e=>e.name.toLocaleLowerCase().indexOf(o.value.toLocaleLowerCase())>-1)).sort(((e,t)=>(t.count??0)-(e.count??0)))}));const c=e=>{const n=e.target.value,s=a.datamodel.viewports.find((e=>e.id===n))??null;t("select-viewport",s)};function p(){r.value=!r.value}const f=e=>{l.value=e,a.datamodel.tables.forEach((t=>{t.isShown=e}))};return(e,t)=>((0,s.wg)(),(0,s.iD)("div",Ma,[(0,s._)("div",Xa,[Ba,(0,s._)("p",Ga,[(0,s._)("button",{class:"button is-light",onClick:t[0]||(t[0]=t=>e.$emit("close"))},[(0,s.Wm)((0,u.SU)(U.Z),{class:"icon"})])])]),(0,s._)("div",Qa,[(0,s.wy)((0,s._)("div",Ja,[Ya,(0,s._)("div",$a,[(0,s._)("select",{id:"predefined-views",onInput:c},[en,((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.datamodel.viewports,(e=>((0,s.wg)(),(0,s.iD)("option",{key:e.id,value:e.id},(0,d.zw)(e.name),9,tn)))),128))],32)])],512),[[n.F8,e.datamodel.viewports.length>0]]),(0,s._)("ul",null,[(0,s._)("li",an,[(0,s._)("div",nn,[(0,s.Wm)((0,u.SU)(Ia.Z),{class:"icon",style:{"margin-right":"5px"}}),(0,s.wy)((0,s._)("input",{type:"text",class:"input","onUpdate:modelValue":t[1]||(t[1]=e=>o.value=e)},null,512),[[n.nr,o.value]])]),(0,s._)("button",{onClick:p,style:{"flex-grow":"0","margin-left":"5px","margin-right":"5px",width:"35px"}},[r.value?((0,s.wg)(),(0,s.j4)((0,u.SU)(Ta.Z),{key:0,class:"icon"})):(0,s.kq)("",!0),r.value?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)((0,u.SU)(Oa.Z),{key:1,class:"icon"}))]),(0,s.Wm)(Ht,{style:{"flex-grow":"0"},modelValue:l.value,"onUpdate:modelValue":f},null,8,["modelValue"])]),((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(i.value,(t=>((0,s.wg)(),(0,s.j4)(Fa,{key:t.id,table:t,onToggleTable:a=>e.$emit("toggle-table",t,a)},null,8,["table","onToggleTable"])))),128))])])]))}});const rn=ln;var on=rn,cn=a(59683),un=a(29765);const dn={href:"https://github.com/zazuko/SPEX",target:"_blank",rel:"noopener noreferer",title:"Github repository"},pn=(0,s._)("svg",{class:"w-5 h-5 opacity-100 dark:fill-white hover:opacity-70","aria-hidden":"true",viewBox:"0 0 16 16",version:"1.1","data-view-component":"true"},[(0,s._)("path",{"fill-rule":"evenodd",d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"})],-1),fn=[pn];function mn(e,t,a,n,l,r){return(0,s.wg)(),(0,s.iD)("a",dn,fn)}var hn={name:"GitHubLogo"};const vn=(0,B.Z)(hn,[["render",mn]]);var gn=vn;const wn={href:"https://zazuko.com",target:"_blank",rel:"noopener"},yn=(0,s.uE)('',1),bn=[yn];function xn(e,t,a,n,l,r){return(0,s.wg)(),(0,s.iD)("a",wn,bn)}var kn={name:"ZazukoLogo"};const Sn=(0,B.Z)(kn,[["render",xn]]);var En=Sn;const qn={width:"100%",height:"100%",viewBox:"0 0 284 284",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","xml:space":"preserve","xmlns:serif":"http://www.serif.com/",style:{"fill-rule":"evenodd","clip-rule":"evenodd","stroke-linejoin":"round","stroke-miterlimit":"2",fill:"rgba(0,0,0,0.3)"}},An=(0,s.uE)('',4),Un=[An];function Vn(e,t,a,n,l,r){return(0,s.wg)(),(0,s.iD)("svg",qn,Un)}var _n={name:"SpexLogo"};const Wn=(0,B.Z)(_n,[["render",Vn]]);var Zn=Wn;const jn={class:"z-10 py-1 shadow-sm flex justify-between items-center",style:{"background-color":"rgba(0,0,0,0.1)"}},Hn={class:"flex flex-row ml-2 items-center gap-3"},Dn=(0,s._)("h1",{class:"py-2 text-2xl text-black dark:text-white font-bold font-title"}," SPEX ",-1),Cn={class:"flex flex-row items-center gap-3"},In={key:0},Tn={key:1},On={key:0,class:"flex flex-row items-center mr-2"},Ln=(0,s._)("div",{style:{height:"15px","border-left":"1px solid","margin-left":"6px","margin-right":"8px",width:"1px"}},null,-1),zn={key:1},Pn={name:"SpexHeader"};var Nn=(0,s.aZ)({...Pn,props:{isSettingsEditorShown:{type:Boolean},sparqlEndpointUrl:{}},emits:["toggle-settings-editor","toggle-prefix-help"],setup(e,{emit:t}){const a=e;function n(){t("toggle-settings-editor",!a.isSettingsEditorShown)}function l(){t("toggle-prefix-help")}return(e,t)=>((0,s.wg)(),(0,s.iD)("div",jn,[(0,s._)("div",Hn,[(0,s.Wm)(Zn,{style:{width:"30px",height:"30px"}}),Dn]),(0,s._)("div",Cn,[(0,s._)("button",{class:"button is-white dark:is-dark flex items-center gap-1",title:"Options",onClick:n},[(0,s._)("h2",null,[e.sparqlEndpointUrl?((0,s.wg)(),(0,s.iD)("span",In,(0,d.zw)(e.sparqlEndpointUrl),1)):((0,s.wg)(),(0,s.iD)("span",Tn,"No endpoint configured yet"))]),(0,s.Wm)((0,u.SU)(cn.Z),{class:"icon"})]),(0,s._)("button",{class:"button is-white dark:is-dark",title:"Prefix Zazuko",onClick:l},[(0,s.Wm)((0,u.SU)(un.Z),{class:"icon"})])]),e.isSettingsEditorShown?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",On,[(0,s.Wm)(En),Ln,(0,s.Wm)(gn)])),e.isSettingsEditorShown?((0,s.wg)(),(0,s.iD)("div",zn)):(0,s.kq)("",!0)]))}});const Kn=Nn;var Rn=Kn,Fn=a(79582),Mn=a(91296),Xn=a.n(Mn);class Bn{constructor(e){(0,m.Z)(this,"_type",void 0),(0,m.Z)(this,"_comment",void 0),(0,m.Z)(this,"_serverResponseItem",void 0),this._serverResponseItem=e,this._type=e.parts.filter((e=>"rdf:type"===e.predicate))[0]?.object??"";const t=e.parts.filter((e=>"rdfs:comment"===e.predicate));if(t.length<2)this._comment=Gn(t[0]?.object??"no comment");else{const e=t.filter((e=>"en"===e.object.language));1===e.length?this._comment=Gn(e[0]?.object??"no comment"):this._comment="no comment"}}get type(){return this._type}get avatar(){const e=this.type.split(":");return e.length<2?"NT":(e[0].charAt(0)+e[1].charAt(0)).toUpperCase()}get itemText(){return this._serverResponseItem.itemText}get ontologyTitle(){return this._serverResponseItem.ontologyTitle}get label(){return this._serverResponseItem.label}get splitA(){return this._serverResponseItem.prefixedSplitA}get splitB(){return this._serverResponseItem.prefixedSplitB}get comment(){return this._comment}get parts(){return this._serverResponseItem.parts}}function Gn(e){return"string"===typeof e?e:e.datatype&&"http://www.w3.org/2001/XMLSchema#string"===e.datatype.value||e.datatype&&"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"===e.datatype.value?e.value:""}const Qn={class:"avatar"},Jn={class:"card-text"},Yn={class:"card-title"},$n={class:"card-comment"},es={name:"PrefixZazukoListItem"};var ts=(0,s.aZ)({...es,props:{item:{}},emits:["item-selected"],setup(e,{emit:t}){const a=e;return(e,t)=>((0,s.wg)(),(0,s.iD)("div",{class:"card",onClick:t[0]||(t[0]=t=>e.$emit("item-selected",a.item))},[(0,s.Wm)(I.Z,{label:a.item.type},{default:(0,s.w5)((()=>[(0,s._)("div",Qn,(0,d.zw)(a.item.avatar),1)])),_:1},8,["label"]),(0,s._)("div",Jn,[(0,s._)("div",Yn,(0,d.zw)(a.item.itemText),1),(0,s._)("div",$n,(0,d.zw)(a.item.comment),1)])]))}});const as=(0,B.Z)(ts,[["__scopeId","data-v-196aa4f4"]]);var ns=as;const ss={name:"PrefixZazukoList"};var ls=(0,s.aZ)({...ss,props:{items:{}},emits:["item-selected"],setup(e,{emit:t}){const a=e;function n(e){t("item-selected",e)}return(e,t)=>((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(a.items,(e=>((0,s.wg)(),(0,s.j4)(ns,{key:e.itemText,item:e,onItemSelected:n},null,8,["item"])))),128))}});const rs=ls;var os=rs;const is=["item"],cs={name:"PrefixZazukoDetail"};var us=(0,s.aZ)({...cs,props:{item:{}},emits:["item-selected"],setup(e,{emit:t}){const a=e;return(e,t)=>((0,s.wg)(),(0,s.iD)("table",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(a.item.parts,(e=>((0,s.wg)(),(0,s.iD)("tr",{key:e.predicate,item:e},[(0,s._)("th",null,(0,d.zw)((0,u.SU)(Gn)(e.predicate)),1),(0,s._)("td",null,(0,d.zw)((0,u.SU)(Gn)(e.object)),1)],8,is)))),128))]))}});const ds=(0,B.Z)(us,[["__scopeId","data-v-3afac95e"]]);var ps=ds;const fs={class:"card is-shadowless h-full overflow-y-auto"},ms={class:"card-header has-background-light"},hs=(0,s._)("h3",{class:"card-header-title"},"Resolve RDF Terms",-1),vs={class:"card-header-icon py-0 px-1"},gs={key:0,style:{padding:"21px"}},ws={class:"field"},ys=(0,s._)("div",{class:"flex flex-row"},[(0,s._)("label",{class:"label",for:"prefix"},"Prefix"),(0,s.Uk)("   ("),(0,s._)("a",{target:"_blank",href:"https://prefix.zazuko.com/"},"prefix.zazuko.com"),(0,s.Uk)(") ")],-1),bs={key:1,style:{padding:"21px"}},xs={class:"flex flex-row items-center mb-4"},ks={style:{display:"flex","flex-direction":"column"},class:"pl-4"},Ss={class:"title mb-0"},Es={name:"PrefixHelp"};var qs=(0,s.aZ)({...Es,props:{searchString:{}},emits:["close"],setup(e,{emit:t}){const a=e,l=(0,u.iH)(a.searchString),r=(0,u.iH)([]),o=(0,u.iH)(null);async function i(e){const t="https://prefix.zazuko.com/api/v1/search",a=`q=${encodeURIComponent(e)}`,n=await fetch(t+"?"+a),s=await n.json(),l=s.map((e=>new Bn(e)));r.value=l}function c(){t("close")}function p(e){o.value=e}function f(){o.value=null}return(0,s.YP)(l,Xn()((e=>{i(e)}),300)),(e,t)=>((0,s.wg)(),(0,s.iD)("div",fs,[(0,s._)("div",ms,[hs,(0,s._)("p",vs,[(0,s._)("button",{type:"button",class:"button is-light",onClick:c,title:"Close"},[(0,s.Wm)((0,u.SU)(U.Z),{class:"icon"})])])]),null===o.value?((0,s.wg)(),(0,s.iD)("div",gs,[(0,s._)("div",ws,[ys,(0,s.wy)((0,s._)("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),placeholder:"Start typing to search... eg. sh:name",class:"input",required:""},null,512),[[n.nr,l.value]])]),(0,s.Wm)(os,{items:r.value,onItemSelected:p},null,8,["items"])])):(0,s.kq)("",!0),null!==o.value?((0,s.wg)(),(0,s.iD)("div",bs,[(0,s._)("div",xs,[(0,s._)("button",{class:"flex flex-grow-0",onClick:f},[(0,s.Wm)((0,u.SU)(Fn.Z),{class:"icon"})]),(0,s._)("div",ks,[(0,s._)("h1",Ss,(0,d.zw)(o.value.splitA)+":"+(0,d.zw)(o.value.splitB),1),(0,s._)("div",null,(0,d.zw)(o.value.type),1)])]),(0,s.Wm)(ps,{item:o.value},null,8,["item"])])):(0,s.kq)("",!0)]))}});const As=qs;var Us=As;const Vs={class:"z-10 absolute m-3"},_s=(0,s._)("span",null,"Classes",-1),Ws={class:"z-10 absolute bottom-2 left-2 text-sm bg-gray-50 dark:bg-gray-700 flex items-center gap-2"},Zs={class:"bg-light dark:bg-dark flex-grow flex items-center"},js={key:0,class:"m-auto"},Hs={key:1,class:"section"},Ds={class:"message is-danger"},Cs={class:"message-body"},Is={name:"SpexMain"};var Ts=(0,s.aZ)({...Is,props:{settings:{}},emits:["settingsChanged"],setup(e,{emit:t}){const a=e,l=(0,u.iH)(""),r=(0,u.iH)(!1),o=E.getInstance(a.settings),i=(0,s.Fl)((()=>y.value.length>0));(0,s.YP)((()=>a.settings),(e=>{(e.sparqlEndpoint?.length??0)>0?(c.value=!1,K(e)):c.value=!0})),(0,s.bv)((async()=>{a.settings.sparqlEndpoint?await K(a.settings):c.value=!0}));const c=(0,u.iH)(!1),m=(0,u.iH)(!1),h=(0,u.iH)(!1),v=(0,u.iH)(!1),g=(0,u.iH)(!1),w=(0,u.iH)(null),y=(0,u.iH)([]),x=(0,u.iH)(null),k=(0,u.iH)(!1),S=(0,u.iH)(null);function q(){r.value=!r.value}function A(){r.value=!1}function U(e){c.value="undefined"!==typeof e?e:!c.value}function V(e){_(e),y.value.push(e)}function _(e){y.value=y.value.filter((t=>t.id!==e.id))}function W(){y.value=[]}function Z(e){e.isShown=!e.isShown}function j(e){const t=e?e.tables:new Set(x.value?.tables.map((({id:e})=>e)));x.value?.tables.forEach((e=>{t.has(e.id)?e.isShown=!0:e.isShown=!1}))}function H(){h.value=!0}function D(){h.value=!1}function C(){m.value=!1}function I(){w.value=null,m.value=!1}function T(){v.value=!0}function O(){g.value=!0}function L(e){x.value=e}function z(){v.value=!1}function P(){g.value=!1}async function N(){I(),S.value=null,k.value=!0,x.value=null;try{x.value=await o.fetchDataModel()}catch(e){S.value=e,U(!0),console.error(e)}finally{k.value=!1}}async function K(e){o.applySettings(e),await N()}function R(e){m.value=!0,w.value=e}async function F(e){const t=o.dataModelToSHACL(x.value).namedNode(e.id).in(b.sh.targetClass),a=t.value,n=t.out(b.sh.targetClass).value;let s=`_:${a} a ;`;s+=`\n\t<${b.sh.targetClass.value}> <${n}> ;`;const l=t.out(b.sh.property);l.values.length>0&&(s+=`\n\t<${b.sh.property.value}> `,l.toArray().forEach(((e,t)=>{s+="\n\t\t[";const a=e.out(b.E_.type).value,n=e.out(b.sh.path).value,r=e.out(b.sh.class).value,o=e.out(b.sh.datatype).value,i=e.out(b.sh.or);let c=`\t\t\t<${b.E_.type}> <${a}> ;\n\t\t\t <${n}> ;\n`;if(c+=r?`\t\t\t <${r}> ;\n`:"",c+=o?`\t\t\t <${o}> ;\n`:"",i.values.length>0){let e="\t\t\t (\n";const t=i.list(),a=null===t?[]:[...t];a.forEach((t=>{const a=[];t.dataset.match(t.term,null,null,null).filter((e=>!(e.predicate.equals(b.E_.last)||e.predicate.equals(b.E_.last)||e.predicate.equals(b.E_.nil)))).forEach((e=>a.push(`\t\t\t\t\t<${e.predicate.value}> <${e.object.value}> ;`))),e+=`\t\t\t\t[\n${a.join(" \n")}`,e+=" \n\t\t\t\t]\n"})),c+=`${e}`,c+="\t\t\t) \n"}s+=`\n${c}\t\t] ${t===l.values.length-1?".":","}`}))),await navigator.clipboard.writeText(s)}function M(e){t("settingsChanged",e)}return(e,t)=>((0,s.wg)(),(0,s.j4)((0,u.SU)(f.F),{class:"default-theme flex-grow overflow-hidden"},{default:(0,s.w5)((()=>[(0,s.Wm)((0,u.SU)(f.X),null,{default:(0,s.w5)((()=>[(0,s.Wm)((0,u.SU)(f.F),{horizontal:"",class:"h-full"},{default:(0,s.w5)((()=>[(0,s.Wm)((0,u.SU)(f.X),{class:"flex flex-col bg-light dark:bg-dark"},{default:(0,s.w5)((()=>[(0,s.Wm)(Rn,{isSettingsEditorShown:c.value,sparqlEndpointUrl:(0,u.SU)(o).sparqlEndpoint,onToggleSettingsEditor:U,onTogglePrefixHelp:q},null,8,["isSettingsEditorShown","sparqlEndpointUrl"]),x.value?((0,s.wg)(),(0,s.j4)((0,u.SU)(f.F),{key:0,vertical:"",class:"overflow-hidden"},{default:(0,s.w5)((()=>[h.value?((0,s.wg)(),(0,s.j4)((0,u.SU)(f.X),{key:0,size:"30"},{default:(0,s.w5)((()=>[(0,s.Wm)(on,{datamodel:x.value,onToggleTable:Z,onSelectViewport:j,onClose:D},null,8,["datamodel"])])),_:1})):(0,s.kq)("",!0),(0,s.Wm)((0,u.SU)(f.X),{class:"relative h-full"},{default:(0,s.w5)((()=>[(0,s._)("div",Vs,[(0,s.wy)((0,s._)("button",{class:"button",onClick:H},[(0,s.Wm)((0,u.SU)(p.Z),{class:"icon"}),_s],512),[[n.F8,!h.value]])]),(0,s.Wm)(Le,{datamodel:x.value,onExplore:R,onExport:F,onToggleShape:Z},{default:(0,s.w5)((()=>[(0,s.wy)((0,s._)("p",Ws,[(0,u.SU)(o)&&!S.value?((0,s.wg)(),(0,s.iD)("button",{key:0,class:"button is-white is-small",onClick:T}," SHACL ")):(0,s.kq)("",!0)],512),[[n.F8,!(m.value||i.value)]])])),_:1},8,["datamodel"])])),_:1}),r.value?((0,s.wg)(),(0,s.j4)((0,u.SU)(f.X),{key:1,size:"30"},{default:(0,s.w5)((()=>[(0,s.Wm)(Us,{onClose:A,"search-string":l.value},null,8,["search-string"])])),_:1})):(0,s.kq)("",!0)])),_:1})):(0,s.kq)("",!0),(0,s._)("div",Zs,[k.value?((0,s.wg)(),(0,s.iD)("div",js,[(0,s.Wm)(xt)])):(0,s.kq)("",!0)]),S.value?((0,s.wg)(),(0,s.iD)("div",Hs,[(0,s._)("div",Ds,[(0,s._)("div",Cs," Error loading data: "+(0,d.zw)(S.value),1)])])):(0,s.kq)("",!0)])),_:1}),m.value||i.value?((0,s.wg)(),(0,s.j4)((0,u.SU)(f.X),{key:0},{default:(0,s.w5)((()=>[(0,s.Wm)((0,u.SU)(f.F),{vertical:""},{default:(0,s.w5)((()=>[m.value?((0,s.wg)(),(0,s.j4)((0,u.SU)(f.X),{key:0},{default:(0,s.w5)((()=>[(0,s.Wm)(Ca,{table:w.value,onClose:C,onExploreResource:V},null,8,["table"])])),_:1})):(0,s.kq)("",!0),i.value?((0,s.wg)(),(0,s.j4)((0,u.SU)(f.X),{key:1},{default:(0,s.w5)((()=>[(0,s.Wm)(it,{resources:y.value,onClose:W,onExploreResource:V,onUnexploreResource:_},null,8,["resources"])])),_:1})):(0,s.kq)("",!0)])),_:1})])),_:1})):(0,s.kq)("",!0)])),_:1})])),_:1}),c.value?((0,s.wg)(),(0,s.j4)((0,u.SU)(f.X),{key:0,size:"30"},{default:(0,s.w5)((()=>[(0,s.Wm)(ua,{settings:e.settings,onSettingsChanged:M,onClose:U},null,8,["settings"])])),_:1})):(0,s.kq)("",!0),v.value&&null!==x.value?((0,s.wg)(),(0,s.j4)(Q,{key:1,open:v.value,onClose:z,endpoint:(0,u.SU)(o),datamodel:x.value,onOpenLoadShacl:O},null,8,["open","endpoint","datamodel"])):(0,s.kq)("",!0),g.value?((0,s.wg)(),(0,s.j4)(ce,{key:2,open:g.value,onClose:P,endpoint:(0,u.SU)(o),load:L},null,8,["open","endpoint"])):(0,s.kq)("",!0)])),_:1}))}});const Os=Ts;var Ls=Os;const zs="settings",Ps="spex.zazuko.com.settings";class Ns{constructor(){(0,m.Z)(this,"settingsObject",{sparqlEndpoint:null,username:null,password:null,namedGraph:null,prefixes:[],forceIntrospection:!1}),this._migrateLegacyConfig(),this._readSettingsFromLocalStorage()}mergeSettingsWithUrlSettings(e){this.sparqlEndpoint!==e.sparqlEndpoint&&(this.password=null,this.username=null),this.sparqlEndpoint=e.sparqlEndpoint,this.namedGraph=e.namedGraph,this.prefixes=e.prefixes,this.forceIntrospection=e.forceIntrospection,this.storeSettings()}_readSettingsFromLocalStorage(){Object.keys(this.settingsObject).forEach((e=>{const t=localStorage.getItem(`${Ps}.${e}`);if(null===t)return;if("forceIntrospection"===e){const e=JSON.parse(t);if("boolean"!==typeof e)return;this.settingsObject.forceIntrospection=e}if("prefixes"===e){const e=JSON.parse(t);return void(Array.isArray(e)&&this._isPrefixArray(e)&&(this.settingsObject.prefixes=e))}const a=JSON.parse(t);"string"!==typeof a&&null!==a||(this.settingsObject[e]=a)}))}_migrateLegacyConfig(){const e=localStorage.getItem(zs);if(null===e)return;const t=JSON.parse(e);if(null===t.url)return localStorage.removeItem(zs),void this.storeSettings();"string"===typeof t.url&&(this.settingsObject.sparqlEndpoint=t.url),"string"===typeof t.user&&(this.settingsObject.username=t.user),"string"===typeof t.password&&(this.settingsObject.password=t.password),"string"===typeof t.graph&&(this.settingsObject.namedGraph=t.graph),Array.isArray(t.prefixes)&&this._isLegacyPrefixArray(t.prefixes)&&(this.settingsObject.prefixes=t.prefixes.map((e=>({prefix:e.prefix,namespace:e.url})))),"boolean"===typeof t.forceIntrospection&&(this.settingsObject.forceIntrospection=t.forceIntrospection),this.storeSettings()}storeSettings(){Object.keys(this.settingsObject).forEach((e=>{localStorage.setItem(`${Ps}.${e}`,JSON.stringify(this.settingsObject[e]))}))}_isStringsArray(e){return e.every((e=>"string"===typeof e))}_isPrefixArray(e){return e.every((e=>"string"===typeof e.prefix&&"string"===typeof e.namespace))}_isLegacyPrefixArray(e){return e.every((e=>"string"===typeof e.prefix&&"string"===typeof e.url))}get sparqlEndpoint(){return this.settingsObject.sparqlEndpoint}set sparqlEndpoint(e){null===e&&(this.settingsObject.username=null,this.settingsObject.password=null,this.settingsObject.namedGraph=null),this.settingsObject.sparqlEndpoint=e}get password(){return this.settingsObject.password}set password(e){this.settingsObject.password=e}get username(){return this.settingsObject.username}set username(e){this.settingsObject.username=e}get prefixes(){return this.settingsObject.prefixes}set prefixes(e){this.settingsObject.prefixes=e}get namedGraph(){return this.settingsObject.namedGraph}set namedGraph(e){this.settingsObject.namedGraph=e}get forceIntrospection(){return this.settingsObject.forceIntrospection}set forceIntrospection(e){this.settingsObject.forceIntrospection=e}toJson(){return JSON.stringify(this.settingsObject,null,4)}}class Ks{static createUrlSettingFromQueryParams(e){const t=new Ks(null,null,[],!1),a=e.sparqlEndpoint;if(!a)return null;a&&"string"===typeof a&&(t.sparqlEndpoint=a);const n=e.namedGraph;n&&"string"===typeof n&&(t.namedGraph=n);const s=e.forceIntrospection;"boolean"===typeof s&&(t.forceIntrospection=s);const l=e.prefixes;return Array.isArray(l)&&(t.prefixes=l.map((e=>{const t=e?.split(":")[0],a=e?.substring((t?.length??0)+1);return t&&a?{prefix:t,namespace:a}:{prefix:"",namespace:""}})).filter((e=>e.prefix.length>0&&e.namespace.length>0))),t}constructor(e,t,a,n){(0,m.Z)(this,"_sparqlEndpoint",void 0),(0,m.Z)(this,"_namedGraph",void 0),(0,m.Z)(this,"_prefixes",void 0),(0,m.Z)(this,"_forceIntrospection",void 0),this._sparqlEndpoint=e,this._namedGraph=t,this._prefixes=a,this._forceIntrospection=n}get sparqlEndpoint(){return this._sparqlEndpoint}set sparqlEndpoint(e){this._sparqlEndpoint=e}get namedGraph(){return this._namedGraph}set namedGraph(e){this._namedGraph=e}get prefixes(){return this._prefixes}set prefixes(e){this._prefixes=e}get forceIntrospection(){return this._forceIntrospection}set forceIntrospection(e){this._forceIntrospection=e}toRouterQueryObject(){const e=this.prefixes.map((e=>`${e.prefix}:${e.namespace}`)),t={sparqlEndpoint:this.sparqlEndpoint,forceIntrospection:this.forceIntrospection,namedGraph:this.namedGraph,prefixes:e};return t}toJson(){return JSON.stringify({sparqlEndpoint:this.sparqlEndpoint,namedGraph:this.namedGraph,prefixes:this.prefixes,forceIntrospection:this.forceIntrospection},null,4)}}const Rs={name:"SpexOverview"};var Fs=(0,s.aZ)({...Rs,setup(e){const t=new Ns,a=(0,u.iH)(t),n=(0,c.tv)(),l=(0,c.yj)(),r=Ks.createUrlSettingFromQueryParams(l.query);if(null!==r)t.mergeSettingsWithUrlSettings(r),a.value=t;else if(t.sparqlEndpoint){const e=new Ks(t.sparqlEndpoint,t.namedGraph,t.prefixes,t.forceIntrospection);i(e.toRouterQueryObject())}function o(e){const t=new Ns;t.sparqlEndpoint=e.sparqlEndpoint,t.username=e.username,t.password=e.password,t.prefixes=e.prefixes,t.namedGraph=e.namedGraph,t.forceIntrospection=e.forceIntrospection,t.storeSettings(),a.value=t;const n=new Ks(t.sparqlEndpoint,t.namedGraph,t.prefixes,t.forceIntrospection);i(n.toRouterQueryObject())}async function i(e){try{await n.push({query:e})}catch(t){if(!(0,c.ES)(t,c.lB.duplicated))throw t}}return(e,t)=>((0,s.wg)(),(0,s.j4)(Ls,{settings:a.value,onSettingsChanged:o},null,8,["settings"]))}});const Ms=Fs;var Xs=Ms;const Bs=()=>a.e(668).then(a.bind(a,56668)),Gs=()=>a.e(335).then(a.bind(a,11335)),Qs=[{path:"/",name:"Overview",component:Xs},{path:"/shacl",name:"ShaclEditor",component:Bs},{path:"/rdf-editor",name:"RdfEditor",component:Gs}],Js=(0,c.p7)({history:(0,c.r5)("/"),routes:Qs});var Ys=Js,$s=a(95205);(0,$s.z)("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(e){console.log("New content is available please refresh."),document.dispatchEvent(new CustomEvent("swUpdated",{detail:e}))},offline(){console.log("No internet connection found. App is running in offline mode.")},error(e){console.error("Error during service worker registration:",e)}}),self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}));const el=(0,n.ri)(i);el.use(Ys).mount("#app")},58027:function(e,t,a){"use strict";a.d(t,{E_:function(){return l},It:function(){return i},fK:function(){return r},q1:function(){return n.Z},sh:function(){return o}});var n=a(2518),s=a(2363);n.Z.spex="https://described.at/spex/";const l=s.ZP.namespace(n.Z.rdf),r=s.ZP.namespace(n.Z.schema),o=s.ZP.namespace(n.Z.sh),i=s.ZP.namespace(n.Z.spex)},54803:function(e,t,a){"use strict";a.d(t,{NV:function(){return r},oV:function(){return c},zV:function(){return l}});var n=a(2363),s=a(58027);function l(e,t,a){const n=e.out(s.It.shape).has(s.E_.type,s.It.DefaultShapes),l=n.term?r(n.out(s.fK.hasPart),a):[],o=e.out(s.It.viewport).map((e=>({id:e.term.value,term:e.term,name:e.out(s.fK`name`,{language:t}).value,tables:new Set(e.out(s.It.includes).terms.map((({value:e})=>e)))})));return{tables:l,viewports:o,isIntrospected:!1}}function r(e,t){return e.toArray().flatMap((e=>{const a=e.out(s.sh.targetClass).term;if(!a)return[];const n=a.value,l=e.out(s.sh.property).toArray().flatMap((e=>{const a=e.out(s.sh.path).term;if(!a)return[];const n=a.value,l=o(e,t);return{id:n,name:t(n),values:l}}));return{id:n,name:t(n),properties:l,isShown:!0}}))}function o(e,t){const a=e.out(s.sh.datatype).terms.map((e=>i(e,t))),n=e.out(s.sh.class).terms.map((e=>i(e,t)));let l=[];const r=e.out(s.sh.or).list();return null!==r&&(l=[...r].flatMap((e=>o(e,t)))),[...a,...n,...l]}function i(e,t){return{id:e.value,name:t(e.value),termType:e.termType}}function c(e,t){const a=n.ZP.clownface({dataset:n.ZP.dataset(),term:n.ZP.namedNode(t)});return a.addOut(s.It.shape,(t=>{t.addOut(s.E_.type,s.It.DefaultShapes),e.tables.forEach((e=>{t.addOut(s.fK.hasPart,(t=>{t.addOut(s.E_.type,s.sh.NodeShape).addOut(s.sh.targetClass,n.ZP.namedNode(e.id)),e.properties.forEach((e=>{t.addOut(s.sh.property,(t=>{t.addOut(s.E_.type,s.sh.PropertyShape).addOut(s.sh.path,n.ZP.namedNode(e.id));const a=e=>"NamedNode"===e.termType?[s.sh.class,n.ZP.namedNode(e.id)]:[s.sh.datatype,n.ZP.namedNode(e.id)];if(1===e.values.length){const n=a(e.values[0]);t.addOut(n[0],n[1])}else e.values.length>1&&t.addList(s.sh.or,e.values.map((e=>{const n=a(e);return t.blankNode().addOut(n[0],n[1])})))}))}))}))}))})),a}},81407:function(e,t,a){"use strict";a.d(t,{Z:function(){return v}});var n=a(66252),s=a(3577),l=a(59540);const r={class:"font-bold"},o={class:"flex flex-nowrap"},i={class:"w-full"},c=["data-id","onMouseenter","onMouseleave"],u={class:"border-b dark:border-gray-500 px-3 py-2 text-gray-800 dark:text-gray-50"},d={class:"border-b dark:border-gray-500 px-3 py-2"},p={name:"ResourceCard"};var f=(0,n.aZ)({...p,props:{resource:{},activeLinks:{}},emits:["hover-title","unhover-title","hover-property","unhover-property"],setup(e,{emit:t}){const a=e;function p(e){e.stopPropagation()}const f=(0,n.Fl)((()=>a.activeLinks.some((e=>e.target===a.resource.id))));function m(e){return a.activeLinks.some((t=>t.source===a.resource.id&&t.sourceProperty===e.id))}return(e,t)=>((0,n.wg)(),(0,n.iD)("div",{class:(0,s.C_)(["border dark:border-gray-500 rounded shadow-md bg-white dark:bg-gray-800 opacity-90 text-sm",{active:f.value}])},[(0,n._)("header",{class:"bg-gray-100 dark:bg-gray-900 flex items-center gap-4 justify-between px-3 py-2",onMouseenter:t[0]||(t[0]=t=>e.$emit("hover-title",e.resource)),onMouseleave:t[1]||(t[1]=t=>e.$emit("unhover-title",e.resource))},[(0,n._)("h3",r,[(0,n.Wm)(l.Z,{label:e.resource.id},{default:(0,n.w5)((()=>[(0,n.Uk)((0,s.zw)(e.resource.name),1)])),_:1},8,["label"])]),(0,n._)("span",o,[(0,n.WI)(e.$slots,"actions")])],32),(0,n._)("table",i,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(e.resource.properties,((t,a)=>((0,n.wg)(),(0,n.iD)("tr",{key:a,"data-id":t.id,class:(0,s.C_)({active:m(t)}),onMouseenter:a=>e.$emit("hover-property",e.resource,t),onMouseleave:a=>e.$emit("unhover-property",e.resource,t)},[(0,n._)("th",u,[(0,n.Wm)(l.Z,{label:t.id},{default:(0,n.w5)((()=>[(0,n._)("span",{onMousedown:p},(0,s.zw)(t.name),33)])),_:2},1032,["label"])]),(0,n._)("td",d,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(t.values,(t=>((0,n.wg)(),(0,n.iD)("div",{key:t.id},[(0,n.WI)(e.$slots,"property-value",{value:t},(()=>[(0,n.Wm)(l.Z,{label:t.id},{default:(0,n.w5)((()=>[(0,n._)("span",{onMousedown:p},(0,s.zw)(t.name),33)])),_:2},1032,["label"])]))])))),128))])],42,c)))),128))])],2))}}),m=a(83744);const h=(0,m.Z)(f,[["__scopeId","data-v-348d8202"]]);var v=h},59540:function(e,t,a){"use strict";a.d(t,{Z:function(){return p}});var n=a(66252),s=a(3577);const l={class:"group inline-block relative"},r={key:0,class:"invisible group-hover:visible absolute z-10 bottom-full left-1/2 -translate-x-1/2 -translate-y-1 delay-300"},o={class:"bg-gray-800 text-white font-normal text-sm rounded py-1 px-3 whitespace-nowrap"},i=(0,n._)("svg",{class:"absolute h-3 w-full left-0 top-full fill-current text-gray-800",viewBox:"0 0 255 255"},[(0,n._)("polygon",{points:"0,0 127.5,127.5 255,0"})],-1),c={name:"SpexTooltip"};var u=(0,n.aZ)({...c,props:{label:{},position:{}},setup(e){return(e,t)=>((0,n.wg)(),(0,n.iD)("div",l,[e.label?((0,n.wg)(),(0,n.iD)("div",r,[(0,n._)("div",o,[(0,n.Uk)((0,s.zw)(e.label)+" ",1),i])])):(0,n.kq)("",!0),(0,n._)("div",null,[(0,n.WI)(e.$slots,"default")])]))}});const d=u;var p=d},87945:function(){},7716:function(){},53383:function(){},71156:function(){},56965:function(){},70147:function(){},52361:function(){},94616:function(){}},t={};function a(n){var s=t[n];if(void 0!==s)return s.exports;var l=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(l.exports,l,l.exports,a),l.loaded=!0,l.exports}a.m=e,function(){var e=[];a.O=function(t,n,s,l){if(!n){var r=1/0;for(u=0;u=l)&&Object.keys(a.O).every((function(e){return a.O[e](n[i])}))?n.splice(i--,1):(o=!1,l0&&e[u-1][2]>l;u--)e[u]=e[u-1];e[u]=[n,s,l]}}(),function(){a.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return a.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};a.t=function(n,s){if(1&s&&(n=this(n)),8&s)return n;if("object"===typeof n&&n){if(4&s&&n.__esModule)return n;if(16&s&&"function"===typeof n.then)return n}var l=Object.create(null);a.r(l);var r={};e=e||[null,t({}),t([]),t(t)];for(var o=2&s&&n;"object"==typeof o&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach((function(e){r[e]=function(){return n[e]}}));return r["default"]=function(){return n},a.d(l,r),l}}(),function(){a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){a.f={},a.e=function(e){return Promise.all(Object.keys(a.f).reduce((function(t,n){return a.f[n](e,t),t}),[]))}}(),function(){a.u=function(e){return"js/"+e+"."+{5:"1d534404",42:"4800fe99",137:"9a4594a6",149:"a223df4e",174:"3183e8f2",246:"d6c4ddc5",250:"f09c4840",335:"bd20ef03",404:"964b3bc0",442:"7581c54b",476:"33ae068b",498:"fa00791c",565:"55f1eb5f",668:"4e710bba",689:"2875210a",742:"d4185df6",751:"82880776",817:"349e1a63",833:"5f48d2ca",844:"ef8908ec",976:"67e32a1d"}[e]+".js"}}(),function(){a.miniCssF=function(e){}}(),function(){a.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="@zazuko/spex:";a.l=function(n,s,l,r){if(e[n])e[n].push(s);else{var o,i;if(void 0!==l)for(var c=document.getElementsByTagName("script"),u=0;u {\n document.addEventListener('swUpdated', updateAvailable, { once: true })\n navigator.serviceWorker.addEventListener('controllerchange', reloadApp)\n})\n\nonBeforeUnmount(() => {\n document.addEventListener('swUpdated', updateAvailable)\n navigator.serviceWorker.removeEventListener('controllerchange', reloadApp)\n})\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_view)\n ]))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { shrink } from '@zazuko/rdf-vocabularies/shrink'\nimport rdfEnvironment from 'rdf-ext'\nimport ParsingClient from 'sparql-http-client/ParsingClient'\nimport { dataModelFromSHACL, dataModelToSHACL } from '@/shacl'\nimport * as ns from './namespace'\nimport { prefixes as _prefixes } from './namespace'\nimport { Settings, TPrefix } from './model/settings.model'\nimport { DataModel, Table } from './model/data-model.model'\n\nconst SCHEMA_URI = '.well-known/void'\n\nconst initialPrefixes = [...Object.keys(_prefixes)]\nconst displayLanguage = ['en', '*']\n\nexport interface FetchDataOptions {\n offset?: number,\n limit?: number\n}\n\n/**\n * SPARQL Endpoint class. This is a singleton. Only one instance exist for this class.\n */\nexport class Endpoint {\n /**\n * Get the instance of this class.\n * @param settings configuration for the endpoint\n * @returns The Endpoint instance (singleton)\n */\n static getInstance(settings?: Settings): Endpoint | never {\n if (this._endpointInstance === null && settings) {\n this._endpointInstance = new Endpoint(settings)\n return this._endpointInstance\n } else if (settings && this._endpointInstance) {\n this._endpointInstance.applySettings(settings)\n }\n if (this._endpointInstance === null) {\n throw new Error('Endpoint Not Configured')\n }\n return this._endpointInstance\n }\n\n // eslint-disable-next-line no-use-before-define\n private static _endpointInstance: Endpoint | null = null\n\n private _client: ParsingClient\n\n private constructor(private _settings: Settings) {\n this.applySettings(_settings)\n }\n\n /**\n * Use new setting for SPARQL endpoint\n * @param _settings new Settings for SPARQL Endpoint\n */\n public applySettings(settings: Settings) {\n this._settings = settings\n this._client = new ParsingClient(\n {\n endpointUrl: this._settings.sparqlEndpoint ?? '',\n user: this._settings.username ?? undefined,\n password: this._settings.password ?? undefined\n }\n )\n\n // Reinitialize prefixes\n Object.keys(_prefixes).forEach((prefix) => {\n if (!initialPrefixes.includes(prefix)) {\n delete _prefixes[prefix]\n }\n })\n\n // Apply custom prefixes\n this._settings.prefixes.forEach(({ prefix, namespace }) => {\n _prefixes[prefix] = namespace\n })\n }\n\n private shrink(uri: string): string {\n return shrink(uri) || uri\n }\n\n /**\n * Fetch a list of graphs in the endpoint\n */\n async fetchGraphs(opts?: FetchDataOptions) {\n const offset = opts?.offset ?? 0\n const limit = opts?.limit ?? null\n\n const query = `\n PREFIX rdf: \n\n SELECT DISTINCT ?g\n WHERE {\n GRAPH ?g { ?s ?p ?o }\n }\n ORDER BY ?g\n OFFSET ${offset}\n LIMIT ${limit}\n `\n const graphs = await this._client.query.select(query)\n return graphs.map(({ g: { value } }) => value)\n }\n\n /**\n * Fetch data model, either by introspecting it or by querying the\n * pre-defined SHACL definition\n */\n async fetchDataModel() {\n if (this._settings.forceIntrospection) {\n return this.fetchIntrospectDataModel()\n }\n\n const dataModel = await this.fetchPredefinedDataModel()\n\n if (dataModel !== null) {\n return dataModel\n }\n const introspectedDataModel = this.fetchIntrospectDataModel()\n return introspectedDataModel\n }\n\n get datasetURI(): string {\n return this._settings.sparqlEndpoint?.replace(/query\\/?$/, SCHEMA_URI) ?? ''\n }\n\n get sparqlEndpoint(): string {\n return this._settings.sparqlEndpoint ?? ''\n }\n\n get prefixes(): TPrefix[] {\n return this._settings.prefixes\n }\n\n /**\n * Fetch data model from pre-defined SHACL definition\n */\n async fetchPredefinedDataModel(): Promise {\n const fromClause = this._settings.namedGraph ? `FROM <${this._settings.namedGraph}>` : ''\n const query = `\n #pragma describe.strategy cbd\n DESCRIBE <${this.datasetURI}>\n ${fromClause}\n `\n const quads = await this._client.query.construct(query)\n\n if (quads.length === 0) {\n return null\n }\n const dataset = rdfEnvironment.clownface({\n dataset: rdfEnvironment.dataset(quads),\n term: rdfEnvironment.namedNode(this.datasetURI),\n })\n\n return this.dataModelFromSHACL(dataset)\n }\n\n dataModelFromSHACL(dataset) {\n return dataModelFromSHACL(dataset, displayLanguage, this.shrink)\n }\n\n dataModelToSHACL(datamodel) {\n return dataModelToSHACL(datamodel, this.datasetURI)\n }\n\n /**\n * Fetch data model by introspecting the endpoint\n */\n async fetchIntrospectDataModel() {\n const structure = await this._fetchStructure()\n const tablesMap = structure.reduce((tables: Map, { cls, property, linktype, datatype }) => {\n const table = tables.get(cls.value) ??\n {\n id: cls.value,\n name: this.shrink(cls.value),\n properties: new Map(),\n isShown: cls.value !== 'http://www.w3.org/2000/01/rdf-schema#Class'\n }\n\n const typeURI = (linktype && linktype.value) || (datatype && datatype.value) || null\n const typeTermType = linktype ? 'NamedNode' : (datatype ? 'Literal' : null)\n const type = typeURI && {\n id: typeURI,\n name: this.shrink(typeURI),\n termType: typeTermType\n }\n\n if (table.properties.has(property.value)) {\n if (type) {\n table.properties.get(property.value).values.push(type)\n }\n } else {\n table.properties.set(property.value, {\n id: property.value,\n name: this.shrink(property.value),\n values: type ? [type] : []\n })\n }\n\n tables.set(cls.value, table)\n\n return tables\n }, new Map())\n\n const tables = [...tablesMap.values()].map((table) => ({ ...table, properties: [...table.properties.values()] }))\n\n const classCountMap = await this.countClasses()\n tables.forEach(table => {\n table.count = classCountMap.get(table.id)\n })\n return {\n tables,\n viewports: [],\n isIntrospected: true,\n }\n }\n\n async _fetchStructure() {\n const fromClause = this._settings.namedGraph ? `FROM <${this._settings.namedGraph}>` : ''\n const query = `\n PREFIX rdf: \n\n SELECT DISTINCT ?cls ?property ?linktype ?datatype\n ${fromClause}\n WHERE {\n ?subject a ?cls .\n ?subject ?property ?object .\n\n FILTER(?property != rdf:type)\n OPTIONAL {\n ?object a ?linktype .\n }\n\n BIND(DATATYPE(?object) AS ?datatype)\n }\n `\n return this._client.query.select(query)\n }\n\n /**\n * Fetch a sample of the data of a given table\n */\n async fetchTableData(table, opts?: FetchDataOptions) {\n const type = rdfEnvironment.namedNode(table.id)\n const limit = opts?.limit ?? 10\n const offset = opts?.offset ?? 0\n const graphClause = this._settings.namedGraph ? `GRAPH <${this._settings.namedGraph}>` : ''\n const query = `\n DESCRIBE ?subject {\n {\n SELECT ?subject\n WHERE {\n ${graphClause} {\n ?subject a <${table.id}>\n }\n }\n LIMIT ${limit}\n OFFSET ${offset}\n }\n }\n `\n const results = await this._client.query.construct(query)\n const dataset = rdfEnvironment.dataset(results)\n const subjects = [...(dataset.match(null, ns.rdf.type, type) as any)]\n const rows = rdfEnvironment.termMap(subjects.map(({ subject }) => [subject, { id: subject.value, term: subject }]))\n\n results.forEach(({ subject, predicate: { value: predicate }, object }) => {\n const row = rows.get(subject)\n\n if (!row) return\n\n if (!row[predicate]) {\n row[predicate] = rdfEnvironment.termSet()\n }\n\n row[predicate].add(object)\n\n rows.set(subject, row)\n })\n\n return [...rows.values()]\n }\n\n /**\n * Fetch triples related to a given resource.\n */\n async fetchResource(uri: string) {\n const query = `\n DESCRIBE <${uri}> {}\n `\n const quads = await this._client.query.construct(query)\n\n const properties = quads.reduce((acc, { predicate, object }) => {\n if (!acc.has(predicate.value)) {\n const property = {\n id: predicate.value,\n term: predicate,\n name: this.shrink(predicate.value),\n values: rdfEnvironment.termSet(),\n }\n acc.set(predicate.value, property)\n }\n\n acc.get(predicate.value).values.add(object)\n\n return acc\n }, new Map())\n\n const term = { value: uri, termType: 'NamedNode' }\n\n return {\n id: uri,\n term,\n name: this.shrink(term.value),\n properties: [...properties.values()],\n }\n }\n\n /**\n * You can use this function to the the connection.\n *\n * @returns Promise true if the SPARQL endpoint returns a triple\n */\n async canFetchOne(): Promise {\n const query = `\n SELECT ?s WHERE {\n ?s ?p ?o\n } LIMIT 1\n `\n try {\n const result = await this._client.query.select(query)\n return result.length === 1\n } catch (e) {\n return false\n }\n }\n\n async countClasses(): Promise> {\n const classCountMap = new Map()\n const query = classCountQuery(this._settings.namedGraph)\n const result = await this._client.query.select(query)\n result.forEach(row => {\n classCountMap.set(row.class.value, Number(row.count.value))\n })\n return classCountMap\n }\n}\n\nfunction classCountQuery(namedGraph: string | null): string {\n const fromClause = namedGraph ? `FROM <${namedGraph}>` : ''\n\n return `\nPREFIX rdf: \nPREFIX rdfs: \n\nSELECT ?class (count(?x) as ?count) ${fromClause} WHERE {\n ?x a ?class . \n} group by ?class\n`\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, renderSlot as _renderSlot, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex items-center justify-center min-h-screen\" }\nconst _hoisted_2 = { class: \"modal-card\" }\n\nimport { Dialog as HDialog, DialogOverlay } from '@headlessui/vue'\n\n\n\nconst __default__ = {\n name: 'SpexDialog',\n}\n\ninterface Props {\n open?: boolean\n}\n// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n\nexport default /*#__PURE__*/_defineComponent({\n ...__default__,\n props: {\n open: { type: Boolean }\n },\n emits: [\"close\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\n\n// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(HDialog), {\n open: _ctx.open,\n onClose: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close'))),\n class: \"fixed inset-0 z-10 overflow-y-auto\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_unref(DialogOverlay), { class: \"fixed inset-0 bg-black opacity-50\" }),\n _createElementVNode(\"div\", _hoisted_2, [\n _renderSlot(_ctx.$slots, \"default\")\n ])\n ])\n ]),\n _: 3\n }, 8, [\"open\"]))\n}\n}\n\n})","import script from \"./dialog.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./dialog.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, createVNode as _createVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createBlock as _createBlock, vShow as _vShow, withDirectives as _withDirectives, resolveComponent as _resolveComponent, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-369db967\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"modal-card-head py-4\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", { style: {\"color\":\"grey\"} }, \"Generated SHACL shapes\", -1))\nconst _hoisted_3 = { class: \"ml-auto\" }\nconst _hoisted_4 = { class: \"modal-card-body overflow-y-hidden flex flex-col pb-0\" }\nconst _hoisted_5 = { class: \"flex justify-between\" }\nconst _hoisted_6 = { class: \"flex items-center gap-2\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Copy\", -1))\n\nimport '@rdfjs-elements/rdf-editor'\nimport { DataModel } from '@/model/data-model.model'\nimport { Endpoint } from '@/endpoint'\nimport { ClipboardDocumentIcon, ArrowUpTrayIcon, XMarkIcon } from '@heroicons/vue/24/solid'\nimport SpexDialog from './dialog.vue'\nimport Tooltip from '../common/tooltip.vue'\nimport { RadioGroup, RadioGroupOption } from '@headlessui/vue'\nimport { computed, ref } from 'vue'\n\n\n\nconst __default__ = {\n name: 'ModalShacl'\n}\n\n\ninterface Props {\n datamodel: DataModel,\n loadShacl?: any,\n}\n// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n\nexport default /*#__PURE__*/_defineComponent({\n ...__default__,\n props: {\n datamodel: {},\n loadShacl: {}\n },\n emits: [\"close\", \"open-load-shacl\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\n\n// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n\n\nconst endpoint = Endpoint.getInstance()\nconst customPrefixes = computed(() => endpoint.prefixes.reduce((acc, { prefix, namespace }) => ({ ...acc, [prefix]: namespace }), {}))\nconst shacl = computed(() => [...endpoint.dataModelToSHACL(props.datamodel).dataset])\nconst copiedMessage = ref(null)\nconst snippet = ref(null)\n\nconst formats = ref([\n { label: 'JSON-LD', value: 'application/ld+json' },\n { label: 'Turtle', value: 'text/turtle' },\n { label: 'N-Triples', value: 'application/n-triples' },\n])\n\nconst selectedFormat = ref('application/ld+json')\nconst prefixes = ref(['sh', 'schema'].join(','))\n\nasync function copy(): Promise {\n const content = snippet.value.codeMirror.value\n await navigator.clipboard.writeText(content)\n copiedMessage.value = 'Copied 👍'\n setTimeout(() => { copiedMessage.value = null }, 3000)\n}\n\nfunction load(): void {\n emit('open-load-shacl')\n emit('close')\n}\n\nreturn (_ctx: any,_cache: any) => {\n const _component_rdf_editor = _resolveComponent(\"rdf-editor\")!\n\n return (_openBlock(), _createBlock(SpexDialog, {\n onClose: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('close')))\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(Tooltip, {\n label: \"Load SHACL shapes\",\n position: \"bottom\",\n class: \"mr-4\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"button\",\n onClick: load\n }, [\n _createVNode(_unref(ArrowUpTrayIcon), { class: \"icon\" })\n ])\n ]),\n _: 1\n }),\n _createVNode(Tooltip, {\n label: \"Close\",\n position: \"bottom\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"button is-light\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close')))\n }, [\n _createVNode(_unref(XMarkIcon), { class: \"icon\" })\n ])\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_unref(RadioGroup), {\n modelValue: selectedFormat.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((selectedFormat).value = $event)),\n class: \"field has-addons\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(formats.value, (format) => {\n return (_openBlock(), _createBlock(_unref(RadioGroupOption), {\n key: format.value,\n value: format.value,\n class: \"control\"\n }, {\n default: _withCtx(({ checked }) => [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"button\", checked ? 'is-primary' : ''])\n }, _toDisplayString(format.label), 3)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createElementVNode(\"div\", _hoisted_6, [\n _withDirectives(_createElementVNode(\"span\", { class: \"text-green-500\" }, _toDisplayString(copiedMessage.value), 513), [\n [_vShow, copiedMessage.value]\n ]),\n _createElementVNode(\"button\", {\n class: \"button\",\n onClick: copy\n }, [\n _createVNode(_unref(ClipboardDocumentIcon), { class: \"icon\" }),\n _hoisted_7\n ])\n ])\n ]),\n _createVNode(_component_rdf_editor, {\n format: selectedFormat.value,\n \".quads\": shacl.value,\n \".prefixes\": prefixes.value,\n \".customPrefixes\": customPrefixes.value,\n ref_key: \"snippet\",\n ref: snippet,\n class: \"overflow-y-auto\"\n }, null, 8, [\"format\", \".quads\", \".prefixes\", \".customPrefixes\"])\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","import script from \"./modal-shacl.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./modal-shacl.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./modal-shacl.vue?vue&type=style&index=0&id=369db967&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-369db967\"]])\n\nexport default __exports__","