@protontech/openpgp 4.10.5 → 5.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/README.md +311 -239
  2. package/dist/lightweight/bn.interface.min.mjs +3 -0
  3. package/dist/lightweight/bn.interface.min.mjs.map +1 -0
  4. package/dist/lightweight/bn.interface.mjs +340 -0
  5. package/dist/lightweight/bn.min.mjs +3 -0
  6. package/dist/lightweight/bn.min.mjs.map +1 -0
  7. package/dist/lightweight/bn.mjs +3434 -0
  8. package/dist/lightweight/elliptic.min.mjs +3 -0
  9. package/dist/lightweight/elliptic.min.mjs.map +1 -0
  10. package/dist/lightweight/elliptic.mjs +4313 -0
  11. package/dist/lightweight/openpgp.min.mjs +3 -0
  12. package/dist/lightweight/openpgp.min.mjs.map +1 -0
  13. package/dist/lightweight/openpgp.mjs +31375 -0
  14. package/dist/lightweight/ponyfill.es6.min.mjs +3 -0
  15. package/dist/lightweight/ponyfill.es6.min.mjs.map +1 -0
  16. package/dist/lightweight/ponyfill.es6.mjs +3831 -0
  17. package/dist/lightweight/web-streams-adapter.min.mjs +17 -0
  18. package/dist/lightweight/web-streams-adapter.min.mjs.map +1 -0
  19. package/dist/lightweight/web-streams-adapter.mjs +561 -0
  20. package/dist/node/openpgp.js +43943 -0
  21. package/dist/node/openpgp.min.js +17 -0
  22. package/dist/node/openpgp.min.js.map +1 -0
  23. package/dist/node/openpgp.min.mjs +17 -0
  24. package/dist/node/openpgp.min.mjs.map +1 -0
  25. package/dist/node/openpgp.mjs +43880 -0
  26. package/dist/openpgp.js +41080 -41565
  27. package/dist/openpgp.min.js +17 -2
  28. package/dist/openpgp.min.js.map +1 -0
  29. package/dist/openpgp.min.mjs +17 -0
  30. package/dist/openpgp.min.mjs.map +1 -0
  31. package/dist/openpgp.mjs +43868 -0
  32. package/lightweight/package.json +5 -0
  33. package/openpgp.d.ts +889 -0
  34. package/package.json +63 -57
  35. package/dist/compat/openpgp.js +0 -61067
  36. package/dist/compat/openpgp.min.js +0 -2
  37. package/dist/compat/openpgp.worker.js +0 -173
  38. package/dist/compat/openpgp.worker.min.js +0 -2
  39. package/dist/lightweight/elliptic.min.js +0 -5
  40. package/dist/lightweight/openpgp.js +0 -40024
  41. package/dist/lightweight/openpgp.min.js +0 -2
  42. package/dist/lightweight/openpgp.worker.js +0 -173
  43. package/dist/lightweight/openpgp.worker.min.js +0 -2
  44. package/dist/openpgp.worker.js +0 -173
  45. package/dist/openpgp.worker.min.js +0 -2
  46. package/src/cleartext.js +0 -220
  47. package/src/config/config.js +0 -224
  48. package/src/config/index.js +0 -7
  49. package/src/config/localStorage.js +0 -35
  50. package/src/crypto/aes_kw.js +0 -153
  51. package/src/crypto/cfb.js +0 -169
  52. package/src/crypto/cipher/aes.js +0 -27
  53. package/src/crypto/cipher/blowfish.js +0 -398
  54. package/src/crypto/cipher/cast5.js +0 -610
  55. package/src/crypto/cipher/des.js +0 -476
  56. package/src/crypto/cipher/index.js +0 -91
  57. package/src/crypto/cipher/twofish.js +0 -346
  58. package/src/crypto/cmac.js +0 -98
  59. package/src/crypto/crypto.js +0 -394
  60. package/src/crypto/eax.js +0 -172
  61. package/src/crypto/gcm.js +0 -141
  62. package/src/crypto/hash/index.js +0 -163
  63. package/src/crypto/hash/md5.js +0 -205
  64. package/src/crypto/index.js +0 -57
  65. package/src/crypto/ocb.js +0 -274
  66. package/src/crypto/pkcs1.js +0 -170
  67. package/src/crypto/pkcs5.js +0 -55
  68. package/src/crypto/public_key/dsa.js +0 -188
  69. package/src/crypto/public_key/elgamal.js +0 -137
  70. package/src/crypto/public_key/elliptic/curves.js +0 -385
  71. package/src/crypto/public_key/elliptic/ecdh.js +0 -414
  72. package/src/crypto/public_key/elliptic/ecdsa.js +0 -348
  73. package/src/crypto/public_key/elliptic/eddsa.js +0 -119
  74. package/src/crypto/public_key/elliptic/index.js +0 -34
  75. package/src/crypto/public_key/elliptic/indutnyKey.js +0 -85
  76. package/src/crypto/public_key/index.js +0 -28
  77. package/src/crypto/public_key/prime.js +0 -275
  78. package/src/crypto/public_key/rsa.js +0 -597
  79. package/src/crypto/random.js +0 -145
  80. package/src/crypto/signature.js +0 -137
  81. package/src/encoding/armor.js +0 -433
  82. package/src/encoding/base64.js +0 -96
  83. package/src/enums.js +0 -493
  84. package/src/hkp.js +0 -89
  85. package/src/index.js +0 -161
  86. package/src/key/factory.js +0 -326
  87. package/src/key/helper.js +0 -363
  88. package/src/key/index.js +0 -32
  89. package/src/key/key.js +0 -890
  90. package/src/key/subkey.js +0 -187
  91. package/src/key/user.js +0 -230
  92. package/src/keyring/index.js +0 -12
  93. package/src/keyring/keyring.js +0 -229
  94. package/src/keyring/localstore.js +0 -119
  95. package/src/lightweight_helper.js +0 -26
  96. package/src/message.js +0 -825
  97. package/src/openpgp.js +0 -717
  98. package/src/packet/all_packets.js +0 -116
  99. package/src/packet/clone.js +0 -189
  100. package/src/packet/compressed.js +0 -194
  101. package/src/packet/index.js +0 -20
  102. package/src/packet/literal.js +0 -168
  103. package/src/packet/marker.js +0 -62
  104. package/src/packet/one_pass_signature.js +0 -156
  105. package/src/packet/packet.js +0 -300
  106. package/src/packet/packetlist.js +0 -232
  107. package/src/packet/public_key.js +0 -280
  108. package/src/packet/public_key_encrypted_session_key.js +0 -156
  109. package/src/packet/public_subkey.js +0 -44
  110. package/src/packet/secret_key.js +0 -448
  111. package/src/packet/secret_subkey.js +0 -41
  112. package/src/packet/signature.js +0 -782
  113. package/src/packet/sym_encrypted_aead_protected.js +0 -189
  114. package/src/packet/sym_encrypted_integrity_protected.js +0 -139
  115. package/src/packet/sym_encrypted_session_key.js +0 -204
  116. package/src/packet/symmetrically_encrypted.js +0 -118
  117. package/src/packet/trust.js +0 -35
  118. package/src/packet/user_attribute.js +0 -94
  119. package/src/packet/userid.js +0 -87
  120. package/src/polyfills.js +0 -64
  121. package/src/signature.js +0 -73
  122. package/src/type/ecdh_symkey.js +0 -69
  123. package/src/type/kdf_params.js +0 -114
  124. package/src/type/keyid.js +0 -110
  125. package/src/type/mpi.js +0 -138
  126. package/src/type/oid.js +0 -110
  127. package/src/type/s2k.js +0 -203
  128. package/src/util.js +0 -836
  129. package/src/wkd.js +0 -88
  130. package/src/worker/async_proxy.js +0 -190
  131. package/src/worker/worker.js +0 -167
  132. package/test/crypto/aes_kw.js +0 -57
  133. package/test/crypto/cipher/aes.js +0 -86
  134. package/test/crypto/cipher/blowfish.js +0 -58
  135. package/test/crypto/cipher/cast5.js +0 -25
  136. package/test/crypto/cipher/des.js +0 -143
  137. package/test/crypto/cipher/index.js +0 -7
  138. package/test/crypto/cipher/twofish.js +0 -71
  139. package/test/crypto/crypto.js +0 -383
  140. package/test/crypto/eax.js +0 -150
  141. package/test/crypto/ecdh.js +0 -359
  142. package/test/crypto/elliptic.js +0 -251
  143. package/test/crypto/elliptic_data.js +0 -102
  144. package/test/crypto/hash/index.js +0 -5
  145. package/test/crypto/hash/md5.js +0 -16
  146. package/test/crypto/hash/ripemd.js +0 -14
  147. package/test/crypto/hash/sha.js +0 -20
  148. package/test/crypto/index.js +0 -14
  149. package/test/crypto/ocb.js +0 -183
  150. package/test/crypto/pkcs5.js +0 -39
  151. package/test/crypto/random.js +0 -79
  152. package/test/crypto/rsa.js +0 -180
  153. package/test/crypto/validate.js +0 -387
  154. package/test/general/armor.js +0 -408
  155. package/test/general/brainpool.js +0 -360
  156. package/test/general/decompression.js +0 -60
  157. package/test/general/ecc_nist.js +0 -115
  158. package/test/general/ecc_secp256k1.js +0 -242
  159. package/test/general/forwarding.js +0 -43
  160. package/test/general/hkp.js +0 -165
  161. package/test/general/index.js +0 -20
  162. package/test/general/key.js +0 -3402
  163. package/test/general/keyring.js +0 -336
  164. package/test/general/oid.js +0 -39
  165. package/test/general/openpgp.js +0 -2542
  166. package/test/general/packet.js +0 -937
  167. package/test/general/signature.js +0 -1665
  168. package/test/general/streaming.js +0 -944
  169. package/test/general/testInputs.js +0 -18
  170. package/test/general/util.js +0 -183
  171. package/test/general/wkd.js +0 -48
  172. package/test/general/x25519.js +0 -556
  173. package/test/unittests.js +0 -64
