🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

190proof

Package Overview
Dependencies
Maintainers
1
Versions
102
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

190proof - npm Package Compare versions

Comparing version
1.0.101
to
1.0.102
+8
-0
dist/index.d.mts

@@ -268,2 +268,10 @@ /** @deprecated Use provider prefix strings instead, e.g. `"anthropic:claude-sonnet-4-5"` */

requestTimeoutMs?: number;
/**
* Optional caller-supplied cancellation signal. When it aborts, the in-flight
* provider request is cancelled and `callWithRetries` rejects immediately —
* it does NOT retry or fall back (both retry loop and fallback branch bail on
* `signal.aborted`). Threaded through every adapter to the underlying
* fetch/axios/SDK call, mirroring `requestTimeoutMs`.
*/
signal?: AbortSignal;
}

@@ -270,0 +278,0 @@

@@ -268,2 +268,10 @@ /** @deprecated Use provider prefix strings instead, e.g. `"anthropic:claude-sonnet-4-5"` */

requestTimeoutMs?: number;
/**
* Optional caller-supplied cancellation signal. When it aborts, the in-flight
* provider request is cancelled and `callWithRetries` rejects immediately —
* it does NOT retry or fall back (both retry loop and fallback branch bail on
* `signal.aborted`). Threaded through every adapter to the underlying
* fetch/axios/SDK call, mirroring `requestTimeoutMs`.
*/
signal?: AbortSignal;
}

@@ -270,0 +278,0 @@

+65
-36

@@ -144,4 +144,9 @@ "use strict";

var decode = require("heic-decode");
function anySignal(signals) {
return AbortSignal.any(
signals
);
}
async function withRetries(identifier, apiName, fn, options = {}) {
var _a, _b, _c, _d;
var _a, _b, _c, _d, _e;
const { retries = 5, baseDelayMs = 125, onError } = options;

@@ -155,2 +160,4 @@ logger_default.log(identifier, `Calling ${apiName} API with retries`);

lastError = error3;
if ((_a = options.signal) == null ? void 0 : _a.aborted)
throw error3;
if (onError) {

@@ -162,3 +169,3 @@ onError(error3, attempt);

`Retry #${attempt} error: ${error3.message}`,
((_a = error3.response) == null ? void 0 : _a.data) || error3
((_b = error3.response) == null ? void 0 : _b.data) || error3
);

@@ -169,3 +176,3 @@ }

}
const detail = ((_d = (_c = (_b = lastError == null ? void 0 : lastError.response) == null ? void 0 : _b.data) == null ? void 0 : _c.error) == null ? void 0 : _d.message) || (lastError == null ? void 0 : lastError.message) || String(lastError);
const detail = ((_e = (_d = (_c = lastError == null ? void 0 : lastError.response) == null ? void 0 : _c.data) == null ? void 0 : _d.error) == null ? void 0 : _e.message) || (lastError == null ? void 0 : lastError.message) || String(lastError);
const error2 = new Error(

@@ -393,3 +400,3 @@ `Failed to call ${apiName} API after ${retries} attempts: ${detail}`

}
async function callOpenAIStream(id, openAiPayload, openAiConfig, chunkTimeoutMs, requestTimeoutMs = 12e4) {
async function callOpenAIStream(id, openAiPayload, openAiConfig, chunkTimeoutMs, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;

@@ -414,3 +421,6 @@ const functionNames = openAiPayload.tools ? new Set(openAiPayload.tools.map((fn) => fn.function.name)) : null;

body: JSON.stringify({ ...openAiPayload, stream: true }),
signal: controller.signal
// Merge (don't overwrite) the internal timeout controller with the caller's
// cancellation signal so both an internal timeout and an external abort stop
// the stream.
signal: signal ? anySignal([controller.signal, signal]) : controller.signal
});

