@protontech/openpgp 5.8.0-0 → 5.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lightweight/argon2id.min.mjs +1 -1
- package/dist/lightweight/argon2id.mjs +1 -1
- package/dist/lightweight/bn.interface.min.mjs +1 -1
- package/dist/lightweight/bn.interface.mjs +1 -1
- package/dist/lightweight/bn.min.mjs +1 -1
- package/dist/lightweight/bn.mjs +1 -1
- package/dist/lightweight/elliptic.min.mjs +1 -1
- package/dist/lightweight/elliptic.mjs +1 -1
- package/dist/lightweight/openpgp.min.mjs +2 -2
- package/dist/lightweight/openpgp.min.mjs.map +1 -1
- package/dist/lightweight/openpgp.mjs +51 -36
- package/dist/lightweight/ponyfill.es6.min.mjs +1 -1
- package/dist/lightweight/ponyfill.es6.mjs +1 -1
- package/dist/lightweight/web-streams-adapter.min.mjs +1 -1
- package/dist/lightweight/web-streams-adapter.mjs +1 -1
- package/dist/node/openpgp.js +51 -35
- package/dist/node/openpgp.min.js +3 -3
- package/dist/node/openpgp.min.js.map +1 -1
- package/dist/node/openpgp.min.mjs +3 -3
- package/dist/node/openpgp.min.mjs.map +1 -1
- package/dist/node/openpgp.mjs +51 -36
- package/dist/openpgp.js +51 -35
- package/dist/openpgp.min.js +3 -3
- package/dist/openpgp.min.js.map +1 -1
- package/dist/openpgp.min.mjs +3 -3
- package/dist/openpgp.min.mjs.map +1 -1
- package/dist/openpgp.mjs +51 -36
- package/openpgp.d.ts +21 -8
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! OpenPGP.js v5.
|
|
1
|
+
/*! OpenPGP.js v5.9.0 - 2023-05-15 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
|
|
2
2
|
const globalThis = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
3
3
|
|
|
4
4
|
const doneWritingPromise = Symbol('doneWritingPromise');
|
|
@@ -1907,7 +1907,7 @@ const util = {
|
|
|
1907
1907
|
if (!util.isString(data)) {
|
|
1908
1908
|
return false;
|
|
1909
1909
|
}
|
|
1910
|
-
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+([a-zA-Z]{2,}
|
|
1910
|
+
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+([a-zA-Z]{2,}[0-9]*|xn--[a-zA-Z\-0-9]+)))$/;
|
|
1911
1911
|
return re.test(data);
|
|
1912
1912
|
},
|
|
1913
1913
|
|
|
@@ -2618,6 +2618,8 @@ var enums = {
|
|
|
2618
2618
|
splitPrivateKey: 16,
|
|
2619
2619
|
/** 0x20 - This key may be used for authentication. */
|
|
2620
2620
|
authentication: 32,
|
|
2621
|
+
/** This key may be used for forwarded communications */
|
|
2622
|
+
forwardedCommunication: 64,
|
|
2621
2623
|
/** 0x80 - The private component of this key may be in the
|
|
2622
2624
|
* possession of more than one person. */
|
|
2623
2625
|
sharedPrivateKey: 128
|
|
@@ -2822,6 +2824,13 @@ var config = {
|
|
|
2822
2824
|
* @property {Boolean} allowUnauthenticatedStream
|
|
2823
2825
|
*/
|
|
2824
2826
|
allowUnauthenticatedStream: false,
|
|
2827
|
+
/**
|
|
2828
|
+
* Allow decrypting forwarded messages, using keys with 0x40 ('forwarded communication') flag.
|
|
2829
|
+
* Note: this is related to a **non-standard feature**.
|
|
2830
|
+
* @memberof module:config
|
|
2831
|
+
* @property {Boolean} allowForwardedMessages
|
|
2832
|
+
*/
|
|
2833
|
+
allowForwardedMessages: false,
|
|
2825
2834
|
/**
|
|
2826
2835
|
* @memberof module:config
|
|
2827
2836
|
* @property {Boolean} checksumRequired Do not throw error when armor is missing a checksum
|
|
@@ -2898,6 +2907,14 @@ var config = {
|
|
|
2898
2907
|
* @property {Boolean} ignoreMalformedPackets Ignore malformed packets on parsing instead of throwing an error
|
|
2899
2908
|
*/
|
|
2900
2909
|
ignoreMalformedPackets: false,
|
|
2910
|
+
/**
|
|
2911
|
+
* Parsing of packets is normally restricted to a predefined set of packets. For example a Sym. Encrypted Integrity Protected Data Packet can only
|
|
2912
|
+
* contain a certain set of packets including LiteralDataPacket. With this setting we can allow additional packets, which is probably not advisable
|
|
2913
|
+
* as a global config setting, but can be used for specific function calls (e.g. decrypt method of Message).
|
|
2914
|
+
* @memberof module:config
|
|
2915
|
+
* @property {Array} additionalAllowedPackets Allow additional packets on parsing. Defined as array of packet classes, e.g. [PublicKeyPacket]
|
|
2916
|
+
*/
|
|
2917
|
+
additionalAllowedPackets: [],
|
|
2901
2918
|
/**
|
|
2902
2919
|
* @memberof module:config
|
|
2903
2920
|
* @property {Boolean} showVersion Whether to include {@link module:config/config.versionString} in armored messages
|
|
@@ -2912,7 +2929,7 @@ var config = {
|
|
|
2912
2929
|
* @memberof module:config
|
|
2913
2930
|
* @property {String} versionString A version string to be included in armored messages
|
|
2914
2931
|
*/
|
|
2915
|
-
versionString: 'OpenPGP.js 5.
|
|
2932
|
+
versionString: 'OpenPGP.js 5.9.0',
|
|
2916
2933
|
/**
|
|
2917
2934
|
* @memberof module:config
|
|
2918
2935
|
* @property {String} commentString A comment string to be included in armored messages
|
|
@@ -14396,7 +14413,7 @@ function buildEcdhParam(public_algo, oid, kdfParams, fingerprint) {
|
|
|
14396
14413
|
return util.concatUint8Array([
|
|
14397
14414
|
oid.write(),
|
|
14398
14415
|
new Uint8Array([public_algo]),
|
|
14399
|
-
kdfParams.
|
|
14416
|
+
kdfParams.write(true),
|
|
14400
14417
|
util.stringToUint8Array('Anonymous Sender '),
|
|
14401
14418
|
kdfParams.replacementFingerprint || fingerprint.subarray(0, 20)
|
|
14402
14419
|
]);
|
|
@@ -15238,32 +15255,28 @@ class ECDHSymmetricKey {
|
|
|
15238
15255
|
|
|
15239
15256
|
// OpenPGP.js - An OpenPGP implementation in javascript
|
|
15240
15257
|
|
|
15258
|
+
const VERSION_FORWARDING = 0xFF;
|
|
15259
|
+
|
|
15241
15260
|
class KDFParams {
|
|
15242
15261
|
/**
|
|
15243
15262
|
* @param {Integer} version Version, defaults to 1
|
|
15244
15263
|
* @param {enums.hash} hash Hash algorithm
|
|
15245
15264
|
* @param {enums.symmetric} cipher Symmetric algorithm
|
|
15246
|
-
* @param {
|
|
15247
|
-
* @param {Uint8Array} replacementFingerprint (v2 only) fingerprint to use instead of recipient one (v5 keys, the 20 leftmost bytes of the fingerprint)
|
|
15248
|
-
* @param {Uint8Array} replacementKDFParams (v2 only) serialized KDF params to use in KDF digest computation
|
|
15265
|
+
* @param {Uint8Array} replacementFingerprint (forwarding only) fingerprint to use instead of recipient one (v5 keys, the 20 leftmost bytes of the fingerprint)
|
|
15249
15266
|
*/
|
|
15250
15267
|
constructor(data) {
|
|
15251
15268
|
if (data) {
|
|
15252
|
-
const { version, hash, cipher,
|
|
15269
|
+
const { version, hash, cipher, replacementFingerprint } = data;
|
|
15253
15270
|
this.version = version || 1;
|
|
15254
15271
|
this.hash = hash;
|
|
15255
15272
|
this.cipher = cipher;
|
|
15256
15273
|
|
|
15257
|
-
this.flags = flags;
|
|
15258
15274
|
this.replacementFingerprint = replacementFingerprint;
|
|
15259
|
-
this.replacementKDFParams = replacementKDFParams;
|
|
15260
15275
|
} else {
|
|
15261
15276
|
this.version = null;
|
|
15262
15277
|
this.hash = null;
|
|
15263
15278
|
this.cipher = null;
|
|
15264
|
-
this.flags = null;
|
|
15265
15279
|
this.replacementFingerprint = null;
|
|
15266
|
-
this.replacementKDFParams = null;
|
|
15267
15280
|
}
|
|
15268
15281
|
}
|
|
15269
15282
|
|
|
@@ -15273,44 +15286,41 @@ class KDFParams {
|
|
|
15273
15286
|
* @returns {Number} Number of read bytes.
|
|
15274
15287
|
*/
|
|
15275
15288
|
read(input) {
|
|
15289
|
+
const totalBytes = input[0];
|
|
15276
15290
|
this.version = input[1];
|
|
15277
15291
|
this.hash = input[2];
|
|
15278
15292
|
this.cipher = input[3];
|
|
15279
15293
|
let readBytes = 4;
|
|
15280
15294
|
|
|
15281
|
-
if (this.version ===
|
|
15282
|
-
|
|
15283
|
-
|
|
15284
|
-
|
|
15285
|
-
readBytes += 20;
|
|
15286
|
-
}
|
|
15287
|
-
if (this.flags & enums.kdfFlags.replace_kdf_params) {
|
|
15288
|
-
const fieldLength = input[readBytes] + 1; // account for length
|
|
15289
|
-
this.replacementKDFParams = input.slice(readBytes, readBytes + fieldLength);
|
|
15290
|
-
readBytes += fieldLength;
|
|
15291
|
-
}
|
|
15295
|
+
if (this.version === VERSION_FORWARDING) {
|
|
15296
|
+
const fingerprintLength = totalBytes - readBytes + 1; // acount for length byte
|
|
15297
|
+
this.replacementFingerprint = input.slice(readBytes, readBytes + fingerprintLength);
|
|
15298
|
+
readBytes += fingerprintLength;
|
|
15292
15299
|
}
|
|
15293
15300
|
return readBytes;
|
|
15294
15301
|
}
|
|
15295
15302
|
|
|
15296
15303
|
/**
|
|
15297
15304
|
* Write KDFParams to an Uint8Array
|
|
15305
|
+
* @param {Boolean} [forReplacementParams] - forwarding only: whether to serialize data to use for replacement params
|
|
15298
15306
|
* @returns {Uint8Array} Array with the KDFParams value
|
|
15299
15307
|
*/
|
|
15300
|
-
write() {
|
|
15301
|
-
if (!this.version || this.version === 1) {
|
|
15308
|
+
write(forReplacementParams) {
|
|
15309
|
+
if (!this.version || this.version === 1 || forReplacementParams) {
|
|
15302
15310
|
return new Uint8Array([3, 1, this.hash, this.cipher]);
|
|
15303
15311
|
}
|
|
15304
15312
|
|
|
15305
|
-
const
|
|
15306
|
-
new Uint8Array([
|
|
15307
|
-
|
|
15308
|
-
|
|
15313
|
+
const forwardingFields = util.concatUint8Array([
|
|
15314
|
+
new Uint8Array([
|
|
15315
|
+
3 + this.replacementFingerprint.length,
|
|
15316
|
+
this.version,
|
|
15317
|
+
this.hash,
|
|
15318
|
+
this.cipher
|
|
15319
|
+
]),
|
|
15320
|
+
this.replacementFingerprint
|
|
15309
15321
|
]);
|
|
15310
15322
|
|
|
15311
|
-
|
|
15312
|
-
v2Fields[0] = v2Fields.length - 1;
|
|
15313
|
-
return new Uint8Array(v2Fields);
|
|
15323
|
+
return forwardingFields;
|
|
15314
15324
|
}
|
|
15315
15325
|
}
|
|
15316
15326
|
|
|
@@ -24280,6 +24290,9 @@ class PacketList extends Array {
|
|
|
24280
24290
|
* @async
|
|
24281
24291
|
*/
|
|
24282
24292
|
async read(bytes, allowedPackets, config$1 = config) {
|
|
24293
|
+
if (config$1.additionalAllowedPackets.length) {
|
|
24294
|
+
allowedPackets = { ...allowedPackets, ...util.constructAllowedPackets(config$1.additionalAllowedPackets) };
|
|
24295
|
+
}
|
|
24283
24296
|
this.stream = transformPair(bytes, async (readable, writable) => {
|
|
24284
24297
|
const writer = getWriter(writable);
|
|
24285
24298
|
try {
|
|
@@ -27833,7 +27846,8 @@ function isValidDecryptionKeyPacket(signature, config) {
|
|
|
27833
27846
|
|
|
27834
27847
|
return !signature.keyFlags ||
|
|
27835
27848
|
(signature.keyFlags[0] & enums.keyFlags.encryptCommunication) !== 0 ||
|
|
27836
|
-
(signature.keyFlags[0] & enums.keyFlags.encryptStorage) !== 0
|
|
27849
|
+
(signature.keyFlags[0] & enums.keyFlags.encryptStorage) !== 0 ||
|
|
27850
|
+
(config.allowForwardedMessages && (signature.keyFlags[0] & enums.keyFlags.forwardedCommunication) !== 0);
|
|
27837
27851
|
}
|
|
27838
27852
|
|
|
27839
27853
|
/**
|
|
@@ -28781,7 +28795,7 @@ class Key {
|
|
|
28781
28795
|
throw exception || new Error('Could not find primary user');
|
|
28782
28796
|
}
|
|
28783
28797
|
await Promise.all(users.map(async function (a) {
|
|
28784
|
-
return a.
|
|
28798
|
+
return a.selfCertification.revoked || a.user.isRevoked(a.selfCertification, null, date, config$1);
|
|
28785
28799
|
}));
|
|
28786
28800
|
// sort by primary user flag and signature creation time
|
|
28787
28801
|
const primaryUser = users.sort(function(a, b) {
|
|
@@ -29004,7 +29018,8 @@ class Key {
|
|
|
29004
29018
|
|
|
29005
29019
|
results.push(...signatures.map(
|
|
29006
29020
|
signature => ({
|
|
29007
|
-
userID: user.userID.userID,
|
|
29021
|
+
userID: user.userID ? user.userID.userID : null,
|
|
29022
|
+
userAttribute: user.userAttribute,
|
|
29008
29023
|
keyID: signature.keyID,
|
|
29009
29024
|
valid: signature.valid
|
|
29010
29025
|
}))
|
|
@@ -31537,4 +31552,4 @@ function formatObject(object, format, config) {
|
|
|
31537
31552
|
}
|
|
31538
31553
|
}
|
|
31539
31554
|
|
|
31540
|
-
export { AEADEncryptedDataPacket, CleartextMessage, CompressedDataPacket, LiteralDataPacket, MarkerPacket, Message, OnePassSignaturePacket, PacketList, PrivateKey, PublicKey, PublicKeyEncryptedSessionKeyPacket, PublicKeyPacket, PublicSubkeyPacket, SecretKeyPacket, SecretSubkeyPacket, Signature, SignaturePacket, Subkey, SymEncryptedIntegrityProtectedDataPacket, SymEncryptedSessionKeyPacket, SymmetricallyEncryptedDataPacket, TrustPacket, UnparseablePacket, UserAttributePacket, UserIDPacket, _224 as _, commonjsGlobal as a, armor, common$1 as b, createCommonjsModule as c, config, createCleartextMessage, createMessage, common as d, decrypt$4 as decrypt, decryptKey, decryptSessionKeys, _256 as e, encrypt$4 as encrypt, encryptKey, encryptSessionKey, enums, _384 as f, _512 as g, generateKey, generateSessionKey$1 as generateSessionKey, inherits_browser as i, minimalisticAssert as m, ripemd as r, readCleartextMessage, readKey, readKeys, readMessage, readPrivateKey, readPrivateKeys, readSignature, reformatKey, revokeKey, sign$5 as sign, utils as u, unarmor, verify$5 as verify };
|
|
31555
|
+
export { AEADEncryptedDataPacket, CleartextMessage, CompressedDataPacket, KDFParams, LiteralDataPacket, MarkerPacket, Message, OnePassSignaturePacket, PacketList, PrivateKey, PublicKey, PublicKeyEncryptedSessionKeyPacket, PublicKeyPacket, PublicSubkeyPacket, SecretKeyPacket, SecretSubkeyPacket, Signature, SignaturePacket, Subkey, SymEncryptedIntegrityProtectedDataPacket, SymEncryptedSessionKeyPacket, SymmetricallyEncryptedDataPacket, TrustPacket, UnparseablePacket, UserAttributePacket, UserIDPacket, _224 as _, commonjsGlobal as a, armor, common$1 as b, createCommonjsModule as c, config, createCleartextMessage, createMessage, common as d, decrypt$4 as decrypt, decryptKey, decryptSessionKeys, _256 as e, encrypt$4 as encrypt, encryptKey, encryptSessionKey, enums, _384 as f, _512 as g, generateKey, generateSessionKey$1 as generateSessionKey, inherits_browser as i, minimalisticAssert as m, ripemd as r, readCleartextMessage, readKey, readKeys, readMessage, readPrivateKey, readPrivateKeys, readSignature, reformatKey, revokeKey, sign$5 as sign, utils as u, unarmor, verify$5 as verify };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/*! OpenPGP.js v5.
|
|
1
|
+
/*! OpenPGP.js v5.9.0 - 2023-05-15 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
|
|
2
2
|
"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;const e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol:e=>`Symbol(${e})`;function t(){}const r="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0;function o(e){return"object"==typeof e&&null!==e||"function"==typeof e}const n=t,i=Promise,a=Promise.prototype.then,s=Promise.resolve.bind(i),l=Promise.reject.bind(i);function u(e){return new i(e)}function c(e){return s(e)}function d(e){return l(e)}function f(e,t,r){return a.call(e,t,r)}function h(e,t,r){f(f(e,t,r),void 0,n)}function _(e,t){h(e,t)}function b(e,t){h(e,void 0,t)}function p(e,t,r){return f(e,t,r)}function m(e){f(e,void 0,n)}const y=(()=>{const e=r&&r.queueMicrotask;if("function"==typeof e)return e;const t=c(void 0);return e=>f(t,e)})();function g(e,t,r){if("function"!=typeof e)throw new TypeError("Argument is not a function");return Function.prototype.apply.call(e,t,r)}function w(e,t,r){try{return c(g(e,t,r))}catch(e){return d(e)}}class v{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(e){const t=this._back;let r=t;16383===t._elements.length&&(r={_elements:[],_next:void 0}),t._elements.push(e),r!==t&&(this._back=r,t._next=r),++this._size}shift(){const e=this._front;let t=e;const r=this._cursor;let o=r+1;const n=e._elements,i=n[r];return 16384===o&&(t=e._next,o=0),--this._size,this._cursor=o,e!==t&&(this._front=t),n[r]=void 0,i}forEach(e){let t=this._cursor,r=this._front,o=r._elements;for(;!(t===o.length&&void 0===r._next||t===o.length&&(r=r._next,o=r._elements,t=0,0===o.length));)e(o[t]),++t}peek(){const e=this._front,t=this._cursor;return e._elements[t]}}function S(e,t){e._ownerReadableStream=t,t._reader=e,"readable"===t._state?q(e):"closed"===t._state?function(e){q(e),k(e)}(e):E(e,t._storedError)}function R(e,t){return ar(e._ownerReadableStream,t)}function T(e){"readable"===e._ownerReadableStream._state?C(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):function(e,t){E(e,t)}(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),e._ownerReadableStream._reader=void 0,e._ownerReadableStream=void 0}function P(e){return new TypeError("Cannot "+e+" a stream using a released reader")}function q(e){e._closedPromise=u(((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r}))}function E(e,t){q(e),C(e,t)}function C(e,t){void 0!==e._closedPromise_reject&&(m(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}function k(e){void 0!==e._closedPromise_resolve&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}const O=e("[[AbortSteps]]"),j=e("[[ErrorSteps]]"),W=e("[[CancelSteps]]"),A=e("[[PullSteps]]"),z=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)},F=Math.trunc||function(e){return e<0?Math.ceil(e):Math.floor(e)};function B(e,t){if(void 0!==e&&("object"!=typeof(r=e)&&"function"!=typeof r))throw new TypeError(t+" is not an object.");var r}function I(e,t){if("function"!=typeof e)throw new TypeError(t+" is not a function.")}function L(e,t){if(!function(e){return"object"==typeof e&&null!==e||"function"==typeof e}(e))throw new TypeError(t+" is not an object.")}function M(e,t,r){if(void 0===e)throw new TypeError(`Parameter ${t} is required in '${r}'.`)}function $(e,t,r){if(void 0===e)throw new TypeError(`${t} is required in '${r}'.`)}function D(e){return Number(e)}function x(e){return 0===e?0:e}function N(e,t){const r=Number.MAX_SAFE_INTEGER;let o=Number(e);if(o=x(o),!z(o))throw new TypeError(t+" is not a finite number");if(o=function(e){return x(F(e))}(o),o<0||o>r)throw new TypeError(`${t} is outside the accepted range of 0 to ${r}, inclusive`);return z(o)&&0!==o?o:0}function Q(e,t){if(!nr(e))throw new TypeError(t+" is not a ReadableStream.")}function H(e){return new X(e)}function Y(e,t){e._reader._readRequests.push(t)}function V(e,t,r){const o=e._reader._readRequests.shift();r?o._closeSteps():o._chunkSteps(t)}function U(e){return e._reader._readRequests.length}function G(e){const t=e._reader;return void 0!==t&&!!J(t)}class X{constructor(e){if(M(e,1,"ReadableStreamDefaultReader"),Q(e,"First parameter"),ir(e))throw new TypeError("This stream has already been locked for exclusive reading by another reader");S(this,e),this._readRequests=new v}get closed(){return J(this)?this._closedPromise:d(Z("closed"))}cancel(e=undefined){return J(this)?void 0===this._ownerReadableStream?d(P("cancel")):R(this,e):d(Z("cancel"))}read(){if(!J(this))return d(Z("read"));if(void 0===this._ownerReadableStream)return d(P("read from"));let e,t;const r=u(((r,o)=>{e=r,t=o}));return K(this,{_chunkSteps:t=>e({value:t,done:!1}),_closeSteps:()=>e({value:void 0,done:!0}),_errorSteps:e=>t(e)}),r}releaseLock(){if(!J(this))throw Z("releaseLock");if(void 0!==this._ownerReadableStream){if(this._readRequests.length>0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");T(this)}}}function J(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readRequests")}function K(e,t){const r=e._ownerReadableStream;r._disturbed=!0,"closed"===r._state?t._closeSteps():"errored"===r._state?t._errorSteps(r._storedError):r._readableStreamController[A](t)}function Z(e){return new TypeError(`ReadableStreamDefaultReader.prototype.${e} can only be used on a ReadableStreamDefaultReader`)}let ee;Object.defineProperties(X.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(X.prototype,e.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0}),"symbol"==typeof e.asyncIterator&&(ee={[e.asyncIterator](){return this}},Object.defineProperty(ee,e.asyncIterator,{enumerable:!1}));class te{constructor(e,t){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=e,this._preventCancel=t}next(){const e=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?p(this._ongoingPromise,e,e):e(),this._ongoingPromise}return(e){const t=()=>this._returnSteps(e);return this._ongoingPromise?p(this._ongoingPromise,t,t):t()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});const e=this._reader;if(void 0===e._ownerReadableStream)return d(P("iterate"));let t,r;const o=u(((e,o)=>{t=e,r=o}));return K(e,{_chunkSteps:e=>{this._ongoingPromise=void 0,y((()=>t({value:e,done:!1})))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,T(e),t({value:void 0,done:!0})},_errorSteps:t=>{this._ongoingPromise=void 0,this._isFinished=!0,T(e),r(t)}}),o}_returnSteps(e){if(this._isFinished)return Promise.resolve({value:e,done:!0});this._isFinished=!0;const t=this._reader;if(void 0===t._ownerReadableStream)return d(P("finish iterating"));if(!this._preventCancel){const r=R(t,e);return T(t),p(r,(()=>({value:e,done:!0})))}return T(t),c({value:e,done:!0})}}const re={next(){return oe(this)?this._asyncIteratorImpl.next():d(ne("next"))},return(e){return oe(this)?this._asyncIteratorImpl.return(e):d(ne("return"))}};function oe(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_asyncIteratorImpl")}function ne(e){return new TypeError(`ReadableStreamAsyncIterator.${e} can only be used on a ReadableSteamAsyncIterator`)}void 0!==ee&&Object.setPrototypeOf(re,ee);const ie=Number.isNaN||function(e){return e!=e};function ae(e){return!!function(e){if("number"!=typeof e)return!1;if(ie(e))return!1;if(e<0)return!1;return!0}(e)&&e!==1/0}function se(e){const t=e._queue.shift();return e._queueTotalSize-=t.size,e._queueTotalSize<0&&(e._queueTotalSize=0),t.value}function le(e,t,r){if(!ae(r=Number(r)))throw new RangeError("Size must be a finite, non-NaN, non-negative number.");e._queue.push({value:t,size:r}),e._queueTotalSize+=r}function ue(e){e._queue=new v,e._queueTotalSize=0}function ce(e){return e.slice()}class de{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!_e(this))throw Oe("view");return this._view}respond(e){if(!_e(this))throw Oe("respond");if(M(e,1,"respond"),e=N(e,"First parameter"),void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");this._view.buffer,function(e,t){if(t=Number(t),!ae(t))throw new RangeError("bytesWritten must be a finite");Te(e,t)}(this._associatedReadableByteStreamController,e)}respondWithNewView(e){if(!_e(this))throw Oe("respondWithNewView");if(M(e,1,"respondWithNewView"),!ArrayBuffer.isView(e))throw new TypeError("You can only respond with array buffer views");if(0===e.byteLength)throw new TypeError("chunk must have non-zero byteLength");if(0===e.buffer.byteLength)throw new TypeError("chunk's buffer must have non-zero byteLength");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");!function(e,t){const r=e._pendingPullIntos.peek();if(r.byteOffset+r.bytesFilled!==t.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(r.byteLength!==t.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");r.buffer=t.buffer,Te(e,t.byteLength)}(this._associatedReadableByteStreamController,e)}}Object.defineProperties(de.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(de.prototype,e.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class fe{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!he(this))throw je("byobRequest");if(null===this._byobRequest&&this._pendingPullIntos.length>0){const e=this._pendingPullIntos.peek(),t=new Uint8Array(e.buffer,e.byteOffset+e.bytesFilled,e.byteLength-e.bytesFilled),r=Object.create(de.prototype);!function(e,t,r){e._associatedReadableByteStreamController=t,e._view=r}(r,this,t),this._byobRequest=r}return this._byobRequest}get desiredSize(){if(!he(this))throw je("desiredSize");return Ce(this)}close(){if(!he(this))throw je("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");const e=this._controlledReadableByteStream._state;if("readable"!==e)throw new TypeError(`The stream (in ${e} state) is not in the readable state and cannot be closed`);!function(e){const t=e._controlledReadableByteStream;if(e._closeRequested||"readable"!==t._state)return;if(e._queueTotalSize>0)return void(e._closeRequested=!0);if(e._pendingPullIntos.length>0){if(e._pendingPullIntos.peek().bytesFilled>0){const t=new TypeError("Insufficient bytes to fill elements in the given buffer");throw Ee(e,t),t}}qe(e),sr(t)}(this)}enqueue(e){if(!he(this))throw je("enqueue");if(M(e,1,"enqueue"),!ArrayBuffer.isView(e))throw new TypeError("chunk must be an array buffer view");if(0===e.byteLength)throw new TypeError("chunk must have non-zero byteLength");if(0===e.buffer.byteLength)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");const t=this._controlledReadableByteStream._state;if("readable"!==t)throw new TypeError(`The stream (in ${t} state) is not in the readable state and cannot be enqueued to`);!function(e,t){const r=e._controlledReadableByteStream;if(e._closeRequested||"readable"!==r._state)return;const o=t.buffer,n=t.byteOffset,i=t.byteLength,a=o;if(G(r))if(0===U(r))ye(e,a,n,i);else{V(r,new Uint8Array(a,n,i),!1)}else ze(r)?(ye(e,a,n,i),Re(e)):ye(e,a,n,i);be(e)}(this,e)}error(e=undefined){if(!he(this))throw je("error");Ee(this,e)}[W](e){if(this._pendingPullIntos.length>0){this._pendingPullIntos.peek().bytesFilled=0}ue(this);const t=this._cancelAlgorithm(e);return qe(this),t}[A](e){const t=this._controlledReadableByteStream;if(this._queueTotalSize>0){const t=this._queue.shift();this._queueTotalSize-=t.byteLength,ve(this);const r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);return void e._chunkSteps(r)}const r=this._autoAllocateChunkSize;if(void 0!==r){let t;try{t=new ArrayBuffer(r)}catch(t){return void e._errorSteps(t)}const o={buffer:t,byteOffset:0,byteLength:r,bytesFilled:0,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(o)}Y(t,e),be(this)}}function he(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableByteStream")}function _e(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_associatedReadableByteStreamController")}function be(e){const t=function(e){const t=e._controlledReadableByteStream;if("readable"!==t._state)return!1;if(e._closeRequested)return!1;if(!e._started)return!1;if(G(t)&&U(t)>0)return!0;if(ze(t)&&Ae(t)>0)return!0;const r=Ce(e);if(r>0)return!0;return!1}(e);if(!t)return;if(e._pulling)return void(e._pullAgain=!0);e._pulling=!0;h(e._pullAlgorithm(),(()=>{e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,be(e))}),(t=>{Ee(e,t)}))}function pe(e,t){let r=!1;"closed"===e._state&&(r=!0);const o=me(t);"default"===t.readerType?V(e,o,r):function(e,t,r){const o=e._reader,n=o._readIntoRequests.shift();r?n._closeSteps(t):n._chunkSteps(t)}(e,o,r)}function me(e){const t=e.bytesFilled,r=e.elementSize;return new e.viewConstructor(e.buffer,e.byteOffset,t/r)}function ye(e,t,r,o){e._queue.push({buffer:t,byteOffset:r,byteLength:o}),e._queueTotalSize+=o}function ge(e,t){const r=t.elementSize,o=t.bytesFilled-t.bytesFilled%r,n=Math.min(e._queueTotalSize,t.byteLength-t.bytesFilled),i=t.bytesFilled+n,a=i-i%r;let s=n,l=!1;a>o&&(s=a-t.bytesFilled,l=!0);const u=e._queue;for(;s>0;){const r=u.peek(),o=Math.min(s,r.byteLength),n=t.byteOffset+t.bytesFilled;c=t.buffer,d=n,f=r.buffer,h=r.byteOffset,_=o,new Uint8Array(c).set(new Uint8Array(f,h,_),d),r.byteLength===o?u.shift():(r.byteOffset+=o,r.byteLength-=o),e._queueTotalSize-=o,we(e,o,t),s-=o}var c,d,f,h,_;return l}function we(e,t,r){Se(e),r.bytesFilled+=t}function ve(e){0===e._queueTotalSize&&e._closeRequested?(qe(e),sr(e._controlledReadableByteStream)):be(e)}function Se(e){null!==e._byobRequest&&(e._byobRequest._associatedReadableByteStreamController=void 0,e._byobRequest._view=null,e._byobRequest=null)}function Re(e){for(;e._pendingPullIntos.length>0;){if(0===e._queueTotalSize)return;const t=e._pendingPullIntos.peek();ge(e,t)&&(Pe(e),pe(e._controlledReadableByteStream,t))}}function Te(e,t){const r=e._pendingPullIntos.peek();if("closed"===e._controlledReadableByteStream._state){if(0!==t)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream");!function(e,t){t.buffer=t.buffer;const r=e._controlledReadableByteStream;if(ze(r))for(;Ae(r)>0;)pe(r,Pe(e))}(e,r)}else!function(e,t,r){if(r.bytesFilled+t>r.byteLength)throw new RangeError("bytesWritten out of range");if(we(e,t,r),r.bytesFilled<r.elementSize)return;Pe(e);const o=r.bytesFilled%r.elementSize;if(o>0){const t=r.byteOffset+r.bytesFilled,n=r.buffer.slice(t-o,t);ye(e,n,0,n.byteLength)}r.buffer=r.buffer,r.bytesFilled-=o,pe(e._controlledReadableByteStream,r),Re(e)}(e,t,r);be(e)}function Pe(e){const t=e._pendingPullIntos.shift();return Se(e),t}function qe(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0}function Ee(e,t){const r=e._controlledReadableByteStream;"readable"===r._state&&(!function(e){Se(e),e._pendingPullIntos=new v}(e),ue(e),qe(e),lr(r,t))}function Ce(e){const t=e._controlledReadableByteStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function ke(e,t,r){const o=Object.create(fe.prototype);let n=()=>{},i=()=>c(void 0),a=()=>c(void 0);void 0!==t.start&&(n=()=>t.start(o)),void 0!==t.pull&&(i=()=>t.pull(o)),void 0!==t.cancel&&(a=e=>t.cancel(e));const s=t.autoAllocateChunkSize;if(0===s)throw new TypeError("autoAllocateChunkSize must be greater than 0");!function(e,t,r,o,n,i,a){t._controlledReadableByteStream=e,t._pullAgain=!1,t._pulling=!1,t._byobRequest=null,t._queue=t._queueTotalSize=void 0,ue(t),t._closeRequested=!1,t._started=!1,t._strategyHWM=i,t._pullAlgorithm=o,t._cancelAlgorithm=n,t._autoAllocateChunkSize=a,t._pendingPullIntos=new v,e._readableStreamController=t,h(c(r()),(()=>{t._started=!0,be(t)}),(e=>{Ee(t,e)}))}(e,o,n,i,a,r,s)}function Oe(e){return new TypeError(`ReadableStreamBYOBRequest.prototype.${e} can only be used on a ReadableStreamBYOBRequest`)}function je(e){return new TypeError(`ReadableByteStreamController.prototype.${e} can only be used on a ReadableByteStreamController`)}function We(e,t){e._reader._readIntoRequests.push(t)}function Ae(e){return e._reader._readIntoRequests.length}function ze(e){const t=e._reader;return void 0!==t&&!!Be(t)}Object.defineProperties(fe.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(fe.prototype,e.toStringTag,{value:"ReadableByteStreamController",configurable:!0});class Fe{constructor(e){if(M(e,1,"ReadableStreamBYOBReader"),Q(e,"First parameter"),ir(e))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!he(e._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");S(this,e),this._readIntoRequests=new v}get closed(){return Be(this)?this._closedPromise:d(Ie("closed"))}cancel(e=undefined){return Be(this)?void 0===this._ownerReadableStream?d(P("cancel")):R(this,e):d(Ie("cancel"))}read(e){if(!Be(this))return d(Ie("read"));if(!ArrayBuffer.isView(e))return d(new TypeError("view must be an array buffer view"));if(0===e.byteLength)return d(new TypeError("view must have non-zero byteLength"));if(0===e.buffer.byteLength)return d(new TypeError("view's buffer must have non-zero byteLength"));if(void 0===this._ownerReadableStream)return d(P("read from"));let t,r;const o=u(((e,o)=>{t=e,r=o}));return function(e,t,r){const o=e._ownerReadableStream;o._disturbed=!0,"errored"===o._state?r._errorSteps(o._storedError):function(e,t,r){const o=e._controlledReadableByteStream;let n=1;t.constructor!==DataView&&(n=t.constructor.BYTES_PER_ELEMENT);const i=t.constructor,a={buffer:t.buffer,byteOffset:t.byteOffset,byteLength:t.byteLength,bytesFilled:0,elementSize:n,viewConstructor:i,readerType:"byob"};if(e._pendingPullIntos.length>0)return e._pendingPullIntos.push(a),void We(o,r);if("closed"!==o._state){if(e._queueTotalSize>0){if(ge(e,a)){const t=me(a);return ve(e),void r._chunkSteps(t)}if(e._closeRequested){const t=new TypeError("Insufficient bytes to fill elements in the given buffer");return Ee(e,t),void r._errorSteps(t)}}e._pendingPullIntos.push(a),We(o,r),be(e)}else{const e=new i(a.buffer,a.byteOffset,0);r._closeSteps(e)}}(o._readableStreamController,t,r)}(this,e,{_chunkSteps:e=>t({value:e,done:!1}),_closeSteps:e=>t({value:e,done:!0}),_errorSteps:e=>r(e)}),o}releaseLock(){if(!Be(this))throw Ie("releaseLock");if(void 0!==this._ownerReadableStream){if(this._readIntoRequests.length>0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");T(this)}}}function Be(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readIntoRequests")}function Ie(e){return new TypeError(`ReadableStreamBYOBReader.prototype.${e} can only be used on a ReadableStreamBYOBReader`)}function Le(e,t){const{highWaterMark:r}=e;if(void 0===r)return t;if(ie(r)||r<0)throw new RangeError("Invalid highWaterMark");return r}function Me(e){const{size:t}=e;return t||(()=>1)}function $e(e,t){B(e,t);const r=null==e?void 0:e.highWaterMark,o=null==e?void 0:e.size;return{highWaterMark:void 0===r?void 0:D(r),size:void 0===o?void 0:De(o,t+" has member 'size' that")}}function De(e,t){return I(e,t),t=>D(e(t))}function xe(e,t,r){return I(e,r),r=>w(e,t,[r])}function Ne(e,t,r){return I(e,r),()=>w(e,t,[])}function Qe(e,t,r){return I(e,r),r=>g(e,t,[r])}function He(e,t,r){return I(e,r),(r,o)=>w(e,t,[r,o])}function Ye(e,t){if(!Xe(e))throw new TypeError(t+" is not a WritableStream.")}Object.defineProperties(Fe.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(Fe.prototype,e.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});class Ve{constructor(e={},t={}){void 0===e?e=null:L(e,"First parameter");const r=$e(t,"Second parameter"),o=function(e,t){B(e,t);const r=null==e?void 0:e.abort,o=null==e?void 0:e.close,n=null==e?void 0:e.start,i=null==e?void 0:e.type,a=null==e?void 0:e.write;return{abort:void 0===r?void 0:xe(r,e,t+" has member 'abort' that"),close:void 0===o?void 0:Ne(o,e,t+" has member 'close' that"),start:void 0===n?void 0:Qe(n,e,t+" has member 'start' that"),write:void 0===a?void 0:He(a,e,t+" has member 'write' that"),type:i}}(e,"First parameter");Ge(this);if(void 0!==o.type)throw new RangeError("Invalid type is specified");const n=Me(r);!function(e,t,r,o){const n=Object.create(_t.prototype);let i=()=>{},a=()=>c(void 0),s=()=>c(void 0),l=()=>c(void 0);void 0!==t.start&&(i=()=>t.start(n));void 0!==t.write&&(a=e=>t.write(e,n));void 0!==t.close&&(s=()=>t.close());void 0!==t.abort&&(l=e=>t.abort(e));bt(e,n,i,a,s,l,r,o)}(this,o,Le(r,1),n)}get locked(){if(!Xe(this))throw St("locked");return Je(this)}abort(e=undefined){return Xe(this)?Je(this)?d(new TypeError("Cannot abort a stream that already has a writer")):Ke(this,e):d(St("abort"))}close(){return Xe(this)?Je(this)?d(new TypeError("Cannot close a stream that already has a writer")):ot(this)?d(new TypeError("Cannot close an already-closing stream")):Ze(this):d(St("close"))}getWriter(){if(!Xe(this))throw St("getWriter");return Ue(this)}}function Ue(e){return new at(e)}function Ge(e){e._state="writable",e._storedError=void 0,e._writer=void 0,e._writableStreamController=void 0,e._writeRequests=new v,e._inFlightWriteRequest=void 0,e._closeRequest=void 0,e._inFlightCloseRequest=void 0,e._pendingAbortRequest=void 0,e._backpressure=!1}function Xe(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_writableStreamController")}function Je(e){return void 0!==e._writer}function Ke(e,t){const r=e._state;if("closed"===r||"errored"===r)return c(void 0);if(void 0!==e._pendingAbortRequest)return e._pendingAbortRequest._promise;let o=!1;"erroring"===r&&(o=!0,t=void 0);const n=u(((r,n)=>{e._pendingAbortRequest={_promise:void 0,_resolve:r,_reject:n,_reason:t,_wasAlreadyErroring:o}}));return e._pendingAbortRequest._promise=n,o||tt(e,t),n}function Ze(e){const t=e._state;if("closed"===t||"errored"===t)return d(new TypeError(`The stream (in ${t} state) is not in the writable state and cannot be closed`));const r=u(((t,r)=>{const o={_resolve:t,_reject:r};e._closeRequest=o})),o=e._writer;var n;return void 0!==o&&e._backpressure&&"writable"===t&&At(o),le(n=e._writableStreamController,ht,0),yt(n),r}function et(e,t){"writable"!==e._state?rt(e):tt(e,t)}function tt(e,t){const r=e._writableStreamController;e._state="erroring",e._storedError=t;const o=e._writer;void 0!==o&&ct(o,t),!function(e){if(void 0===e._inFlightWriteRequest&&void 0===e._inFlightCloseRequest)return!1;return!0}(e)&&r._started&&rt(e)}function rt(e){e._state="errored",e._writableStreamController[j]();const t=e._storedError;if(e._writeRequests.forEach((e=>{e._reject(t)})),e._writeRequests=new v,void 0===e._pendingAbortRequest)return void nt(e);const r=e._pendingAbortRequest;if(e._pendingAbortRequest=void 0,r._wasAlreadyErroring)return r._reject(t),void nt(e);h(e._writableStreamController[O](r._reason),(()=>{r._resolve(),nt(e)}),(t=>{r._reject(t),nt(e)}))}function ot(e){return void 0!==e._closeRequest||void 0!==e._inFlightCloseRequest}function nt(e){void 0!==e._closeRequest&&(e._closeRequest._reject(e._storedError),e._closeRequest=void 0);const t=e._writer;void 0!==t&&Et(t,e._storedError)}function it(e,t){const r=e._writer;void 0!==r&&t!==e._backpressure&&(t?function(e){kt(e)}(r):At(r)),e._backpressure=t}Object.defineProperties(Ve.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(Ve.prototype,e.toStringTag,{value:"WritableStream",configurable:!0});class at{constructor(e){if(M(e,1,"WritableStreamDefaultWriter"),Ye(e,"First parameter"),Je(e))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=e,e._writer=this;const t=e._state;if("writable"===t)!ot(e)&&e._backpressure?kt(this):jt(this),Pt(this);else if("erroring"===t)Ot(this,e._storedError),Pt(this);else if("closed"===t)jt(this),Pt(r=this),Ct(r);else{const t=e._storedError;Ot(this,t),qt(this,t)}var r}get closed(){return st(this)?this._closedPromise:d(Rt("closed"))}get desiredSize(){if(!st(this))throw Rt("desiredSize");if(void 0===this._ownerWritableStream)throw Tt("desiredSize");return function(e){const t=e._ownerWritableStream,r=t._state;if("errored"===r||"erroring"===r)return null;if("closed"===r)return 0;return mt(t._writableStreamController)}(this)}get ready(){return st(this)?this._readyPromise:d(Rt("ready"))}abort(e=undefined){return st(this)?void 0===this._ownerWritableStream?d(Tt("abort")):function(e,t){return Ke(e._ownerWritableStream,t)}(this,e):d(Rt("abort"))}close(){if(!st(this))return d(Rt("close"));const e=this._ownerWritableStream;return void 0===e?d(Tt("close")):ot(e)?d(new TypeError("Cannot close an already-closing stream")):lt(this)}releaseLock(){if(!st(this))throw Rt("releaseLock");void 0!==this._ownerWritableStream&&dt(this)}write(e=undefined){return st(this)?void 0===this._ownerWritableStream?d(Tt("write to")):ft(this,e):d(Rt("write"))}}function st(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_ownerWritableStream")}function lt(e){return Ze(e._ownerWritableStream)}function ut(e,t){"pending"===e._closedPromiseState?Et(e,t):function(e,t){qt(e,t)}(e,t)}function ct(e,t){"pending"===e._readyPromiseState?Wt(e,t):function(e,t){Ot(e,t)}(e,t)}function dt(e){const t=e._ownerWritableStream,r=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");ct(e,r),ut(e,r),t._writer=void 0,e._ownerWritableStream=void 0}function ft(e,t){const r=e._ownerWritableStream,o=r._writableStreamController,n=function(e,t){try{return e._strategySizeAlgorithm(t)}catch(t){return gt(e,t),1}}(o,t);if(r!==e._ownerWritableStream)return d(Tt("write to"));const i=r._state;if("errored"===i)return d(r._storedError);if(ot(r)||"closed"===i)return d(new TypeError("The stream is closing or closed and cannot be written to"));if("erroring"===i)return d(r._storedError);const a=function(e){return u(((t,r)=>{const o={_resolve:t,_reject:r};e._writeRequests.push(o)}))}(r);return function(e,t,r){try{le(e,t,r)}catch(t){return void gt(e,t)}const o=e._controlledWritableStream;if(!ot(o)&&"writable"===o._state){it(o,wt(e))}yt(e)}(o,t,n),a}Object.defineProperties(at.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(at.prototype,e.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});const ht={};class _t{constructor(){throw new TypeError("Illegal constructor")}error(e=undefined){if(!function(e){if(!o(e))return!1;if(!Object.prototype.hasOwnProperty.call(e,"_controlledWritableStream"))return!1;return!0}(this))throw new TypeError("WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController");"writable"===this._controlledWritableStream._state&&vt(this,e)}[O](e){const t=this._abortAlgorithm(e);return pt(this),t}[j](){ue(this)}}function bt(e,t,r,o,n,i,a,s){t._controlledWritableStream=e,e._writableStreamController=t,t._queue=void 0,t._queueTotalSize=void 0,ue(t),t._started=!1,t._strategySizeAlgorithm=s,t._strategyHWM=a,t._writeAlgorithm=o,t._closeAlgorithm=n,t._abortAlgorithm=i;const l=wt(t);it(e,l);h(c(r()),(()=>{t._started=!0,yt(t)}),(r=>{t._started=!0,et(e,r)}))}function pt(e){e._writeAlgorithm=void 0,e._closeAlgorithm=void 0,e._abortAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function mt(e){return e._strategyHWM-e._queueTotalSize}function yt(e){const t=e._controlledWritableStream;if(!e._started)return;if(void 0!==t._inFlightWriteRequest)return;if("erroring"===t._state)return void rt(t);if(0===e._queue.length)return;const r=e._queue.peek().value;r===ht?function(e){const t=e._controlledWritableStream;(function(e){e._inFlightCloseRequest=e._closeRequest,e._closeRequest=void 0})(t),se(e);const r=e._closeAlgorithm();pt(e),h(r,(()=>{!function(e){e._inFlightCloseRequest._resolve(void 0),e._inFlightCloseRequest=void 0,"erroring"===e._state&&(e._storedError=void 0,void 0!==e._pendingAbortRequest&&(e._pendingAbortRequest._resolve(),e._pendingAbortRequest=void 0)),e._state="closed";const t=e._writer;void 0!==t&&Ct(t)}(t)}),(e=>{!function(e,t){e._inFlightCloseRequest._reject(t),e._inFlightCloseRequest=void 0,void 0!==e._pendingAbortRequest&&(e._pendingAbortRequest._reject(t),e._pendingAbortRequest=void 0),et(e,t)}(t,e)}))}(e):function(e,t){const r=e._controlledWritableStream;!function(e){e._inFlightWriteRequest=e._writeRequests.shift()}(r);const o=e._writeAlgorithm(t);h(o,(()=>{!function(e){e._inFlightWriteRequest._resolve(void 0),e._inFlightWriteRequest=void 0}(r);const t=r._state;if(se(e),!ot(r)&&"writable"===t){const t=wt(e);it(r,t)}yt(e)}),(t=>{"writable"===r._state&&pt(e),function(e,t){e._inFlightWriteRequest._reject(t),e._inFlightWriteRequest=void 0,et(e,t)}(r,t)}))}(e,r)}function gt(e,t){"writable"===e._controlledWritableStream._state&&vt(e,t)}function wt(e){return mt(e)<=0}function vt(e,t){const r=e._controlledWritableStream;pt(e),tt(r,t)}function St(e){return new TypeError(`WritableStream.prototype.${e} can only be used on a WritableStream`)}function Rt(e){return new TypeError(`WritableStreamDefaultWriter.prototype.${e} can only be used on a WritableStreamDefaultWriter`)}function Tt(e){return new TypeError("Cannot "+e+" a stream using a released writer")}function Pt(e){e._closedPromise=u(((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r,e._closedPromiseState="pending"}))}function qt(e,t){Pt(e),Et(e,t)}function Et(e,t){void 0!==e._closedPromise_reject&&(m(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="rejected")}function Ct(e){void 0!==e._closedPromise_resolve&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="resolved")}function kt(e){e._readyPromise=u(((t,r)=>{e._readyPromise_resolve=t,e._readyPromise_reject=r})),e._readyPromiseState="pending"}function Ot(e,t){kt(e),Wt(e,t)}function jt(e){kt(e),At(e)}function Wt(e,t){void 0!==e._readyPromise_reject&&(m(e._readyPromise),e._readyPromise_reject(t),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="rejected")}function At(e){void 0!==e._readyPromise_resolve&&(e._readyPromise_resolve(void 0),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="fulfilled")}Object.defineProperties(_t.prototype,{error:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(_t.prototype,e.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});const zt="undefined"!=typeof DOMException?DOMException:void 0;const Ft=function(e){if("function"!=typeof e&&"object"!=typeof e)return!1;try{return new e,!0}catch(e){return!1}}(zt)?zt:function(){const e=function(e,t){this.message=e||"",this.name=t||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return Object.defineProperty(e.prototype=Object.create(Error.prototype),"constructor",{value:e,writable:!0,configurable:!0}),e}();function Bt(e,r,o,n,i,a){const s=H(e),l=Ue(r);e._disturbed=!0;let p=!1,y=c(void 0);return u(((g,w)=>{let v;if(void 0!==a){if(v=()=>{const t=new Ft("Aborted","AbortError"),o=[];n||o.push((()=>"writable"===r._state?Ke(r,t):c(void 0))),i||o.push((()=>"readable"===e._state?ar(e,t):c(void 0))),C((()=>Promise.all(o.map((e=>e())))),!0,t)},a.aborted)return void v();a.addEventListener("abort",v)}var S,R,P;if(E(e,s._closedPromise,(e=>{n?k(!0,e):C((()=>Ke(r,e)),!0,e)})),E(r,l._closedPromise,(t=>{i?k(!0,t):C((()=>ar(e,t)),!0,t)})),S=e,R=s._closedPromise,P=()=>{o?k():C((()=>function(e){const t=e._ownerWritableStream,r=t._state;return ot(t)||"closed"===r?c(void 0):"errored"===r?d(t._storedError):lt(e)}(l)))},"closed"===S._state?P():_(R,P),ot(r)||"closed"===r._state){const t=new TypeError("the destination writable stream closed before all data could be piped to it");i?k(!0,t):C((()=>ar(e,t)),!0,t)}function q(){const e=y;return f(y,(()=>e!==y?q():void 0))}function E(e,t,r){"errored"===e._state?r(e._storedError):b(t,r)}function C(e,t,o){function n(){h(e(),(()=>O(t,o)),(e=>O(!0,e)))}p||(p=!0,"writable"!==r._state||ot(r)?n():_(q(),n))}function k(e,t){p||(p=!0,"writable"!==r._state||ot(r)?O(e,t):_(q(),(()=>O(e,t))))}function O(e,t){dt(l),T(s),void 0!==a&&a.removeEventListener("abort",v),e?w(t):g(void 0)}m(u(((e,r)=>{!function o(n){n?e():f(p?c(!0):f(l._readyPromise,(()=>u(((e,r)=>{K(s,{_chunkSteps:r=>{y=f(ft(l,r),void 0,t),e(!1)},_closeSteps:()=>e(!0),_errorSteps:r})})))),o,r)}(!1)})))}))}class It{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Lt(this))throw Ut("desiredSize");return Ht(this)}close(){if(!Lt(this))throw Ut("close");if(!Yt(this))throw new TypeError("The stream is not in a state that permits close");xt(this)}enqueue(e=undefined){if(!Lt(this))throw Ut("enqueue");if(!Yt(this))throw new TypeError("The stream is not in a state that permits enqueue");return Nt(this,e)}error(e=undefined){if(!Lt(this))throw Ut("error");Qt(this,e)}[W](e){ue(this);const t=this._cancelAlgorithm(e);return Dt(this),t}[A](e){const t=this._controlledReadableStream;if(this._queue.length>0){const r=se(this);this._closeRequested&&0===this._queue.length?(Dt(this),sr(t)):Mt(this),e._chunkSteps(r)}else Y(t,e),Mt(this)}}function Lt(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableStream")}function Mt(e){if(!$t(e))return;if(e._pulling)return void(e._pullAgain=!0);e._pulling=!0;h(e._pullAlgorithm(),(()=>{e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,Mt(e))}),(t=>{Qt(e,t)}))}function $t(e){const t=e._controlledReadableStream;if(!Yt(e))return!1;if(!e._started)return!1;if(ir(t)&&U(t)>0)return!0;return Ht(e)>0}function Dt(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function xt(e){if(!Yt(e))return;const t=e._controlledReadableStream;e._closeRequested=!0,0===e._queue.length&&(Dt(e),sr(t))}function Nt(e,t){if(!Yt(e))return;const r=e._controlledReadableStream;if(ir(r)&&U(r)>0)V(r,t,!1);else{let r;try{r=e._strategySizeAlgorithm(t)}catch(t){throw Qt(e,t),t}try{le(e,t,r)}catch(t){throw Qt(e,t),t}}Mt(e)}function Qt(e,t){const r=e._controlledReadableStream;"readable"===r._state&&(ue(e),Dt(e),lr(r,t))}function Ht(e){const t=e._controlledReadableStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function Yt(e){const t=e._controlledReadableStream._state;return!e._closeRequested&&"readable"===t}function Vt(e,t,r,o,n,i,a){t._controlledReadableStream=e,t._queue=void 0,t._queueTotalSize=void 0,ue(t),t._started=!1,t._closeRequested=!1,t._pullAgain=!1,t._pulling=!1,t._strategySizeAlgorithm=a,t._strategyHWM=i,t._pullAlgorithm=o,t._cancelAlgorithm=n,e._readableStreamController=t;h(c(r()),(()=>{t._started=!0,Mt(t)}),(e=>{Qt(t,e)}))}function Ut(e){return new TypeError(`ReadableStreamDefaultController.prototype.${e} can only be used on a ReadableStreamDefaultController`)}function Gt(e,t,r){return I(e,r),r=>w(e,t,[r])}function Xt(e,t,r){return I(e,r),r=>w(e,t,[r])}function Jt(e,t,r){return I(e,r),r=>g(e,t,[r])}function Kt(e,t){if("bytes"!==(e=""+e))throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamType`);return e}function Zt(e,t){if("byob"!==(e=""+e))throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamReaderMode`);return e}function er(e,t){B(e,t);const r=null==e?void 0:e.preventAbort,o=null==e?void 0:e.preventCancel,n=null==e?void 0:e.preventClose,i=null==e?void 0:e.signal;return void 0!==i&&function(e,t){if(!function(e){if("object"!=typeof e||null===e)return!1;try{return"boolean"==typeof e.aborted}catch(e){return!1}}(e))throw new TypeError(t+" is not an AbortSignal.")}(i,t+" has member 'signal' that"),{preventAbort:!!r,preventCancel:!!o,preventClose:!!n,signal:i}}Object.defineProperties(It.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(It.prototype,e.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});class tr{constructor(e={},t={}){void 0===e?e=null:L(e,"First parameter");const r=$e(t,"Second parameter"),o=function(e,t){B(e,t);const r=e,o=null==r?void 0:r.autoAllocateChunkSize,n=null==r?void 0:r.cancel,i=null==r?void 0:r.pull,a=null==r?void 0:r.start,s=null==r?void 0:r.type;return{autoAllocateChunkSize:void 0===o?void 0:N(o,t+" has member 'autoAllocateChunkSize' that"),cancel:void 0===n?void 0:Gt(n,r,t+" has member 'cancel' that"),pull:void 0===i?void 0:Xt(i,r,t+" has member 'pull' that"),start:void 0===a?void 0:Jt(a,r,t+" has member 'start' that"),type:void 0===s?void 0:Kt(s,t+" has member 'type' that")}}(e,"First parameter");if(or(this),"bytes"===o.type){if(void 0!==r.size)throw new RangeError("The strategy for a byte stream cannot have a size function");ke(this,o,Le(r,0))}else{const e=Me(r);!function(e,t,r,o){const n=Object.create(It.prototype);let i=()=>{},a=()=>c(void 0),s=()=>c(void 0);void 0!==t.start&&(i=()=>t.start(n)),void 0!==t.pull&&(a=()=>t.pull(n)),void 0!==t.cancel&&(s=e=>t.cancel(e)),Vt(e,n,i,a,s,r,o)}(this,o,Le(r,1),e)}}get locked(){if(!nr(this))throw ur("locked");return ir(this)}cancel(e=undefined){return nr(this)?ir(this)?d(new TypeError("Cannot cancel a stream that already has a reader")):ar(this,e):d(ur("cancel"))}getReader(e=undefined){if(!nr(this))throw ur("getReader");return void 0===function(e,t){B(e,t);const r=null==e?void 0:e.mode;return{mode:void 0===r?void 0:Zt(r,t+" has member 'mode' that")}}(e,"First parameter").mode?H(this):new Fe(this)}pipeThrough(e,t={}){if(!nr(this))throw ur("pipeThrough");M(e,1,"pipeThrough");const r=function(e,t){B(e,t);const r=null==e?void 0:e.readable;$(r,"readable","ReadableWritablePair"),Q(r,t+" has member 'readable' that");const o=null==e?void 0:e.writable;return $(o,"writable","ReadableWritablePair"),Ye(o,t+" has member 'writable' that"),{readable:r,writable:o}}(e,"First parameter"),o=er(t,"Second parameter");if(ir(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(Je(r.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");return m(Bt(this,r.writable,o.preventClose,o.preventAbort,o.preventCancel,o.signal)),r.readable}pipeTo(e,t={}){if(!nr(this))return d(ur("pipeTo"));if(void 0===e)return d("Parameter 1 is required in 'pipeTo'.");if(!Xe(e))return d(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let r;try{r=er(t,"Second parameter")}catch(e){return d(e)}return ir(this)?d(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):Je(e)?d(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):Bt(this,e,r.preventClose,r.preventAbort,r.preventCancel,r.signal)}tee(){if(!nr(this))throw ur("tee");const e=function(e,t){const r=H(e);let o,n,i,a,s,l=!1,d=!1,f=!1;const h=u((e=>{s=e}));function _(){return l||(l=!0,K(r,{_chunkSteps:e=>{y((()=>{l=!1;const t=e,r=e;d||Nt(i._readableStreamController,t),f||Nt(a._readableStreamController,r)}))},_closeSteps:()=>{l=!1,d||xt(i._readableStreamController),f||xt(a._readableStreamController),d&&f||s(void 0)},_errorSteps:()=>{l=!1}})),c(void 0)}function p(){}return i=rr(p,_,(function(t){if(d=!0,o=t,f){const t=ce([o,n]),r=ar(e,t);s(r)}return h})),a=rr(p,_,(function(t){if(f=!0,n=t,d){const t=ce([o,n]),r=ar(e,t);s(r)}return h})),b(r._closedPromise,(e=>{Qt(i._readableStreamController,e),Qt(a._readableStreamController,e),d&&f||s(void 0)})),[i,a]}(this);return ce(e)}values(e=undefined){if(!nr(this))throw ur("values");return function(e,t){const r=H(e),o=new te(r,t),n=Object.create(re);return n._asyncIteratorImpl=o,n}(this,function(e,t){return B(e,t),{preventCancel:!!(null==e?void 0:e.preventCancel)}}(e,"First parameter").preventCancel)}}function rr(e,t,r,o=1,n=(()=>1)){const i=Object.create(tr.prototype);or(i);return Vt(i,Object.create(It.prototype),e,t,r,o,n),i}function or(e){e._state="readable",e._reader=void 0,e._storedError=void 0,e._disturbed=!1}function nr(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readableStreamController")}function ir(e){return void 0!==e._reader}function ar(e,r){if(e._disturbed=!0,"closed"===e._state)return c(void 0);if("errored"===e._state)return d(e._storedError);sr(e);return p(e._readableStreamController[W](r),t)}function sr(e){e._state="closed";const t=e._reader;void 0!==t&&(k(t),J(t)&&(t._readRequests.forEach((e=>{e._closeSteps()})),t._readRequests=new v))}function lr(e,t){e._state="errored",e._storedError=t;const r=e._reader;void 0!==r&&(C(r,t),J(r)?(r._readRequests.forEach((e=>{e._errorSteps(t)})),r._readRequests=new v):(r._readIntoRequests.forEach((e=>{e._errorSteps(t)})),r._readIntoRequests=new v))}function ur(e){return new TypeError(`ReadableStream.prototype.${e} can only be used on a ReadableStream`)}function cr(e,t){B(e,t);const r=null==e?void 0:e.highWaterMark;return $(r,"highWaterMark","QueuingStrategyInit"),{highWaterMark:D(r)}}Object.defineProperties(tr.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(tr.prototype,e.toStringTag,{value:"ReadableStream",configurable:!0}),"symbol"==typeof e.asyncIterator&&Object.defineProperty(tr.prototype,e.asyncIterator,{value:tr.prototype.values,writable:!0,configurable:!0});const dr=function(e){return e.byteLength};class fr{constructor(e){M(e,1,"ByteLengthQueuingStrategy"),e=cr(e,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=e.highWaterMark}get highWaterMark(){if(!_r(this))throw hr("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!_r(this))throw hr("size");return dr}}function hr(e){return new TypeError(`ByteLengthQueuingStrategy.prototype.${e} can only be used on a ByteLengthQueuingStrategy`)}function _r(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_byteLengthQueuingStrategyHighWaterMark")}Object.defineProperties(fr.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(fr.prototype,e.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});const br=function(){return 1};class pr{constructor(e){M(e,1,"CountQueuingStrategy"),e=cr(e,"First parameter"),this._countQueuingStrategyHighWaterMark=e.highWaterMark}get highWaterMark(){if(!yr(this))throw mr("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!yr(this))throw mr("size");return br}}function mr(e){return new TypeError(`CountQueuingStrategy.prototype.${e} can only be used on a CountQueuingStrategy`)}function yr(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_countQueuingStrategyHighWaterMark")}function gr(e,t,r){return I(e,r),r=>w(e,t,[r])}function wr(e,t,r){return I(e,r),r=>g(e,t,[r])}function vr(e,t,r){return I(e,r),(r,o)=>w(e,t,[r,o])}Object.defineProperties(pr.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(pr.prototype,e.toStringTag,{value:"CountQueuingStrategy",configurable:!0});class Sr{constructor(e={},t={},r={}){void 0===e&&(e=null);const o=$e(t,"Second parameter"),n=$e(r,"Third parameter"),i=function(e,t){B(e,t);const r=null==e?void 0:e.flush,o=null==e?void 0:e.readableType,n=null==e?void 0:e.start,i=null==e?void 0:e.transform,a=null==e?void 0:e.writableType;return{flush:void 0===r?void 0:gr(r,e,t+" has member 'flush' that"),readableType:o,start:void 0===n?void 0:wr(n,e,t+" has member 'start' that"),transform:void 0===i?void 0:vr(i,e,t+" has member 'transform' that"),writableType:a}}(e,"First parameter");if(void 0!==i.readableType)throw new RangeError("Invalid readableType specified");if(void 0!==i.writableType)throw new RangeError("Invalid writableType specified");const a=Le(n,0),s=Me(n),l=Le(o,1),f=Me(o);let h;!function(e,t,r,o,n,i){function a(){return t}function s(t){return function(e,t){const r=e._transformStreamController;if(e._backpressure){return p(e._backpressureChangePromise,(()=>{const o=e._writable;if("erroring"===o._state)throw o._storedError;return jr(r,t)}))}return jr(r,t)}(e,t)}function l(t){return function(e,t){return Tr(e,t),c(void 0)}(e,t)}function u(){return function(e){const t=e._readable,r=e._transformStreamController,o=r._flushAlgorithm();return kr(r),p(o,(()=>{if("errored"===t._state)throw t._storedError;xt(t._readableStreamController)}),(r=>{throw Tr(e,r),t._storedError}))}(e)}function d(){return function(e){return qr(e,!1),e._backpressureChangePromise}(e)}function f(t){return Pr(e,t),c(void 0)}e._writable=function(e,t,r,o,n=1,i=(()=>1)){const a=Object.create(Ve.prototype);return Ge(a),bt(a,Object.create(_t.prototype),e,t,r,o,n,i),a}(a,s,u,l,r,o),e._readable=rr(a,d,f,n,i),e._backpressure=void 0,e._backpressureChangePromise=void 0,e._backpressureChangePromise_resolve=void 0,qr(e,!0),e._transformStreamController=void 0}(this,u((e=>{h=e})),l,f,a,s),function(e,t){const r=Object.create(Er.prototype);let o=e=>{try{return Or(r,e),c(void 0)}catch(e){return d(e)}},n=()=>c(void 0);void 0!==t.transform&&(o=e=>t.transform(e,r));void 0!==t.flush&&(n=()=>t.flush(r));!function(e,t,r,o){t._controlledTransformStream=e,e._transformStreamController=t,t._transformAlgorithm=r,t._flushAlgorithm=o}(e,r,o,n)}(this,i),void 0!==i.start?h(i.start(this._transformStreamController)):h(void 0)}get readable(){if(!Rr(this))throw Ar("readable");return this._readable}get writable(){if(!Rr(this))throw Ar("writable");return this._writable}}function Rr(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_transformStreamController")}function Tr(e,t){Qt(e._readable._readableStreamController,t),Pr(e,t)}function Pr(e,t){kr(e._transformStreamController),gt(e._writable._writableStreamController,t),e._backpressure&&qr(e,!1)}function qr(e,t){void 0!==e._backpressureChangePromise&&e._backpressureChangePromise_resolve(),e._backpressureChangePromise=u((t=>{e._backpressureChangePromise_resolve=t})),e._backpressure=t}Object.defineProperties(Sr.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(Sr.prototype,e.toStringTag,{value:"TransformStream",configurable:!0});class Er{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Cr(this))throw Wr("desiredSize");return Ht(this._controlledTransformStream._readable._readableStreamController)}enqueue(e=undefined){if(!Cr(this))throw Wr("enqueue");Or(this,e)}error(e=undefined){if(!Cr(this))throw Wr("error");var t;t=e,Tr(this._controlledTransformStream,t)}terminate(){if(!Cr(this))throw Wr("terminate");!function(e){const t=e._controlledTransformStream;xt(t._readable._readableStreamController);Pr(t,new TypeError("TransformStream terminated"))}(this)}}function Cr(e){return!!o(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledTransformStream")}function kr(e){e._transformAlgorithm=void 0,e._flushAlgorithm=void 0}function Or(e,t){const r=e._controlledTransformStream,o=r._readable._readableStreamController;if(!Yt(o))throw new TypeError("Readable side is not in a state that permits enqueue");try{Nt(o,t)}catch(e){throw Pr(r,e),r._readable._storedError}const n=function(e){return!$t(e)}(o);n!==r._backpressure&&qr(r,!0)}function jr(e,t){return p(e._transformAlgorithm(t),void 0,(t=>{throw Tr(e._controlledTransformStream,t),t}))}function Wr(e){return new TypeError(`TransformStreamDefaultController.prototype.${e} can only be used on a TransformStreamDefaultController`)}function Ar(e){return new TypeError(`TransformStream.prototype.${e} can only be used on a TransformStream`)}Object.defineProperties(Er.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),"symbol"==typeof e.toStringTag&&Object.defineProperty(Er.prototype,e.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});export{fr as ByteLengthQueuingStrategy,pr as CountQueuingStrategy,fe as ReadableByteStreamController,tr as ReadableStream,Fe as ReadableStreamBYOBReader,de as ReadableStreamBYOBRequest,It as ReadableStreamDefaultController,X as ReadableStreamDefaultReader,Sr as TransformStream,Er as TransformStreamDefaultController,Ve as WritableStream,_t as WritableStreamDefaultController,at as WritableStreamDefaultWriter};
|
|
3
3
|
//# sourceMappingURL=ponyfill.es6.min.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! OpenPGP.js v5.
|
|
1
|
+
/*! OpenPGP.js v5.9.0 - 2023-05-15 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
|
|
2
2
|
const globalThis = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! OpenPGP.js v5.
|
|
1
|
+
/*! OpenPGP.js v5.9.0 - 2023-05-15 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
|
|
2
2
|
"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;
|
|
3
3
|
/*! *****************************************************************************
|
|
4
4
|
Copyright (c) Microsoft Corporation.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! OpenPGP.js v5.
|
|
1
|
+
/*! OpenPGP.js v5.9.0 - 2023-05-15 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
|
|
2
2
|
const globalThis = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
3
3
|
|
|
4
4
|
/*! *****************************************************************************
|
package/dist/node/openpgp.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! OpenPGP.js v5.
|
|
1
|
+
/*! OpenPGP.js v5.9.0 - 2023-05-15 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
const globalThis = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
@@ -1927,7 +1927,7 @@ const util = {
|
|
|
1927
1927
|
if (!util.isString(data)) {
|
|
1928
1928
|
return false;
|
|
1929
1929
|
}
|
|
1930
|
-
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+([a-zA-Z]{2,}
|
|
1930
|
+
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+([a-zA-Z]{2,}[0-9]*|xn--[a-zA-Z\-0-9]+)))$/;
|
|
1931
1931
|
return re.test(data);
|
|
1932
1932
|
},
|
|
1933
1933
|
|
|
@@ -2638,6 +2638,8 @@ var enums = {
|
|
|
2638
2638
|
splitPrivateKey: 16,
|
|
2639
2639
|
/** 0x20 - This key may be used for authentication. */
|
|
2640
2640
|
authentication: 32,
|
|
2641
|
+
/** This key may be used for forwarded communications */
|
|
2642
|
+
forwardedCommunication: 64,
|
|
2641
2643
|
/** 0x80 - The private component of this key may be in the
|
|
2642
2644
|
* possession of more than one person. */
|
|
2643
2645
|
sharedPrivateKey: 128
|
|
@@ -2842,6 +2844,13 @@ var config = {
|
|
|
2842
2844
|
* @property {Boolean} allowUnauthenticatedStream
|
|
2843
2845
|
*/
|
|
2844
2846
|
allowUnauthenticatedStream: false,
|
|
2847
|
+
/**
|
|
2848
|
+
* Allow decrypting forwarded messages, using keys with 0x40 ('forwarded communication') flag.
|
|
2849
|
+
* Note: this is related to a **non-standard feature**.
|
|
2850
|
+
* @memberof module:config
|
|
2851
|
+
* @property {Boolean} allowForwardedMessages
|
|
2852
|
+
*/
|
|
2853
|
+
allowForwardedMessages: false,
|
|
2845
2854
|
/**
|
|
2846
2855
|
* @memberof module:config
|
|
2847
2856
|
* @property {Boolean} checksumRequired Do not throw error when armor is missing a checksum
|
|
@@ -2918,6 +2927,14 @@ var config = {
|
|
|
2918
2927
|
* @property {Boolean} ignoreMalformedPackets Ignore malformed packets on parsing instead of throwing an error
|
|
2919
2928
|
*/
|
|
2920
2929
|
ignoreMalformedPackets: false,
|
|
2930
|
+
/**
|
|
2931
|
+
* Parsing of packets is normally restricted to a predefined set of packets. For example a Sym. Encrypted Integrity Protected Data Packet can only
|
|
2932
|
+
* contain a certain set of packets including LiteralDataPacket. With this setting we can allow additional packets, which is probably not advisable
|
|
2933
|
+
* as a global config setting, but can be used for specific function calls (e.g. decrypt method of Message).
|
|
2934
|
+
* @memberof module:config
|
|
2935
|
+
* @property {Array} additionalAllowedPackets Allow additional packets on parsing. Defined as array of packet classes, e.g. [PublicKeyPacket]
|
|
2936
|
+
*/
|
|
2937
|
+
additionalAllowedPackets: [],
|
|
2921
2938
|
/**
|
|
2922
2939
|
* @memberof module:config
|
|
2923
2940
|
* @property {Boolean} showVersion Whether to include {@link module:config/config.versionString} in armored messages
|
|
@@ -2932,7 +2949,7 @@ var config = {
|
|
|
2932
2949
|
* @memberof module:config
|
|
2933
2950
|
* @property {String} versionString A version string to be included in armored messages
|
|
2934
2951
|
*/
|
|
2935
|
-
versionString: 'OpenPGP.js 5.
|
|
2952
|
+
versionString: 'OpenPGP.js 5.9.0',
|
|
2936
2953
|
/**
|
|
2937
2954
|
* @memberof module:config
|
|
2938
2955
|
* @property {String} commentString A comment string to be included in armored messages
|
|
@@ -14428,7 +14445,7 @@ function buildEcdhParam(public_algo, oid, kdfParams, fingerprint) {
|
|
|
14428
14445
|
return util.concatUint8Array([
|
|
14429
14446
|
oid.write(),
|
|
14430
14447
|
new Uint8Array([public_algo]),
|
|
14431
|
-
kdfParams.
|
|
14448
|
+
kdfParams.write(true),
|
|
14432
14449
|
util.stringToUint8Array('Anonymous Sender '),
|
|
14433
14450
|
kdfParams.replacementFingerprint || fingerprint.subarray(0, 20)
|
|
14434
14451
|
]);
|
|
@@ -15270,32 +15287,28 @@ class ECDHSymmetricKey {
|
|
|
15270
15287
|
|
|
15271
15288
|
// OpenPGP.js - An OpenPGP implementation in javascript
|
|
15272
15289
|
|
|
15290
|
+
const VERSION_FORWARDING = 0xFF;
|
|
15291
|
+
|
|
15273
15292
|
class KDFParams {
|
|
15274
15293
|
/**
|
|
15275
15294
|
* @param {Integer} version Version, defaults to 1
|
|
15276
15295
|
* @param {enums.hash} hash Hash algorithm
|
|
15277
15296
|
* @param {enums.symmetric} cipher Symmetric algorithm
|
|
15278
|
-
* @param {
|
|
15279
|
-
* @param {Uint8Array} replacementFingerprint (v2 only) fingerprint to use instead of recipient one (v5 keys, the 20 leftmost bytes of the fingerprint)
|
|
15280
|
-
* @param {Uint8Array} replacementKDFParams (v2 only) serialized KDF params to use in KDF digest computation
|
|
15297
|
+
* @param {Uint8Array} replacementFingerprint (forwarding only) fingerprint to use instead of recipient one (v5 keys, the 20 leftmost bytes of the fingerprint)
|
|
15281
15298
|
*/
|
|
15282
15299
|
constructor(data) {
|
|
15283
15300
|
if (data) {
|
|
15284
|
-
const { version, hash, cipher,
|
|
15301
|
+
const { version, hash, cipher, replacementFingerprint } = data;
|
|
15285
15302
|
this.version = version || 1;
|
|
15286
15303
|
this.hash = hash;
|
|
15287
15304
|
this.cipher = cipher;
|
|
15288
15305
|
|
|
15289
|
-
this.flags = flags;
|
|
15290
15306
|
this.replacementFingerprint = replacementFingerprint;
|
|
15291
|
-
this.replacementKDFParams = replacementKDFParams;
|
|
15292
15307
|
} else {
|
|
15293
15308
|
this.version = null;
|
|
15294
15309
|
this.hash = null;
|
|
15295
15310
|
this.cipher = null;
|
|
15296
|
-
this.flags = null;
|
|
15297
15311
|
this.replacementFingerprint = null;
|
|
15298
|
-
this.replacementKDFParams = null;
|
|
15299
15312
|
}
|
|
15300
15313
|
}
|
|
15301
15314
|
|
|
@@ -15305,44 +15318,41 @@ class KDFParams {
|
|
|
15305
15318
|
* @returns {Number} Number of read bytes.
|
|
15306
15319
|
*/
|
|
15307
15320
|
read(input) {
|
|
15321
|
+
const totalBytes = input[0];
|
|
15308
15322
|
this.version = input[1];
|
|
15309
15323
|
this.hash = input[2];
|
|
15310
15324
|
this.cipher = input[3];
|
|
15311
15325
|
let readBytes = 4;
|
|
15312
15326
|
|
|
15313
|
-
if (this.version ===
|
|
15314
|
-
|
|
15315
|
-
|
|
15316
|
-
|
|
15317
|
-
readBytes += 20;
|
|
15318
|
-
}
|
|
15319
|
-
if (this.flags & enums.kdfFlags.replace_kdf_params) {
|
|
15320
|
-
const fieldLength = input[readBytes] + 1; // account for length
|
|
15321
|
-
this.replacementKDFParams = input.slice(readBytes, readBytes + fieldLength);
|
|
15322
|
-
readBytes += fieldLength;
|
|
15323
|
-
}
|
|
15327
|
+
if (this.version === VERSION_FORWARDING) {
|
|
15328
|
+
const fingerprintLength = totalBytes - readBytes + 1; // acount for length byte
|
|
15329
|
+
this.replacementFingerprint = input.slice(readBytes, readBytes + fingerprintLength);
|
|
15330
|
+
readBytes += fingerprintLength;
|
|
15324
15331
|
}
|
|
15325
15332
|
return readBytes;
|
|
15326
15333
|
}
|
|
15327
15334
|
|
|
15328
15335
|
/**
|
|
15329
15336
|
* Write KDFParams to an Uint8Array
|
|
15337
|
+
* @param {Boolean} [forReplacementParams] - forwarding only: whether to serialize data to use for replacement params
|
|
15330
15338
|
* @returns {Uint8Array} Array with the KDFParams value
|
|
15331
15339
|
*/
|
|
15332
|
-
write() {
|
|
15333
|
-
if (!this.version || this.version === 1) {
|
|
15340
|
+
write(forReplacementParams) {
|
|
15341
|
+
if (!this.version || this.version === 1 || forReplacementParams) {
|
|
15334
15342
|
return new Uint8Array([3, 1, this.hash, this.cipher]);
|
|
15335
15343
|
}
|
|
15336
15344
|
|
|
15337
|
-
const
|
|
15338
|
-
new Uint8Array([
|
|
15339
|
-
|
|
15340
|
-
|
|
15345
|
+
const forwardingFields = util.concatUint8Array([
|
|
15346
|
+
new Uint8Array([
|
|
15347
|
+
3 + this.replacementFingerprint.length,
|
|
15348
|
+
this.version,
|
|
15349
|
+
this.hash,
|
|
15350
|
+
this.cipher
|
|
15351
|
+
]),
|
|
15352
|
+
this.replacementFingerprint
|
|
15341
15353
|
]);
|
|
15342
15354
|
|
|
15343
|
-
|
|
15344
|
-
v2Fields[0] = v2Fields.length - 1;
|
|
15345
|
-
return new Uint8Array(v2Fields);
|
|
15355
|
+
return forwardingFields;
|
|
15346
15356
|
}
|
|
15347
15357
|
}
|
|
15348
15358
|
|
|
@@ -24312,6 +24322,9 @@ class PacketList extends Array {
|
|
|
24312
24322
|
* @async
|
|
24313
24323
|
*/
|
|
24314
24324
|
async read(bytes, allowedPackets, config$1 = config) {
|
|
24325
|
+
if (config$1.additionalAllowedPackets.length) {
|
|
24326
|
+
allowedPackets = { ...allowedPackets, ...util.constructAllowedPackets(config$1.additionalAllowedPackets) };
|
|
24327
|
+
}
|
|
24315
24328
|
this.stream = transformPair(bytes, async (readable, writable) => {
|
|
24316
24329
|
const writer = getWriter(writable);
|
|
24317
24330
|
try {
|
|
@@ -27865,7 +27878,8 @@ function isValidDecryptionKeyPacket(signature, config) {
|
|
|
27865
27878
|
|
|
27866
27879
|
return !signature.keyFlags ||
|
|
27867
27880
|
(signature.keyFlags[0] & enums.keyFlags.encryptCommunication) !== 0 ||
|
|
27868
|
-
(signature.keyFlags[0] & enums.keyFlags.encryptStorage) !== 0
|
|
27881
|
+
(signature.keyFlags[0] & enums.keyFlags.encryptStorage) !== 0 ||
|
|
27882
|
+
(config.allowForwardedMessages && (signature.keyFlags[0] & enums.keyFlags.forwardedCommunication) !== 0);
|
|
27869
27883
|
}
|
|
27870
27884
|
|
|
27871
27885
|
/**
|
|
@@ -28813,7 +28827,7 @@ class Key {
|
|
|
28813
28827
|
throw exception || new Error('Could not find primary user');
|
|
28814
28828
|
}
|
|
28815
28829
|
await Promise.all(users.map(async function (a) {
|
|
28816
|
-
return a.
|
|
28830
|
+
return a.selfCertification.revoked || a.user.isRevoked(a.selfCertification, null, date, config$1);
|
|
28817
28831
|
}));
|
|
28818
28832
|
// sort by primary user flag and signature creation time
|
|
28819
28833
|
const primaryUser = users.sort(function(a, b) {
|
|
@@ -29036,7 +29050,8 @@ class Key {
|
|
|
29036
29050
|
|
|
29037
29051
|
results.push(...signatures.map(
|
|
29038
29052
|
signature => ({
|
|
29039
|
-
userID: user.userID.userID,
|
|
29053
|
+
userID: user.userID ? user.userID.userID : null,
|
|
29054
|
+
userAttribute: user.userAttribute,
|
|
29040
29055
|
keyID: signature.keyID,
|
|
29041
29056
|
valid: signature.valid
|
|
29042
29057
|
}))
|
|
@@ -44777,6 +44792,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
44777
44792
|
exports.AEADEncryptedDataPacket = AEADEncryptedDataPacket;
|
|
44778
44793
|
exports.CleartextMessage = CleartextMessage;
|
|
44779
44794
|
exports.CompressedDataPacket = CompressedDataPacket;
|
|
44795
|
+
exports.KDFParams = KDFParams;
|
|
44780
44796
|
exports.LiteralDataPacket = LiteralDataPacket;
|
|
44781
44797
|
exports.MarkerPacket = MarkerPacket;
|
|
44782
44798
|
exports.Message = Message;
|