stitchkit 0.48.0 → 0.48.1

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.
Files changed (41) hide show
  1. package/dist/browser/client.d.ts +3 -0
  2. package/dist/browser/client.d.ts.map +1 -1
  3. package/dist/browser/http.d.ts +7 -4
  4. package/dist/browser/http.d.ts.map +1 -1
  5. package/dist/cli.js +3 -2
  6. package/dist/{index-nrytvb30.js → index-03j2t778.js} +5 -8
  7. package/dist/{index-kp8xamqp.js → index-0hj37z43.js} +4 -2
  8. package/dist/index-48ffdxgk.js +6 -0
  9. package/dist/index-h05ygjqx.js +149 -0
  10. package/dist/{index-ee621cmy.js → index-jewp9r0a.js} +5 -139
  11. package/dist/index-p9d4cxt5.js +436 -0
  12. package/dist/{index-44xysy8r.js → index-ts21eyz4.js} +141 -19
  13. package/dist/{index-8ekq6res.js → index-v58mwa19.js} +4 -2
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +18 -3
  17. package/dist/node.d.ts +1 -1
  18. package/dist/node.d.ts.map +1 -1
  19. package/dist/node.js +8 -3
  20. package/dist/observability/audit.d.ts +4 -1
  21. package/dist/observability/audit.d.ts.map +1 -1
  22. package/dist/observability/index.d.ts +1 -0
  23. package/dist/observability/index.d.ts.map +1 -1
  24. package/dist/observability/index.js +150 -16
  25. package/dist/observability/status.d.ts +105 -0
  26. package/dist/observability/status.d.ts.map +1 -0
  27. package/dist/server/implement.d.ts +16 -6
  28. package/dist/server/implement.d.ts.map +1 -1
  29. package/dist/server/index.d.ts +1 -1
  30. package/dist/server/index.d.ts.map +1 -1
  31. package/dist/server/index.js +14 -6
  32. package/dist/server/router.d.ts +4 -1
  33. package/dist/server/router.d.ts.map +1 -1
  34. package/dist/testing.d.ts +34 -0
  35. package/dist/testing.d.ts.map +1 -0
  36. package/dist/testing.js +36 -0
  37. package/dist/tools/mcp.d.ts +1 -0
  38. package/dist/tools/mcp.d.ts.map +1 -1
  39. package/dist/tools.js +21 -428
  40. package/llms-full.txt +127 -16
  41. package/package.json +7 -3
@@ -1,8 +1,11 @@
1
1
  import type { ContractDef, EndpointDef, ScopedHttpClient, ScopedUrlBuilder } from '../contract';
2
2
  import { type HttpClient as HttpAdapter, type UnauthorizedMatcher } from './http';
3
3
  /** Config for the built-in fetch client — used when no `HttpClient` is passed. */
