@t-req/core 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +204 -14
- package/dist/client.d.ts +0 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/config/engine-options.d.ts +50 -0
- package/dist/config/engine-options.d.ts.map +1 -0
- package/dist/config/index.d.ts +7 -3
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +9 -2
- package/dist/config/index.js.map +23 -5
- package/dist/config/jsonc.d.ts +18 -0
- package/dist/config/jsonc.d.ts.map +1 -0
- package/dist/config/load.d.ts +13 -2
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/merge.d.ts +31 -5
- package/dist/config/merge.d.ts.map +1 -1
- package/dist/config/resolve.d.ts +59 -0
- package/dist/config/resolve.d.ts.map +1 -0
- package/dist/config/substitution.d.ts +25 -0
- package/dist/config/substitution.d.ts.map +1 -0
- package/dist/config/types.d.ts +74 -6
- package/dist/config/types.d.ts.map +1 -1
- package/dist/cookies/persistence.d.ts +48 -0
- package/dist/cookies/persistence.d.ts.map +1 -0
- package/dist/cookies/persistence.js +4 -0
- package/dist/cookies/persistence.js.map +10 -0
- package/dist/cookies.js +5 -5
- package/dist/cookies.js.map +2 -2
- package/dist/engine/engine.d.ts +3 -4
- package/dist/engine/engine.d.ts.map +1 -1
- package/dist/engine/index.js +4 -4
- package/dist/engine/index.js.map +4 -4
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +21 -7
- package/dist/interpolate.d.ts.map +1 -1
- package/dist/plugin/define.d.ts +65 -0
- package/dist/plugin/define.d.ts.map +1 -0
- package/dist/plugin/index.d.ts +7 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +8 -0
- package/dist/plugin/index.js.map +22 -0
- package/dist/plugin/loader.d.ts +69 -0
- package/dist/plugin/loader.d.ts.map +1 -0
- package/dist/plugin/manager.d.ts +186 -0
- package/dist/plugin/manager.d.ts.map +1 -0
- package/dist/plugin/permissions.d.ts +33 -0
- package/dist/plugin/permissions.d.ts.map +1 -0
- package/dist/plugin/subprocess.d.ts +100 -0
- package/dist/plugin/subprocess.d.ts.map +1 -0
- package/dist/plugin/types.d.ts +668 -0
- package/dist/plugin/types.d.ts.map +1 -0
- package/dist/resolver/command.d.ts +19 -0
- package/dist/resolver/command.d.ts.map +1 -0
- package/dist/resolver/index.d.ts +2 -0
- package/dist/resolver/index.d.ts.map +1 -0
- package/dist/resolver/index.js +5 -0
- package/dist/resolver/index.js.map +10 -0
- package/dist/runtime/index.js +2 -2
- package/dist/runtime/index.js.map +2 -2
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/server-client.d.ts +50 -0
- package/dist/server-client.d.ts.map +1 -0
- package/dist/server-metadata.d.ts +13 -0
- package/dist/server-metadata.d.ts.map +1 -0
- package/dist/types.d.ts +41 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +20 -5
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CommandResolverDef } from '../config/types';
|
|
2
|
+
import type { Resolver } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Create a Resolver function from a CommandResolverDef.
|
|
5
|
+
*
|
|
6
|
+
* The created resolver executes the external command with the NDJSON protocol:
|
|
7
|
+
* - Writes `{"resolver":"name","args":["arg1","arg2"]}` to stdin
|
|
8
|
+
* - Expects `{"value":"result"}` on stdout
|
|
9
|
+
*
|
|
10
|
+
* @param def - The command resolver definition
|
|
11
|
+
* @param name - The resolver name (used for error messages)
|
|
12
|
+
* @param projectRoot - The project root directory (used as cwd)
|
|
13
|
+
*/
|
|
14
|
+
export declare function createCommandResolver(def: CommandResolverDef, projectRoot: string, name?: string): Resolver;
|
|
15
|
+
/**
|
|
16
|
+
* Check if a resolver definition is a command resolver.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isCommandResolverDef(def: unknown): def is CommandResolverDef;
|
|
19
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/resolver/command.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAsLzC;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,kBAAkB,EACvB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,QAAQ,CAKV;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,kBAAkB,CAI5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolver/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{createRequire as O}from"node:module";var A=Object.defineProperty;var g=(J,z)=>{for(var Z in z)A(J,Z,{get:z[Z],enumerable:!0,configurable:!0,set:(w)=>z[Z]=()=>w})};var h=O(import.meta.url);import{spawn as B}from"node:child_process";var S=2000,E=500,M=1048576,R=65536;async function p(J,z,Z,w){let F=J.timeoutMs??S;if(J.command.length===0)throw Error(`Resolver "${z}" has empty command array`);let[b,...U]=J.command;if(!b)throw Error(`Resolver "${z}" has empty command`);return new Promise((v,q)=>{let W=B(b,U,{cwd:w,stdio:["pipe","pipe","pipe"],env:process.env}),H="",C="",X=0,Y=0,G=!1,N=!1,x=!1,D=!1,I=setTimeout(()=>{D=!0,W.kill("SIGTERM"),setTimeout(()=>{if(!x)W.kill("SIGKILL")},E)},F);W.stdout?.on("data",(K)=>{let Q=M-X;if(Q>0){let V=K.slice(0,Q);if(H+=V.toString("utf-8"),X+=V.length,V.length<K.length)G=!0}else G=!0}),W.stderr?.on("data",(K)=>{let Q=R-Y;if(Q>0){let V=K.slice(0,Q);if(C+=V.toString("utf-8"),Y+=V.length,V.length<K.length)N=!0}else N=!0}),W.on("close",(K,Q)=>{if(clearTimeout(I),x=!0,D){q(Error(`Resolver "${z}" timed out after ${F}ms${C?`: ${C}`:""}`));return}if(K!==0){let $=Q?`killed by signal ${Q}`:`exit code ${K}`;q(Error(`Resolver "${z}" failed (${$})${C?`: ${C}`:""}`));return}let V=H.trim();if(!V){q(Error(`Resolver "${z}" returned no output`));return}let L=V.split(/\r?\n/).map(($)=>$.trim()).find(($)=>$.length>0)??"",P;try{P=JSON.parse(L)}catch{let $=G?" (stdout exceeded 1MB limit and was truncated)":"";q(Error(`Resolver "${z}" returned invalid JSON: ${L.slice(0,100)}${$}`));return}if(typeof P.value!=="string"){q(Error(`Resolver "${z}" returned no value (expected { "value": "..." })`));return}v(P.value)}),W.on("error",(K)=>{clearTimeout(I);let Q=N?" (stderr exceeded 64KB limit and was truncated)":"";q(Error(`Resolver "${z}" failed to execute: ${K.message}${Q}`))});let y={resolver:z,args:Z};W.stdin?.write(`${JSON.stringify(y)}
|
|
2
|
+
`),W.stdin?.end()})}function k(J,z,Z){let w=Z??"$command";return async(...F)=>{return await p(J,w,F,z)}}function _(J){if(!J||typeof J!=="object")return!1;let z=J;return z.type==="command"&&Array.isArray(z.command)}export{_ as isCommandResolverDef,k as createCommandResolver};
|
|
3
|
+
|
|
4
|
+
//# debugId=8F840D5432168F1964756E2164756E21
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/resolver/command.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { spawn } from 'node:child_process';\nimport type { CommandResolverDef } from '../config/types';\nimport type { Resolver } from '../types';\n\n// ============================================================================\n// Constants\n// ============================================================================\n\nconst DEFAULT_TIMEOUT_MS = 2000;\nconst GRACE_PERIOD_MS = 500;\nconst MAX_STDOUT_BYTES = 1024 * 1024; // 1MB\nconst MAX_STDERR_BYTES = 64 * 1024; // 64KB\n\n// ============================================================================\n// Types\n// ============================================================================\n\ntype ResolverRequest = {\n resolver: string;\n args: string[];\n};\n\ntype ResolverResponse = {\n value: string;\n};\n\n// ============================================================================\n// Command Execution\n// ============================================================================\n\n/**\n * Execute a command resolver and return its value.\n */\nasync function executeCommandResolver(\n def: CommandResolverDef,\n name: string,\n args: string[],\n projectRoot: string\n): Promise<string> {\n const timeoutMs = def.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n\n if (def.command.length === 0) {\n throw new Error(`Resolver \"${name}\" has empty command array`);\n }\n\n const [cmd, ...cmdArgs] = def.command;\n if (!cmd) {\n throw new Error(`Resolver \"${name}\" has empty command`);\n }\n\n return new Promise((resolve, reject) => {\n const child = spawn(cmd, cmdArgs, {\n cwd: projectRoot,\n stdio: ['pipe', 'pipe', 'pipe'],\n env: process.env\n });\n\n let stdout = '';\n let stderr = '';\n let stdoutBytes = 0;\n let stderrBytes = 0;\n let stdoutTruncated = false;\n let stderrTruncated = false;\n let killed = false;\n let timedOut = false;\n\n // Set up timeout\n const timeoutHandle = setTimeout(() => {\n timedOut = true;\n child.kill('SIGTERM');\n\n // Grace period before SIGKILL\n setTimeout(() => {\n if (!killed) {\n child.kill('SIGKILL');\n }\n }, GRACE_PERIOD_MS);\n }, timeoutMs);\n\n // Handle stdout\n child.stdout?.on('data', (data: Buffer) => {\n const remaining = MAX_STDOUT_BYTES - stdoutBytes;\n if (remaining > 0) {\n const chunk = data.slice(0, remaining);\n stdout += chunk.toString('utf-8');\n stdoutBytes += chunk.length;\n if (chunk.length < data.length) {\n stdoutTruncated = true;\n }\n } else {\n stdoutTruncated = true;\n }\n });\n\n // Handle stderr\n child.stderr?.on('data', (data: Buffer) => {\n const remaining = MAX_STDERR_BYTES - stderrBytes;\n if (remaining > 0) {\n const chunk = data.slice(0, remaining);\n stderr += chunk.toString('utf-8');\n stderrBytes += chunk.length;\n if (chunk.length < data.length) {\n stderrTruncated = true;\n }\n } else {\n stderrTruncated = true;\n }\n });\n\n // Handle close\n child.on('close', (code, signal) => {\n clearTimeout(timeoutHandle);\n killed = true;\n\n if (timedOut) {\n reject(\n new Error(\n `Resolver \"${name}\" timed out after ${timeoutMs}ms${stderr ? `: ${stderr}` : ''}`\n )\n );\n return;\n }\n\n if (code !== 0) {\n const exitInfo = signal ? `killed by signal ${signal}` : `exit code ${code}`;\n reject(new Error(`Resolver \"${name}\" failed (${exitInfo})${stderr ? `: ${stderr}` : ''}`));\n return;\n }\n\n // Parse output as NDJSON\n const trimmed = stdout.trim();\n if (!trimmed) {\n reject(new Error(`Resolver \"${name}\" returned no output`));\n return;\n }\n\n // Take first non-empty line (NDJSON protocol) and tolerate CRLF\n const firstLine =\n trimmed\n .split(/\\r?\\n/)\n .map((l) => l.trim())\n .find((l) => l.length > 0) ?? '';\n\n let response: ResolverResponse;\n try {\n response = JSON.parse(firstLine) as ResolverResponse;\n } catch {\n const suffix = stdoutTruncated ? ' (stdout exceeded 1MB limit and was truncated)' : '';\n reject(\n new Error(`Resolver \"${name}\" returned invalid JSON: ${firstLine.slice(0, 100)}${suffix}`)\n );\n return;\n }\n\n if (typeof response.value !== 'string') {\n reject(new Error(`Resolver \"${name}\" returned no value (expected { \"value\": \"...\" })`));\n return;\n }\n\n resolve(response.value);\n });\n\n // Handle error\n child.on('error', (err) => {\n clearTimeout(timeoutHandle);\n const suffix = stderrTruncated ? ' (stderr exceeded 64KB limit and was truncated)' : '';\n reject(new Error(`Resolver \"${name}\" failed to execute: ${err.message}${suffix}`));\n });\n\n // Write request to stdin\n const request: ResolverRequest = {\n resolver: name,\n args\n };\n\n child.stdin?.write(`${JSON.stringify(request)}\\n`);\n child.stdin?.end();\n });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\n/**\n * Create a Resolver function from a CommandResolverDef.\n *\n * The created resolver executes the external command with the NDJSON protocol:\n * - Writes `{\"resolver\":\"name\",\"args\":[\"arg1\",\"arg2\"]}` to stdin\n * - Expects `{\"value\":\"result\"}` on stdout\n *\n * @param def - The command resolver definition\n * @param name - The resolver name (used for error messages)\n * @param projectRoot - The project root directory (used as cwd)\n */\nexport function createCommandResolver(\n def: CommandResolverDef,\n projectRoot: string,\n name?: string\n): Resolver {\n const resolverName = name ?? '$command';\n return async (...args: string[]): Promise<string> => {\n return await executeCommandResolver(def, resolverName, args, projectRoot);\n };\n}\n\n/**\n * Check if a resolver definition is a command resolver.\n */\nexport function isCommandResolverDef(def: unknown): def is CommandResolverDef {\n if (!def || typeof def !== 'object') return false;\n const obj = def as Record<string, unknown>;\n return obj['type'] === 'command' && Array.isArray(obj['command']);\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "8F840D5432168F1964756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
package/dist/runtime/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function j(E){throw Error(`${E} is not supported by this transport. Provide a transport that supports it.`)}function P(E=fetch){return{capabilities:{proxy:!1,validateSSL:!1},async fetch(
|
|
1
|
+
import{createRequire as A}from"node:module";var z=Object.defineProperty;var M=(E,C)=>{for(var g in C)z(E,g,{get:C[g],enumerable:!0,configurable:!0,set:(O)=>C[g]=()=>O})};var R=A(import.meta.url);function j(E){throw Error(`${E} is not supported by this transport. Provide a transport that supports it.`)}function P(E=fetch){return{capabilities:{proxy:!1,validateSSL:!1},async fetch(C,g,O){if(O.proxy)j("proxy");if(O.validateSSL===!1)j("validateSSL=false");return await E(C,g)}}}function D(){return typeof globalThis.Bun<"u"}function G(){if(!D())return P(fetch);return{capabilities:{proxy:!0,validateSSL:!0},async fetch(E,C,g){let O={...C??{}};if(g.proxy!==void 0)O.proxy=g.proxy;if(g.validateSSL===!1)O.tls={rejectUnauthorized:!1};return await fetch(E,O)}}}import{access as H,readFile as q}from"node:fs/promises";import*as T from"node:path";async function J(E){try{return await H(E),!0}catch{return!1}}function K(){return{cwd:()=>process.cwd(),path:{resolve:(...E)=>T.resolve(...E),dirname:(E)=>T.dirname(E),basename:(E)=>T.basename(E),extname:(E)=>T.extname(E),isAbsolute:(E)=>T.isAbsolute(E),sep:T.sep},exists:J,readText:async(E)=>await q(E,"utf8"),readBinary:async(E)=>{let C=await q(E);return C.buffer.slice(C.byteOffset,C.byteOffset+C.byteLength)}}}export{K as createNodeIO,P as createFetchTransport,G as createAutoTransport};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=8B0E0CF2F8CACAEC64756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"import { createFetchTransport } from './fetch-transport';\nimport type { Transport } from './types';\n\ntype BunFetchInit = RequestInit & { tls?: { rejectUnauthorized: boolean }; proxy?: string };\n\nfunction hasBun(): boolean {\n return typeof (globalThis as Record<string, unknown>)['Bun'] !== 'undefined';\n}\n\n/**\n * Auto-select a transport for the current runtime.\n *\n * - Bun: supports `proxy` and `validateSSL=false` via Bun fetch extensions.\n * - Others: falls back to baseline fetch transport (no proxy/validateSSL).\n */\nexport function createAutoTransport(): Transport {\n if (!hasBun()) {\n return createFetchTransport(fetch);\n }\n\n return {\n capabilities: { proxy: true, validateSSL: true },\n async fetch(url, init, ctx) {\n const bunInit: BunFetchInit = { ...(init ?? {}) };\n\n if (ctx.proxy !== undefined) {\n bunInit.proxy = ctx.proxy;\n }\n\n if (ctx.validateSSL === false) {\n bunInit.tls = { rejectUnauthorized: false };\n }\n\n return await fetch(url, bunInit);\n }\n };\n}\n",
|
|
7
7
|
"import { access, readFile } from 'node:fs/promises';\nimport * as path from 'node:path';\nimport type { IO } from './types';\n\nasync function exists(p: string): Promise<boolean> {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Node IO adapter (fs + path) for running `runFile()` and file references.\n */\nexport function createNodeIO(): IO {\n return {\n cwd: () => process.cwd(),\n path: {\n resolve: (...parts) => path.resolve(...parts),\n dirname: (p) => path.dirname(p),\n basename: (p) => path.basename(p),\n extname: (p) => path.extname(p),\n isAbsolute: (p) => path.isAbsolute(p),\n sep: path.sep\n },\n exists,\n readText: async (p) => await readFile(p, 'utf8'),\n readBinary: async (p) => {\n const buf = await readFile(p);\n // Ensure we return an ArrayBuffer exactly sized to the file contents.\n // Note: Node's Buffer.buffer is never a SharedArrayBuffer, but TypeScript doesn't know that.\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength) as ArrayBuffer;\n }\n };\n}\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": "
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "mMAIA,SAAS,CAAW,CAAC,EAAqB,CACxC,MAAU,MACR,GAAG,6EACL,EASK,SAAS,CAAoB,CAAC,EAAuB,MAAkB,CAC5E,MAAO,CACL,aAAc,CAAE,MAAO,GAAO,YAAa,EAAM,OAC3C,MAAK,CAAC,EAAK,EAAM,EAAK,CAC1B,GAAI,EAAI,MAAO,EAAY,OAAO,EAClC,GAAI,EAAI,cAAgB,GAAO,EAAY,mBAAmB,EAC9D,OAAO,MAAM,EAAU,EAAK,CAAI,EAEpC,ECnBF,SAAS,CAAM,EAAY,CACzB,OAAO,OAAQ,WAAuC,IAAW,IAS5D,SAAS,CAAmB,EAAc,CAC/C,GAAI,CAAC,EAAO,EACV,OAAO,EAAqB,KAAK,EAGnC,MAAO,CACL,aAAc,CAAE,MAAO,GAAM,YAAa,EAAK,OACzC,MAAK,CAAC,EAAK,EAAM,EAAK,CAC1B,IAAM,EAAwB,IAAM,GAAQ,CAAC,CAAG,EAEhD,GAAI,EAAI,QAAU,OAChB,EAAQ,MAAQ,EAAI,MAGtB,GAAI,EAAI,cAAgB,GACtB,EAAQ,IAAM,CAAE,mBAAoB,EAAM,EAG5C,OAAO,MAAM,MAAM,EAAK,CAAO,EAEnC,ECnCF,iBAAS,cAAQ,yBACjB,4BAGA,eAAe,CAAM,CAAC,EAA6B,CACjD,GAAI,CAEF,OADA,MAAM,EAAO,CAAC,EACP,GACP,KAAM,CACN,MAAO,IAOJ,SAAS,CAAY,EAAO,CACjC,MAAO,CACL,IAAK,IAAM,QAAQ,IAAI,EACvB,KAAM,CACJ,QAAS,IAAI,IAAe,UAAQ,GAAG,CAAK,EAC5C,QAAS,CAAC,IAAW,UAAQ,CAAC,EAC9B,SAAU,CAAC,IAAW,WAAS,CAAC,EAChC,QAAS,CAAC,IAAW,UAAQ,CAAC,EAC9B,WAAY,CAAC,IAAW,aAAW,CAAC,EACpC,IAAU,KACZ,EACA,SACA,SAAU,MAAO,IAAM,MAAM,EAAS,EAAG,MAAM,EAC/C,WAAY,MAAO,IAAM,CACvB,IAAM,EAAM,MAAM,EAAS,CAAC,EAG5B,OAAO,EAAI,OAAO,MAAM,EAAI,WAAY,EAAI,WAAa,EAAI,UAAU,EAE3E",
|
|
10
|
+
"debugId": "8B0E0CF2F8CACAEC64756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,EAAE,GAAG;IACf,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,EAAE,qBAAqB,CAAC;IACpC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACrF,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnF,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,EAAE,GAAG;IACf,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,EAAE,qBAAqB,CAAC;IACpC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACrF,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnF,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E,CAAC;AAQF,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Client - Internal module for routing requests through treq server.
|
|
3
|
+
*
|
|
4
|
+
* This is the internal implementation used by createClient() when a server URL is configured.
|
|
5
|
+
* The public API remains createClient({ server: 'http://localhost:4096' }).
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
import type { Client, ClientConfig } from './types';
|
|
10
|
+
/**
|
|
11
|
+
* Internal configuration for server client, extending public ClientConfig.
|
|
12
|
+
*/
|
|
13
|
+
export interface ServerClientConfig extends ClientConfig {
|
|
14
|
+
/** Base URL of the treq server (required) */
|
|
15
|
+
serverUrl: string;
|
|
16
|
+
/** Bearer token for authentication */
|
|
17
|
+
token?: string | undefined;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Metadata about the server connection.
|
|
21
|
+
* Accessible via getServerMetadata() utility.
|
|
22
|
+
*/
|
|
23
|
+
export interface ServerMetadata {
|
|
24
|
+
/** The server URL the client is connected to */
|
|
25
|
+
readonly serverUrl: string;
|
|
26
|
+
/** Session ID created on the server */
|
|
27
|
+
readonly sessionId: string | undefined;
|
|
28
|
+
/** Flow ID for observability (TUI) */
|
|
29
|
+
readonly flowId: string | undefined;
|
|
30
|
+
}
|
|
31
|
+
export declare const SERVER_METADATA: unique symbol;
|
|
32
|
+
/**
|
|
33
|
+
* Read environment variable safely (works in both Node and Bun).
|
|
34
|
+
*/
|
|
35
|
+
export declare function getEnvVar(name: string): string | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Create a server-backed client (internal use).
|
|
38
|
+
*
|
|
39
|
+
* Called by createClient() when server URL is provided.
|
|
40
|
+
* Automatically creates a session and flow on first use.
|
|
41
|
+
*
|
|
42
|
+
* When running as a server-spawned script:
|
|
43
|
+
* - TREQ_FLOW_ID: Attach to existing flow (don't create new one)
|
|
44
|
+
* - TREQ_SESSION_ID: Use pre-created session (skip session creation)
|
|
45
|
+
* - TREQ_TOKEN: Use scoped script token for authentication
|
|
46
|
+
*
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export declare function createServerClient(config: ServerClientConfig): Client;
|
|
50
|
+
//# sourceMappingURL=server-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-client.d.ts","sourceRoot":"","sources":["../src/server-client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAGD,eAAO,MAAM,eAAe,eAA2B,CAAC;AA4CxD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CA2PrE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server metadata utilities for TUI and tooling.
|
|
3
|
+
*
|
|
4
|
+
* When a client is created with a server URL, it maintains internal metadata
|
|
5
|
+
* about the server connection (session ID, flow ID). This utility allows
|
|
6
|
+
* external tools to access this metadata for debugging, observability, or
|
|
7
|
+
* orchestration purposes.
|
|
8
|
+
*/
|
|
9
|
+
import { type ServerMetadata } from './server-client';
|
|
10
|
+
import type { Client } from './types';
|
|
11
|
+
export type { ServerMetadata } from './server-client';
|
|
12
|
+
export declare function getServerMetadata(client: Client): ServerMetadata | undefined;
|
|
13
|
+
//# sourceMappingURL=server-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-metadata.d.ts","sourceRoot":"","sources":["../src/server-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAyBtD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAO5E"}
|
package/dist/types.d.ts
CHANGED
|
@@ -229,6 +229,26 @@ export interface ClientConfig {
|
|
|
229
229
|
/** Proxy URL */
|
|
230
230
|
proxy?: string;
|
|
231
231
|
};
|
|
232
|
+
/**
|
|
233
|
+
* Server URL to route requests through.
|
|
234
|
+
* When set, the client operates in "server mode" - requests are executed
|
|
235
|
+
* by the treq server instead of locally.
|
|
236
|
+
*
|
|
237
|
+
* If not provided, will try to read from TREQ_SERVER environment variable.
|
|
238
|
+
*
|
|
239
|
+
* @example 'http://localhost:4096'
|
|
240
|
+
*/
|
|
241
|
+
server?: string;
|
|
242
|
+
/**
|
|
243
|
+
* Bearer token for server authentication.
|
|
244
|
+
* If not provided, will try to read from TREQ_TOKEN environment variable.
|
|
245
|
+
*/
|
|
246
|
+
serverToken?: string;
|
|
247
|
+
/**
|
|
248
|
+
* Server-side config profile to use.
|
|
249
|
+
* Selects a named profile from the server's treq.jsonc configuration.
|
|
250
|
+
*/
|
|
251
|
+
profile?: string;
|
|
232
252
|
}
|
|
233
253
|
/**
|
|
234
254
|
* Options for running a request.
|
|
@@ -271,6 +291,16 @@ export interface RunOptions {
|
|
|
271
291
|
*
|
|
272
292
|
* // Run another request
|
|
273
293
|
* const profile = await client.run('./users/profile.http');
|
|
294
|
+
*
|
|
295
|
+
* // Clean up when done
|
|
296
|
+
* await client.close();
|
|
297
|
+
* ```
|
|
298
|
+
*
|
|
299
|
+
* @example Using explicit resource management (TypeScript 5.2+)
|
|
300
|
+
* ```typescript
|
|
301
|
+
* await using client = createClient({ server: 'http://localhost:4096' });
|
|
302
|
+
* const res = await client.run('./auth/login.http');
|
|
303
|
+
* // client.close() is called automatically when scope exits
|
|
274
304
|
* ```
|
|
275
305
|
*/
|
|
276
306
|
export interface Client {
|
|
@@ -293,5 +323,16 @@ export interface Client {
|
|
|
293
323
|
setVariable(key: string, value: unknown): void;
|
|
294
324
|
/** Get a copy of all current variables */
|
|
295
325
|
getVariables(): Record<string, unknown>;
|
|
326
|
+
/**
|
|
327
|
+
* Close the client and release any resources.
|
|
328
|
+
* - For local clients: no-op
|
|
329
|
+
* - For server clients: finishes the flow (best-effort)
|
|
330
|
+
*/
|
|
331
|
+
close(): Promise<void>;
|
|
332
|
+
/**
|
|
333
|
+
* Async dispose for explicit resource management (TypeScript 5.2+).
|
|
334
|
+
* Equivalent to calling `close()`.
|
|
335
|
+
*/
|
|
336
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
296
337
|
}
|
|
297
338
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@t-req/core",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "HTTP request parsing, execution, and testing. Define requests in .http files, test them in isolation.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -57,11 +57,25 @@
|
|
|
57
57
|
"types": "./dist/cookies.d.ts",
|
|
58
58
|
"import": "./dist/cookies.js",
|
|
59
59
|
"default": "./dist/cookies.js"
|
|
60
|
+
},
|
|
61
|
+
"./cookies/persistence": {
|
|
62
|
+
"types": "./dist/cookies/persistence.d.ts",
|
|
63
|
+
"import": "./dist/cookies/persistence.js",
|
|
64
|
+
"default": "./dist/cookies/persistence.js"
|
|
65
|
+
},
|
|
66
|
+
"./resolver": {
|
|
67
|
+
"types": "./dist/resolver/index.d.ts",
|
|
68
|
+
"import": "./dist/resolver/index.js",
|
|
69
|
+
"default": "./dist/resolver/index.js"
|
|
70
|
+
},
|
|
71
|
+
"./plugin": {
|
|
72
|
+
"types": "./dist/plugin/index.d.ts",
|
|
73
|
+
"import": "./dist/plugin/index.js",
|
|
74
|
+
"default": "./dist/plugin/index.js"
|
|
60
75
|
}
|
|
61
76
|
},
|
|
62
77
|
"publishConfig": {
|
|
63
|
-
"access": "public"
|
|
64
|
-
"provenance": true
|
|
78
|
+
"access": "public"
|
|
65
79
|
},
|
|
66
80
|
"files": [
|
|
67
81
|
"dist",
|
|
@@ -71,7 +85,7 @@
|
|
|
71
85
|
"scripts": {
|
|
72
86
|
"clean": "rm -rf dist",
|
|
73
87
|
"build": "bun run build:js && bun run build:types",
|
|
74
|
-
"build:js": "bun build --target node --minify --sourcemap --outdir ./dist --root ./src ./src/index.ts ./src/engine/index.ts ./src/runtime/index.ts ./src/config/index.ts ./src/cookies.ts",
|
|
88
|
+
"build:js": "bun build --target node --minify --sourcemap --outdir ./dist --root ./src ./src/index.ts ./src/engine/index.ts ./src/runtime/index.ts ./src/config/index.ts ./src/cookies.ts ./src/cookies/persistence.ts ./src/resolver/index.ts ./src/plugin/index.ts",
|
|
75
89
|
"build:types": "tsc -p tsconfig.build.json",
|
|
76
90
|
"test": "bun test",
|
|
77
91
|
"test:e2e": "bun test test/e2e.test.ts",
|
|
@@ -87,6 +101,7 @@
|
|
|
87
101
|
"@types/tough-cookie": "^4.0.5"
|
|
88
102
|
},
|
|
89
103
|
"dependencies": {
|
|
90
|
-
"tough-cookie": "^6.0.0"
|
|
104
|
+
"tough-cookie": "^6.0.0",
|
|
105
|
+
"zod": "^3.23.0"
|
|
91
106
|
}
|
|
92
107
|
}
|