seroval-plugins
Advanced tools
+77
-106
@@ -42,2 +42,8 @@ "use strict"; | ||
| var import_seroval = require("seroval"); | ||
| var PROMISE_TO_ABORT_SIGNAL = (promise) => { | ||
| const controller = new AbortController(); | ||
| const abort = controller.abort.bind(controller); | ||
| promise.then(abort, abort); | ||
| return controller; | ||
| }; | ||
| function resolveAbortSignalResult(resolve) { | ||
@@ -54,59 +60,29 @@ resolve(this.reason); | ||
| } | ||
| var AbortSignalController = class { | ||
| constructor() { | ||
| this.controller = new AbortController(); | ||
| } | ||
| }; | ||
| var AbortSignalControllerPlugin = (0, import_seroval.createPlugin)({ | ||
| tag: "seroval-plugins/web/AbortSignalController", | ||
| var ABORT_CONTROLLER = {}; | ||
| var AbortControllerFactoryPlugin = /* @__PURE__ */ (0, import_seroval.createPlugin)({ | ||
| tag: "seroval-plugins/web/AbortControllerFactoryPlugin", | ||
| test(value) { | ||
| return value instanceof AbortSignalController; | ||
| return value === ABORT_CONTROLLER; | ||
| }, | ||
| parse: { | ||
| sync() { | ||
| return ABORT_CONTROLLER; | ||
| }, | ||
| async async() { | ||
| return await Promise.resolve(ABORT_CONTROLLER); | ||
| }, | ||
| stream() { | ||
| return void 0; | ||
| return ABORT_CONTROLLER; | ||
| } | ||
| }, | ||
| serialize(_node) { | ||
| return "new AbortController"; | ||
| serialize() { | ||
| return PROMISE_TO_ABORT_SIGNAL.toString(); | ||
| }, | ||
| deserialize(_node) { | ||
| return new AbortSignalController(); | ||
| deserialize() { | ||
| return PROMISE_TO_ABORT_SIGNAL; | ||
| } | ||
| }); | ||
| var AbortSignalAbort = class { | ||
| constructor(controller, reason) { | ||
| this.controller = controller; | ||
| this.reason = reason; | ||
| } | ||
| }; | ||
| var AbortSignalAbortPlugin = (0, import_seroval.createPlugin)({ | ||
| extends: [AbortSignalControllerPlugin], | ||
| tag: "seroval-plugins/web/AbortSignalAbort", | ||
| test(value) { | ||
| return value instanceof AbortSignalAbort; | ||
| }, | ||
| parse: { | ||
| stream(value, ctx) { | ||
| return { | ||
| controller: ctx.parse(value.controller), | ||
| reason: ctx.parse(value.reason) | ||
| }; | ||
| } | ||
| }, | ||
| serialize(node, ctx) { | ||
| return ctx.serialize(node.controller) + ".abort(" + ctx.serialize(node.reason) + ")"; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| const controller = ctx.deserialize( | ||
| node.controller | ||
| ); | ||
| const reason = ctx.deserialize(node.reason); | ||
| controller.controller.abort(reason); | ||
| return new AbortSignalAbort(controller, reason); | ||
| } | ||
| }); | ||
| var AbortSignalPlugin = (0, import_seroval.createPlugin)({ | ||
| var AbortSignalPlugin = /* @__PURE__ */ (0, import_seroval.createPlugin)({ | ||
| tag: "seroval-plugins/web/AbortSignal", | ||
| extends: [AbortSignalAbortPlugin], | ||
| extends: [AbortControllerFactoryPlugin], | ||
| test(value) { | ||
@@ -122,9 +98,6 @@ if (typeof AbortSignal === "undefined") { | ||
| return { | ||
| type: 1 /* Aborted */, | ||
| reason: ctx.parse(value.reason) | ||
| }; | ||
| } | ||
| return { | ||
| type: 0 /* Pending */ | ||
| }; | ||
| return {}; | ||
| }, | ||
@@ -134,3 +107,2 @@ async async(value, ctx) { | ||
| return { | ||
| type: 1 /* Aborted */, | ||
| reason: await ctx.parse(value.reason) | ||
@@ -141,3 +113,2 @@ }; | ||
| return { | ||
| type: 1 /* Aborted */, | ||
| reason: await ctx.parse(result) | ||
@@ -149,24 +120,9 @@ }; | ||
| return { | ||
| type: 1 /* Aborted */, | ||
| reason: ctx.parse(value.reason) | ||
| }; | ||
| } | ||
| const controller = new AbortSignalController(); | ||
| ctx.pushPendingState(); | ||
| value.addEventListener( | ||
| "abort", | ||
| () => { | ||
| const result = ctx.parseWithError( | ||
| new AbortSignalAbort(controller, value.reason) | ||
| ); | ||
| if (result) { | ||
| ctx.onParse(result); | ||
| } | ||
| ctx.popPendingState(); | ||
| }, | ||
| { once: true } | ||
| ); | ||
| const promise = abortSignalToPromise(value); | ||
| return { | ||
| type: 2 /* Streaming */, | ||
| controller: ctx.parse(controller) | ||
| factory: ctx.parse(ABORT_CONTROLLER), | ||
| controller: ctx.parse(promise) | ||
| }; | ||
@@ -176,22 +132,19 @@ } | ||
| serialize(node, ctx) { | ||
| if (node.type === 0 /* Pending */) { | ||
| return "(new AbortController).signal"; | ||
| } | ||
| if (node.type === 1 /* Aborted */) { | ||
| if (node.reason) { | ||
| return "AbortSignal.abort(" + ctx.serialize(node.reason) + ")"; | ||
| } | ||
| return "(" + ctx.serialize(node.controller) + ").signal"; | ||
| if (node.controller && node.factory) { | ||
| return "(" + ctx.serialize(node.factory) + ")(" + ctx.serialize(node.controller) + ").signal"; | ||
| } | ||
| return "(new AbortController).signal"; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| if (node.type === 0 /* Pending */) { | ||
| const controller2 = new AbortController(); | ||
| return controller2.signal; | ||
| } | ||
| if (node.type === 1 /* Aborted */) { | ||
| if (node.reason) { | ||
| return AbortSignal.abort(ctx.deserialize(node.reason)); | ||
| } | ||
| const controller = ctx.deserialize( | ||
| node.controller | ||
| ); | ||
| return controller.controller.signal; | ||
| if (node.controller) { | ||
| return PROMISE_TO_ABORT_SIGNAL(ctx.deserialize(node.controller)).signal; | ||
| } | ||
| const controller = new AbortController(); | ||
| return controller.signal; | ||
| } | ||
@@ -430,9 +383,9 @@ }); | ||
| sync() { | ||
| return void 0; | ||
| return FORM_DATA_FACTORY; | ||
| }, | ||
| async async() { | ||
| return await Promise.resolve(void 0); | ||
| return await Promise.resolve(FORM_DATA_FACTORY); | ||
| }, | ||
| stream() { | ||
| return void 0; | ||
| return FORM_DATA_FACTORY; | ||
| } | ||
@@ -506,16 +459,22 @@ }, | ||
| sync(value, ctx) { | ||
| return ctx.parse(convertHeaders(value)); | ||
| return { | ||
| value: ctx.parse(convertHeaders(value)) | ||
| }; | ||
| }, | ||
| async async(value, ctx) { | ||
| return await ctx.parse(convertHeaders(value)); | ||
| return { | ||
| value: await ctx.parse(convertHeaders(value)) | ||
| }; | ||
| }, | ||
| stream(value, ctx) { | ||
| return ctx.parse(convertHeaders(value)); | ||
| return { | ||
| value: ctx.parse(convertHeaders(value)) | ||
| }; | ||
| } | ||
| }, | ||
| serialize(node, ctx) { | ||
| return "new Headers(" + ctx.serialize(node) + ")"; | ||
| return "new Headers(" + ctx.serialize(node.value) + ")"; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| return new Headers(ctx.deserialize(node)); | ||
| return new Headers(ctx.deserialize(node.value)); | ||
| } | ||
@@ -612,9 +571,9 @@ }); | ||
| sync() { | ||
| return void 0; | ||
| return READABLE_STREAM_FACTORY; | ||
| }, | ||
| async async() { | ||
| return await Promise.resolve(void 0); | ||
| return await Promise.resolve(READABLE_STREAM_FACTORY); | ||
| }, | ||
| stream() { | ||
| return void 0; | ||
| return READABLE_STREAM_FACTORY; | ||
| } | ||
@@ -810,16 +769,22 @@ }, | ||
| sync(value, ctx) { | ||
| return ctx.parse(value.href); | ||
| return { | ||
| value: ctx.parse(value.href) | ||
| }; | ||
| }, | ||
| async async(value, ctx) { | ||
| return await ctx.parse(value.href); | ||
| return { | ||
| value: await ctx.parse(value.href) | ||
| }; | ||
| }, | ||
| stream(value, ctx) { | ||
| return ctx.parse(value.href); | ||
| return { | ||
| value: ctx.parse(value.href) | ||
| }; | ||
| } | ||
| }, | ||
| serialize(node, ctx) { | ||
| return "new URL(" + ctx.serialize(node) + ")"; | ||
| return "new URL(" + ctx.serialize(node.value) + ")"; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| return new URL(ctx.deserialize(node)); | ||
| return new URL(ctx.deserialize(node.value)); | ||
| } | ||
@@ -841,16 +806,22 @@ }); | ||
| sync(value, ctx) { | ||
| return ctx.parse(value.toString()); | ||
| return { | ||
| value: ctx.parse(value.toString()) | ||
| }; | ||
| }, | ||
| async async(value, ctx) { | ||
| return await ctx.parse(value.toString()); | ||
| return { | ||
| value: await ctx.parse(value.toString()) | ||
| }; | ||
| }, | ||
| stream(value, ctx) { | ||
| return ctx.parse(value.toString()); | ||
| return { | ||
| value: ctx.parse(value.toString()) | ||
| }; | ||
| } | ||
| }, | ||
| serialize(node, ctx) { | ||
| return "new URLSearchParams(" + ctx.serialize(node) + ")"; | ||
| return "new URLSearchParams(" + ctx.serialize(node.value) + ")"; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| return new URLSearchParams(ctx.deserialize(node)); | ||
| return new URLSearchParams(ctx.deserialize(node.value)); | ||
| } | ||
@@ -857,0 +828,0 @@ }); |
@@ -1,1 +0,1 @@ | ||
| "use strict";var g=Object.defineProperty;var J=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var X=(e,r)=>{for(var a in r)g(e,a,{get:r[a],enumerable:!0})},Z=(e,r,a,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of K(r))!Q.call(e,n)&&n!==a&&g(e,n,{get:()=>r[n],enumerable:!(t=J(r,n))||t.enumerable});return e};var $=e=>Z(g({},"__esModule",{value:!0}),e);var ze={};X(ze,{AbortSignalPlugin:()=>z,BlobPlugin:()=>P,CustomEventPlugin:()=>N,DOMExceptionPlugin:()=>h,EventPlugin:()=>D,FilePlugin:()=>m,FormDataPlugin:()=>I,HeadersPlugin:()=>o,ImageDataPlugin:()=>B,ReadableStreamPlugin:()=>i,RequestPlugin:()=>H,ResponsePlugin:()=>Y,URLPlugin:()=>j,URLSearchParamsPlugin:()=>G});module.exports=$(ze);var f=require("seroval");function x(e){e(this.reason)}function ee(e){this.addEventListener("abort",x.bind(this,e),{once:!0})}function re(e){return new Promise(ee.bind(e))}var l=class{constructor(){this.controller=new AbortController}},ae=(0,f.createPlugin)({tag:"seroval-plugins/web/AbortSignalController",test(e){return e instanceof l},parse:{stream(){}},serialize(e){return"new AbortController"},deserialize(e){return new l}}),p=class{constructor(r,a){this.controller=r;this.reason=a}},te=(0,f.createPlugin)({extends:[ae],tag:"seroval-plugins/web/AbortSignalAbort",test(e){return e instanceof p},parse:{stream(e,r){return{controller:r.parse(e.controller),reason:r.parse(e.reason)}}},serialize(e,r){return r.serialize(e.controller)+".abort("+r.serialize(e.reason)+")"},deserialize(e,r){let a=r.deserialize(e.controller),t=r.deserialize(e.reason);return a.controller.abort(t),new p(a,t)}});var ne=(0,f.createPlugin)({tag:"seroval-plugins/web/AbortSignal",extends:[te],test(e){return typeof AbortSignal=="undefined"?!1:e instanceof AbortSignal},parse:{sync(e,r){return e.aborted?{type:1,reason:r.parse(e.reason)}:{type:0}},async async(e,r){if(e.aborted)return{type:1,reason:await r.parse(e.reason)};let a=await re(e);return{type:1,reason:await r.parse(a)}},stream(e,r){if(e.aborted)return{type:1,reason:r.parse(e.reason)};let a=new l;return r.pushPendingState(),e.addEventListener("abort",()=>{let t=r.parseWithError(new p(a,e.reason));t&&r.onParse(t),r.popPendingState()},{once:!0}),{type:2,controller:r.parse(a)}}},serialize(e,r){return e.type===0?"(new AbortController).signal":e.type===1?"AbortSignal.abort("+r.serialize(e.reason)+")":"("+r.serialize(e.controller)+").signal"},deserialize(e,r){return e.type===0?new AbortController().signal:e.type===1?AbortSignal.abort(r.deserialize(e.reason)):r.deserialize(e.controller).controller.signal}}),z=ne;var v=require("seroval"),oe=(0,v.createPlugin)({tag:"seroval-plugins/web/Blob",test(e){return typeof Blob=="undefined"?!1:e instanceof Blob},parse:{async async(e,r){return{type:await r.parse(e.type),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return"new Blob(["+r.serialize(e.buffer)+"],{type:"+r.serialize(e.type)+"})"},deserialize(e,r){return new Blob([r.deserialize(e.buffer)],{type:r.deserialize(e.type)})}}),P=oe;var R=require("seroval");function y(e){return{detail:e.detail,bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var se=(0,R.createPlugin)({tag:"seroval-plugins/web/CustomEvent",test(e){return typeof CustomEvent=="undefined"?!1:e instanceof CustomEvent},parse:{sync(e,r){return{type:r.parse(e.type),options:r.parse(y(e))}},async async(e,r){return{type:await r.parse(e.type),options:await r.parse(y(e))}},stream(e,r){return{type:r.parse(e.type),options:r.parse(y(e))}}},serialize(e,r){return"new CustomEvent("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new CustomEvent(r.deserialize(e.type),r.deserialize(e.options))}}),N=se;var A=require("seroval"),ie=(0,A.createPlugin)({tag:"seroval-plugins/web/DOMException",test(e){return typeof DOMException=="undefined"?!1:e instanceof DOMException},parse:{sync(e,r){return{name:r.parse(e.name),message:r.parse(e.message)}},async async(e,r){return{name:await r.parse(e.name),message:await r.parse(e.message)}},stream(e,r){return{name:r.parse(e.name),message:r.parse(e.message)}}},serialize(e,r){return"new DOMException("+r.serialize(e.message)+","+r.serialize(e.name)+")"},deserialize(e,r){return new DOMException(r.deserialize(e.message),r.deserialize(e.name))}}),h=ie;var E=require("seroval");function c(e){return{bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var le=(0,E.createPlugin)({tag:"seroval-plugins/web/Event",test(e){return typeof Event=="undefined"?!1:e instanceof Event},parse:{sync(e,r){return{type:r.parse(e.type),options:r.parse(c(e))}},async async(e,r){return{type:await r.parse(e.type),options:await r.parse(c(e))}},stream(e,r){return{type:r.parse(e.type),options:r.parse(c(e))}}},serialize(e,r){return"new Event("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Event(r.deserialize(e.type),r.deserialize(e.options))}}),D=le;var F=require("seroval"),pe=(0,F.createPlugin)({tag:"seroval-plugins/web/File",test(e){return typeof File=="undefined"?!1:e instanceof File},parse:{async async(e,r){return{name:await r.parse(e.name),options:await r.parse({type:e.type,lastModified:e.lastModified}),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return"new File(["+r.serialize(e.buffer)+"],"+r.serialize(e.name)+","+r.serialize(e.options)+")"},deserialize(e,r){return new File([r.deserialize(e.buffer)],r.deserialize(e.name),r.deserialize(e.options))}}),m=pe;var S=require("seroval");function b(e){let r=[];return e.forEach((a,t)=>{r.push([t,a])}),r}var u={},C=(e,r=new FormData,a=0,t=e.length,n)=>{for(;a<t;a++)n=e[a],r.append(n[0],n[1]);return r},ue=(0,S.createPlugin)({tag:"seroval-plugins/web/FormDataFactory",test(e){return e===u},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(){return C.toString()},deserialize(){return u}}),de=(0,S.createPlugin)({tag:"seroval-plugins/web/FormData",extends:[m,ue],test(e){return typeof FormData=="undefined"?!1:e instanceof FormData},parse:{sync(e,r){return{factory:r.parse(u),entries:r.parse(b(e))}},async async(e,r){return{factory:await r.parse(u),entries:await r.parse(b(e))}},stream(e,r){return{factory:r.parse(u),entries:r.parse(b(e))}}},serialize(e,r){return"("+r.serialize(e.factory)+")("+r.serialize(e.entries)+")"},deserialize(e,r){return C(r.deserialize(e.entries))}}),I=de;var O=require("seroval");function w(e){let r=[];return e.forEach((a,t)=>{r.push([t,a])}),r}var fe=(0,O.createPlugin)({tag:"seroval-plugins/web/Headers",test(e){return typeof Headers=="undefined"?!1:e instanceof Headers},parse:{sync(e,r){return r.parse(w(e))},async async(e,r){return await r.parse(w(e))},stream(e,r){return r.parse(w(e))}},serialize(e,r){return"new Headers("+r.serialize(e)+")"},deserialize(e,r){return new Headers(r.deserialize(e))}}),o=fe;var U=require("seroval"),me=(0,U.createPlugin)({tag:"seroval-plugins/web/ImageData",test(e){return typeof ImageData=="undefined"?!1:e instanceof ImageData},parse:{sync(e,r){return{data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}},async async(e,r){return{data:await r.parse(e.data),width:await r.parse(e.width),height:await r.parse(e.height),options:await r.parse({colorSpace:e.colorSpace})}},stream(e,r){return{data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}}},serialize(e,r){return"new ImageData("+r.serialize(e.data)+","+r.serialize(e.width)+","+r.serialize(e.height)+","+r.serialize(e.options)+")"},deserialize(e,r){return new ImageData(r.deserialize(e.data),r.deserialize(e.width),r.deserialize(e.height),r.deserialize(e.options))}}),B=me;var s=require("seroval"),d={},T=e=>new ReadableStream({start:r=>{e.on({next:a=>{try{r.enqueue(a)}catch(t){}},throw:a=>{r.error(a)},return:()=>{try{r.close()}catch(a){}}})}}),ge=(0,s.createPlugin)({tag:"seroval-plugins/web/ReadableStreamFactory",test(e){return e===d},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(){return T.toString()},deserialize(){return d}});function L(e){let r=(0,s.createStream)(),a=e.getReader();async function t(){try{let n=await a.read();n.done?r.return(n.value):(r.next(n.value),await t())}catch(n){r.throw(n)}}return t().catch(()=>{}),r}var ye=(0,s.createPlugin)({tag:"seroval/plugins/web/ReadableStream",extends:[ge],test(e){return typeof ReadableStream=="undefined"?!1:e instanceof ReadableStream},parse:{sync(e,r){return{factory:r.parse(d),stream:r.parse((0,s.createStream)())}},async async(e,r){return{factory:await r.parse(d),stream:await r.parse(L(e))}},stream(e,r){return{factory:r.parse(d),stream:r.parse(L(e))}}},serialize(e,r){return"("+r.serialize(e.factory)+")("+r.serialize(e.stream)+")"},deserialize(e,r){let a=r.deserialize(e.stream);return T(a)}}),i=ye;var q=require("seroval");function M(e,r){return{body:r,cache:e.cache,credentials:e.credentials,headers:e.headers,integrity:e.integrity,keepalive:e.keepalive,method:e.method,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy}}var ce=(0,q.createPlugin)({tag:"seroval-plugins/web/Request",extends:[i,o],test(e){return typeof Request=="undefined"?!1:e instanceof Request},parse:{async async(e,r){return{url:await r.parse(e.url),options:await r.parse(M(e,e.body&&!e.bodyUsed?await e.clone().arrayBuffer():null))}},stream(e,r){return{url:r.parse(e.url),options:r.parse(M(e,e.body&&!e.bodyUsed?e.clone().body:null))}}},serialize(e,r){return"new Request("+r.serialize(e.url)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Request(r.deserialize(e.url),r.deserialize(e.options))}}),H=ce;var k=require("seroval");function _(e){return{headers:e.headers,status:e.status,statusText:e.statusText}}var be=(0,k.createPlugin)({tag:"seroval-plugins/web/Response",extends:[i,o],test(e){return typeof Response=="undefined"?!1:e instanceof Response},parse:{async async(e,r){return{body:await r.parse(e.body&&!e.bodyUsed?await e.clone().arrayBuffer():null),options:await r.parse(_(e))}},stream(e,r){return{body:r.parse(e.body&&!e.bodyUsed?e.clone().body:null),options:r.parse(_(e))}}},serialize(e,r){return"new Response("+r.serialize(e.body)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Response(r.deserialize(e.body),r.deserialize(e.options))}}),Y=be;var V=require("seroval"),Se=(0,V.createPlugin)({tag:"seroval-plugins/web/URL",test(e){return typeof URL=="undefined"?!1:e instanceof URL},parse:{sync(e,r){return r.parse(e.href)},async async(e,r){return await r.parse(e.href)},stream(e,r){return r.parse(e.href)}},serialize(e,r){return"new URL("+r.serialize(e)+")"},deserialize(e,r){return new URL(r.deserialize(e))}}),j=Se;var W=require("seroval"),we=(0,W.createPlugin)({tag:"seroval-plugins/web/URLSearchParams",test(e){return typeof URLSearchParams=="undefined"?!1:e instanceof URLSearchParams},parse:{sync(e,r){return r.parse(e.toString())},async async(e,r){return await r.parse(e.toString())},stream(e,r){return r.parse(e.toString())}},serialize(e,r){return"new URLSearchParams("+r.serialize(e)+")"},deserialize(e,r){return new URLSearchParams(r.deserialize(e))}}),G=we; | ||
| "use strict";var f=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var X=Object.prototype.hasOwnProperty;var Z=(e,r)=>{for(var a in r)f(e,a,{get:r[a],enumerable:!0})},$=(e,r,a,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of W(r))!X.call(e,t)&&t!==a&&f(e,t,{get:()=>r[t],enumerable:!(s=Q(r,t))||s.enumerable});return e};var x=e=>$(f({},"__esModule",{value:!0}),e);var ve={};Z(ve,{AbortSignalPlugin:()=>z,BlobPlugin:()=>P,CustomEventPlugin:()=>h,DOMExceptionPlugin:()=>D,EventPlugin:()=>A,FilePlugin:()=>d,FormDataPlugin:()=>I,HeadersPlugin:()=>i,ImageDataPlugin:()=>U,ReadableStreamPlugin:()=>p,RequestPlugin:()=>H,ResponsePlugin:()=>j,URLPlugin:()=>G,URLSearchParamsPlugin:()=>K});module.exports=x(ve);var y=require("seroval"),m=e=>{let r=new AbortController,a=r.abort.bind(r);return e.then(a,a),r};function ee(e){e(this.reason)}function re(e){this.addEventListener("abort",ee.bind(this,e),{once:!0})}function w(e){return new Promise(re.bind(e))}var u={},ae=(0,y.createPlugin)({tag:"seroval-plugins/web/AbortControllerFactoryPlugin",test(e){return e===u},parse:{sync(){return u},async async(){return await Promise.resolve(u)},stream(){return u}},serialize(){return m.toString()},deserialize(){return m}}),te=(0,y.createPlugin)({tag:"seroval-plugins/web/AbortSignal",extends:[ae],test(e){return typeof AbortSignal=="undefined"?!1:e instanceof AbortSignal},parse:{sync(e,r){return e.aborted?{reason:r.parse(e.reason)}:{}},async async(e,r){if(e.aborted)return{reason:await r.parse(e.reason)};let a=await w(e);return{reason:await r.parse(a)}},stream(e,r){if(e.aborted)return{reason:r.parse(e.reason)};let a=w(e);return{factory:r.parse(u),controller:r.parse(a)}}},serialize(e,r){return e.reason?"AbortSignal.abort("+r.serialize(e.reason)+")":e.controller&&e.factory?"("+r.serialize(e.factory)+")("+r.serialize(e.controller)+").signal":"(new AbortController).signal"},deserialize(e,r){return e.reason?AbortSignal.abort(r.deserialize(e.reason)):e.controller?m(r.deserialize(e.controller)).signal:new AbortController().signal}}),z=te;var R=require("seroval"),se=(0,R.createPlugin)({tag:"seroval-plugins/web/Blob",test(e){return typeof Blob=="undefined"?!1:e instanceof Blob},parse:{async async(e,r){return{type:await r.parse(e.type),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return"new Blob(["+r.serialize(e.buffer)+"],{type:"+r.serialize(e.type)+"})"},deserialize(e,r){return new Blob([r.deserialize(e.buffer)],{type:r.deserialize(e.type)})}}),P=se;var N=require("seroval");function g(e){return{detail:e.detail,bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var oe=(0,N.createPlugin)({tag:"seroval-plugins/web/CustomEvent",test(e){return typeof CustomEvent=="undefined"?!1:e instanceof CustomEvent},parse:{sync(e,r){return{type:r.parse(e.type),options:r.parse(g(e))}},async async(e,r){return{type:await r.parse(e.type),options:await r.parse(g(e))}},stream(e,r){return{type:r.parse(e.type),options:r.parse(g(e))}}},serialize(e,r){return"new CustomEvent("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new CustomEvent(r.deserialize(e.type),r.deserialize(e.options))}}),h=oe;var E=require("seroval"),ne=(0,E.createPlugin)({tag:"seroval-plugins/web/DOMException",test(e){return typeof DOMException=="undefined"?!1:e instanceof DOMException},parse:{sync(e,r){return{name:r.parse(e.name),message:r.parse(e.message)}},async async(e,r){return{name:await r.parse(e.name),message:await r.parse(e.message)}},stream(e,r){return{name:r.parse(e.name),message:r.parse(e.message)}}},serialize(e,r){return"new DOMException("+r.serialize(e.message)+","+r.serialize(e.name)+")"},deserialize(e,r){return new DOMException(r.deserialize(e.message),r.deserialize(e.name))}}),D=ne;var F=require("seroval");function c(e){return{bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var ie=(0,F.createPlugin)({tag:"seroval-plugins/web/Event",test(e){return typeof Event=="undefined"?!1:e instanceof Event},parse:{sync(e,r){return{type:r.parse(e.type),options:r.parse(c(e))}},async async(e,r){return{type:await r.parse(e.type),options:await r.parse(c(e))}},stream(e,r){return{type:r.parse(e.type),options:r.parse(c(e))}}},serialize(e,r){return"new Event("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Event(r.deserialize(e.type),r.deserialize(e.options))}}),A=ie;var O=require("seroval"),le=(0,O.createPlugin)({tag:"seroval-plugins/web/File",test(e){return typeof File=="undefined"?!1:e instanceof File},parse:{async async(e,r){return{name:await r.parse(e.name),options:await r.parse({type:e.type,lastModified:e.lastModified}),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return"new File(["+r.serialize(e.buffer)+"],"+r.serialize(e.name)+","+r.serialize(e.options)+")"},deserialize(e,r){return new File([r.deserialize(e.buffer)],r.deserialize(e.name),r.deserialize(e.options))}}),d=le;var S=require("seroval");function b(e){let r=[];return e.forEach((a,s)=>{r.push([s,a])}),r}var o={},C=(e,r=new FormData,a=0,s=e.length,t)=>{for(;a<s;a++)t=e[a],r.append(t[0],t[1]);return r},pe=(0,S.createPlugin)({tag:"seroval-plugins/web/FormDataFactory",test(e){return e===o},parse:{sync(){return o},async async(){return await Promise.resolve(o)},stream(){return o}},serialize(){return C.toString()},deserialize(){return o}}),ue=(0,S.createPlugin)({tag:"seroval-plugins/web/FormData",extends:[d,pe],test(e){return typeof FormData=="undefined"?!1:e instanceof FormData},parse:{sync(e,r){return{factory:r.parse(o),entries:r.parse(b(e))}},async async(e,r){return{factory:await r.parse(o),entries:await r.parse(b(e))}},stream(e,r){return{factory:r.parse(o),entries:r.parse(b(e))}}},serialize(e,r){return"("+r.serialize(e.factory)+")("+r.serialize(e.entries)+")"},deserialize(e,r){return C(r.deserialize(e.entries))}}),I=ue;var B=require("seroval");function v(e){let r=[];return e.forEach((a,s)=>{r.push([s,a])}),r}var de=(0,B.createPlugin)({tag:"seroval-plugins/web/Headers",test(e){return typeof Headers=="undefined"?!1:e instanceof Headers},parse:{sync(e,r){return{value:r.parse(v(e))}},async async(e,r){return{value:await r.parse(v(e))}},stream(e,r){return{value:r.parse(v(e))}}},serialize(e,r){return"new Headers("+r.serialize(e.value)+")"},deserialize(e,r){return new Headers(r.deserialize(e.value))}}),i=de;var T=require("seroval"),fe=(0,T.createPlugin)({tag:"seroval-plugins/web/ImageData",test(e){return typeof ImageData=="undefined"?!1:e instanceof ImageData},parse:{sync(e,r){return{data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}},async async(e,r){return{data:await r.parse(e.data),width:await r.parse(e.width),height:await r.parse(e.height),options:await r.parse({colorSpace:e.colorSpace})}},stream(e,r){return{data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}}},serialize(e,r){return"new ImageData("+r.serialize(e.data)+","+r.serialize(e.width)+","+r.serialize(e.height)+","+r.serialize(e.options)+")"},deserialize(e,r){return new ImageData(r.deserialize(e.data),r.deserialize(e.width),r.deserialize(e.height),r.deserialize(e.options))}}),U=fe;var l=require("seroval"),n={},M=e=>new ReadableStream({start:r=>{e.on({next:a=>{try{r.enqueue(a)}catch(s){}},throw:a=>{r.error(a)},return:()=>{try{r.close()}catch(a){}}})}}),me=(0,l.createPlugin)({tag:"seroval-plugins/web/ReadableStreamFactory",test(e){return e===n},parse:{sync(){return n},async async(){return await Promise.resolve(n)},stream(){return n}},serialize(){return M.toString()},deserialize(){return n}});function L(e){let r=(0,l.createStream)(),a=e.getReader();async function s(){try{let t=await a.read();t.done?r.return(t.value):(r.next(t.value),await s())}catch(t){r.throw(t)}}return s().catch(()=>{}),r}var ye=(0,l.createPlugin)({tag:"seroval/plugins/web/ReadableStream",extends:[me],test(e){return typeof ReadableStream=="undefined"?!1:e instanceof ReadableStream},parse:{sync(e,r){return{factory:r.parse(n),stream:r.parse((0,l.createStream)())}},async async(e,r){return{factory:await r.parse(n),stream:await r.parse(L(e))}},stream(e,r){return{factory:r.parse(n),stream:r.parse(L(e))}}},serialize(e,r){return"("+r.serialize(e.factory)+")("+r.serialize(e.stream)+")"},deserialize(e,r){let a=r.deserialize(e.stream);return M(a)}}),p=ye;var q=require("seroval");function _(e,r){return{body:r,cache:e.cache,credentials:e.credentials,headers:e.headers,integrity:e.integrity,keepalive:e.keepalive,method:e.method,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy}}var ge=(0,q.createPlugin)({tag:"seroval-plugins/web/Request",extends:[p,i],test(e){return typeof Request=="undefined"?!1:e instanceof Request},parse:{async async(e,r){return{url:await r.parse(e.url),options:await r.parse(_(e,e.body&&!e.bodyUsed?await e.clone().arrayBuffer():null))}},stream(e,r){return{url:r.parse(e.url),options:r.parse(_(e,e.body&&!e.bodyUsed?e.clone().body:null))}}},serialize(e,r){return"new Request("+r.serialize(e.url)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Request(r.deserialize(e.url),r.deserialize(e.options))}}),H=ge;var Y=require("seroval");function k(e){return{headers:e.headers,status:e.status,statusText:e.statusText}}var ce=(0,Y.createPlugin)({tag:"seroval-plugins/web/Response",extends:[p,i],test(e){return typeof Response=="undefined"?!1:e instanceof Response},parse:{async async(e,r){return{body:await r.parse(e.body&&!e.bodyUsed?await e.clone().arrayBuffer():null),options:await r.parse(k(e))}},stream(e,r){return{body:r.parse(e.body&&!e.bodyUsed?e.clone().body:null),options:r.parse(k(e))}}},serialize(e,r){return"new Response("+r.serialize(e.body)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Response(r.deserialize(e.body),r.deserialize(e.options))}}),j=ce;var V=require("seroval"),be=(0,V.createPlugin)({tag:"seroval-plugins/web/URL",test(e){return typeof URL=="undefined"?!1:e instanceof URL},parse:{sync(e,r){return{value:r.parse(e.href)}},async async(e,r){return{value:await r.parse(e.href)}},stream(e,r){return{value:r.parse(e.href)}}},serialize(e,r){return"new URL("+r.serialize(e.value)+")"},deserialize(e,r){return new URL(r.deserialize(e.value))}}),G=be;var J=require("seroval"),Se=(0,J.createPlugin)({tag:"seroval-plugins/web/URLSearchParams",test(e){return typeof URLSearchParams=="undefined"?!1:e instanceof URLSearchParams},parse:{sync(e,r){return{value:r.parse(e.toString())}},async async(e,r){return{value:await r.parse(e.toString())}},stream(e,r){return{value:r.parse(e.toString())}}},serialize(e,r){return"new URLSearchParams("+r.serialize(e.value)+")"},deserialize(e,r){return new URLSearchParams(r.deserialize(e.value))}}),K=Se; |
+77
-106
| // web/abort-signal.ts | ||
| import { createPlugin } from "seroval"; | ||
| var PROMISE_TO_ABORT_SIGNAL = (promise) => { | ||
| const controller = new AbortController(); | ||
| const abort = controller.abort.bind(controller); | ||
| promise.then(abort, abort); | ||
| return controller; | ||
| }; | ||
| function resolveAbortSignalResult(resolve) { | ||
@@ -14,59 +20,29 @@ resolve(this.reason); | ||
| } | ||
| var AbortSignalController = class { | ||
| constructor() { | ||
| this.controller = new AbortController(); | ||
| } | ||
| }; | ||
| var AbortSignalControllerPlugin = createPlugin({ | ||
| tag: "seroval-plugins/web/AbortSignalController", | ||
| var ABORT_CONTROLLER = {}; | ||
| var AbortControllerFactoryPlugin = /* @__PURE__ */ createPlugin({ | ||
| tag: "seroval-plugins/web/AbortControllerFactoryPlugin", | ||
| test(value) { | ||
| return value instanceof AbortSignalController; | ||
| return value === ABORT_CONTROLLER; | ||
| }, | ||
| parse: { | ||
| sync() { | ||
| return ABORT_CONTROLLER; | ||
| }, | ||
| async async() { | ||
| return await Promise.resolve(ABORT_CONTROLLER); | ||
| }, | ||
| stream() { | ||
| return void 0; | ||
| return ABORT_CONTROLLER; | ||
| } | ||
| }, | ||
| serialize(_node) { | ||
| return "new AbortController"; | ||
| serialize() { | ||
| return PROMISE_TO_ABORT_SIGNAL.toString(); | ||
| }, | ||
| deserialize(_node) { | ||
| return new AbortSignalController(); | ||
| deserialize() { | ||
| return PROMISE_TO_ABORT_SIGNAL; | ||
| } | ||
| }); | ||
| var AbortSignalAbort = class { | ||
| constructor(controller, reason) { | ||
| this.controller = controller; | ||
| this.reason = reason; | ||
| } | ||
| }; | ||
| var AbortSignalAbortPlugin = createPlugin({ | ||
| extends: [AbortSignalControllerPlugin], | ||
| tag: "seroval-plugins/web/AbortSignalAbort", | ||
| test(value) { | ||
| return value instanceof AbortSignalAbort; | ||
| }, | ||
| parse: { | ||
| stream(value, ctx) { | ||
| return { | ||
| controller: ctx.parse(value.controller), | ||
| reason: ctx.parse(value.reason) | ||
| }; | ||
| } | ||
| }, | ||
| serialize(node, ctx) { | ||
| return ctx.serialize(node.controller) + ".abort(" + ctx.serialize(node.reason) + ")"; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| const controller = ctx.deserialize( | ||
| node.controller | ||
| ); | ||
| const reason = ctx.deserialize(node.reason); | ||
| controller.controller.abort(reason); | ||
| return new AbortSignalAbort(controller, reason); | ||
| } | ||
| }); | ||
| var AbortSignalPlugin = createPlugin({ | ||
| var AbortSignalPlugin = /* @__PURE__ */ createPlugin({ | ||
| tag: "seroval-plugins/web/AbortSignal", | ||
| extends: [AbortSignalAbortPlugin], | ||
| extends: [AbortControllerFactoryPlugin], | ||
| test(value) { | ||
@@ -82,9 +58,6 @@ if (typeof AbortSignal === "undefined") { | ||
| return { | ||
| type: 1 /* Aborted */, | ||
| reason: ctx.parse(value.reason) | ||
| }; | ||
| } | ||
| return { | ||
| type: 0 /* Pending */ | ||
| }; | ||
| return {}; | ||
| }, | ||
@@ -94,3 +67,2 @@ async async(value, ctx) { | ||
| return { | ||
| type: 1 /* Aborted */, | ||
| reason: await ctx.parse(value.reason) | ||
@@ -101,3 +73,2 @@ }; | ||
| return { | ||
| type: 1 /* Aborted */, | ||
| reason: await ctx.parse(result) | ||
@@ -109,24 +80,9 @@ }; | ||
| return { | ||
| type: 1 /* Aborted */, | ||
| reason: ctx.parse(value.reason) | ||
| }; | ||
| } | ||
| const controller = new AbortSignalController(); | ||
| ctx.pushPendingState(); | ||
| value.addEventListener( | ||
| "abort", | ||
| () => { | ||
| const result = ctx.parseWithError( | ||
| new AbortSignalAbort(controller, value.reason) | ||
| ); | ||
| if (result) { | ||
| ctx.onParse(result); | ||
| } | ||
| ctx.popPendingState(); | ||
| }, | ||
| { once: true } | ||
| ); | ||
| const promise = abortSignalToPromise(value); | ||
| return { | ||
| type: 2 /* Streaming */, | ||
| controller: ctx.parse(controller) | ||
| factory: ctx.parse(ABORT_CONTROLLER), | ||
| controller: ctx.parse(promise) | ||
| }; | ||
@@ -136,22 +92,19 @@ } | ||
| serialize(node, ctx) { | ||
| if (node.type === 0 /* Pending */) { | ||
| return "(new AbortController).signal"; | ||
| } | ||
| if (node.type === 1 /* Aborted */) { | ||
| if (node.reason) { | ||
| return "AbortSignal.abort(" + ctx.serialize(node.reason) + ")"; | ||
| } | ||
| return "(" + ctx.serialize(node.controller) + ").signal"; | ||
| if (node.controller && node.factory) { | ||
| return "(" + ctx.serialize(node.factory) + ")(" + ctx.serialize(node.controller) + ").signal"; | ||
| } | ||
| return "(new AbortController).signal"; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| if (node.type === 0 /* Pending */) { | ||
| const controller2 = new AbortController(); | ||
| return controller2.signal; | ||
| } | ||
| if (node.type === 1 /* Aborted */) { | ||
| if (node.reason) { | ||
| return AbortSignal.abort(ctx.deserialize(node.reason)); | ||
| } | ||
| const controller = ctx.deserialize( | ||
| node.controller | ||
| ); | ||
| return controller.controller.signal; | ||
| if (node.controller) { | ||
| return PROMISE_TO_ABORT_SIGNAL(ctx.deserialize(node.controller)).signal; | ||
| } | ||
| const controller = new AbortController(); | ||
| return controller.signal; | ||
| } | ||
@@ -390,9 +343,9 @@ }); | ||
| sync() { | ||
| return void 0; | ||
| return FORM_DATA_FACTORY; | ||
| }, | ||
| async async() { | ||
| return await Promise.resolve(void 0); | ||
| return await Promise.resolve(FORM_DATA_FACTORY); | ||
| }, | ||
| stream() { | ||
| return void 0; | ||
| return FORM_DATA_FACTORY; | ||
| } | ||
@@ -466,16 +419,22 @@ }, | ||
| sync(value, ctx) { | ||
| return ctx.parse(convertHeaders(value)); | ||
| return { | ||
| value: ctx.parse(convertHeaders(value)) | ||
| }; | ||
| }, | ||
| async async(value, ctx) { | ||
| return await ctx.parse(convertHeaders(value)); | ||
| return { | ||
| value: await ctx.parse(convertHeaders(value)) | ||
| }; | ||
| }, | ||
| stream(value, ctx) { | ||
| return ctx.parse(convertHeaders(value)); | ||
| return { | ||
| value: ctx.parse(convertHeaders(value)) | ||
| }; | ||
| } | ||
| }, | ||
| serialize(node, ctx) { | ||
| return "new Headers(" + ctx.serialize(node) + ")"; | ||
| return "new Headers(" + ctx.serialize(node.value) + ")"; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| return new Headers(ctx.deserialize(node)); | ||
| return new Headers(ctx.deserialize(node.value)); | ||
| } | ||
@@ -572,9 +531,9 @@ }); | ||
| sync() { | ||
| return void 0; | ||
| return READABLE_STREAM_FACTORY; | ||
| }, | ||
| async async() { | ||
| return await Promise.resolve(void 0); | ||
| return await Promise.resolve(READABLE_STREAM_FACTORY); | ||
| }, | ||
| stream() { | ||
| return void 0; | ||
| return READABLE_STREAM_FACTORY; | ||
| } | ||
@@ -770,16 +729,22 @@ }, | ||
| sync(value, ctx) { | ||
| return ctx.parse(value.href); | ||
| return { | ||
| value: ctx.parse(value.href) | ||
| }; | ||
| }, | ||
| async async(value, ctx) { | ||
| return await ctx.parse(value.href); | ||
| return { | ||
| value: await ctx.parse(value.href) | ||
| }; | ||
| }, | ||
| stream(value, ctx) { | ||
| return ctx.parse(value.href); | ||
| return { | ||
| value: ctx.parse(value.href) | ||
| }; | ||
| } | ||
| }, | ||
| serialize(node, ctx) { | ||
| return "new URL(" + ctx.serialize(node) + ")"; | ||
| return "new URL(" + ctx.serialize(node.value) + ")"; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| return new URL(ctx.deserialize(node)); | ||
| return new URL(ctx.deserialize(node.value)); | ||
| } | ||
@@ -801,16 +766,22 @@ }); | ||
| sync(value, ctx) { | ||
| return ctx.parse(value.toString()); | ||
| return { | ||
| value: ctx.parse(value.toString()) | ||
| }; | ||
| }, | ||
| async async(value, ctx) { | ||
| return await ctx.parse(value.toString()); | ||
| return { | ||
| value: await ctx.parse(value.toString()) | ||
| }; | ||
| }, | ||
| stream(value, ctx) { | ||
| return ctx.parse(value.toString()); | ||
| return { | ||
| value: ctx.parse(value.toString()) | ||
| }; | ||
| } | ||
| }, | ||
| serialize(node, ctx) { | ||
| return "new URLSearchParams(" + ctx.serialize(node) + ")"; | ||
| return "new URLSearchParams(" + ctx.serialize(node.value) + ")"; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| return new URLSearchParams(ctx.deserialize(node)); | ||
| return new URLSearchParams(ctx.deserialize(node.value)); | ||
| } | ||
@@ -817,0 +788,0 @@ }); |
@@ -1,1 +0,1 @@ | ||
| import{createPlugin as d}from"seroval";function A(e){e(this.reason)}function h(e){this.addEventListener("abort",A.bind(this,e),{once:!0})}function E(e){return new Promise(h.bind(e))}var o=class{constructor(){this.controller=new AbortController}},D=d({tag:"seroval-plugins/web/AbortSignalController",test(e){return e instanceof o},parse:{stream(){}},serialize(e){return"new AbortController"},deserialize(e){return new o}}),s=class{constructor(r,a){this.controller=r;this.reason=a}},F=d({extends:[D],tag:"seroval-plugins/web/AbortSignalAbort",test(e){return e instanceof s},parse:{stream(e,r){return{controller:r.parse(e.controller),reason:r.parse(e.reason)}}},serialize(e,r){return r.serialize(e.controller)+".abort("+r.serialize(e.reason)+")"},deserialize(e,r){let a=r.deserialize(e.controller),t=r.deserialize(e.reason);return a.controller.abort(t),new s(a,t)}});var C=d({tag:"seroval-plugins/web/AbortSignal",extends:[F],test(e){return typeof AbortSignal=="undefined"?!1:e instanceof AbortSignal},parse:{sync(e,r){return e.aborted?{type:1,reason:r.parse(e.reason)}:{type:0}},async async(e,r){if(e.aborted)return{type:1,reason:await r.parse(e.reason)};let a=await E(e);return{type:1,reason:await r.parse(a)}},stream(e,r){if(e.aborted)return{type:1,reason:r.parse(e.reason)};let a=new o;return r.pushPendingState(),e.addEventListener("abort",()=>{let t=r.parseWithError(new s(a,e.reason));t&&r.onParse(t),r.popPendingState()},{once:!0}),{type:2,controller:r.parse(a)}}},serialize(e,r){return e.type===0?"(new AbortController).signal":e.type===1?"AbortSignal.abort("+r.serialize(e.reason)+")":"("+r.serialize(e.controller)+").signal"},deserialize(e,r){return e.type===0?new AbortController().signal:e.type===1?AbortSignal.abort(r.deserialize(e.reason)):r.deserialize(e.controller).controller.signal}}),I=C;import{createPlugin as O}from"seroval";var U=O({tag:"seroval-plugins/web/Blob",test(e){return typeof Blob=="undefined"?!1:e instanceof Blob},parse:{async async(e,r){return{type:await r.parse(e.type),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return"new Blob(["+r.serialize(e.buffer)+"],{type:"+r.serialize(e.type)+"})"},deserialize(e,r){return new Blob([r.deserialize(e.buffer)],{type:r.deserialize(e.type)})}}),B=U;import{createPlugin as L}from"seroval";function f(e){return{detail:e.detail,bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var T=L({tag:"seroval-plugins/web/CustomEvent",test(e){return typeof CustomEvent=="undefined"?!1:e instanceof CustomEvent},parse:{sync(e,r){return{type:r.parse(e.type),options:r.parse(f(e))}},async async(e,r){return{type:await r.parse(e.type),options:await r.parse(f(e))}},stream(e,r){return{type:r.parse(e.type),options:r.parse(f(e))}}},serialize(e,r){return"new CustomEvent("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new CustomEvent(r.deserialize(e.type),r.deserialize(e.options))}}),M=T;import{createPlugin as q}from"seroval";var H=q({tag:"seroval-plugins/web/DOMException",test(e){return typeof DOMException=="undefined"?!1:e instanceof DOMException},parse:{sync(e,r){return{name:r.parse(e.name),message:r.parse(e.message)}},async async(e,r){return{name:await r.parse(e.name),message:await r.parse(e.message)}},stream(e,r){return{name:r.parse(e.name),message:r.parse(e.message)}}},serialize(e,r){return"new DOMException("+r.serialize(e.message)+","+r.serialize(e.name)+")"},deserialize(e,r){return new DOMException(r.deserialize(e.message),r.deserialize(e.name))}}),_=H;import{createPlugin as k}from"seroval";function m(e){return{bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var Y=k({tag:"seroval-plugins/web/Event",test(e){return typeof Event=="undefined"?!1:e instanceof Event},parse:{sync(e,r){return{type:r.parse(e.type),options:r.parse(m(e))}},async async(e,r){return{type:await r.parse(e.type),options:await r.parse(m(e))}},stream(e,r){return{type:r.parse(e.type),options:r.parse(m(e))}}},serialize(e,r){return"new Event("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Event(r.deserialize(e.type),r.deserialize(e.options))}}),V=Y;import{createPlugin as j}from"seroval";var W=j({tag:"seroval-plugins/web/File",test(e){return typeof File=="undefined"?!1:e instanceof File},parse:{async async(e,r){return{name:await r.parse(e.name),options:await r.parse({type:e.type,lastModified:e.lastModified}),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return"new File(["+r.serialize(e.buffer)+"],"+r.serialize(e.name)+","+r.serialize(e.options)+")"},deserialize(e,r){return new File([r.deserialize(e.buffer)],r.deserialize(e.name),r.deserialize(e.options))}}),g=W;import{createPlugin as b}from"seroval";function y(e){let r=[];return e.forEach((a,t)=>{r.push([t,a])}),r}var i={},S=(e,r=new FormData,a=0,t=e.length,n)=>{for(;a<t;a++)n=e[a],r.append(n[0],n[1]);return r},G=b({tag:"seroval-plugins/web/FormDataFactory",test(e){return e===i},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(){return S.toString()},deserialize(){return i}}),J=b({tag:"seroval-plugins/web/FormData",extends:[g,G],test(e){return typeof FormData=="undefined"?!1:e instanceof FormData},parse:{sync(e,r){return{factory:r.parse(i),entries:r.parse(y(e))}},async async(e,r){return{factory:await r.parse(i),entries:await r.parse(y(e))}},stream(e,r){return{factory:r.parse(i),entries:r.parse(y(e))}}},serialize(e,r){return"("+r.serialize(e.factory)+")("+r.serialize(e.entries)+")"},deserialize(e,r){return S(r.deserialize(e.entries))}}),K=J;import{createPlugin as Q}from"seroval";function c(e){let r=[];return e.forEach((a,t)=>{r.push([t,a])}),r}var X=Q({tag:"seroval-plugins/web/Headers",test(e){return typeof Headers=="undefined"?!1:e instanceof Headers},parse:{sync(e,r){return r.parse(c(e))},async async(e,r){return await r.parse(c(e))},stream(e,r){return r.parse(c(e))}},serialize(e,r){return"new Headers("+r.serialize(e)+")"},deserialize(e,r){return new Headers(r.deserialize(e))}}),l=X;import{createPlugin as Z}from"seroval";var $=Z({tag:"seroval-plugins/web/ImageData",test(e){return typeof ImageData=="undefined"?!1:e instanceof ImageData},parse:{sync(e,r){return{data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}},async async(e,r){return{data:await r.parse(e.data),width:await r.parse(e.width),height:await r.parse(e.height),options:await r.parse({colorSpace:e.colorSpace})}},stream(e,r){return{data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}}},serialize(e,r){return"new ImageData("+r.serialize(e.data)+","+r.serialize(e.width)+","+r.serialize(e.height)+","+r.serialize(e.options)+")"},deserialize(e,r){return new ImageData(r.deserialize(e.data),r.deserialize(e.width),r.deserialize(e.height),r.deserialize(e.options))}}),x=$;import{createPlugin as z,createStream as v}from"seroval";var p={},P=e=>new ReadableStream({start:r=>{e.on({next:a=>{try{r.enqueue(a)}catch(t){}},throw:a=>{r.error(a)},return:()=>{try{r.close()}catch(a){}}})}}),ee=z({tag:"seroval-plugins/web/ReadableStreamFactory",test(e){return e===p},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(){return P.toString()},deserialize(){return p}});function w(e){let r=v(),a=e.getReader();async function t(){try{let n=await a.read();n.done?r.return(n.value):(r.next(n.value),await t())}catch(n){r.throw(n)}}return t().catch(()=>{}),r}var re=z({tag:"seroval/plugins/web/ReadableStream",extends:[ee],test(e){return typeof ReadableStream=="undefined"?!1:e instanceof ReadableStream},parse:{sync(e,r){return{factory:r.parse(p),stream:r.parse(v())}},async async(e,r){return{factory:await r.parse(p),stream:await r.parse(w(e))}},stream(e,r){return{factory:r.parse(p),stream:r.parse(w(e))}}},serialize(e,r){return"("+r.serialize(e.factory)+")("+r.serialize(e.stream)+")"},deserialize(e,r){let a=r.deserialize(e.stream);return P(a)}}),u=re;import{createPlugin as ae}from"seroval";function R(e,r){return{body:r,cache:e.cache,credentials:e.credentials,headers:e.headers,integrity:e.integrity,keepalive:e.keepalive,method:e.method,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy}}var te=ae({tag:"seroval-plugins/web/Request",extends:[u,l],test(e){return typeof Request=="undefined"?!1:e instanceof Request},parse:{async async(e,r){return{url:await r.parse(e.url),options:await r.parse(R(e,e.body&&!e.bodyUsed?await e.clone().arrayBuffer():null))}},stream(e,r){return{url:r.parse(e.url),options:r.parse(R(e,e.body&&!e.bodyUsed?e.clone().body:null))}}},serialize(e,r){return"new Request("+r.serialize(e.url)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Request(r.deserialize(e.url),r.deserialize(e.options))}}),ne=te;import{createPlugin as oe}from"seroval";function N(e){return{headers:e.headers,status:e.status,statusText:e.statusText}}var se=oe({tag:"seroval-plugins/web/Response",extends:[u,l],test(e){return typeof Response=="undefined"?!1:e instanceof Response},parse:{async async(e,r){return{body:await r.parse(e.body&&!e.bodyUsed?await e.clone().arrayBuffer():null),options:await r.parse(N(e))}},stream(e,r){return{body:r.parse(e.body&&!e.bodyUsed?e.clone().body:null),options:r.parse(N(e))}}},serialize(e,r){return"new Response("+r.serialize(e.body)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Response(r.deserialize(e.body),r.deserialize(e.options))}}),ie=se;import{createPlugin as le}from"seroval";var pe=le({tag:"seroval-plugins/web/URL",test(e){return typeof URL=="undefined"?!1:e instanceof URL},parse:{sync(e,r){return r.parse(e.href)},async async(e,r){return await r.parse(e.href)},stream(e,r){return r.parse(e.href)}},serialize(e,r){return"new URL("+r.serialize(e)+")"},deserialize(e,r){return new URL(r.deserialize(e))}}),ue=pe;import{createPlugin as de}from"seroval";var fe=de({tag:"seroval-plugins/web/URLSearchParams",test(e){return typeof URLSearchParams=="undefined"?!1:e instanceof URLSearchParams},parse:{sync(e,r){return r.parse(e.toString())},async async(e,r){return await r.parse(e.toString())},stream(e,r){return r.parse(e.toString())}},serialize(e,r){return"new URLSearchParams("+r.serialize(e)+")"},deserialize(e,r){return new URLSearchParams(r.deserialize(e))}}),me=fe;export{I as AbortSignalPlugin,B as BlobPlugin,M as CustomEventPlugin,_ as DOMExceptionPlugin,V as EventPlugin,g as FilePlugin,K as FormDataPlugin,l as HeadersPlugin,x as ImageDataPlugin,u as ReadableStreamPlugin,ne as RequestPlugin,ie as ResponsePlugin,ue as URLPlugin,me as URLSearchParamsPlugin}; | ||
| import{createPlugin as b}from"seroval";var u=e=>{let r=new AbortController,a=r.abort.bind(r);return e.then(a,a),r};function E(e){e(this.reason)}function D(e){this.addEventListener("abort",E.bind(this,e),{once:!0})}function c(e){return new Promise(D.bind(e))}var i={},F=b({tag:"seroval-plugins/web/AbortControllerFactoryPlugin",test(e){return e===i},parse:{sync(){return i},async async(){return await Promise.resolve(i)},stream(){return i}},serialize(){return u.toString()},deserialize(){return u}}),A=b({tag:"seroval-plugins/web/AbortSignal",extends:[F],test(e){return typeof AbortSignal=="undefined"?!1:e instanceof AbortSignal},parse:{sync(e,r){return e.aborted?{reason:r.parse(e.reason)}:{}},async async(e,r){if(e.aborted)return{reason:await r.parse(e.reason)};let a=await c(e);return{reason:await r.parse(a)}},stream(e,r){if(e.aborted)return{reason:r.parse(e.reason)};let a=c(e);return{factory:r.parse(i),controller:r.parse(a)}}},serialize(e,r){return e.reason?"AbortSignal.abort("+r.serialize(e.reason)+")":e.controller&&e.factory?"("+r.serialize(e.factory)+")("+r.serialize(e.controller)+").signal":"(new AbortController).signal"},deserialize(e,r){return e.reason?AbortSignal.abort(r.deserialize(e.reason)):e.controller?u(r.deserialize(e.controller)).signal:new AbortController().signal}}),O=A;import{createPlugin as C}from"seroval";var I=C({tag:"seroval-plugins/web/Blob",test(e){return typeof Blob=="undefined"?!1:e instanceof Blob},parse:{async async(e,r){return{type:await r.parse(e.type),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return"new Blob(["+r.serialize(e.buffer)+"],{type:"+r.serialize(e.type)+"})"},deserialize(e,r){return new Blob([r.deserialize(e.buffer)],{type:r.deserialize(e.type)})}}),B=I;import{createPlugin as T}from"seroval";function d(e){return{detail:e.detail,bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var U=T({tag:"seroval-plugins/web/CustomEvent",test(e){return typeof CustomEvent=="undefined"?!1:e instanceof CustomEvent},parse:{sync(e,r){return{type:r.parse(e.type),options:r.parse(d(e))}},async async(e,r){return{type:await r.parse(e.type),options:await r.parse(d(e))}},stream(e,r){return{type:r.parse(e.type),options:r.parse(d(e))}}},serialize(e,r){return"new CustomEvent("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new CustomEvent(r.deserialize(e.type),r.deserialize(e.options))}}),L=U;import{createPlugin as M}from"seroval";var _=M({tag:"seroval-plugins/web/DOMException",test(e){return typeof DOMException=="undefined"?!1:e instanceof DOMException},parse:{sync(e,r){return{name:r.parse(e.name),message:r.parse(e.message)}},async async(e,r){return{name:await r.parse(e.name),message:await r.parse(e.message)}},stream(e,r){return{name:r.parse(e.name),message:r.parse(e.message)}}},serialize(e,r){return"new DOMException("+r.serialize(e.message)+","+r.serialize(e.name)+")"},deserialize(e,r){return new DOMException(r.deserialize(e.message),r.deserialize(e.name))}}),q=_;import{createPlugin as H}from"seroval";function f(e){return{bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var k=H({tag:"seroval-plugins/web/Event",test(e){return typeof Event=="undefined"?!1:e instanceof Event},parse:{sync(e,r){return{type:r.parse(e.type),options:r.parse(f(e))}},async async(e,r){return{type:await r.parse(e.type),options:await r.parse(f(e))}},stream(e,r){return{type:r.parse(e.type),options:r.parse(f(e))}}},serialize(e,r){return"new Event("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Event(r.deserialize(e.type),r.deserialize(e.options))}}),Y=k;import{createPlugin as j}from"seroval";var V=j({tag:"seroval-plugins/web/File",test(e){return typeof File=="undefined"?!1:e instanceof File},parse:{async async(e,r){return{name:await r.parse(e.name),options:await r.parse({type:e.type,lastModified:e.lastModified}),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return"new File(["+r.serialize(e.buffer)+"],"+r.serialize(e.name)+","+r.serialize(e.options)+")"},deserialize(e,r){return new File([r.deserialize(e.buffer)],r.deserialize(e.name),r.deserialize(e.options))}}),m=V;import{createPlugin as S}from"seroval";function y(e){let r=[];return e.forEach((a,t)=>{r.push([t,a])}),r}var o={},v=(e,r=new FormData,a=0,t=e.length,s)=>{for(;a<t;a++)s=e[a],r.append(s[0],s[1]);return r},G=S({tag:"seroval-plugins/web/FormDataFactory",test(e){return e===o},parse:{sync(){return o},async async(){return await Promise.resolve(o)},stream(){return o}},serialize(){return v.toString()},deserialize(){return o}}),J=S({tag:"seroval-plugins/web/FormData",extends:[m,G],test(e){return typeof FormData=="undefined"?!1:e instanceof FormData},parse:{sync(e,r){return{factory:r.parse(o),entries:r.parse(y(e))}},async async(e,r){return{factory:await r.parse(o),entries:await r.parse(y(e))}},stream(e,r){return{factory:r.parse(o),entries:r.parse(y(e))}}},serialize(e,r){return"("+r.serialize(e.factory)+")("+r.serialize(e.entries)+")"},deserialize(e,r){return v(r.deserialize(e.entries))}}),K=J;import{createPlugin as Q}from"seroval";function g(e){let r=[];return e.forEach((a,t)=>{r.push([t,a])}),r}var W=Q({tag:"seroval-plugins/web/Headers",test(e){return typeof Headers=="undefined"?!1:e instanceof Headers},parse:{sync(e,r){return{value:r.parse(g(e))}},async async(e,r){return{value:await r.parse(g(e))}},stream(e,r){return{value:r.parse(g(e))}}},serialize(e,r){return"new Headers("+r.serialize(e.value)+")"},deserialize(e,r){return new Headers(r.deserialize(e.value))}}),l=W;import{createPlugin as X}from"seroval";var Z=X({tag:"seroval-plugins/web/ImageData",test(e){return typeof ImageData=="undefined"?!1:e instanceof ImageData},parse:{sync(e,r){return{data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}},async async(e,r){return{data:await r.parse(e.data),width:await r.parse(e.width),height:await r.parse(e.height),options:await r.parse({colorSpace:e.colorSpace})}},stream(e,r){return{data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}}},serialize(e,r){return"new ImageData("+r.serialize(e.data)+","+r.serialize(e.width)+","+r.serialize(e.height)+","+r.serialize(e.options)+")"},deserialize(e,r){return new ImageData(r.deserialize(e.data),r.deserialize(e.width),r.deserialize(e.height),r.deserialize(e.options))}}),$=Z;import{createPlugin as z,createStream as R}from"seroval";var n={},P=e=>new ReadableStream({start:r=>{e.on({next:a=>{try{r.enqueue(a)}catch(t){}},throw:a=>{r.error(a)},return:()=>{try{r.close()}catch(a){}}})}}),x=z({tag:"seroval-plugins/web/ReadableStreamFactory",test(e){return e===n},parse:{sync(){return n},async async(){return await Promise.resolve(n)},stream(){return n}},serialize(){return P.toString()},deserialize(){return n}});function w(e){let r=R(),a=e.getReader();async function t(){try{let s=await a.read();s.done?r.return(s.value):(r.next(s.value),await t())}catch(s){r.throw(s)}}return t().catch(()=>{}),r}var ee=z({tag:"seroval/plugins/web/ReadableStream",extends:[x],test(e){return typeof ReadableStream=="undefined"?!1:e instanceof ReadableStream},parse:{sync(e,r){return{factory:r.parse(n),stream:r.parse(R())}},async async(e,r){return{factory:await r.parse(n),stream:await r.parse(w(e))}},stream(e,r){return{factory:r.parse(n),stream:r.parse(w(e))}}},serialize(e,r){return"("+r.serialize(e.factory)+")("+r.serialize(e.stream)+")"},deserialize(e,r){let a=r.deserialize(e.stream);return P(a)}}),p=ee;import{createPlugin as re}from"seroval";function N(e,r){return{body:r,cache:e.cache,credentials:e.credentials,headers:e.headers,integrity:e.integrity,keepalive:e.keepalive,method:e.method,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy}}var ae=re({tag:"seroval-plugins/web/Request",extends:[p,l],test(e){return typeof Request=="undefined"?!1:e instanceof Request},parse:{async async(e,r){return{url:await r.parse(e.url),options:await r.parse(N(e,e.body&&!e.bodyUsed?await e.clone().arrayBuffer():null))}},stream(e,r){return{url:r.parse(e.url),options:r.parse(N(e,e.body&&!e.bodyUsed?e.clone().body:null))}}},serialize(e,r){return"new Request("+r.serialize(e.url)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Request(r.deserialize(e.url),r.deserialize(e.options))}}),te=ae;import{createPlugin as se}from"seroval";function h(e){return{headers:e.headers,status:e.status,statusText:e.statusText}}var oe=se({tag:"seroval-plugins/web/Response",extends:[p,l],test(e){return typeof Response=="undefined"?!1:e instanceof Response},parse:{async async(e,r){return{body:await r.parse(e.body&&!e.bodyUsed?await e.clone().arrayBuffer():null),options:await r.parse(h(e))}},stream(e,r){return{body:r.parse(e.body&&!e.bodyUsed?e.clone().body:null),options:r.parse(h(e))}}},serialize(e,r){return"new Response("+r.serialize(e.body)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Response(r.deserialize(e.body),r.deserialize(e.options))}}),ne=oe;import{createPlugin as ie}from"seroval";var le=ie({tag:"seroval-plugins/web/URL",test(e){return typeof URL=="undefined"?!1:e instanceof URL},parse:{sync(e,r){return{value:r.parse(e.href)}},async async(e,r){return{value:await r.parse(e.href)}},stream(e,r){return{value:r.parse(e.href)}}},serialize(e,r){return"new URL("+r.serialize(e.value)+")"},deserialize(e,r){return new URL(r.deserialize(e.value))}}),pe=le;import{createPlugin as ue}from"seroval";var de=ue({tag:"seroval-plugins/web/URLSearchParams",test(e){return typeof URLSearchParams=="undefined"?!1:e instanceof URLSearchParams},parse:{sync(e,r){return{value:r.parse(e.toString())}},async async(e,r){return{value:await r.parse(e.toString())}},stream(e,r){return{value:r.parse(e.toString())}}},serialize(e,r){return"new URLSearchParams("+r.serialize(e.value)+")"},deserialize(e,r){return new URLSearchParams(r.deserialize(e.value))}}),fe=de;export{O as AbortSignalPlugin,B as BlobPlugin,L as CustomEventPlugin,q as DOMExceptionPlugin,Y as EventPlugin,m as FilePlugin,K as FormDataPlugin,l as HeadersPlugin,$ as ImageDataPlugin,p as ReadableStreamPlugin,te as RequestPlugin,ne as ResponsePlugin,pe as URLPlugin,fe as URLSearchParamsPlugin}; |
@@ -1,4 +0,3 @@ | ||
| export declare function abortSignalToPromise(signal: AbortSignal): Promise<any>; | ||
| declare const AbortSignalPlugin: any; | ||
| export default AbortSignalPlugin; | ||
| //# sourceMappingURL=abort-signal.d.ts.map |
+2
-2
| { | ||
| "name": "seroval-plugins", | ||
| "type": "module", | ||
| "version": "1.4.2", | ||
| "version": "1.5.0", | ||
| "files": [ | ||
@@ -20,3 +20,3 @@ "dist", | ||
| "pridepack": "2.6.4", | ||
| "seroval": "1.4.2", | ||
| "seroval": "1.5.0", | ||
| "tslib": "^2.8.1", | ||
@@ -23,0 +23,0 @@ "typescript": "^5.9.3", |
+50
-116
| import type { SerovalNode } from 'seroval'; | ||
| import { createPlugin } from 'seroval'; | ||
| const PROMISE_TO_ABORT_SIGNAL = (promise: Promise<unknown>) => { | ||
| const controller = new AbortController(); | ||
| const abort = controller.abort.bind(controller); | ||
| promise.then(abort, abort); | ||
| return controller; | ||
| }; | ||
| function resolveAbortSignalResult( | ||
| this: AbortSignal, | ||
| resolve: (value: any) => void, | ||
| resolve: (value: unknown) => void, | ||
| ): void { | ||
@@ -13,3 +20,3 @@ resolve(this.reason); | ||
| this: AbortSignal, | ||
| resolve: (value: any) => void, | ||
| resolve: (value: unknown) => void, | ||
| ): void { | ||
@@ -21,94 +28,38 @@ this.addEventListener('abort', resolveAbortSignalResult.bind(this, resolve), { | ||
| export function abortSignalToPromise(signal: AbortSignal): Promise<any> { | ||
| function abortSignalToPromise(signal: AbortSignal): Promise<unknown> { | ||
| return new Promise(resolveAbortSignal.bind(signal)); | ||
| } | ||
| class AbortSignalController { | ||
| controller = new AbortController(); | ||
| } | ||
| const ABORT_CONTROLLER = {}; | ||
| const AbortSignalControllerPlugin = createPlugin< | ||
| AbortSignalController, | ||
| undefined | ||
| >({ | ||
| tag: 'seroval-plugins/web/AbortSignalController', | ||
| const AbortControllerFactoryPlugin = /* @__PURE__ */ createPlugin<object, {}>({ | ||
| tag: 'seroval-plugins/web/AbortControllerFactoryPlugin', | ||
| test(value) { | ||
| // We didn't actually use the AbortController class | ||
| // directly because of some assumptions | ||
| return value instanceof AbortSignalController; | ||
| return value === ABORT_CONTROLLER; | ||
| }, | ||
| parse: { | ||
| sync() { | ||
| return ABORT_CONTROLLER; | ||
| }, | ||
| async async() { | ||
| return await Promise.resolve(ABORT_CONTROLLER); | ||
| }, | ||
| stream() { | ||
| return undefined; | ||
| return ABORT_CONTROLLER; | ||
| }, | ||
| }, | ||
| serialize(_node) { | ||
| return 'new AbortController'; | ||
| serialize() { | ||
| return PROMISE_TO_ABORT_SIGNAL.toString(); | ||
| }, | ||
| deserialize(_node) { | ||
| return new AbortSignalController(); | ||
| deserialize() { | ||
| return PROMISE_TO_ABORT_SIGNAL; | ||
| }, | ||
| }); | ||
| interface AbortSignalAbortNode { | ||
| controller: SerovalNode; | ||
| reason: SerovalNode; | ||
| } | ||
| class AbortSignalAbort { | ||
| constructor( | ||
| public controller: AbortSignalController, | ||
| public reason: unknown, | ||
| ) {} | ||
| } | ||
| const AbortSignalAbortPlugin = createPlugin< | ||
| AbortSignalAbort, | ||
| AbortSignalAbortNode | ||
| const AbortSignalPlugin = /* @__PURE__ */ createPlugin< | ||
| AbortSignal, | ||
| { reason?: SerovalNode; controller?: SerovalNode; factory?: SerovalNode } | ||
| >({ | ||
| extends: [AbortSignalControllerPlugin], | ||
| tag: 'seroval-plugins/web/AbortSignalAbort', | ||
| test(value) { | ||
| return value instanceof AbortSignalAbort; | ||
| }, | ||
| parse: { | ||
| stream(value, ctx) { | ||
| return { | ||
| controller: ctx.parse(value.controller), | ||
| reason: ctx.parse(value.reason), | ||
| }; | ||
| }, | ||
| }, | ||
| serialize(node, ctx) { | ||
| return ( | ||
| ctx.serialize(node.controller) + | ||
| '.abort(' + | ||
| ctx.serialize(node.reason) + | ||
| ')' | ||
| ); | ||
| }, | ||
| deserialize(node, ctx) { | ||
| const controller = ctx.deserialize( | ||
| node.controller, | ||
| ) as AbortSignalController; | ||
| const reason = ctx.deserialize(node.reason); | ||
| controller.controller.abort(reason); | ||
| return new AbortSignalAbort(controller, reason); | ||
| }, | ||
| }); | ||
| const enum AbortSignalState { | ||
| Pending = 0, | ||
| Aborted = 1, | ||
| Streaming = 2, | ||
| } | ||
| type AbortSignalNode = | ||
| | { type: AbortSignalState.Pending } | ||
| | { type: AbortSignalState.Aborted; reason: SerovalNode } | ||
| | { type: AbortSignalState.Streaming; controller: SerovalNode }; | ||
| const AbortSignalPlugin = createPlugin<AbortSignal, AbortSignalNode>({ | ||
| tag: 'seroval-plugins/web/AbortSignal', | ||
| extends: [AbortSignalAbortPlugin], | ||
| extends: [AbortControllerFactoryPlugin], | ||
| test(value) { | ||
@@ -124,9 +75,6 @@ if (typeof AbortSignal === 'undefined') { | ||
| return { | ||
| type: AbortSignalState.Aborted, | ||
| reason: ctx.parse(value.reason), | ||
| }; | ||
| } | ||
| return { | ||
| type: AbortSignalState.Pending, | ||
| }; | ||
| return {}; | ||
| }, | ||
@@ -136,3 +84,2 @@ async async(value, ctx) { | ||
| return { | ||
| type: AbortSignalState.Aborted, | ||
| reason: await ctx.parse(value.reason), | ||
@@ -143,3 +90,2 @@ }; | ||
| return { | ||
| type: AbortSignalState.Aborted, | ||
| reason: await ctx.parse(result), | ||
@@ -151,26 +97,11 @@ }; | ||
| return { | ||
| type: AbortSignalState.Aborted, | ||
| reason: ctx.parse(value.reason), | ||
| }; | ||
| } | ||
| const controller = new AbortSignalController(); | ||
| ctx.pushPendingState(); | ||
| value.addEventListener( | ||
| 'abort', | ||
| () => { | ||
| const result = ctx.parseWithError( | ||
| new AbortSignalAbort(controller, value.reason), | ||
| ); | ||
| if (result) { | ||
| ctx.onParse(result); | ||
| } | ||
| ctx.popPendingState(); | ||
| }, | ||
| { once: true }, | ||
| ); | ||
| const promise = abortSignalToPromise(value); | ||
| return { | ||
| type: AbortSignalState.Streaming, | ||
| controller: ctx.parse(controller), | ||
| factory: ctx.parse(ABORT_CONTROLLER), | ||
| controller: ctx.parse(promise), | ||
| }; | ||
@@ -180,22 +111,25 @@ }, | ||
| serialize(node, ctx) { | ||
| if (node.type === AbortSignalState.Pending) { | ||
| return '(new AbortController).signal'; | ||
| } | ||
| if (node.type === AbortSignalState.Aborted) { | ||
| if (node.reason) { | ||
| return 'AbortSignal.abort(' + ctx.serialize(node.reason) + ')'; | ||
| } | ||
| return '(' + ctx.serialize(node.controller) + ').signal'; | ||
| if (node.controller && node.factory) { | ||
| return ( | ||
| '(' + | ||
| ctx.serialize(node.factory) + | ||
| ')(' + | ||
| ctx.serialize(node.controller) + | ||
| ').signal' | ||
| ); | ||
| } | ||
| return '(new AbortController).signal'; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| if (node.type === AbortSignalState.Pending) { | ||
| const controller = new AbortController(); | ||
| return controller.signal; | ||
| } | ||
| if (node.type === AbortSignalState.Aborted) { | ||
| if (node.reason) { | ||
| return AbortSignal.abort(ctx.deserialize(node.reason)); | ||
| } | ||
| const controller = ctx.deserialize( | ||
| node.controller, | ||
| ) as AbortSignalController; | ||
| return controller.controller.signal; | ||
| if (node.controller) { | ||
| return PROMISE_TO_ABORT_SIGNAL(ctx.deserialize(node.controller)).signal; | ||
| } | ||
| const controller = new AbortController(); | ||
| return controller.signal; | ||
| }, | ||
@@ -202,0 +136,0 @@ }); |
+2
-2
| import type { SerovalNode } from 'seroval'; | ||
| import { createPlugin } from 'seroval'; | ||
| interface BlobNode { | ||
| type BlobNode = { | ||
| type: SerovalNode; | ||
| buffer: SerovalNode; | ||
| } | ||
| }; | ||
@@ -9,0 +9,0 @@ const BlobPlugin = /* @__PURE__ */ createPlugin<Blob, BlobNode>({ |
@@ -13,6 +13,6 @@ import type { SerovalNode } from 'seroval'; | ||
| interface CustomEventNode { | ||
| type CustomEventNode = { | ||
| type: SerovalNode; | ||
| options: SerovalNode; | ||
| } | ||
| }; | ||
@@ -19,0 +19,0 @@ const CustomEventPlugin = /* @__PURE__ */ createPlugin< |
| import type { SerovalNode } from 'seroval'; | ||
| import { createPlugin } from 'seroval'; | ||
| interface DOMExceptionNode { | ||
| type DOMExceptionNode = { | ||
| name: SerovalNode; | ||
| message: SerovalNode; | ||
| } | ||
| }; | ||
@@ -9,0 +9,0 @@ const DOMExceptionPlugin = /* @__PURE__ */ createPlugin< |
+2
-2
@@ -12,6 +12,6 @@ import type { SerovalNode } from 'seroval'; | ||
| interface EventNode { | ||
| type EventNode = { | ||
| type: SerovalNode; | ||
| options: SerovalNode; | ||
| } | ||
| }; | ||
@@ -18,0 +18,0 @@ const EventPlugin = /* @__PURE__ */ createPlugin<Event, EventNode>({ |
+2
-2
| import type { SerovalNode } from 'seroval'; | ||
| import { createPlugin } from 'seroval'; | ||
| interface FileNode { | ||
| type FileNode = { | ||
| name: SerovalNode; | ||
| options: SerovalNode; | ||
| buffer: SerovalNode; | ||
| } | ||
| }; | ||
@@ -10,0 +10,0 @@ const FilePlugin = /* @__PURE__ */ createPlugin<File, FileNode>({ |
+6
-6
@@ -31,3 +31,3 @@ import type { SerovalNode } from 'seroval'; | ||
| const FormDataFactoryPlugin = /* @__PURE__ */ createPlugin<object, undefined>({ | ||
| const FormDataFactoryPlugin = /* @__PURE__ */ createPlugin<object, {}>({ | ||
| tag: 'seroval-plugins/web/FormDataFactory', | ||
@@ -39,9 +39,9 @@ test(value) { | ||
| sync() { | ||
| return undefined; | ||
| return FORM_DATA_FACTORY; | ||
| }, | ||
| async async() { | ||
| return await Promise.resolve(undefined); | ||
| return await Promise.resolve(FORM_DATA_FACTORY); | ||
| }, | ||
| stream() { | ||
| return undefined; | ||
| return FORM_DATA_FACTORY; | ||
| }, | ||
@@ -57,6 +57,6 @@ }, | ||
| interface FormDataNode { | ||
| type FormDataNode = { | ||
| factory: SerovalNode; | ||
| entries: SerovalNode; | ||
| } | ||
| }; | ||
@@ -63,0 +63,0 @@ const FormDataPlugin = /* @__PURE__ */ createPlugin<FormData, FormDataNode>({ |
+15
-6
@@ -13,3 +13,6 @@ import type { SerovalNode } from 'seroval'; | ||
| const HeadersPlugin = /* @__PURE__ */ createPlugin<Headers, SerovalNode>({ | ||
| const HeadersPlugin = /* @__PURE__ */ createPlugin< | ||
| Headers, | ||
| { value: SerovalNode } | ||
| >({ | ||
| tag: 'seroval-plugins/web/Headers', | ||
@@ -24,16 +27,22 @@ test(value) { | ||
| sync(value, ctx) { | ||
| return ctx.parse(convertHeaders(value)); | ||
| return { | ||
| value: ctx.parse(convertHeaders(value)), | ||
| }; | ||
| }, | ||
| async async(value, ctx) { | ||
| return await ctx.parse(convertHeaders(value)); | ||
| return { | ||
| value: await ctx.parse(convertHeaders(value)), | ||
| }; | ||
| }, | ||
| stream(value, ctx) { | ||
| return ctx.parse(convertHeaders(value)); | ||
| return { | ||
| value: ctx.parse(convertHeaders(value)), | ||
| }; | ||
| }, | ||
| }, | ||
| serialize(node, ctx) { | ||
| return 'new Headers(' + ctx.serialize(node) + ')'; | ||
| return 'new Headers(' + ctx.serialize(node.value) + ')'; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| return new Headers(ctx.deserialize(node) as HeadersInit); | ||
| return new Headers(ctx.deserialize(node.value) as HeadersInit); | ||
| }, | ||
@@ -40,0 +49,0 @@ }); |
| import type { SerovalNode } from 'seroval'; | ||
| import { createPlugin } from 'seroval'; | ||
| interface ImageDataNode { | ||
| type ImageDataNode = { | ||
| data: SerovalNode; | ||
@@ -9,3 +9,3 @@ width: SerovalNode; | ||
| options: SerovalNode; | ||
| } | ||
| }; | ||
@@ -12,0 +12,0 @@ const ImageDataPlugin = /* @__PURE__ */ createPlugin<ImageData, ImageDataNode>({ |
+30
-29
@@ -6,29 +6,30 @@ import type { SerovalNode, Stream } from 'seroval'; | ||
| const READABLE_STREAM_FACTORY_CONSTRUCTOR = (stream: Stream<unknown>) => new ReadableStream({ | ||
| start: (controller) => { | ||
| stream.on({ | ||
| next: (value) => { | ||
| try { | ||
| controller.enqueue(value) | ||
| } catch (_error) { | ||
| // no-op | ||
| } | ||
| }, | ||
| throw: (value) => { | ||
| controller.error(value); | ||
| }, | ||
| return: () => { | ||
| try { | ||
| controller.close(); | ||
| } catch (_error) { | ||
| // no-op | ||
| } | ||
| }, | ||
| }) | ||
| }, | ||
| }); | ||
| const READABLE_STREAM_FACTORY_CONSTRUCTOR = (stream: Stream<unknown>) => | ||
| new ReadableStream({ | ||
| start: controller => { | ||
| stream.on({ | ||
| next: value => { | ||
| try { | ||
| controller.enqueue(value); | ||
| } catch (_error) { | ||
| // no-op | ||
| } | ||
| }, | ||
| throw: value => { | ||
| controller.error(value); | ||
| }, | ||
| return: () => { | ||
| try { | ||
| controller.close(); | ||
| } catch (_error) { | ||
| // no-op | ||
| } | ||
| }, | ||
| }); | ||
| }, | ||
| }); | ||
| const ReadableStreamFactoryPlugin = /* @__PURE__ */ createPlugin< | ||
| object, | ||
| undefined | ||
| {} | ||
| >({ | ||
@@ -41,9 +42,9 @@ tag: 'seroval-plugins/web/ReadableStreamFactory', | ||
| sync() { | ||
| return undefined; | ||
| return READABLE_STREAM_FACTORY; | ||
| }, | ||
| async async() { | ||
| return await Promise.resolve(undefined); | ||
| return await Promise.resolve(READABLE_STREAM_FACTORY); | ||
| }, | ||
| stream() { | ||
| return undefined; | ||
| return READABLE_STREAM_FACTORY; | ||
| }, | ||
@@ -85,6 +86,6 @@ }, | ||
| interface ReadableStreamNode { | ||
| type ReadableStreamNode = { | ||
| factory: SerovalNode; | ||
| stream: SerovalNode; | ||
| } | ||
| }; | ||
@@ -91,0 +92,0 @@ const ReadableStreamPlugin = /* @__PURE__ */ createPlugin< |
+3
-3
| import type { SerovalNode } from 'seroval'; | ||
| import { createPlugin } from 'seroval'; | ||
| import HeadersPlugin from './headers'; | ||
| import ReadableStreamPlugin from './readable-stream'; | ||
| import HeadersPlugin from './headers'; | ||
@@ -25,6 +25,6 @@ function createRequestOptions( | ||
| interface RequestNode { | ||
| type RequestNode = { | ||
| url: SerovalNode; | ||
| options: SerovalNode; | ||
| } | ||
| }; | ||
@@ -31,0 +31,0 @@ const RequestPlugin = /* @__PURE__ */ createPlugin<Request, RequestNode>({ |
+3
-3
| import type { SerovalNode } from 'seroval'; | ||
| import { createPlugin } from 'seroval'; | ||
| import HeadersPlugin from './headers'; | ||
| import ReadableStreamPlugin from './readable-stream'; | ||
| import HeadersPlugin from './headers'; | ||
@@ -14,6 +14,6 @@ function createResponseOptions(current: Response): ResponseInit { | ||
| interface ResponseNode { | ||
| type ResponseNode = { | ||
| body: SerovalNode; | ||
| options: SerovalNode; | ||
| } | ||
| }; | ||
@@ -20,0 +20,0 @@ const ResponsePlugin = /* @__PURE__ */ createPlugin<Response, ResponseNode>({ |
@@ -6,3 +6,3 @@ import type { SerovalNode } from 'seroval'; | ||
| URLSearchParams, | ||
| SerovalNode | ||
| { value: SerovalNode } | ||
| >({ | ||
@@ -18,16 +18,22 @@ tag: 'seroval-plugins/web/URLSearchParams', | ||
| sync(value, ctx) { | ||
| return ctx.parse(value.toString()); | ||
| return { | ||
| value: ctx.parse(value.toString()), | ||
| }; | ||
| }, | ||
| async async(value, ctx) { | ||
| return await ctx.parse(value.toString()); | ||
| return { | ||
| value: await ctx.parse(value.toString()), | ||
| }; | ||
| }, | ||
| stream(value, ctx) { | ||
| return ctx.parse(value.toString()); | ||
| return { | ||
| value: ctx.parse(value.toString()), | ||
| }; | ||
| }, | ||
| }, | ||
| serialize(node, ctx) { | ||
| return 'new URLSearchParams(' + ctx.serialize(node) + ')'; | ||
| return 'new URLSearchParams(' + ctx.serialize(node.value) + ')'; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| return new URLSearchParams(ctx.deserialize(node) as string); | ||
| return new URLSearchParams(ctx.deserialize(node.value) as string); | ||
| }, | ||
@@ -34,0 +40,0 @@ }); |
+12
-6
| import type { SerovalNode } from 'seroval'; | ||
| import { createPlugin } from 'seroval'; | ||
| const URLPlugin = /* @__PURE__ */ createPlugin<URL, SerovalNode>({ | ||
| const URLPlugin = /* @__PURE__ */ createPlugin<URL, { value: SerovalNode }>({ | ||
| tag: 'seroval-plugins/web/URL', | ||
@@ -14,16 +14,22 @@ test(value) { | ||
| sync(value, ctx) { | ||
| return ctx.parse(value.href); | ||
| return { | ||
| value: ctx.parse(value.href), | ||
| }; | ||
| }, | ||
| async async(value, ctx) { | ||
| return await ctx.parse(value.href); | ||
| return { | ||
| value: await ctx.parse(value.href), | ||
| }; | ||
| }, | ||
| stream(value, ctx) { | ||
| return ctx.parse(value.href); | ||
| return { | ||
| value: ctx.parse(value.href), | ||
| }; | ||
| }, | ||
| }, | ||
| serialize(node, ctx) { | ||
| return 'new URL(' + ctx.serialize(node) + ')'; | ||
| return 'new URL(' + ctx.serialize(node.value) + ')'; | ||
| }, | ||
| deserialize(node, ctx) { | ||
| return new URL(ctx.deserialize(node) as string); | ||
| return new URL(ctx.deserialize(node.value) as string); | ||
| }, | ||
@@ -30,0 +36,0 @@ }); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
177805
-4.06%2653
-3.7%