stitchkit 0.55.0 → 0.56.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 (78) hide show
  1. package/dist/browser/socket-io.d.ts +14 -6
  2. package/dist/browser/socket-io.d.ts.map +1 -1
  3. package/dist/cli.js +4 -4
  4. package/dist/contract/errors.d.ts +7 -0
  5. package/dist/contract/errors.d.ts.map +1 -1
  6. package/dist/contract/index.js +1 -1
  7. package/dist/files/boundary.d.ts +8 -5
  8. package/dist/files/boundary.d.ts.map +1 -1
  9. package/dist/files.js +1 -1
  10. package/dist/{index-rgd18hx3.js → index-28cqssm3.js} +7 -0
  11. package/dist/index-557by2db.js +34 -0
  12. package/dist/index-5r13htq1.js +283 -0
  13. package/dist/index-6y759j86.js +1031 -0
  14. package/dist/{index-npye5kt7.js → index-75njxz7p.js} +69 -7
  15. package/dist/{index-1k16zv57.js → index-bfcpjw20.js} +125 -31
  16. package/dist/{index-0gv7k0ra.js → index-escqg10p.js} +73 -666
  17. package/dist/{index-v4bbq3p4.js → index-j3dem06f.js} +1 -1
  18. package/dist/{index-qx84bqzk.js → index-jcc611vh.js} +1 -1
  19. package/dist/{index-pzc32v75.js → index-sm2tjx06.js} +41 -4
  20. package/dist/{index-js7yexng.js → index-xy8fmh6w.js} +83 -4
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +27 -6
  24. package/dist/node.js +5 -4
  25. package/dist/observability/audit.d.ts +4 -0
  26. package/dist/observability/audit.d.ts.map +1 -1
  27. package/dist/observability/event.d.ts +5 -0
  28. package/dist/observability/event.d.ts.map +1 -1
  29. package/dist/observability/index.js +17 -11
  30. package/dist/remote.js +1 -1
  31. package/dist/server/context-contribution.d.ts +8 -0
  32. package/dist/server/context-contribution.d.ts.map +1 -1
  33. package/dist/server/create.d.ts.map +1 -1
  34. package/dist/server/error-hook.d.ts +1 -1
  35. package/dist/server/error-hook.d.ts.map +1 -1
  36. package/dist/server/index.d.ts +1 -1
  37. package/dist/server/index.d.ts.map +1 -1
  38. package/dist/server/index.js +10 -6
  39. package/dist/server/logger.d.ts.map +1 -1
  40. package/dist/server/middleware/auth.d.ts +29 -2
  41. package/dist/server/middleware/auth.d.ts.map +1 -1
  42. package/dist/server/request-body.d.ts.map +1 -1
  43. package/dist/testing/surface-conformance.d.ts +143 -10
  44. package/dist/testing/surface-conformance.d.ts.map +1 -1
  45. package/dist/testing/surface-manifest.d.ts +132 -33
  46. package/dist/testing/surface-manifest.d.ts.map +1 -1
  47. package/dist/testing.d.ts +2 -2
  48. package/dist/testing.d.ts.map +1 -1
  49. package/dist/testing.js +470 -122
  50. package/dist/tools/async-operation.d.ts +210 -18
  51. package/dist/tools/async-operation.d.ts.map +1 -1
  52. package/dist/tools/define-download-tool.d.ts.map +1 -1
  53. package/dist/tools/define-upload-tool.d.ts.map +1 -1
  54. package/dist/tools/internal/surface-projector.d.ts +101 -0
  55. package/dist/tools/internal/surface-projector.d.ts.map +1 -0
  56. package/dist/tools/managed-file-error.d.ts +6 -0
  57. package/dist/tools/managed-file-error.d.ts.map +1 -0
  58. package/dist/tools/mcp-prepare.d.ts +3 -21
  59. package/dist/tools/mcp-prepare.d.ts.map +1 -1
  60. package/dist/tools/mcp-round-policy.d.ts +9 -0
  61. package/dist/tools/mcp-round-policy.d.ts.map +1 -0
  62. package/dist/tools/mcp-round.d.ts +0 -4
  63. package/dist/tools/mcp-round.d.ts.map +1 -1
  64. package/dist/tools/mount-download.d.ts.map +1 -1
  65. package/dist/tools/mount-upload.d.ts.map +1 -1
  66. package/dist/tools/mount.d.ts +5 -9
  67. package/dist/tools/mount.d.ts.map +1 -1
  68. package/dist/tools/runtime-tool.d.ts.map +1 -1
  69. package/dist/tools/surface.d.ts +7 -0
  70. package/dist/tools/surface.d.ts.map +1 -1
  71. package/dist/tools/view-file.d.ts.map +1 -1
  72. package/dist/tools.d.ts +1 -1
  73. package/dist/tools.d.ts.map +1 -1
  74. package/dist/tools.js +348 -383
  75. package/llms-full.txt +425 -66
  76. package/package.json +1 -1
  77. package/dist/index-h60df7rj.js +0 -110
  78. package/dist/index-k4dftwf7.js +0 -66
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  AppError,
3
3
  isUnsafeKey
