@vibesdotdev/client 0.1.0 → 1.0.0-rc.2
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 +21 -0
- package/README.md +31 -0
- package/dist/api-client-plugin.d.ts +4 -0
- package/dist/api-client-plugin.d.ts.map +1 -0
- package/dist/api-client-plugin.js +20 -0
- package/dist/api-client-plugin.js.map +1 -0
- package/dist/api-client.impl.d.ts +23 -0
- package/dist/api-client.impl.d.ts.map +1 -0
- package/dist/api-client.impl.js +47 -0
- package/dist/api-client.impl.js.map +1 -0
- package/dist/client.consumer.plugin.d.ts +3 -0
- package/dist/client.consumer.plugin.d.ts.map +1 -0
- package/dist/client.consumer.plugin.js +10 -0
- package/dist/client.consumer.plugin.js.map +1 -0
- package/dist/cloud.plugin.d.ts +3 -0
- package/dist/cloud.plugin.d.ts.map +1 -0
- package/dist/cloud.plugin.js +10 -0
- package/dist/cloud.plugin.js.map +1 -0
- package/dist/config/client.config.descriptor.d.ts +4 -0
- package/dist/config/client.config.descriptor.d.ts.map +1 -0
- package/dist/config/client.config.descriptor.js +32 -0
- package/dist/config/client.config.descriptor.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/settings.d.ts +9 -0
- package/dist/config/settings.d.ts.map +1 -0
- package/dist/config/settings.js +25 -0
- package/dist/config/settings.js.map +1 -0
- package/dist/docs/client.api-request.docs.descriptor.d.ts +4 -0
- package/dist/docs/client.api-request.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/client.api-request.docs.descriptor.js +71 -0
- package/dist/docs/client.api-request.docs.descriptor.js.map +1 -0
- package/dist/events/auth-rejected.event.d.ts +35 -0
- package/dist/events/auth-rejected.event.d.ts.map +1 -0
- package/dist/events/auth-rejected.event.js +36 -0
- package/dist/events/auth-rejected.event.js.map +1 -0
- package/dist/factory.d.ts +5 -1
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +16 -17
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/kind-augment.d.ts +11 -0
- package/dist/kind-augment.d.ts.map +1 -0
- package/dist/kind-augment.js +2 -0
- package/dist/kind-augment.js.map +1 -0
- package/dist/lib/client/api-diagnostics.d.ts +79 -0
- package/dist/lib/client/api-diagnostics.d.ts.map +1 -0
- package/dist/lib/client/api-diagnostics.js +111 -0
- package/dist/lib/client/api-diagnostics.js.map +1 -0
- package/dist/lib/client/configured.d.ts +78 -0
- package/dist/lib/client/configured.d.ts.map +1 -0
- package/dist/lib/client/configured.js +261 -0
- package/dist/lib/client/configured.js.map +1 -0
- package/dist/lib/client/internal/auth-headers.d.ts +11 -0
- package/dist/lib/client/internal/auth-headers.d.ts.map +1 -0
- package/dist/lib/client/internal/auth-headers.js +35 -0
- package/dist/lib/client/internal/auth-headers.js.map +1 -0
- package/dist/lib/client/internal/base-client.d.ts +5 -2
- package/dist/lib/client/internal/base-client.d.ts.map +1 -1
- package/dist/lib/client/internal/base-client.js +42 -22
- package/dist/lib/client/internal/base-client.js.map +1 -1
- package/dist/lib/client/internal/base-helpers.d.ts.map +1 -1
- package/dist/lib/client/internal/base-helpers.js +20 -20
- package/dist/lib/client/internal/base-helpers.js.map +1 -1
- package/dist/lib/client/internal/base-types.d.ts +10 -5
- package/dist/lib/client/internal/base-types.d.ts.map +1 -1
- package/dist/lib/client/internal/base-types.js +5 -3
- package/dist/lib/client/internal/base-types.js.map +1 -1
- package/dist/lib/client/internal/client-values.d.ts +43 -0
- package/dist/lib/client/internal/client-values.d.ts.map +1 -0
- package/dist/lib/client/internal/client-values.js +76 -0
- package/dist/lib/client/internal/client-values.js.map +1 -0
- package/dist/lib/client/internal/endpoint.d.ts +6 -5
- package/dist/lib/client/internal/endpoint.d.ts.map +1 -1
- package/dist/lib/client/internal/endpoint.js +3 -0
- package/dist/lib/client/internal/endpoint.js.map +1 -1
- package/dist/lib/client/internal/generator.d.ts +98 -9
- package/dist/lib/client/internal/generator.d.ts.map +1 -1
- package/dist/lib/client/internal/generator.js +92 -140
- package/dist/lib/client/internal/generator.js.map +1 -1
- package/dist/lib/client/internal/request-builder.d.ts +5 -2
- package/dist/lib/client/internal/request-builder.d.ts.map +1 -1
- package/dist/lib/client/internal/request-builder.js +105 -65
- package/dist/lib/client/internal/request-builder.js.map +1 -1
- package/dist/lib/client/internal/sse-stream.d.ts +9 -5
- package/dist/lib/client/internal/sse-stream.d.ts.map +1 -1
- package/dist/lib/client/internal/sse-stream.js +96 -94
- package/dist/lib/client/internal/sse-stream.js.map +1 -1
- package/dist/lib/client/internal/timeout-signal.d.ts +8 -0
- package/dist/lib/client/internal/timeout-signal.d.ts.map +1 -0
- package/dist/lib/client/internal/timeout-signal.js +17 -0
- package/dist/lib/client/internal/timeout-signal.js.map +1 -0
- package/dist/lib/client/internal/transport/http2-fetch.d.ts +8 -0
- package/dist/lib/client/internal/transport/http2-fetch.d.ts.map +1 -0
- package/dist/lib/client/internal/transport/http2-fetch.js +17 -0
- package/dist/lib/client/internal/transport/http2-fetch.js.map +1 -0
- package/dist/lib/client/internal/vibes-client.d.ts +17 -8
- package/dist/lib/client/internal/vibes-client.d.ts.map +1 -1
- package/dist/lib/client/internal/vibes-client.js +127 -67
- package/dist/lib/client/internal/vibes-client.js.map +1 -1
- package/dist/lib/client/internal/wrap-fetch.d.ts +3 -2
- package/dist/lib/client/internal/wrap-fetch.d.ts.map +1 -1
- package/dist/lib/client/internal/wrap-fetch.js +14 -33
- package/dist/lib/client/internal/wrap-fetch.js.map +1 -1
- package/dist/lib/client/runtime-fetch.d.ts +14 -0
- package/dist/lib/client/runtime-fetch.d.ts.map +1 -0
- package/dist/lib/client/runtime-fetch.js +25 -0
- package/dist/lib/client/runtime-fetch.js.map +1 -0
- package/dist/lib/client/types.d.ts +18 -9
- package/dist/lib/client/types.d.ts.map +1 -1
- package/dist/lib/client/types.js +22 -3
- package/dist/lib/client/types.js.map +1 -1
- package/dist/plugin.d.ts +2 -18
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +7 -74
- package/dist/plugin.js.map +1 -1
- package/dist/runtime-client.d.ts +10 -0
- package/dist/runtime-client.d.ts.map +1 -0
- package/dist/runtime-client.js +14 -0
- package/dist/runtime-client.js.map +1 -0
- package/dist/schemas/auth-rejected.d.ts +12 -0
- package/dist/schemas/auth-rejected.d.ts.map +1 -0
- package/dist/schemas/auth-rejected.js +11 -0
- package/dist/schemas/auth-rejected.js.map +1 -0
- package/dist/schemas/sdk-languages.d.ts +47 -0
- package/dist/schemas/sdk-languages.d.ts.map +1 -0
- package/dist/schemas/sdk-languages.js +75 -0
- package/dist/schemas/sdk-languages.js.map +1 -0
- package/dist/schemas/settings.d.ts +14 -0
- package/dist/schemas/settings.d.ts.map +1 -0
- package/dist/schemas/settings.js +10 -0
- package/dist/schemas/settings.js.map +1 -0
- package/dist/schemas/validated-request.d.ts +19 -0
- package/dist/schemas/validated-request.d.ts.map +1 -0
- package/dist/schemas/validated-request.js +2 -0
- package/dist/schemas/validated-request.js.map +1 -0
- package/dist/schemas.d.ts +23 -8
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +8 -2
- package/dist/schemas.js.map +1 -1
- package/dist/sse-client.d.ts +17 -15
- package/dist/sse-client.d.ts.map +1 -1
- package/dist/sse-client.js +111 -91
- package/dist/sse-client.js.map +1 -1
- package/dist/svelte/client-svelte.plugin.d.ts +3 -0
- package/dist/svelte/client-svelte.plugin.d.ts.map +1 -0
- package/dist/svelte/client-svelte.plugin.js +35 -0
- package/dist/svelte/index.d.ts +3 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +2 -0
- package/dist/svelte/styles.css +8 -0
- package/dist/svelte/tool-widgets/ApiRequestToolCard.svelte +53 -0
- package/dist/svelte/tool-widgets/ApiRequestToolCard.svelte.d.ts +5 -0
- package/dist/svelte/tool-widgets/ApiRequestToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.d.ts +2 -0
- package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.js +1 -0
- package/dist/tools/api-request/api-request.contract.d.ts +19 -0
- package/dist/tools/api-request/api-request.contract.d.ts.map +1 -0
- package/dist/tools/api-request/api-request.contract.js +110 -0
- package/dist/tools/api-request/api-request.contract.js.map +1 -0
- package/dist/tools/api-request/api-request.descriptor.d.ts +11 -4
- package/dist/tools/api-request/api-request.descriptor.d.ts.map +1 -1
- package/dist/tools/api-request/api-request.descriptor.js +8 -5
- package/dist/tools/api-request/api-request.descriptor.js.map +1 -1
- package/dist/tools/api-request/api-request.impl.cloud.d.ts +15 -0
- package/dist/tools/api-request/api-request.impl.cloud.d.ts.map +1 -0
- package/dist/tools/api-request/api-request.impl.cloud.js +75 -0
- package/dist/tools/api-request/api-request.impl.cloud.js.map +1 -0
- package/dist/tools/api-request/api-request.impl.consumer.d.ts +5 -3
- package/dist/tools/api-request/api-request.impl.consumer.d.ts.map +1 -1
- package/dist/tools/api-request/api-request.impl.consumer.js +27 -33
- package/dist/tools/api-request/api-request.impl.consumer.js.map +1 -1
- package/dist/tools/api-request/api-request.view.d.ts +29 -0
- package/dist/tools/api-request/api-request.view.d.ts.map +1 -0
- package/dist/tools/api-request/api-request.view.js +62 -0
- package/dist/tools/api-request/api-request.view.js.map +1 -0
- package/dist/tools/api-request/schemas/index.d.ts +12 -5
- package/dist/tools/api-request/schemas/index.d.ts.map +1 -1
- package/dist/tools/api-request/schemas/index.js +24 -6
- package/dist/tools/api-request/schemas/index.js.map +1 -1
- package/dist/tui/client-tui.plugin.d.ts +3 -0
- package/dist/tui/client-tui.plugin.d.ts.map +1 -0
- package/dist/tui/client-tui.plugin.js +32 -0
- package/dist/tui/client-tui.plugin.js.map +1 -0
- package/dist/tui/index.d.ts +2 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +2 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/tool-widgets/ApiRequestToolWidget.impl.tui.d.ts +17 -0
- package/dist/tui/tool-widgets/ApiRequestToolWidget.impl.tui.d.ts.map +1 -0
- package/dist/tui/tool-widgets/ApiRequestToolWidget.impl.tui.js +28 -0
- package/dist/tui/tool-widgets/ApiRequestToolWidget.impl.tui.js.map +1 -0
- package/dist/validated-request.d.ts +27 -0
- package/dist/validated-request.d.ts.map +1 -0
- package/dist/validated-request.js +119 -0
- package/dist/validated-request.js.map +1 -0
- package/package.json +190 -45
- package/SPEC.md +0 -107
- package/dist/lib/client/internal/node/http2-fetch.node.d.ts +0 -2
- package/dist/lib/client/internal/node/http2-fetch.node.d.ts.map +0 -1
- package/dist/lib/client/internal/node/http2-fetch.node.js +0 -131
- package/dist/lib/client/internal/node/http2-fetch.node.js.map +0 -1
- package/dist/lib/client/node.d.ts +0 -5
- package/dist/lib/client/node.d.ts.map +0 -1
- package/dist/lib/client/node.js +0 -33
- package/dist/lib/client/node.js.map +0 -1
- package/dist/tools/api-request/index.d.ts +0 -5
- package/dist/tools/api-request/index.d.ts.map +0 -1
- package/dist/tools/api-request/index.js +0 -4
- package/dist/tools/api-request/index.js.map +0 -1
- package/src/factory.ts +0 -114
- package/src/index.ts +0 -15
- package/src/lib/client/core.ts +0 -13
- package/src/lib/client/internal/base-client.ts +0 -107
- package/src/lib/client/internal/base-helpers.ts +0 -74
- package/src/lib/client/internal/base-types.ts +0 -42
- package/src/lib/client/internal/endpoint.ts +0 -51
- package/src/lib/client/internal/generator.ts +0 -181
- package/src/lib/client/internal/index.ts +0 -4
- package/src/lib/client/internal/node/http2-fetch.node.ts +0 -138
- package/src/lib/client/internal/request-builder.ts +0 -147
- package/src/lib/client/internal/sse-stream.ts +0 -130
- package/src/lib/client/internal/vibes-client.ts +0 -167
- package/src/lib/client/internal/wrap-fetch.ts +0 -59
- package/src/lib/client/node.ts +0 -36
- package/src/lib/client/types.ts +0 -156
- package/src/plugin.ts +0 -104
- package/src/schemas.ts +0 -91
- package/src/sse-client.ts +0 -155
- package/src/tools/api-request/api-request.descriptor.ts +0 -28
- package/src/tools/api-request/api-request.impl.consumer.ts +0 -66
- package/src/tools/api-request/index.ts +0 -4
- package/src/tools/api-request/schemas/index.ts +0 -29
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CapabilityError } from '@vibesdotdev/kernel';
|
|
2
|
+
import * as z from 'zod/v4';
|
|
3
|
+
import { readClientValue } from "./client-values.js";
|
|
4
|
+
/** Handed runtimes own deadlines and abort requests when their lifecycle ends. */
|
|
5
|
+
export function createTimeoutSignal(runtime, timeoutMs) {
|
|
6
|
+
readClientValue(z.number().int().positive(), timeoutMs, 'client-timeout-invalid');
|
|
7
|
+
if (!runtime)
|
|
8
|
+
return { signal: AbortSignal.timeout(timeoutMs), dispose: () => { } };
|
|
9
|
+
if (runtime.lifecycle.phase !== 'live')
|
|
10
|
+
throw new CapabilityError('The client runtime has ended.', 'UNAVAILABLE', { reason: 'client-runtime-disposed' });
|
|
11
|
+
const controller = new AbortController();
|
|
12
|
+
const abort = () => controller.abort();
|
|
13
|
+
runtime.lifecycle.signal.addEventListener('abort', abort, { once: true });
|
|
14
|
+
const cancel = runtime.lifecycle.timeout(abort, timeoutMs);
|
|
15
|
+
return { signal: controller.signal, dispose() { cancel(); runtime.lifecycle.signal.removeEventListener('abort', abort); } };
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=timeout-signal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeout-signal.js","sourceRoot":"","sources":["../../../../src/lib/client/internal/timeout-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAmB,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,kFAAkF;AAClF,MAAM,UAAU,mBAAmB,CAAC,OAA+B,EAAE,SAAiB;IACrF,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;IAClF,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,MAAM;QAAE,MAAM,IAAI,eAAe,CAAC,+BAA+B,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACzJ,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACvC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC3D,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7H,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type RuntimeRef } from '@vibesdotdev/kernel';
|
|
2
|
+
import { type ClientFetch } from '../client-values.ts';
|
|
3
|
+
export interface Http2FetchOptions {
|
|
4
|
+
rejectUnauthorized?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/** Compatibility door; native network mechanics belong to the selected environment. */
|
|
7
|
+
export declare function createHttp2Fetch(baseUrl: string, options?: Http2FetchOptions, runtime?: RuntimeRef): ClientFetch;
|
|
8
|
+
//# sourceMappingURL=http2-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http2-fetch.d.ts","sourceRoot":"","sources":["../../../../../src/lib/client/internal/transport/http2-fetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1F,MAAM,WAAW,iBAAiB;IAAG,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAAE;AACpE,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,WAAW,CAUpH"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CapabilityError } from '@vibesdotdev/kernel';
|
|
2
|
+
import * as z from 'zod/v4';
|
|
3
|
+
import { HttpOriginSchema, readClientValue } from "../client-values.js";
|
|
4
|
+
/** Compatibility door; native network mechanics belong to the selected environment. */
|
|
5
|
+
export function createHttp2Fetch(baseUrl, options = {}, runtime) {
|
|
6
|
+
const origin = readClientValue(HttpOriginSchema, baseUrl, 'client-origin-invalid');
|
|
7
|
+
const settings = readClientValue(z.object({ rejectUnauthorized: z.boolean().default(true) }), options, 'client-tls-invalid');
|
|
8
|
+
return async (input, init) => {
|
|
9
|
+
const environment = runtime ? await runtime.query('runtime/environment').resolve() : undefined;
|
|
10
|
+
const port = environment?.httpFetch;
|
|
11
|
+
if (!port)
|
|
12
|
+
throw new CapabilityError('The selected host has no HTTP fetch transport.', 'UNAVAILABLE', { reason: 'http-fetch-unavailable' });
|
|
13
|
+
const target = input instanceof Request ? input : new URL(input instanceof URL ? input.href : input, origin);
|
|
14
|
+
return port.call(environment, target, init, settings);
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=http2-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http2-fetch.js","sourceRoot":"","sources":["../../../../../src/lib/client/internal/transport/http2-fetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAmB,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAE1F,uFAAuF;AACvF,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,UAA6B,EAAE,EAAE,OAAoB;IACtG,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC7H,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAsD,qBAAqB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACpJ,MAAM,IAAI,GAAG,WAAW,EAAE,SAAS,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,eAAe,CAAC,gDAAgD,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAC5I,MAAM,MAAM,GAAG,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7G,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -1,14 +1,23 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AuthConfig, type ClientConfig, type RequestOptions } from '../types.ts';
|
|
2
2
|
import { type OpenAPISpec } from './generator.ts';
|
|
3
3
|
import { type SSEEvent, type SSEStreamOptions } from './sse-stream.ts';
|
|
4
|
+
import { type RequestBody } from './client-values.ts';
|
|
4
5
|
export declare class VibesClient {
|
|
5
|
-
private
|
|
6
|
+
private readonly incoming;
|
|
7
|
+
private readonly baseUrl;
|
|
8
|
+
private readonly fetchImpl;
|
|
9
|
+
private readonly hooks;
|
|
10
|
+
private readonly settingsPromise;
|
|
11
|
+
private resolved;
|
|
6
12
|
private requestBuilder;
|
|
7
13
|
private apiGenerator;
|
|
8
14
|
private apis;
|
|
9
15
|
private specPromise;
|
|
16
|
+
private pendingAuth;
|
|
10
17
|
constructor(config?: ClientConfig);
|
|
11
|
-
private
|
|
18
|
+
private ready;
|
|
19
|
+
private bindResolved;
|
|
20
|
+
private bindBuilders;
|
|
12
21
|
getOpenAPISpec(): Promise<OpenAPISpec>;
|
|
13
22
|
private fetchOpenAPISpec;
|
|
14
23
|
private buildAPIs;
|
|
@@ -16,17 +25,17 @@ export declare class VibesClient {
|
|
|
16
25
|
method?: string;
|
|
17
26
|
params?: Record<string, string | number | boolean>;
|
|
18
27
|
query?: Record<string, string | number | boolean | string[] | undefined>;
|
|
19
|
-
body?:
|
|
28
|
+
body?: RequestBody;
|
|
20
29
|
headers?: Record<string, string>;
|
|
21
30
|
timeout?: number;
|
|
22
31
|
}): Promise<T>;
|
|
23
32
|
setAuth(auth: AuthConfig): void;
|
|
24
33
|
getResources(): string[];
|
|
25
34
|
hasResource(name: string): boolean;
|
|
26
|
-
get<T = unknown>(endpoint: string, options?: RequestOptions): Promise<T>;
|
|
27
|
-
post<T = unknown>(endpoint: string, body?:
|
|
28
|
-
put<T = unknown>(endpoint: string, body?:
|
|
29
|
-
delete<T = unknown>(endpoint: string, options?: RequestOptions): Promise<T>;
|
|
35
|
+
get<T = unknown>(endpoint: string, options?: Partial<RequestOptions>): Promise<T>;
|
|
36
|
+
post<T = unknown>(endpoint: string, body?: RequestOptions['body'], options?: Partial<RequestOptions>): Promise<T>;
|
|
37
|
+
put<T = unknown>(endpoint: string, body?: RequestOptions['body'], options?: Partial<RequestOptions>): Promise<T>;
|
|
38
|
+
delete<T = unknown>(endpoint: string, options?: Partial<RequestOptions>): Promise<T>;
|
|
30
39
|
stream<T = unknown>(path: string, options?: SSEStreamOptions): AsyncIterableIterator<SSEEvent<T>>;
|
|
31
40
|
}
|
|
32
41
|
//# sourceMappingURL=vibes-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vibes-client.d.ts","sourceRoot":"","sources":["../../../../src/lib/client/internal/vibes-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"vibes-client.d.ts","sourceRoot":"","sources":["../../../../src/lib/client/internal/vibes-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,UAAU,EAAE,KAAK,YAAY,EAAoB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACrH,OAAO,EAAmC,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAInF,OAAO,EAAa,KAAK,QAAQ,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGlF,OAAO,EAAyE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAe7H,qBAAa,WAAW;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,IAAI,CAAgD;IAC5D,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,WAAW,CAAyB;gBAEhC,MAAM,GAAE,YAAiB;YA0BvB,KAAK;IAOnB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,YAAY;IAyBpB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;YAKxB,gBAAgB;IAW9B,OAAO,CAAC,SAAS;IAcX,OAAO,CAAC,CAAC,GAAG,OAAO,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;QACnD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,EAAE,MAAM,CAAC;KACZ,GACJ,OAAO,CAAC,CAAC,CAAC;IAiBb,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAQ/B,YAAY,IAAI,MAAM,EAAE;IAIxB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjF,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjH,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhH,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI7E,MAAM,CAAC,CAAC,GAAG,OAAO,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,GAC5B,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CAcrC"}
|
|
@@ -1,65 +1,109 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ClientError } from "../types.js";
|
|
2
|
+
import { APIGenerator, OpenAPISpecSchema } from "./generator.js";
|
|
3
|
+
import { getLogger } from '@vibesdotdev/logging';
|
|
4
|
+
import { CapabilityError, CaughtFailureSchema, valueFreeFailure } from '@vibesdotdev/kernel';
|
|
3
5
|
import { RequestBuilder } from "./request-builder.js";
|
|
4
6
|
import { streamSSE } from "./sse-stream.js";
|
|
5
7
|
import { createHookedFetch } from "./wrap-fetch.js";
|
|
8
|
+
import { loadClientSettings } from "../../../config/settings.js";
|
|
9
|
+
import { readClientValue, readClientFields, HttpOriginSchema } from "./client-values.js";
|
|
6
10
|
export class VibesClient {
|
|
7
|
-
|
|
11
|
+
incoming;
|
|
12
|
+
baseUrl;
|
|
13
|
+
fetchImpl;
|
|
14
|
+
hooks;
|
|
15
|
+
settingsPromise;
|
|
16
|
+
resolved;
|
|
8
17
|
requestBuilder;
|
|
9
18
|
apiGenerator;
|
|
10
19
|
apis = {};
|
|
11
20
|
specPromise = null;
|
|
21
|
+
pendingAuth;
|
|
12
22
|
constructor(config = {}) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
23
|
+
config = readClientFields(() => ({ baseUrl: config.baseUrl, auth: config.auth, fetch: config.fetch, hooks: config.hooks, timeout: config.timeout, debug: config.debug, runtime: config.runtime }), 'client-config-unreadable');
|
|
24
|
+
const baseUrl = config.baseUrl;
|
|
25
|
+
if (!baseUrl) {
|
|
26
|
+
throw new CapabilityError('The API origin is undeclared: pass baseUrl or an api/client descriptor origin (service catalog).', 'INVALID_INPUT', {
|
|
27
|
+
reason: 'api-origin-undeclared',
|
|
28
|
+
recoveryHint: 'Pass baseUrl, or register an api/client descriptor with baseUrl. api-request resolves infra/service origins from the catalog.'
|
|
29
|
+
});
|
|
30
|
+
}
|
|
16
31
|
const fetchImpl = config.fetch || globalThis.fetch?.bind(globalThis);
|
|
17
32
|
if (!fetchImpl)
|
|
18
|
-
throw new
|
|
19
|
-
|
|
20
|
-
this.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
throw new CapabilityError('Fetch is unavailable.', 'UNAVAILABLE', { reason: 'client-fetch-unavailable' });
|
|
34
|
+
this.incoming = config;
|
|
35
|
+
this.baseUrl = readClientValue(HttpOriginSchema, baseUrl, 'client-origin-invalid');
|
|
36
|
+
// SAFETY: The bound platform fetch keeps the fetch signature; callers may also inject their own.
|
|
37
|
+
this.fetchImpl = fetchImpl;
|
|
38
|
+
this.hooks = readClientFields(() => ({ ...config.hooks }), 'client-hooks-unreadable');
|
|
39
|
+
this.pendingAuth = config.auth;
|
|
40
|
+
this.settingsPromise = loadClientSettings(config.runtime, config);
|
|
41
|
+
}
|
|
42
|
+
async ready() {
|
|
43
|
+
if (this.resolved)
|
|
44
|
+
return this.resolved;
|
|
45
|
+
const settings = await this.settingsPromise;
|
|
46
|
+
this.bindResolved(settings);
|
|
47
|
+
return this.resolved;
|
|
48
|
+
}
|
|
49
|
+
bindResolved(settings) {
|
|
50
|
+
const auth = this.pendingAuth || this.incoming.auth || { type: 'none' };
|
|
51
|
+
this.resolved = {
|
|
52
|
+
baseUrl: this.baseUrl,
|
|
53
|
+
auth,
|
|
54
|
+
fetch: this.fetchImpl,
|
|
55
|
+
// Placeholder: bindBuilders replaces it with the hooked transport below, before any use.
|
|
56
|
+
hookedFetch: this.fetchImpl,
|
|
57
|
+
hooks: this.hooks,
|
|
58
|
+
timeout: settings.timeoutMs,
|
|
59
|
+
debug: settings.debug,
|
|
60
|
+
warnOas: settings.warnOas,
|
|
61
|
+
runtime: this.incoming.runtime
|
|
27
62
|
};
|
|
63
|
+
this.bindBuilders(this.resolved);
|
|
64
|
+
}
|
|
65
|
+
bindBuilders(config) {
|
|
66
|
+
const reported = new WeakSet();
|
|
67
|
+
config.hooks = { ...this.hooks, onError: async (error) => {
|
|
68
|
+
if (reported.has(error))
|
|
69
|
+
return;
|
|
70
|
+
reported.add(error);
|
|
71
|
+
await this.hooks.onError?.(error);
|
|
72
|
+
} };
|
|
28
73
|
const hookedFetch = createHookedFetch({
|
|
29
|
-
fetchImpl:
|
|
30
|
-
hooks:
|
|
74
|
+
fetchImpl: config.fetch,
|
|
75
|
+
hooks: config.hooks
|
|
31
76
|
});
|
|
32
|
-
|
|
77
|
+
// SAFETY: The hooked wrapper preserves the fetch signature; hooks only observe or rebuild the request.
|
|
78
|
+
config.hookedFetch = hookedFetch;
|
|
79
|
+
this.requestBuilder = new RequestBuilder(config.baseUrl, config.auth, config.hookedFetch, config.timeout, config.debug, config.runtime);
|
|
33
80
|
this.apiGenerator = new APIGenerator(this.requestBuilder);
|
|
34
81
|
}
|
|
35
|
-
async initialize() {
|
|
36
|
-
try {
|
|
37
|
-
const spec = await this.getOpenAPISpec();
|
|
38
|
-
this.buildAPIs(spec);
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
const shouldWarn = this.config.debug ||
|
|
42
|
-
(typeof process !== 'undefined' && process.env?.VIBES_CLIENT_WARN_OAS === 'true');
|
|
43
|
-
if (shouldWarn) {
|
|
44
|
-
console.warn('Failed to load OpenAPI spec, client will have limited functionality:', error);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
82
|
getOpenAPISpec() {
|
|
49
83
|
if (!this.specPromise)
|
|
50
|
-
this.specPromise = this.fetchOpenAPISpec();
|
|
84
|
+
this.specPromise = this.fetchOpenAPISpec().then((spec) => { this.buildAPIs(spec); return spec; });
|
|
51
85
|
return this.specPromise;
|
|
52
86
|
}
|
|
53
87
|
async fetchOpenAPISpec() {
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
88
|
+
const config = await this.ready();
|
|
89
|
+
try {
|
|
90
|
+
const value = await this.request('/api/docs/openapi.json');
|
|
91
|
+
return readClientValue(OpenAPISpecSchema, value, 'client-openapi-invalid');
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
if (config.warnOas && config.runtime)
|
|
95
|
+
getLogger('client', config.runtime).warn('OpenAPI load failed', { error: valueFreeFailure(CaughtFailureSchema.parse(error)) });
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
58
98
|
}
|
|
59
99
|
buildAPIs(spec) {
|
|
100
|
+
if (!this.apiGenerator)
|
|
101
|
+
return;
|
|
60
102
|
const apis = this.apiGenerator.generateAPIs(spec);
|
|
61
103
|
for (const [name, api] of Object.entries(apis)) {
|
|
62
|
-
this.apis
|
|
104
|
+
if (name in this && !Object.hasOwn(this.apis, name))
|
|
105
|
+
throw new CapabilityError('An OpenAPI resource conflicts with a client member.', 'INVALID_INPUT', { reason: 'client-resource-name-conflict' });
|
|
106
|
+
Object.defineProperty(this.apis, name, { value: api, enumerable: true, configurable: true });
|
|
63
107
|
Object.defineProperty(this, name, {
|
|
64
108
|
get: () => this.apis[name],
|
|
65
109
|
enumerable: true,
|
|
@@ -67,54 +111,70 @@ export class VibesClient {
|
|
|
67
111
|
});
|
|
68
112
|
}
|
|
69
113
|
}
|
|
70
|
-
request(path, options = {}) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
114
|
+
async request(path, options = {}) {
|
|
115
|
+
const config = await this.ready();
|
|
116
|
+
options = readClientFields(() => ({ ...options }), 'client-request-unreadable');
|
|
117
|
+
try {
|
|
118
|
+
return await this.requestBuilder.request({
|
|
119
|
+
path,
|
|
120
|
+
method: options.method || 'GET',
|
|
121
|
+
params: options.params,
|
|
122
|
+
query: options.query,
|
|
123
|
+
body: options.body,
|
|
124
|
+
headers: options.headers,
|
|
125
|
+
timeout: options.timeout
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
if (error instanceof ClientError)
|
|
130
|
+
await config.hooks.onError?.(error);
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
80
133
|
}
|
|
81
134
|
setAuth(auth) {
|
|
82
|
-
this.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
this.requestBuilder = new RequestBuilder(this.config.baseUrl, auth, hookedFetch, this.config.timeout, this.config.debug);
|
|
88
|
-
this.apiGenerator = new APIGenerator(this.requestBuilder);
|
|
135
|
+
this.pendingAuth = auth;
|
|
136
|
+
if (!this.resolved)
|
|
137
|
+
return;
|
|
138
|
+
this.resolved.auth = auth;
|
|
139
|
+
this.bindBuilders(this.resolved);
|
|
89
140
|
if (this.specPromise)
|
|
90
|
-
this.specPromise.then((spec) => this.buildAPIs(spec));
|
|
141
|
+
this.specPromise = this.specPromise.then((spec) => { this.buildAPIs(spec); return spec; });
|
|
91
142
|
}
|
|
92
143
|
getResources() {
|
|
93
144
|
return Object.keys(this.apis);
|
|
94
145
|
}
|
|
95
146
|
hasResource(name) {
|
|
96
|
-
return
|
|
147
|
+
return Object.hasOwn(this.apis, name);
|
|
97
148
|
}
|
|
98
149
|
get(endpoint, options) {
|
|
99
|
-
return this.request(endpoint, { ...options, method: 'GET' });
|
|
150
|
+
return this.request(endpoint, { ...readClientFields(() => ({ ...options }), 'client-request-unreadable'), method: 'GET' });
|
|
100
151
|
}
|
|
101
152
|
post(endpoint, body, options) {
|
|
102
|
-
return this.request(endpoint, { ...options, method: 'POST', body });
|
|
153
|
+
return this.request(endpoint, { ...readClientFields(() => ({ ...options }), 'client-request-unreadable'), method: 'POST', body });
|
|
103
154
|
}
|
|
104
155
|
put(endpoint, body, options) {
|
|
105
|
-
return this.request(endpoint, { ...options, method: 'PUT', body });
|
|
156
|
+
return this.request(endpoint, { ...readClientFields(() => ({ ...options }), 'client-request-unreadable'), method: 'PUT', body });
|
|
106
157
|
}
|
|
107
158
|
delete(endpoint, options) {
|
|
108
|
-
return this.request(endpoint, { ...options, method: 'DELETE' });
|
|
159
|
+
return this.request(endpoint, { ...readClientFields(() => ({ ...options }), 'client-request-unreadable'), method: 'DELETE' });
|
|
109
160
|
}
|
|
110
161
|
async *stream(path, options = {}) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
162
|
+
const config = await this.ready();
|
|
163
|
+
try {
|
|
164
|
+
yield* streamSSE({
|
|
165
|
+
baseUrl: config.baseUrl,
|
|
166
|
+
auth: config.auth,
|
|
167
|
+
fetchImpl: config.hookedFetch,
|
|
168
|
+
path,
|
|
169
|
+
options: { timeout: config.timeout, ...readClientFields(() => ({ ...options }), 'client-stream-unreadable') },
|
|
170
|
+
runtime: config.runtime
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
if (error instanceof ClientError)
|
|
175
|
+
await config.hooks.onError?.(error);
|
|
176
|
+
throw error;
|
|
177
|
+
}
|
|
118
178
|
}
|
|
119
179
|
}
|
|
120
180
|
//# sourceMappingURL=vibes-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vibes-client.js","sourceRoot":"","sources":["../../../../src/lib/client/internal/vibes-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vibes-client.js","sourceRoot":"","sources":["../../../../src/lib/client/internal/vibes-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ClientHooks } from '../types.ts';
|
|
2
|
+
import type { ClientFetch } from './client-values.ts';
|
|
2
3
|
export declare function createHookedFetch(args: {
|
|
3
|
-
fetchImpl:
|
|
4
|
+
fetchImpl: ClientFetch;
|
|
4
5
|
hooks: ClientHooks;
|
|
5
|
-
}):
|
|
6
|
+
}): ClientFetch;
|
|
6
7
|
//# sourceMappingURL=wrap-fetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-fetch.d.ts","sourceRoot":"","sources":["../../../../src/lib/client/internal/wrap-fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wrap-fetch.d.ts","sourceRoot":"","sources":["../../../../src/lib/client/internal/wrap-fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAAG,WAAW,CAsBnG"}
|
|
@@ -1,46 +1,27 @@
|
|
|
1
|
+
import { CaughtFailureSchema } from '@vibesdotdev/kernel';
|
|
1
2
|
import { ClientError } from "../types.js";
|
|
2
3
|
export function createHookedFetch(args) {
|
|
3
4
|
return async (input, init) => {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (args.hooks.onError) {
|
|
11
|
-
await args.hooks.onError(new ClientError(error instanceof Error ? error.message : 'Network error', 0, undefined, undefined));
|
|
12
|
-
}
|
|
13
|
-
throw error;
|
|
14
|
-
}
|
|
5
|
+
try {
|
|
6
|
+
const requestInput = input instanceof URL ? input.href : input;
|
|
7
|
+
const request = args.hooks.beforeRequest
|
|
8
|
+
? await args.hooks.beforeRequest(requestInput instanceof Request
|
|
9
|
+
? new Request(requestInput, init) : new Request(requestInput, init)) : undefined;
|
|
10
|
+
let response = request ? await args.fetchImpl(request.url, { method: request.method, headers: request.headers, body: request.body, signal: request.signal, redirect: request.redirect, credentials: request.credentials, cache: request.cache, referrer: request.referrer, integrity: request.integrity }) : await args.fetchImpl(input, init);
|
|
15
11
|
if (args.hooks.afterResponse)
|
|
16
12
|
response = await args.hooks.afterResponse(response);
|
|
17
13
|
return response;
|
|
18
14
|
}
|
|
19
|
-
const requestInput = input instanceof URL
|
|
20
|
-
? new Request(input.href, init)
|
|
21
|
-
: typeof input === 'string'
|
|
22
|
-
? new Request(input, init)
|
|
23
|
-
: new Request(input, init);
|
|
24
|
-
const modifiedRequest = await args.hooks.beforeRequest(requestInput);
|
|
25
|
-
const modifiedInit = {
|
|
26
|
-
...init,
|
|
27
|
-
method: modifiedRequest.method,
|
|
28
|
-
headers: Object.fromEntries(modifiedRequest.headers.entries()),
|
|
29
|
-
...(modifiedRequest.body !== requestInput.body && { body: modifiedRequest.body })
|
|
30
|
-
};
|
|
31
|
-
let response;
|
|
32
|
-
try {
|
|
33
|
-
response = await args.fetchImpl(modifiedRequest.url, modifiedInit);
|
|
34
|
-
}
|
|
35
15
|
catch (error) {
|
|
36
|
-
|
|
37
|
-
|
|
16
|
+
const failure = CaughtFailureSchema.parse(error);
|
|
17
|
+
if (failure instanceof ClientError) {
|
|
18
|
+
await args.hooks.onError?.(failure);
|
|
19
|
+
throw failure;
|
|
38
20
|
}
|
|
39
|
-
|
|
21
|
+
const projected = new ClientError('The client transport failed.', failure instanceof Error && (failure.name === 'AbortError' || failure.name === 'TimeoutError') ? 408 : 0, undefined, undefined, { cause: failure });
|
|
22
|
+
await args.hooks.onError?.(projected);
|
|
23
|
+
throw projected;
|
|
40
24
|
}
|
|
41
|
-
if (args.hooks.afterResponse)
|
|
42
|
-
response = await args.hooks.afterResponse(response);
|
|
43
|
-
return response;
|
|
44
25
|
};
|
|
45
26
|
}
|
|
46
27
|
//# sourceMappingURL=wrap-fetch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-fetch.js","sourceRoot":"","sources":["../../../../src/lib/client/internal/wrap-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"wrap-fetch.js","sourceRoot":"","sources":["../../../../src/lib/client/internal/wrap-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAoB,MAAM,aAAa,CAAC;AAG5D,MAAM,UAAU,iBAAiB,CAAC,IAAoD;IACrF,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC5B,IAAI,CAAC;YACJ,MAAM,YAAY,GAAG,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;gBACvC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,YAAY,OAAO;oBAC9D,CAAC,CAAC,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpF,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/U,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa;gBAAE,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAClF,OAAO,QAAQ,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,OAAO,YAAY,WAAW,EAAE,CAAC;gBACpC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;gBACpC,MAAM,OAAO,CAAC;YACf,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,8BAA8B,EAAE,OAAO,YAAY,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACzK,SAAS,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,SAAS,CAAC;QACjB,CAAC;IACF,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { RuntimeRef } from '@vibesdotdev/kernel';
|
|
2
|
+
import type { ClientConfig } from './types.ts';
|
|
3
|
+
import { VibesClient } from './internal/vibes-client.ts';
|
|
4
|
+
export { createHttp2Fetch } from './internal/transport/http2-fetch.ts';
|
|
5
|
+
export interface CLIClientConfig extends Partial<ClientConfig> {
|
|
6
|
+
/**
|
|
7
|
+
* Skip TLS certificate verification for the HTTP/2 transport. Certificates
|
|
8
|
+
* are verified unless the caller sets this. Production callers load the
|
|
9
|
+
* value from `config.client.allowInsecureLocalTls` (schema default false).
|
|
10
|
+
*/
|
|
11
|
+
allowInsecureLocalTls?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function createCLIClient(runtime: RuntimeRef, options?: CLIClientConfig): Promise<VibesClient>;
|
|
14
|
+
//# sourceMappingURL=runtime-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-fetch.d.ts","sourceRoot":"","sources":["../../../src/lib/client/runtime-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAKvE,MAAM,WAAW,eAAgB,SAAQ,OAAO,CAAC,YAAY,CAAC;IAC7D;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAsB,eAAe,CACpC,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,WAAW,CAAC,CAmBtB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { VibesClient } from "./internal/vibes-client.js";
|
|
2
|
+
export { createHttp2Fetch } from "./internal/transport/http2-fetch.js";
|
|
3
|
+
import { createHttp2Fetch } from "./internal/transport/http2-fetch.js";
|
|
4
|
+
import { loadClientSettings } from "../../config/settings.js";
|
|
5
|
+
export async function createCLIClient(runtime, options) {
|
|
6
|
+
const { allowInsecureLocalTls: tlsOverride, ...config } = options ?? {};
|
|
7
|
+
const settings = await loadClientSettings(runtime, config);
|
|
8
|
+
const allowInsecureLocalTls = tlsOverride ?? settings.allowInsecureLocalTls;
|
|
9
|
+
const baseUrl = config.baseUrl;
|
|
10
|
+
if (!baseUrl) {
|
|
11
|
+
// VibesClient owns the typed `api-origin-undeclared` refusal.
|
|
12
|
+
// Origin is caller-supplied (CLI factory) or an api/client catalog descriptor.
|
|
13
|
+
return new VibesClient({ ...config, runtime });
|
|
14
|
+
}
|
|
15
|
+
const fetchImpl = config.fetch || (allowInsecureLocalTls ? createHttp2Fetch(baseUrl, { rejectUnauthorized: false }, runtime) : globalThis.fetch);
|
|
16
|
+
const clientConfig = {
|
|
17
|
+
baseUrl,
|
|
18
|
+
auth: config.auth || { type: 'none' },
|
|
19
|
+
fetch: fetchImpl,
|
|
20
|
+
runtime,
|
|
21
|
+
...config
|
|
22
|
+
};
|
|
23
|
+
return new VibesClient(clientConfig);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=runtime-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-fetch.js","sourceRoot":"","sources":["../../../src/lib/client/runtime-fetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAW9D,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,OAAmB,EACnB,OAAyB;IAEzB,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,qBAAqB,GAAG,WAAW,IAAI,QAAQ,CAAC,qBAAqB,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,8DAA8D;QAC9D,+EAA+E;QAC/E,OAAO,IAAI,WAAW,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjJ,MAAM,YAAY,GAAiB;QAClC,OAAO;QACP,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;QACrC,KAAK,EAAE,SAAS;QAChB,OAAO;QACP,GAAG,MAAM;KACT,CAAC;IACF,OAAO,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC"}
|