@@ -505,3 +515,3 @@ if (!response.body) {

}
async function callOpenAI(id, openAiPayload, openAiConfig, requestTimeoutMs = 12e4) {
async function callOpenAI(id, openAiPayload, openAiConfig, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;

@@ -521,3 +531,4 @@ const { endpoint, headers } = buildOpenAIRequestConfig(

body: JSON.stringify({ ...openAiPayload, stream: false }),
signal: controller.signal
// Merge the internal timeout controller with the caller's cancellation signal.
signal: signal ? anySignal([controller.signal, signal]) : controller.signal
});

@@ -585,3 +596,3 @@ if (!response.ok) {

}
async function callOpenAiWithRetries(id, openAiPayload, openAiConfig, retries = 5, chunkTimeoutMs = 15e3, requestTimeoutMs = 12e4) {
async function callOpenAiWithRetries(id, openAiPayload, openAiConfig, retries = 5, chunkTimeoutMs = 15e3, requestTimeoutMs = 12e4, signal) {
logger_default.log(

@@ -605,6 +616,7 @@ id,

chunkTimeoutMs,
requestTimeoutMs
requestTimeoutMs,
signal
);
} else {
return callOpenAI(id, openAiPayload, openAiConfig, requestTimeoutMs);
return callOpenAI(id, openAiPayload, openAiConfig, requestTimeoutMs, signal);
}

@@ -614,2 +626,3 @@ },

retries,
signal,
baseDelayMs: 250,

@@ -746,3 +759,3 @@ onError: (error2, attempt) => {

}
async function callAnthropic(id, payload, config, requestTimeoutMs = 12e4) {
async function callAnthropic(id, payload, config, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c;

@@ -771,3 +784,4 @@ const anthropicMessages = jigAnthropicMessages(payload.messages);

modelId: MODEL_ID
})
}),
{ abortSignal: signal }
);

@@ -798,3 +812,4 @@ const decodedResponseBody = new TextDecoder().decode(response.body);

},
timeout: requestTimeoutMs
timeout: requestTimeoutMs,
signal
}