4
- } from "./index-h60df7rj.js";
4
+ } from "./index-5r13htq1.js";
5
5
  import {
6
6
  isRecord,
7
7
  resolveTraceContext
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isUnsafeKey
3
- } from "./index-h60df7rj.js";
3
+ } from "./index-5r13htq1.js";
4
4
  import {
5
5
  isRecord
6
6
  } from "./index-7eq9va6e.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  isUnsafeKey,
3
3
  mergeMeta
4
- } from "./index-h60df7rj.js";
4
+ } from "./index-5r13htq1.js";
5
5
  import {
6
6
  callRuntimeHandler,
7
7
  isRecord,
@@ -267,7 +267,41 @@ var RUNTIME_CONTEXT_RESERVED_KEYS = new Set([
267
267
  function contributionError(scope, reason) {
268
268
  return new TypeError(`[stitchkit] auth: invalid context contribution for scope ${JSON.stringify(scope)}: ${reason}`);
269
269
  }
270
- function mergeContextContribution(ctx, value, scope) {
270
+ function descriptorsEqual(left, right) {
271
+ if (!left || !right)
272
+ return left === right;
273
+ if (left.enumerable !== right.enumerable || left.configurable !== right.configurable || left.writable !== right.writable) {
274
+ return false;
275
+ }
276
+ if ("value" in left || "value" in right) {
277
+ return "value" in left && "value" in right && Object.is(left.value, right.value);
278
+ }
279
+ return left.get === right.get && left.set === right.set;
280
+ }
281
+ function contextContributionDelta(original, shadow, scope) {
282
+ if (Object.getPrototypeOf(shadow) !== Object.getPrototypeOf(original)) {
283
+ throw contributionError(scope, "context prototype changes are not supported");
284
+ }
285
+ const originalKeys = Reflect.ownKeys(original);
286
+ const shadowKeys = Reflect.ownKeys(shadow);
287
+ const shadowKeySet = new Set(shadowKeys);
288
+ for (const key of originalKeys) {
289
+ if (!shadowKeySet.has(key)) {
290
+ const printable = typeof key === "string" ? JSON.stringify(key) : "a symbol key";
291
+ throw contributionError(scope, `context key ${printable} may not be deleted`);
292
+ }
293
+ }
294
+ const contribution = Object.create(null);
295
+ for (const key of shadowKeys) {
296
+ const originalDescriptor = Object.getOwnPropertyDescriptor(original, key);
297
+ const shadowDescriptor = Object.getOwnPropertyDescriptor(shadow, key);
298
+ if (!shadowDescriptor || descriptorsEqual(originalDescriptor, shadowDescriptor))
299
+ continue;
300
+ Object.defineProperty(contribution, key, shadowDescriptor);
301
+ }
302
+ return contribution;
303
+ }
304
+ function prepareContextContribution(value, scope) {
271
305
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
272
306
  throw contributionError(scope, "expected a plain record");
273
307
  }
@@ -301,7 +335,10 @@ function mergeContextContribution(ctx, value, scope) {
301
335
  }
302
336
  prepared[key] = descriptor.value;
303
337
  }
304
- Object.assign(ctx, prepared);
338
+ return prepared;
339
+ }
340
+ function mergeContextContribution(ctx, value, scope) {
341
+ Object.assign(ctx, prepareContextContribution(value, scope));
305
342
  }
306
343
 
307
344
  // src/server/process-signal-common.ts
@@ -333,4 +370,4 @@ function guardSignalCallback(run, phase, onError) {
333
370
  }
334
371
  }
335
372
 
336
- export { RUNTIME_CONTEXT_RESERVED_KEYS, mergeContextContribution, DEFAULT_CORS_ALLOW_HEADERS, DEFAULT_CORS_EXPOSE_HEADERS, assertCorsConfig, corsHeaders, corsPreflightResponse, defineMultipartStream, createMultipartStream, contractOnlyService, implement, createImplement, createScopedImplement, createScopedImplementRegistry, implementRegistry, createImplementRegistry, DEFAULT_PROCESS_SIGNALS, defaultSignalSource, reportSignalError, guardSignalCallback };
373
+ export { RUNTIME_CONTEXT_RESERVED_KEYS, contextContributionDelta, prepareContextContribution, mergeContextContribution, DEFAULT_CORS_ALLOW_HEADERS, DEFAULT_CORS_EXPOSE_HEADERS, assertCorsConfig, corsHeaders, corsPreflightResponse, defineMultipartStream, createMultipartStream, contractOnlyService, implement, createImplement, createScopedImplement, createScopedImplementRegistry, implementRegistry, createImplementRegistry, DEFAULT_PROCESS_SIGNALS, defaultSignalSource, reportSignalError, guardSignalCallback };
@@ -1,6 +1,8 @@
1
1
  import {
2
- mergeContextContribution
3
- } from "./index-pzc32v75.js";
2
+ contextContributionDelta,
3
+ mergeContextContribution,
4
+ prepareContextContribution
5
+ } from "./index-sm2tjx06.js";
4
6
  import {
5
7
  base64UrlToBytes,
6
8
  bytesToBase64Url,
@@ -8,7 +10,7 @@ import {
8
10
  isUnsafeKey,
9
11
  safeJsonParse,
10
12
  unauthorized
11
- } from "./index-h60df7rj.js";
13
+ } from "./index-5r13htq1.js";
12
14
  import {
13
15
  isRecord
14
16
  } from "./index-7eq9va6e.js";
