stitchkit 0.94.0 → 0.95.0
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/CHANGELOG.md +104 -0
- package/dist/agent-runtime/coding-shell-process.d.ts.map +1 -1
- package/dist/agent-runtime/coding-tool-listing.d.ts.map +1 -1
- package/dist/agent-runtime/coding-tool-search-patch.d.ts.map +1 -1
- package/dist/agent-runtime/contained-darwin.d.ts +38 -0
- package/dist/agent-runtime/contained-darwin.d.ts.map +1 -0
- package/dist/agent-runtime/contained-files.d.ts +11 -26
- package/dist/agent-runtime/contained-files.d.ts.map +1 -1
- package/dist/agent-runtime/contained-scan.d.ts +21 -0
- package/dist/agent-runtime/contained-scan.d.ts.map +1 -0
- package/dist/agent-runtime/contained-write.d.ts +9 -0
- package/dist/agent-runtime/contained-write.d.ts.map +1 -0
- package/dist/agent-runtime/deferred-tool-types.d.ts +3 -2
- package/dist/agent-runtime/deferred-tool-types.d.ts.map +1 -1
- package/dist/agent-runtime/harness-control.d.ts +0 -1
- package/dist/agent-runtime/harness-control.d.ts.map +1 -1
- package/dist/agent-runtime/harness.d.ts +0 -5
- package/dist/agent-runtime/harness.d.ts.map +1 -1
- package/dist/agent-runtime/managed-tools.d.ts +3 -2
- package/dist/agent-runtime/managed-tools.d.ts.map +1 -1
- package/dist/agent-runtime/provider-origin.d.ts +7 -0
- package/dist/agent-runtime/provider-origin.d.ts.map +1 -1
- package/dist/agent-runtime/run-operation-lifecycle.d.ts.map +1 -1
- package/dist/agent-runtime/runtime.d.ts +1 -1
- package/dist/agent-runtime/runtime.d.ts.map +1 -1
- package/dist/agent-runtime/schedule-records.d.ts +34 -0
- package/dist/agent-runtime/schedule-records.d.ts.map +1 -0
- package/dist/agent-runtime/schedules.d.ts +34 -0
- package/dist/agent-runtime/schedules.d.ts.map +1 -1
- package/dist/agent-runtime/store-conformance-lifecycle.d.ts +434 -0
- package/dist/agent-runtime/store-conformance-lifecycle.d.ts.map +1 -0
- package/dist/agent-runtime/store-conformance-ordering.d.ts +18 -0
- package/dist/agent-runtime/store-conformance-ordering.d.ts.map +1 -0
- package/dist/agent-runtime/store-conformance-support.d.ts +130 -0
- package/dist/agent-runtime/store-conformance-support.d.ts.map +1 -0
- package/dist/agent-runtime/store-conformance-terminal.d.ts +12 -0
- package/dist/agent-runtime/store-conformance-terminal.d.ts.map +1 -0
- package/dist/agent-runtime/store-conformance.d.ts.map +1 -1
- package/dist/application/admission-rate.d.ts +21 -0
- package/dist/application/admission-rate.d.ts.map +1 -0
- package/dist/application/admission-run.d.ts +8 -0
- package/dist/application/admission-run.d.ts.map +1 -0
- package/dist/application/admission.d.ts.map +1 -1
- package/dist/application/diagnostic-journal-lock.d.ts +9 -34
- package/dist/application/diagnostic-journal-lock.d.ts.map +1 -1
- package/dist/application/diagnostic-journal-manager.d.ts.map +1 -1
- package/dist/application/diagnostic-journal-storage.d.ts.map +1 -1
- package/dist/application/kernel-resource-context.d.ts.map +1 -1
- package/dist/application/notification-outbox.d.ts.map +1 -1
- package/dist/application/process-lifecycle-transitions.d.ts +175 -0
- package/dist/application/process-lifecycle-transitions.d.ts.map +1 -0
- package/dist/application/process-lifecycle.d.ts +3 -131
- package/dist/application/process-lifecycle.d.ts.map +1 -1
- package/dist/application/schedule.d.ts +0 -1
- package/dist/application/schedule.d.ts.map +1 -1
- package/dist/application/watch-hub-core.d.ts +122 -0
- package/dist/application/watch-hub-core.d.ts.map +1 -0
- package/dist/application/watch-hub.d.ts +2 -2
- package/dist/application/watch-hub.d.ts.map +1 -1
- package/dist/browser/client-executors.d.ts +14 -0
- package/dist/browser/client-executors.d.ts.map +1 -0
- package/dist/browser/client-multipart.d.ts +1 -1
- package/dist/browser/client-multipart.d.ts.map +1 -1
- package/dist/browser/client.d.ts +3 -2
- package/dist/browser/client.d.ts.map +1 -1
- package/dist/browser/http-fetch.d.ts +22 -0
- package/dist/browser/http-fetch.d.ts.map +1 -0
- package/dist/browser/http.d.ts +1 -3
- package/dist/browser/http.d.ts.map +1 -1
- package/dist/browser/live-state-core.d.ts +63 -0
- package/dist/browser/live-state-core.d.ts.map +1 -0
- package/dist/browser/live-state.d.ts.map +1 -1
- package/dist/browser/realtime-client.d.ts +26 -0
- package/dist/browser/realtime-client.d.ts.map +1 -0
- package/dist/browser/socket-io-connection.d.ts +82 -0
- package/dist/browser/socket-io-connection.d.ts.map +1 -0
- package/dist/browser/socket-io-peer.d.ts +20 -0
- package/dist/browser/socket-io-peer.d.ts.map +1 -0
- package/dist/browser/socket-io-trace.d.ts +31 -0
- package/dist/browser/socket-io-trace.d.ts.map +1 -0
- package/dist/browser/socket-io.d.ts +2 -18
- package/dist/browser/socket-io.d.ts.map +1 -1
- package/dist/contract/client-types.d.ts +134 -0
- package/dist/contract/client-types.d.ts.map +1 -0
- package/dist/contract/define-validation.d.ts +30 -0
- package/dist/contract/define-validation.d.ts.map +1 -0
- package/dist/contract/define.d.ts +3 -357
- package/dist/contract/define.d.ts.map +1 -1
- package/dist/contract/runtime-context.d.ts +131 -0
- package/dist/contract/runtime-context.d.ts.map +1 -0
- package/dist/contract/tool-options.d.ts +105 -0
- package/dist/contract/tool-options.d.ts.map +1 -0
- package/dist/contract/tool-view.d.ts +15 -2
- package/dist/contract/tool-view.d.ts.map +1 -1
- package/dist/durability/contract.d.ts +83 -0
- package/dist/durability/contract.d.ts.map +1 -1
- package/dist/durability/effect.d.ts +24 -0
- package/dist/durability/effect.d.ts.map +1 -0
- package/dist/durability/engine.d.ts +2 -2
- package/dist/durability/engine.d.ts.map +1 -1
- package/dist/durability/events.d.ts +2 -0
- package/dist/durability/events.d.ts.map +1 -1
- package/dist/durability/ledger.d.ts +11 -0
- package/dist/durability/ledger.d.ts.map +1 -1
- package/dist/durability/parks.d.ts +22 -0
- package/dist/durability/parks.d.ts.map +1 -0
- package/dist/durability/scheduler.d.ts +1 -0
- package/dist/durability/scheduler.d.ts.map +1 -1
- package/dist/entrypoints/agent-runtime/coding-tools.js +4 -4
- package/dist/entrypoints/agent-runtime/harness.js +127 -116
- package/dist/entrypoints/agent-runtime/sandbox.js +4 -4
- package/dist/entrypoints/agent-runtime/sqlite/bun.js +3 -3
- package/dist/entrypoints/agent-runtime/sqlite/node.js +3 -3
- package/dist/entrypoints/agent-runtime/testing.js +246 -214
- package/dist/entrypoints/agent-runtime.js +224 -203
- package/dist/entrypoints/application/diagnostic-journal.js +63 -203
- package/dist/entrypoints/application/opentelemetry.js +1 -1
- package/dist/entrypoints/application.d.ts +2 -1
- package/dist/entrypoints/application.d.ts.map +1 -1
- package/dist/entrypoints/application.js +506 -380
- package/dist/entrypoints/cli.d.ts +4 -1
- package/dist/entrypoints/cli.d.ts.map +1 -1
- package/dist/entrypoints/cli.js +57 -35
- package/dist/entrypoints/contract.d.ts +5 -2
- package/dist/entrypoints/contract.d.ts.map +1 -1
- package/dist/entrypoints/contract.js +3 -2
- package/dist/entrypoints/files.d.ts +2 -0
- package/dist/entrypoints/files.d.ts.map +1 -1
- package/dist/entrypoints/files.js +98 -2
- package/dist/entrypoints/index.d.ts +4 -2
- package/dist/entrypoints/index.d.ts.map +1 -1
- package/dist/entrypoints/index.js +348 -282
- package/dist/entrypoints/live.js +89 -71
- package/dist/entrypoints/node.d.ts +2 -1
- package/dist/entrypoints/node.d.ts.map +1 -1
- package/dist/entrypoints/node.js +13 -12
- package/dist/entrypoints/react.js +1 -1
- package/dist/entrypoints/remote.js +4 -4
- package/dist/entrypoints/server.d.ts +4 -2
- package/dist/entrypoints/server.d.ts.map +1 -1
- package/dist/entrypoints/server.js +293 -79
- package/dist/entrypoints/testing.d.ts +2 -1
- package/dist/entrypoints/testing.d.ts.map +1 -1
- package/dist/entrypoints/testing.js +288 -281
- package/dist/entrypoints/tools/connections.js +2 -2
- package/dist/entrypoints/tools/invoker.js +4 -4
- package/dist/entrypoints/tools.d.ts +6 -3
- package/dist/entrypoints/tools.d.ts.map +1 -1
- package/dist/entrypoints/tools.js +245 -202
- package/dist/entrypoints/tracking.js +325 -274
- package/dist/files/boundary.d.ts.map +1 -1
- package/dist/files/file-io.d.ts +14 -0
- package/dist/files/file-io.d.ts.map +1 -0
- package/dist/index-1j8pm5t0.js +412 -0
- package/dist/{index-kvj7f4hq.js → index-2bxbyab0.js} +10 -2
- package/dist/{index-xnj9bgxe.js → index-2gxzjvyr.js} +2 -162
- package/dist/index-4gcnakhx.js +82 -0
- package/dist/{index-j05z5gn4.js → index-55hkhm67.js} +136 -119
- package/dist/{index-cq4qfycf.js → index-79z7m7dt.js} +227 -59
- package/dist/{index-r7nmqpsg.js → index-7p1f0vp2.js} +1 -1
- package/dist/{index-dcpdvjsc.js → index-863ea9jb.js} +4 -4
- package/dist/index-8p52kd5p.js +242 -0
- package/dist/{index-97ac4gph.js → index-8zja4pkf.js} +26 -4
- package/dist/{index-2qzskm8h.js → index-dce5wxcq.js} +1 -1
- package/dist/index-e01r054k.js +105 -0
- package/dist/{index-sees8yf8.js → index-ensd0r74.js} +118 -111
- package/dist/{index-1nd48tm9.js → index-gxrt5h6v.js} +2 -1
- package/dist/{index-e87kakm4.js → index-ham5sz8m.js} +112 -110
- package/dist/{index-kj2wbeta.js → index-het2he5g.js} +280 -196
- package/dist/{index-vcvkq30w.js → index-hmp4800j.js} +3 -3
- package/dist/{index-gyr48nzg.js → index-k30h66yd.js} +71 -151
- package/dist/{index-2cr1cqhn.js → index-khtgb21r.js} +2 -2
- package/dist/{index-x4799c19.js → index-ndddxtyx.js} +11 -11
- package/dist/{index-dydjcp8z.js → index-np4m8hd3.js} +38 -36
- package/dist/{index-p81267c2.js → index-p3vsv1fb.js} +621 -357
- package/dist/{index-mp5sn43f.js → index-p9e0w8hs.js} +2 -2
- package/dist/{index-rewkc2hj.js → index-p9sh0xx4.js} +3 -3
- package/dist/{index-70yj2ebz.js → index-paz6sgdp.js} +107 -103
- package/dist/{index-bn2cjajt.js → index-px2gm2jp.js} +26 -102
- package/dist/index-s812ycat.js +65 -0
- package/dist/{index-xsqjkha9.js → index-sp1tzwnb.js} +2 -2
- package/dist/{index-n6hxg8as.js → index-t9rhjr9f.js} +615 -566
- package/dist/{index-zeemqhqx.js → index-v260df89.js} +88 -80
- package/dist/{index-fdp6hdxn.js → index-w906953s.js} +5 -1
- package/dist/{index-mdzh02yc.js → index-wdkt63w3.js} +1 -1
- package/dist/{index-58k4fp34.js → index-wsm5w4ee.js} +1 -1
- package/dist/{index-v38qyerb.js → index-xw3s75nj.js} +1 -1
- package/dist/internal/atomic-file.d.ts +23 -2
- package/dist/internal/atomic-file.d.ts.map +1 -1
- package/dist/internal/exclusive-lock.d.ts +51 -0
- package/dist/internal/exclusive-lock.d.ts.map +1 -0
- package/dist/internal/process-identity.d.ts +47 -0
- package/dist/internal/process-identity.d.ts.map +1 -0
- package/dist/internal/with-exclusive-lock.d.ts +67 -0
- package/dist/internal/with-exclusive-lock.d.ts.map +1 -0
- package/dist/live/watch-client.d.ts.map +1 -1
- package/dist/observability/audit.d.ts +2 -2
- package/dist/observability/audit.d.ts.map +1 -1
- package/dist/observability/event.d.ts +2 -1
- package/dist/observability/event.d.ts.map +1 -1
- package/dist/primitives/export-operation.d.ts +1 -1
- package/dist/primitives/export-operation.d.ts.map +1 -1
- package/dist/realtime/registry.d.ts +0 -5
- package/dist/realtime/registry.d.ts.map +1 -1
- package/dist/server/bun.d.ts +0 -1
- package/dist/server/bun.d.ts.map +1 -1
- package/dist/server/context-contribution.d.ts +1 -1
- package/dist/server/context-contribution.d.ts.map +1 -1
- package/dist/server/context.d.ts +1 -1
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/endpoint-response.d.ts +2 -1
- package/dist/server/endpoint-response.d.ts.map +1 -1
- package/dist/server/error-dispatch.d.ts +1 -1
- package/dist/server/error-dispatch.d.ts.map +1 -1
- package/dist/server/error-hook.d.ts +1 -1
- package/dist/server/error-hook.d.ts.map +1 -1
- package/dist/server/handler-state.d.ts +1 -1
- package/dist/server/handler-state.d.ts.map +1 -1
- package/dist/server/implement-registry.d.ts +54 -0
- package/dist/server/implement-registry.d.ts.map +1 -0
- package/dist/server/implement.d.ts +9 -55
- package/dist/server/implement.d.ts.map +1 -1
- package/dist/server/middleware/auth.d.ts +1 -31
- package/dist/server/middleware/auth.d.ts.map +1 -1
- package/dist/server/middleware/jwt.d.ts +31 -0
- package/dist/server/middleware/jwt.d.ts.map +1 -0
- package/dist/server/multipart-reader.d.ts +22 -0
- package/dist/server/multipart-reader.d.ts.map +1 -0
- package/dist/server/multipart.d.ts +1 -1
- package/dist/server/multipart.d.ts.map +1 -1
- package/dist/server/oauth/cimd.d.ts +88 -0
- package/dist/server/oauth/cimd.d.ts.map +1 -0
- package/dist/server/oauth/endpoints.d.ts +39 -0
- package/dist/server/oauth/endpoints.d.ts.map +1 -0
- package/dist/server/oauth/provider.d.ts +1 -68
- package/dist/server/oauth/provider.d.ts.map +1 -1
- package/dist/server/streaming-pump.d.ts +66 -0
- package/dist/server/streaming-pump.d.ts.map +1 -0
- package/dist/server/streaming-route.d.ts +12 -5
- package/dist/server/streaming-route.d.ts.map +1 -1
- package/dist/server/types.d.ts +4 -1
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/unix-client-bun.d.ts.map +1 -1
- package/dist/server/unix-client-http1.d.ts +76 -0
- package/dist/server/unix-client-http1.d.ts.map +1 -0
- package/dist/server/unix-client.d.ts.map +1 -1
- package/dist/testing/handler-clients.d.ts +2 -1
- package/dist/testing/handler-clients.d.ts.map +1 -1
- package/dist/testing/realtime-probe.d.ts +33 -0
- package/dist/testing/realtime-probe.d.ts.map +1 -0
- package/dist/testing/surface-conformance.d.ts +0 -31
- package/dist/testing/surface-conformance.d.ts.map +1 -1
- package/dist/testing/surface-manifest-digest.d.ts +44 -0
- package/dist/testing/surface-manifest-digest.d.ts.map +1 -0
- package/dist/testing/surface-manifest.d.ts.map +1 -1
- package/dist/tools/agent.d.ts +1 -1
- package/dist/tools/agent.d.ts.map +1 -1
- package/dist/tools/cli/args-fields.d.ts +31 -0
- package/dist/tools/cli/args-fields.d.ts.map +1 -0
- package/dist/tools/cli/args-route.d.ts +42 -0
- package/dist/tools/cli/args-route.d.ts.map +1 -0
- package/dist/tools/cli/args-view.d.ts +32 -0
- package/dist/tools/cli/args-view.d.ts.map +1 -0
- package/dist/tools/cli/args.d.ts +2 -65
- package/dist/tools/cli/args.d.ts.map +1 -1
- package/dist/tools/cli/argument-error.d.ts +5 -0
- package/dist/tools/cli/argument-error.d.ts.map +1 -0
- package/dist/tools/cli/checkpoint.d.ts.map +1 -1
- package/dist/tools/cli/command.d.ts +1 -1
- package/dist/tools/cli/command.d.ts.map +1 -1
- package/dist/tools/cli/config.d.ts +1 -1
- package/dist/tools/cli/config.d.ts.map +1 -1
- package/dist/tools/cli/format.d.ts +2 -1
- package/dist/tools/cli/format.d.ts.map +1 -1
- package/dist/tools/cli/invoke.d.ts +2 -1
- package/dist/tools/cli/invoke.d.ts.map +1 -1
- package/dist/tools/cli/managed-surface.d.ts +1 -1
- package/dist/tools/cli/managed-surface.d.ts.map +1 -1
- package/dist/tools/cli/policy.d.ts +1 -1
- package/dist/tools/cli/policy.d.ts.map +1 -1
- package/dist/tools/cli/prepare.d.ts.map +1 -1
- package/dist/tools/cli/run-managed.d.ts.map +1 -1
- package/dist/tools/cli/session.d.ts +1 -1
- package/dist/tools/cli/session.d.ts.map +1 -1
- package/dist/tools/cli/update.d.ts +19 -0
- package/dist/tools/cli/update.d.ts.map +1 -1
- package/dist/tools/cli/view.d.ts +1 -1
- package/dist/tools/cli/view.d.ts.map +1 -1
- package/dist/tools/cli/wait.d.ts +1 -1
- package/dist/tools/cli/wait.d.ts.map +1 -1
- package/dist/tools/connections/runtime.d.ts +1 -1
- package/dist/tools/connections/runtime.d.ts.map +1 -1
- package/dist/tools/execute-args.d.ts +23 -0
- package/dist/tools/execute-args.d.ts.map +1 -0
- package/dist/tools/execute-hooks.d.ts +146 -0
- package/dist/tools/execute-hooks.d.ts.map +1 -0
- package/dist/tools/execute-result.d.ts +40 -0
- package/dist/tools/execute-result.d.ts.map +1 -0
- package/dist/tools/execute.d.ts +4 -193
- package/dist/tools/execute.d.ts.map +1 -1
- package/dist/tools/internal/surface-projector.d.ts +2 -1
- package/dist/tools/internal/surface-projector.d.ts.map +1 -1
- package/dist/tools/invoker.d.ts +2 -1
- package/dist/tools/invoker.d.ts.map +1 -1
- package/dist/tools/lifecycle.d.ts +1 -1
- package/dist/tools/lifecycle.d.ts.map +1 -1
- package/dist/tools/mcp/mount.d.ts +1 -1
- package/dist/tools/mcp/mount.d.ts.map +1 -1
- package/dist/tools/mcp/prepare.d.ts +2 -1
- package/dist/tools/mcp/prepare.d.ts.map +1 -1
- package/dist/tools/mcp/progress.d.ts +1 -1
- package/dist/tools/mcp/progress.d.ts.map +1 -1
- package/dist/tools/mcp/register.d.ts +3 -2
- package/dist/tools/mcp/register.d.ts.map +1 -1
- package/dist/tools/mcp/round-context.d.ts +38 -0
- package/dist/tools/mcp/round-context.d.ts.map +1 -0
- package/dist/tools/mcp/round-policy.d.ts +1 -1
- package/dist/tools/mcp/round-policy.d.ts.map +1 -1
- package/dist/tools/mcp/round.d.ts +3 -11
- package/dist/tools/mcp/round.d.ts.map +1 -1
- package/dist/tools/mcp/runtime-tools.d.ts +2 -1
- package/dist/tools/mcp/runtime-tools.d.ts.map +1 -1
- package/dist/tools/mount.d.ts +3 -1
- package/dist/tools/mount.d.ts.map +1 -1
- package/dist/tools/native-definition.d.ts +2 -1
- package/dist/tools/native-definition.d.ts.map +1 -1
- package/dist/tools/operations/async-operation-runtime-tools.d.ts +2 -1
- package/dist/tools/operations/async-operation-runtime-tools.d.ts.map +1 -1
- package/dist/tools/operations/async-operation-runtime-types.d.ts +2 -1
- package/dist/tools/operations/async-operation-runtime-types.d.ts.map +1 -1
- package/dist/tools/remote.d.ts.map +1 -1
- package/dist/tools/runtime-tool.d.ts +3 -1
- package/dist/tools/runtime-tool.d.ts.map +1 -1
- package/dist/tools/tool-logger.d.ts +1 -1
- package/dist/tools/tool-logger.d.ts.map +1 -1
- package/dist/tracking/client-listeners.d.ts +30 -0
- package/dist/tracking/client-listeners.d.ts.map +1 -0
- package/dist/tracking/client-visit.d.ts +61 -0
- package/dist/tracking/client-visit.d.ts.map +1 -0
- package/dist/tracking/client.d.ts +3 -2
- package/dist/tracking/client.d.ts.map +1 -1
- package/llms/application.2.txt +271 -7
- package/llms/application.txt +66 -289
- package/llms/cli.2.txt +80 -0
- package/llms/cli.txt +45 -74
- package/llms/contract.txt +3 -3
- package/llms/files.txt +3 -0
- package/llms/stitchkit.txt +3 -3
- package/llms/tools.2.txt +88 -279
- package/llms/tools.3.txt +288 -0
- package/llms/tools.txt +27 -65
- package/llms/{upgrading-0.37.0-0.50.0.txt → upgrading-0.37.0-0.53.0.txt} +25 -3
- package/llms/{upgrading-0.53.0-0.67.0.txt → upgrading-0.55.0-0.68.0.txt} +53 -25
- package/llms/{upgrading-0.68.0-0.94.0.txt → upgrading-0.69.0-0.95.0.txt} +45 -53
- package/llms/upgrading.txt +3 -3
- package/llms-full.txt +216 -43
- package/llms.txt +8 -8
- package/package.json +1 -1
- package/dist/index-e2z3ahw9.js +0 -325
- package/dist/index-mkm15s49.js +0 -394
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,KAAK,eAAe,EAAmC,MAAM,qBAAqB,CAAC;AAG5F,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,KAAK,kBAAkB,EAAkB,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA2C/D;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,GACxB,oBAAoB,CAoBtB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAIhF;AAED,2EAA2E;AAC3E,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,SAAS,EACjB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CA8BzC;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,GACxB,cAAc,CAYhB"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* the response — a raw `Response`, a contract stream, or validated data.
|
|
4
4
|
* Every throw here belongs to the endpoint's error path, which the caller owns.
|
|
5
5
|
*/
|
|
6
|
-
import type { ResponseMetadata
|
|
6
|
+
import type { ResponseMetadata } from '../contract/define.js';
|
|
7
|
+
import type { RuntimeContext } from '../contract/runtime-context.js';
|
|
7
8
|
import type { HandlerState, RequestState } from './handler-state.js';
|
|
8
9
|
import type { RouteMatch } from './router.js';
|
|
9
10
|
/** What the handler phase hands over: its context, its result, and what it armed. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-response.d.ts","sourceRoot":"","sources":["../../src/server/endpoint-response.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"endpoint-response.d.ts","sourceRoot":"","sources":["../../src/server/endpoint-response.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,cAAc,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC/C,WAAW,EAAE,eAAe,GAAG,SAAS,CAAC;CAC1C;AASD,wBAAsB,gBAAgB,CAAC,OAAO,EAC5C,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,EAC5B,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAC9B,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,QAAQ,CAAC,CAgBnB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RuntimeContext } from '../contract/
|
|
1
|
+
import type { RuntimeContext } from '../contract/runtime-context.js';
|
|
2
2
|
import type { ClientIpOptions } from '../internal/request.js';
|
|
3
3
|
import type { CompleteRequest, HandlerState, RespondError } from './handler-state.js';
|
|
4
4
|
import type { LifecycleHooks, MethodDef, StitchLogger } from './types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-dispatch.d.ts","sourceRoot":"","sources":["../../src/server/error-dispatch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error-dispatch.d.ts","sourceRoot":"","sources":["../../src/server/error-dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAI3D,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEnF,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA0BvE,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAC1C,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,EAC5B,OAAO,EAAE,YAAY,GACpB,YAAY,CA2Dd;AAED,2FAA2F;AAC3F,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAC;CAC3C,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAqBhC"}
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
* createServer({ services, hooks: { onError } });
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
-
import type { RuntimeContext } from '../contract/define.js';
|
|
39
38
|
import { type StitchErrorCode } from '../contract/errors.js';
|
|
39
|
+
import type { RuntimeContext } from '../contract/runtime-context.js';
|
|
40
40
|
import type { LifecycleHooks, MethodDef } from './types.js';
|
|
41
41
|
/** The normalised error handed to `render` — code already remapped. */
|
|
42
42
|
export interface ResolvedError {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-hook.d.ts","sourceRoot":"","sources":["../../src/server/error-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"error-hook.d.ts","sourceRoot":"","sources":["../../src/server/error-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,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,aAAa;IAC5B,uDAAuD;IACvD,MAAM,EAAE,CACN,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,SAAS,KACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,qDAAqD;IACrD,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,MAAM,MAAM,gBAAgB,CAAC,SAAS,SAAS,MAAM,IACjD;IACE,+EAA+E;IAC/E,UAAU,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAA;KAAE,CAAC;IAC9E,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,YAAY,CAAC,EAAE,KAAK,CAAC;CACtB,GACD;IACE,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC;CACnE,CAAC;AAEN,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,IAAI,aAAa,GAC5E,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAE9B,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,CA8CxC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* resolver, the compiled route table. An explicit object, so each request
|
|
5
5
|
* phase names what it depends on instead of closing over one long function.
|
|
6
6
|
*/
|
|
7
|
-
import type { RuntimeContext } from '../contract/
|
|
7
|
+
import type { RuntimeContext } from '../contract/runtime-context.js';
|
|
8
8
|
import { type ClientIpOptions } from '../internal/request.js';
|
|
9
9
|
import type { RouteMap } from './router.js';
|
|
10
10
|
import type { HandlerConfig, LifecycleHooks, LoggingConfig, MethodDef, StitchLogger } from './types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-state.d.ts","sourceRoot":"","sources":["../../src/server/handler-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"handler-state.d.ts","sourceRoot":"","sources":["../../src/server/handler-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,KAAK,eAAe,EAAkB,MAAM,qBAAqB,CAAC;AAK3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,SAAS,EACT,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,YAAY,CAAC,OAAO;IACnC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IACrC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC;IACvD,kCAAkC;IAClC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,8EAA8E;IAC9E,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,oEAAoE;IACpE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,kEAAkE;IAClE,SAAS,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG,CACzB,GAAG,EAAE,OAAO,EACZ,MAAM,CAAC,EAAE,cAAc,EACvB,QAAQ,CAAC,EAAE,SAAS,EACpB,KAAK,CAAC,EAAE,cAAc,KACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,qFAAqF;AACrF,MAAM,MAAM,eAAe,GAAG,CAC5B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,WAAW,KAClB,IAAI,CAAC;AAEV,gFAAgF;AAChF,MAAM,WAAW,YAAY,CAAC,OAAO;IACnC,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EACxC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAC7B,YAAY,CAAC,OAAO,CAAC,CAqCvB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { ContractDef, EndpointDef } from '../contract/define.js';
|
|
2
|
+
import type { RuntimeContext } from '../contract/runtime-context.js';
|
|
3
|
+
import { type ImplementOptions } from './implement.js';
|
|
4
|
+
import type { Handlers, ScopeContexts, ScopedHandlers, ServiceDef } from './types.js';
|
|
5
|
+
/** A contract registry whose every group scope is a key of the scope map. */
|
|
6
|
+
export type ScopedImplementationRegistry<TScopes extends ScopeContexts> = Record<string, ContractDef<Record<string, EndpointDef>, Extract<keyof TScopes, string>>>;
|
|
7
|
+
/** Exact scoped handlers map derived from a literal contract registry. */
|
|
8
|
+
export type ScopedRegistryHandlers<TContracts extends ImplementationRegistry, TScopes extends ScopeContexts> = {
|
|
9
|
+
[K in keyof TContracts]: TContracts[K] extends ContractDef<infer TEndpoints, infer TContractScope extends string> ? ScopedHandlers<TEndpoints, TContractScope, TScopes> : never;
|
|
10
|
+
};
|
|
11
|
+
export type ExactScopedRegistryHandlers<TContracts extends ImplementationRegistry, THandlers extends ScopedRegistryHandlers<TContracts, TScopes>, TScopes extends ScopeContexts> = THandlers & ScopedRegistryHandlers<TContracts, TScopes> & Record<Exclude<keyof THandlers, keyof TContracts>, never> & {
|
|
12
|
+
[K in keyof THandlers & keyof TContracts]: THandlers[K] & Record<Exclude<keyof THandlers[K], keyof ScopedRegistryHandlers<TContracts, TScopes>[K]>, never>;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The registry form of {@link createScopedImplement} — one literal contract
|
|
16
|
+
* registry bound to one handler registry, with every handler still typed by its
|
|
17
|
+
* endpoint's effective scope. Missing, extra and endpoint-incompatible entries
|
|
18
|
+
* fail exactly as they do in `implementRegistry`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createScopedImplementRegistry<TScopes extends ScopeContexts>(): <const TContracts extends ScopedImplementationRegistry<TScopes>, const THandlers extends ScopedRegistryHandlers<TContracts, TScopes>>(contracts: TContracts, handlers: ExactScopedRegistryHandlers<TContracts, THandlers, TScopes>, options?: ImplementOptions) => KeyedServices<TContracts>;
|
|
21
|
+
export type ImplementationRegistry = Record<string, ContractDef<Record<string, EndpointDef>, string>>;
|
|
22
|
+
/** Exact handlers map derived from a literal contract registry. */
|
|
23
|
+
export type RegistryHandlers<TContracts extends ImplementationRegistry, TCtx extends RuntimeContext = RuntimeContext> = {
|
|
24
|
+
[K in keyof TContracts]: TContracts[K] extends ContractDef<infer TEndpoints, string> ? Handlers<TEndpoints, TCtx> : never;
|
|
25
|
+
};
|
|
26
|
+
export type ExactRegistryHandlers<TContracts extends ImplementationRegistry, THandlers extends RegistryHandlers<TContracts, TCtx>, TCtx extends RuntimeContext> = THandlers & RegistryHandlers<TContracts, TCtx> & Record<Exclude<keyof THandlers, keyof TContracts>, never> & {
|
|
27
|
+
[K in keyof THandlers & keyof TContracts]: THandlers[K] & Record<Exclude<keyof THandlers[K], keyof RegistryHandlers<TContracts, TCtx>[K]>, never>;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Registry results keep both shapes: the mount-ordered array a server consumes,
|
|
31
|
+
* and the same services by their registry key. Keys are load-bearing for
|
|
32
|
+
* consumers that filter a tool surface per caller ("these bots see only
|
|
33
|
+
* services X and Y") — dropping them forced a hand-rebuilt prefix lookup, and a
|
|
34
|
+
* silent one at that.
|
|
35
|
+
*/
|
|
36
|
+
export type KeyedServices<TContracts extends ImplementationRegistry> = ServiceDef[] & {
|
|
37
|
+
/**
|
|
38
|
+
* The same services, by registry key. Same objects as the array entries.
|
|
39
|
+
* Non-enumerable: `Object.keys` / `Object.values` / object spread of the
|
|
40
|
+
* array see only the services, exactly as before.
|
|
41
|
+
*/
|
|
42
|
+
readonly byKey: {
|
|
43
|
+
readonly [K in keyof TContracts]: ServiceDef;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Bind an exact `name → contract` registry to its exact handlers map. Missing,
|
|
48
|
+
* extra and endpoint-incompatible implementations fail at compile time; loose
|
|
49
|
+
* JavaScript callers receive the same checks at runtime.
|
|
50
|
+
*/
|
|
51
|
+
export declare function implementRegistry<const TContracts extends ImplementationRegistry, const THandlers extends RegistryHandlers<TContracts>>(contracts: TContracts, handlers: ExactRegistryHandlers<TContracts, THandlers, RuntimeContext>, options?: ImplementOptions): KeyedServices<TContracts>;
|
|
52
|
+
/** Fix one handler context type for every entry in an implementation registry. */
|
|
53
|
+
export declare function createImplementRegistry<TCtx extends RuntimeContext>(): <const TContracts extends ImplementationRegistry, const THandlers extends RegistryHandlers<TContracts, TCtx>>(contracts: TContracts, handlers: ExactRegistryHandlers<TContracts, THandlers, TCtx>, options?: ImplementOptions) => KeyedServices<TContracts>;
|
|
54
|
+
//# sourceMappingURL=implement-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implement-registry.d.ts","sourceRoot":"","sources":["../../src/server/implement-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { ZodType } from 'zod';
|
|
2
|
-
import type {
|
|
2
|
+
import type { MultipartDescriptor } from '../contract/client-types.js';
|
|
3
|
+
import type { ContractDef, EndpointDef } from '../contract/define.js';
|
|
4
|
+
import type { RuntimeContext } from '../contract/runtime-context.js';
|
|
3
5
|
import type { EndpointHandlerContext, Handlers, MultipartReceiver, ScopeContexts, ScopedHandlers, ServiceDef, StreamingMultipartImplementation } from './types.js';
|
|
4
6
|
type StreamingEndpoint = EndpointDef & {
|
|
5
7
|
multipart: MultipartDescriptor & {
|
|
@@ -84,6 +86,7 @@ export interface ImplementOptions {
|
|
|
84
86
|
/** Default `'throw'`. `'stub'` refuses the call instead of refusing to start. */
|
|
85
87
|
onMissingHandler?: MissingHandlerPolicy;
|
|
86
88
|
}
|
|
89
|
+
export declare function bindContract(contract: ContractDef, handlers: Record<string, unknown>, options?: ImplementOptions): ServiceDef;
|
|
87
90
|
export declare function implement<T extends Record<string, EndpointDef>, TCtx extends RuntimeContext = RuntimeContext>(contract: ContractDef<T, string>, handlers: Handlers<T, TCtx>, options?: ImplementOptions): ServiceDef;
|
|
88
91
|
/**
|
|
89
92
|
* Fix the handler context type once — `const implement =
|
|
@@ -91,6 +94,11 @@ export declare function implement<T extends Record<string, EndpointDef>, TCtx ex
|
|
|
91
94
|
* the generic. The application declares its context shape in a single place.
|
|
92
95
|
*/
|
|
93
96
|
export declare function createImplement<TCtx extends RuntimeContext>(): <T extends Record<string, EndpointDef>>(contract: ContractDef<T, string>, handlers: Handlers<T, TCtx>, options?: ImplementOptions) => ServiceDef;
|
|
97
|
+
/**
|
|
98
|
+
* The scope `createScopedImplement(...).stream` accepts for one endpoint: the
|
|
99
|
+
* literal the endpoint declares, or a message explaining why it cannot be typed.
|
|
100
|
+
*/
|
|
101
|
+
export type StreamScope<E extends EndpointDef, TScopes extends ScopeContexts> = 'scope' extends keyof E ? undefined extends E['scope'] ? 'stitchkit: .stream() needs the endpoint to declare its own scope' : Extract<E['scope'], string> extends infer S extends string ? [S] extends [Extract<keyof TScopes, string>] ? S : `stitchkit: scope "${S}" is not declared in createScopedImplement` : 'stitchkit: .stream() needs the endpoint to declare its own scope' : 'stitchkit: .stream() needs the endpoint to declare its own scope';
|
|
94
102
|
/**
|
|
95
103
|
* Fix one scope→context map for the application, then implement every contract
|
|
96
104
|
* with it — each handler typed by its endpoint's **effective** scope rather than
|
|
@@ -119,59 +127,5 @@ export declare function createScopedImplement<TScopes extends ScopeContexts>():
|
|
|
119
127
|
stream: <const E extends StreamingEndpoint, const R extends ReceiverMap<E>>(scope: StreamScope<E, TScopes>, endpoint: E, config: MultipartStreamConfig<E, R, RuntimeContext & TScopes[StreamScope<E, TScopes> & keyof TScopes]>) => StreamingMultipartImplementation;
|
|
120
128
|
declare: <const T extends Record<string, EndpointDef>, TContractScope extends Extract<keyof TScopes, string>>(_contract: ContractDef<T, TContractScope>) => <const THandlers extends ScopedHandlers<T, TContractScope, TScopes>>(handlers: THandlers & Record<Exclude<keyof THandlers, keyof T>, never>) => THandlers;
|
|
121
129
|
};
|
|
122
|
-
/** A contract registry whose every group scope is a key of the scope map. */
|
|
123
|
-
export type ScopedImplementationRegistry<TScopes extends ScopeContexts> = Record<string, ContractDef<Record<string, EndpointDef>, Extract<keyof TScopes, string>>>;
|
|
124
|
-
/**
|
|
125
|
-
* The scope `createScopedImplement(...).stream` accepts for one endpoint: the
|
|
126
|
-
* literal the endpoint declares, or a message explaining why it cannot be typed.
|
|
127
|
-
*/
|
|
128
|
-
export type StreamScope<E extends EndpointDef, TScopes extends ScopeContexts> = 'scope' extends keyof E ? undefined extends E['scope'] ? 'stitchkit: .stream() needs the endpoint to declare its own scope' : Extract<E['scope'], string> extends infer S extends string ? [S] extends [Extract<keyof TScopes, string>] ? S : `stitchkit: scope "${S}" is not declared in createScopedImplement` : 'stitchkit: .stream() needs the endpoint to declare its own scope' : 'stitchkit: .stream() needs the endpoint to declare its own scope';
|
|
129
|
-
/** Exact scoped handlers map derived from a literal contract registry. */
|
|
130
|
-
export type ScopedRegistryHandlers<TContracts extends ImplementationRegistry, TScopes extends ScopeContexts> = {
|
|
131
|
-
[K in keyof TContracts]: TContracts[K] extends ContractDef<infer TEndpoints, infer TContractScope extends string> ? ScopedHandlers<TEndpoints, TContractScope, TScopes> : never;
|
|
132
|
-
};
|
|
133
|
-
export type ExactScopedRegistryHandlers<TContracts extends ImplementationRegistry, THandlers extends ScopedRegistryHandlers<TContracts, TScopes>, TScopes extends ScopeContexts> = THandlers & ScopedRegistryHandlers<TContracts, TScopes> & Record<Exclude<keyof THandlers, keyof TContracts>, never> & {
|
|
134
|
-
[K in keyof THandlers & keyof TContracts]: THandlers[K] & Record<Exclude<keyof THandlers[K], keyof ScopedRegistryHandlers<TContracts, TScopes>[K]>, never>;
|
|
135
|
-
};
|
|
136
|
-
/**
|
|
137
|
-
* The registry form of {@link createScopedImplement} — one literal contract
|
|
138
|
-
* registry bound to one handler registry, with every handler still typed by its
|
|
139
|
-
* endpoint's effective scope. Missing, extra and endpoint-incompatible entries
|
|
140
|
-
* fail exactly as they do in `implementRegistry`.
|
|
141
|
-
*/
|
|
142
|
-
export declare function createScopedImplementRegistry<TScopes extends ScopeContexts>(): <const TContracts extends ScopedImplementationRegistry<TScopes>, const THandlers extends ScopedRegistryHandlers<TContracts, TScopes>>(contracts: TContracts, handlers: ExactScopedRegistryHandlers<TContracts, THandlers, TScopes>, options?: ImplementOptions) => KeyedServices<TContracts>;
|
|
143
|
-
export type ImplementationRegistry = Record<string, ContractDef<Record<string, EndpointDef>, string>>;
|
|
144
|
-
/** Exact handlers map derived from a literal contract registry. */
|
|
145
|
-
export type RegistryHandlers<TContracts extends ImplementationRegistry, TCtx extends RuntimeContext = RuntimeContext> = {
|
|
146
|
-
[K in keyof TContracts]: TContracts[K] extends ContractDef<infer TEndpoints, string> ? Handlers<TEndpoints, TCtx> : never;
|
|
147
|
-
};
|
|
148
|
-
export type ExactRegistryHandlers<TContracts extends ImplementationRegistry, THandlers extends RegistryHandlers<TContracts, TCtx>, TCtx extends RuntimeContext> = THandlers & RegistryHandlers<TContracts, TCtx> & Record<Exclude<keyof THandlers, keyof TContracts>, never> & {
|
|
149
|
-
[K in keyof THandlers & keyof TContracts]: THandlers[K] & Record<Exclude<keyof THandlers[K], keyof RegistryHandlers<TContracts, TCtx>[K]>, never>;
|
|
150
|
-
};
|
|
151
|
-
/**
|
|
152
|
-
* Registry results keep both shapes: the mount-ordered array a server consumes,
|
|
153
|
-
* and the same services by their registry key. Keys are load-bearing for
|
|
154
|
-
* consumers that filter a tool surface per caller ("these bots see only
|
|
155
|
-
* services X and Y") — dropping them forced a hand-rebuilt prefix lookup, and a
|
|
156
|
-
* silent one at that.
|
|
157
|
-
*/
|
|
158
|
-
export type KeyedServices<TContracts extends ImplementationRegistry> = ServiceDef[] & {
|
|
159
|
-
/**
|
|
160
|
-
* The same services, by registry key. Same objects as the array entries.
|
|
161
|
-
* Non-enumerable: `Object.keys` / `Object.values` / object spread of the
|
|
162
|
-
* array see only the services, exactly as before.
|
|
163
|
-
*/
|
|
164
|
-
readonly byKey: {
|
|
165
|
-
readonly [K in keyof TContracts]: ServiceDef;
|
|
166
|
-
};
|
|
167
|
-
};
|
|
168
|
-
/**
|
|
169
|
-
* Bind an exact `name → contract` registry to its exact handlers map. Missing,
|
|
170
|
-
* extra and endpoint-incompatible implementations fail at compile time; loose
|
|
171
|
-
* JavaScript callers receive the same checks at runtime.
|
|
172
|
-
*/
|
|
173
|
-
export declare function implementRegistry<const TContracts extends ImplementationRegistry, const THandlers extends RegistryHandlers<TContracts>>(contracts: TContracts, handlers: ExactRegistryHandlers<TContracts, THandlers, RuntimeContext>, options?: ImplementOptions): KeyedServices<TContracts>;
|
|
174
|
-
/** Fix one handler context type for every entry in an implementation registry. */
|
|
175
|
-
export declare function createImplementRegistry<TCtx extends RuntimeContext>(): <const TContracts extends ImplementationRegistry, const THandlers extends RegistryHandlers<TContracts, TCtx>>(contracts: TContracts, handlers: ExactRegistryHandlers<TContracts, THandlers, TCtx>, options?: ImplementOptions) => KeyedServices<TContracts>;
|
|
176
130
|
export {};
|
|
177
131
|
//# sourceMappingURL=implement.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implement.d.ts","sourceRoot":"","sources":["../../src/server/implement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"implement.d.ts","sourceRoot":"","sources":["../../src/server/implement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +1,5 @@
|
|
|
1
|
-
import type { RuntimeContext } from '../../contract/
|
|
1
|
+
import type { RuntimeContext } from '../../contract/runtime-context.js';
|
|
2
2
|
import type { AuthorizationContext, OperationIdentity } from '../types.js';
|
|
3
|
-
export interface JwtPayload {
|
|
4
|
-
[key: string]: unknown;
|
|
5
|
-
}
|
|
6
|
-
/** Tuning for `verifyJwt`. */
|
|
7
|
-
export interface VerifyJwtOptions {
|
|
8
|
-
/** Clock-skew tolerance for `exp` / `nbf`, in seconds. Default `60`. */
|
|
9
|
-
leewaySeconds?: number;
|
|
10
|
-
/** Required `iss` claim — the token is rejected on mismatch. */
|
|
11
|
-
issuer?: string;
|
|
12
|
-
/** Required `aud` claim — the token is rejected if it does not carry it. */
|
|
13
|
-
audience?: string;
|
|
14
|
-
}
|
|
15
|
-
export declare function verifyJwt(token: string, secret: string, options?: VerifyJwtOptions): Promise<JwtPayload>;
|
|
16
|
-
/** Tuning for `signJwt`. */
|
|
17
|
-
export interface SignJwtOptions {
|
|
18
|
-
/** Lifetime in seconds — sets `exp` to now + this. Omit for no expiry. */
|
|
19
|
-
expiresInSec?: number;
|
|
20
|
-
/** `iss` claim. */
|
|
21
|
-
issuer?: string;
|
|
22
|
-
/** `aud` claim. */
|
|
23
|
-
audience?: string;
|
|
24
|
-
/** `sub` claim. */
|
|
25
|
-
subject?: string;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Sign a payload as an HS256 JWT — the issuing counterpart of `verifyJwt`.
|
|
29
|
-
* Used to mint OAuth access tokens whose audience binds them to one resource.
|
|
30
|
-
* `iat` is always set; `exp` / `iss` / `aud` / `sub` follow `options`.
|
|
31
|
-
*/
|
|
32
|
-
export declare function signJwt(payload: JwtPayload, secret: string, options?: SignJwtOptions): Promise<string>;
|
|
33
3
|
export declare function extractToken(req: Request, cookieName?: string): string | null;
|
|
34
4
|
/**
|
|
35
5
|
* Per-scope access predicate. `endpoint.scope` selects which rule applies:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/server/middleware/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/server/middleware/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface JwtPayload {
|
|
2
|
+
[key: string]: unknown;
|
|
3
|
+
}
|
|
4
|
+
/** Tuning for `verifyJwt`. */
|
|
5
|
+
export interface VerifyJwtOptions {
|
|
6
|
+
/** Clock-skew tolerance for `exp` / `nbf`, in seconds. Default `60`. */
|
|
7
|
+
leewaySeconds?: number;
|
|
8
|
+
/** Required `iss` claim — the token is rejected on mismatch. */
|
|
9
|
+
issuer?: string;
|
|
10
|
+
/** Required `aud` claim — the token is rejected if it does not carry it. */
|
|
11
|
+
audience?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function verifyJwt(token: string, secret: string, options?: VerifyJwtOptions): Promise<JwtPayload>;
|
|
14
|
+
/** Tuning for `signJwt`. */
|
|
15
|
+
export interface SignJwtOptions {
|
|
16
|
+
/** Lifetime in seconds — sets `exp` to now + this. Omit for no expiry. */
|
|
17
|
+
expiresInSec?: number;
|
|
18
|
+
/** `iss` claim. */
|
|
19
|
+
issuer?: string;
|
|
20
|
+
/** `aud` claim. */
|
|
21
|
+
audience?: string;
|
|
22
|
+
/** `sub` claim. */
|
|
23
|
+
subject?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Sign a payload as an HS256 JWT — the issuing counterpart of `verifyJwt`.
|
|
27
|
+
* Used to mint OAuth access tokens whose audience binds them to one resource.
|
|
28
|
+
* `iat` is always set; `exp` / `iss` / `aud` / `sub` follow `options`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function signJwt(payload: JwtPayload, secret: string, options?: SignJwtOptions): Promise<string>;
|
|
31
|
+
//# sourceMappingURL=jwt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/server/middleware/jwt.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,8BAA8B;AAC9B,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,UAAU,CAAC,CAgErB;AAED,4BAA4B;AAC5B,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,CA+BjB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare const DEFAULT_MAX_HEADER_BYTES: number;
|
|
2
|
+
export declare const decoder: TextDecoder;
|
|
3
|
+
export interface ParsedHeaders {
|
|
4
|
+
name: string;
|
|
5
|
+
filename?: string;
|
|
6
|
+
contentType?: string;
|
|
7
|
+
declaredSize?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface MultipartPart extends ParsedHeaders {
|
|
10
|
+
stream: ReadableStream<Uint8Array>;
|
|
11
|
+
consumed(): boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function parseBoundary(req: Request): string;
|
|
14
|
+
export declare class MultipartStreamReader {
|
|
15
|
+
#private;
|
|
16
|
+
constructor(req: Request, boundary: string, maxRequestBytes: number);
|
|
17
|
+
start(): Promise<void>;
|
|
18
|
+
nextPart(): Promise<MultipartPart | null>;
|
|
19
|
+
cancel(reason?: unknown): void;
|
|
20
|
+
release(): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=multipart-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multipart-reader.d.ts","sourceRoot":"","sources":["../../src/server/multipart-reader.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAGlD,eAAO,MAAM,OAAO,aAAoB,CAAC;AAiBzC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,QAAQ,IAAI,OAAO,CAAC;CACrB;AA6BD,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CASlD;AAsFD,qBAAa,qBAAqB;;IAWhC,YAAY,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAMlE;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAO3B;IAEK,QAAQ,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA8B9C;IAED,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAI7B;IAED,OAAO,IAAI,IAAI,CAEd;CA0EF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multipart.d.ts","sourceRoot":"","sources":["../../src/server/multipart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAuB,MAAM,
|
|
1
|
+
{"version":3,"file":"multipart.d.ts","sourceRoot":"","sources":["../../src/server/multipart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAuB,MAAM,0BAA0B,CAAC;AAQzF,OAAO,KAAK,EAAE,iBAAiB,EAA2B,MAAM,SAAS,CAAC;AAK1E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;CACjB;AAqGD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,mBAAmB,EAC/B,YAAY,CAAC,EAAE;IAAE,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE,EACjD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAC5C,OAAO,CAAC,eAAe,CAAC,CAoH1B"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client ID Metadata Documents: a `client_id` that is an https URL names a
|
|
3
|
+
* document the client publishes, fetched over a pinned, bounded connection and
|
|
4
|
+
* cached with its HTTP freshness — positive and negative entries in separate,
|
|
5
|
+
* bounded pools, resolutions rate-limited per client and overall.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import type { ApplicationType, RegisteredClient } from './provider.js';
|
|
9
|
+
export declare function isPlainDisplayCharacter(character: string): boolean;
|
|
10
|
+
declare const CimdClientMetadataSchema: z.ZodObject<{
|
|
11
|
+
client_id: z.ZodURL;
|
|
12
|
+
redirect_uris: z.ZodArray<z.ZodURL>;
|
|
13
|
+
client_name: z.ZodString;
|
|
14
|
+
token_endpoint_auth_method: z.ZodLiteral<"none">;
|
|
15
|
+
application_type: z.ZodOptional<z.ZodEnum<{
|
|
16
|
+
native: "native";
|
|
17
|
+
web: "web";
|
|
18
|
+
}>>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
/** Validated Client ID Metadata Document (CIMD) wire shape. */
|
|
21
|
+
export type CimdClientMetadata = z.infer<typeof CimdClientMetadataSchema>;
|
|
22
|
+
export interface CimdFetchPolicy {
|
|
23
|
+
/** Maximum metadata document size. Default 64 KiB. */
|
|
24
|
+
maxBytes?: number;
|
|
25
|
+
/** DNS, connection and response timeout. Default 5 seconds. */
|
|
26
|
+
timeoutMs?: number;
|
|
27
|
+
/** Redirect hops, each re-resolved and re-validated. Default 3. */
|
|
28
|
+
maxRedirects?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface CimdCachePolicy {
|
|
31
|
+
/**
|
|
32
|
+
* Maximum cache entries — positive and negative entries each get their OWN
|
|
33
|
+
* pool of this size, so a flood of failing lookups cannot evict warmed
|
|
34
|
+
* clients and warmed clients cannot reset a failing client's backoff.
|
|
35
|
+
* Default 256.
|
|
36
|
+
*/
|
|
37
|
+
maxEntries?: number;
|
|
38
|
+
/** Freshness when the response carries no cache directives. Default 5 minutes. */
|
|
39
|
+
defaultTtlMs?: number;
|
|
40
|
+
/** Upper bound for origin-provided freshness. Default 1 hour. */
|
|
41
|
+
maxTtlMs?: number;
|
|
42
|
+
/** Short fail-closed cache for invalid/unavailable documents. Default 10 seconds. */
|
|
43
|
+
negativeTtlMs?: number;
|
|
44
|
+
/** Maximum uncached metadata resolutions per window, server-wide. Default 120. */
|
|
45
|
+
maxResolutions?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Maximum uncached resolutions per window for ONE `client_id` — a single
|
|
48
|
+
* client whose document disables caching burns its own budget, not the
|
|
49
|
+
* server's. Default 10.
|
|
50
|
+
*/
|
|
51
|
+
maxResolutionsPerClient?: number;
|
|
52
|
+
/** Resolution-rate window in milliseconds. Default 60 seconds. */
|
|
53
|
+
resolutionWindowMs?: number;
|
|
54
|
+
}
|
|
55
|
+
/** Injectable CIMD network boundary. Production uses the pinned-IP implementation. */
|
|
56
|
+
export interface CimdFetchResponse {
|
|
57
|
+
status: number;
|
|
58
|
+
headers: Headers;
|
|
59
|
+
body: Uint8Array;
|
|
60
|
+
url: URL;
|
|
61
|
+
}
|
|
62
|
+
export interface CimdClientMetadataFetcher {
|
|
63
|
+
fetch(url: URL, headers: Record<string, string>): Promise<CimdFetchResponse>;
|
|
64
|
+
}
|
|
65
|
+
export interface CimdCacheEvent {
|
|
66
|
+
clientId: string;
|
|
67
|
+
status: 'hit' | 'miss' | 'revalidated' | 'negative';
|
|
68
|
+
freshnessMs?: number;
|
|
69
|
+
}
|
|
70
|
+
/** Build the production SSRF-safe, IP-pinned CIMD fetcher. */
|
|
71
|
+
export declare function createSecureClientMetadataFetcher(policy?: CimdFetchPolicy): CimdClientMetadataFetcher;
|
|
72
|
+
export declare const DEFAULT_CIMD_MAX_BYTES: number;
|
|
73
|
+
export declare function absoluteClientUrl(clientId: string): URL | null;
|
|
74
|
+
export declare function responseFreshness(headers: Headers, policy: CimdCachePolicy, now: number): {
|
|
75
|
+
freshnessMs: number;
|
|
76
|
+
store: boolean;
|
|
77
|
+
};
|
|
78
|
+
export declare function createCimdResolver(options: {
|
|
79
|
+
cache?: CimdCachePolicy;
|
|
80
|
+
fetcher: CimdClientMetadataFetcher;
|
|
81
|
+
now?: () => number;
|
|
82
|
+
onCacheEvent?: (event: CimdCacheEvent) => void;
|
|
83
|
+
}): (clientId: string) => Promise<RegisteredClient>;
|
|
84
|
+
export declare function isRegistrableRedirectUri(value: string, applicationType?: ApplicationType): boolean;
|
|
85
|
+
export declare function isLoopbackRedirectUri(value: string): boolean;
|
|
86
|
+
export {};
|
|
87
|
+
/** Append query params to a redirect URI without clobbering its own query. */
|
|
88
|
+
//# sourceMappingURL=cimd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cimd.d.ts","sourceRoot":"","sources":["../../../src/server/oauth/cimd.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CASlE;AAED,QAAA,MAAM,wBAAwB;;;;;;;;;iBAa5B,CAAC;AAEH,+DAA+D;AAC/D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,sFAAsF;AACtF,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,GAAG,CAAC;CACV;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9E;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,8DAA8D;AAC9D,wBAAgB,iCAAiC,CAC/C,MAAM,GAAE,eAAoB,GAC3B,yBAAyB,CAc3B;AAED,eAAO,MAAM,sBAAsB,QAAY,CAAC;AA4BhD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAM9D;AA2BD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,MAAM,GACV;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAmCzC;AAkBD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,yBAAyB,CAAC;IACnC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAChD,cA2KyB,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAAC,CAO3D;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAYT;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAS5D;;AAED,8EAA8E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { RawRoute } from '../types.js';
|
|
2
|
+
import type { OAuthClientRegistrationConfig, OAuthProviderConfig, RegisteredClient } from './provider.js';
|
|
3
|
+
export interface OAuthEndpointContext {
|
|
4
|
+
readonly config: OAuthProviderConfig;
|
|
5
|
+
/** Access-token lifetime in seconds. */
|
|
6
|
+
readonly ttl: number;
|
|
7
|
+
readonly paths: {
|
|
8
|
+
readonly register: string;
|
|
9
|
+
readonly authorize: string;
|
|
10
|
+
readonly token: string;
|
|
11
|
+
};
|
|
12
|
+
readonly dcrRegistry: NonNullable<OAuthClientRegistrationConfig['dcr']> | undefined;
|
|
13
|
+
readonly cimdEnabled: boolean;
|
|
14
|
+
resolveClient(clientId: string): Promise<RegisteredClient | null>;
|
|
15
|
+
redirectToClient(uri: string, params: Record<string, string>): Response;
|
|
16
|
+
issueAccessToken(userId: string, audience: string, clientId: string, scope?: string): Promise<string>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* True for a registrable redirect URI. `https` is always allowed; `http` ONLY on
|
|
20
|
+
* a loopback host (RFC 8252 §7.3 — native apps), so a self-registered client
|
|
21
|
+
* cannot receive the authorization code in the clear at an attacker-controlled
|
|
22
|
+
* address.
|
|
23
|
+
*
|
|
24
|
+
* `applicationType` is the OpenID Connect DCR hint (SEP-837): a `web` client is
|
|
25
|
+
* held to https-only (loopback is meaningless for it and a common
|
|
26
|
+
* misconfiguration), a `native` client keeps the loopback allowance. Omitted —
|
|
27
|
+
* the permissive default, so a client that never sends the field behaves
|
|
28
|
+
* exactly as before.
|
|
29
|
+
*/
|
|
30
|
+
export declare function redirectWith(uri: string, params: Record<string, string>): Response;
|
|
31
|
+
/** RFC 8414 discovery: what this server supports, and where. */
|
|
32
|
+
export declare function metadataRoute(ctx: OAuthEndpointContext): RawRoute;
|
|
33
|
+
/** RFC 7591 Dynamic Client Registration, for public clients only. */
|
|
34
|
+
export declare function registerRoute(ctx: OAuthEndpointContext): RawRoute;
|
|
35
|
+
/** `/authorize`: PKCE S256, an exact redirect URI, one resource, then the user's consent. */
|
|
36
|
+
export declare function authorizeRoute(ctx: OAuthEndpointContext): RawRoute;
|
|
37
|
+
/** `/token`: the authorization-code and refresh-token grants, both single-use. */
|
|
38
|
+
export declare function tokenRoute(ctx: OAuthEndpointContext): RawRoute;
|
|
39
|
+
//# sourceMappingURL=endpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../../src/server/oauth/endpoints.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAOzC,OAAO,KAAK,EAGV,6BAA6B,EAC7B,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,wCAAwC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC;IACpF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAClE,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC;IACxE,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAiCD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,QAAQ,CAIlF;AAmBD,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,GAAG,EAAE,oBAAoB,GAAG,QAAQ,CA8BjE;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,GAAG,EAAE,oBAAoB,GAAG,QAAQ,CA6EjE;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,GAAG,EAAE,oBAAoB,GAAG,QAAQ,CAiIlE;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,GAAG,EAAE,oBAAoB,GAAG,QAAQ,CAkG9D"}
|