@@ -0,0 +1,17 @@
1
+ /*! OpenPGP.js v5.3.1 - 2022-07-12 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
2
+ "undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;
3
+ /*! *****************************************************************************
4
+ Copyright (c) Microsoft Corporation.
5
+
6
+ Permission to use, copy, modify, and/or distribute this software for any
7
+ purpose with or without fee is hereby granted.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ PERFORMANCE OF THIS SOFTWARE.
16
+ ***************************************************************************** */var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};function e(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+r+" is not a constructor or null");function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}function r(t){if(!t)throw new TypeError("Assertion failed")}function n(){}function i(t){return"object"==typeof t&&null!==t||"function"==typeof t}function o(t){if("function"!=typeof t)return!1;var e=!1;try{new t({start:function(){e=!0}})}catch(t){}return e}function a(t){return!!i(t)&&"function"==typeof t.getReader}function s(t){return!!i(t)&&"function"==typeof t.getWriter}function u(t){return!!i(t)&&(!!a(t.readable)&&!!s(t.writable))}function d(t){try{return t.getReader({mode:"byob"}).releaseLock(),!0}catch(t){return!1}}function h(t){r(function(t){return!!o(t)&&!!a(new t)}(t));var e=function(t){try{return new t({type:"bytes"}),!0}catch(t){return!1}}(t);return function(r,n){var i=(void 0===n?{}:n).type;if("bytes"!==(i=f(i))||e||(i=void 0),r.constructor===t&&("bytes"!==i||d(r)))return r;if("bytes"===i){var o=c(r,{type:i});return new t(o)}o=c(r);return new t(o)}}function c(t,e){var n=(void 0===e?{}:e).type;return r(a(t)),r(!1===t.locked),"bytes"===(n=f(n))?new y(t):new _(t)}function f(t){var e=t+"";if("bytes"===e)return e;if(void 0===t)return t;throw new RangeError("Invalid type is specified")}var l=function(){function t(t){this._underlyingReader=void 0,this._readerMode=void 0,this._readableStreamController=void 0,this._pendingRead=void 0,this._underlyingStream=t,this._attachDefaultReader()}return t.prototype.start=function(t){this._readableStreamController=t},t.prototype.cancel=function(t){return r(void 0!==this._underlyingReader),this._underlyingReader.cancel(t)},t.prototype._attachDefaultReader=function(){if("default"!==this._readerMode){this._detachReader();var t=this._underlyingStream.getReader();this._readerMode="default",this._attachReader(t)}},t.prototype._attachReader=function(t){var e=this;r(void 0===this._underlyingReader),this._underlyingReader=t;var i=this._underlyingReader.closed;i&&i.then((function(){return e._finishPendingRead()})).then((function(){t===e._underlyingReader&&e._readableStreamController.close()}),(function(r){t===e._underlyingReader&&e._readableStreamController.error(r)})).catch(n)},t.prototype._detachReader=function(){void 0!==this._underlyingReader&&(this._underlyingReader.releaseLock(),this._underlyingReader=void 0,this._readerMode=void 0)},t.prototype._pullWithDefaultReader=function(){var t=this;this._attachDefaultReader();var e=this._underlyingReader.read().then((function(e){var r=t._readableStreamController;e.done?t._tryClose():r.enqueue(e.value)}));return this._setPendingRead(e),e},t.prototype._tryClose=function(){try{this._readableStreamController.close()}catch(t){}},t.prototype._setPendingRead=function(t){var e,r=this,n=function(){r._pendingRead===e&&(r._pendingRead=void 0)};this._pendingRead=e=t.then(n,n)},t.prototype._finishPendingRead=function(){var t=this;if(this._pendingRead){var e=function(){return t._finishPendingRead()};return this._pendingRead.then(e,e)}},t}(),_=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return e(r,t),r.prototype.pull=function(){return this._pullWithDefaultReader()},r}(l);function p(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}var y=function(t){function n(e){var r=this,n=d(e);return(r=t.call(this,e)||this)._supportsByob=n,r}return e(n,t),Object.defineProperty(n.prototype,"type",{get:function(){return"bytes"},enumerable:!1,configurable:!0}),n.prototype._attachByobReader=function(){if("byob"!==this._readerMode){r(this._supportsByob),this._detachReader();var t=this._underlyingStream.getReader({mode:"byob"});this._readerMode="byob",this._attachReader(t)}},n.prototype.pull=function(){if(this._supportsByob){var t=this._readableStreamController.byobRequest;if(t)return this._pullWithByobRequest(t)}return this._pullWithDefaultReader()},n.prototype._pullWithByobRequest=function(t){var e=this;this._attachByobReader();var r=new Uint8Array(t.view.byteLength),n=this._underlyingReader.read(r).then((function(r){var n,i,o;e._readableStreamController,r.done?(e._tryClose(),t.respond(0)):(n=r.value,i=t.view,o=p(n),p(i).set(o,0),t.respond(r.value.byteLength))}));return this._setPendingRead(n),n},n}(l);function v(t){return r(function(t){return!!o(t)&&!!s(new t)}(t)),function(e){if(e.constructor===t)return e;var r=g(e);return new t(r)}}function g(t){r(s(t)),r(!1===t.locked);var e=t.getWriter();return new b(e)}var b=function(){function t(t){var e=this;this._writableStreamController=void 0,this._pendingWrite=void 0,this._state="writable",this._storedError=void 0,this._underlyingWriter=t,this._errorPromise=new Promise((function(t,r){e._errorPromiseReject=r})),this._errorPromise.catch(n)}return t.prototype.start=function(t){var e=this;this._writableStreamController=t,this._underlyingWriter.closed.then((function(){e._state="closed"})).catch((function(t){return e._finishErroring(t)}))},t.prototype.write=function(t){var e=this,r=this._underlyingWriter;if(null===r.desiredSize)return r.ready;var n=r.write(t);n.catch((function(t){return e._finishErroring(t)})),r.ready.catch((function(t){return e._startErroring(t)}));var i=Promise.race([n,this._errorPromise]);return this._setPendingWrite(i),i},t.prototype.close=function(){var t=this;return void 0===this._pendingWrite?this._underlyingWriter.close():this._finishPendingWrite().then((function(){return t.close()}))},t.prototype.abort=function(t){if("errored"!==this._state)return this._underlyingWriter.abort(t)},t.prototype._setPendingWrite=function(t){var e,r=this,n=function(){r._pendingWrite===e&&(r._pendingWrite=void 0)};this._pendingWrite=e=t.then(n,n)},t.prototype._finishPendingWrite=function(){var t=this;if(void 0===this._pendingWrite)return Promise.resolve();var e=function(){return t._finishPendingWrite()};return this._pendingWrite.then(e,e)},t.prototype._startErroring=function(t){var e=this;if("writable"===this._state){this._state="erroring",this._storedError=t;var r=function(){return e._finishErroring(t)};void 0===this._pendingWrite?r():this._finishPendingWrite().then(r,r),this._writableStreamController.error(t)}},t.prototype._finishErroring=function(t){"writable"===this._state&&this._startErroring(t),"erroring"===this._state&&(this._state="errored",this._errorPromiseReject(this._storedError))},t}();function R(t){return r(function(t){return!!o(t)&&!!u(new t)}(t)),function(e){if(e.constructor===t)return e;var r=w(e);return new t(r)}}function w(t){r(u(t));var e=t.readable,n=t.writable;r(!1===e.locked),r(!1===n.locked);var i,o=e.getReader();try{i=n.getWriter()}catch(t){throw o.releaseLock(),t}return new m(o,i)}var m=function(){function t(t,e){var r=this;this._transformStreamController=void 0,this._onRead=function(t){if(!t.done)return r._transformStreamController.enqueue(t.value),r._reader.read().then(r._onRead)},this._onError=function(t){r._flushReject(t),r._transformStreamController.error(t),r._reader.cancel(t).catch(n),r._writer.abort(t).catch(n)},this._onTerminate=function(){r._flushResolve(),r._transformStreamController.terminate();var t=new TypeError("TransformStream terminated");r._writer.abort(t).catch(n)},this._reader=t,this._writer=e,this._flushPromise=new Promise((function(t,e){r._flushResolve=t,r._flushReject=e}))}return t.prototype.start=function(t){this._transformStreamController=t,this._reader.read().then(this._onRead).then(this._onTerminate,this._onError);var e=this._reader.closed;e&&e.then(this._onTerminate,this._onError)},t.prototype.transform=function(t){return this._writer.write(t)},t.prototype.flush=function(){var t=this;return this._writer.close().then((function(){return t._flushPromise}))},t}();export{h as createReadableStreamWrapper,R as createTransformStreamWrapper,c as createWrappingReadableSource,w as createWrappingTransformer,g as createWrappingWritableSink,v as createWritableStreamWrapper};
17
+ //# sourceMappingURL=web-streams-adapter.min.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-streams-adapter.min.mjs","sources":["../../node_modules/@mattiasbuelens/web-streams-adapter/dist/web-streams-adapter.mjs"],"sourcesContent":["/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nfunction assert(test) {\n if (!test) {\n throw new TypeError('Assertion failed');\n }\n}\n\nfunction noop() {\n return;\n}\nfunction typeIsObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n}\n\nfunction isStreamConstructor(ctor) {\n if (typeof ctor !== 'function') {\n return false;\n }\n var startCalled = false;\n try {\n new ctor({\n start: function () {\n startCalled = true;\n }\n });\n }\n catch (e) {\n // ignore\n }\n return startCalled;\n}\nfunction isReadableStream(readable) {\n if (!typeIsObject(readable)) {\n return false;\n }\n if (typeof readable.getReader !== 'function') {\n return false;\n }\n return true;\n}\nfunction isReadableStreamConstructor(ctor) {\n if (!isStreamConstructor(ctor)) {\n return false;\n }\n if (!isReadableStream(new ctor())) {\n return false;\n }\n return true;\n}\nfunction isWritableStream(writable) {\n if (!typeIsObject(writable)) {\n return false;\n }\n if (typeof writable.getWriter !== 'function') {\n return false;\n }\n return true;\n}\nfunction isWritableStreamConstructor(ctor) {\n if (!isStreamConstructor(ctor)) {\n return false;\n }\n if (!isWritableStream(new ctor())) {\n return false;\n }\n return true;\n}\nfunction isTransformStream(transform) {\n if (!typeIsObject(transform)) {\n return false;\n }\n if (!isReadableStream(transform.readable)) {\n return false;\n }\n if (!isWritableStream(transform.writable)) {\n return false;\n }\n return true;\n}\nfunction isTransformStreamConstructor(ctor) {\n if (!isStreamConstructor(ctor)) {\n return false;\n }\n if (!isTransformStream(new ctor())) {\n return false;\n }\n return true;\n}\nfunction supportsByobReader(readable) {\n try {\n var reader = readable.getReader({ mode: 'byob' });\n reader.releaseLock();\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction supportsByteSource(ctor) {\n try {\n new ctor({ type: 'bytes' });\n return true;\n }\n catch (_a) {\n return false;\n }\n}\n\nfunction createReadableStreamWrapper(ctor) {\n assert(isReadableStreamConstructor(ctor));\n var byteSourceSupported = supportsByteSource(ctor);\n return function (readable, _a) {\n var _b = _a === void 0 ? {} : _a, type = _b.type;\n type = parseReadableType(type);\n if (type === 'bytes' && !byteSourceSupported) {\n type = undefined;\n }\n if (readable.constructor === ctor) {\n if (type !== 'bytes' || supportsByobReader(readable)) {\n return readable;\n }\n }\n if (type === 'bytes') {\n var source = createWrappingReadableSource(readable, { type: type });\n return new ctor(source);\n }\n else {\n var source = createWrappingReadableSource(readable);\n return new ctor(source);\n }\n };\n}\nfunction createWrappingReadableSource(readable, _a) {\n var _b = _a === void 0 ? {} : _a, type = _b.type;\n assert(isReadableStream(readable));\n assert(readable.locked === false);\n type = parseReadableType(type);\n var source;\n if (type === 'bytes') {\n source = new WrappingReadableByteStreamSource(readable);\n }\n else {\n source = new WrappingReadableStreamDefaultSource(readable);\n }\n return source;\n}\nfunction parseReadableType(type) {\n var typeString = String(type);\n if (typeString === 'bytes') {\n return typeString;\n }\n else if (type === undefined) {\n return type;\n }\n else {\n throw new RangeError('Invalid type is specified');\n }\n}\nvar AbstractWrappingReadableStreamSource = /** @class */ (function () {\n function AbstractWrappingReadableStreamSource(underlyingStream) {\n this._underlyingReader = undefined;\n this._readerMode = undefined;\n this._readableStreamController = undefined;\n this._pendingRead = undefined;\n this._underlyingStream = underlyingStream;\n // always keep a reader attached to detect close/error\n this._attachDefaultReader();\n }\n AbstractWrappingReadableStreamSource.prototype.start = function (controller) {\n this._readableStreamController = controller;\n };\n AbstractWrappingReadableStreamSource.prototype.cancel = function (reason) {\n assert(this._underlyingReader !== undefined);\n return this._underlyingReader.cancel(reason);\n };\n AbstractWrappingReadableStreamSource.prototype._attachDefaultReader = function () {\n if (this._readerMode === \"default\" /* DEFAULT */) {\n return;\n }\n this._detachReader();\n var reader = this._underlyingStream.getReader();\n this._readerMode = \"default\" /* DEFAULT */;\n this._attachReader(reader);\n };\n AbstractWrappingReadableStreamSource.prototype._attachReader = function (reader) {\n var _this = this;\n assert(this._underlyingReader === undefined);\n this._underlyingReader = reader;\n var closed = this._underlyingReader.closed;\n if (!closed) {\n return;\n }\n closed\n .then(function () { return _this._finishPendingRead(); })\n .then(function () {\n if (reader === _this._underlyingReader) {\n _this._readableStreamController.close();\n }\n }, function (reason) {\n if (reader === _this._underlyingReader) {\n _this._readableStreamController.error(reason);\n }\n })\n .catch(noop);\n };\n AbstractWrappingReadableStreamSource.prototype._detachReader = function () {\n if (this._underlyingReader === undefined) {\n return;\n }\n this._underlyingReader.releaseLock();\n this._underlyingReader = undefined;\n this._readerMode = undefined;\n };\n AbstractWrappingReadableStreamSource.prototype._pullWithDefaultReader = function () {\n var _this = this;\n this._attachDefaultReader();\n // TODO Backpressure?\n var read = this._underlyingReader.read()\n .then(function (result) {\n var controller = _this._readableStreamController;\n if (result.done) {\n _this._tryClose();\n }\n else {\n controller.enqueue(result.value);\n }\n });\n this._setPendingRead(read);\n return read;\n };\n AbstractWrappingReadableStreamSource.prototype._tryClose = function () {\n try {\n this._readableStreamController.close();\n }\n catch (_a) {\n // already errored or closed\n }\n };\n AbstractWrappingReadableStreamSource.prototype._setPendingRead = function (readPromise) {\n var _this = this;\n var pendingRead;\n var finishRead = function () {\n if (_this._pendingRead === pendingRead) {\n _this._pendingRead = undefined;\n }\n };\n this._pendingRead = pendingRead = readPromise.then(finishRead, finishRead);\n };\n AbstractWrappingReadableStreamSource.prototype._finishPendingRead = function () {\n var _this = this;\n if (!this._pendingRead) {\n return undefined;\n }\n var afterRead = function () { return _this._finishPendingRead(); };\n return this._pendingRead.then(afterRead, afterRead);\n };\n return AbstractWrappingReadableStreamSource;\n}());\nvar WrappingReadableStreamDefaultSource = /** @class */ (function (_super) {\n __extends(WrappingReadableStreamDefaultSource, _super);\n function WrappingReadableStreamDefaultSource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WrappingReadableStreamDefaultSource.prototype.pull = function () {\n return this._pullWithDefaultReader();\n };\n return WrappingReadableStreamDefaultSource;\n}(AbstractWrappingReadableStreamSource));\nfunction toUint8Array(view) {\n return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);\n}\nfunction copyArrayBufferView(from, to) {\n var fromArray = toUint8Array(from);\n var toArray = toUint8Array(to);\n toArray.set(fromArray, 0);\n}\nvar WrappingReadableByteStreamSource = /** @class */ (function (_super) {\n __extends(WrappingReadableByteStreamSource, _super);\n function WrappingReadableByteStreamSource(underlyingStream) {\n var _this = this;\n var supportsByob = supportsByobReader(underlyingStream);\n _this = _super.call(this, underlyingStream) || this;\n _this._supportsByob = supportsByob;\n return _this;\n }\n Object.defineProperty(WrappingReadableByteStreamSource.prototype, \"type\", {\n get: function () {\n return 'bytes';\n },\n enumerable: false,\n configurable: true\n });\n WrappingReadableByteStreamSource.prototype._attachByobReader = function () {\n if (this._readerMode === \"byob\" /* BYOB */) {\n return;\n }\n assert(this._supportsByob);\n this._detachReader();\n var reader = this._underlyingStream.getReader({ mode: 'byob' });\n this._readerMode = \"byob\" /* BYOB */;\n this._attachReader(reader);\n };\n WrappingReadableByteStreamSource.prototype.pull = function () {\n if (this._supportsByob) {\n var byobRequest = this._readableStreamController.byobRequest;\n if (byobRequest) {\n return this._pullWithByobRequest(byobRequest);\n }\n }\n return this._pullWithDefaultReader();\n };\n WrappingReadableByteStreamSource.prototype._pullWithByobRequest = function (byobRequest) {\n var _this = this;\n this._attachByobReader();\n // reader.read(view) detaches the input view, therefore we cannot pass byobRequest.view directly\n // create a separate buffer to read into, then copy that to byobRequest.view\n var buffer = new Uint8Array(byobRequest.view.byteLength);\n // TODO Backpressure?\n var read = this._underlyingReader.read(buffer)\n .then(function (result) {\n _this._readableStreamController;\n if (result.done) {\n _this._tryClose();\n byobRequest.respond(0);\n }\n else {\n copyArrayBufferView(result.value, byobRequest.view);\n byobRequest.respond(result.value.byteLength);\n }\n });\n this._setPendingRead(read);\n return read;\n };\n return WrappingReadableByteStreamSource;\n}(AbstractWrappingReadableStreamSource));\n\nfunction createWritableStreamWrapper(ctor) {\n assert(isWritableStreamConstructor(ctor));\n return function (writable) {\n if (writable.constructor === ctor) {\n return writable;\n }\n var sink = createWrappingWritableSink(writable);\n return new ctor(sink);\n };\n}\nfunction createWrappingWritableSink(writable) {\n assert(isWritableStream(writable));\n assert(writable.locked === false);\n var writer = writable.getWriter();\n return new WrappingWritableStreamSink(writer);\n}\nvar WrappingWritableStreamSink = /** @class */ (function () {\n function WrappingWritableStreamSink(underlyingWriter) {\n var _this = this;\n this._writableStreamController = undefined;\n this._pendingWrite = undefined;\n this._state = \"writable\" /* WRITABLE */;\n this._storedError = undefined;\n this._underlyingWriter = underlyingWriter;\n this._errorPromise = new Promise(function (resolve, reject) {\n _this._errorPromiseReject = reject;\n });\n this._errorPromise.catch(noop);\n }\n WrappingWritableStreamSink.prototype.start = function (controller) {\n var _this = this;\n this._writableStreamController = controller;\n this._underlyingWriter.closed\n .then(function () {\n _this._state = \"closed\" /* CLOSED */;\n })\n .catch(function (reason) { return _this._finishErroring(reason); });\n };\n WrappingWritableStreamSink.prototype.write = function (chunk) {\n var _this = this;\n var writer = this._underlyingWriter;\n // Detect past errors\n if (writer.desiredSize === null) {\n return writer.ready;\n }\n var writeRequest = writer.write(chunk);\n // Detect future errors\n writeRequest.catch(function (reason) { return _this._finishErroring(reason); });\n writer.ready.catch(function (reason) { return _this._startErroring(reason); });\n // Reject write when errored\n var write = Promise.race([writeRequest, this._errorPromise]);\n this._setPendingWrite(write);\n return write;\n };\n WrappingWritableStreamSink.prototype.close = function () {\n var _this = this;\n if (this._pendingWrite === undefined) {\n return this._underlyingWriter.close();\n }\n return this._finishPendingWrite().then(function () { return _this.close(); });\n };\n WrappingWritableStreamSink.prototype.abort = function (reason) {\n if (this._state === \"errored\" /* ERRORED */) {\n return undefined;\n }\n var writer = this._underlyingWriter;\n return writer.abort(reason);\n };\n WrappingWritableStreamSink.prototype._setPendingWrite = function (writePromise) {\n var _this = this;\n var pendingWrite;\n var finishWrite = function () {\n if (_this._pendingWrite === pendingWrite) {\n _this._pendingWrite = undefined;\n }\n };\n this._pendingWrite = pendingWrite = writePromise.then(finishWrite, finishWrite);\n };\n WrappingWritableStreamSink.prototype._finishPendingWrite = function () {\n var _this = this;\n if (this._pendingWrite === undefined) {\n return Promise.resolve();\n }\n var afterWrite = function () { return _this._finishPendingWrite(); };\n return this._pendingWrite.then(afterWrite, afterWrite);\n };\n WrappingWritableStreamSink.prototype._startErroring = function (reason) {\n var _this = this;\n if (this._state === \"writable\" /* WRITABLE */) {\n this._state = \"erroring\" /* ERRORING */;\n this._storedError = reason;\n var afterWrite = function () { return _this._finishErroring(reason); };\n if (this._pendingWrite === undefined) {\n afterWrite();\n }\n else {\n this._finishPendingWrite().then(afterWrite, afterWrite);\n }\n this._writableStreamController.error(reason);\n }\n };\n WrappingWritableStreamSink.prototype._finishErroring = function (reason) {\n if (this._state === \"writable\" /* WRITABLE */) {\n this._startErroring(reason);\n }\n if (this._state === \"erroring\" /* ERRORING */) {\n this._state = \"errored\" /* ERRORED */;\n this._errorPromiseReject(this._storedError);\n }\n };\n return WrappingWritableStreamSink;\n}());\n\nfunction createTransformStreamWrapper(ctor) {\n assert(isTransformStreamConstructor(ctor));\n return function (transform) {\n if (transform.constructor === ctor) {\n return transform;\n }\n var transformer = createWrappingTransformer(transform);\n return new ctor(transformer);\n };\n}\nfunction createWrappingTransformer(transform) {\n assert(isTransformStream(transform));\n var readable = transform.readable, writable = transform.writable;\n assert(readable.locked === false);\n assert(writable.locked === false);\n var reader = readable.getReader();\n var writer;\n try {\n writer = writable.getWriter();\n }\n catch (e) {\n reader.releaseLock(); // do not leak reader\n throw e;\n }\n return new WrappingTransformStreamTransformer(reader, writer);\n}\nvar WrappingTransformStreamTransformer = /** @class */ (function () {\n function WrappingTransformStreamTransformer(reader, writer) {\n var _this = this;\n this._transformStreamController = undefined;\n this._onRead = function (result) {\n if (result.done) {\n return;\n }\n _this._transformStreamController.enqueue(result.value);\n return _this._reader.read().then(_this._onRead);\n };\n this._onError = function (reason) {\n _this._flushReject(reason);\n _this._transformStreamController.error(reason);\n _this._reader.cancel(reason).catch(noop);\n _this._writer.abort(reason).catch(noop);\n };\n this._onTerminate = function () {\n _this._flushResolve();\n _this._transformStreamController.terminate();\n var error = new TypeError('TransformStream terminated');\n _this._writer.abort(error).catch(noop);\n };\n this._reader = reader;\n this._writer = writer;\n this._flushPromise = new Promise(function (resolve, reject) {\n _this._flushResolve = resolve;\n _this._flushReject = reject;\n });\n }\n WrappingTransformStreamTransformer.prototype.start = function (controller) {\n this._transformStreamController = controller;\n this._reader.read()\n .then(this._onRead)\n .then(this._onTerminate, this._onError);\n var readerClosed = this._reader.closed;\n if (readerClosed) {\n readerClosed\n .then(this._onTerminate, this._onError);\n }\n };\n WrappingTransformStreamTransformer.prototype.transform = function (chunk) {\n return this._writer.write(chunk);\n };\n WrappingTransformStreamTransformer.prototype.flush = function () {\n var _this = this;\n return this._writer.close()\n .then(function () { return _this._flushPromise; });\n };\n return WrappingTransformStreamTransformer;\n}());\n\nexport { createReadableStreamWrapper, createTransformStreamWrapper, createWrappingReadableSource, createWrappingTransformer, createWrappingWritableSink, createWritableStreamWrapper };\n//# sourceMappingURL=web-streams-adapter.mjs.map\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","__","this","constructor","create","assert","test","noop","typeIsObject","x","isStreamConstructor","ctor","startCalled","start","e","isReadableStream","readable","getReader","isWritableStream","writable","getWriter","isTransformStream","transform","supportsByobReader","mode","releaseLock","_a","createReadableStreamWrapper","isReadableStreamConstructor","byteSourceSupported","type","supportsByteSource","parseReadableType","undefined","source","createWrappingReadableSource","locked","WrappingReadableByteStreamSource","WrappingReadableStreamDefaultSource","typeString","String","RangeError","AbstractWrappingReadableStreamSource","underlyingStream","_underlyingReader","_readerMode","_readableStreamController","_pendingRead","_underlyingStream","_attachDefaultReader","controller","cancel","reason","_detachReader","reader","_attachReader","_this","closed","then","_finishPendingRead","close","error","catch","_pullWithDefaultReader","read","result","done","_tryClose","enqueue","value","_setPendingRead","readPromise","pendingRead","finishRead","afterRead","_super","apply","arguments","pull","toUint8Array","view","Uint8Array","buffer","byteOffset","byteLength","supportsByob","_supportsByob","defineProperty","get","enumerable","configurable","_attachByobReader","byobRequest","_pullWithByobRequest","from","to","fromArray","respond","set","createWritableStreamWrapper","isWritableStreamConstructor","sink","createWrappingWritableSink","writer","WrappingWritableStreamSink","underlyingWriter","_writableStreamController","_pendingWrite","_state","_storedError","_underlyingWriter","_errorPromise","Promise","resolve","reject","_errorPromiseReject","_finishErroring","write","chunk","desiredSize","ready","writeRequest","_startErroring","race","_setPendingWrite","_finishPendingWrite","abort","writePromise","pendingWrite","finishWrite","afterWrite","createTransformStreamWrapper","isTransformStreamConstructor","transformer","createWrappingTransformer","WrappingTransformStreamTransformer","_transformStreamController","_onRead","_reader","_onError","_flushReject","_writer","_onTerminate","_flushResolve","terminate","_flushPromise","readerClosed","flush"],"mappings":"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"}
@@ -0,0 +1,561 @@
1
+ /*! OpenPGP.js v5.3.1 - 2022-07-12 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
2
+ const globalThis = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
3
+
4
+ /*! *****************************************************************************
5
+ Copyright (c) Microsoft Corporation.
6
+
7
+ Permission to use, copy, modify, and/or distribute this software for any
8
+ purpose with or without fee is hereby granted.
9
+
10
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
11
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
13
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
14
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
15
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16
+ PERFORMANCE OF THIS SOFTWARE.
17
+ ***************************************************************************** */
18
+ /* global Reflect, Promise */
19
+
20
+ var extendStatics = function(d, b) {
21
+ extendStatics = Object.setPrototypeOf ||
22
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
23
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
24
+ return extendStatics(d, b);
25
+ };
26
+
27
+ function __extends(d, b) {
28
+ if (typeof b !== "function" && b !== null)
29
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
30
+ extendStatics(d, b);
31
+ function __() { this.constructor = d; }
32
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33
+ }
34
+
35
+ function assert(test) {
36
+ if (!test) {
37
+ throw new TypeError('Assertion failed');
38
+ }
39
+ }
40
+
41
+ function noop() {
42
+ return;
43
+ }
44
+ function typeIsObject(x) {
45
+ return (typeof x === 'object' && x !== null) || typeof x === 'function';
46
+ }
47
+
48
+ function isStreamConstructor(ctor) {
49
+ if (typeof ctor !== 'function') {
50
+ return false;
51
+ }
52
+ var startCalled = false;
53
+ try {
54
+ new ctor({
55
+ start: function () {
56
+ startCalled = true;
57
+ }
58
+ });
59
+ }
60
+ catch (e) {
61
+ // ignore
62
+ }
63
+ return startCalled;
64
+ }
65
+ function isReadableStream(readable) {
66
+ if (!typeIsObject(readable)) {
67
+ return false;
68
+ }
69
+ if (typeof readable.getReader !== 'function') {
70
+ return false;
71
+ }
72
+ return true;
73
+ }
74
+ function isReadableStreamConstructor(ctor) {
75
+ if (!isStreamConstructor(ctor)) {
76
+ return false;
77
+ }
78
+ if (!isReadableStream(new ctor())) {
79
+ return false;
80
+ }
81
+ return true;
82
+ }
83
+ function isWritableStream(writable) {
84
+ if (!typeIsObject(writable)) {
85
+ return false;
86
+ }
87
+ if (typeof writable.getWriter !== 'function') {
88
+ return false;
89
+ }
90
+ return true;
91
+ }
92
+ function isWritableStreamConstructor(ctor) {
93
+ if (!isStreamConstructor(ctor)) {
94
+ return false;
95
+ }
96
+ if (!isWritableStream(new ctor())) {
97
+ return false;
98
+ }
99
+ return true;
100
+ }
101
+ function isTransformStream(transform) {
102
+ if (!typeIsObject(transform)) {
103
+ return false;
104
+ }
105
+ if (!isReadableStream(transform.readable)) {
106
+ return false;
107
+ }
108
+ if (!isWritableStream(transform.writable)) {
109
+ return false;
110
+ }
111
+ return true;
112
+ }
113
+ function isTransformStreamConstructor(ctor) {
114
+ if (!isStreamConstructor(ctor)) {
115
+ return false;
116
+ }
117
+ if (!isTransformStream(new ctor())) {
118
+ return false;
119
+ }
120
+ return true;
121
+ }
122
+ function supportsByobReader(readable) {
123
+ try {
124
+ var reader = readable.getReader({ mode: 'byob' });
125
+ reader.releaseLock();
126
+ return true;
127
+ }
128
+ catch (_a) {
129
+ return false;
130
+ }
131
+ }
132
+ function supportsByteSource(ctor) {
133
+ try {
134
+ new ctor({ type: 'bytes' });
135
+ return true;
136
+ }
137
+ catch (_a) {
138
+ return false;
139
+ }
140
+ }
141
+
142
+ function createReadableStreamWrapper(ctor) {
143
+ assert(isReadableStreamConstructor(ctor));
144
+ var byteSourceSupported = supportsByteSource(ctor);
145
+ return function (readable, _a) {
146
+ var _b = _a === void 0 ? {} : _a, type = _b.type;
147
+ type = parseReadableType(type);
148
+ if (type === 'bytes' && !byteSourceSupported) {
149
+ type = undefined;
150
+ }
151
+ if (readable.constructor === ctor) {
152
+ if (type !== 'bytes' || supportsByobReader(readable)) {
153
+ return readable;
154
+ }
155
+ }
156
+ if (type === 'bytes') {
157
+ var source = createWrappingReadableSource(readable, { type: type });
158
+ return new ctor(source);
159
+ }
160
+ else {
161
+ var source = createWrappingReadableSource(readable);
162
+ return new ctor(source);
163
+ }
164
+ };
165
+ }
166
+ function createWrappingReadableSource(readable, _a) {
167
+ var _b = _a === void 0 ? {} : _a, type = _b.type;
168
+ assert(isReadableStream(readable));
169
+ assert(readable.locked === false);
170
+ type = parseReadableType(type);
171
+ var source;
172
+ if (type === 'bytes') {
173
+ source = new WrappingReadableByteStreamSource(readable);
174
+ }
175
+ else {
176
+ source = new WrappingReadableStreamDefaultSource(readable);
177
+ }
178
+ return source;
179
+ }
180
+ function parseReadableType(type) {
181
+ var typeString = String(type);
182
+ if (typeString === 'bytes') {
183
+ return typeString;
184
+ }
185
+ else if (type === undefined) {
186
+ return type;
187
+ }
188
+ else {
189
+ throw new RangeError('Invalid type is specified');
190
+ }
191
+ }
192
+ var AbstractWrappingReadableStreamSource = /** @class */ (function () {
193
+ function AbstractWrappingReadableStreamSource(underlyingStream) {
194
+ this._underlyingReader = undefined;
195
+ this._readerMode = undefined;
196
+ this._readableStreamController = undefined;
197
+ this._pendingRead = undefined;
198
+ this._underlyingStream = underlyingStream;
199
+ // always keep a reader attached to detect close/error
200
+ this._attachDefaultReader();
201
+ }
202
+ AbstractWrappingReadableStreamSource.prototype.start = function (controller) {
203
+ this._readableStreamController = controller;
204
+ };
205
+ AbstractWrappingReadableStreamSource.prototype.cancel = function (reason) {
206
+ assert(this._underlyingReader !== undefined);
207
+ return this._underlyingReader.cancel(reason);
208
+ };
209
+ AbstractWrappingReadableStreamSource.prototype._attachDefaultReader = function () {
210
+ if (this._readerMode === "default" /* DEFAULT */) {
211
+ return;
212
+ }
213
+ this._detachReader();
214
+ var reader = this._underlyingStream.getReader();
215
+ this._readerMode = "default" /* DEFAULT */;
216
+ this._attachReader(reader);
217
+ };
218
+ AbstractWrappingReadableStreamSource.prototype._attachReader = function (reader) {
219
+ var _this = this;
220
+ assert(this._underlyingReader === undefined);
221
+ this._underlyingReader = reader;
222
+ var closed = this._underlyingReader.closed;
223
+ if (!closed) {
224
+ return;
225
+ }
226
+ closed
227
+ .then(function () { return _this._finishPendingRead(); })
228
+ .then(function () {
229
+ if (reader === _this._underlyingReader) {
230
+ _this._readableStreamController.close();
231
+ }
232
+ }, function (reason) {
233
+ if (reader === _this._underlyingReader) {
234
+ _this._readableStreamController.error(reason);
235
+ }
236
+ })
237
+ .catch(noop);
238
+ };
239
+ AbstractWrappingReadableStreamSource.prototype._detachReader = function () {
240
+ if (this._underlyingReader === undefined) {
241
+ return;
242
+ }
243
+ this._underlyingReader.releaseLock();
244
+ this._underlyingReader = undefined;
245
+ this._readerMode = undefined;
246
+ };
247
+ AbstractWrappingReadableStreamSource.prototype._pullWithDefaultReader = function () {
248
+ var _this = this;
249
+ this._attachDefaultReader();
250
+ // TODO Backpressure?
251
+ var read = this._underlyingReader.read()
252
+ .then(function (result) {
253
+ var controller = _this._readableStreamController;
254
+ if (result.done) {
255
+ _this._tryClose();
256
+ }
257
+ else {
258
+ controller.enqueue(result.value);
259
+ }
260
+ });
261
+ this._setPendingRead(read);
262
+ return read;
263
+ };
264
+ AbstractWrappingReadableStreamSource.prototype._tryClose = function () {
265
+ try {
266
+ this._readableStreamController.close();
267
+ }
268
+ catch (_a) {
269
+ // already errored or closed
270
+ }
271
+ };
272
+ AbstractWrappingReadableStreamSource.prototype._setPendingRead = function (readPromise) {
273
+ var _this = this;
274
+ var pendingRead;
275
+ var finishRead = function () {
276
+ if (_this._pendingRead === pendingRead) {
277
+ _this._pendingRead = undefined;
278
+ }
279
+ };
280
+ this._pendingRead = pendingRead = readPromise.then(finishRead, finishRead);
281
+ };
282
+ AbstractWrappingReadableStreamSource.prototype._finishPendingRead = function () {
283
+ var _this = this;
284
+ if (!this._pendingRead) {
285
+ return undefined;
286
+ }
287
+ var afterRead = function () { return _this._finishPendingRead(); };
288
+ return this._pendingRead.then(afterRead, afterRead);
289
+ };
290
+ return AbstractWrappingReadableStreamSource;
291
+ }());
292
+ var WrappingReadableStreamDefaultSource = /** @class */ (function (_super) {
293
+ __extends(WrappingReadableStreamDefaultSource, _super);
294
+ function WrappingReadableStreamDefaultSource() {
295
+ return _super !== null && _super.apply(this, arguments) || this;
296
+ }
297
+ WrappingReadableStreamDefaultSource.prototype.pull = function () {
298
+ return this._pullWithDefaultReader();
299
+ };
300
+ return WrappingReadableStreamDefaultSource;
301
+ }(AbstractWrappingReadableStreamSource));
302
+ function toUint8Array(view) {
303
+ return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
304
+ }
305
+ function copyArrayBufferView(from, to) {
306
+ var fromArray = toUint8Array(from);
307
+ var toArray = toUint8Array(to);
308
+ toArray.set(fromArray, 0);
309
+ }
310
+ var WrappingReadableByteStreamSource = /** @class */ (function (_super) {
311
+ __extends(WrappingReadableByteStreamSource, _super);
312
+ function WrappingReadableByteStreamSource(underlyingStream) {
313
+ var _this = this;
314
+ var supportsByob = supportsByobReader(underlyingStream);
315
+ _this = _super.call(this, underlyingStream) || this;
316
+ _this._supportsByob = supportsByob;
317
+ return _this;
318
+ }
319
+ Object.defineProperty(WrappingReadableByteStreamSource.prototype, "type", {
320
+ get: function () {
321
+ return 'bytes';
322
+ },
323
+ enumerable: false,
324
+ configurable: true
325
+ });
326
+ WrappingReadableByteStreamSource.prototype._attachByobReader = function () {
327
+ if (this._readerMode === "byob" /* BYOB */) {
328
+ return;
329
+ }
330
+ assert(this._supportsByob);
331
+ this._detachReader();
332
+ var reader = this._underlyingStream.getReader({ mode: 'byob' });
333
+ this._readerMode = "byob" /* BYOB */;
334
+ this._attachReader(reader);
335
+ };
336
+ WrappingReadableByteStreamSource.prototype.pull = function () {
337
+ if (this._supportsByob) {
338
+ var byobRequest = this._readableStreamController.byobRequest;
339
+ if (byobRequest) {
340
+ return this._pullWithByobRequest(byobRequest);
341
+ }
342
+ }
343
+ return this._pullWithDefaultReader();
344
+ };
345
+ WrappingReadableByteStreamSource.prototype._pullWithByobRequest = function (byobRequest) {
346
+ var _this = this;
347
+ this._attachByobReader();
348
+ // reader.read(view) detaches the input view, therefore we cannot pass byobRequest.view directly
349
+ // create a separate buffer to read into, then copy that to byobRequest.view
350
+ var buffer = new Uint8Array(byobRequest.view.byteLength);
351
+ // TODO Backpressure?
352
+ var read = this._underlyingReader.read(buffer)
353
+ .then(function (result) {
354
+ _this._readableStreamController;
355
+ if (result.done) {
356
+ _this._tryClose();
357
+ byobRequest.respond(0);
358
+ }
359
+ else {
360
+ copyArrayBufferView(result.value, byobRequest.view);
361
+ byobRequest.respond(result.value.byteLength);
362
+ }
363
+ });
364
+ this._setPendingRead(read);
365
+ return read;
366
+ };
367
+ return WrappingReadableByteStreamSource;
368
+ }(AbstractWrappingReadableStreamSource));
369
+
370
+ function createWritableStreamWrapper(ctor) {
371
+ assert(isWritableStreamConstructor(ctor));
372
+ return function (writable) {
373
+ if (writable.constructor === ctor) {
374
+ return writable;
375
+ }
376
+ var sink = createWrappingWritableSink(writable);
377
+ return new ctor(sink);
378
+ };
379
+ }
380
+ function createWrappingWritableSink(writable) {
381
+ assert(isWritableStream(writable));
382
+ assert(writable.locked === false);
383
+ var writer = writable.getWriter();
384
+ return new WrappingWritableStreamSink(writer);
385
+ }
386
+ var WrappingWritableStreamSink = /** @class */ (function () {
387
+ function WrappingWritableStreamSink(underlyingWriter) {
388
+ var _this = this;
389
+ this._writableStreamController = undefined;
390
+ this._pendingWrite = undefined;
391
+ this._state = "writable" /* WRITABLE */;
392
+ this._storedError = undefined;
393
+ this._underlyingWriter = underlyingWriter;
394
+ this._errorPromise = new Promise(function (resolve, reject) {
395
+ _this._errorPromiseReject = reject;
396
+ });
397
+ this._errorPromise.catch(noop);
398
+ }
399
+ WrappingWritableStreamSink.prototype.start = function (controller) {
400
+ var _this = this;
401
+ this._writableStreamController = controller;
402
+ this._underlyingWriter.closed
403
+ .then(function () {
404
+ _this._state = "closed" /* CLOSED */;
405
+ })
406
+ .catch(function (reason) { return _this._finishErroring(reason); });
407
+ };
408
+ WrappingWritableStreamSink.prototype.write = function (chunk) {
409
+ var _this = this;
410
+ var writer = this._underlyingWriter;
411
+ // Detect past errors
412
+ if (writer.desiredSize === null) {
413
+ return writer.ready;
414
+ }
415
+ var writeRequest = writer.write(chunk);
416
+ // Detect future errors
417
+ writeRequest.catch(function (reason) { return _this._finishErroring(reason); });
418
+ writer.ready.catch(function (reason) { return _this._startErroring(reason); });
419
+ // Reject write when errored
420
+ var write = Promise.race([writeRequest, this._errorPromise]);
421
+ this._setPendingWrite(write);
422
+ return write;
423
+ };
424
+ WrappingWritableStreamSink.prototype.close = function () {
425
+ var _this = this;
426
+ if (this._pendingWrite === undefined) {
427
+ return this._underlyingWriter.close();
428
+ }
429
+ return this._finishPendingWrite().then(function () { return _this.close(); });
430
+ };
431
+ WrappingWritableStreamSink.prototype.abort = function (reason) {
432
+ if (this._state === "errored" /* ERRORED */) {
433
+ return undefined;
434
+ }
435
+ var writer = this._underlyingWriter;
436
+ return writer.abort(reason);
437
+ };
438
+ WrappingWritableStreamSink.prototype._setPendingWrite = function (writePromise) {
439
+ var _this = this;
440
+ var pendingWrite;
441
+ var finishWrite = function () {
442
+ if (_this._pendingWrite === pendingWrite) {
443
+ _this._pendingWrite = undefined;
444
+ }
445
+ };
446
+ this._pendingWrite = pendingWrite = writePromise.then(finishWrite, finishWrite);
447
+ };
448
+ WrappingWritableStreamSink.prototype._finishPendingWrite = function () {
449
+ var _this = this;
450
+ if (this._pendingWrite === undefined) {
451
+ return Promise.resolve();
452
+ }
453
+ var afterWrite = function () { return _this._finishPendingWrite(); };
454
+ return this._pendingWrite.then(afterWrite, afterWrite);
455
+ };
456
+ WrappingWritableStreamSink.prototype._startErroring = function (reason) {
457
+ var _this = this;
458
+ if (this._state === "writable" /* WRITABLE */) {
459
+ this._state = "erroring" /* ERRORING */;
460
+ this._storedError = reason;
461
+ var afterWrite = function () { return _this._finishErroring(reason); };
462
+ if (this._pendingWrite === undefined) {
463
+ afterWrite();
464
+ }
465
+ else {
466
+ this._finishPendingWrite().then(afterWrite, afterWrite);
467
+ }
468
+ this._writableStreamController.error(reason);
469
+ }
470
+ };
471
+ WrappingWritableStreamSink.prototype._finishErroring = function (reason) {
472
+ if (this._state === "writable" /* WRITABLE */) {
473
+ this._startErroring(reason);
474
+ }
475
+ if (this._state === "erroring" /* ERRORING */) {
476
+ this._state = "errored" /* ERRORED */;
477
+ this._errorPromiseReject(this._storedError);
478
+ }
479
+ };
480
+ return WrappingWritableStreamSink;
481
+ }());
482
+
483
+ function createTransformStreamWrapper(ctor) {
484
+ assert(isTransformStreamConstructor(ctor));
485
+ return function (transform) {
486
+ if (transform.constructor === ctor) {
487
+ return transform;
488
+ }
489
+ var transformer = createWrappingTransformer(transform);
490
+ return new ctor(transformer);
491
+ };
492
+ }
493
+ function createWrappingTransformer(transform) {
494
+ assert(isTransformStream(transform));
495
+ var readable = transform.readable, writable = transform.writable;
496
+ assert(readable.locked === false);
497
+ assert(writable.locked === false);
498
+ var reader = readable.getReader();
499
+ var writer;
500
+ try {
501
+ writer = writable.getWriter();
502
+ }
503
+ catch (e) {
504
+ reader.releaseLock(); // do not leak reader
505
+ throw e;
506
+ }
507
+ return new WrappingTransformStreamTransformer(reader, writer);
508
+ }
509
+ var WrappingTransformStreamTransformer = /** @class */ (function () {
510
+ function WrappingTransformStreamTransformer(reader, writer) {
511
+ var _this = this;
512
+ this._transformStreamController = undefined;
513
+ this._onRead = function (result) {
514
+ if (result.done) {
515
+ return;
516
+ }
517
+ _this._transformStreamController.enqueue(result.value);
518
+ return _this._reader.read().then(_this._onRead);
519
+ };
520
+ this._onError = function (reason) {
521
+ _this._flushReject(reason);
522
+ _this._transformStreamController.error(reason);
523
+ _this._reader.cancel(reason).catch(noop);
524
+ _this._writer.abort(reason).catch(noop);
525
+ };
526
+ this._onTerminate = function () {
527
+ _this._flushResolve();
528
+ _this._transformStreamController.terminate();
529
+ var error = new TypeError('TransformStream terminated');
530
+ _this._writer.abort(error).catch(noop);
531
+ };
532
+ this._reader = reader;
533
+ this._writer = writer;
534
+ this._flushPromise = new Promise(function (resolve, reject) {
535
+ _this._flushResolve = resolve;
536
+ _this._flushReject = reject;
537
+ });
538
+ }
539
+ WrappingTransformStreamTransformer.prototype.start = function (controller) {
540
+ this._transformStreamController = controller;
541
+ this._reader.read()
542
+ .then(this._onRead)
543
+ .then(this._onTerminate, this._onError);
544
+ var readerClosed = this._reader.closed;
545
+ if (readerClosed) {
546
+ readerClosed
547
+ .then(this._onTerminate, this._onError);
548
+ }
549
+ };
550
+ WrappingTransformStreamTransformer.prototype.transform = function (chunk) {
551
+ return this._writer.write(chunk);
552
+ };
553
+ WrappingTransformStreamTransformer.prototype.flush = function () {
554
+ var _this = this;
555
+ return this._writer.close()
556
+ .then(function () { return _this._flushPromise; });
557
+ };
558
+ return WrappingTransformStreamTransformer;
559
+ }());
560
+
561
+ export { createReadableStreamWrapper, createTransformStreamWrapper, createWrappingReadableSource, createWrappingTransformer, createWrappingWritableSink, createWritableStreamWrapper };