@zixt/host 0.0.92 → 0.0.94
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.js +86 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -28,7 +28,7 @@ import { homedir as homedir3 } from "node:os";
|
|
|
28
28
|
// package.json
|
|
29
29
|
var package_default = {
|
|
30
30
|
name: "@zixt/host",
|
|
31
|
-
version: "0.0.
|
|
31
|
+
version: "0.0.94",
|
|
32
32
|
type: "module",
|
|
33
33
|
exports: {
|
|
34
34
|
".": "./src/client.ts",
|
|
@@ -15802,6 +15802,15 @@ var ApiAuthBase = {
|
|
|
15802
15802
|
label: external_exports.string().min(1).max(120),
|
|
15803
15803
|
description: external_exports.string().max(2e3).nullable()
|
|
15804
15804
|
};
|
|
15805
|
+
var OAuthTokenEndpointAuthMethod = external_exports.enum([
|
|
15806
|
+
"none",
|
|
15807
|
+
"client_secret_basic",
|
|
15808
|
+
"client_secret_post"
|
|
15809
|
+
]);
|
|
15810
|
+
var OAuthHttpUrl = external_exports.url().max(2e3).refine((value) => {
|
|
15811
|
+
const url3 = new URL(value);
|
|
15812
|
+
return ["http:", "https:"].includes(url3.protocol) && !url3.username && !url3.password;
|
|
15813
|
+
}, "OAuth endpoints must be credential-free HTTP(S) URLs");
|
|
15805
15814
|
var ApiAuthScheme = external_exports.discriminatedUnion("type", [
|
|
15806
15815
|
external_exports.object({
|
|
15807
15816
|
...ApiAuthBase,
|
|
@@ -15823,6 +15832,17 @@ var ApiAuthScheme = external_exports.discriminatedUnion("type", [
|
|
|
15823
15832
|
external_exports.object({ id: external_exports.literal("username"), label: external_exports.string() }).strict(),
|
|
15824
15833
|
external_exports.object({ id: external_exports.literal("password"), label: external_exports.string() }).strict()
|
|
15825
15834
|
])
|
|
15835
|
+
}).strict(),
|
|
15836
|
+
external_exports.object({
|
|
15837
|
+
...ApiAuthBase,
|
|
15838
|
+
type: external_exports.literal("oauth2"),
|
|
15839
|
+
authorizationUrl: OAuthHttpUrl,
|
|
15840
|
+
tokenUrl: OAuthHttpUrl,
|
|
15841
|
+
scopes: external_exports.array(external_exports.string().min(1).max(500)).max(100),
|
|
15842
|
+
usePkce: external_exports.boolean().default(true),
|
|
15843
|
+
tokenEndpointAuthMethod: OAuthTokenEndpointAuthMethod.default("none"),
|
|
15844
|
+
/** Optional provider-supported static-token fallback, presented as Bearer auth. */
|
|
15845
|
+
fields: external_exports.array(external_exports.object({ id: external_exports.literal("token"), label: external_exports.string() }).strict()).max(1)
|
|
15826
15846
|
}).strict()
|
|
15827
15847
|
]);
|
|
15828
15848
|
var ApiAuthSchemeOverrideId = external_exports.string().min(1).max(120).regex(/^[A-Za-z0-9_.:-]+$/);
|
|
@@ -15842,9 +15862,22 @@ var ApiBearerAuthSchemeOverride = external_exports.object({
|
|
|
15842
15862
|
description: external_exports.string().min(1).max(2e3),
|
|
15843
15863
|
tokenLabel: external_exports.string().min(1).max(120)
|
|
15844
15864
|
}).strict();
|
|
15865
|
+
var ApiOAuth2AuthSchemeOverride = external_exports.object({
|
|
15866
|
+
schemeId: ApiAuthSchemeOverrideId,
|
|
15867
|
+
type: external_exports.literal("oauth2"),
|
|
15868
|
+
label: external_exports.string().min(1).max(120),
|
|
15869
|
+
description: external_exports.string().min(1).max(2e3),
|
|
15870
|
+
authorizationUrl: OAuthHttpUrl.optional(),
|
|
15871
|
+
tokenUrl: OAuthHttpUrl.optional(),
|
|
15872
|
+
scopes: external_exports.array(external_exports.string().min(1).max(500)).max(100).optional(),
|
|
15873
|
+
usePkce: external_exports.boolean(),
|
|
15874
|
+
tokenEndpointAuthMethod: OAuthTokenEndpointAuthMethod,
|
|
15875
|
+
fallbackTokenLabel: external_exports.string().min(1).max(120).optional()
|
|
15876
|
+
}).strict();
|
|
15845
15877
|
var ApiAuthSchemeOverride = external_exports.discriminatedUnion("type", [
|
|
15846
15878
|
ApiBasicAuthSchemeOverride,
|
|
15847
|
-
ApiBearerAuthSchemeOverride
|
|
15879
|
+
ApiBearerAuthSchemeOverride,
|
|
15880
|
+
ApiOAuth2AuthSchemeOverride
|
|
15848
15881
|
]);
|
|
15849
15882
|
var NormalizedApiDefinition = external_exports.object({
|
|
15850
15883
|
sourceFormat: external_exports.enum(["openapi-3.0", "openapi-3.1", "swagger-2.0", "natural-language"]),
|
|
@@ -15896,7 +15929,7 @@ var IntegrationDefinitionSummary = external_exports.object({
|
|
|
15896
15929
|
isBuiltIn: external_exports.boolean(),
|
|
15897
15930
|
revision: external_exports.number().int().min(1),
|
|
15898
15931
|
operationCount: external_exports.number().int().min(0),
|
|
15899
|
-
authKinds: external_exports.array(external_exports.enum(["none", "apiKey", "bearer", "basic"])).max(
|
|
15932
|
+
authKinds: external_exports.array(external_exports.enum(["none", "apiKey", "bearer", "basic", "oauth2"])).max(5),
|
|
15900
15933
|
updatedAt: IsoDate
|
|
15901
15934
|
}).strict();
|
|
15902
15935
|
var IntegrationDefinition = IntegrationDefinitionSummary.extend({
|
|
@@ -16052,6 +16085,13 @@ var ApiConnection = external_exports.object({
|
|
|
16052
16085
|
configuredFields: external_exports.array(external_exports.string().min(1).max(120)).max(10)
|
|
16053
16086
|
}).strict()
|
|
16054
16087
|
),
|
|
16088
|
+
oauth: external_exports.object({
|
|
16089
|
+
schemeId: external_exports.string().min(1).max(120),
|
|
16090
|
+
status: external_exports.enum(["not_connected", "connected", "expired", "error"]),
|
|
16091
|
+
clientIdConfigured: external_exports.boolean(),
|
|
16092
|
+
scopes: external_exports.array(external_exports.string().min(1).max(500)).max(100),
|
|
16093
|
+
callbackUrl: external_exports.url().max(2e3)
|
|
16094
|
+
}).strict().nullable(),
|
|
16055
16095
|
disabledOperationIds: external_exports.array(external_exports.string().min(1).max(240)),
|
|
16056
16096
|
health: ApiConnectionHealth,
|
|
16057
16097
|
lastCheckedAt: IsoDate.nullable(),
|
|
@@ -16060,6 +16100,13 @@ var ApiConnection = external_exports.object({
|
|
|
16060
16100
|
createdAt: IsoDate,
|
|
16061
16101
|
updatedAt: IsoDate
|
|
16062
16102
|
}).strict();
|
|
16103
|
+
var ApiOAuthClientConfig = external_exports.object({
|
|
16104
|
+
schemeId: external_exports.string().min(1).max(120),
|
|
16105
|
+
clientId: external_exports.string().min(1).max(512),
|
|
16106
|
+
/** Write-only. Omit on update to retain the vaulted client secret. */
|
|
16107
|
+
clientSecret: external_exports.string().min(1).max(1e4).optional(),
|
|
16108
|
+
scopes: external_exports.array(external_exports.string().min(1).max(500)).max(100).optional()
|
|
16109
|
+
}).strict();
|
|
16063
16110
|
var ListApiConnectionsResponse = external_exports.object({ connections: external_exports.array(ApiConnection) }).strict();
|
|
16064
16111
|
var CreateApiConnectionRequest = external_exports.object({
|
|
16065
16112
|
definitionId: IntegrationDefinitionId,
|
|
@@ -16071,6 +16118,7 @@ var CreateApiConnectionRequest = external_exports.object({
|
|
|
16071
16118
|
external_exports.string().min(1).max(120),
|
|
16072
16119
|
external_exports.record(external_exports.string().min(1).max(120), external_exports.string().min(1).max(2e4))
|
|
16073
16120
|
),
|
|
16121
|
+
oauth: ApiOAuthClientConfig.optional(),
|
|
16074
16122
|
disabledOperationIds: external_exports.array(external_exports.string().min(1).max(240)).default([])
|
|
16075
16123
|
}).strict();
|
|
16076
16124
|
var UpdateApiConnectionRequest = external_exports.object({
|
|
@@ -16082,6 +16130,7 @@ var UpdateApiConnectionRequest = external_exports.object({
|
|
|
16082
16130
|
external_exports.string().min(1).max(120),
|
|
16083
16131
|
external_exports.record(external_exports.string().min(1).max(120), external_exports.string().min(1).max(2e4))
|
|
16084
16132
|
).optional(),
|
|
16133
|
+
oauth: ApiOAuthClientConfig.nullable().optional(),
|
|
16085
16134
|
disabledOperationIds: external_exports.array(external_exports.string().min(1).max(240)).optional()
|
|
16086
16135
|
}).strict();
|
|
16087
16136
|
var ApiInputScalar = external_exports.union([external_exports.string().max(2e4), external_exports.number().finite(), external_exports.boolean()]);
|
|
@@ -16100,9 +16149,21 @@ var ApiOperationInput = external_exports.object({
|
|
|
16100
16149
|
}
|
|
16101
16150
|
}
|
|
16102
16151
|
});
|
|
16152
|
+
var TryApiAuthentication = external_exports.discriminatedUnion("mode", [
|
|
16153
|
+
external_exports.object({ mode: external_exports.literal("saved") }).strict(),
|
|
16154
|
+
external_exports.object({
|
|
16155
|
+
mode: external_exports.literal("one_time"),
|
|
16156
|
+
alternative: external_exports.array(external_exports.string().min(1).max(120)).min(1).max(20).refine((items) => new Set(items).size === items.length, "Schemes must be unique"),
|
|
16157
|
+
credentials: external_exports.record(
|
|
16158
|
+
external_exports.string().min(1).max(120),
|
|
16159
|
+
external_exports.record(external_exports.string().min(1).max(120), external_exports.string().min(1).max(2e4))
|
|
16160
|
+
)
|
|
16161
|
+
}).strict()
|
|
16162
|
+
]);
|
|
16103
16163
|
var TryApiOperationRequest = external_exports.object({
|
|
16104
16164
|
operationId: external_exports.string().min(1).max(240),
|
|
16105
16165
|
input: ApiOperationInput.default({ path: {}, query: {}, headers: {} }),
|
|
16166
|
+
authentication: TryApiAuthentication.default({ mode: "saved" }),
|
|
16106
16167
|
confirmed: external_exports.boolean().default(false)
|
|
16107
16168
|
}).strict();
|
|
16108
16169
|
var ApiOperationResult = external_exports.object({
|
|
@@ -16110,6 +16171,7 @@ var ApiOperationResult = external_exports.object({
|
|
|
16110
16171
|
status: external_exports.number().int().min(0).max(999).nullable(),
|
|
16111
16172
|
statusText: external_exports.string().max(500),
|
|
16112
16173
|
contentType: external_exports.string().max(500).nullable(),
|
|
16174
|
+
headers: external_exports.record(external_exports.string().min(1).max(200), external_exports.string().max(8e3)).refine((items) => Object.keys(items).length <= 100, "Too many response headers").default({}),
|
|
16113
16175
|
body: external_exports.string().max(2e5),
|
|
16114
16176
|
truncated: external_exports.boolean(),
|
|
16115
16177
|
durationMs: external_exports.number().int().min(0),
|
|
@@ -21788,6 +21850,9 @@ var REQUEST_BODY_LIMIT = 1e6;
|
|
|
21788
21850
|
var REQUEST_URL_LIMIT = 2e4;
|
|
21789
21851
|
var REQUEST_HEADERS_LIMIT = 64e3;
|
|
21790
21852
|
var REQUEST_TIMEOUT_MS2 = 3e4;
|
|
21853
|
+
var RESPONSE_HEADERS_LIMIT = 64e3;
|
|
21854
|
+
var RESPONSE_HEADER_VALUE_LIMIT = 8e3;
|
|
21855
|
+
var RESPONSE_HEADER_COUNT_LIMIT = 100;
|
|
21791
21856
|
var FORBIDDEN_HEADERS = /* @__PURE__ */ new Set([
|
|
21792
21857
|
"authorization",
|
|
21793
21858
|
"cookie",
|
|
@@ -21797,6 +21862,7 @@ var FORBIDDEN_HEADERS = /* @__PURE__ */ new Set([
|
|
|
21797
21862
|
"proxy-authorization",
|
|
21798
21863
|
"transfer-encoding"
|
|
21799
21864
|
]);
|
|
21865
|
+
var PRIVATE_RESPONSE_HEADERS = /* @__PURE__ */ new Set(["set-cookie", "set-cookie2"]);
|
|
21800
21866
|
function operationFor(connection, operationId) {
|
|
21801
21867
|
const operation = connection.operations.find(({ id }) => id === operationId);
|
|
21802
21868
|
if (!operation) throw new Error("That API operation is not available on this connection.");
|
|
@@ -21855,6 +21921,21 @@ async function boundedBody(response) {
|
|
|
21855
21921
|
}
|
|
21856
21922
|
return { body: new TextDecoder("utf-8", { fatal: false }).decode(joined), truncated };
|
|
21857
21923
|
}
|
|
21924
|
+
function boundedHeaders(response) {
|
|
21925
|
+
const result = {};
|
|
21926
|
+
let bytes = 0;
|
|
21927
|
+
for (const [name, rawValue] of response.headers) {
|
|
21928
|
+
const normalized = name.toLowerCase();
|
|
21929
|
+
if (PRIVATE_RESPONSE_HEADERS.has(normalized)) continue;
|
|
21930
|
+
if (Object.keys(result).length >= RESPONSE_HEADER_COUNT_LIMIT) break;
|
|
21931
|
+
const value = rawValue.slice(0, RESPONSE_HEADER_VALUE_LIMIT);
|
|
21932
|
+
const nextBytes = Buffer.byteLength(normalized) + Buffer.byteLength(value);
|
|
21933
|
+
if (bytes + nextBytes > RESPONSE_HEADERS_LIMIT) break;
|
|
21934
|
+
result[normalized] = value;
|
|
21935
|
+
bytes += nextBytes;
|
|
21936
|
+
}
|
|
21937
|
+
return result;
|
|
21938
|
+
}
|
|
21858
21939
|
async function executeApiOperation(input) {
|
|
21859
21940
|
const started = performance.now();
|
|
21860
21941
|
try {
|
|
@@ -21975,6 +22056,7 @@ async function executeApiOperation(input) {
|
|
|
21975
22056
|
status: response.status,
|
|
21976
22057
|
statusText: response.statusText.slice(0, 500),
|
|
21977
22058
|
contentType: response.headers.get("content-type")?.slice(0, 500) ?? null,
|
|
22059
|
+
headers: boundedHeaders(response),
|
|
21978
22060
|
...payload,
|
|
21979
22061
|
durationMs: Math.max(0, Math.round(performance.now() - started)),
|
|
21980
22062
|
error: response.ok ? null : `The API returned HTTP ${response.status}.`
|
|
@@ -21985,6 +22067,7 @@ async function executeApiOperation(input) {
|
|
|
21985
22067
|
status: null,
|
|
21986
22068
|
statusText: "",
|
|
21987
22069
|
contentType: null,
|
|
22070
|
+
headers: {},
|
|
21988
22071
|
body: "",
|
|
21989
22072
|
truncated: false,
|
|
21990
22073
|
durationMs: Math.max(0, Math.round(performance.now() - started)),
|