@vibesdotdev/client 0.1.1 → 1.0.0-rc.3
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 +24 -15
- 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 +5 -0
- package/dist/svelte/client-svelte.plugin.d.ts.map +1 -0
- package/dist/svelte/client-svelte.plugin.js +46 -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 +188 -41
- 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
|
@@ -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"}
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
* Extracted from libraries/vibeskit (PR #447 migration) to canonicalize as a
|
|
6
6
|
* pure-isomorphic @vibesdotdev/client surface.
|
|
7
7
|
*/
|
|
8
|
+
import type { RuntimeRef } from '@vibesdotdev/kernel';
|
|
9
|
+
import { CapabilityError } from '@vibesdotdev/kernel';
|
|
10
|
+
import type { ClientFetch, JsonValue, RequestBody } from './internal/client-values.ts';
|
|
11
|
+
export type { ClientFetch, JsonValue, RequestBody } from './internal/client-values.ts';
|
|
8
12
|
/** Authentication configuration */
|
|
9
13
|
export interface AuthConfig {
|
|
10
14
|
/** Authentication type */
|
|
@@ -36,7 +40,7 @@ export interface RequestOptions {
|
|
|
36
40
|
/** Query parameters */
|
|
37
41
|
query?: Record<string, string | number | boolean | string[] | undefined>;
|
|
38
42
|
/** Request body */
|
|
39
|
-
body?:
|
|
43
|
+
body?: RequestBody;
|
|
40
44
|
/** Additional headers */
|
|
41
45
|
headers?: Record<string, string>;
|
|
42
46
|
/** Override timeout for this request */
|
|
@@ -49,20 +53,22 @@ export interface ClientConfig {
|
|
|
49
53
|
/** Authentication configuration */
|
|
50
54
|
auth?: AuthConfig;
|
|
51
55
|
/** Custom fetch implementation */
|
|
52
|
-
fetch?:
|
|
56
|
+
fetch?: ClientFetch;
|
|
53
57
|
/** Request/response hooks */
|
|
54
58
|
hooks?: ClientHooks;
|
|
55
59
|
/** Request timeout in milliseconds */
|
|
56
60
|
timeout?: number;
|
|
57
61
|
/** Enable debug logging */
|
|
58
62
|
debug?: boolean;
|
|
63
|
+
/** Runtime for environment resolution and lifecycle management */
|
|
64
|
+
runtime?: RuntimeRef;
|
|
59
65
|
}
|
|
60
66
|
/** Client error with additional context */
|
|
61
|
-
export declare class ClientError extends
|
|
67
|
+
export declare class ClientError extends CapabilityError {
|
|
62
68
|
status?: number | undefined;
|
|
63
69
|
response?: Response | undefined;
|
|
64
70
|
request?: RequestOptions | undefined;
|
|
65
|
-
constructor(message: string, status?: number | undefined, response?: Response | undefined, request?: RequestOptions | undefined);
|
|
71
|
+
constructor(message: string, status?: number | undefined, response?: Response | undefined, request?: RequestOptions | undefined, options?: ErrorOptions);
|
|
66
72
|
}
|
|
67
73
|
/** Paginated response wrapper */
|
|
68
74
|
export interface PaginatedResponse<T> {
|
|
@@ -85,16 +91,19 @@ export interface ListParams {
|
|
|
85
91
|
/** Search query */
|
|
86
92
|
search?: string;
|
|
87
93
|
/** Additional filters */
|
|
88
|
-
filters?: Record<string,
|
|
94
|
+
filters?: Record<string, JsonValue>;
|
|
89
95
|
}
|
|
90
96
|
/** OpenAPI path info (generic -- no openapi-types dependency) */
|
|
91
97
|
export interface PathInfo {
|
|
92
98
|
path: string;
|
|
93
99
|
method: string;
|
|
94
100
|
operationId?: string;
|
|
95
|
-
parameters?:
|
|
96
|
-
|
|
97
|
-
|
|
101
|
+
parameters?: Array<{
|
|
102
|
+
name: string;
|
|
103
|
+
in: string;
|
|
104
|
+
}>;
|
|
105
|
+
requestBody?: Record<string, JsonValue>;
|
|
106
|
+
responses?: Record<string, JsonValue>;
|
|
98
107
|
tags?: string[];
|
|
99
108
|
summary?: string;
|
|
100
109
|
description?: string;
|
|
@@ -108,7 +117,7 @@ export interface APIResource {
|
|
|
108
117
|
/**
|
|
109
118
|
* Migration debt: ClientUser is an auth-domain type owned by @vibesdotdev/auth.
|
|
110
119
|
* Defined here temporarily so @vibesdotdev/kit/client consumers can migrate.
|
|
111
|
-
* Target: move to
|
|
120
|
+
* Target: move to auth/src/shared/client-user.ts and re-export from client/core.
|
|
112
121
|
*/
|
|
113
122
|
export interface ClientUser {
|
|
114
123
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/client/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mCAAmC;AACnC,MAAM,WAAW,UAAU;IAC1B,0BAA0B;IAC1B,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;CAClD;AAED,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC3B,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACjE,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACrE,8BAA8B;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACvD;AAED,sBAAsB;AACtB,MAAM,WAAW,cAAc;IAC9B,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACnD,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACzE,mBAAmB;IACnB,IAAI,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/client/types.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/client/types.js
CHANGED
|
@@ -5,17 +5,36 @@
|
|
|
5
5
|
* Extracted from libraries/vibeskit (PR #447 migration) to canonicalize as a
|
|
6
6
|
* pure-isomorphic @vibesdotdev/client surface.
|
|
7
7
|
*/
|
|
8
|
+
import { CapabilityError } from '@vibesdotdev/kernel';
|
|
8
9
|
/** Client error with additional context */
|
|
9
|
-
export class ClientError extends
|
|
10
|
+
export class ClientError extends CapabilityError {
|
|
10
11
|
status;
|
|
11
12
|
response;
|
|
12
13
|
request;
|
|
13
|
-
constructor(message, status, response, request) {
|
|
14
|
-
|
|
14
|
+
constructor(message, status, response, request, options) {
|
|
15
|
+
const details = { status };
|
|
16
|
+
if (status === 404 && request) {
|
|
17
|
+
details.kind = 'api/resource';
|
|
18
|
+
details.id = request.path;
|
|
19
|
+
}
|
|
20
|
+
super(message, status === 401 ? 'AUTH_REQUIRED'
|
|
21
|
+
: status === 403 ? 'PERMISSION_DENIED'
|
|
22
|
+
: status === 404 ? 'NOT_FOUND'
|
|
23
|
+
: status === 408 || status === 504 ? 'TIMEOUT'
|
|
24
|
+
: status === 409 ? 'CONFLICT'
|
|
25
|
+
: status === 429 ? 'RATE_LIMITED'
|
|
26
|
+
: status === 0 || status === 502 || status === 503 ? 'UNAVAILABLE'
|
|
27
|
+
: status !== undefined && status >= 400 && status < 500 ? 'INVALID_INPUT'
|
|
28
|
+
: 'INTERNAL', {
|
|
29
|
+
reason: status === 0 ? 'client-network-failed' : 'client-request-failed',
|
|
30
|
+
details,
|
|
31
|
+
cause: options?.cause
|
|
32
|
+
});
|
|
15
33
|
this.status = status;
|
|
16
34
|
this.response = response;
|
|
17
35
|
this.request = request;
|
|
18
36
|
this.name = 'ClientError';
|
|
37
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
19
38
|
}
|
|
20
39
|
}
|
|
21
40
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/client/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/client/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,eAAe,EAA+B,MAAM,qBAAqB,CAAC;AA8DnF,2CAA2C;AAC3C,MAAM,OAAO,WAAY,SAAQ,eAAe;IAGvC;IACA;IACA;IAJR,YACC,OAAe,EACR,MAAe,EACf,QAAmB,EACnB,OAAwB,EAC/B,OAAsB;QAEtB,MAAM,OAAO,GAA2B,EAAE,MAAM,EAAE,CAAC;QACnD,IAAI,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;YAAC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;YAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAAC,CAAC;QAC5F,KAAK,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe;YAC9C,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,mBAAmB;gBACtC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW;oBAC9B,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS;wBAC9C,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU;4BAC7B,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc;gCACjC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa;oCAClE,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe;wCACzE,CAAC,CAAC,UAAU,EAAE;YACd,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB;YACxE,OAAO;YACP,KAAK,EAAE,OAAO,EAAE,KAAK;SACrB,CAAC,CAAC;QAnBI,WAAM,GAAN,MAAM,CAAS;QACf,aAAQ,GAAR,QAAQ,CAAW;QACnB,YAAO,GAAP,OAAO,CAAiB;QAkB/B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;CACD"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* @example
|
|
5
|
-
* ```ts
|
|
6
|
-
* import { getVibesRuntime } from '@vibesdotdev/runtime';
|
|
7
|
-
* import clientPlugin from '@vibesdotdev/client/plugin';
|
|
8
|
-
*
|
|
9
|
-
* const runtime = getVibesRuntime();
|
|
10
|
-
* await runtime.registerPlugin(clientPlugin);
|
|
11
|
-
*
|
|
12
|
-
* // Query a registered API client
|
|
13
|
-
* const authClient = await runtime.query('api/client').withId('auth').resolve();
|
|
14
|
-
* await authClient.get('/api/health');
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
declare const _default: import("@vibesdotdev/runtime").RuntimePlugin;
|
|
18
|
-
export default _default;
|
|
1
|
+
declare const clientPlugin: import("@vibesdotdev/kernel").RuntimePlugin;
|
|
2
|
+
export default clientPlugin;
|
|
19
3
|
//# sourceMappingURL=plugin.d.ts.map
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,YAAY,6CAMhB,CAAC;AACH,eAAe,YAAY,CAAC"}
|