4
+ export type ClientFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
4
5
  export interface ClientConfig {
5
6
  baseUrl: string;
7
+ /** Override Web Fetch delivery while preserving the complete client pipeline. */
8
+ fetch?: ClientFetch;
6
9
  timeout?: number;
7
10
  headers?: Record<string, string> | (() => Record<string, string>);
8
11
  credentials?: RequestCredentials;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/browser/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/browser/client.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ export declare class ApiError extends Error {
18
18
  constructor(code: string, status?: number, details?: unknown, message?: string, hint?: string | undefined, traceId?: string | undefined);
19
19
  static is(error: unknown): error is ApiError;
20
20
  }
21
+ /** @internal Narrow adapter for a Bun fetch error Ky does not classify. */
22
+ export declare function shouldRetryBunNetworkError(error: unknown): true | undefined;
21
23
  /**
22
24
  * Parse a response body into an `ErrorEnvelope['error']` — the default
23
25
  * `HttpClientConfig.parseError`. Returns `null` when the body is not a
@@ -31,10 +33,11 @@ export interface HttpClientConfig {
31
33
  timeout?: number;
32
34
  credentials?: RequestCredentials;
33
35
  /**
34
- * Transport retry. Defaults: 2 attempts, GET only, network errors only
35
- * (empty `statusCodes`). Retrying a server that *responded* (5xx) belongs
36
- * in the data layer (e.g. TanStack Query), not the transport keeping it
37
- * here too would multiply attempts. Override per project if really needed.
36
+ * Transport retry. `limit` counts retries after the initial attempt, so the
37
+ * default `2` permits at most three total attempts. Defaults: GET only and
38
+ * network errors only (`statusCodes: []`). Retrying a server that responded
39
+ * belongs in the data layer unless `methods` / `statusCodes` explicitly
40
+ * expand this transport policy.
38
41
  */
39
42
  retry?: {
40
43
  limit?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/browser/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/browser/http.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -4,9 +4,10 @@ import {
4
4
  emitResult,
5
5
  parseCliArgs,
6
6
  pollUntilDone
7
- } from "./index-kp8xamqp.js";
7
+ } from "./index-0hj37z43.js";
8
8
  import"./index-yxpe3phd.js";
9
- import"./index-ee621cmy.js";
9
+ import"./index-jewp9r0a.js";
10
+ import"./index-h05ygjqx.js";
10
11
  export {
11
12
  pollUntilDone,
12
13
  parseCliArgs,
@@ -2,11 +2,13 @@ import {
2
2
  base64UrlToBytes,
3
3
  bytesToBase64Url,
4
4
  forbidden,
5
- isRecord,
6
5
  isUnsafeKey,
7
6
  safeJsonParse,
8
7
  unauthorized
9
- } from "./index-ee621cmy.js";
8
+ } from "./index-jewp9r0a.js";
9
+ import {
10
+ isRecord
11
+ } from "./index-h05ygjqx.js";
10
12
 
11
13
  // src/server/middleware/cookies.ts
12
14
  function parseCookies(header) {
@@ -195,9 +197,4 @@ async function verifyPkce(verifier, challenge) {
195
197
  return derived === challenge;
196
198
  }
197
199
 
198
- // src/internal/http-input.ts
199
- function inputIsQuery(method) {
200
- return method === "GET" || method === "DELETE";
201
- }
202
-
203
- export { parseCookies, serializeCookie, defineCookie, verifyJwt, signJwt, extractToken, createAuthHook, createBearerResolver, deriveCodeChallenge, verifyPkce, inputIsQuery };
200
+ export { parseCookies, serializeCookie, defineCookie, verifyJwt, signJwt, extractToken, createAuthHook, createBearerResolver, deriveCodeChallenge, verifyPkce };
@@ -8,14 +8,16 @@ import {
8
8
  STITCH_ERROR_STATUS,
9
9
  formatZodError,
10
10
  getRequestContext,
11
- isRecord,
12
11
  isStitchErrorCode,
13
12
  isUnsafeKey,
14
13
  normalizeError,
15
14
  runWithRequestContext,
16
15
  safeJsonParse,
17
16
  validateDeclaredOutput
18
- } from "./index-ee621cmy.js";
17
+ } from "./index-jewp9r0a.js";
18
+ import {
19
+ isRecord
20
+ } from "./index-h05ygjqx.js";
19
21
 
20
22
  // src/tools/coerce.ts
21
23
  import { z } from "zod";
@@ -0,0 +1,6 @@
1
+ // src/internal/http-input.ts
2
+ function inputIsQuery(method) {
3
+ return method === "GET" || method === "DELETE";
4
+ }
5
+
6
+ export { inputIsQuery };
@@ -0,0 +1,149 @@
1
+ import { createRequire } from "node:module";
2
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
+
4
+ // src/observability/trace.ts
5
+ var TRACEPARENT_RE = /^([0-9a-f]{2})-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})(.*)$/i;
6
+ function randomHex(bytes) {
7
+ const arr = new Uint8Array(bytes);
8
+ crypto.getRandomValues(arr);
9
+ let hex = "";
10
+ for (const byte of arr)
11
+ hex += byte.toString(16).padStart(2, "0");
12
+ return hex;
13
+ }
14
+ function createTraceContext() {
15
+ return { traceId: randomHex(16), spanId: randomHex(8) };
16
+ }
17
+ function parseTraceparent(header) {
18
+ if (!header)
19
+ return null;
20
+ const match = TRACEPARENT_RE.exec(header.trim());
21
+ if (!match?.[1] || !match[2] || !match[3] || !match[4] || match[5] === undefined)
22
+ return null;
23
+ const version = match[1].toLowerCase();
24
+ if (version === "ff")
25
+ return null;
26
+ const suffix = match[5];
27
+ if (version === "00" ? suffix !== "" : suffix !== "" && !/^(?:-[0-9a-f]{2,})+$/i.test(suffix)) {
28
+ return null;
29
+ }
30
+ const traceId = match[2].toLowerCase();
31
+ const parentSpanId = match[3].toLowerCase();
32
+ const traceFlags = match[4].toLowerCase();
33
+ if (/^0+$/.test(traceId) || /^0+$/.test(parentSpanId))
34
+ return null;
35
+ return { traceId, spanId: randomHex(8), parentSpanId, traceFlags };
36
+ }
37
+ function formatTraceparent(ctx) {
38
+ return `00-${ctx.traceId}-${ctx.spanId}-${ctx.traceFlags ?? "01"}`;
39
+ }
40
+ function resolveTraceContext(req) {
41
+ return parseTraceparent(req.headers.get("traceparent")) ?? createTraceContext();
42
+ }
43
+ function childSpan(parent) {
44
+ return {
45
+ traceId: parent.traceId,
46
+ spanId: randomHex(8),
47
+ parentSpanId: parent.spanId,
48
+ ...parent.tracestate !== undefined && { tracestate: parent.tracestate },
49
+ ...parent.baggage !== undefined && { baggage: parent.baggage },
50
+ ...parent.traceFlags !== undefined && { traceFlags: parent.traceFlags }
51
+ };
52
+ }
53
+ var encoder = new TextEncoder;
54
+ function boundedPropagationValue(value, maxBytes, maxMembers) {
55
+ if (typeof value !== "string")
56
+ return;
57
+ const trimmed = value.trim();
58
+ if (!trimmed || encoder.encode(trimmed).byteLength > maxBytes)
59
+ return;
60
+ for (const character of trimmed) {
61
+ const code = character.charCodeAt(0);
62
+ if (code <= 31 || code === 127)
63
+ return;
64
+ }
65
+ const members = trimmed.split(",");
66
+ if (members.length > maxMembers || members.some((member) => !member.trim())) {
67
+ return;
68
+ }
69
+ return trimmed;
70
+ }
71
+ function resolvePropagationContext(metadata, fallback) {
72
+ const traceparent = metadata?.traceparent;
73
+ const parsed = typeof traceparent === "string" ? parseTraceparent(traceparent) : null;
74
+ const trace = traceparent === undefined ? fallback ?? createTraceContext() : parsed ?? createTraceContext();
75
+ const tracestate = parsed ? boundedPropagationValue(metadata?.tracestate, 512, 32) : undefined;
76
+ const baggage = boundedPropagationValue(metadata?.baggage, 8192, 180);
77
+ return {
78
+ ...trace,
79
+ ...tracestate !== undefined && { tracestate },
80
+ ...baggage !== undefined && { baggage }
81
+ };
82
+ }
83
+
84
+ // src/internal/route-pattern.ts
85
+ var PARAM_IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;
86
+ function parseTrailingWildcard(path) {
87
+ const segments = path.split("/").filter(Boolean);
88
+ const paramNames = new Set;
89
+ let wildcard = null;
90
+ for (const [segmentIndex, segment] of segments.entries()) {
91
+ if (segment.startsWith(":")) {
92
+ const name2 = segment.slice(1);
93
+ if (!PARAM_IDENTIFIER.test(name2)) {
94
+ throw new Error(`Invalid route parameter name "${name2}" in path "${path}"`);
95
+ }
96
+ if (paramNames.has(name2)) {
97
+ throw new Error(`Duplicate route parameter name "${name2}" in path "${path}"`);
98
+ }
99
+ paramNames.add(name2);
100
+ continue;
101
+ }
102
+ if (!segment.startsWith("*")) {
103
+ if (segment.includes("*")) {
104
+ throw new Error(`Wildcard must occupy its own segment in path "${path}"`);
105
+ }
106
+ continue;
107
+ }
108
+ const name = segment.slice(1);
109
+ if (!PARAM_IDENTIFIER.test(name)) {
110
+ throw new Error(`Trailing wildcard in path "${path}" must be named, for example "/*filePath"`);
111
+ }
112
+ if (segmentIndex !== segments.length - 1) {
113
+ throw new Error(`Wildcard "*${name}" must be the final segment in path "${path}"`);
114
+ }
115
+ if (wildcard) {
116
+ throw new Error(`Path "${path}" contains more than one wildcard`);
117
+ }
118
+ if (paramNames.has(name)) {
119
+ throw new Error(`Duplicate route parameter name "${name}" in path "${path}"`);
120
+ }
121
+ wildcard = { name, segmentIndex };
122
+ }
123
+ return wildcard;
124
+ }
125
+
126
+ // src/internal/typed.ts
127
+ function typedEntries(value) {
128
+ return Object.entries(value);
129
+ }
130
+ function isRecord(value) {
131
+ return typeof value === "object" && value !== null && !Array.isArray(value);
132
+ }
133
+ function callRuntimeHandler(handler, context) {
134
+ if (typeof handler !== "function") {
135
+ throw new TypeError("Runtime handler must be a function");
136
+ }
137
+ return Reflect.apply(handler, undefined, [context]);
138
+ }
139
+ function mapObject(source, mapper) {
140
+ const result = {};
141
+ for (const [key, value] of typedEntries(source)) {
142
+ const mapped = mapper(key, value);
143
+ if (mapped !== undefined)
144
+ result[key] = mapped;
145
+ }
146
+ return result;
147
+ }
148
+
149
+ export { __require, parseTrailingWildcard, typedEntries, isRecord, callRuntimeHandler, mapObject, createTraceContext, parseTraceparent, formatTraceparent, resolveTraceContext, childSpan, resolvePropagationContext };
@@ -1,5 +1,7 @@
1
- import { createRequire } from "node:module";
2
- var __require = /* @__PURE__ */ createRequire(import.meta.url);
1
+ import {
2
+ isRecord,
3
+ resolveTraceContext
4
+ } from "./index-h05ygjqx.js";
3
5
 