@@ -160,6 +162,17 @@ function isThenable(value) {
160
162
  return false;
161
163
  }
162
164
  }
165
+ var scopedAuthHookBrand = Symbol("stitchkit.scoped-auth-hook");
166
+ var authOwnershipPlans = new WeakMap;
167
+ function createShadowContext(ctx) {
168
+ const shadow = {
169
+ params: ctx.params,
170
+ input: ctx.input,
171
+ source: ctx.source
172
+ };
173
+ Object.defineProperties(shadow, Object.getOwnPropertyDescriptors(ctx));
174
+ return shadow;
175
+ }
163
176
  function createAuthHook(config) {
164
177
  const onAnonymous = config.onAnonymous ?? (() => unauthorized());
165
178
  const onForbidden = config.onForbidden ?? (() => forbidden());
@@ -198,8 +211,74 @@ function createAuthHook(config) {
198
211
  return;
199
212
  mergeContextContribution(ctx, result, scope);
200
213
  }
214
+ auth[scopedAuthHookBrand] = () => {
215
+ return;
216
+ };
217
+ authOwnershipPlans.set(auth, {
218
+ defaultScope: config.defaultScope,
219
+ hook: auth,
220
+ scopes: new Set(Object.keys(config.rules))
221
+ });
201
222
  return auth;
202
223
  }
