@t-req/core 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +37 -2
- package/dist/config/index.js +6 -6
- package/dist/config/index.js.map +5 -5
- package/dist/engine/compile-request.d.ts +19 -0
- package/dist/engine/compile-request.d.ts.map +1 -0
- package/dist/engine/engine-utils.d.ts +13 -0
- package/dist/engine/engine-utils.d.ts.map +1 -0
- package/dist/engine/engine.d.ts +11 -1
- package/dist/engine/engine.d.ts.map +1 -1
- package/dist/engine/index.js +6 -4
- package/dist/engine/index.js.map +12 -6
- package/dist/engine/request-pipeline.d.ts +22 -0
- package/dist/engine/request-pipeline.d.ts.map +1 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -7
- package/dist/index.js.map +16 -10
- package/dist/parser.d.ts +17 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/plugin/define.d.ts +3 -1
- package/dist/plugin/define.d.ts.map +1 -1
- package/dist/plugin/index.d.ts +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +4 -4
- package/dist/plugin/index.js.map +5 -5
- package/dist/plugin/loader.d.ts.map +1 -1
- package/dist/plugin/manager.d.ts +29 -1
- package/dist/plugin/manager.d.ts.map +1 -1
- package/dist/plugin/types.d.ts +84 -0
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/protocols/http.d.ts +7 -0
- package/dist/protocols/http.d.ts.map +1 -0
- package/dist/protocols/index.d.ts +6 -0
- package/dist/protocols/index.d.ts.map +1 -0
- package/dist/protocols/registry.d.ts +24 -0
- package/dist/protocols/registry.d.ts.map +1 -0
- package/dist/protocols/sse.d.ts +26 -0
- package/dist/protocols/sse.d.ts.map +1 -0
- package/dist/protocols/types.d.ts +33 -0
- package/dist/protocols/types.d.ts.map +1 -0
- package/dist/server-client.d.ts.map +1 -1
- package/dist/types.d.ts +92 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IO } from '../runtime/types';
|
|
2
|
+
import type { ExecuteRequest, FormField } from '../types';
|
|
3
|
+
export declare function compileExecuteRequest(interpolated: {
|
|
4
|
+
method: string;
|
|
5
|
+
url: string;
|
|
6
|
+
headers: Record<string, string>;
|
|
7
|
+
body?: string;
|
|
8
|
+
bodyFile?: {
|
|
9
|
+
path: string;
|
|
10
|
+
};
|
|
11
|
+
formData?: FormField[];
|
|
12
|
+
}, ctx: {
|
|
13
|
+
basePath: string;
|
|
14
|
+
io?: IO;
|
|
15
|
+
headerDefaults?: Record<string, string>;
|
|
16
|
+
}): Promise<{
|
|
17
|
+
executeRequest: ExecuteRequest;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=compile-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-request.d.ts","sourceRoot":"","sources":["../../src/engine/compile-request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1D,wBAAsB,qBAAqB,CACzC,YAAY,EAAE;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;CACxB,EACD,GAAG,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC1E,OAAO,CAAC;IAAE,cAAc,EAAE,cAAc,CAAA;CAAE,CAAC,CAiD7C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { EngineEvent, EventSink, IO } from '../runtime/types';
|
|
2
|
+
export declare function emit(onEvent: EventSink | undefined, event: EngineEvent): void;
|
|
3
|
+
export declare function firstOrThrow<T>(arr: T[], ctx: string): T;
|
|
4
|
+
export declare function dirnameFromPath(p: string): string;
|
|
5
|
+
export declare function isAbsolutePath(p: string): boolean;
|
|
6
|
+
export declare function joinWithSep(a: string, b: string): string;
|
|
7
|
+
export declare function getFileBasePath(filePath: string, io?: IO): string;
|
|
8
|
+
export declare function withCookieHeader(headers: Record<string, string>, cookie: string | undefined): Record<string, string>;
|
|
9
|
+
/**
|
|
10
|
+
* Delay for retry.
|
|
11
|
+
*/
|
|
12
|
+
export declare function delay(ms: number): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=engine-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-utils.d.ts","sourceRoot":"","sources":["../../src/engine/engine-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEnE,wBAAgB,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAE7E;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAMxD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAKjD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,CASjE;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
|
package/dist/engine/engine.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { parse } from '../parser';
|
|
2
2
|
import type { PluginManager } from '../plugin/manager';
|
|
3
3
|
import type { CookieStore, EventSink, IO, Transport } from '../runtime/types';
|
|
4
|
-
import type { Resolver } from '../types';
|
|
4
|
+
import type { Protocol as ProtocolType, Resolver, StreamResponse } from '../types';
|
|
5
|
+
import '../protocols/http';
|
|
6
|
+
import '../protocols/sse';
|
|
5
7
|
export type EngineConfig = {
|
|
6
8
|
transport?: Transport;
|
|
7
9
|
io?: IO;
|
|
@@ -20,11 +22,19 @@ export type EngineRunOptions = {
|
|
|
20
22
|
validateSSL?: boolean;
|
|
21
23
|
proxy?: string;
|
|
22
24
|
basePath?: string;
|
|
25
|
+
/** Force specific protocol (overrides auto-detection) */
|
|
26
|
+
protocol?: ProtocolType;
|
|
27
|
+
/** Last-Event-ID for SSE resumption */
|
|
28
|
+
lastEventId?: string;
|
|
23
29
|
};
|
|
24
30
|
export type Engine = {
|
|
25
31
|
parseString: (httpText: string) => ReturnType<typeof parse>;
|
|
26
32
|
runString: (httpText: string, options?: EngineRunOptions) => Promise<Response>;
|
|
27
33
|
runFile: (path: string, options?: EngineRunOptions) => Promise<Response>;
|
|
34
|
+
/** Execute a streaming request (SSE, WebSocket, etc.) from string content */
|
|
35
|
+
streamString: (httpText: string, options?: EngineRunOptions) => Promise<StreamResponse>;
|
|
36
|
+
/** Execute a streaming request (SSE, WebSocket, etc.) from a file */
|
|
37
|
+
streamFile: (path: string, options?: EngineRunOptions) => Promise<StreamResponse>;
|
|
28
38
|
};
|
|
29
39
|
export declare function createEngine(config?: EngineConfig): Engine;
|
|
30
40
|
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAA0C,MAAM,WAAW,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAavD,OAAO,KAAK,EAAE,WAAW,EAAe,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,KAAK,EAGV,QAAQ,IAAI,YAAY,EACxB,QAAQ,EACR,cAAc,EACf,MAAM,UAAU,CAAC;AAMlB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAE1B,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,EAAE,CAAC,EAAE,EAAE,CAAC;IACR,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;IAC5D,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/E,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzE,6EAA6E;IAC7E,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACxF,qEAAqE;IACrE,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACnF,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,GAAE,YAAiB,GAAG,MAAM,CAuX9D"}
|
package/dist/engine/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import{createRequire as _G}from"node:module";var jG=Object.defineProperty;var uG=(G,K)=>{for(var Q in K)jG(G,Q,{get:K[Q],enumerable:!0,configurable:!0,set:(Z)=>K[Q]=()=>Z})};var pG=_G(import.meta.url);function i(G){throw Error(`${G} is not supported by this transport. Provide a transport that supports it.`)}function o(G=fetch){return{capabilities:{proxy:!1,validateSSL:!1},async fetch(K,Q,Z){if(Z.proxy)i("proxy");if(Z.validateSSL===!1)i("validateSSL=false");return await G(K,Q)}}}function WG(){return typeof globalThis.Bun<"u"}function v(){if(!WG())return o(fetch);return{capabilities:{proxy:!0,validateSSL:!0},async fetch(G,K,Q){let Z={...K??{}};if(Q.proxy!==void 0)Z.proxy=Q.proxy;if(Q.validateSSL===!1)Z.tls={rejectUnauthorized:!1};return await fetch(G,Z)}}}function E(G){let K={...G},Q={when(Z,$){if(Z)K={...K,...$};return Q},ifDefined(Z,$){if($!==void 0)K={...K,[Z]:$};return Q},build(){return K}};return Q}function zG(G,K){return K!==void 0&&!["GET","HEAD"].includes(G.toUpperCase())}function VG(G,K){let Q=zG(G.method,G.body)&&G.body!==void 0;return E({method:G.method,redirect:K.followRedirects?"follow":"manual",signal:K.signal}).ifDefined("headers",G.headers).ifDefined("body",Q?G.body:void 0).build()}function AG(G){if(G.provided)return{signal:G.provided,isInternalTimeout:!1,cleanup:()=>{}};let K=new AbortController,Q=setTimeout(()=>K.abort(),G.timeout);return{signal:K.signal,isInternalTimeout:!0,cleanup:()=>clearTimeout(Q)}}function DG(G,K){if(G instanceof Error&&G.name==="AbortError"){if(K.isInternalTimeout)return Error(`Request timeout after ${K.timeout}ms`)}return G instanceof Error?G:Error(String(G))}async function s(G,K,Q){let Z=K.timeout??30000,$=E({timeout:Z}).ifDefined("provided",K.signal).build(),{signal:X,isInternalTimeout:Y,cleanup:H}=AG($),J=E({followRedirects:K.followRedirects??!0,signal:X}).build(),z=VG(G,J);try{let w=E({}).ifDefined("proxy",K.proxy).ifDefined("validateSSL",K.validateSSL).build();return await Q.fetch(G.url,z,w)}catch(w){throw DG(w,{timeout:Z,isInternalTimeout:Y})}finally{H()}}var NG={".json":"application/json",".xml":"application/xml",".txt":"text/plain",".html":"text/html",".htm":"text/html",".css":"text/css",".js":"application/javascript",".mjs":"application/javascript",".ts":"application/typescript",".csv":"text/csv",".md":"text/markdown",".yaml":"text/yaml",".yml":"text/yaml",".svg":"image/svg+xml",".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".gif":"image/gif",".webp":"image/webp",".ico":"image/x-icon",".bmp":"image/bmp",".tiff":"image/tiff",".tif":"image/tiff",".pdf":"application/pdf",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".zip":"application/zip",".gz":"application/gzip",".tar":"application/x-tar",".rar":"application/vnd.rar",".7z":"application/x-7z-compressed",".mp3":"audio/mpeg",".wav":"audio/wav",".ogg":"audio/ogg",".m4a":"audio/mp4",".mp4":"video/mp4",".webm":"video/webm",".avi":"video/x-msvideo",".mov":"video/quicktime",".wasm":"application/wasm",".bin":"application/octet-stream",".exe":"application/octet-stream",".dll":"application/octet-stream",".so":"application/octet-stream",".dylib":"application/octet-stream"},CG=new Set(["application/json","application/xml","application/javascript","application/typescript","text/plain","text/html","text/css","text/csv","text/xml","text/markdown","text/yaml","image/svg+xml"]);function wG(G){let K=FG(G).toLowerCase();return NG[K]??"application/octet-stream"}function SG(G){if(G.startsWith("text/"))return!1;if(CG.has(G))return!1;return!0}function m(G){return G.includes("\\")?"\\":"/"}function b(G){return G.split(/[\\/]+/).filter(Boolean)}function EG(G){if(G.startsWith("/")||G.startsWith("\\"))return!0;if(/^[A-Za-z]:[\\/]/.test(G))return!0;if(G.startsWith("\\\\"))return!0;return!1}function O(G,K){let Q=[];for(let Z of K){if(!Z||Z===".")continue;if(Z===".."){Q.pop();continue}Q.push(Z)}return(G==="\\"?"\\":"/")+Q.join(G)}function IG(G,K){let Q=m(G),Z=/^[A-Za-z]:$/.test(G),X=G.match(/^([A-Za-z]:)[\\/]?/)?.[1],Y=b(G),H=b(K);if(X){let J=O(Q,[...Y.slice(1),...H]);return`${X}${J}`}if(Z){let J=O(Q,H);return`${G}${J}`}return O(Q,[...Y,...H])}function LG(G){if(G==="")return"/";let K=m(G),Z=G.match(/^([A-Za-z]:)[\\/]?/)?.[1],$=b(G);if(Z){let X=O(K,$.slice(1));return`${Z}${X}`}return O(K,$)}function FG(G){let K=MG(G),Q=K.lastIndexOf(".");if(Q<=0)return"";return K.slice(Q)}function MG(G){let K=G.split(/[\\/]/);return K[K.length-1]??""}function RG(G,K){if(EG(G))throw Error(`Absolute paths not allowed: ${G}`);let Q=IG(K,G),Z=LG(K),$=m(Z);if(Q!==Z&&!Q.startsWith(Z+$))throw Error(`Path escapes base directory: ${G}`);return Q}async function x(G,K={}){let Q=K.basePath??K.io?.cwd()??globalThis.process?.cwd?.()??".",Z=RG(G,Q),$=wG(G),X=SG($),Y;if(K.io){if(!await K.io.exists(Z))throw Error(`File not found: ${G}`);Y=X?await K.io.readBinary(Z):await K.io.readText(Z)}else if(typeof globalThis.Bun<"u"){let J=globalThis.Bun.file(Z);if(!await J.exists())throw Error(`File not found: ${G}`);Y=X?await J.arrayBuffer():await J.text()}else throw Error("No IO adapter provided. Provide `options.io` (Node/Bun/Tauri) to load file bodies.");return{content:Y,isBinary:X,mimeType:$}}function a(G){return G.some((K)=>K.isFile)}async function r(G,K={}){let Q=new FormData,Z=K.basePath??K.io?.cwd()??globalThis.process?.cwd?.()??".";for(let $ of G)if($.isFile&&$.path){let X=await x($.path,K.io?{basePath:Z,io:K.io}:{basePath:Z}),Y=$.filename??K.io?.path.basename($.path)??TG($.path),H=new Blob([X.content],{type:X.mimeType});Q.append($.name,H,Y)}else Q.append($.name,$.value);return Q}function TG(G){let K=G.split(/[\\/]/);return K[K.length-1]??""}function t(G){let K=new URLSearchParams;for(let Q of G){if(Q.isFile)continue;K.append(Q.name,Q.value)}return K}function BG(G){return/^[A-Za-z0-9_]+$/.test(G)}function d(G){let K=[],Q=0,Z=0;while(Q<G.length){let $=G[Q],X=G[Q+1];if($==="{"&&X==="{"){if(Q>Z)K.push({type:"text",value:G.slice(Z,Q)});let Y=Q;Q+=2;let H=1,J="";while(Q<G.length){let w=G[Q],S=G[Q+1];if(w==="{"&&S==="{"){H++,J+="{{",Q+=2;continue}if(w==="}"&&S==="}"){if(H--,H===0){Q+=2;break}J+="}}",Q+=2;continue}J+=w,Q++}if(H!==0)throw Error('Unterminated interpolation: missing "}}"');let z=G.slice(Y,Q);K.push({type:"expr",expression:J,raw:z}),Z=Q;continue}Q++}if(Z<G.length)K.push({type:"text",value:G.slice(Z)});return K}function u(G,K){let Q=K.split("."),Z=G;for(let $ of Q){if(Z===null||Z===void 0)return;if(typeof Z!=="object")return;Z=Z[$]}return Z}function l(G){let K=G.trim();if(!K.startsWith("$"))return null;if(!K.endsWith(")"))return null;let Q=K.indexOf("(");if(Q===-1)return null;let Z=K.slice(1,Q).trim();if(!Z||!BG(Z))return null;let $=K.slice(Q+1,-1);return{resolverKey:`$${Z}`,argText:$}}function kG(G,K,Q){let Z=d(G);if(Z.length===1&&Z[0]?.type==="text")return G;let $="";for(let X of Z){if(X.type==="text"){$+=X.value;continue}let Y=X.expression.trim();if(l(Y))throw Error(`Resolver calls are not allowed inside resolver args: ${X.raw}`);let H=u(K,Y);if(H===void 0){if(Q==="throw")throw Error(`Undefined variable: ${Y}`);$+=Q==="keep"?X.raw:"";continue}$+=String(H)}return $}function e(G,K,Q){let Z=kG(G,K,Q).trim();if(!Z)return[];try{let $=JSON.parse(Z);if(Array.isArray($))return $.map((X)=>String(X))}catch{}return[Z]}function OG(G,K,Q={}){let{resolvers:Z={},undefinedBehavior:$="throw"}=Q,X=d(G);if(X.length===1&&X[0]?.type==="text")return G;let Y="";for(let H of X){if(H.type==="text"){Y+=H.value;continue}let J=l(H.expression);if(J){let S=Z[J.resolverKey];if(S){let N=e(J.argText,K,$),L=S(...N);if(L instanceof Promise)throw Error(`Resolver ${J.resolverKey} returned a Promise. Use createInterpolator() for async resolvers.`);Y+=String(L);continue}if($==="throw")throw Error(`Unknown resolver: ${J.resolverKey}`);Y+=$==="keep"?H.raw:"";continue}let z=H.expression.trim(),w=u(K,z);if(w===void 0){if($==="throw")throw Error(`Undefined variable: ${z}`);Y+=$==="keep"?H.raw:"";continue}Y+=String(w)}return Y}async function gG(G,K,Q={}){let{resolvers:Z={},undefinedBehavior:$="throw"}=Q,X=d(G);if(X.length===1&&X[0]?.type==="text")return G;let Y="";for(let H of X){if(H.type==="text"){Y+=H.value;continue}let J=l(H.expression);if(J){let S=Z[J.resolverKey];if(S){let N=e(J.argText,K,$),L=await S(...N);Y+=String(L);continue}if($==="throw")throw Error(`Unknown resolver: ${J.resolverKey}`);Y+=$==="keep"?H.raw:"";continue}let z=H.expression.trim(),w=u(K,z);if(w===void 0){if($==="throw")throw Error(`Undefined variable: ${z}`);Y+=$==="keep"?H.raw:"";continue}Y+=String(w)}return Y}function c(G,K,Q){if(typeof G==="string")return OG(G,K,Q);if(Array.isArray(G))return G.map((Z)=>c(Z,K,Q));if(G!==null&&typeof G==="object"){let Z={};for(let[$,X]of Object.entries(G))Z[$]=c(X,K,Q);return Z}return G}async function h(G,K,Q){if(typeof G==="string")return await gG(G,K,Q);if(Array.isArray(G))return await Promise.all(G.map((Z)=>h(Z,K,Q)));if(G!==null&&typeof G==="object"){let Z={},$=Object.entries(G),X=await Promise.all($.map(async([Y,H])=>[Y,await h(H,K,Q)]));for(let[Y,H]of X)Z[Y]=H;return Z}return G}function ZK(G,K,Q={}){return c(G,K,Q)}function GG(G={}){return{async interpolate(K,Q){return h(K,Q,G)}}}var KG=/^([^=]+?)\s*=\s*(.*)$/;function PG(G,K){if(K&&!K.includes("form-data")&&!K.includes("x-www-form-urlencoded"))return!1;let Q=G.split(/\r?\n/).filter((Z)=>Z.trim());if(Q.length===0)return!1;if(Q.length===1&&Q[0]?.includes("&"))return!1;return Q.every((Z)=>KG.test(Z))}function yG(G){let K=[],Q=G.split(/\r?\n/).filter((Z)=>Z.trim());for(let Z of Q){let $=Z.match(KG);if(!$)continue;let X=$[1],Y=$[2];if(!X)continue;let H=X.trim(),J=(Y??"").trim();if(J.startsWith("@./")||J.startsWith("@{{")){J=J.slice(1);let w=J,S,N=J.indexOf(" | ");if(N!==-1)w=J.slice(0,N).trim(),S=J.slice(N+3).trim();K.push(E({name:H,value:"",isFile:!0,path:w}).ifDefined("filename",S).build())}else K.push({name:H,value:J,isFile:!1})}return K}function g(G){let K=[],Q=G.split(/\r?\n/),Z=[],$={lines:[]};for(let X of Q){let Y=X.match(/^###\s*(.*)$/);if(Y){if($.lines.length>0||Z.length===0)Z.push($);let H=Y[1]?.trim();$=E({lines:[]}).ifDefined("name",H||void 0).build()}else $.lines.push(X)}Z.push($);for(let X of Z){if(X.lines.length===0&&!X.name)continue;let Y=X.lines.join(`
|
|
2
|
-
`),
|
|
3
|
-
`)}let
|
|
1
|
+
import{createRequire as _0}from"node:module";var H0=Object.defineProperty;var a0=($,Z)=>{for(var Q in Z)H0($,Q,{get:Z[Q],enumerable:!0,configurable:!0,set:(G)=>Z[Q]=()=>G})};var r0=_0(import.meta.url);function r($){throw Error(`${$} is not supported by this transport. Provide a transport that supports it.`)}function t($=fetch){return{capabilities:{proxy:!1,validateSSL:!1},async fetch(Z,Q,G){if(G.proxy)r("proxy");if(G.validateSSL===!1)r("validateSSL=false");return await $(Z,Q)}}}function z0(){return typeof globalThis.Bun<"u"}function h(){if(!z0())return t(fetch);return{capabilities:{proxy:!0,validateSSL:!0},async fetch($,Z,Q){let G={...Z??{}};if(Q.proxy!==void 0)G.proxy=Q.proxy;if(Q.validateSSL===!1)G.tls={rejectUnauthorized:!1};return await fetch($,G)}}}function S($){let Z={...$},Q={when(G,K){if(G)Z={...Z,...K};return Q},ifDefined(G,K){if(K!==void 0)Z={...Z,[G]:K};return Q},build(){return Z}};return Q}function A0($,Z){return Z!==void 0&&!["GET","HEAD"].includes($.toUpperCase())}function N0($,Z){let Q=A0($.method,$.body)&&$.body!==void 0;return S({method:$.method,redirect:Z.followRedirects?"follow":"manual",signal:Z.signal}).ifDefined("headers",$.headers).ifDefined("body",Q?$.body:void 0).build()}function D0($){if($.provided)return{signal:$.provided,isInternalTimeout:!1,cleanup:()=>{}};let Z=new AbortController,Q=setTimeout(()=>Z.abort(),$.timeout);return{signal:Z.signal,isInternalTimeout:!0,cleanup:()=>clearTimeout(Q)}}function C0($,Z){if($ instanceof Error&&$.name==="AbortError"){if(Z.isInternalTimeout)return Error(`Request timeout after ${Z.timeout}ms`)}return $ instanceof Error?$:Error(String($))}async function f($,Z,Q){let G=Z.timeout??30000,K=S({timeout:G}).ifDefined("provided",Z.signal).build(),{signal:Y,isInternalTimeout:W,cleanup:U}=D0(K),j=S({followRedirects:Z.followRedirects??!0,signal:Y}).build(),H=N0($,j);try{let D=S({}).ifDefined("proxy",Z.proxy).ifDefined("validateSSL",Z.validateSSL).build();return await Q.fetch($.url,H,D)}catch(D){throw C0(D,{timeout:G,isInternalTimeout:W})}finally{U()}}function I0($){return/^[A-Za-z0-9_]+$/.test($)}function u($){let Z=[],Q=0,G=0;while(Q<$.length){let K=$[Q],Y=$[Q+1];if(K==="{"&&Y==="{"){if(Q>G)Z.push({type:"text",value:$.slice(G,Q)});let W=Q;Q+=2;let U=1,j="";while(Q<$.length){let D=$[Q],A=$[Q+1];if(D==="{"&&A==="{"){U++,j+="{{",Q+=2;continue}if(D==="}"&&A==="}"){if(U--,U===0){Q+=2;break}j+="}}",Q+=2;continue}j+=D,Q++}if(U!==0)throw Error('Unterminated interpolation: missing "}}"');let H=$.slice(W,Q);Z.push({type:"expr",expression:j,raw:H}),G=Q;continue}Q++}if(G<$.length)Z.push({type:"text",value:$.slice(G)});return Z}function l($,Z){let Q=Z.split("."),G=$;for(let K of Q){if(G===null||G===void 0)return;if(typeof G!=="object")return;G=G[K]}return G}function n($){let Z=$.trim();if(!Z.startsWith("$"))return null;if(!Z.endsWith(")"))return null;let Q=Z.indexOf("(");if(Q===-1)return null;let G=Z.slice(1,Q).trim();if(!G||!I0(G))return null;let K=Z.slice(Q+1,-1);return{resolverKey:`$${G}`,argText:K}}function E0($,Z,Q){let G=u($);if(G.length===1&&G[0]?.type==="text")return $;let K="";for(let Y of G){if(Y.type==="text"){K+=Y.value;continue}let W=Y.expression.trim();if(n(W))throw Error(`Resolver calls are not allowed inside resolver args: ${Y.raw}`);let U=l(Z,W);if(U===void 0){if(Q==="throw")throw Error(`Undefined variable: ${W}`);K+=Q==="keep"?Y.raw:"";continue}K+=String(U)}return K}function e($,Z,Q){let G=E0($,Z,Q).trim();if(!G)return[];try{let K=JSON.parse(G);if(Array.isArray(K))return K.map((Y)=>String(Y))}catch{}return[G]}function F0($,Z,Q={}){let{resolvers:G={},undefinedBehavior:K="throw"}=Q,Y=u($);if(Y.length===1&&Y[0]?.type==="text")return $;let W="";for(let U of Y){if(U.type==="text"){W+=U.value;continue}let j=n(U.expression);if(j){let A=G[j.resolverKey];if(A){let T=e(j.argText,Z,K),V=A(...T);if(V instanceof Promise)throw Error(`Resolver ${j.resolverKey} returned a Promise. Use createInterpolator() for async resolvers.`);W+=String(V);continue}if(K==="throw")throw Error(`Unknown resolver: ${j.resolverKey}`);W+=K==="keep"?U.raw:"";continue}let H=U.expression.trim(),D=l(Z,H);if(D===void 0){if(K==="throw")throw Error(`Undefined variable: ${H}`);W+=K==="keep"?U.raw:"";continue}W+=String(D)}return W}async function V0($,Z,Q={}){let{resolvers:G={},undefinedBehavior:K="throw"}=Q,Y=u($);if(Y.length===1&&Y[0]?.type==="text")return $;let W="";for(let U of Y){if(U.type==="text"){W+=U.value;continue}let j=n(U.expression);if(j){let A=G[j.resolverKey];if(A){let T=e(j.argText,Z,K),V=await A(...T);W+=String(V);continue}if(K==="throw")throw Error(`Unknown resolver: ${j.resolverKey}`);W+=K==="keep"?U.raw:"";continue}let H=U.expression.trim(),D=l(Z,H);if(D===void 0){if(K==="throw")throw Error(`Undefined variable: ${H}`);W+=K==="keep"?U.raw:"";continue}W+=String(D)}return W}function c($,Z,Q){if(typeof $==="string")return F0($,Z,Q);if(Array.isArray($))return $.map((G)=>c(G,Z,Q));if($!==null&&typeof $==="object"){let G={};for(let[K,Y]of Object.entries($))G[K]=c(Y,Z,Q);return G}return $}async function d($,Z,Q){if(typeof $==="string")return await V0($,Z,Q);if(Array.isArray($))return await Promise.all($.map((G)=>d(G,Z,Q)));if($!==null&&typeof $==="object"){let G={},K=Object.entries($),Y=await Promise.all(K.map(async([W,U])=>[W,await d(U,Z,Q)]));for(let[W,U]of Y)G[W]=U;return G}return $}function Y$($,Z,Q={}){return c($,Z,Q)}function $0($={}){return{async interpolate(Z,Q){return d(Z,Q,$)}}}var Z0=/^([^=]+?)\s*=\s*(.*)$/,S0=/^@([A-Za-z_][\w.]*)\s*=\s*(.+)$/;function L0($,Z){if(Z&&!Z.includes("form-data")&&!Z.includes("x-www-form-urlencoded"))return!1;let Q=$.split(/\r?\n/).filter((G)=>G.trim());if(Q.length===0)return!1;if(Q.length===1&&Q[0]?.includes("&"))return!1;return Q.every((G)=>Z0.test(G))}function T0($){let Z=[],Q=$.split(/\r?\n/).filter((G)=>G.trim());for(let G of Q){let K=G.match(Z0);if(!K)continue;let Y=K[1],W=K[2];if(!Y)continue;let U=Y.trim(),j=(W??"").trim();if(j.startsWith("@./")||j.startsWith("@{{")){j=j.slice(1);let D=j,A,T=j.indexOf(" | ");if(T!==-1)D=j.slice(0,T).trim(),A=j.slice(T+3).trim();Z.push(S({name:U,value:"",isFile:!0,path:D}).ifDefined("filename",A).build())}else Z.push({name:U,value:j,isFile:!1})}return Z}function R0($,Z){if(Z.sse!==void 0){let G={type:"sse"};if(Z.timeout){let K=parseInt(Z.timeout,10);if(!Number.isNaN(K))G.timeout=K}if(Z.lastEventId)G.lastEventId=Z.lastEventId;return{protocol:"sse",protocolOptions:G}}if(($.Accept||$.accept)?.includes("text/event-stream"))return{protocol:"sse",protocolOptions:{type:"sse"}};return{protocol:"http"}}function O($){let Z=[],Q=$.split(/\r?\n/),G=[],K={lines:[]};for(let Y of Q){let W=Y.match(/^###\s*(.*)$/);if(W){if(K.lines.length>0||G.length===0)G.push(K);let U=W[1]?.trim();K=S({lines:[]}).ifDefined("name",U||void 0).build()}else K.lines.push(Y)}G.push(K);for(let Y of G){if(Y.lines.length===0&&!Y.name)continue;let W=Y.lines.join(`
|
|
2
|
+
`),U=B0(W,Y.name);if(U)Z.push(U)}return Z}function B0($,Z){let Q=$.split(/\r?\n/),G={},K=[],Y=Z,W="",U="",j={},H,D,A,T=!1,V=[],L=!1;for(let N=0;N<Q.length;N++){let I=Q[N];if(I===void 0)continue;let C=I.trim();if(!L&&C==="")continue;if(!L&&(C.startsWith("#")||C.startsWith("//"))){let w=C.replace(/^(#|\/\/)\s*/,"").match(/^@([\w-]+)\s*(.*)?$/);if(w){let[,_,E]=w;if(_==="name")Y=E?.trim()||Y;else if(_)G[_]=E?.trim()||"";if(_)K.push({name:_,value:E?.trim()||"",line:N})}continue}if(!L){let z=C.match(/^(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS|TRACE|CONNECT)\s+(\S+)(\s+HTTP\/[\d.]+)?$/i);if(z){let[,w,_]=z;if(!w||!_)continue;W=w.toUpperCase(),U=_,L=!0}if(!L){let w=C.match(/^(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS|TRACE|CONNECT)\s+(.+)$/i);if(w){let[,_,E]=w;if(!_||!E)continue;W=_.toUpperCase(),U=E.trim(),L=!0}}if(L){while(N+1<Q.length){let w=Q[N+1]?.trim();if(w&&(w.startsWith("?")||w.startsWith("&")))U+=w,N++;else break}continue}continue}if(T)V.push(I);else if(C==="")T=!0;else{let z=I.match(/^([^:]+):\s*(.*)$/);if(z){let w=z[1];if(!w)continue;let _=z[2]??"";j[w.trim()]=_.trim()}}}if(!W||!U)return null;if(V.length>0){while(V.length>0&&V[V.length-1]?.trim()==="")V.pop();if(V.length===1){let N=V[0]?.trim().match(/^<\s+(.+)$/);if(N){let I=N[1];if(I)D={path:I}}else if(V[0]?.trim())H=V[0]}else if(V.length>0)H=V.join(`
|
|
3
|
+
`)}let B=j["Content-Type"]||j["content-type"];if(H&&L0(H,B))A=T0(H),H=void 0;let{protocol:X,protocolOptions:J}=R0(j,G);return S({method:W,url:U,headers:j,raw:$,meta:G}).ifDefined("name",Y).ifDefined("body",H).ifDefined("bodyFile",D).ifDefined("formData",A).ifDefined("directives",K.length>0?K:void 0).ifDefined("protocol",X!=="http"?X:void 0).ifDefined("protocolOptions",J?.type!==void 0?J:void 0).build()}async function j$($){return await k0($)}async function k0($,Z){if(Z){let Q=await Z.readText($);return O(Q)}if(typeof globalThis.Bun<"u"){let K=await globalThis.Bun.file($).text();return O(K)}throw Error("No IO adapter provided. Use parseFileWithIO(path, io) in this runtime.")}function M0($){let Z={},Q=$.split(/\r?\n/),G=[];for(let K of Q){let Y=K.trim().match(S0);if(Y){let[,W,U]=Y;if(W&&U!==void 0)Z[W]=U.trim()}else G.push(K)}return{fileVariables:Z,cleanedContent:G.join(`
|
|
4
|
+
`)}}function q($){let{fileVariables:Z,cleanedContent:Q}=M0($);return{requests:O(Q),fileVariables:Z}}async function J$($){return await p($)}async function p($,Z){if(Z){let Q=await Z.readText($);return q(Q)}if(typeof globalThis.Bun<"u"){let K=await globalThis.Bun.file($).text();return q(K)}throw Error("No IO adapter provided. Use parseDocumentFileWithIO(path, io) in this runtime.")}var y=new Map;function b($){y.set($.protocol,$)}function Q0($){return y.get($)}function H$(){let $=y.get("http");if(!$)throw Error("HTTP handler not registered. Import the http protocol handler.");return $}function _$($){return y.has($)}function z$(){return Array.from(y.keys())}function G0($,Z){$?.(Z)}function g($,Z){let Q=$[0];if(!Q)throw Error(Z);return Q}function O0($){let Z=Math.max($.lastIndexOf("/"),$.lastIndexOf("\\"));if(Z===-1)return".";return Z===0?$.slice(0,1):$.slice(0,Z)}function y0($){if($.startsWith("/")||$.startsWith("\\"))return!0;if(/^[A-Za-z]:[\\/]/.test($))return!0;if($.startsWith("\\\\"))return!0;return!1}function g0($,Z){if(!$)return Z;if(!Z)return $;let Q=$.includes("\\")?"\\":"/",G=$.endsWith("/")||$.endsWith("\\")?$.slice(0,-1):$,K=Z.startsWith("/")||Z.startsWith("\\")?Z.slice(1):Z;return`${G}${Q}${K}`}function K0($,Z){if(Z)return Z.path.dirname(Z.path.resolve($));let Q=globalThis.process?.cwd?.()??".",G=y0($)?$:g0(Q,$);return O0(G)}function W0($,Z){if(!Z)return $;let Q=$.Cookie||$.cookie||"";return{...$,Cookie:Q?`${Q}; ${Z}`:Z}}function i($){return new Promise((Z)=>setTimeout(Z,$))}var P0={".json":"application/json",".xml":"application/xml",".txt":"text/plain",".html":"text/html",".htm":"text/html",".css":"text/css",".js":"application/javascript",".mjs":"application/javascript",".ts":"application/typescript",".csv":"text/csv",".md":"text/markdown",".yaml":"text/yaml",".yml":"text/yaml",".svg":"image/svg+xml",".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".gif":"image/gif",".webp":"image/webp",".ico":"image/x-icon",".bmp":"image/bmp",".tiff":"image/tiff",".tif":"image/tiff",".pdf":"application/pdf",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".zip":"application/zip",".gz":"application/gzip",".tar":"application/x-tar",".rar":"application/vnd.rar",".7z":"application/x-7z-compressed",".mp3":"audio/mpeg",".wav":"audio/wav",".ogg":"audio/ogg",".m4a":"audio/mp4",".mp4":"video/mp4",".webm":"video/webm",".avi":"video/x-msvideo",".mov":"video/quicktime",".wasm":"application/wasm",".bin":"application/octet-stream",".exe":"application/octet-stream",".dll":"application/octet-stream",".so":"application/octet-stream",".dylib":"application/octet-stream"},x0=new Set(["application/json","application/xml","application/javascript","application/typescript","text/plain","text/html","text/css","text/csv","text/xml","text/markdown","text/yaml","image/svg+xml"]);function f0($){let Z=h0($).toLowerCase();return P0[Z]??"application/octet-stream"}function q0($){if($.startsWith("text/"))return!1;if(x0.has($))return!1;return!0}function a($){return $.includes("\\")?"\\":"/"}function o($){return $.split(/[\\/]+/).filter(Boolean)}function b0($){if($.startsWith("/")||$.startsWith("\\"))return!0;if(/^[A-Za-z]:[\\/]/.test($))return!0;if($.startsWith("\\\\"))return!0;return!1}function P($,Z){let Q=[];for(let G of Z){if(!G||G===".")continue;if(G===".."){Q.pop();continue}Q.push(G)}return($==="\\"?"\\":"/")+Q.join($)}function m0($,Z){let Q=a($),G=/^[A-Za-z]:$/.test($),Y=$.match(/^([A-Za-z]:)[\\/]?/)?.[1],W=o($),U=o(Z);if(Y){let j=P(Q,[...W.slice(1),...U]);return`${Y}${j}`}if(G){let j=P(Q,U);return`${$}${j}`}return P(Q,[...W,...U])}function v0($){if($==="")return"/";let Z=a($),G=$.match(/^([A-Za-z]:)[\\/]?/)?.[1],K=o($);if(G){let Y=P(Z,K.slice(1));return`${G}${Y}`}return P(Z,K)}function h0($){let Z=c0($),Q=Z.lastIndexOf(".");if(Q<=0)return"";return Z.slice(Q)}function c0($){let Z=$.split(/[\\/]/);return Z[Z.length-1]??""}function d0($,Z){if(b0($))throw Error(`Absolute paths not allowed: ${$}`);let Q=m0(Z,$),G=v0(Z),K=a(G);if(Q!==G&&!Q.startsWith(G+K))throw Error(`Path escapes base directory: ${$}`);return Q}async function m($,Z={}){let Q=Z.basePath??Z.io?.cwd()??globalThis.process?.cwd?.()??".",G=d0($,Q),K=f0($),Y=q0(K),W;if(Z.io){if(!await Z.io.exists(G))throw Error(`File not found: ${$}`);W=Y?await Z.io.readBinary(G):await Z.io.readText(G)}else if(typeof globalThis.Bun<"u"){let j=globalThis.Bun.file(G);if(!await j.exists())throw Error(`File not found: ${$}`);W=Y?await j.arrayBuffer():await j.text()}else throw Error("No IO adapter provided. Provide `options.io` (Node/Bun/Tauri) to load file bodies.");return{content:W,isBinary:Y,mimeType:K}}function Y0($){return $.some((Z)=>Z.isFile)}async function U0($,Z={}){let Q=new FormData,G=Z.basePath??Z.io?.cwd()??globalThis.process?.cwd?.()??".";for(let K of $)if(K.isFile&&K.path){let Y=await m(K.path,Z.io?{basePath:G,io:Z.io}:{basePath:G}),W=K.filename??Z.io?.path.basename(K.path)??u0(K.path),U=new Blob([Y.content],{type:Y.mimeType});Q.append(K.name,U,W)}else Q.append(K.name,K.value);return Q}function u0($){let Z=$.split(/[\\/]/);return Z[Z.length-1]??""}function X0($){let Z=new URLSearchParams;for(let Q of $){if(Q.isFile)continue;Z.append(Q.name,Q.value)}return Z}async function j0($,Z){let Q={...Z.headerDefaults??{},...$.headers??{}},G=$.body;if($.bodyFile){let Y=await m($.bodyFile.path,S({basePath:Z.basePath}).ifDefined("io",Z.io).build());if(G=Y.content,!Q["Content-Type"]&&!Q["content-type"])Q["Content-Type"]=Y.mimeType}else if($.formData&&$.formData.length>0){if(Y0($.formData))G=await U0($.formData,S({basePath:Z.basePath}).ifDefined("io",Z.io).build()),delete Q["Content-Type"],delete Q["content-type"];else if(G=X0($.formData),!Q["Content-Type"]&&!Q["content-type"])Q["Content-Type"]="application/x-www-form-urlencoded"}return{executeRequest:{method:$.method,url:$.url,headers:Q,...G!==void 0?{body:G}:{}}}}async function s($,Z,Q,G,K){let{interpolator:Y,cookieStore:W,headerDefaults:U,io:j,pluginManager:H,emitEvent:D}=$,A={method:Z.method,url:Z.url,headers:{...Z.headers},...Z.body!==void 0?{body:Z.body}:{}};if(H){let _={request:A,skip:!1};if((await H.triggerRequestBefore({request:A,variables:Q,ctx:K},_)).skip)return{compiledRequest:{method:A.method,url:A.url,headers:A.headers},requestWithCookies:{method:A.method,url:A.url,headers:A.headers},urlForCookies:A.url,mergedVars:{...Q},skipped:!0};A=_.request}D({type:"interpolateStarted"});let T={...Q},V={method:A.method,url:A.url,headers:A.headers,...A.body!==void 0?{body:A.body}:{},...Z.name!==void 0?{name:Z.name}:{},raw:Z.raw,meta:Z.meta,...Z.bodyFile!==void 0?{bodyFile:Z.bodyFile}:{},...Z.formData!==void 0?{formData:Z.formData}:{},...Z.directives!==void 0?{directives:Z.directives}:{}},L=await Y.interpolate(V,T);D({type:"interpolateFinished"}),D({type:"compileStarted"});let{executeRequest:B}=await j0(L,S({basePath:G}).ifDefined("io",j).ifDefined("headerDefaults",U).build());D({type:"compileFinished"});let X={method:B.method,url:B.url,headers:B.headers??{},...B.body!==void 0?{body:B.body}:{},...L.name!==void 0?{name:L.name}:{},...L.meta!==void 0?{meta:L.meta}:{},...L.directives!==void 0?{directives:L.directives}:{}};if(H){let _={request:X};await H.triggerRequestCompiled({request:X,variables:T,ctx:K},_),X=_.request}if(H)await H.triggerRequestAfter({request:X,ctx:K});let{url:J,headers:N}=X,I=W?await W.getCookieHeader(J):void 0,C=W?W0(N,I):N,z;if(X.body!==void 0)if(X.body instanceof Buffer){let _=X.body,E=new ArrayBuffer(_.byteLength);new Uint8Array(E).set(new Uint8Array(_.buffer,_.byteOffset,_.byteLength)),z=E}else z=X.body;let w={method:X.method,url:X.url,headers:C,...z!==void 0?{body:z}:{}};return{compiledRequest:X,requestWithCookies:w,urlForCookies:J,mergedVars:T,skipped:!1}}var l0={protocol:"http",canHandle($){return!$.protocol||$.protocol==="http"},async execute($,Z,Q){let G={};if(Z.timeout!==void 0)G.timeout=Z.timeout;if(Z.signal!==void 0)G.signal=Z.signal;if(Z.followRedirects!==void 0)G.followRedirects=Z.followRedirects;if(Z.validateSSL!==void 0)G.validateSSL=Z.validateSSL;if(Z.proxy!==void 0)G.proxy=Z.proxy;return f($,G,Q)}};b(l0);async function*n0($){let Z=new TextDecoder,Q="",G={};while(!0){let{done:K,value:Y}=await $.read();if(K)break;Q+=Z.decode(Y,{stream:!0});let W=Q.split(/\r?\n/);Q=W.pop()??"";for(let U of W)if(U.startsWith("id:"))G.id=U.slice(3).trim();else if(U.startsWith("event:"))G.event=U.slice(6).trim();else if(U.startsWith("data:")){let j=U.slice(5);G.data=G.data!==void 0?`${G.data}
|
|
5
|
+
${j}`:j}else if(U.startsWith("retry:")){let j=parseInt(U.slice(6).trim(),10);if(!Number.isNaN(j))G.retry=j}else if(U===""){if(G.data!==void 0)yield G;G={}}}if(G.data!==void 0)yield G}function p0($){if(!$.body)throw Error("SSE response has no body");let Z=$.body.getReader(),Q=!1,G=n0(Z),K={type:"sse",async*[Symbol.asyncIterator](){if(Q)return;for await(let Y of G){if(Q)return;if(Y.id)K.lastEventId=Y.id;yield Y}},close(){if(Q)return;Q=!0,Z.cancel().catch(()=>{})},response:$};return K}var i0={protocol:"sse",canHandle($){if($.protocol==="sse")return!0;if(($.headers.Accept||$.headers.accept)?.includes("text/event-stream"))return!0;return!1},async execute($,Z,Q){let G={...$.headers,Accept:"text/event-stream","Cache-Control":"no-cache"};if(Z.lastEventId)G["Last-Event-ID"]=Z.lastEventId;let K=S({}).ifDefined("proxy",Z.proxy).ifDefined("validateSSL",Z.validateSSL).build(),Y={method:$.method||"GET",headers:G};if(Z.signal)Y.signal=Z.signal;let W=await Q.fetch($.url,Y,K);if(!(W.headers.get("content-type")??"").includes("text/event-stream")&&W.ok);if(!W.ok)throw Error(`SSE request failed: ${W.status} ${W.statusText}`);return p0(W)}};b(i0);function o0($={}){let Z=$.transport??h(),Q=$.io,G=$.cookieStore,K=$.onEvent,Y=$.headerDefaults,W=$.pluginManager,U=$.maxRetries??3,j=$0({resolvers:$.resolvers??{}});function H(X){G0(K,X),W?.emitEngineEvent(X)}let D={interpolator:j,emitEvent:H};if(G)D.cookieStore=G;if(Y)D.headerDefaults=Y;if(Q)D.io=Q;if(W)D.pluginManager=W;function A(X,J){return W?.createHookContext({retries:X,maxRetries:U,variables:J})??{retries:X,maxRetries:U,session:{id:"default",variables:{},reports:[]},variables:J,config:{projectRoot:".",variables:{},security:{allowExternalFiles:!1,allowPluginsOutsideProject:!1}},projectRoot:".",report:()=>{}}}async function T(X,J){H({type:"parseStarted",source:"string"});let{requests:N,fileVariables:I}=q(X);H({type:"parseFinished",source:"string",requestCount:N.length});let C=J.basePath??Q?.cwd()??globalThis.process?.cwd?.()??".";if(W){let z={path:"string",requests:N},w={file:z};return await W.triggerParseAfter({file:z,path:"string"},w),{requests:w.file.requests,fileVariables:I,basePath:C}}return{requests:N,fileVariables:I,basePath:C}}async function V(X,J){H({type:"parseStarted",source:"file"});let{requests:N,fileVariables:I}=await p(X,Q);H({type:"parseFinished",source:"file",requestCount:N.length});let C=K0(X,Q);if(W){let z={path:X,requests:N},w={file:z};return await W.triggerParseAfter({file:z,path:X},w),{requests:w.file.requests,fileVariables:I,filePath:X,basePath:C}}return{requests:N,fileVariables:I,filePath:X,basePath:C}}async function L(X,J,N,I={}){let C={...I,...J.variables??{}},z=0;while(!0)try{let w=A(z,C),_=await s(D,X,C,N,w);if(_.skipped)return new Response(null,{status:204,statusText:"Skipped by Plugin"});H({type:"fetchStarted",method:_.requestWithCookies.method,url:_.urlForCookies});let E=Date.now(),R;try{let F=S({}).ifDefined("timeout",J.timeoutMs).ifDefined("signal",J.signal).ifDefined("followRedirects",J.followRedirects).ifDefined("validateSSL",J.validateSSL).ifDefined("proxy",J.proxy).build(),x=performance.now();R=await f(_.requestWithCookies,F,Z);let M=performance.now()-x;if(H({type:"fetchFinished",method:_.requestWithCookies.method,url:_.urlForCookies,status:R.status,ttfb:M}),G)await G.setFromResponse(_.urlForCookies,R)}catch(F){throw H({type:"error",stage:"fetch",message:F instanceof Error?F.message:String(F)}),F}let k={total:Date.now()-E},v;if(W){let F={};if(await W.triggerResponseAfter({request:_.compiledRequest,response:R,timing:k,ctx:w},F),v=F.retry,F.status!==void 0||F.statusText!==void 0||F.headers!==void 0||F.body!==void 0){let x=new Headers(R.headers);if(F.headers)for(let[J0,w0]of Object.entries(F.headers))x.set(J0,w0);let M=null;if(F.body!==void 0){if(typeof F.body==="string")M=F.body;else if(F.body instanceof Buffer)M=new Uint8Array(F.body);else if(F.body instanceof ReadableStream)M=F.body}R=new Response(M??R.body,{status:F.status??R.status,statusText:F.statusText??R.statusText,headers:x})}}if(v&&z<U){z++,await i(v.delayMs);continue}return R}catch(w){if(W){let _={method:X.method,url:X.url,headers:X.headers,...X.body!==void 0?{body:X.body}:{},...X.name!==void 0?{name:X.name}:{},...X.meta!==void 0?{meta:X.meta}:{},...X.directives!==void 0?{directives:X.directives}:{}},E={error:w instanceof Error?w:Error(String(w)),suppress:!1};if(await W.triggerError({request:_,error:w instanceof Error?w:Error(String(w)),ctx:A(z,C)},E),E.retry&&z<U){z++,await i(E.retry.delayMs);continue}if(E.suppress)return new Response(E.error.message,{status:0,statusText:"Suppressed Error"});throw E.error}throw w}}async function B(X,J,N,I={}){let C=J.protocol??X.protocol??"http";if(C==="http")throw Error("Request protocol is 'http' but expected a streaming protocol (sse, ws). Use runString() for HTTP requests or add @sse directive.");let z=Q0(C);if(!z)throw Error(`No handler registered for protocol: ${C}`);let w={...I,...J.variables??{}},_=A(0,w),E=await s(D,X,w,N,_);if(E.skipped)throw Error("Request skipped by plugin - cannot stream a skipped request");H({type:"fetchStarted",method:E.requestWithCookies.method,url:E.urlForCookies});let R=S({}).ifDefined("timeout",J.timeoutMs).ifDefined("signal",J.signal).ifDefined("followRedirects",J.followRedirects).ifDefined("validateSSL",J.validateSSL).ifDefined("proxy",J.proxy).ifDefined("lastEventId",J.lastEventId??X.protocolOptions?.lastEventId).build();try{return await z.execute(E.requestWithCookies,R,Z)}catch(k){throw H({type:"error",stage:"fetch",message:k instanceof Error?k.message:String(k)}),k}}return{parseString:O,async runString(X,J={}){let{requests:N,fileVariables:I,basePath:C}=await T(X,J),z=g(N,"No valid requests found in provided content.");return await L(z,J,C,I)},async runFile(X,J={}){let{requests:N,fileVariables:I,basePath:C}=await V(X,J),z=g(N,`No valid requests found in file: ${X}`);return await L(z,J,C,I)},async streamString(X,J={}){let{requests:N,fileVariables:I,basePath:C}=await T(X,J),z=g(N,"No valid requests found in provided content.");return await B(z,J,C,I)},async streamFile(X,J={}){let{requests:N,fileVariables:I,basePath:C}=await V(X,J),z=g(N,`No valid requests found in file: ${X}`);return await B(z,J,C,I)}}}export{o0 as createEngine};
|
|
4
6
|
|
|
5
|
-
//# debugId=
|
|
7
|
+
//# debugId=8416C10E2C8D9DA764756E2164756E21
|
|
6
8
|
//# sourceMappingURL=index.js.map
|