@@ -869,9 +884,10 @@ );

}
async function callAnthropicWithRetries(id, payload, config, retries = 5, requestTimeoutMs = 12e4) {
async function callAnthropicWithRetries(id, payload, config, retries = 5, requestTimeoutMs = 12e4, signal) {
return withRetries(
id,
"Anthropic",
() => callAnthropic(id, payload, config, requestTimeoutMs),
() => callAnthropic(id, payload, config, requestTimeoutMs, signal),
{
retries
retries,
signal
}

@@ -994,3 +1010,3 @@ );

}
async function callGoogleAI(id, payload, requestTimeoutMs = 12e4) {
async function callGoogleAI(id, payload, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;

@@ -1019,3 +1035,4 @@ const contents = jigGoogleMessages(payload.messages);

},
timeout: requestTimeoutMs
timeout: requestTimeoutMs,
signal
}

@@ -1119,6 +1136,7 @@ );

}
async function callGoogleAIWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4) {
async function callGoogleAIWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4, signal) {
let hasTriedWithoutImages = false;
return withRetries(id, "Google AI", () => callGoogleAI(id, payload, requestTimeoutMs), {
return withRetries(id, "Google AI", () => callGoogleAI(id, payload, requestTimeoutMs, signal), {
retries,
signal,
onError: (error2, attempt) => {

@@ -1249,3 +1267,3 @@ var _a, _b;

}
async function callGroq(id, payload, requestTimeoutMs = 12e4) {
async function callGroq(id, payload, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c, _d, _e, _f, _g;

@@ -1260,3 +1278,4 @@ const response = await import_axios.default.post(

},
timeout: requestTimeoutMs
timeout: requestTimeoutMs,
signal
}

@@ -1309,5 +1328,6 @@ );

}
async function callGroqWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4) {
return withRetries(id, "Groq", () => callGroq(id, payload, requestTimeoutMs), {
retries
async function callGroqWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4, signal) {
return withRetries(id, "Groq", () => callGroq(id, payload, requestTimeoutMs, signal), {
retries,
signal
});

@@ -1377,3 +1397,3 @@ }

}
async function callOpenRouter(id, payload, requestTimeoutMs = 12e4) {
async function callOpenRouter(id, payload, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c, _d, _e, _f, _g, _h, _i;

@@ -1388,3 +1408,4 @@ const response = await import_axios.default.post(

},
timeout: requestTimeoutMs
timeout: requestTimeoutMs,
signal
}

@@ -1447,8 +1468,8 @@ );

}
async function callOpenRouterWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4) {
async function callOpenRouterWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4, signal) {
return withRetries(
id,
"OpenRouter",
() => callOpenRouter(id, payload, requestTimeoutMs),
{ retries }
() => callOpenRouter(id, payload, requestTimeoutMs, signal),
{ retries, signal }
);

@@ -1494,3 +1515,3 @@ }

async function callWithRetries(id, aiPayload, aiConfig, retries = 5, chunkTimeoutMs = 15e3) {
var _a;
var _a, _b;
try {

@@ -1500,2 +1521,3 @@ const { provider, modelId } = parseModelString(aiPayload.model);

const requestTimeoutMs = (_a = aiPayload.requestTimeoutMs) != null ? _a : 12e4;
const signal = aiPayload.signal;
switch (provider) {

@@ -1508,3 +1530,4 @@ case "anthropic":

retries,
requestTimeoutMs
requestTimeoutMs,
signal
);

@@ -1518,3 +1541,4 @@ case "openai":

chunkTimeoutMs,
requestTimeoutMs
requestTimeoutMs,
signal
);

@@ -1526,3 +1550,4 @@ case "groq":

retries,
requestTimeoutMs
requestTimeoutMs,
signal
);

@@ -1534,3 +1559,4 @@ case "google":

retries,
requestTimeoutMs
requestTimeoutMs,
signal
);

@@ -1542,6 +1568,9 @@ case "openrouter":

retries,
requestTimeoutMs
requestTimeoutMs,
signal
);
}
} catch (error2) {
if ((_b = aiPayload.signal) == null ? void 0 : _b.aborted)
throw error2;
if (aiPayload.fallbackModel) {

@@ -1548,0 +1577,0 @@ logger_default.error(

@@ -113,4 +113,9 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {

var decode = __require("heic-decode");
function anySignal(signals) {
return AbortSignal.any(
signals
);
}
async function withRetries(identifier, apiName, fn, options = {}) {
var _a, _b, _c, _d;
var _a, _b, _c, _d, _e;
const { retries = 5, baseDelayMs = 125, onError } = options;

@@ -124,2 +129,4 @@ logger_default.log(identifier, `Calling ${apiName} API with retries`);

lastError = error3;
if ((_a = options.signal) == null ? void 0 : _a.aborted)
throw error3;
if (onError) {

@@ -131,3 +138,3 @@ onError(error3, attempt);

`Retry #${attempt} error: ${error3.message}`,
((_a = error3.response) == null ? void 0 : _a.data) || error3
((_b = error3.response) == null ? void 0 : _b.data) || error3
);

@@ -138,3 +145,3 @@ }

}
const detail = ((_d = (_c = (_b = lastError == null ? void 0 : lastError.response) == null ? void 0 : _b.data) == null ? void 0 : _c.error) == null ? void 0 : _d.message) || (lastError == null ? void 0 : lastError.message) || String(lastError);
const detail = ((_e = (_d = (_c = lastError == null ? void 0 : lastError.response) == null ? void 0 : _c.data) == null ? void 0 : _d.error) == null ? void 0 : _e.message) || (lastError == null ? void 0 : lastError.message) || String(lastError);
const error2 = new Error(

@@ -362,3 +369,3 @@ `Failed to call ${apiName} API after ${retries} attempts: ${detail}`

}
async function callOpenAIStream(id, openAiPayload, openAiConfig, chunkTimeoutMs, requestTimeoutMs = 12e4) {
async function callOpenAIStream(id, openAiPayload, openAiConfig, chunkTimeoutMs, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;

@@ -383,3 +390,6 @@ const functionNames = openAiPayload.tools ? new Set(openAiPayload.tools.map((fn) => fn.function.name)) : null;

body: JSON.stringify({ ...openAiPayload, stream: true }),
signal: controller.signal
// Merge (don't overwrite) the internal timeout controller with the caller's
// cancellation signal so both an internal timeout and an external abort stop
// the stream.
signal: signal ? anySignal([controller.signal, signal]) : controller.signal
});

@@ -474,3 +484,3 @@ if (!response.body) {

}
async function callOpenAI(id, openAiPayload, openAiConfig, requestTimeoutMs = 12e4) {
async function callOpenAI(id, openAiPayload, openAiConfig, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;

@@ -490,3 +500,4 @@ const { endpoint, headers } = buildOpenAIRequestConfig(

body: JSON.stringify({ ...openAiPayload, stream: false }),
signal: controller.signal
// Merge the internal timeout controller with the caller's cancellation signal.
signal: signal ? anySignal([controller.signal, signal]) : controller.signal
});

@@ -554,3 +565,3 @@ if (!response.ok) {

}
async function callOpenAiWithRetries(id, openAiPayload, openAiConfig, retries = 5, chunkTimeoutMs = 15e3, requestTimeoutMs = 12e4) {
async function callOpenAiWithRetries(id, openAiPayload, openAiConfig, retries = 5, chunkTimeoutMs = 15e3, requestTimeoutMs = 12e4, signal) {
logger_default.log(

@@ -574,6 +585,7 @@ id,

chunkTimeoutMs,
requestTimeoutMs
requestTimeoutMs,
signal
);
} else {
return callOpenAI(id, openAiPayload, openAiConfig, requestTimeoutMs);
return callOpenAI(id, openAiPayload, openAiConfig, requestTimeoutMs, signal);
}

@@ -583,2 +595,3 @@ },

retries,
signal,
baseDelayMs: 250,

@@ -715,3 +728,3 @@ onError: (error2, attempt) => {

}
async function callAnthropic(id, payload, config, requestTimeoutMs = 12e4) {
async function callAnthropic(id, payload, config, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c;

@@ -740,3 +753,4 @@ const anthropicMessages = jigAnthropicMessages(payload.messages);

modelId: MODEL_ID
})
}),
{ abortSignal: signal }
);

@@ -767,3 +781,4 @@ const decodedResponseBody = new TextDecoder().decode(response.body);

},
timeout: requestTimeoutMs
timeout: requestTimeoutMs,
signal
}