4
6
  // src/contract/errors.ts
5
7
  var APP_ERROR_BRAND = Symbol.for("stitchkit.AppError");
@@ -72,48 +74,6 @@ function appError(code, message, details) {
72
74
  // src/contract/define.ts
73
75
  import { z } from "zod";
74
76
 
75
- // src/internal/route-pattern.ts
76
- var PARAM_IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;
77
- function parseTrailingWildcard(path) {
78
- const segments = path.split("/").filter(Boolean);
79
- const paramNames = new Set;
80
- let wildcard = null;
81
- for (const [segmentIndex, segment] of segments.entries()) {
82
- if (segment.startsWith(":")) {
83
- const name2 = segment.slice(1);
84
- if (!PARAM_IDENTIFIER.test(name2)) {
85
- throw new Error(`Invalid route parameter name "${name2}" in path "${path}"`);
86
- }
87
- if (paramNames.has(name2)) {
88
- throw new Error(`Duplicate route parameter name "${name2}" in path "${path}"`);
89
- }
90
- paramNames.add(name2);
91
- continue;
92
- }
93
- if (!segment.startsWith("*")) {
94
- if (segment.includes("*")) {
95
- throw new Error(`Wildcard must occupy its own segment in path "${path}"`);
96
- }
97
- continue;
98
- }
99
- const name = segment.slice(1);
100
- if (!PARAM_IDENTIFIER.test(name)) {
101
- throw new Error(`Trailing wildcard in path "${path}" must be named, for example "/*filePath"`);
102
- }
103
- if (segmentIndex !== segments.length - 1) {
104
- throw new Error(`Wildcard "*${name}" must be the final segment in path "${path}"`);
105
- }
106
- if (wildcard) {
107
- throw new Error(`Path "${path}" contains more than one wildcard`);
108
- }
109
- if (paramNames.has(name)) {
110
- throw new Error(`Duplicate route parameter name "${name}" in path "${path}"`);
111
- }
112
- wildcard = { name, segmentIndex };
113
- }
114
- return wildcard;
115
- }
116
-
117
77
  // src/internal/safe-json.ts
118
78
  function isUnsafeKey(key) {
119
79
  return key === "__proto__";
@@ -132,20 +92,6 @@ function mergeMeta(contractMeta, endpointMeta) {
132
92
  }
133
93
  // src/contract/errors-factory.ts
134
94
  import { z as z2 } from "zod";
135
-
136
- // src/internal/typed.ts
137
- function typedEntries(value) {
138
- return Object.entries(value);
139
- }
140
- function isRecord(value) {
141
- return typeof value === "object" && value !== null && !Array.isArray(value);
142
- }
143
- function callRuntimeHandler(handler, context) {
144
- if (typeof handler !== "function") {
145
- throw new TypeError("Runtime handler must be a function");
146
- }
147
- return Reflect.apply(handler, undefined, [context]);
148
- }
149
95
  // src/contract/pagination.ts
150
96
  import { z as z3 } from "zod";
151
97
 
@@ -320,86 +266,6 @@ function parseQueryParams(url) {
320
266
  return query;
321
267
  }
322
268
 
323
- // src/observability/trace.ts
324
- var TRACEPARENT_RE = /^([0-9a-f]{2})-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})(.*)$/i;
325
- function randomHex(bytes) {
326
- const arr = new Uint8Array(bytes);
327
- crypto.getRandomValues(arr);
328
- let hex = "";
329
- for (const byte of arr)
330
- hex += byte.toString(16).padStart(2, "0");
331
- return hex;
332
- }
333
- function createTraceContext() {
334
- return { traceId: randomHex(16), spanId: randomHex(8) };
335
- }
336
- function parseTraceparent(header) {
337
- if (!header)
338
- return null;
339
- const match = TRACEPARENT_RE.exec(header.trim());
340
- if (!match?.[1] || !match[2] || !match[3] || !match[4] || match[5] === undefined)
341
- return null;
342
- const version = match[1].toLowerCase();
343
- if (version === "ff")
344
- return null;
345
- const suffix = match[5];
346
- if (version === "00" ? suffix !== "" : suffix !== "" && !/^(?:-[0-9a-f]{2,})+$/i.test(suffix)) {
347
- return null;
348
- }
349
- const traceId = match[2].toLowerCase();
350
- const parentSpanId = match[3].toLowerCase();
351
- const traceFlags = match[4].toLowerCase();
352
- if (/^0+$/.test(traceId) || /^0+$/.test(parentSpanId))
353
- return null;
354
- return { traceId, spanId: randomHex(8), parentSpanId, traceFlags };
355
- }
356
- function formatTraceparent(ctx) {
357
- return `00-${ctx.traceId}-${ctx.spanId}-${ctx.traceFlags ?? "01"}`;
358
- }
359
- function resolveTraceContext(req) {
360
- return parseTraceparent(req.headers.get("traceparent")) ?? createTraceContext();
361
- }
362
- function childSpan(parent) {
363
- return {
364
- traceId: parent.traceId,
365
- spanId: randomHex(8),
366
- parentSpanId: parent.spanId,
367
- ...parent.tracestate !== undefined && { tracestate: parent.tracestate },
368
- ...parent.baggage !== undefined && { baggage: parent.baggage },
369
- ...parent.traceFlags !== undefined && { traceFlags: parent.traceFlags }
370
- };
371
- }
372
- var encoder = new TextEncoder;
373
- function boundedPropagationValue(value, maxBytes, maxMembers) {
374
- if (typeof value !== "string")
375
- return;
376
- const trimmed = value.trim();
377
- if (!trimmed || encoder.encode(trimmed).byteLength > maxBytes)
378
- return;
379
- for (const character of trimmed) {
380
- const code = character.charCodeAt(0);
381
- if (code <= 31 || code === 127)
382
- return;
383
- }
384
- const members = trimmed.split(",");
385
- if (members.length > maxMembers || members.some((member) => !member.trim())) {
386
- return;
387
- }
388
- return trimmed;
389
- }
390
- function resolvePropagationContext(metadata, fallback) {
391
- const traceparent = metadata?.traceparent;
392
- const parsed = typeof traceparent === "string" ? parseTraceparent(traceparent) : null;
393
- const trace = traceparent === undefined ? fallback ?? createTraceContext() : parsed ?? createTraceContext();
394
- const tracestate = parsed ? boundedPropagationValue(metadata?.tracestate, 512, 32) : undefined;
395
- const baggage = boundedPropagationValue(metadata?.baggage, 8192, 180);
396
- return {
397
- ...trace,
398
- ...tracestate !== undefined && { tracestate },
399
- ...baggage !== undefined && { baggage }
400
- };
401
- }
402
-
403
269
  // src/observability/context.ts
