├── .gitignore ├── banner.png ├── config.example.json ├── dist ├── logsnag.config.json └── index.js ├── package.json ├── tsconfig.json ├── LICENSE ├── src └── index.ts └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | .vscode -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Intevel/directus-logsnag/HEAD/banner.png -------------------------------------------------------------------------------- /config.example.json: -------------------------------------------------------------------------------- 1 | { 2 | "api_token": "-", 3 | "events": [ 4 | { "name": "users.create", "project": "test", "channel": "nuxttest", "event": "New User!", "description": "A new Directus user was created", "icon": "🤑", "notify": true }, 5 | { "name": "payments.create", "project": "test", "channel": "nuxttest", "event": "New Payment", "description": "We've got a new payment :)", "icon": "💸", "notify": true } 6 | ] 7 | } -------------------------------------------------------------------------------- /dist/logsnag.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "api_token": "-", 3 | "events": [ 4 | { "name": "users.create", "project": "test", "channel": "nuxttest", "event": "New User!", "description": "A new Directus user was created", "icon": "🤑", "notify": true }, 5 | { "name": "payments.create", "project": "test", "channel": "nuxttest", "event": "New Payment", "description": "We've got a new payment :)", "icon": "💸", "notify": true } 6 | ] 7 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "directus-extension-logsnag", 3 | "version": "1.0.0", 4 | "keywords": [ 5 | "directus", 6 | "directus-extension", 7 | "directus-custom-hook", 8 | "directus-logsnag", 9 | "logsnag" 10 | ], 11 | "directus:extension": { 12 | "type": "hook", 13 | "path": "dist/index.js", 14 | "source": "src/index.ts", 15 | "host": "^9.13.0" 16 | }, 17 | "scripts": { 18 | "build": "directus-extension build" 19 | }, 20 | "devDependencies": { 21 | "@directus/extensions-sdk": "9.13.0", 22 | "@types/node": "^18.0.3", 23 | "typescript": "^4.7.4" 24 | }, 25 | "dependencies": { 26 | "node-fetch": "^3.2.6" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2019", 4 | "lib": ["ES2019", "DOM"], 5 | "moduleResolution": "node", 6 | "strict": true, 7 | "noFallthroughCasesInSwitch": true, 8 | "esModuleInterop": true, 9 | "noImplicitAny": true, 10 | "noImplicitThis": true, 11 | "noImplicitReturns": true, 12 | "noUnusedLocals": true, 13 | "noUncheckedIndexedAccess": true, 14 | "noUnusedParameters": true, 15 | "alwaysStrict": true, 16 | "strictNullChecks": true, 17 | "strictFunctionTypes": true, 18 | "strictBindCallApply": true, 19 | "strictPropertyInitialization": true, 20 | "resolveJsonModule": false, 21 | "skipLibCheck": true, 22 | "forceConsistentCasingInFileNames": true, 23 | "allowSyntheticDefaultImports": true, 24 | "isolatedModules": true, 25 | "rootDir": "./src" 26 | }, 27 | "include": ["./src/**/*.ts"] 28 | } 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Conner Luka Bachmann 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import fetch from "node-fetch"; 2 | const { api_token, events } = require("./logsnag.config.json"); 3 | 4 | // @ts-ignore 5 | export default ({ action }, { logger, services, exceptions, database: knex }) => { 6 | // @ts-ignore 7 | events.forEach(async (event) => { 8 | logger.info("[LOGSNAG] Registering event: " + event.name); 9 | // @ts-ignore 10 | action(event.name, async ({ collection, payload }, { schema }) => { 11 | logger.info(`[LOGSNAG] ${event.name} was called, logsnag fired :D`); 12 | const { ServiceUnavailableException } = exceptions; 13 | try { 14 | const headers = { 15 | "Content-Type": "application/json", 16 | Authorization: `Bearer ${api_token}`, 17 | }; 18 | return await fetch("https://api.logsnag.com/v1/log", { 19 | method: "POST", 20 | headers, 21 | body: JSON.stringify({ 22 | project: event.project, 23 | channel: event.channel, 24 | event: event.event, 25 | description: event.description, 26 | icon: event.icon, 27 | notify: event.notify || true, 28 | }), 29 | }); 30 | } catch (error) { 31 | logger.error(error) 32 | throw new ServiceUnavailableException(error); 33 | } 34 | }); 35 | }); 36 | }; 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![directus-logsnag](https://github.com/Intevel/directus-logsnag/blob/master/banner.png?raw=true) 2 | 3 | # Directus LogSnag 4 | 5 | 6 | 📢 Get notified when something in Directus happens. 7 | 8 | ## What is LogSnag? 9 | 10 | LogSnag is a simple event tracking tool. It helps you keep track what is happening within your projects, creates custom feeds, and notifies you of important events. 11 | Register your application [here](https://logsnag.com/) 12 | 13 | ## Installation 14 | 15 | > If you have any questions or problems, open an discussion on Github. 16 | 17 | 1. Firstly create a LogSnag account 18 | 2. Create your LogSnag project and your channels 19 | 3. Get your LogSnag API Token, from the API page under settings. Generate or revoke your API tokens there. 20 | 4. Clone this repository, copy the file from `dist` to your directus extensions folder `/extensions/hooks/directus-logsnag/`. 21 | 5. Now you can get started with configuring ✨ 22 | 23 | ## Configuration 24 | Your configuration file should be in your directus extensions folder under `/extensions/hooks/directus-logsnag/logsnag.config.json`. 25 | 26 | ```json 27 | { 28 | "api_token": "-", 29 | "events": [ 30 | { "name": "users.create", "project": "test", "channel": "nuxttest", "event": "New User!", "description": "A new Directus user was created", "icon": "🤑", "notify": true }, 31 | { "name": "payments.create", "project": "test", "channel": "nuxttest", "event": "New Payment", "description": "We've got a new payment :)", "icon": "💸", "notify": true } 32 | ] 33 | } 34 | ``` 35 | 36 | This is the configuration scheme, please insert your LogSnag API Token in `api_token`. 37 | Now you can configure your events, `name` is the parameter for the event name in Directus. So `users.create` would be the event in Directus which is called when a new User is created, after the event name, the LogSnag Configuration follows, this is how the message which is sended to LogSnag look like. 38 | 39 | 40 | ## License 41 | 42 | Published under MIT - Made with 💜 by Conner Luka Bachmann 43 | 44 | -------------------------------------------------------------------------------- /dist/index.js: -------------------------------------------------------------------------------- 1 | "use strict";var e=require("node:http"),t=require("node:https"),r=require("node:zlib"),o=require("node:stream"),n=require("node:buffer"),i=require("node:util"),a=require("node:url"),s=require("node:net");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("node:fs"),require("node:path");var u=l(e),c=l(t),d=l(r),f=l(o);var h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},b={exports:{}};!function(e){const t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol:e=>`Symbol(${e})`;function r(){}function o(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==h?h:void 0}const n=o();function i(e){return"object"==typeof e&&null!==e||"function"==typeof e}const a=r,s=Promise,l=Promise.prototype.then,u=Promise.resolve.bind(s),c=Promise.reject.bind(s);function d(e){return new s(e)}function f(e){return u(e)}function b(e){return c(e)}function p(e,t,r){return l.call(e,t,r)}function y(e,t,r){p(p(e,t,r),void 0,a)}function m(e,t){y(e,t)}function _(e,t){y(e,void 0,t)}function g(e,t,r){return p(e,t,r)}function w(e){p(e,void 0,a)}const v=(()=>{const e=n&&n.queueMicrotask;if("function"==typeof e)return e;const t=f(void 0);return e=>p(t,e)})();function S(e,t,r){if("function"!=typeof e)throw new TypeError("Argument is not a function");return Function.prototype.apply.call(e,t,r)}function T(e,t,r){try{return f(S(e,t,r))}catch(e){return b(e)}}const R=16384;class E{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;t._elements.length===R-1&&(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 o===R&&(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 P(e,t){e._ownerReadableStream=t,t._reader=e,"readable"===t._state?k(e):"closed"===t._state?L(e):O(e,t._storedError)}function A(e,t){return Eo(e._ownerReadableStream,t)}function C(e){"readable"===e._ownerReadableStream._state?B(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):j(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 q(e){return new TypeError("Cannot "+e+" a stream using a released reader")}function k(e){e._closedPromise=d(((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r}))}function O(e,t){k(e),B(e,t)}function L(e){k(e),z(e)}function B(e,t){void 0!==e._closedPromise_reject&&(w(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}function j(e,t){O(e,t)}function z(e){void 0!==e._closedPromise_resolve&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}const $=t("[[AbortSteps]]"),W=t("[[ErrorSteps]]"),D=t("[[CancelSteps]]"),F=t("[[PullSteps]]"),I=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)},M=Math.trunc||function(e){return e<0?Math.ceil(e):Math.floor(e)};function x(e){return"object"==typeof e||"function"==typeof e}function U(e,t){if(void 0!==e&&!x(e))throw new TypeError(`${t} is not an object.`)}function H(e,t){if("function"!=typeof e)throw new TypeError(`${t} is not a function.`)}function N(e){return"object"==typeof e&&null!==e||"function"==typeof e}function V(e,t){if(!N(e))throw new TypeError(`${t} is not an object.`)}function Y(e,t,r){if(void 0===e)throw new TypeError(`Parameter ${t} is required in '${r}'.`)}function Q(e,t,r){if(void 0===e)throw new TypeError(`${t} is required in '${r}'.`)}function G(e){return Number(e)}function K(e){return 0===e?0:e}function J(e){return K(M(e))}function Z(e,t){const r=0,o=Number.MAX_SAFE_INTEGER;let n=Number(e);if(n=K(n),!I(n))throw new TypeError(`${t} is not a finite number`);if(n=J(n),no)throw new TypeError(`${t} is outside the accepted range of ${r} to ${o}, inclusive`);return I(n)&&0!==n?n:0}function X(e,t){if(!To(e))throw new TypeError(`${t} is not a ReadableStream.`)}function ee(e){return new ie(e)}function te(e,t){e._reader._readRequests.push(t)}function re(e,t,r){const o=e._reader._readRequests.shift();r?o._closeSteps():o._chunkSteps(t)}function oe(e){return e._reader._readRequests.length}function ne(e){const t=e._reader;return void 0!==t&&!!ae(t)}class ie{constructor(e){if(Y(e,1,"ReadableStreamDefaultReader"),X(e,"First parameter"),Ro(e))throw new TypeError("This stream has already been locked for exclusive reading by another reader");P(this,e),this._readRequests=new E}get closed(){return ae(this)?this._closedPromise:b(le("closed"))}cancel(e){return ae(this)?void 0===this._ownerReadableStream?b(q("cancel")):A(this,e):b(le("cancel"))}read(){if(!ae(this))return b(le("read"));if(void 0===this._ownerReadableStream)return b(q("read from"));let e,t;const r=d(((r,o)=>{e=r,t=o})),o={_chunkSteps:t=>e({value:t,done:!1}),_closeSteps:()=>e({value:void 0,done:!0}),_errorSteps:e=>t(e)};return se(this,o),r}releaseLock(){if(!ae(this))throw le("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");C(this)}}}function ae(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readRequests")&&e instanceof ie}function se(e,t){const r=e._ownerReadableStream;r._disturbed=!0,"closed"===r._state?t._closeSteps():"errored"===r._state?t._errorSteps(r._storedError):r._readableStreamController[F](t)}function le(e){return new TypeError(`ReadableStreamDefaultReader.prototype.${e} can only be used on a ReadableStreamDefaultReader`)}Object.defineProperties(ie.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(ie.prototype,t.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});const ue=Object.getPrototypeOf(Object.getPrototypeOf((async function*(){})).prototype);class ce{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?g(this._ongoingPromise,e,e):e(),this._ongoingPromise}return(e){const t=()=>this._returnSteps(e);return this._ongoingPromise?g(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 b(q("iterate"));let t,r;const o=d(((e,o)=>{t=e,r=o}));return se(e,{_chunkSteps:e=>{this._ongoingPromise=void 0,v((()=>t({value:e,done:!1})))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,C(e),t({value:void 0,done:!0})},_errorSteps:t=>{this._ongoingPromise=void 0,this._isFinished=!0,C(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 b(q("finish iterating"));if(!this._preventCancel){const r=A(t,e);return C(t),g(r,(()=>({value:e,done:!0})))}return C(t),f({value:e,done:!0})}}const de={next(){return he(this)?this._asyncIteratorImpl.next():b(be("next"))},return(e){return he(this)?this._asyncIteratorImpl.return(e):b(be("return"))}};function fe(e,t){const r=ee(e),o=new ce(r,t),n=Object.create(de);return n._asyncIteratorImpl=o,n}function he(e){if(!i(e))return!1;if(!Object.prototype.hasOwnProperty.call(e,"_asyncIteratorImpl"))return!1;try{return e._asyncIteratorImpl instanceof ce}catch(e){return!1}}function be(e){return new TypeError(`ReadableStreamAsyncIterator.${e} can only be used on a ReadableSteamAsyncIterator`)}void 0!==ue&&Object.setPrototypeOf(de,ue);const pe=Number.isNaN||function(e){return e!=e};function ye(e){return e.slice()}function me(e,t,r,o,n){new Uint8Array(e).set(new Uint8Array(r,o,n),t)}function _e(e){return e}function ge(e){return!1}function we(e,t,r){if(e.slice)return e.slice(t,r);const o=r-t,n=new ArrayBuffer(o);return me(n,0,e,t,o),n}function ve(e){return!("number"!=typeof e||pe(e)||e<0)}function Se(e){const t=we(e.buffer,e.byteOffset,e.byteOffset+e.byteLength);return new Uint8Array(t)}function Te(e){const t=e._queue.shift();return e._queueTotalSize-=t.size,e._queueTotalSize<0&&(e._queueTotalSize=0),t.value}function Re(e,t,r){if(!ve(r)||r===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");e._queue.push({value:t,size:r}),e._queueTotalSize+=r}function Ee(e){return e._queue.peek().value}function Pe(e){e._queue=new E,e._queueTotalSize=0}class Ae{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!ke(this))throw nt("view");return this._view}respond(e){if(!ke(this))throw nt("respond");if(Y(e,1,"respond"),e=Z(e,"First parameter"),void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");ge(this._view.buffer),Xe(this._associatedReadableByteStreamController,e)}respondWithNewView(e){if(!ke(this))throw nt("respondWithNewView");if(Y(e,1,"respondWithNewView"),!ArrayBuffer.isView(e))throw new TypeError("You can only respond with array buffer views");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");ge(e.buffer),et(this._associatedReadableByteStreamController,e)}}Object.defineProperties(Ae.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(Ae.prototype,t.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class Ce{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!qe(this))throw it("byobRequest");return Je(this)}get desiredSize(){if(!qe(this))throw it("desiredSize");return Ze(this)}close(){if(!qe(this))throw it("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`);Qe(this)}enqueue(e){if(!qe(this))throw it("enqueue");if(Y(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`);Ge(this,e)}error(e){if(!qe(this))throw it("error");Ke(this,e)}[D](e){Le(this),Pe(this);const t=this._cancelAlgorithm(e);return Ye(this),t}[F](e){const t=this._controlledReadableByteStream;if(this._queueTotalSize>0){const t=this._queue.shift();this._queueTotalSize-=t.byteLength,De(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,bufferByteLength:r,byteOffset:0,byteLength:r,bytesFilled:0,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(o)}te(t,e),Oe(this)}}function qe(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableByteStream")&&e instanceof Ce}function ke(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_associatedReadableByteStreamController")&&e instanceof Ae}function Oe(e){Ve(e)&&(e._pulling?e._pullAgain=!0:(e._pulling=!0,y(e._pullAlgorithm(),(()=>{e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,Oe(e))}),(t=>{Ke(e,t)}))))}function Le(e){Fe(e),e._pendingPullIntos=new E}function Be(e,t){let r=!1;"closed"===e._state&&(r=!0);const o=je(t);"default"===t.readerType?re(e,o,r):lt(e,o,r)}function je(e){const t=e.bytesFilled,r=e.elementSize;return new e.viewConstructor(e.buffer,e.byteOffset,t/r)}function ze(e,t,r,o){e._queue.push({buffer:t,byteOffset:r,byteLength:o}),e._queueTotalSize+=o}function $e(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;me(t.buffer,n,r.buffer,r.byteOffset,o),r.byteLength===o?u.shift():(r.byteOffset+=o,r.byteLength-=o),e._queueTotalSize-=o,We(e,o,t),s-=o}return l}function We(e,t,r){r.bytesFilled+=t}function De(e){0===e._queueTotalSize&&e._closeRequested?(Ye(e),Po(e._controlledReadableByteStream)):Oe(e)}function Fe(e){null!==e._byobRequest&&(e._byobRequest._associatedReadableByteStreamController=void 0,e._byobRequest._view=null,e._byobRequest=null)}function Ie(e){for(;e._pendingPullIntos.length>0;){if(0===e._queueTotalSize)return;const t=e._pendingPullIntos.peek();$e(e,t)&&(Ne(e),Be(e._controlledReadableByteStream,t))}}function Me(e,t,r){const o=e._controlledReadableByteStream;let n=1;t.constructor!==DataView&&(n=t.constructor.BYTES_PER_ELEMENT);const i=t.constructor,a=_e(t.buffer),s={buffer:a,bufferByteLength:a.byteLength,byteOffset:t.byteOffset,byteLength:t.byteLength,bytesFilled:0,elementSize:n,viewConstructor:i,readerType:"byob"};if(e._pendingPullIntos.length>0)return e._pendingPullIntos.push(s),void st(o,r);if("closed"!==o._state){if(e._queueTotalSize>0){if($e(e,s)){const t=je(s);return De(e),void r._chunkSteps(t)}if(e._closeRequested){const t=new TypeError("Insufficient bytes to fill elements in the given buffer");return Ke(e,t),void r._errorSteps(t)}}e._pendingPullIntos.push(s),st(o,r),Oe(e)}else{const e=new i(s.buffer,s.byteOffset,0);r._closeSteps(e)}}function xe(e,t){const r=e._controlledReadableByteStream;if(ct(r))for(;ut(r)>0;)Be(r,Ne(e))}function Ue(e,t,r){if(We(e,t,r),r.bytesFilled0){const t=r.byteOffset+r.bytesFilled,n=we(r.buffer,t-o,t);ze(e,n,0,n.byteLength)}r.bytesFilled-=o,Be(e._controlledReadableByteStream,r),Ie(e)}function He(e,t){const r=e._pendingPullIntos.peek();Fe(e),"closed"===e._controlledReadableByteStream._state?xe(e):Ue(e,t,r),Oe(e)}function Ne(e){return e._pendingPullIntos.shift()}function Ve(e){const t=e._controlledReadableByteStream;return"readable"===t._state&&!e._closeRequested&&!!e._started&&(!!(ne(t)&&oe(t)>0)||!!(ct(t)&&ut(t)>0)||Ze(e)>0)}function Ye(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0}function Qe(e){const t=e._controlledReadableByteStream;if(!e._closeRequested&&"readable"===t._state)if(e._queueTotalSize>0)e._closeRequested=!0;else{if(e._pendingPullIntos.length>0&&e._pendingPullIntos.peek().bytesFilled>0){const t=new TypeError("Insufficient bytes to fill elements in the given buffer");throw Ke(e,t),t}Ye(e),Po(t)}}function Ge(e,t){const r=e._controlledReadableByteStream;if(e._closeRequested||"readable"!==r._state)return;const o=t.buffer,n=t.byteOffset,i=t.byteLength,a=_e(o);if(e._pendingPullIntos.length>0){const t=e._pendingPullIntos.peek();ge(t.buffer),t.buffer=_e(t.buffer)}Fe(e),ne(r)?0===oe(r)?ze(e,a,n,i):(e._pendingPullIntos.length>0&&Ne(e),re(r,new Uint8Array(a,n,i),!1)):ct(r)?(ze(e,a,n,i),Ie(e)):ze(e,a,n,i),Oe(e)}function Ke(e,t){const r=e._controlledReadableByteStream;"readable"===r._state&&(Le(e),Pe(e),Ye(e),Ao(r,t))}function Je(e){if(null===e._byobRequest&&e._pendingPullIntos.length>0){const t=e._pendingPullIntos.peek(),r=new Uint8Array(t.buffer,t.byteOffset+t.bytesFilled,t.byteLength-t.bytesFilled),o=Object.create(Ae.prototype);ot(o,e,r),e._byobRequest=o}return e._byobRequest}function Ze(e){const t=e._controlledReadableByteStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function Xe(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")}else{if(0===t)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(r.bytesFilled+t>r.byteLength)throw new RangeError("bytesWritten out of range")}r.buffer=_e(r.buffer),He(e,t)}function et(e,t){const r=e._pendingPullIntos.peek();if("closed"===e._controlledReadableByteStream._state){if(0!==t.byteLength)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(0===t.byteLength)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(r.byteOffset+r.bytesFilled!==t.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(r.bufferByteLength!==t.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(r.bytesFilled+t.byteLength>r.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");const o=t.byteLength;r.buffer=_e(t.buffer),He(e,o)}function tt(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,Pe(t),t._closeRequested=!1,t._started=!1,t._strategyHWM=i,t._pullAlgorithm=o,t._cancelAlgorithm=n,t._autoAllocateChunkSize=a,t._pendingPullIntos=new E,e._readableStreamController=t,y(f(r()),(()=>{t._started=!0,Oe(t)}),(e=>{Ke(t,e)}))}function rt(e,t,r){const o=Object.create(Ce.prototype);let n=()=>{},i=()=>f(void 0),a=()=>f(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");tt(e,o,n,i,a,r,s)}function ot(e,t,r){e._associatedReadableByteStreamController=t,e._view=r}function nt(e){return new TypeError(`ReadableStreamBYOBRequest.prototype.${e} can only be used on a ReadableStreamBYOBRequest`)}function it(e){return new TypeError(`ReadableByteStreamController.prototype.${e} can only be used on a ReadableByteStreamController`)}function at(e){return new dt(e)}function st(e,t){e._reader._readIntoRequests.push(t)}function lt(e,t,r){const o=e._reader._readIntoRequests.shift();r?o._closeSteps(t):o._chunkSteps(t)}function ut(e){return e._reader._readIntoRequests.length}function ct(e){const t=e._reader;return void 0!==t&&!!ft(t)}Object.defineProperties(Ce.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(Ce.prototype,t.toStringTag,{value:"ReadableByteStreamController",configurable:!0});class dt{constructor(e){if(Y(e,1,"ReadableStreamBYOBReader"),X(e,"First parameter"),Ro(e))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!qe(e._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");P(this,e),this._readIntoRequests=new E}get closed(){return ft(this)?this._closedPromise:b(bt("closed"))}cancel(e){return ft(this)?void 0===this._ownerReadableStream?b(q("cancel")):A(this,e):b(bt("cancel"))}read(e){if(!ft(this))return b(bt("read"));if(!ArrayBuffer.isView(e))return b(new TypeError("view must be an array buffer view"));if(0===e.byteLength)return b(new TypeError("view must have non-zero byteLength"));if(0===e.buffer.byteLength)return b(new TypeError("view's buffer must have non-zero byteLength"));if(ge(e.buffer),void 0===this._ownerReadableStream)return b(q("read from"));let t,r;const o=d(((e,o)=>{t=e,r=o})),n={_chunkSteps:e=>t({value:e,done:!1}),_closeSteps:e=>t({value:e,done:!0}),_errorSteps:e=>r(e)};return ht(this,e,n),o}releaseLock(){if(!ft(this))throw bt("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");C(this)}}}function ft(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readIntoRequests")&&e instanceof dt}function ht(e,t,r){const o=e._ownerReadableStream;o._disturbed=!0,"errored"===o._state?r._errorSteps(o._storedError):Me(o._readableStreamController,t,r)}function bt(e){return new TypeError(`ReadableStreamBYOBReader.prototype.${e} can only be used on a ReadableStreamBYOBReader`)}function pt(e,t){const{highWaterMark:r}=e;if(void 0===r)return t;if(pe(r)||r<0)throw new RangeError("Invalid highWaterMark");return r}function yt(e){const{size:t}=e;return t||(()=>1)}function mt(e,t){U(e,t);const r=null==e?void 0:e.highWaterMark,o=null==e?void 0:e.size;return{highWaterMark:void 0===r?void 0:G(r),size:void 0===o?void 0:_t(o,`${t} has member 'size' that`)}}function _t(e,t){return H(e,t),t=>G(e(t))}function gt(e,t){U(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:wt(r,e,`${t} has member 'abort' that`),close:void 0===o?void 0:vt(o,e,`${t} has member 'close' that`),start:void 0===n?void 0:St(n,e,`${t} has member 'start' that`),write:void 0===a?void 0:Tt(a,e,`${t} has member 'write' that`),type:i}}function wt(e,t,r){return H(e,r),r=>T(e,t,[r])}function vt(e,t,r){return H(e,r),()=>T(e,t,[])}function St(e,t,r){return H(e,r),r=>S(e,t,[r])}function Tt(e,t,r){return H(e,r),(r,o)=>T(e,t,[r,o])}function Rt(e,t){if(!Lt(e))throw new TypeError(`${t} is not a WritableStream.`)}function Et(e){if("object"!=typeof e||null===e)return!1;try{return"boolean"==typeof e.aborted}catch(e){return!1}}Object.defineProperties(dt.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(dt.prototype,t.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});const Pt="function"==typeof AbortController;function At(){if(Pt)return new AbortController}class Ct{constructor(e={},t={}){void 0===e?e=null:V(e,"First parameter");const r=mt(t,"Second parameter"),o=gt(e,"First parameter");if(Ot(this),void 0!==o.type)throw new RangeError("Invalid type is specified");const n=yt(r);cr(this,o,pt(r,1),n)}get locked(){if(!Lt(this))throw Sr("locked");return Bt(this)}abort(e){return Lt(this)?Bt(this)?b(new TypeError("Cannot abort a stream that already has a writer")):jt(this,e):b(Sr("abort"))}close(){return Lt(this)?Bt(this)?b(new TypeError("Cannot close a stream that already has a writer")):Ht(this)?b(new TypeError("Cannot close an already-closing stream")):zt(this):b(Sr("close"))}getWriter(){if(!Lt(this))throw Sr("getWriter");return qt(this)}}function qt(e){return new Kt(e)}function kt(e,t,r,o,n=1,i=(()=>1)){const a=Object.create(Ct.prototype);return Ot(a),ur(a,Object.create(sr.prototype),e,t,r,o,n,i),a}function Ot(e){e._state="writable",e._storedError=void 0,e._writer=void 0,e._writableStreamController=void 0,e._writeRequests=new E,e._inFlightWriteRequest=void 0,e._closeRequest=void 0,e._inFlightCloseRequest=void 0,e._pendingAbortRequest=void 0,e._backpressure=!1}function Lt(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_writableStreamController")&&e instanceof Ct}function Bt(e){return void 0!==e._writer}function jt(e,t){var r;if("closed"===e._state||"errored"===e._state)return f(void 0);e._writableStreamController._abortReason=t,null===(r=e._writableStreamController._abortController)||void 0===r||r.abort();const o=e._state;if("closed"===o||"errored"===o)return f(void 0);if(void 0!==e._pendingAbortRequest)return e._pendingAbortRequest._promise;let n=!1;"erroring"===o&&(n=!0,t=void 0);const i=d(((r,o)=>{e._pendingAbortRequest={_promise:void 0,_resolve:r,_reject:o,_reason:t,_wasAlreadyErroring:n}}));return e._pendingAbortRequest._promise=i,n||Dt(e,t),i}function zt(e){const t=e._state;if("closed"===t||"errored"===t)return b(new TypeError(`The stream (in ${t} state) is not in the writable state and cannot be closed`));const r=d(((t,r)=>{const o={_resolve:t,_reject:r};e._closeRequest=o})),o=e._writer;return void 0!==o&&e._backpressure&&"writable"===t&&Dr(o),fr(e._writableStreamController),r}function $t(e){return d(((t,r)=>{const o={_resolve:t,_reject:r};e._writeRequests.push(o)}))}function Wt(e,t){"writable"!==e._state?Ft(e):Dt(e,t)}function Dt(e,t){const r=e._writableStreamController;e._state="erroring",e._storedError=t;const o=e._writer;void 0!==o&&rr(o,t),!Nt(e)&&r._started&&Ft(e)}function Ft(e){e._state="errored",e._writableStreamController[W]();const t=e._storedError;if(e._writeRequests.forEach((e=>{e._reject(t)})),e._writeRequests=new E,void 0===e._pendingAbortRequest)return void Qt(e);const r=e._pendingAbortRequest;if(e._pendingAbortRequest=void 0,r._wasAlreadyErroring)return r._reject(t),void Qt(e);y(e._writableStreamController[$](r._reason),(()=>{r._resolve(),Qt(e)}),(t=>{r._reject(t),Qt(e)}))}function It(e){e._inFlightWriteRequest._resolve(void 0),e._inFlightWriteRequest=void 0}function Mt(e,t){e._inFlightWriteRequest._reject(t),e._inFlightWriteRequest=void 0,Wt(e,t)}function xt(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&&Or(t)}function Ut(e,t){e._inFlightCloseRequest._reject(t),e._inFlightCloseRequest=void 0,void 0!==e._pendingAbortRequest&&(e._pendingAbortRequest._reject(t),e._pendingAbortRequest=void 0),Wt(e,t)}function Ht(e){return void 0!==e._closeRequest||void 0!==e._inFlightCloseRequest}function Nt(e){return void 0!==e._inFlightWriteRequest||void 0!==e._inFlightCloseRequest}function Vt(e){e._inFlightCloseRequest=e._closeRequest,e._closeRequest=void 0}function Yt(e){e._inFlightWriteRequest=e._writeRequests.shift()}function Qt(e){void 0!==e._closeRequest&&(e._closeRequest._reject(e._storedError),e._closeRequest=void 0);const t=e._writer;void 0!==t&&qr(t,e._storedError)}function Gt(e,t){const r=e._writer;void 0!==r&&t!==e._backpressure&&(t?$r(r):Dr(r)),e._backpressure=t}Object.defineProperties(Ct.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(Ct.prototype,t.toStringTag,{value:"WritableStream",configurable:!0});class Kt{constructor(e){if(Y(e,1,"WritableStreamDefaultWriter"),Rt(e,"First parameter"),Bt(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)!Ht(e)&&e._backpressure?Lr(this):jr(this),Pr(this);else if("erroring"===t)Br(this,e._storedError),Pr(this);else if("closed"===t)jr(this),Cr(this);else{const t=e._storedError;Br(this,t),Ar(this,t)}}get closed(){return Jt(this)?this._closedPromise:b(Rr("closed"))}get desiredSize(){if(!Jt(this))throw Rr("desiredSize");if(void 0===this._ownerWritableStream)throw Er("desiredSize");return or(this)}get ready(){return Jt(this)?this._readyPromise:b(Rr("ready"))}abort(e){return Jt(this)?void 0===this._ownerWritableStream?b(Er("abort")):Zt(this,e):b(Rr("abort"))}close(){if(!Jt(this))return b(Rr("close"));const e=this._ownerWritableStream;return void 0===e?b(Er("close")):Ht(e)?b(new TypeError("Cannot close an already-closing stream")):Xt(this)}releaseLock(){if(!Jt(this))throw Rr("releaseLock");void 0!==this._ownerWritableStream&&nr(this)}write(e){return Jt(this)?void 0===this._ownerWritableStream?b(Er("write to")):ir(this,e):b(Rr("write"))}}function Jt(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_ownerWritableStream")&&e instanceof Kt}function Zt(e,t){return jt(e._ownerWritableStream,t)}function Xt(e){return zt(e._ownerWritableStream)}function er(e){const t=e._ownerWritableStream,r=t._state;return Ht(t)||"closed"===r?f(void 0):"errored"===r?b(t._storedError):Xt(e)}function tr(e,t){"pending"===e._closedPromiseState?qr(e,t):kr(e,t)}function rr(e,t){"pending"===e._readyPromiseState?zr(e,t):Wr(e,t)}function or(e){const t=e._ownerWritableStream,r=t._state;return"errored"===r||"erroring"===r?null:"closed"===r?0:br(t._writableStreamController)}function nr(e){const t=e._ownerWritableStream,r=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");rr(e,r),tr(e,r),t._writer=void 0,e._ownerWritableStream=void 0}function ir(e,t){const r=e._ownerWritableStream,o=r._writableStreamController,n=hr(o,t);if(r!==e._ownerWritableStream)return b(Er("write to"));const i=r._state;if("errored"===i)return b(r._storedError);if(Ht(r)||"closed"===i)return b(new TypeError("The stream is closing or closed and cannot be written to"));if("erroring"===i)return b(r._storedError);const a=$t(r);return pr(o,t,n),a}Object.defineProperties(Kt.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(Kt.prototype,t.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});const ar={};class sr{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!lr(this))throw Tr("abortReason");return this._abortReason}get signal(){if(!lr(this))throw Tr("signal");if(void 0===this._abortController)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(e){if(!lr(this))throw Tr("error");"writable"===this._controlledWritableStream._state&&vr(this,e)}[$](e){const t=this._abortAlgorithm(e);return dr(this),t}[W](){Pe(this)}}function lr(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledWritableStream")&&e instanceof sr}function ur(e,t,r,o,n,i,a,s){t._controlledWritableStream=e,e._writableStreamController=t,t._queue=void 0,t._queueTotalSize=void 0,Pe(t),t._abortReason=void 0,t._abortController=At(),t._started=!1,t._strategySizeAlgorithm=s,t._strategyHWM=a,t._writeAlgorithm=o,t._closeAlgorithm=n,t._abortAlgorithm=i;const l=wr(t);Gt(e,l),y(f(r()),(()=>{t._started=!0,yr(t)}),(r=>{t._started=!0,Wt(e,r)}))}function cr(e,t,r,o){const n=Object.create(sr.prototype);let i=()=>{},a=()=>f(void 0),s=()=>f(void 0),l=()=>f(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)),ur(e,n,i,a,s,l,r,o)}function dr(e){e._writeAlgorithm=void 0,e._closeAlgorithm=void 0,e._abortAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function fr(e){Re(e,ar,0),yr(e)}function hr(e,t){try{return e._strategySizeAlgorithm(t)}catch(t){return mr(e,t),1}}function br(e){return e._strategyHWM-e._queueTotalSize}function pr(e,t,r){try{Re(e,t,r)}catch(t){return void mr(e,t)}const o=e._controlledWritableStream;Ht(o)||"writable"!==o._state||Gt(o,wr(e)),yr(e)}function yr(e){const t=e._controlledWritableStream;if(!e._started)return;if(void 0!==t._inFlightWriteRequest)return;if("erroring"===t._state)return void Ft(t);if(0===e._queue.length)return;const r=Ee(e);r===ar?_r(e):gr(e,r)}function mr(e,t){"writable"===e._controlledWritableStream._state&&vr(e,t)}function _r(e){const t=e._controlledWritableStream;Vt(t),Te(e);const r=e._closeAlgorithm();dr(e),y(r,(()=>{xt(t)}),(e=>{Ut(t,e)}))}function gr(e,t){const r=e._controlledWritableStream;Yt(r),y(e._writeAlgorithm(t),(()=>{It(r);const t=r._state;if(Te(e),!Ht(r)&&"writable"===t){const t=wr(e);Gt(r,t)}yr(e)}),(t=>{"writable"===r._state&&dr(e),Mt(r,t)}))}function wr(e){return br(e)<=0}function vr(e,t){const r=e._controlledWritableStream;dr(e),Dt(r,t)}function Sr(e){return new TypeError(`WritableStream.prototype.${e} can only be used on a WritableStream`)}function Tr(e){return new TypeError(`WritableStreamDefaultController.prototype.${e} can only be used on a WritableStreamDefaultController`)}function Rr(e){return new TypeError(`WritableStreamDefaultWriter.prototype.${e} can only be used on a WritableStreamDefaultWriter`)}function Er(e){return new TypeError("Cannot "+e+" a stream using a released writer")}function Pr(e){e._closedPromise=d(((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r,e._closedPromiseState="pending"}))}function Ar(e,t){Pr(e),qr(e,t)}function Cr(e){Pr(e),Or(e)}function qr(e,t){void 0!==e._closedPromise_reject&&(w(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="rejected")}function kr(e,t){Ar(e,t)}function Or(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 Lr(e){e._readyPromise=d(((t,r)=>{e._readyPromise_resolve=t,e._readyPromise_reject=r})),e._readyPromiseState="pending"}function Br(e,t){Lr(e),zr(e,t)}function jr(e){Lr(e),Dr(e)}function zr(e,t){void 0!==e._readyPromise_reject&&(w(e._readyPromise),e._readyPromise_reject(t),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="rejected")}function $r(e){Lr(e)}function Wr(e,t){Br(e,t)}function Dr(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(sr.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(sr.prototype,t.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});const Fr="undefined"!=typeof DOMException?DOMException:void 0;function Ir(e){if("function"!=typeof e&&"object"!=typeof e)return!1;try{return new e,!0}catch(e){return!1}}function Mr(){const e=function(e,t){this.message=e||"",this.name=t||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return e.prototype=Object.create(Error.prototype),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,configurable:!0}),e}const xr=Ir(Fr)?Fr:Mr();function Ur(e,t,o,n,i,a){const s=ee(e),l=qt(t);e._disturbed=!0;let u=!1,c=f(void 0);return d(((h,b)=>{let g;if(void 0!==a){if(g=()=>{const r=new xr("Aborted","AbortError"),o=[];n||o.push((()=>"writable"===t._state?jt(t,r):f(void 0))),i||o.push((()=>"readable"===e._state?Eo(e,r):f(void 0))),P((()=>Promise.all(o.map((e=>e())))),!0,r)},a.aborted)return void g();a.addEventListener("abort",g)}function v(){return d(((e,t)=>{function r(o){o?e():p(S(),r,t)}r(!1)}))}function S(){return u?f(!0):p(l._readyPromise,(()=>d(((e,t)=>{se(s,{_chunkSteps:t=>{c=p(ir(l,t),void 0,r),e(!1)},_closeSteps:()=>e(!0),_errorSteps:t})}))))}if(R(e,s._closedPromise,(e=>{n?A(!0,e):P((()=>jt(t,e)),!0,e)})),R(t,l._closedPromise,(t=>{i?A(!0,t):P((()=>Eo(e,t)),!0,t)})),E(e,s._closedPromise,(()=>{o?A():P((()=>er(l)))})),Ht(t)||"closed"===t._state){const t=new TypeError("the destination writable stream closed before all data could be piped to it");i?A(!0,t):P((()=>Eo(e,t)),!0,t)}function T(){const e=c;return p(c,(()=>e!==c?T():void 0))}function R(e,t,r){"errored"===e._state?r(e._storedError):_(t,r)}function E(e,t,r){"closed"===e._state?r():m(t,r)}function P(e,r,o){function n(){y(e(),(()=>q(r,o)),(e=>q(!0,e)))}u||(u=!0,"writable"!==t._state||Ht(t)?n():m(T(),n))}function A(e,r){u||(u=!0,"writable"!==t._state||Ht(t)?q(e,r):m(T(),(()=>q(e,r))))}function q(e,t){nr(l),C(s),void 0!==a&&a.removeEventListener("abort",g),e?b(t):h(void 0)}w(v())}))}class Hr{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Nr(this))throw oo("desiredSize");return Zr(this)}close(){if(!Nr(this))throw oo("close");if(!eo(this))throw new TypeError("The stream is not in a state that permits close");Gr(this)}enqueue(e){if(!Nr(this))throw oo("enqueue");if(!eo(this))throw new TypeError("The stream is not in a state that permits enqueue");return Kr(this,e)}error(e){if(!Nr(this))throw oo("error");Jr(this,e)}[D](e){Pe(this);const t=this._cancelAlgorithm(e);return Qr(this),t}[F](e){const t=this._controlledReadableStream;if(this._queue.length>0){const r=Te(this);this._closeRequested&&0===this._queue.length?(Qr(this),Po(t)):Vr(this),e._chunkSteps(r)}else te(t,e),Vr(this)}}function Nr(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableStream")&&e instanceof Hr}function Vr(e){Yr(e)&&(e._pulling?e._pullAgain=!0:(e._pulling=!0,y(e._pullAlgorithm(),(()=>{e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,Vr(e))}),(t=>{Jr(e,t)}))))}function Yr(e){const t=e._controlledReadableStream;return!!eo(e)&&!!e._started&&(!!(Ro(t)&&oe(t)>0)||Zr(e)>0)}function Qr(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function Gr(e){if(!eo(e))return;const t=e._controlledReadableStream;e._closeRequested=!0,0===e._queue.length&&(Qr(e),Po(t))}function Kr(e,t){if(!eo(e))return;const r=e._controlledReadableStream;if(Ro(r)&&oe(r)>0)re(r,t,!1);else{let r;try{r=e._strategySizeAlgorithm(t)}catch(t){throw Jr(e,t),t}try{Re(e,t,r)}catch(t){throw Jr(e,t),t}}Vr(e)}function Jr(e,t){const r=e._controlledReadableStream;"readable"===r._state&&(Pe(e),Qr(e),Ao(r,t))}function Zr(e){const t=e._controlledReadableStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function Xr(e){return!Yr(e)}function eo(e){const t=e._controlledReadableStream._state;return!e._closeRequested&&"readable"===t}function to(e,t,r,o,n,i,a){t._controlledReadableStream=e,t._queue=void 0,t._queueTotalSize=void 0,Pe(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,y(f(r()),(()=>{t._started=!0,Vr(t)}),(e=>{Jr(t,e)}))}function ro(e,t,r,o){const n=Object.create(Hr.prototype);let i=()=>{},a=()=>f(void 0),s=()=>f(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)),to(e,n,i,a,s,r,o)}function oo(e){return new TypeError(`ReadableStreamDefaultController.prototype.${e} can only be used on a ReadableStreamDefaultController`)}function no(e,t){return qe(e._readableStreamController)?ao(e):io(e)}function io(e,t){const r=ee(e);let o,n,i,a,s,l=!1,u=!1,c=!1,h=!1;const b=d((e=>{s=e}));function p(){return l?(u=!0,f(void 0)):(l=!0,se(r,{_chunkSteps:e=>{v((()=>{u=!1;const t=e,r=e;c||Kr(i._readableStreamController,t),h||Kr(a._readableStreamController,r),l=!1,u&&p()}))},_closeSteps:()=>{l=!1,c||Gr(i._readableStreamController),h||Gr(a._readableStreamController),c&&h||s(void 0)},_errorSteps:()=>{l=!1}}),f(void 0))}function y(t){if(c=!0,o=t,h){const t=ye([o,n]),r=Eo(e,t);s(r)}return b}function m(t){if(h=!0,n=t,c){const t=ye([o,n]),r=Eo(e,t);s(r)}return b}function g(){}return i=wo(g,p,y),a=wo(g,p,m),_(r._closedPromise,(e=>{Jr(i._readableStreamController,e),Jr(a._readableStreamController,e),c&&h||s(void 0)})),[i,a]}function ao(e){let t,r,o,n,i,a=ee(e),s=!1,l=!1,u=!1,c=!1,h=!1;const b=d((e=>{i=e}));function p(e){_(e._closedPromise,(t=>{e===a&&(Ke(o._readableStreamController,t),Ke(n._readableStreamController,t),c&&h||i(void 0))}))}function y(){ft(a)&&(C(a),a=ee(e),p(a)),se(a,{_chunkSteps:t=>{v((()=>{l=!1,u=!1;const r=t;let a=t;if(!c&&!h)try{a=Se(t)}catch(t){return Ke(o._readableStreamController,t),Ke(n._readableStreamController,t),void i(Eo(e,t))}c||Ge(o._readableStreamController,r),h||Ge(n._readableStreamController,a),s=!1,l?g():u&&w()}))},_closeSteps:()=>{s=!1,c||Qe(o._readableStreamController),h||Qe(n._readableStreamController),o._readableStreamController._pendingPullIntos.length>0&&Xe(o._readableStreamController,0),n._readableStreamController._pendingPullIntos.length>0&&Xe(n._readableStreamController,0),c&&h||i(void 0)},_errorSteps:()=>{s=!1}})}function m(t,r){ae(a)&&(C(a),a=at(e),p(a));const d=r?n:o,f=r?o:n;ht(a,t,{_chunkSteps:t=>{v((()=>{l=!1,u=!1;const o=r?h:c;if(r?c:h)o||et(d._readableStreamController,t);else{let r;try{r=Se(t)}catch(t){return Ke(d._readableStreamController,t),Ke(f._readableStreamController,t),void i(Eo(e,t))}o||et(d._readableStreamController,t),Ge(f._readableStreamController,r)}s=!1,l?g():u&&w()}))},_closeSteps:e=>{s=!1;const t=r?h:c,o=r?c:h;t||Qe(d._readableStreamController),o||Qe(f._readableStreamController),void 0!==e&&(t||et(d._readableStreamController,e),!o&&f._readableStreamController._pendingPullIntos.length>0&&Xe(f._readableStreamController,0)),t&&o||i(void 0)},_errorSteps:()=>{s=!1}})}function g(){if(s)return l=!0,f(void 0);s=!0;const e=Je(o._readableStreamController);return null===e?y():m(e._view,!1),f(void 0)}function w(){if(s)return u=!0,f(void 0);s=!0;const e=Je(n._readableStreamController);return null===e?y():m(e._view,!0),f(void 0)}function S(o){if(c=!0,t=o,h){const o=ye([t,r]),n=Eo(e,o);i(n)}return b}function T(o){if(h=!0,r=o,c){const o=ye([t,r]),n=Eo(e,o);i(n)}return b}function R(){}return o=vo(R,g,S),n=vo(R,w,T),p(a),[o,n]}function so(e,t){U(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:Z(o,`${t} has member 'autoAllocateChunkSize' that`),cancel:void 0===n?void 0:lo(n,r,`${t} has member 'cancel' that`),pull:void 0===i?void 0:uo(i,r,`${t} has member 'pull' that`),start:void 0===a?void 0:co(a,r,`${t} has member 'start' that`),type:void 0===s?void 0:fo(s,`${t} has member 'type' that`)}}function lo(e,t,r){return H(e,r),r=>T(e,t,[r])}function uo(e,t,r){return H(e,r),r=>T(e,t,[r])}function co(e,t,r){return H(e,r),r=>S(e,t,[r])}function fo(e,t){if("bytes"!=(e=`${e}`))throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamType`);return e}function ho(e,t){U(e,t);const r=null==e?void 0:e.mode;return{mode:void 0===r?void 0:bo(r,`${t} has member 'mode' that`)}}function bo(e,t){if("byob"!=(e=`${e}`))throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamReaderMode`);return e}function po(e,t){U(e,t);const r=null==e?void 0:e.preventCancel;return{preventCancel:Boolean(r)}}function yo(e,t){U(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&&mo(i,`${t} has member 'signal' that`),{preventAbort:Boolean(r),preventCancel:Boolean(o),preventClose:Boolean(n),signal:i}}function mo(e,t){if(!Et(e))throw new TypeError(`${t} is not an AbortSignal.`)}function _o(e,t){U(e,t);const r=null==e?void 0:e.readable;Q(r,"readable","ReadableWritablePair"),X(r,`${t} has member 'readable' that`);const o=null==e?void 0:e.writable;return Q(o,"writable","ReadableWritablePair"),Rt(o,`${t} has member 'writable' that`),{readable:r,writable:o}}Object.defineProperties(Hr.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(Hr.prototype,t.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});class go{constructor(e={},t={}){void 0===e?e=null:V(e,"First parameter");const r=mt(t,"Second parameter"),o=so(e,"First parameter");if(So(this),"bytes"===o.type){if(void 0!==r.size)throw new RangeError("The strategy for a byte stream cannot have a size function");rt(this,o,pt(r,0))}else{const e=yt(r);ro(this,o,pt(r,1),e)}}get locked(){if(!To(this))throw Co("locked");return Ro(this)}cancel(e){return To(this)?Ro(this)?b(new TypeError("Cannot cancel a stream that already has a reader")):Eo(this,e):b(Co("cancel"))}getReader(e){if(!To(this))throw Co("getReader");return void 0===ho(e,"First parameter").mode?ee(this):at(this)}pipeThrough(e,t={}){if(!To(this))throw Co("pipeThrough");Y(e,1,"pipeThrough");const r=_o(e,"First parameter"),o=yo(t,"Second parameter");if(Ro(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(Bt(r.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");return w(Ur(this,r.writable,o.preventClose,o.preventAbort,o.preventCancel,o.signal)),r.readable}pipeTo(e,t={}){if(!To(this))return b(Co("pipeTo"));if(void 0===e)return b("Parameter 1 is required in 'pipeTo'.");if(!Lt(e))return b(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let r;try{r=yo(t,"Second parameter")}catch(e){return b(e)}return Ro(this)?b(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):Bt(e)?b(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):Ur(this,e,r.preventClose,r.preventAbort,r.preventCancel,r.signal)}tee(){if(!To(this))throw Co("tee");return ye(no(this))}values(e){if(!To(this))throw Co("values");return fe(this,po(e,"First parameter").preventCancel)}}function wo(e,t,r,o=1,n=(()=>1)){const i=Object.create(go.prototype);return So(i),to(i,Object.create(Hr.prototype),e,t,r,o,n),i}function vo(e,t,r){const o=Object.create(go.prototype);return So(o),tt(o,Object.create(Ce.prototype),e,t,r,0,void 0),o}function So(e){e._state="readable",e._reader=void 0,e._storedError=void 0,e._disturbed=!1}function To(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readableStreamController")&&e instanceof go}function Ro(e){return void 0!==e._reader}function Eo(e,t){if(e._disturbed=!0,"closed"===e._state)return f(void 0);if("errored"===e._state)return b(e._storedError);Po(e);const o=e._reader;return void 0!==o&&ft(o)&&(o._readIntoRequests.forEach((e=>{e._closeSteps(void 0)})),o._readIntoRequests=new E),g(e._readableStreamController[D](t),r)}function Po(e){e._state="closed";const t=e._reader;void 0!==t&&(z(t),ae(t)&&(t._readRequests.forEach((e=>{e._closeSteps()})),t._readRequests=new E))}function Ao(e,t){e._state="errored",e._storedError=t;const r=e._reader;void 0!==r&&(B(r,t),ae(r)?(r._readRequests.forEach((e=>{e._errorSteps(t)})),r._readRequests=new E):(r._readIntoRequests.forEach((e=>{e._errorSteps(t)})),r._readIntoRequests=new E))}function Co(e){return new TypeError(`ReadableStream.prototype.${e} can only be used on a ReadableStream`)}function qo(e,t){U(e,t);const r=null==e?void 0:e.highWaterMark;return Q(r,"highWaterMark","QueuingStrategyInit"),{highWaterMark:G(r)}}Object.defineProperties(go.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(go.prototype,t.toStringTag,{value:"ReadableStream",configurable:!0}),"symbol"==typeof t.asyncIterator&&Object.defineProperty(go.prototype,t.asyncIterator,{value:go.prototype.values,writable:!0,configurable:!0});const ko=e=>e.byteLength;try{Object.defineProperty(ko,"name",{value:"size",configurable:!0})}catch(e){}class Oo{constructor(e){Y(e,1,"ByteLengthQueuingStrategy"),e=qo(e,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=e.highWaterMark}get highWaterMark(){if(!Bo(this))throw Lo("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!Bo(this))throw Lo("size");return ko}}function Lo(e){return new TypeError(`ByteLengthQueuingStrategy.prototype.${e} can only be used on a ByteLengthQueuingStrategy`)}function Bo(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_byteLengthQueuingStrategyHighWaterMark")&&e instanceof Oo}Object.defineProperties(Oo.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(Oo.prototype,t.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});const jo=()=>1;try{Object.defineProperty(jo,"name",{value:"size",configurable:!0})}catch(e){}class zo{constructor(e){Y(e,1,"CountQueuingStrategy"),e=qo(e,"First parameter"),this._countQueuingStrategyHighWaterMark=e.highWaterMark}get highWaterMark(){if(!Wo(this))throw $o("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!Wo(this))throw $o("size");return jo}}function $o(e){return new TypeError(`CountQueuingStrategy.prototype.${e} can only be used on a CountQueuingStrategy`)}function Wo(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_countQueuingStrategyHighWaterMark")&&e instanceof zo}function Do(e,t){U(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:Fo(r,e,`${t} has member 'flush' that`),readableType:o,start:void 0===n?void 0:Io(n,e,`${t} has member 'start' that`),transform:void 0===i?void 0:Mo(i,e,`${t} has member 'transform' that`),writableType:a}}function Fo(e,t,r){return H(e,r),r=>T(e,t,[r])}function Io(e,t,r){return H(e,r),r=>S(e,t,[r])}function Mo(e,t,r){return H(e,r),(r,o)=>T(e,t,[r,o])}Object.defineProperties(zo.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(zo.prototype,t.toStringTag,{value:"CountQueuingStrategy",configurable:!0});class xo{constructor(e={},t={},r={}){void 0===e&&(e=null);const o=mt(t,"Second parameter"),n=mt(r,"Third parameter"),i=Do(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=pt(n,0),s=yt(n),l=pt(o,1),u=yt(o);let c;Uo(this,d((e=>{c=e})),l,u,a,s),Jo(this,i),void 0!==i.start?c(i.start(this._transformStreamController)):c(void 0)}get readable(){if(!Ho(this))throw un("readable");return this._readable}get writable(){if(!Ho(this))throw un("writable");return this._writable}}function Uo(e,t,r,o,n,i){function a(){return t}function s(t){return on(e,t)}function l(t){return nn(e,t)}function u(){return an(e)}function c(){return sn(e)}function d(t){return Vo(e,t),f(void 0)}e._writable=kt(a,s,u,l,r,o),e._readable=wo(a,c,d,n,i),e._backpressure=void 0,e._backpressureChangePromise=void 0,e._backpressureChangePromise_resolve=void 0,Yo(e,!0),e._transformStreamController=void 0}function Ho(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_transformStreamController")&&e instanceof xo}function No(e,t){Jr(e._readable._readableStreamController,t),Vo(e,t)}function Vo(e,t){Zo(e._transformStreamController),mr(e._writable._writableStreamController,t),e._backpressure&&Yo(e,!1)}function Yo(e,t){void 0!==e._backpressureChangePromise&&e._backpressureChangePromise_resolve(),e._backpressureChangePromise=d((t=>{e._backpressureChangePromise_resolve=t})),e._backpressure=t}Object.defineProperties(xo.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(xo.prototype,t.toStringTag,{value:"TransformStream",configurable:!0});class Qo{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Go(this))throw ln("desiredSize");return Zr(this._controlledTransformStream._readable._readableStreamController)}enqueue(e){if(!Go(this))throw ln("enqueue");Xo(this,e)}error(e){if(!Go(this))throw ln("error");en(this,e)}terminate(){if(!Go(this))throw ln("terminate");rn(this)}}function Go(e){return!!i(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledTransformStream")&&e instanceof Qo}function Ko(e,t,r,o){t._controlledTransformStream=e,e._transformStreamController=t,t._transformAlgorithm=r,t._flushAlgorithm=o}function Jo(e,t){const r=Object.create(Qo.prototype);let o=e=>{try{return Xo(r,e),f(void 0)}catch(e){return b(e)}},n=()=>f(void 0);void 0!==t.transform&&(o=e=>t.transform(e,r)),void 0!==t.flush&&(n=()=>t.flush(r)),Ko(e,r,o,n)}function Zo(e){e._transformAlgorithm=void 0,e._flushAlgorithm=void 0}function Xo(e,t){const r=e._controlledTransformStream,o=r._readable._readableStreamController;if(!eo(o))throw new TypeError("Readable side is not in a state that permits enqueue");try{Kr(o,t)}catch(e){throw Vo(r,e),r._readable._storedError}Xr(o)!==r._backpressure&&Yo(r,!0)}function en(e,t){No(e._controlledTransformStream,t)}function tn(e,t){return g(e._transformAlgorithm(t),void 0,(t=>{throw No(e._controlledTransformStream,t),t}))}function rn(e){const t=e._controlledTransformStream;Gr(t._readable._readableStreamController),Vo(t,new TypeError("TransformStream terminated"))}function on(e,t){const r=e._transformStreamController;return e._backpressure?g(e._backpressureChangePromise,(()=>{const o=e._writable;if("erroring"===o._state)throw o._storedError;return tn(r,t)})):tn(r,t)}function nn(e,t){return No(e,t),f(void 0)}function an(e){const t=e._readable,r=e._transformStreamController,o=r._flushAlgorithm();return Zo(r),g(o,(()=>{if("errored"===t._state)throw t._storedError;Gr(t._readableStreamController)}),(r=>{throw No(e,r),t._storedError}))}function sn(e){return Yo(e,!1),e._backpressureChangePromise}function ln(e){return new TypeError(`TransformStreamDefaultController.prototype.${e} can only be used on a TransformStreamDefaultController`)}function un(e){return new TypeError(`TransformStream.prototype.${e} can only be used on a TransformStream`)}Object.defineProperties(Qo.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(Qo.prototype,t.toStringTag,{value:"TransformStreamDefaultController",configurable:!0}),e.ByteLengthQueuingStrategy=Oo,e.CountQueuingStrategy=zo,e.ReadableByteStreamController=Ce,e.ReadableStream=go,e.ReadableStreamBYOBReader=dt,e.ReadableStreamBYOBRequest=Ae,e.ReadableStreamDefaultController=Hr,e.ReadableStreamDefaultReader=ie,e.TransformStream=xo,e.TransformStreamDefaultController=Qo,e.WritableStream=Ct,e.WritableStreamDefaultController=sr,e.WritableStreamDefaultWriter=Kt,Object.defineProperty(e,"__esModule",{value:!0})}(b.exports);if(!globalThis.ReadableStream)try{const e=require("node:process"),{emitWarning:t}=e;try{e.emitWarning=()=>{},Object.assign(globalThis,require("node:stream/web")),e.emitWarning=t}catch(r){throw e.emitWarning=t,r}}catch(e){Object.assign(globalThis,b.exports)}try{const{Blob:e}=require("buffer");e&&!e.prototype.stream&&(e.prototype.stream=function(e){let t=0;const r=this;return new ReadableStream({type:"bytes",async pull(e){const o=r.slice(t,Math.min(r.size,t+65536)),n=await o.arrayBuffer();t+=n.byteLength,e.enqueue(new Uint8Array(n)),t===r.size&&e.close()}})})}catch(e){} 2 | /*! fetch-blob. MIT License. Jimmy Wärting */async function*p(e,t=!0){for(const r of e)if("stream"in r)yield*r.stream();else if(ArrayBuffer.isView(r))if(t){let e=r.byteOffset;const t=r.byteOffset+r.byteLength;for(;e!==t;){const o=Math.min(t-e,65536),n=r.buffer.slice(e,e+o);e+=n.byteLength,yield new Uint8Array(n)}}else yield r;else{let e=0,t=r;for(;e!==t.size;){const r=t.slice(e,Math.min(t.size,e+65536)),o=await r.arrayBuffer();e+=o.byteLength,yield new Uint8Array(o)}}}const y=class e{#e=[];#t="";#r=0;#o="transparent";constructor(t=[],r={}){if("object"!=typeof t||null===t)throw new TypeError("Failed to construct 'Blob': The provided value cannot be converted to a sequence.");if("function"!=typeof t[Symbol.iterator])throw new TypeError("Failed to construct 'Blob': The object must have a callable @@iterator property.");if("object"!=typeof r&&"function"!=typeof r)throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.");null===r&&(r={});const o=new TextEncoder;for(const r of t){let t;t=ArrayBuffer.isView(r)?new Uint8Array(r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength)):r instanceof ArrayBuffer?new Uint8Array(r.slice(0)):r instanceof e?r:o.encode(`${r}`),this.#r+=ArrayBuffer.isView(t)?t.byteLength:t.size,this.#e.push(t)}this.#o=`${void 0===r.endings?"transparent":r.endings}`;const n=void 0===r.type?"":String(r.type);this.#t=/^[\x20-\x7E]*$/.test(n)?n:""}get size(){return this.#r}get type(){return this.#t}async text(){const e=new TextDecoder;let t="";for await(const r of p(this.#e,!1))t+=e.decode(r,{stream:!0});return t+=e.decode(),t}async arrayBuffer(){const e=new Uint8Array(this.size);let t=0;for await(const r of p(this.#e,!1))e.set(r,t),t+=r.length;return e.buffer}stream(){const e=p(this.#e,!0);return new globalThis.ReadableStream({type:"bytes",async pull(t){const r=await e.next();r.done?t.close():t.enqueue(r.value)},async cancel(){await e.return()}})}slice(t=0,r=this.size,o=""){const{size:n}=this;let i=t<0?Math.max(n+t,0):Math.min(t,n),a=r<0?Math.max(n+r,0):Math.min(r,n);const s=Math.max(a-i,0),l=this.#e,u=[];let c=0;for(const e of l){if(c>=s)break;const t=ArrayBuffer.isView(e)?e.byteLength:e.size;if(i&&t<=i)i-=t,a-=t;else{let r;ArrayBuffer.isView(e)?(r=e.subarray(i,Math.min(t,a)),c+=r.byteLength):(r=e.slice(i,Math.min(t,a)),c+=r.size),a-=t,u.push(r),i=0}}const d=new e([],{type:String(o).toLowerCase()});return d.#r=s,d.#e=u,d}get[Symbol.toStringTag](){return"Blob"}static[Symbol.hasInstance](e){return e&&"object"==typeof e&&"function"==typeof e.constructor&&("function"==typeof e.stream||"function"==typeof e.arrayBuffer)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}};Object.defineProperties(y.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});var m=y;const _=class extends m{#n=0;#i="";constructor(e,t,r={}){if(arguments.length<2)throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`);super(e,r),null===r&&(r={});const o=void 0===r.lastModified?Date.now():Number(r.lastModified);Number.isNaN(o)||(this.#n=o),this.#i=String(t)}get name(){return this.#i}get lastModified(){return this.#n}get[Symbol.toStringTag](){return"File"}static[Symbol.hasInstance](e){return!!e&&e instanceof m&&/^(File)$/.test(e[Symbol.toStringTag])}}; 3 | /*! formdata-polyfill. MIT License. Jimmy Wärting */ 4 | var{toStringTag:g,iterator:w,hasInstance:v}=Symbol,S=Math.random,T="append,set,get,getAll,delete,keys,values,entries,forEach,constructor".split(","),R=(e,t,r)=>(e+="",/^(Blob|File)$/.test(t&&t[g])?[(r=void 0!==r?r+"":"File"==t[g]?t.name:"blob",e),t.name!==r||"blob"==t[g]?new _([t],r,t):t]:[e,t+""]),E=(e,t)=>(t?e:e.replace(/\r?\n|\r/g,"\r\n")).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),P=(e,t,r)=>{if(t.length"function"!=typeof e[t]))}append(...e){P("append",arguments,2),this.#a.push(R(...e))}delete(e){P("delete",arguments,1),e+="",this.#a=this.#a.filter((([t])=>t!==e))}get(e){P("get",arguments,1),e+="";for(var t=this.#a,r=t.length,o=0;or[0]===e&&t.push(r[1]))),t}has(e){return P("has",arguments,1),e+="",this.#a.some((t=>t[0]===e))}forEach(e,t){for(var[r,o]of(P("forEach",arguments,1),this))e.call(t,o,r,this)}set(...e){P("set",arguments,2);var t=[],r=!0;e=R(...e),this.#a.forEach((o=>{o[0]===e[0]?r&&(r=!t.push(e)):t.push(o)})),r&&t.push(e),this.#a=t}*entries(){yield*this.#a}*keys(){for(var[e]of this)yield e}*values(){for(var[,e]of this)yield e}};class C extends Error{constructor(e,t){super(e),Error.captureStackTrace(this,this.constructor),this.type=t}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}}class q extends C{constructor(e,t,r){super(e,t),r&&(this.code=this.errno=r.code,this.erroredSysCall=r.syscall)}}const k=Symbol.toStringTag,O=e=>"object"==typeof e&&"function"==typeof e.append&&"function"==typeof e.delete&&"function"==typeof e.get&&"function"==typeof e.getAll&&"function"==typeof e.has&&"function"==typeof e.set&&"function"==typeof e.sort&&"URLSearchParams"===e[k],L=e=>e&&"object"==typeof e&&"function"==typeof e.arrayBuffer&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.constructor&&/^(Blob|File)$/.test(e[k]),B=i.promisify(f.default.pipeline),j=Symbol("Body internals");class z{constructor(e,{size:t=0}={}){let r=null;null===e?e=null:O(e)?e=n.Buffer.from(e.toString()):L(e)||n.Buffer.isBuffer(e)||(i.types.isAnyArrayBuffer(e)?e=n.Buffer.from(e):ArrayBuffer.isView(e)?e=n.Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof f.default||(e instanceof A?(e=function(e,t=m){var r=`${S()}${S()}`.replace(/\./g,"").slice(-28).padStart(32,"-"),o=[],n=`--${r}\r\nContent-Disposition: form-data; name="`;return e.forEach(((e,t)=>"string"==typeof e?o.push(n+E(t)+`"\r\n\r\n${e.replace(/\r(?!\n)|(?{const t=e instanceof C?e:new q(`Invalid response body while trying to fetch ${this.url}: ${e.message}`,"system",e);this[j].error=t}))}get body(){return this[j].stream}get bodyUsed(){return this[j].disturbed}async arrayBuffer(){const{buffer:e,byteOffset:t,byteLength:r}=await $(this);return e.slice(t,t+r)}async formData(){const e=this.headers.get("content-type");if(e.startsWith("application/x-www-form-urlencoded")){const e=new A,t=new URLSearchParams(await this.text());for(const[r,o]of t)e.append(r,o);return e}const{toFormData:t}=await Promise.resolve().then((function(){return be}));return t(this.body,e)}async blob(){const e=this.headers&&this.headers.get("content-type")||this[j].body&&this[j].body.type||"",t=await this.arrayBuffer();return new m([t],{type:e})}async json(){const e=await this.text();return JSON.parse(e)}async text(){const e=await $(this);return(new TextDecoder).decode(e)}buffer(){return $(this)}}async function $(e){if(e[j].disturbed)throw new TypeError(`body used already for: ${e.url}`);if(e[j].disturbed=!0,e[j].error)throw e[j].error;const{body:t}=e;if(null===t)return n.Buffer.alloc(0);if(!(t instanceof f.default))return n.Buffer.alloc(0);const r=[];let o=0;try{for await(const n of t){if(e.size>0&&o+n.length>e.size){const r=new q(`content size at ${e.url} over limit: ${e.size}`,"max-size");throw t.destroy(r),r}o+=n.length,r.push(n)}}catch(t){throw t instanceof C?t:new q(`Invalid response body while trying to fetch ${e.url}: ${t.message}`,"system",t)}if(!0!==t.readableEnded&&!0!==t._readableState.ended)throw new q(`Premature close of server response while trying to fetch ${e.url}`);try{return r.every((e=>"string"==typeof e))?n.Buffer.from(r.join("")):n.Buffer.concat(r,o)}catch(t){throw new q(`Could not create Buffer from response body for ${e.url}: ${t.message}`,"system",t)}}z.prototype.buffer=i.deprecate(z.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer"),Object.defineProperties(z.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:i.deprecate((()=>{}),"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});const W=(e,t)=>{let r,n,{body:i}=e[j];if(e.bodyUsed)throw new Error("cannot clone body after it is used");return i instanceof f.default&&"function"!=typeof i.getBoundary&&(r=new o.PassThrough({highWaterMark:t}),n=new o.PassThrough({highWaterMark:t}),i.pipe(r),i.pipe(n),e[j].stream=r,i=n),i},D=i.deprecate((e=>e.getBoundary()),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),F=(e,t)=>null===e?null:"string"==typeof e?"text/plain;charset=UTF-8":O(e)?"application/x-www-form-urlencoded;charset=UTF-8":L(e)?e.type||null:n.Buffer.isBuffer(e)||i.types.isAnyArrayBuffer(e)||ArrayBuffer.isView(e)?null:e instanceof A?`multipart/form-data; boundary=${t[j].boundary}`:e&&"function"==typeof e.getBoundary?`multipart/form-data;boundary=${D(e)}`:e instanceof f.default?null:"text/plain;charset=UTF-8",I="function"==typeof u.default.validateHeaderName?u.default.validateHeaderName:e=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(e)){const t=new TypeError(`Header name must be a valid HTTP token [${e}]`);throw Object.defineProperty(t,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),t}},M="function"==typeof u.default.validateHeaderValue?u.default.validateHeaderValue:(e,t)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(t)){const t=new TypeError(`Invalid character in header content ["${e}"]`);throw Object.defineProperty(t,"code",{value:"ERR_INVALID_CHAR"}),t}};class x extends URLSearchParams{constructor(e){let t=[];if(e instanceof x){const r=e.raw();for(const[e,o]of Object.entries(r))t.push(...o.map((t=>[e,t])))}else if(null==e);else{if("object"!=typeof e||i.types.isBoxedPrimitive(e))throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence> or record)");{const r=e[Symbol.iterator];if(null==r)t.push(...Object.entries(e));else{if("function"!=typeof r)throw new TypeError("Header pairs must be iterable");t=[...e].map((e=>{if("object"!=typeof e||i.types.isBoxedPrimitive(e))throw new TypeError("Each header pair must be an iterable object");return[...e]})).map((e=>{if(2!==e.length)throw new TypeError("Each header pair must be a name/value tuple");return[...e]}))}}}return t=t.length>0?t.map((([e,t])=>(I(e),M(e,String(t)),[String(e).toLowerCase(),String(t)]))):void 0,super(t),new Proxy(this,{get(e,t,r){switch(t){case"append":case"set":return(r,o)=>(I(r),M(r,String(o)),URLSearchParams.prototype[t].call(e,String(r).toLowerCase(),String(o)));case"delete":case"has":case"getAll":return r=>(I(r),URLSearchParams.prototype[t].call(e,String(r).toLowerCase()));case"keys":return()=>(e.sort(),new Set(URLSearchParams.prototype.keys.call(e)).keys());default:return Reflect.get(e,t,r)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(e){const t=this.getAll(e);if(0===t.length)return null;let r=t.join(", ");return/^content-encoding$/i.test(e)&&(r=r.toLowerCase()),r}forEach(e,t){for(const r of this.keys())Reflect.apply(e,t,[this.get(r),r,this])}*values(){for(const e of this.keys())yield this.get(e)}*entries(){for(const e of this.keys())yield[e,this.get(e)]}[Symbol.iterator](){return this.entries()}raw(){return[...this.keys()].reduce(((e,t)=>(e[t]=this.getAll(t),e)),{})}[Symbol.for("nodejs.util.inspect.custom")](){return[...this.keys()].reduce(((e,t)=>{const r=this.getAll(t);return e[t]="host"===t?r[0]:r.length>1?r:r[0],e}),{})}}Object.defineProperties(x.prototype,["get","entries","forEach","values"].reduce(((e,t)=>(e[t]={enumerable:!0},e)),{}));const U=new Set([301,302,303,307,308]),H=e=>U.has(e),N=Symbol("Response internals");class V extends z{constructor(e=null,t={}){super(e,t);const r=null!=t.status?t.status:200,o=new x(t.headers);if(null!==e&&!o.has("Content-Type")){const t=F(e,this);t&&o.append("Content-Type",t)}this[N]={type:"default",url:t.url,status:r,statusText:t.statusText||"",headers:o,counter:t.counter,highWaterMark:t.highWaterMark}}get type(){return this[N].type}get url(){return this[N].url||""}get status(){return this[N].status}get ok(){return this[N].status>=200&&this[N].status<300}get redirected(){return this[N].counter>0}get statusText(){return this[N].statusText}get headers(){return this[N].headers}get highWaterMark(){return this[N].highWaterMark}clone(){return new V(W(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(e,t=302){if(!H(t))throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');return new V(null,{headers:{location:new URL(e).toString()},status:t})}static error(){const e=new V(null,{status:0,statusText:""});return e[N].type="error",e}get[Symbol.toStringTag](){return"Response"}}Object.defineProperties(V.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});function Y(e,t=!1){return null==e?"no-referrer":(e=new URL(e),/^(about|blob|data):$/.test(e.protocol)?"no-referrer":(e.username="",e.password="",e.hash="",t&&(e.pathname="",e.search=""),e))}const Q=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]);function G(e){return!!/^about:(blank|srcdoc)$/.test(e)||("data:"===e.protocol||(!!/^(blob|filesystem):$/.test(e.protocol)||function(e){if(/^(http|ws)s:$/.test(e.protocol))return!0;const t=e.host.replace(/(^\[)|(]$)/g,""),r=s.isIP(t);return!(4!==r||!/^127\./.test(t))||!(6!==r||!/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(t))||!/^(.+\.)*localhost$/.test(e.host)&&"file:"===e.protocol}(e)))}const K=Symbol("Request internals"),J=e=>"object"==typeof e&&"object"==typeof e[K],Z=i.deprecate((()=>{}),".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)");class X extends z{constructor(e,t={}){let r;if(J(e)?r=new URL(e.url):(r=new URL(e),e={}),""!==r.username||""!==r.password)throw new TypeError(`${r} is an url with embedded credentials.`);let o=t.method||e.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(o)&&(o=o.toUpperCase()),"data"in t&&Z(),(null!=t.body||J(e)&&null!==e.body)&&("GET"===o||"HEAD"===o))throw new TypeError("Request with GET/HEAD method cannot have body");const n=t.body?t.body:J(e)&&null!==e.body?W(e):null;super(n,{size:t.size||e.size||0});const i=new x(t.headers||e.headers||{});if(null!==n&&!i.has("Content-Type")){const e=F(n,this);e&&i.set("Content-Type",e)}let a=J(e)?e.signal:null;if("signal"in t&&(a=t.signal),null!=a&&("object"!=typeof(s=a)||"AbortSignal"!==s[k]&&"EventTarget"!==s[k]))throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");var s;let l=null==t.referrer?e.referrer:t.referrer;if(""===l)l="no-referrer";else if(l){const e=new URL(l);l=/^about:(\/\/)?client$/.test(e)?"client":e}else l=void 0;this[K]={method:o,redirect:t.redirect||e.redirect||"follow",headers:i,parsedURL:r,signal:a,referrer:l},this.follow=void 0===t.follow?void 0===e.follow?20:e.follow:t.follow,this.compress=void 0===t.compress?void 0===e.compress||e.compress:t.compress,this.counter=t.counter||e.counter||0,this.agent=t.agent||e.agent,this.highWaterMark=t.highWaterMark||e.highWaterMark||16384,this.insecureHTTPParser=t.insecureHTTPParser||e.insecureHTTPParser||!1,this.referrerPolicy=t.referrerPolicy||e.referrerPolicy||""}get method(){return this[K].method}get url(){return a.format(this[K].parsedURL)}get headers(){return this[K].headers}get redirect(){return this[K].redirect}get signal(){return this[K].signal}get referrer(){return"no-referrer"===this[K].referrer?"":"client"===this[K].referrer?"about:client":this[K].referrer?this[K].referrer.toString():void 0}get referrerPolicy(){return this[K].referrerPolicy}set referrerPolicy(e){this[K].referrerPolicy=function(e){if(!Q.has(e))throw new TypeError(`Invalid referrerPolicy: ${e}`);return e}(e)}clone(){return new X(this)}get[Symbol.toStringTag](){return"Request"}}Object.defineProperties(X.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});const ee=e=>{const{parsedURL:t}=e[K],r=new x(e[K].headers);r.has("Accept")||r.set("Accept","*/*");let o=null;if(null===e.body&&/^(post|put)$/i.test(e.method)&&(o="0"),null!==e.body){const t=(e=>{const{body:t}=e[j];return null===t?0:L(t)?t.size:n.Buffer.isBuffer(t)?t.length:t&&"function"==typeof t.getLengthSync&&t.hasKnownLength&&t.hasKnownLength()?t.getLengthSync():null})(e);"number"!=typeof t||Number.isNaN(t)||(o=String(t))}o&&r.set("Content-Length",o),""===e.referrerPolicy&&(e.referrerPolicy="strict-origin-when-cross-origin"),e.referrer&&"no-referrer"!==e.referrer?e[K].referrer=function(e,{referrerURLCallback:t,referrerOriginCallback:r}={}){if("no-referrer"===e.referrer||""===e.referrerPolicy)return null;const o=e.referrerPolicy;if("about:client"===e.referrer)return"no-referrer";const n=e.referrer;let i=Y(n),a=Y(n,!0);i.toString().length>4096&&(i=a),t&&(i=t(i)),r&&(a=r(a));const s=new URL(e.url);switch(o){case"no-referrer":return"no-referrer";case"origin":return a;case"unsafe-url":return i;case"strict-origin":return G(i)&&!G(s)?"no-referrer":a.toString();case"strict-origin-when-cross-origin":return i.origin===s.origin?i:G(i)&&!G(s)?"no-referrer":a;case"same-origin":return i.origin===s.origin?i:"no-referrer";case"origin-when-cross-origin":return i.origin===s.origin?i:a;case"no-referrer-when-downgrade":return G(i)&&!G(s)?"no-referrer":i;default:throw new TypeError(`Invalid referrerPolicy: ${o}`)}}(e):e[K].referrer="no-referrer",e[K].referrer instanceof URL&&r.set("Referer",e.referrer),r.has("User-Agent")||r.set("User-Agent","node-fetch"),e.compress&&!r.has("Accept-Encoding")&&r.set("Accept-Encoding","gzip, deflate, br");let{agent:i}=e;"function"==typeof i&&(i=i(t)),r.has("Connection")||i||r.set("Connection","close");const a=(e=>{if(e.search)return e.search;const t=e.href.length-1,r=e.hash||("#"===e.href[t]?"#":"");return"?"===e.href[t-r.length]?"?":""})(t);return{parsedURL:t,options:{path:t.pathname+a,method:e.method,headers:r[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:e.insecureHTTPParser,agent:i}}};class te extends C{constructor(e,t="aborted"){super(e,t)}} 5 | /*! node-domexception. MIT License. Jimmy Wärting */if(!globalThis.DOMException)try{const{MessageChannel:e}=require("worker_threads"),t=(new e).port1,r=new ArrayBuffer;t.postMessage(r,[r,r])}catch(e){"DOMException"===e.constructor.name&&(globalThis.DOMException=e.constructor)}const re=new Set(["data:","http:","https:"]);async function oe(e,t){return new Promise(((r,i)=>{const a=new X(e,t),{parsedURL:s,options:l}=ee(a);if(!re.has(s.protocol))throw new TypeError(`node-fetch cannot load ${e}. URL scheme "${s.protocol.replace(/:$/,"")}" is not supported.`);if("data:"===s.protocol){const e=function(e){if(!/^data:/i.test(e))throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');const t=(e=e.replace(/\r?\n/g,"")).indexOf(",");if(-1===t||t<=4)throw new TypeError("malformed data: URI");const r=e.substring(5,t).split(";");let o="",n=!1;const i=r[0]||"text/plain";let a=i;for(let e=1;e{const e=new te("The operation was aborted.");i(e),a.body&&a.body instanceof f.default.Readable&&a.body.destroy(e),p&&p.body&&p.body.emit("error",e)};if(b&&b.aborted)return void y();const m=()=>{y(),g()},_=h(s.toString(),l);b&&b.addEventListener("abort",m);const g=()=>{_.abort(),b&&b.removeEventListener("abort",m)};_.on("error",(e=>{i(new q(`request to ${a.url} failed, reason: ${e.message}`,"system",e)),g()})),function(e,t){const r=n.Buffer.from("0\r\n\r\n");let o,i=!1,a=!1;e.on("response",(e=>{const{headers:t}=e;i="chunked"===t["transfer-encoding"]&&!t["content-length"]})),e.on("socket",(s=>{const l=()=>{if(i&&!a){const e=new Error("Premature close");e.code="ERR_STREAM_PREMATURE_CLOSE",t(e)}},u=e=>{a=0===n.Buffer.compare(e.slice(-5),r),!a&&o&&(a=0===n.Buffer.compare(o.slice(-3),r.slice(0,3))&&0===n.Buffer.compare(e.slice(-2),r.slice(3))),o=e};s.prependListener("close",l),s.on("data",u),e.on("close",(()=>{s.removeListener("close",l),s.removeListener("data",u)}))}))}(_,(e=>{p&&p.body&&p.body.destroy(e)})),process.version<"v14"&&_.on("socket",(e=>{let t;e.prependListener("end",(()=>{t=e._eventsCount})),e.prependListener("close",(r=>{if(p&&t{_.setTimeout(0);const n=function(e=[]){return new x(e.reduce(((e,t,r,o)=>(r%2==0&&e.push(o.slice(r,r+2)),e)),[]).filter((([e,t])=>{try{return I(e),M(e,String(t)),!0}catch{return!1}})))}(e.rawHeaders);if(H(e.statusCode)){const o=n.get("Location");let s=null;try{s=null===o?null:new URL(o,a.url)}catch{if("manual"!==a.redirect)return i(new q(`uri requested responds with an invalid redirect URL: ${o}`,"invalid-redirect")),void g()}switch(a.redirect){case"error":return i(new q(`uri requested responds with a redirect, redirect mode is set to error: ${a.url}`,"no-redirect")),void g();case"manual":break;case"follow":{if(null===s)break;if(a.counter>=a.follow)return i(new q(`maximum redirect reached at: ${a.url}`,"max-redirect")),void g();const o={headers:new x(a.headers),follow:a.follow,counter:a.counter+1,agent:a.agent,compress:a.compress,method:a.method,body:W(a),signal:a.signal,size:a.size,referrer:a.referrer,referrerPolicy:a.referrerPolicy};if(!((e,t)=>{const r=new URL(t).hostname,o=new URL(e).hostname;return r===o||r.endsWith(`.${o}`)})(a.url,s))for(const e of["authorization","www-authenticate","cookie","cookie2"])o.headers.delete(e);if(303!==e.statusCode&&a.body&&t.body instanceof f.default.Readable)return i(new q("Cannot follow redirect with body being a readable stream","unsupported-redirect")),void g();303!==e.statusCode&&(301!==e.statusCode&&302!==e.statusCode||"POST"!==a.method)||(o.method="GET",o.body=void 0,o.headers.delete("content-length"));const l=function(e){const t=(e.get("referrer-policy")||"").split(/[,\s]+/);let r="";for(const e of t)e&&Q.has(e)&&(r=e);return r}(n);return l&&(o.referrerPolicy=l),r(oe(new X(s,o))),void g()}default:return i(new TypeError(`Redirect option '${a.redirect}' is not a valid value of RequestRedirect`))}}b&&e.once("end",(()=>{b.removeEventListener("abort",m)}));let s=o.pipeline(e,new o.PassThrough,(e=>{e&&i(e)}));process.version<"v12.10"&&e.on("aborted",m);const l={url:a.url,status:e.statusCode,statusText:e.statusMessage,headers:n,size:a.size,counter:a.counter,highWaterMark:a.highWaterMark},u=n.get("Content-Encoding");if(!a.compress||"HEAD"===a.method||null===u||204===e.statusCode||304===e.statusCode)return p=new V(s,l),void r(p);const c={flush:d.default.Z_SYNC_FLUSH,finishFlush:d.default.Z_SYNC_FLUSH};if("gzip"===u||"x-gzip"===u)return s=o.pipeline(s,d.default.createGunzip(c),(e=>{e&&i(e)})),p=new V(s,l),void r(p);if("deflate"===u||"x-deflate"===u){const t=o.pipeline(e,new o.PassThrough,(e=>{e&&i(e)}));return t.once("data",(e=>{s=8==(15&e[0])?o.pipeline(s,d.default.createInflate(),(e=>{e&&i(e)})):o.pipeline(s,d.default.createInflateRaw(),(e=>{e&&i(e)})),p=new V(s,l),r(p)})),void t.once("end",(()=>{p||(p=new V(s,l),r(p))}))}if("br"===u)return s=o.pipeline(s,d.default.createBrotliDecompress(),(e=>{e&&i(e)})),p=new V(s,l),void r(p);p=new V(s,l),r(p)})),(async(e,{body:t})=>{null===t?e.end():await B(t,e)})(_,a).catch(i)}))}const{api_token:ne,events:ie}=require("./logsnag.config.json");let ae=0;const se={START_BOUNDARY:ae++,HEADER_FIELD_START:ae++,HEADER_FIELD:ae++,HEADER_VALUE_START:ae++,HEADER_VALUE:ae++,HEADER_VALUE_ALMOST_DONE:ae++,HEADERS_ALMOST_DONE:ae++,PART_DATA_START:ae++,PART_DATA:ae++,END:ae++};let le=1;const ue=le,ce=le*=2,de=e=>32|e,fe=()=>{};class he{constructor(e){this.index=0,this.flags=0,this.onHeaderEnd=fe,this.onHeaderField=fe,this.onHeadersEnd=fe,this.onHeaderValue=fe,this.onPartBegin=fe,this.onPartData=fe,this.onPartEnd=fe,this.boundaryChars={},e="\r\n--"+e;const t=new Uint8Array(e.length);for(let r=0;r{this[e+"Mark"]=t},y=e=>{delete this[e+"Mark"]},m=(e,t,r,o)=>{void 0!==t&&t===r||this[e](o&&o.subarray(t,r))},_=(r,o)=>{const n=r+"Mark";n in this&&(o?(m(r,this[n],t,e),delete this[n]):(m(r,this[n],e.length,e),this[n]=0))};for(t=0;t122)return;break;case se.HEADER_VALUE_START:if(32===h)break;p("onHeaderValue"),l=se.HEADER_VALUE;case se.HEADER_VALUE:13===h&&(_("onHeaderValue",!0),m("onHeaderEnd"),l=se.HEADER_VALUE_ALMOST_DONE);break;case se.HEADER_VALUE_ALMOST_DONE:if(10!==h)return;l=se.HEADER_FIELD_START;break;case se.HEADERS_ALMOST_DONE:if(10!==h)return;m("onHeadersEnd"),l=se.PART_DATA_START;break;case se.PART_DATA_START:l=se.PART_DATA,p("onPartData");case se.PART_DATA:if(o=s,0===s){for(t+=d;t0)n[s-1]=h;else if(o>0){const e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);m("onPartData",0,o,e),o=0,p("onPartData"),t--}break;case se.END:break;default:throw new Error(`Unexpected state entered: ${l}`)}_("onHeaderField"),_("onHeaderValue"),_("onPartData"),this.index=s,this.state=l,this.flags=u}end(){if(this.state===se.HEADER_FIELD_START&&0===this.index||this.state===se.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==se.END)throw new Error("MultipartParser.end(): stream ended unexpectedly")}}var be=Object.freeze({__proto__:null,toFormData:async function(e,t){if(!/multipart/i.test(t))throw new TypeError("Failed to fetch");const r=t.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!r)throw new TypeError("no or bad content-type header, no multipart boundary");const o=new he(r[1]||r[2]);let n,i,a,s,l,u;const c=[],d=new A,f=e=>{a+=y.decode(e,{stream:!0})},h=e=>{c.push(e)},b=()=>{const e=new _(c,u,{type:l});d.append(s,e)},p=()=>{d.append(s,a)},y=new TextDecoder("utf-8");y.decode(),o.onPartBegin=function(){o.onPartData=f,o.onPartEnd=p,n="",i="",a="",s="",l="",u=null,c.length=0},o.onHeaderField=function(e){n+=y.decode(e,{stream:!0})},o.onHeaderValue=function(e){i+=y.decode(e,{stream:!0})},o.onHeaderEnd=function(){if(i+=y.decode(),n=n.toLowerCase(),"content-disposition"===n){const e=i.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);e&&(s=e[2]||e[3]||""),u=function(e){const t=e.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);if(!t)return;const r=t[2]||t[3]||"";let o=r.slice(r.lastIndexOf("\\")+1);return o=o.replace(/%22/g,'"'),o=o.replace(/&#(\d{4});/g,((e,t)=>String.fromCharCode(t))),o}(i),u&&(o.onPartData=h,o.onPartEnd=b)}else"content-type"===n&&(l=i);i="",n=""};for await(const t of e)o.write(t);return o.end(),d}});module.exports=({action:e},{logger:t,services:r,exceptions:o,database:n})=>{ie.forEach((async r=>{t.info("[LOGSNAG] Registering event: "+r.name),e(r.name,(async({collection:e,payload:n},{schema:i})=>{t.info(`[LOGSNAG] ${r.name} was called, logsnag fired :D`);const{ServiceUnavailableException:a}=o;try{const e={"Content-Type":"application/json",Authorization:`Bearer ${ne}`};return await oe("https://api.logsnag.com/v1/log",{method:"POST",headers:e,body:JSON.stringify({project:r.project,channel:r.channel,event:r.event,description:r.description,icon:r.icon,notify:r.notify||!0})})}catch(e){throw t.error(e),new a(e)}}))}))}; 6 | --------------------------------------------------------------------------------