@llmops/gateway 0.2.7-beta.1 → 0.2.7
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/dist/index.cjs +10 -96
- package/dist/index.d.cts +1 -33
- package/dist/index.d.mts +1 -33
- package/dist/index.mjs +10 -92
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -4304,57 +4304,8 @@ function _instanceof(cls, params = {}) {
|
|
|
4304
4304
|
return inst;
|
|
4305
4305
|
}
|
|
4306
4306
|
|
|
4307
|
-
//#endregion
|
|
4308
|
-
//#region src/providers/providerIdMapping.ts
|
|
4309
|
-
/**
|
|
4310
|
-
* Provider ID mapping between models.dev and Portkey gateway.
|
|
4311
|
-
*
|
|
4312
|
-
* models.dev uses different provider IDs than Portkey for some providers.
|
|
4313
|
-
* This mapping allows converting from models.dev IDs to Portkey gateway IDs.
|
|
4314
|
-
*
|
|
4315
|
-
* Key: models.dev provider ID
|
|
4316
|
-
* Value: Portkey gateway provider ID
|
|
4317
|
-
*/
|
|
4318
|
-
const MODELS_DEV_TO_PORTKEY_PROVIDER_MAP = {
|
|
4319
|
-
"azure-cognitive-services": "azure-ai",
|
|
4320
|
-
azure: "azure-openai"
|
|
4321
|
-
};
|
|
4322
|
-
/**
|
|
4323
|
-
* Reverse mapping from Portkey to models.dev
|
|
4324
|
-
*/
|
|
4325
|
-
const PORTKEY_TO_MODELS_DEV_PROVIDER_MAP = Object.fromEntries(Object.entries(MODELS_DEV_TO_PORTKEY_PROVIDER_MAP).map(([k, v]) => [v, k]));
|
|
4326
|
-
/**
|
|
4327
|
-
* Get the Portkey gateway provider ID for a given models.dev provider ID.
|
|
4328
|
-
* Returns the original ID if no mapping exists.
|
|
4329
|
-
*
|
|
4330
|
-
* @param modelsDevProviderId - The provider ID from models.dev
|
|
4331
|
-
* @returns The corresponding Portkey gateway provider ID
|
|
4332
|
-
*/
|
|
4333
|
-
function getPortkeyProviderId(modelsDevProviderId) {
|
|
4334
|
-
return MODELS_DEV_TO_PORTKEY_PROVIDER_MAP[modelsDevProviderId] ?? modelsDevProviderId;
|
|
4335
|
-
}
|
|
4336
|
-
/**
|
|
4337
|
-
* Get the models.dev provider ID for a given Portkey gateway provider ID.
|
|
4338
|
-
* Returns the original ID if no mapping exists.
|
|
4339
|
-
*
|
|
4340
|
-
* @param portkeyProviderId - The provider ID from Portkey gateway
|
|
4341
|
-
* @returns The corresponding models.dev provider ID
|
|
4342
|
-
*/
|
|
4343
|
-
function getModelsDevProviderId(portkeyProviderId) {
|
|
4344
|
-
return PORTKEY_TO_MODELS_DEV_PROVIDER_MAP[portkeyProviderId] ?? portkeyProviderId;
|
|
4345
|
-
}
|
|
4346
|
-
|
|
4347
4307
|
//#endregion
|
|
4348
4308
|
//#region src/middlewares/requestValidator/schema/config.ts
|
|
4349
|
-
/**
|
|
4350
|
-
* Check if a provider ID is valid.
|
|
4351
|
-
* Accepts both Portkey provider IDs and models.dev provider IDs that can be mapped.
|
|
4352
|
-
*/
|
|
4353
|
-
function isValidProvider$1(value) {
|
|
4354
|
-
if (VALID_PROVIDERS.includes(value)) return true;
|
|
4355
|
-
const mappedId = getPortkeyProviderId(value);
|
|
4356
|
-
return VALID_PROVIDERS.includes(mappedId);
|
|
4357
|
-
}
|
|
4358
4309
|
const configSchema = object({
|
|
4359
4310
|
strategy: object({
|
|
4360
4311
|
mode: string().refine((value) => [
|
|
@@ -4370,7 +4321,7 @@ const configSchema = object({
|
|
|
4370
4321
|
})).optional(),
|
|
4371
4322
|
default: string().optional()
|
|
4372
4323
|
}).optional(),
|
|
4373
|
-
provider: string().refine((value) =>
|
|
4324
|
+
provider: string().refine((value) => VALID_PROVIDERS.includes(value), { message: `Invalid 'provider' value. Must be one of: ${VALID_PROVIDERS.join(", ")}` }).optional(),
|
|
4374
4325
|
api_key: string().optional(),
|
|
4375
4326
|
aws_secret_access_key: string().optional(),
|
|
4376
4327
|
aws_access_key_id: string().optional(),
|
|
@@ -4400,17 +4351,8 @@ const configSchema = object({
|
|
|
4400
4351
|
vertex_service_account_json: object({}).catchall(string()).optional(),
|
|
4401
4352
|
openai_project: string().optional(),
|
|
4402
4353
|
openai_organization: string().optional(),
|
|
4403
|
-
azure_resource_name: string().optional(),
|
|
4404
|
-
azure_deployment_id: string().optional(),
|
|
4405
|
-
azure_api_version: string().optional(),
|
|
4406
4354
|
azure_model_name: string().optional(),
|
|
4407
4355
|
azure_auth_mode: string().optional(),
|
|
4408
|
-
azure_ad_token: string().optional(),
|
|
4409
|
-
azure_managed_client_id: string().optional(),
|
|
4410
|
-
azure_workload_client_id: string().optional(),
|
|
4411
|
-
azure_entra_client_id: string().optional(),
|
|
4412
|
-
azure_entra_client_secret: string().optional(),
|
|
4413
|
-
azure_entra_tenant_id: string().optional(),
|
|
4414
4356
|
strict_open_ai_compliance: boolean().optional()
|
|
4415
4357
|
}).refine((value) => {
|
|
4416
4358
|
const hasProviderApiKey = value.provider !== void 0 && value.api_key !== void 0;
|
|
@@ -4505,15 +4447,6 @@ const Environment = (c) => {
|
|
|
4505
4447
|
|
|
4506
4448
|
//#endregion
|
|
4507
4449
|
//#region src/middlewares/requestValidator/index.ts
|
|
4508
|
-
/**
|
|
4509
|
-
* Check if a provider ID is valid.
|
|
4510
|
-
* Accepts both Portkey provider IDs and models.dev provider IDs that can be mapped.
|
|
4511
|
-
*/
|
|
4512
|
-
function isValidProvider(value) {
|
|
4513
|
-
if (VALID_PROVIDERS.includes(value)) return true;
|
|
4514
|
-
const mappedId = getPortkeyProviderId(value);
|
|
4515
|
-
return VALID_PROVIDERS.includes(mappedId);
|
|
4516
|
-
}
|
|
4517
4450
|
const VALIDATION_PATTERNS = {
|
|
4518
4451
|
CONTROL_CHARS: /[\x00-\x1F\x7F]/,
|
|
4519
4452
|
SUSPICIOUS_CHARS: /[\s<>{}|\\^`]/,
|
|
@@ -4619,7 +4552,7 @@ const requestValidator = (c, next) => {
|
|
|
4619
4552
|
status: 400,
|
|
4620
4553
|
headers: { "content-type": "application/json" }
|
|
4621
4554
|
});
|
|
4622
|
-
if (requestHeaders[`x-${POWERED_BY}-provider`] && !
|
|
4555
|
+
if (requestHeaders[`x-${POWERED_BY}-provider`] && !VALID_PROVIDERS.includes(requestHeaders[`x-${POWERED_BY}-provider`])) return new Response(JSON.stringify({
|
|
4623
4556
|
status: "failure",
|
|
4624
4557
|
message: `Invalid provider passed`
|
|
4625
4558
|
}), {
|
|
@@ -10239,7 +10172,7 @@ const retryRequest = async (url, options, retryCount, statusCodesToRetry, timeou
|
|
|
10239
10172
|
|
|
10240
10173
|
//#endregion
|
|
10241
10174
|
//#region package.json
|
|
10242
|
-
var version = "0.2.7
|
|
10175
|
+
var version = "0.2.7";
|
|
10243
10176
|
|
|
10244
10177
|
//#endregion
|
|
10245
10178
|
//#region src/providers/bytez/api.ts
|
|
@@ -17157,7 +17090,7 @@ const transformToProviderRequest = (provider, params, requestBody, fn, requestHe
|
|
|
17157
17090
|
if (fn === "createFinetune" && [AZURE_OPEN_AI, FIREWORKS_AI].includes(provider)) return transformToProviderRequestBody(provider, requestBody, requestHeaders, providerOptions, fn);
|
|
17158
17091
|
if (requestBody instanceof FormData || requestBody instanceof ArrayBuffer) return requestBody;
|
|
17159
17092
|
if (fn === "proxy") return params;
|
|
17160
|
-
const providerAPIConfig = providers_default[
|
|
17093
|
+
const providerAPIConfig = providers_default[provider].api;
|
|
17161
17094
|
if (providerAPIConfig.transformToFormData && providerAPIConfig.transformToFormData({ gatewayRequestBody: params })) return transformToProviderRequestFormData(provider, params, fn, providerOptions);
|
|
17162
17095
|
return transformToProviderRequestJSON(provider, params, fn, providerOptions);
|
|
17163
17096
|
};
|
|
@@ -30118,7 +30051,7 @@ async function responseHandler(c, response, streamingMode, providerOptions, resp
|
|
|
30118
30051
|
let responseTransformerFunction;
|
|
30119
30052
|
const responseContentType = response.headers?.get("content-type");
|
|
30120
30053
|
const isSuccessStatusCode = [200, 246].includes(response.status);
|
|
30121
|
-
const provider =
|
|
30054
|
+
const provider = providerOptions.provider;
|
|
30122
30055
|
const providerConfig = providers_default[provider];
|
|
30123
30056
|
let providerTransformers = providers_default[provider]?.responseTransforms;
|
|
30124
30057
|
if (providerConfig?.getConfig) providerTransformers = providerConfig.getConfig({
|
|
@@ -30720,8 +30653,7 @@ var PreRequestValidatorService = class {
|
|
|
30720
30653
|
var ProviderContext = class {
|
|
30721
30654
|
constructor(provider) {
|
|
30722
30655
|
this.provider = provider;
|
|
30723
|
-
|
|
30724
|
-
if (!providers_default[this.provider]) throw new GatewayError(`Provider ${provider} not found`);
|
|
30656
|
+
if (!providers_default[provider]) throw new GatewayError(`Provider ${provider} not found`);
|
|
30725
30657
|
}
|
|
30726
30658
|
get providerConfig() {
|
|
30727
30659
|
return providers_default[this.provider];
|
|
@@ -30993,20 +30925,6 @@ var ResponseService = class {
|
|
|
30993
30925
|
|
|
30994
30926
|
//#endregion
|
|
30995
30927
|
//#region src/handlers/handlerUtils.ts
|
|
30996
|
-
/**
|
|
30997
|
-
* Normalizes Azure OpenAI config fields from JSON config format to provider format.
|
|
30998
|
-
* JSON config uses `azure_*` prefix (e.g., `azure_resource_name`) which converts to `azureResourceName`,
|
|
30999
|
-
* but the provider expects `resourceName`, `deploymentId`, etc.
|
|
31000
|
-
* This function recursively normalizes nested targets as well.
|
|
31001
|
-
*/
|
|
31002
|
-
function normalizeAzureConfig(config$1) {
|
|
31003
|
-
const normalized = { ...config$1 };
|
|
31004
|
-
if (normalized.azureResourceName && !normalized.resourceName) normalized.resourceName = normalized.azureResourceName;
|
|
31005
|
-
if (normalized.azureDeploymentId && !normalized.deploymentId) normalized.deploymentId = normalized.azureDeploymentId;
|
|
31006
|
-
if (normalized.azureApiVersion && !normalized.apiVersion) normalized.apiVersion = normalized.azureApiVersion;
|
|
31007
|
-
if (Array.isArray(normalized.targets)) normalized.targets = normalized.targets.map((target) => normalizeAzureConfig(target));
|
|
31008
|
-
return normalized;
|
|
31009
|
-
}
|
|
31010
30928
|
function constructRequestBody(requestContext, providerHeaders) {
|
|
31011
30929
|
const headerContentType = providerHeaders[HEADER_KEYS.CONTENT_TYPE];
|
|
31012
30930
|
const requestContentType = requestContext.getHeader(HEADER_KEYS.CONTENT_TYPE);
|
|
@@ -31520,7 +31438,7 @@ function constructConfigFromRequestHeaders(requestHeaders) {
|
|
|
31520
31438
|
...oracleConfig
|
|
31521
31439
|
};
|
|
31522
31440
|
}
|
|
31523
|
-
return
|
|
31441
|
+
return convertKeysToCamelCase(parsedConfigJson, [
|
|
31524
31442
|
"override_params",
|
|
31525
31443
|
"params",
|
|
31526
31444
|
"checks",
|
|
@@ -31535,7 +31453,7 @@ function constructConfigFromRequestHeaders(requestHeaders) {
|
|
|
31535
31453
|
"integrationDetails",
|
|
31536
31454
|
"virtualKeyDetails",
|
|
31537
31455
|
"cb_config"
|
|
31538
|
-
])
|
|
31456
|
+
]);
|
|
31539
31457
|
}
|
|
31540
31458
|
return {
|
|
31541
31459
|
provider: requestHeaders[`x-${POWERED_BY}-provider`],
|
|
@@ -32123,7 +32041,7 @@ async function realTimeHandler(c) {
|
|
|
32123
32041
|
try {
|
|
32124
32042
|
const requestHeaders = Object.fromEntries(c.req.raw.headers);
|
|
32125
32043
|
const providerOptions = constructConfigFromRequestHeaders(requestHeaders);
|
|
32126
|
-
const apiConfig = providers_default[
|
|
32044
|
+
const apiConfig = providers_default[providerOptions.provider ?? ""].api;
|
|
32127
32045
|
const url = getURLForOutgoingConnection(apiConfig, providerOptions, c.req.url, c);
|
|
32128
32046
|
const options = await getOptionsForOutgoingConnection(apiConfig, providerOptions, url, c);
|
|
32129
32047
|
const sessionOptions = {
|
|
@@ -33418,9 +33336,5 @@ app.delete("/v1/*", requestValidator, proxyHandler);
|
|
|
33418
33336
|
var src_default = app;
|
|
33419
33337
|
|
|
33420
33338
|
//#endregion
|
|
33421
|
-
exports.MODELS_DEV_TO_PORTKEY_PROVIDER_MAP = MODELS_DEV_TO_PORTKEY_PROVIDER_MAP;
|
|
33422
|
-
exports.PORTKEY_TO_MODELS_DEV_PROVIDER_MAP = PORTKEY_TO_MODELS_DEV_PROVIDER_MAP;
|
|
33423
33339
|
exports.Providers = providers_default;
|
|
33424
|
-
exports.default = src_default;
|
|
33425
|
-
exports.getModelsDevProviderId = getModelsDevProviderId;
|
|
33426
|
-
exports.getPortkeyProviderId = getPortkeyProviderId;
|
|
33340
|
+
exports.default = src_default;
|
package/dist/index.d.cts
CHANGED
|
@@ -423,38 +423,6 @@ interface ProviderConfigs {
|
|
|
423
423
|
}) => any;
|
|
424
424
|
}
|
|
425
425
|
//#endregion
|
|
426
|
-
//#region src/providers/providerIdMapping.d.ts
|
|
427
|
-
/**
|
|
428
|
-
* Provider ID mapping between models.dev and Portkey gateway.
|
|
429
|
-
*
|
|
430
|
-
* models.dev uses different provider IDs than Portkey for some providers.
|
|
431
|
-
* This mapping allows converting from models.dev IDs to Portkey gateway IDs.
|
|
432
|
-
*
|
|
433
|
-
* Key: models.dev provider ID
|
|
434
|
-
* Value: Portkey gateway provider ID
|
|
435
|
-
*/
|
|
436
|
-
declare const MODELS_DEV_TO_PORTKEY_PROVIDER_MAP: Record<string, string>;
|
|
437
|
-
/**
|
|
438
|
-
* Reverse mapping from Portkey to models.dev
|
|
439
|
-
*/
|
|
440
|
-
declare const PORTKEY_TO_MODELS_DEV_PROVIDER_MAP: Record<string, string>;
|
|
441
|
-
/**
|
|
442
|
-
* Get the Portkey gateway provider ID for a given models.dev provider ID.
|
|
443
|
-
* Returns the original ID if no mapping exists.
|
|
444
|
-
*
|
|
445
|
-
* @param modelsDevProviderId - The provider ID from models.dev
|
|
446
|
-
* @returns The corresponding Portkey gateway provider ID
|
|
447
|
-
*/
|
|
448
|
-
declare function getPortkeyProviderId(modelsDevProviderId: string): string;
|
|
449
|
-
/**
|
|
450
|
-
* Get the models.dev provider ID for a given Portkey gateway provider ID.
|
|
451
|
-
* Returns the original ID if no mapping exists.
|
|
452
|
-
*
|
|
453
|
-
* @param portkeyProviderId - The provider ID from Portkey gateway
|
|
454
|
-
* @returns The corresponding models.dev provider ID
|
|
455
|
-
*/
|
|
456
|
-
declare function getModelsDevProviderId(portkeyProviderId: string): string;
|
|
457
|
-
//#endregion
|
|
458
426
|
//#region src/providers/index.d.ts
|
|
459
427
|
declare const Providers: {
|
|
460
428
|
[key: string]: ProviderConfigs;
|
|
@@ -463,4 +431,4 @@ declare const Providers: {
|
|
|
463
431
|
//#region src/index.d.ts
|
|
464
432
|
declare const app: Hono<hono_types0.BlankEnv, hono_types0.BlankSchema, "/">;
|
|
465
433
|
//#endregion
|
|
466
|
-
export {
|
|
434
|
+
export { Providers, app as default };
|
package/dist/index.d.mts
CHANGED
|
@@ -423,38 +423,6 @@ interface ProviderConfigs {
|
|
|
423
423
|
}) => any;
|
|
424
424
|
}
|
|
425
425
|
//#endregion
|
|
426
|
-
//#region src/providers/providerIdMapping.d.ts
|
|
427
|
-
/**
|
|
428
|
-
* Provider ID mapping between models.dev and Portkey gateway.
|
|
429
|
-
*
|
|
430
|
-
* models.dev uses different provider IDs than Portkey for some providers.
|
|
431
|
-
* This mapping allows converting from models.dev IDs to Portkey gateway IDs.
|
|
432
|
-
*
|
|
433
|
-
* Key: models.dev provider ID
|
|
434
|
-
* Value: Portkey gateway provider ID
|
|
435
|
-
*/
|
|
436
|
-
declare const MODELS_DEV_TO_PORTKEY_PROVIDER_MAP: Record<string, string>;
|
|
437
|
-
/**
|
|
438
|
-
* Reverse mapping from Portkey to models.dev
|
|
439
|
-
*/
|
|
440
|
-
declare const PORTKEY_TO_MODELS_DEV_PROVIDER_MAP: Record<string, string>;
|
|
441
|
-
/**
|
|
442
|
-
* Get the Portkey gateway provider ID for a given models.dev provider ID.
|
|
443
|
-
* Returns the original ID if no mapping exists.
|
|
444
|
-
*
|
|
445
|
-
* @param modelsDevProviderId - The provider ID from models.dev
|
|
446
|
-
* @returns The corresponding Portkey gateway provider ID
|
|
447
|
-
*/
|
|
448
|
-
declare function getPortkeyProviderId(modelsDevProviderId: string): string;
|
|
449
|
-
/**
|
|
450
|
-
* Get the models.dev provider ID for a given Portkey gateway provider ID.
|
|
451
|
-
* Returns the original ID if no mapping exists.
|
|
452
|
-
*
|
|
453
|
-
* @param portkeyProviderId - The provider ID from Portkey gateway
|
|
454
|
-
* @returns The corresponding models.dev provider ID
|
|
455
|
-
*/
|
|
456
|
-
declare function getModelsDevProviderId(portkeyProviderId: string): string;
|
|
457
|
-
//#endregion
|
|
458
426
|
//#region src/providers/index.d.ts
|
|
459
427
|
declare const Providers: {
|
|
460
428
|
[key: string]: ProviderConfigs;
|
|
@@ -463,4 +431,4 @@ declare const Providers: {
|
|
|
463
431
|
//#region src/index.d.ts
|
|
464
432
|
declare const app: Hono<hono_types0.BlankEnv, hono_types0.BlankSchema, "/">;
|
|
465
433
|
//#endregion
|
|
466
|
-
export {
|
|
434
|
+
export { Providers, app as default };
|
package/dist/index.mjs
CHANGED
|
@@ -4277,57 +4277,8 @@ function _instanceof(cls, params = {}) {
|
|
|
4277
4277
|
return inst;
|
|
4278
4278
|
}
|
|
4279
4279
|
|
|
4280
|
-
//#endregion
|
|
4281
|
-
//#region src/providers/providerIdMapping.ts
|
|
4282
|
-
/**
|
|
4283
|
-
* Provider ID mapping between models.dev and Portkey gateway.
|
|
4284
|
-
*
|
|
4285
|
-
* models.dev uses different provider IDs than Portkey for some providers.
|
|
4286
|
-
* This mapping allows converting from models.dev IDs to Portkey gateway IDs.
|
|
4287
|
-
*
|
|
4288
|
-
* Key: models.dev provider ID
|
|
4289
|
-
* Value: Portkey gateway provider ID
|
|
4290
|
-
*/
|
|
4291
|
-
const MODELS_DEV_TO_PORTKEY_PROVIDER_MAP = {
|
|
4292
|
-
"azure-cognitive-services": "azure-ai",
|
|
4293
|
-
azure: "azure-openai"
|
|
4294
|
-
};
|
|
4295
|
-
/**
|
|
4296
|
-
* Reverse mapping from Portkey to models.dev
|
|
4297
|
-
*/
|
|
4298
|
-
const PORTKEY_TO_MODELS_DEV_PROVIDER_MAP = Object.fromEntries(Object.entries(MODELS_DEV_TO_PORTKEY_PROVIDER_MAP).map(([k, v]) => [v, k]));
|
|
4299
|
-
/**
|
|
4300
|
-
* Get the Portkey gateway provider ID for a given models.dev provider ID.
|
|
4301
|
-
* Returns the original ID if no mapping exists.
|
|
4302
|
-
*
|
|
4303
|
-
* @param modelsDevProviderId - The provider ID from models.dev
|
|
4304
|
-
* @returns The corresponding Portkey gateway provider ID
|
|
4305
|
-
*/
|
|
4306
|
-
function getPortkeyProviderId(modelsDevProviderId) {
|
|
4307
|
-
return MODELS_DEV_TO_PORTKEY_PROVIDER_MAP[modelsDevProviderId] ?? modelsDevProviderId;
|
|
4308
|
-
}
|
|
4309
|
-
/**
|
|
4310
|
-
* Get the models.dev provider ID for a given Portkey gateway provider ID.
|
|
4311
|
-
* Returns the original ID if no mapping exists.
|
|
4312
|
-
*
|
|
4313
|
-
* @param portkeyProviderId - The provider ID from Portkey gateway
|
|
4314
|
-
* @returns The corresponding models.dev provider ID
|
|
4315
|
-
*/
|
|
4316
|
-
function getModelsDevProviderId(portkeyProviderId) {
|
|
4317
|
-
return PORTKEY_TO_MODELS_DEV_PROVIDER_MAP[portkeyProviderId] ?? portkeyProviderId;
|
|
4318
|
-
}
|
|
4319
|
-
|
|
4320
4280
|
//#endregion
|
|
4321
4281
|
//#region src/middlewares/requestValidator/schema/config.ts
|
|
4322
|
-
/**
|
|
4323
|
-
* Check if a provider ID is valid.
|
|
4324
|
-
* Accepts both Portkey provider IDs and models.dev provider IDs that can be mapped.
|
|
4325
|
-
*/
|
|
4326
|
-
function isValidProvider$1(value) {
|
|
4327
|
-
if (VALID_PROVIDERS.includes(value)) return true;
|
|
4328
|
-
const mappedId = getPortkeyProviderId(value);
|
|
4329
|
-
return VALID_PROVIDERS.includes(mappedId);
|
|
4330
|
-
}
|
|
4331
4282
|
const configSchema = object({
|
|
4332
4283
|
strategy: object({
|
|
4333
4284
|
mode: string().refine((value) => [
|
|
@@ -4343,7 +4294,7 @@ const configSchema = object({
|
|
|
4343
4294
|
})).optional(),
|
|
4344
4295
|
default: string().optional()
|
|
4345
4296
|
}).optional(),
|
|
4346
|
-
provider: string().refine((value) =>
|
|
4297
|
+
provider: string().refine((value) => VALID_PROVIDERS.includes(value), { message: `Invalid 'provider' value. Must be one of: ${VALID_PROVIDERS.join(", ")}` }).optional(),
|
|
4347
4298
|
api_key: string().optional(),
|
|
4348
4299
|
aws_secret_access_key: string().optional(),
|
|
4349
4300
|
aws_access_key_id: string().optional(),
|
|
@@ -4373,17 +4324,8 @@ const configSchema = object({
|
|
|
4373
4324
|
vertex_service_account_json: object({}).catchall(string()).optional(),
|
|
4374
4325
|
openai_project: string().optional(),
|
|
4375
4326
|
openai_organization: string().optional(),
|
|
4376
|
-
azure_resource_name: string().optional(),
|
|
4377
|
-
azure_deployment_id: string().optional(),
|
|
4378
|
-
azure_api_version: string().optional(),
|
|
4379
4327
|
azure_model_name: string().optional(),
|
|
4380
4328
|
azure_auth_mode: string().optional(),
|
|
4381
|
-
azure_ad_token: string().optional(),
|
|
4382
|
-
azure_managed_client_id: string().optional(),
|
|
4383
|
-
azure_workload_client_id: string().optional(),
|
|
4384
|
-
azure_entra_client_id: string().optional(),
|
|
4385
|
-
azure_entra_client_secret: string().optional(),
|
|
4386
|
-
azure_entra_tenant_id: string().optional(),
|
|
4387
4329
|
strict_open_ai_compliance: boolean().optional()
|
|
4388
4330
|
}).refine((value) => {
|
|
4389
4331
|
const hasProviderApiKey = value.provider !== void 0 && value.api_key !== void 0;
|
|
@@ -4478,15 +4420,6 @@ const Environment = (c) => {
|
|
|
4478
4420
|
|
|
4479
4421
|
//#endregion
|
|
4480
4422
|
//#region src/middlewares/requestValidator/index.ts
|
|
4481
|
-
/**
|
|
4482
|
-
* Check if a provider ID is valid.
|
|
4483
|
-
* Accepts both Portkey provider IDs and models.dev provider IDs that can be mapped.
|
|
4484
|
-
*/
|
|
4485
|
-
function isValidProvider(value) {
|
|
4486
|
-
if (VALID_PROVIDERS.includes(value)) return true;
|
|
4487
|
-
const mappedId = getPortkeyProviderId(value);
|
|
4488
|
-
return VALID_PROVIDERS.includes(mappedId);
|
|
4489
|
-
}
|
|
4490
4423
|
const VALIDATION_PATTERNS = {
|
|
4491
4424
|
CONTROL_CHARS: /[\x00-\x1F\x7F]/,
|
|
4492
4425
|
SUSPICIOUS_CHARS: /[\s<>{}|\\^`]/,
|
|
@@ -4592,7 +4525,7 @@ const requestValidator = (c, next) => {
|
|
|
4592
4525
|
status: 400,
|
|
4593
4526
|
headers: { "content-type": "application/json" }
|
|
4594
4527
|
});
|
|
4595
|
-
if (requestHeaders[`x-${POWERED_BY}-provider`] && !
|
|
4528
|
+
if (requestHeaders[`x-${POWERED_BY}-provider`] && !VALID_PROVIDERS.includes(requestHeaders[`x-${POWERED_BY}-provider`])) return new Response(JSON.stringify({
|
|
4596
4529
|
status: "failure",
|
|
4597
4530
|
message: `Invalid provider passed`
|
|
4598
4531
|
}), {
|
|
@@ -10212,7 +10145,7 @@ const retryRequest = async (url, options, retryCount, statusCodesToRetry, timeou
|
|
|
10212
10145
|
|
|
10213
10146
|
//#endregion
|
|
10214
10147
|
//#region package.json
|
|
10215
|
-
var version = "0.2.7
|
|
10148
|
+
var version = "0.2.7";
|
|
10216
10149
|
|
|
10217
10150
|
//#endregion
|
|
10218
10151
|
//#region src/providers/bytez/api.ts
|
|
@@ -17130,7 +17063,7 @@ const transformToProviderRequest = (provider, params, requestBody, fn, requestHe
|
|
|
17130
17063
|
if (fn === "createFinetune" && [AZURE_OPEN_AI, FIREWORKS_AI].includes(provider)) return transformToProviderRequestBody(provider, requestBody, requestHeaders, providerOptions, fn);
|
|
17131
17064
|
if (requestBody instanceof FormData || requestBody instanceof ArrayBuffer) return requestBody;
|
|
17132
17065
|
if (fn === "proxy") return params;
|
|
17133
|
-
const providerAPIConfig = providers_default[
|
|
17066
|
+
const providerAPIConfig = providers_default[provider].api;
|
|
17134
17067
|
if (providerAPIConfig.transformToFormData && providerAPIConfig.transformToFormData({ gatewayRequestBody: params })) return transformToProviderRequestFormData(provider, params, fn, providerOptions);
|
|
17135
17068
|
return transformToProviderRequestJSON(provider, params, fn, providerOptions);
|
|
17136
17069
|
};
|
|
@@ -30091,7 +30024,7 @@ async function responseHandler(c, response, streamingMode, providerOptions, resp
|
|
|
30091
30024
|
let responseTransformerFunction;
|
|
30092
30025
|
const responseContentType = response.headers?.get("content-type");
|
|
30093
30026
|
const isSuccessStatusCode = [200, 246].includes(response.status);
|
|
30094
|
-
const provider =
|
|
30027
|
+
const provider = providerOptions.provider;
|
|
30095
30028
|
const providerConfig = providers_default[provider];
|
|
30096
30029
|
let providerTransformers = providers_default[provider]?.responseTransforms;
|
|
30097
30030
|
if (providerConfig?.getConfig) providerTransformers = providerConfig.getConfig({
|
|
@@ -30693,8 +30626,7 @@ var PreRequestValidatorService = class {
|
|
|
30693
30626
|
var ProviderContext = class {
|
|
30694
30627
|
constructor(provider) {
|
|
30695
30628
|
this.provider = provider;
|
|
30696
|
-
|
|
30697
|
-
if (!providers_default[this.provider]) throw new GatewayError(`Provider ${provider} not found`);
|
|
30629
|
+
if (!providers_default[provider]) throw new GatewayError(`Provider ${provider} not found`);
|
|
30698
30630
|
}
|
|
30699
30631
|
get providerConfig() {
|
|
30700
30632
|
return providers_default[this.provider];
|
|
@@ -30966,20 +30898,6 @@ var ResponseService = class {
|
|
|
30966
30898
|
|
|
30967
30899
|
//#endregion
|
|
30968
30900
|
//#region src/handlers/handlerUtils.ts
|
|
30969
|
-
/**
|
|
30970
|
-
* Normalizes Azure OpenAI config fields from JSON config format to provider format.
|
|
30971
|
-
* JSON config uses `azure_*` prefix (e.g., `azure_resource_name`) which converts to `azureResourceName`,
|
|
30972
|
-
* but the provider expects `resourceName`, `deploymentId`, etc.
|
|
30973
|
-
* This function recursively normalizes nested targets as well.
|
|
30974
|
-
*/
|
|
30975
|
-
function normalizeAzureConfig(config$1) {
|
|
30976
|
-
const normalized = { ...config$1 };
|
|
30977
|
-
if (normalized.azureResourceName && !normalized.resourceName) normalized.resourceName = normalized.azureResourceName;
|
|
30978
|
-
if (normalized.azureDeploymentId && !normalized.deploymentId) normalized.deploymentId = normalized.azureDeploymentId;
|
|
30979
|
-
if (normalized.azureApiVersion && !normalized.apiVersion) normalized.apiVersion = normalized.azureApiVersion;
|
|
30980
|
-
if (Array.isArray(normalized.targets)) normalized.targets = normalized.targets.map((target) => normalizeAzureConfig(target));
|
|
30981
|
-
return normalized;
|
|
30982
|
-
}
|
|
30983
30901
|
function constructRequestBody(requestContext, providerHeaders) {
|
|
30984
30902
|
const headerContentType = providerHeaders[HEADER_KEYS.CONTENT_TYPE];
|
|
30985
30903
|
const requestContentType = requestContext.getHeader(HEADER_KEYS.CONTENT_TYPE);
|
|
@@ -31493,7 +31411,7 @@ function constructConfigFromRequestHeaders(requestHeaders) {
|
|
|
31493
31411
|
...oracleConfig
|
|
31494
31412
|
};
|
|
31495
31413
|
}
|
|
31496
|
-
return
|
|
31414
|
+
return convertKeysToCamelCase(parsedConfigJson, [
|
|
31497
31415
|
"override_params",
|
|
31498
31416
|
"params",
|
|
31499
31417
|
"checks",
|
|
@@ -31508,7 +31426,7 @@ function constructConfigFromRequestHeaders(requestHeaders) {
|
|
|
31508
31426
|
"integrationDetails",
|
|
31509
31427
|
"virtualKeyDetails",
|
|
31510
31428
|
"cb_config"
|
|
31511
|
-
])
|
|
31429
|
+
]);
|
|
31512
31430
|
}
|
|
31513
31431
|
return {
|
|
31514
31432
|
provider: requestHeaders[`x-${POWERED_BY}-provider`],
|
|
@@ -32096,7 +32014,7 @@ async function realTimeHandler(c) {
|
|
|
32096
32014
|
try {
|
|
32097
32015
|
const requestHeaders = Object.fromEntries(c.req.raw.headers);
|
|
32098
32016
|
const providerOptions = constructConfigFromRequestHeaders(requestHeaders);
|
|
32099
|
-
const apiConfig = providers_default[
|
|
32017
|
+
const apiConfig = providers_default[providerOptions.provider ?? ""].api;
|
|
32100
32018
|
const url = getURLForOutgoingConnection(apiConfig, providerOptions, c.req.url, c);
|
|
32101
32019
|
const options = await getOptionsForOutgoingConnection(apiConfig, providerOptions, url, c);
|
|
32102
32020
|
const sessionOptions = {
|
|
@@ -33391,4 +33309,4 @@ app.delete("/v1/*", requestValidator, proxyHandler);
|
|
|
33391
33309
|
var src_default = app;
|
|
33392
33310
|
|
|
33393
33311
|
//#endregion
|
|
33394
|
-
export {
|
|
33312
|
+
export { providers_default as Providers, src_default as default };
|