404
270
  import { AsyncLocalStorage } from "node:async_hooks";
405
271
  var storage = new AsyncLocalStorage;
@@ -454,4 +320,4 @@ function wrapInRequestContext(handler, options = {}) {
454
320
  };
455
321
  }
456
322
 
457
- export { __require, parseTrailingWildcard, isUnsafeKey, safeJsonParse, mergeMeta, AppError, notFound, badRequest, unauthorized, forbidden, conflict, rateLimited, STITCH_ERROR_STATUS, isStitchErrorCode, appError, typedEntries, isRecord, callRuntimeHandler, bytesToBase64Url, base64UrlToBytes, formatZodError, zodIssues, errorCode, recordedErrorMessage, normalizeError, validateDeclaredOutput, generateTraceId, resolveTraceId, resolveSocketIp, extractIp, getClientInfo, parseQueryParams, createTraceContext, parseTraceparent, formatTraceparent, resolveTraceContext, childSpan, resolvePropagationContext, runWithRequestContext, getRequestContext, getTraceId, getUserId, setRequestUser, setRequestEndpoint, setRequestDimensions, setRequestError, wrapInRequestContext };
323
+ export { isUnsafeKey, safeJsonParse, mergeMeta, AppError, notFound, badRequest, unauthorized, forbidden, conflict, rateLimited, STITCH_ERROR_STATUS, isStitchErrorCode, appError, bytesToBase64Url, base64UrlToBytes, formatZodError, zodIssues, errorCode, recordedErrorMessage, normalizeError, validateDeclaredOutput, generateTraceId, resolveTraceId, resolveSocketIp, extractIp, getClientInfo, parseQueryParams, runWithRequestContext, getRequestContext, getTraceId, getUserId, setRequestUser, setRequestEndpoint, setRequestDimensions, setRequestError, wrapInRequestContext };