@@ -838,9 +853,10 @@ );

}
async function callAnthropicWithRetries(id, payload, config, retries = 5, requestTimeoutMs = 12e4) {
async function callAnthropicWithRetries(id, payload, config, retries = 5, requestTimeoutMs = 12e4, signal) {
return withRetries(
id,
"Anthropic",
() => callAnthropic(id, payload, config, requestTimeoutMs),
() => callAnthropic(id, payload, config, requestTimeoutMs, signal),
{
retries
retries,
signal
}

@@ -963,3 +979,3 @@ );

}
async function callGoogleAI(id, payload, requestTimeoutMs = 12e4) {
async function callGoogleAI(id, payload, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;

@@ -988,3 +1004,4 @@ const contents = jigGoogleMessages(payload.messages);

},
timeout: requestTimeoutMs
timeout: requestTimeoutMs,
signal
}

@@ -1088,6 +1105,7 @@ );

}
async function callGoogleAIWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4) {
async function callGoogleAIWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4, signal) {
let hasTriedWithoutImages = false;
return withRetries(id, "Google AI", () => callGoogleAI(id, payload, requestTimeoutMs), {
return withRetries(id, "Google AI", () => callGoogleAI(id, payload, requestTimeoutMs, signal), {
retries,
signal,
onError: (error2, attempt) => {

@@ -1218,3 +1236,3 @@ var _a, _b;

}
async function callGroq(id, payload, requestTimeoutMs = 12e4) {
async function callGroq(id, payload, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c, _d, _e, _f, _g;

@@ -1229,3 +1247,4 @@ const response = await axios.post(

},
timeout: requestTimeoutMs
timeout: requestTimeoutMs,
signal
}

@@ -1278,5 +1297,6 @@ );

}
async function callGroqWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4) {
return withRetries(id, "Groq", () => callGroq(id, payload, requestTimeoutMs), {
retries
async function callGroqWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4, signal) {
return withRetries(id, "Groq", () => callGroq(id, payload, requestTimeoutMs, signal), {
retries,
signal
});

@@ -1346,3 +1366,3 @@ }

}
async function callOpenRouter(id, payload, requestTimeoutMs = 12e4) {
async function callOpenRouter(id, payload, requestTimeoutMs = 12e4, signal) {
var _a, _b, _c, _d, _e, _f, _g, _h, _i;

@@ -1357,3 +1377,4 @@ const response = await axios.post(

},
timeout: requestTimeoutMs
timeout: requestTimeoutMs,
signal
}

@@ -1416,8 +1437,8 @@ );

}
async function callOpenRouterWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4) {
async function callOpenRouterWithRetries(id, payload, retries = 5, requestTimeoutMs = 12e4, signal) {
return withRetries(
id,
"OpenRouter",
() => callOpenRouter(id, payload, requestTimeoutMs),
{ retries }
() => callOpenRouter(id, payload, requestTimeoutMs, signal),
{ retries, signal }
);

@@ -1463,3 +1484,3 @@ }

async function callWithRetries(id, aiPayload, aiConfig, retries = 5, chunkTimeoutMs = 15e3) {
var _a;
var _a, _b;
try {

@@ -1469,2 +1490,3 @@ const { provider, modelId } = parseModelString(aiPayload.model);

const requestTimeoutMs = (_a = aiPayload.requestTimeoutMs) != null ? _a : 12e4;
const signal = aiPayload.signal;
switch (provider) {

@@ -1477,3 +1499,4 @@ case "anthropic":

retries,
requestTimeoutMs
requestTimeoutMs,
signal
);

@@ -1487,3 +1510,4 @@ case "openai":

chunkTimeoutMs,
requestTimeoutMs
requestTimeoutMs,
signal
);

@@ -1495,3 +1519,4 @@ case "groq":

retries,
requestTimeoutMs
requestTimeoutMs,
signal
);

@@ -1503,3 +1528,4 @@ case "google":

retries,
requestTimeoutMs
requestTimeoutMs,
signal
);

@@ -1511,6 +1537,9 @@ case "openrouter":

retries,
requestTimeoutMs
requestTimeoutMs,
signal
);
}
} catch (error2) {
if ((_b = aiPayload.signal) == null ? void 0 : _b.aborted)
throw error2;
if (aiPayload.fallbackModel) {

@@ -1517,0 +1546,0 @@ logger_default.error(

{
"name": "190proof",
"version": "1.0.101",
"version": "1.0.102",
"description": "",

@@ -5,0 +5,0 @@ "main": "./dist/index.js",

@@ -276,2 +276,7 @@ # 190proof

Two optional per-request knobs live on `payload` (`GenericPayload`):
- `payload.requestTimeoutMs`: `number` - Per-attempt HTTP timeout in ms (default: 120000), honored by every adapter.
- `payload.signal`: `AbortSignal` - Caller-supplied cancellation. When it aborts, the in-flight provider request is cancelled and `callWithRetries` **rejects immediately — it does not retry or fall back** (both the retry loop and the fallback branch bail on `signal.aborted`). Threaded to the underlying fetch/axios/SDK call of each provider.
#### Returns

@@ -278,0 +283,0 @@

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display