224
+ function composeAuthHooks(config) {
225
+ const plans = [];
226
+ for (const hook of config.hooks) {
227
+ const plan = authOwnershipPlans.get(hook);
228
+ if (!plan) {
229
+ throw new TypeError("[stitchkit] auth: composeAuthHooks accepts only hooks created by createAuthHook or composeAuthHooks");
230
+ }
231
+ if (plan.defaultScope !== undefined && plan.defaultScope !== config.defaultScope) {
232
+ throw new TypeError(`[stitchkit] auth: child default scope ${JSON.stringify(plan.defaultScope)} must match the composite default scope`);
233
+ }
234
+ plans.push(plan);
235
+ }
236
+ const defaultScope = config.defaultScope;
237
+ if (defaultScope !== undefined && !plans.some((plan) => plan.scopes.has(defaultScope))) {
238
+ throw new TypeError(`[stitchkit] auth: composite default scope ${JSON.stringify(defaultScope)} has no owner`);
239
+ }
240
+ const ownedScopes = new Set;
241
+ for (const plan of plans) {
242
+ for (const scope of plan.scopes)
243
+ ownedScopes.add(scope);
244
+ }
245
+ async function composed(ctx, endpoint) {
246
+ const scope = endpoint.scope ?? config.defaultScope;
247
+ if (!scope)
248
+ return;
249
+ const owners = plans.filter((plan) => plan.scopes.has(scope));
250
+ if (owners.length === 0) {
251
+ throw new Error(`[stitchkit] auth: no rule for scope "${scope}"`);
252
+ }
253
+ const scopedEndpoint = { ...endpoint, scope };
254
+ const contribution = Object.create(null);
255
+ const contributionOwners = new Set;
256
+ for (const owner of owners) {
257
+ ctx.signal?.throwIfAborted();
258
+ const shadow = createShadowContext(ctx);
259
+ await owner.hook(shadow, scopedEndpoint);
260
+ const ownerContribution = prepareContextContribution(contextContributionDelta(ctx, shadow, scope), scope);
261
+ for (const key of Object.keys(ownerContribution)) {
262
+ if (contributionOwners.has(key)) {
263
+ throw new TypeError(`[stitchkit] auth: multiple owners contributed context key ${JSON.stringify(key)} for scope ${JSON.stringify(scope)}`);
264
+ }
265
+ contributionOwners.add(key);
266
+ }
267
+ Object.assign(contribution, ownerContribution);
268
+ }
269
+ ctx.signal?.throwIfAborted();
270
+ mergeContextContribution(ctx, contribution, scope);
271
+ }
272
+ composed[scopedAuthHookBrand] = () => {
273
+ return;
274
+ };
275
+ authOwnershipPlans.set(composed, {
276
+ defaultScope: config.defaultScope,
277
+ hook: composed,
278
+ scopes: ownedScopes
279
+ });
280
+ return composed;
281
+ }
203
282
  function createBearerResolver(config) {
204
283
  return async (req) => {
205
284
  const token = extractToken(req);
@@ -221,4 +300,4 @@ async function verifyPkce(verifier, challenge) {
221
300
  return derived === challenge;
222
301
  }
223
302
 
224
- export { parseCookies, serializeCookie, defineCookie, verifyJwt, signJwt, extractToken, createAuthHook, createBearerResolver, deriveCodeChallenge, verifyPkce };
303
+ export { parseCookies, serializeCookie, defineCookie, verifyJwt, signJwt, extractToken, createAuthHook, composeAuthHooks, createBearerResolver, deriveCodeChallenge, verifyPkce };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { type ClientConfig, type ClientContract, type ClientFetch, type ClientRegistryValue, type ContractClientConfig, contractEndpointMatchers, createClient, createClients, createScopedClients, createScopedUrlBuilders, createUrlBuilder, createUrlBuilders, type PathPrefixArgs, type RegistryScope, type ScopeClientConfigs, type ScopedClientRegistry, type ScopedUrlBuilderRegistry, type UrlBuilderConfig, } from './browser/client';
2
2
  export { ApiError, type ApiEvent, type ApiEventListener, type ConfiguredHttpClient, createHttpClient, type HeaderProvider, type HttpClient, type HttpClientConfig, type RequestOptions, type UnauthorizedMatcher, } from './browser/http';
3
- export type { RealtimeClient, RealtimeClientOptions, SocketEventMap, SocketIOClient, SocketIOClientConfig, } from './browser/socket-io';
4
- export { createRealtimeClient, createSocketIOClient } from './browser/socket-io';
3
+ export type { BindRealtimeClientOptions, BoundRealtimeClient, RealtimeClient, RealtimeClientOptions, RealtimeClientTransport, SocketEventMap, SocketIOClient, SocketIOClientConfig, } from './browser/socket-io';
4
+ export { bindRealtimeClient, createRealtimeClient, createSocketIOClient, } from './browser/socket-io';
5
5
  export { type ParseSSEOptions, parseSSE } from './browser/stream';
6
6
  export * from './contract';
7
7
  export type { StitchLogger } from './logger';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,KAAK,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClE,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,yBAAyB,EACzB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClE,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -19,7 +19,7 @@ import {
19
19
  parseTrailingWildcard,
20
20
  rateLimited,
21
21
  unauthorized
22
- } from "./index-rgd18hx3.js";
22
+ } from "./index-28cqssm3.js";
23
23
  import {
24
24
  isRecord,
25
25
  mapObject,
@@ -1120,8 +1120,18 @@ function toIoAuth(auth) {
1120
1120
  Promise.resolve().then(auth).then(cb, () => cb({}));
1121
1121
  };
1122
1122
  }
1123
- function createRealtimeClient(contract, { onRejected, logger, ...config }) {
1124
- const transport = createSocketIOClient(config);
1123
+ function assertRealtimeClientTransport(transport) {
1124
+ for (const capability of ["on", "emit", "emitWithAck", "onConnectionChange"]) {
1125
+ if (typeof Reflect.get(transport, capability) !== "function") {
1126
+ throw new TypeError(`Realtime client transport does not implement ${capability}()`);
1127
+ }
1128
+ }
1129
+ if (typeof transport.connected !== "boolean") {
1130
+ throw new TypeError("Realtime client transport does not expose boolean connected");
1131
+ }
1132
+ }
1133
+ function bindRealtimeClient(contract, transport, { onRejected, logger } = {}) {
1134
+ assertRealtimeClientTransport(transport);
1125
1135
  const events = createValidatedRealtimeSocket({
1126
1136
  target: transport,
1127
1137
  inbound: contract.serverToClient,
@@ -1165,13 +1175,23 @@ function createRealtimeClient(contract, { onRejected, logger, ...config }) {
1165
1175
  }
1166
1176
  return {
1167
1177
  ...events,
1168
- connect: transport.connect,
1169
- disconnect: transport.disconnect,
1170
1178
  get connected() {
1171
1179
  return transport.connected;
1172
1180
  },
1173
1181
  request,
1174
- onConnectionChange: transport.onConnectionChange
1182
+ onConnectionChange: (listener) => transport.onConnectionChange(listener)
1183
+ };
1184
+ }
1185
+ function createRealtimeClient(contract, { onRejected, logger, ...config }) {
1186
+ const transport = createSocketIOClient(config);
1187
+ const bound = bindRealtimeClient(contract, transport, { onRejected, logger });
1188
+ return {
1189
+ ...bound,
1190
+ get connected() {
1191
+ return bound.connected;
1192
+ },
1193
+ connect: transport.connect,
1194
+ disconnect: transport.disconnect
1175
1195
  };
1176
1196
  }
1177
1197
  function createSocketIOClient(config) {
@@ -1382,6 +1402,7 @@ export {
1382
1402
  STITCH_ERROR_STATUS,
1383
1403
  appError,
1384
1404
  badRequest,
1405
+ bindRealtimeClient,
1385
1406
  childSpan,
1386
1407
  conflict,
1387
1408
  contractEndpointMatchers,
package/dist/node.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  createHandler,
9
9
  createServerLifecycle,
10
10
  createSocketIOServer
11
- } from "./index-npye5kt7.js";
11
+ } from "./index-75njxz7p.js";
12
12
  import {
13
13
  createImplement,
14
14
  createImplementRegistry,
@@ -17,8 +17,9 @@ import {
17
17
  createScopedImplementRegistry,
18
18
  implement,
19
19
  implementRegistry
20
- } from "./index-pzc32v75.js";
21
- import"./index-v4bbq3p4.js";
20
+ } from "./index-sm2tjx06.js";
21
+ import"./index-557by2db.js";
22
+ import"./index-j3dem06f.js";
22
23
  import {
23
24
  AppError,
24
25
  appError,
@@ -28,7 +29,7 @@ import {
28
29
  notFound,
29
30
  rateLimited,
30
31
  unauthorized
31
- } from "./index-h60df7rj.js";
32
+ } from "./index-5r13htq1.js";
32
33
  import"./index-6k1937bx.js";
33
34
  import"./index-7eq9va6e.js";
34
35
  import"./index-1bx83sw4.js";
@@ -34,6 +34,8 @@ export interface SinkDrop {
34
34
  export interface RequestObservabilityConfig extends RequestEventSinkConfig {
35
35
  /** Clone and record JSON request bodies. Default false. */
36
36
  includePayload?: boolean;
37
+ /** Emit client-closed HTTP requests as `outcome: 'cancelled'`. Default false. */
38
+ includeCancelled?: boolean;
37
39
  }
38
40
  export interface ObservabilityConfig {
39
41
  request?: RequestObservabilityConfig;
@@ -45,6 +47,8 @@ export interface HttpRequestCompletion {
45
47
  statusCode: number;
46
48
  durationMs: number;
47
49
  payload?: Promise<unknown>;
50
+ /** Framework-owned neutral cancellation; currently paired with HTTP 499. */
51
+ outcome?: 'cancelled';
48
52
  }
49
53
  /** Server-facing request projection returned by `createObservability`. */
50
54
  export interface HttpRequestObserver {
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/observability/audit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAe,KAAK,eAAe,EAAmB,MAAM,YAAY,CAAC;AAChF,OAAO,EAEL,KAAK,wBAAwB,EAI7B,KAAK,mBAAmB,EAEzB,MAAM,UAAU,CAAC;AAGlB,kEAAkE;AAClE,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,iFAAiF;IACjF,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC;IAC1C,yEAAyE;IACzE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,8DAA8D;IAC9D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE,2DAA2D;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,KAAK,CAAC,EAAE,sBAAsB,CAAC;CAChC;AAED,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5B;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACnD;AAED,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,iDAAiD;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,2EAA2E;IAC3E,SAAS,IAAI,mBAAmB,CAAC;IACjC,4EAA4E;IAC5E,KAAK,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAAC;CAC5C;AAkOD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAyJ9E"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/observability/audit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAe,KAAK,eAAe,EAAmB,MAAM,YAAY,CAAC;AAChF,OAAO,EAEL,KAAK,wBAAwB,EAI7B,KAAK,mBAAmB,EAEzB,MAAM,UAAU,CAAC;AAGlB,kEAAkE;AAClE,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,iFAAiF;IACjF,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC;IAC1C,yEAAyE;IACzE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,8DAA8D;IAC9D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE,2DAA2D;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,KAAK,CAAC,EAAE,sBAAsB,CAAC;CAChC;AAED,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACnD;AAED,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,iDAAiD;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,2EAA2E;IAC3E,SAAS,IAAI,mBAAmB,CAAC;IACjC,4EAA4E;IAC5E,KAAK,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAAC;CAC5C;AAkOD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CA8J9E"}
@@ -48,6 +48,11 @@ export interface RequestEvent {
48
48
  parentSpanId?: string;
49
49
  /** Whether the call succeeded. */
50
50
  ok: boolean;
51
+ /**
52
+ * Explicit non-failure outcome. Present only for event classes a sink opted
53
+ * into; ordinary success/failure rows retain their released shape.
54
+ */
55
+ outcome?: 'cancelled';
51
56
  /** HTTP status — the real status for HTTP, `200` / `400` for a tool call. */
52
57
  statusCode: number;
53
58
  /** Wall-clock duration. */
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/observability/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;IACxC,6EAA6E;IAC7E,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,uEAAuE;IACvE,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,mDAAmD;IACnD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,SAAS,EAAE,IAAI,CAAC;CACjB"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/observability/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;IACxC,6EAA6E;IAC7E,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,uEAAuE;IACvE,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,mDAAmD;IACnD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -3,7 +3,7 @@ import {
3
3
  redact,
4
4
  sanitizePayload,
5
5
  truncatePreview
6
- } from "../index-qx84bqzk.js";
6
+ } from "../index-jcc611vh.js";
7
7
  import {
8
8
  getRequestContext,
9
9
  getTraceId,
@@ -15,8 +15,8 @@ import {
15
15
  setRequestError,
16
16
  setRequestUser,
17
17
  wrapInRequestContext
18
- } from "../index-v4bbq3p4.js";
19
- import"../index-h60df7rj.js";
18
+ } from "../index-j3dem06f.js";
19
+ import"../index-5r13htq1.js";
20
20
  import"../index-6k1937bx.js";
21
21
  import {
22
22
  childSpan,
@@ -250,13 +250,16 @@ function createObservability(config) {
250
250
  let closePromise;
251
251
  const request = config.request ? {
252
252
  includePayload: config.request.includePayload ?? false,
253
- complete: ({ context, statusCode, durationMs, payload }) => {
253
+ complete: ({ context, statusCode, durationMs, payload, outcome }) => {
254
254
  const requestConfig = config.request;
255
255
  if (!requestConfig)
256
256
  return;
257
+ const cancelled = outcome === "cancelled";
258
+ if (cancelled && !requestConfig.includeCancelled)
259
+ return;
257
260
  requestManager?.submit(async () => {
258
261
  let body;
259
- if (payload) {
262
+ if (!cancelled && payload) {
260
263
  try {
261
264
  body = await payload;
262
265
  } catch {
@@ -277,15 +280,18 @@ function createObservability(config) {
277
280
  traceId: context.trace.traceId,
278
281
  spanId: context.trace.spanId,
279
282
  parentSpanId: context.trace.parentSpanId,
280
- ok: statusCode < 400,
283
+ ok: !cancelled && statusCode < 400,
284
+ ...cancelled && { outcome: "cancelled" },
281
285
  statusCode,
282
286
  durationMs,
283
- errorCode: context.error?.code,
284
- errorMessage: context.error?.message,
285
- ...context.error?.details !== undefined && {
286
- errorDetail: sanitizePayload(context.error.details, requestConfig.sanitize)
287
+ ...!cancelled && {
288
+ errorCode: context.error?.code,
289
+ errorMessage: context.error?.message,
290
+ ...context.error?.details !== undefined && {
291
+ errorDetail: sanitizePayload(context.error.details, requestConfig.sanitize)
292
+ }
287
293
  },
288
- payload: sanitizePayload(body, requestConfig.sanitize),
294
+ payload: cancelled ? null : sanitizePayload(body, requestConfig.sanitize),
289
295
  resultSize: null,
290
296
  responseBytes: 0,
291
297
  userId: context.userId,
package/dist/remote.js CHANGED
@@ -6,7 +6,7 @@ import"./index-48ffdxgk.js";
6
6
  import {
7
7
  AppError,
8
8
  mergeMeta
9
- } from "./index-h60df7rj.js";
9
+ } from "./index-5r13htq1.js";
10
10
  import"./index-6k1937bx.js";
11
11
  import {
12
12
  isRecord
@@ -1,6 +1,14 @@
1
1
  import type { RuntimeContext } from '../contract';
2
2
  /** Keys whose value is owned by a transport/runtime boundary, never by application enrichment. */
3
3
  export declare const RUNTIME_CONTEXT_RESERVED_KEYS: Set<string>;
4
+ /**
5
+ * Return the application-owned fields changed on an isolated context. The
6
+ * descriptors are preserved so the regular contribution validator can reject
7
+ * accessors and symbols without invoking consumer code.
8
+ */
9
+ export declare function contextContributionDelta(original: RuntimeContext, shadow: RuntimeContext, scope: string): Record<string, unknown>;
10
+ /** Validate and copy a contribution without mutating a runtime context. */
11
+ export declare function prepareContextContribution(value: unknown, scope: string): Record<string, unknown>;
4
12
  /**
5
13
  * Validate the complete contribution before mutating the runtime context.
6
14
  * Accessors, exotic prototypes and transport-owned keys fail closed so a
@@ -1 +1 @@
1
- {"version":3,"file":"context-contribution.d.ts","sourceRoot":"","sources":["../../src/server/context-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,kGAAkG;AAClG,eAAO,MAAM,6BAA6B,aAexC,CAAC;AAQH;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,IAAI,CAuCN"}
1
+ {"version":3,"file":"context-contribution.d.ts","sourceRoot":"","sources":["../../src/server/context-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,kGAAkG;AAClG,eAAO,MAAM,6BAA6B,aAexC,CAAC;AA0BH;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBzB;AAED,2EAA2E;AAC3E,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuCzB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,IAAI,CAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/server/create.ts"],"names":[],"mappings":"AAoDA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAA2B,MAAM,SAAS,CAAC;AAIpF,wBAAgB,aAAa,CAAC,OAAO,GAAG,OAAO,EAC7C,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAC7B,YAAY,CAAC,OAAO,CAAC,CA8fvB"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/server/create.ts"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAA2B,MAAM,SAAS,CAAC;AA2BpF,wBAAgB,aAAa,CAAC,OAAO,GAAG,OAAO,EAC7C,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAC7B,YAAY,CAAC,OAAO,CAAC,CA8gBvB"}
@@ -55,7 +55,7 @@ export interface ErrorHookConfig<TWireCode extends string = string> {
55
55
  * `satisfies Record<StitchErrorCode, …>` makes a new framework code a compile
56
56
  * error here. Codes you threw yourself (not stitchkit's) pass through as-is.
57
57
  */
58
- codeMap?: Record<StitchErrorCode, TWireCode>;
58
+ codeMap?: Partial<Record<StitchErrorCode, TWireCode>>;
59
59
  /** Build the response body from the resolved error. */
60
60
  /**
61
61
  * Build the response body from the resolved error. `ctx` is the request's
@@ -1 +1 @@
1
- {"version":3,"file":"error-hook.d.ts","sourceRoot":"","sources":["../../src/server/error-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzD,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAe,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM;IAChE;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC7C,uDAAuD;IACvD;;;;;OAKG;IACH,MAAM,EAAE,CACN,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,SAAS,KACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,SAAS,KACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAC/D,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,GACjC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CA0BxC"}
1
+ {"version":3,"file":"error-hook.d.ts","sourceRoot":"","sources":["../../src/server/error-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzD,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAe,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM;IAChE;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD,uDAAuD;IACvD;;;;;OAKG;IACH,MAAM,EAAE,CACN,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,SAAS,KACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,SAAS,KACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAC/D,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,GACjC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAgCxC"}
@@ -10,7 +10,7 @@ export { type ByteRange, parseByteRange, type ServeFileOptions, serveFile, stati
10
10
  export { createImplement, createImplementRegistry, createMultipartStream, createScopedImplement, createScopedImplementRegistry, defineMultipartStream, type ExactRegistryHandlers, type ExactScopedRegistryHandlers, type ImplementationRegistry, implement, implementRegistry, type KeyedServices, type MultipartStreamConfig, type RegistryHandlers, type ScopedImplementationRegistry, type ScopedRegistryHandlers, type StreamScope, } from './implement';
11
11
  export { composeLifecycleHooks } from './lifecycle';
12
12
  export type { LogFormat } from './logger';
13
- export { type AuthHook, type AuthHookConfig, type AuthRule, type AuthRuleContribution, type AuthRules, type AuthScopes, type BearerResolverConfig, createAuthHook, createBearerResolver, extractToken, type JwtPayload, type RuleScopes, type ScopedAuthHook, type ScopedAuthRule, type SignJwtOptions, signJwt, type VerifyJwtOptions, verifyJwt, } from './middleware/auth';
13
+ export { type AuthHook, type AuthHookConfig, type AuthRule, type AuthRuleContribution, type AuthRules, type AuthScopes, type BearerResolverConfig, type ComposeAuthHooksConfig, type ComposedAuthScopes, composeAuthHooks, createAuthHook, createBearerResolver, extractToken, type JwtPayload, type RuleScopes, type ScopedAuthHook, type ScopedAuthRule, type SignJwtOptions, signJwt, type VerifyJwtOptions, verifyJwt, } from './middleware/auth';
14
14
  export { type CookieDef, type CookieOptions, defineCookie, parseCookies, serializeCookie, } from './middleware/cookies';
15
15
  export { type CorsConfig, corsHeaders, corsPreflightResponse, DEFAULT_CORS_ALLOW_HEADERS, DEFAULT_CORS_EXPOSE_HEADERS, } from './middleware/cors';
16
16
  export { deriveCodeChallenge, type PkceMethod, verifyPkce } from './middleware/pkce';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,9 @@ import {
12
12
  parseMultipart,
13
13
  socketIoLane,
14
14
  webSocketLane
15
- } from "../index-npye5kt7.js";
15
+ } from "../index-75njxz7p.js";
16
16
  import {
17
+ composeAuthHooks,
17
18
  createAuthHook,
18
19
  createBearerResolver,
19
20
  defineCookie,
@@ -24,7 +25,7 @@ import {
24
25
  signJwt,
25
26
  verifyJwt,
26
27
  verifyPkce
27
- } from "../index-js7yexng.js";
28
+ } from "../index-xy8fmh6w.js";
28
29
  import {
29
30
  DEFAULT_CORS_ALLOW_HEADERS,
30
31
  DEFAULT_CORS_EXPOSE_HEADERS,
@@ -38,11 +39,12 @@ import {
38
39
  defineMultipartStream,
39
40
  implement,
40
41
  implementRegistry
41
- } from "../index-pzc32v75.js";
42
+ } from "../index-sm2tjx06.js";
42
43
  import {
43
44
  isWithinDir,
44
45
  realPathWithinDir
45
46
  } from "../index-sbdmyz75.js";
47
+ import"../index-557by2db.js";
46
48
  import {
47
49
  jsonSchemaFields,
48
50
  toJsonSchema
@@ -61,7 +63,7 @@ import {
61
63
  resolveSocketIp,
62
64
  resolveTraceId,
63
65
  zodIssues
64
- } from "../index-v4bbq3p4.js";
66
+ } from "../index-j3dem06f.js";
65
67
  import {
66
68
  AppError,
67
69
  STITCH_ERROR_STATUS,
@@ -73,7 +75,7 @@ import {
73
75
  notFound,
74
76
  rateLimited,
75
77
  unauthorized
76
- } from "../index-h60df7rj.js";
78
+ } from "../index-5r13htq1.js";
77
79
  import"../index-6k1937bx.js";
78
80
  import {
79
81
  isRecord,
@@ -347,7 +349,8 @@ function cacheHeaders(maxAge, scope = "public") {
347
349
  function createErrorHook(config) {
348
350
  return async (ctx, error, endpoint) => {
349
351
  const appErr = normalizeError(error);
350
- const code = config.codeMap && isStitchErrorCode(appErr.code) ? config.codeMap[appErr.code] : appErr.code;
352
+ const mapped = config.codeMap && isStitchErrorCode(appErr.code) ? config.codeMap[appErr.code] : undefined;
353
+ const code = mapped ?? appErr.code;
351
354
  const info = {
352
355
  code,
353
356
  status: appErr.status,
@@ -1027,6 +1030,7 @@ export {
1027
1030
  bindProcessSignals,
1028
1031
  bindRealtimeServer,
1029
1032
  cacheHeaders,
1033
+ composeAuthHooks,
1030
1034
  composeLifecycleHooks,
1031
1035
  composeWebSocketHandlers,
1032
1036
  conflict,
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/server/logger.ts"],"names":[],"mappings":"AAqCA,0CAA0C;AAC1C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAGlE;AAaD,6DAA6D;AAC7D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAoBD,yCAAyC;AACzC,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAIxE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAIA;AA0BD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAGnE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,UAAU,CASZ;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAMR;AAED,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,UAAU,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAyBzD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/server/logger.ts"],"names":[],"mappings":"AAqCA,0CAA0C;AAC1C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAGlE;AAaD,6DAA6D;AAC7D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAoBD,yCAAyC;AACzC,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAKxE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAIA;AA0BD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAGnE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,UAAU,CASZ;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAMR;AAED,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,UAAU,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAyBzD"}