@setu-ts/kernel 0.0.0-stage → 0.9.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.
Files changed (78) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +144 -2
  3. package/dist/application/application.d.ts +172 -0
  4. package/dist/application/application.d.ts.map +1 -0
  5. package/dist/application/application.js +1862 -0
  6. package/dist/application/application.js.map +1 -0
  7. package/dist/application/inject-body.d.ts +58 -0
  8. package/dist/application/inject-body.d.ts.map +1 -0
  9. package/dist/application/inject-body.js +82 -0
  10. package/dist/application/inject-body.js.map +1 -0
  11. package/dist/context/request-context.d.ts +32 -0
  12. package/dist/context/request-context.d.ts.map +1 -0
  13. package/dist/context/request-context.js +136 -0
  14. package/dist/context/request-context.js.map +1 -0
  15. package/dist/context/response.d.ts +60 -0
  16. package/dist/context/response.d.ts.map +1 -0
  17. package/dist/context/response.js +193 -0
  18. package/dist/context/response.js.map +1 -0
  19. package/dist/diagnostics/buffer.d.ts +143 -0
  20. package/dist/diagnostics/buffer.d.ts.map +1 -0
  21. package/dist/diagnostics/buffer.js +185 -0
  22. package/dist/diagnostics/buffer.js.map +1 -0
  23. package/dist/diagnostics/collector.d.ts +284 -0
  24. package/dist/diagnostics/collector.d.ts.map +1 -0
  25. package/dist/diagnostics/collector.js +812 -0
  26. package/dist/diagnostics/collector.js.map +1 -0
  27. package/dist/diagnostics/projection.d.ts +153 -0
  28. package/dist/diagnostics/projection.d.ts.map +1 -0
  29. package/dist/diagnostics/projection.js +226 -0
  30. package/dist/diagnostics/projection.js.map +1 -0
  31. package/dist/index.d.ts +12 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +11 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/lifecycle/lifecycle-manager.d.ts +136 -0
  36. package/dist/lifecycle/lifecycle-manager.d.ts.map +1 -0
  37. package/dist/lifecycle/lifecycle-manager.js +206 -0
  38. package/dist/lifecycle/lifecycle-manager.js.map +1 -0
  39. package/dist/pipeline/execute-chain.d.ts +71 -0
  40. package/dist/pipeline/execute-chain.d.ts.map +1 -0
  41. package/dist/pipeline/execute-chain.js +104 -0
  42. package/dist/pipeline/execute-chain.js.map +1 -0
  43. package/dist/pipeline/middleware-pipeline.d.ts +68 -0
  44. package/dist/pipeline/middleware-pipeline.d.ts.map +1 -0
  45. package/dist/pipeline/middleware-pipeline.js +82 -0
  46. package/dist/pipeline/middleware-pipeline.js.map +1 -0
  47. package/dist/registry/plugin-resolver.d.ts +42 -0
  48. package/dist/registry/plugin-resolver.d.ts.map +1 -0
  49. package/dist/registry/plugin-resolver.js +140 -0
  50. package/dist/registry/plugin-resolver.js.map +1 -0
  51. package/dist/registry/service-registry.d.ts +110 -0
  52. package/dist/registry/service-registry.d.ts.map +1 -0
  53. package/dist/registry/service-registry.js +197 -0
  54. package/dist/registry/service-registry.js.map +1 -0
  55. package/dist/router/route-matcher.d.ts +85 -0
  56. package/dist/router/route-matcher.d.ts.map +1 -0
  57. package/dist/router/route-matcher.js +102 -0
  58. package/dist/router/route-matcher.js.map +1 -0
  59. package/dist/router/router.d.ts +130 -0
  60. package/dist/router/router.d.ts.map +1 -0
  61. package/dist/router/router.js +350 -0
  62. package/dist/router/router.js.map +1 -0
  63. package/package.json +48 -3
  64. package/src/application/application.ts +2299 -0
  65. package/src/application/inject-body.ts +131 -0
  66. package/src/context/request-context.ts +169 -0
  67. package/src/context/response.ts +254 -0
  68. package/src/diagnostics/buffer.ts +241 -0
  69. package/src/diagnostics/collector.ts +1031 -0
  70. package/src/diagnostics/projection.ts +322 -0
  71. package/src/index.ts +20 -0
  72. package/src/lifecycle/lifecycle-manager.ts +287 -0
  73. package/src/pipeline/execute-chain.ts +164 -0
  74. package/src/pipeline/middleware-pipeline.ts +131 -0
  75. package/src/registry/plugin-resolver.ts +185 -0
  76. package/src/registry/service-registry.ts +267 -0
  77. package/src/router/route-matcher.ts +131 -0
  78. package/src/router/router.ts +485 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/application/application.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Per-shape coercion of an {@linkcode InjectRequest} body (M95c §3.9).
3
+ *
4
+ * `inject()` used to JSON-stringify every non-string body, so a
5
+ * `Uint8Array` arrived as `{"0":97,…}` and an `ArrayBuffer`, a `Blob` and a
6
+ * `URLSearchParams` each arrived as the two bytes `{}` — destroying the input
7
+ * while reporting status 200. The coercion is now explicit per shape, and any
8
+ * shape OUTSIDE the union is refused by name rather than silently stringified,
9
+ * because `InjectRequest.body` is reachable from JavaScript and from an
10
+ * `unknown`-typed caller, where the type alone would not hold.
11
+ *
12
+ * Internal to the kernel — deliberately NOT exported from the barrel. The
13
+ * union itself has ONE home, the published `InjectRequest.body`; this module
14
+ * derives its alias from it so the two cannot drift.
15
+ *
16
+ * @module
17
+ */
18
+ import type { InjectRequest } from './application.ts';
19
+ /**
20
+ * The body shapes {@linkcode InjectRequest} carries — derived from the
21
+ * published interface, which owns the literal union.
22
+ *
23
+ * @since 0.7.0
24
+ */
25
+ export type InjectBody = NonNullable<InjectRequest['body']>;
26
+ /** What {@linkcode coerceInjectBody} resolves with. */
27
+ export interface CoercedInjectBody {
28
+ /** The body's bytes; `undefined` when the caller sent no body. */
29
+ readonly bytes: Uint8Array | undefined;
30
+ /**
31
+ * The content type to default to when the caller supplied none:
32
+ * `application/x-www-form-urlencoded` for a `URLSearchParams`,
33
+ * `application/json` for a string or a plain object, a `Blob`'s own `type`
34
+ * when that string is non-empty (matching the platform, whose
35
+ * `new Request(url, { body: blob })` sets the header from it and omits it
36
+ * when the blob has none), and NONE for a `Uint8Array` or an `ArrayBuffer`
37
+ * — those bytes carry no declared type, and guessing would make the form
38
+ * parse refuse them.
39
+ */
40
+ readonly defaultContentType: string | undefined;
41
+ }
42
+ /**
43
+ * Coerces an injected body to the bytes the synthetic request carries.
44
+ *
45
+ * Bytes pass through with their exact contents — copied, never aliased to the
46
+ * caller's `Uint8Array` or `ArrayBuffer`, since `bytes()` hands the result
47
+ * straight to the handler — a `Blob` is awaited to bytes, a `URLSearchParams`
48
+ * is serialised with its own `toString()`, and only a plain object reaches
49
+ * `JSON.stringify`. An array, a `Date`, a class instance or any other shape
50
+ * rejects with a `TypeError` naming the received type.
51
+ *
52
+ * @param body - The caller-supplied body, if any
53
+ * @returns The coerced bytes and the content-type default for the shape
54
+ * @throws {TypeError} When the body is outside the {@linkcode InjectBody} union
55
+ * @since 0.7.0
56
+ */
57
+ export declare function coerceInjectBody(body: InjectBody | undefined): Promise<CoercedInjectBody>;
58
+ //# sourceMappingURL=inject-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-body.d.ts","sourceRoot":"","sources":["../../src/application/inject-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5D,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;IACvC;;;;;;;;;OASG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACjD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,GAAG,SAAS,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CA+C5B"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Coerces an injected body to the bytes the synthetic request carries.
3
+ *
4
+ * Bytes pass through with their exact contents — copied, never aliased to the
5
+ * caller's `Uint8Array` or `ArrayBuffer`, since `bytes()` hands the result
6
+ * straight to the handler — a `Blob` is awaited to bytes, a `URLSearchParams`
7
+ * is serialised with its own `toString()`, and only a plain object reaches
8
+ * `JSON.stringify`. An array, a `Date`, a class instance or any other shape
9
+ * rejects with a `TypeError` naming the received type.
10
+ *
11
+ * @param body - The caller-supplied body, if any
12
+ * @returns The coerced bytes and the content-type default for the shape
13
+ * @throws {TypeError} When the body is outside the {@linkcode InjectBody} union
14
+ * @since 0.7.0
15
+ */
16
+ export async function coerceInjectBody(body) {
17
+ if (body === undefined) {
18
+ return { bytes: undefined, defaultContentType: undefined };
19
+ }
20
+ if (typeof body === 'string') {
21
+ return { bytes: new TextEncoder().encode(body), defaultContentType: 'application/json' };
22
+ }
23
+ if (body instanceof URLSearchParams) {
24
+ return {
25
+ bytes: new TextEncoder().encode(body.toString()),
26
+ defaultContentType: 'application/x-www-form-urlencoded',
27
+ };
28
+ }
29
+ if (body instanceof Uint8Array) {
30
+ // A COPY, not the caller's array. `bytes()` hands this straight to the
31
+ // handler, so aliasing would let a handler that mutates the body it read
32
+ // corrupt the fixture the test passed in — and a fixture reused across two
33
+ // injected requests would carry the first request's mutation into the
34
+ // second. `slice()` also guarantees a plain ArrayBuffer-backed view, which
35
+ // `BodyInit` requires and a SharedArrayBuffer-backed argument would not be.
36
+ return { bytes: body.slice(), defaultContentType: undefined };
37
+ }
38
+ if (body instanceof ArrayBuffer) {
39
+ // `new Uint8Array(buffer)` is a VIEW over the caller's buffer, not a copy —
40
+ // same aliasing hazard as above, one indirection further out.
41
+ return { bytes: new Uint8Array(body.slice(0)), defaultContentType: undefined };
42
+ }
43
+ if (body instanceof Blob) {
44
+ // A Blob DECLARES its type in `.type`, so it contributes that as the
45
+ // content-type default — exactly what the platform does for
46
+ // `new Request(url, { body: blob })`, header omitted when the type is
47
+ // empty. The bare byte shapes stay default-free: bytes alone say nothing
48
+ // about their encoding, which is why an injected multipart Blob used to
49
+ // answer 500 (`UnsupportedFormEncodingError`) where the same Blob through
50
+ // `fetch()` answered 200.
51
+ return {
52
+ bytes: new Uint8Array(await body.arrayBuffer()),
53
+ defaultContentType: body.type.length > 0 ? body.type : undefined,
54
+ };
55
+ }
56
+ if (typeof body === 'object' && body !== null && isPlainObject(body)) {
57
+ return {
58
+ bytes: new TextEncoder().encode(JSON.stringify(body)),
59
+ defaultContentType: 'application/json',
60
+ };
61
+ }
62
+ throw new TypeError(refusalMessage(body));
63
+ }
64
+ /** A plain object: `Object.prototype` (or `null`) is its prototype. */
65
+ function isPlainObject(value) {
66
+ const proto = Object.getPrototypeOf(value);
67
+ return proto === Object.prototype || proto === null;
68
+ }
69
+ /** Names the received value in the refusal, so the caller sees what was wrong. */
70
+ function refusalMessage(value) {
71
+ const received = value === null
72
+ ? 'null'
73
+ : typeof value === 'object'
74
+ ? Object.getPrototypeOf(value)?.constructor
75
+ ?.name ?? 'object'
76
+ : typeof value;
77
+ return (`inject() body must be a string, Uint8Array, ArrayBuffer, Blob, URLSearchParams, or a ` +
78
+ `plain object; received ${received}. The previous behaviour silently JSON-stringified ` +
79
+ `every other shape, which destroyed the value — pass bytes for a binary or multipart ` +
80
+ `body, or a plain object for JSON.`);
81
+ }
82
+ //# sourceMappingURL=inject-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-body.js","sourceRoot":"","sources":["../../src/application/inject-body.ts"],"names":[],"mappings":"AA4CA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAA4B;IAE5B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;IAC3F,CAAC;IACD,IAAI,IAAI,YAAY,eAAe,EAAE,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,kBAAkB,EAAE,mCAAmC;SACxD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,uEAAuE;QACvE,yEAAyE;QACzE,2EAA2E;QAC3E,sEAAsE;QACtE,2EAA2E;QAC3E,4EAA4E;QAC5E,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAChC,4EAA4E;QAC5E,8DAA8D;QAC9D,OAAO,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC;IACjF,CAAC;IACD,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACzB,qEAAqE;QACrE,4DAA4D;QAC5D,sEAAsE;QACtE,yEAAyE;QACzE,wEAAwE;QACxE,0EAA0E;QAC1E,0BAA0B;QAC1B,OAAO;YACL,KAAK,EAAE,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/C,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,OAAO;YACL,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrD,kBAAkB,EAAE,kBAAkB;SACvC,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,uEAAuE;AACvE,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,KAAK,GAAY,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACtD,CAAC;AAED,kFAAkF;AAClF,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI;QAC7B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YAC3B,CAAC,CAAE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAgD,EAAE,WAAW;gBACzF,EAAE,IAAI,IAAI,QAAQ;YACpB,CAAC,CAAC,OAAO,KAAK,CAAC;IACjB,OAAO,CACL,uFAAuF;QACvF,0BAA0B,QAAQ,qDAAqD;QACvF,sFAAsF;QACtF,mCAAmC,CACpC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { IRequest, IRequestContext } from '@setu-ts/common';
2
+ import type { IRuntimeServices } from '@setu-ts/common';
3
+ import type { ServiceRegistry } from '../registry/service-registry.ts';
4
+ /**
5
+ * Internal result of {@linkcode createRequestContext}: the immutable
6
+ * {@linkcode IRequestContext} plus a `setParams` mutator the kernel uses
7
+ * to install matched route parameters after routing. This shape is NOT
8
+ * exported from the package public API — only the kernel dispatch path
9
+ * uses `setParams`.
10
+ */
11
+ export interface RequestContextHandle {
12
+ /** The per-request context. */
13
+ readonly ctx: IRequestContext;
14
+ /** Replaces the params exposed by `ctx.params` (used after route match). */
15
+ setParams(params: Record<string, string>): void;
16
+ }
17
+ /**
18
+ * Creates a per-request {@linkcode IRequestContext}.
19
+ *
20
+ * The returned `ctx.params` is a readonly getter over an internal slot;
21
+ * use {@linkcode RequestContextHandle.setParams} on the returned handle
22
+ * to update it after routing (the kernel does this in its dispatch
23
+ * terminal). This avoids mutating a `readonly` field via a cast.
24
+ *
25
+ * @param request - The incoming request
26
+ * @param registry - The application-scoped service registry (a child is created
27
+ * on first `ctx.services` read)
28
+ * @param runtime - Runtime services for uuid and hrtime
29
+ * @returns The request context handle
30
+ */
31
+ export declare function createRequestContext(request: IRequest, registry: ServiceRegistry, runtime: IRuntimeServices): RequestContextHandle;
32
+ //# sourceMappingURL=request-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/context/request-context.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAoB,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAC9B,4EAA4E;IAC5E,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CACjD;AAmHD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,gBAAgB,GACxB,oBAAoB,CAStB"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Request context factory — creates a fresh per-request context whose cold
3
+ * members (identity, child registry, state, query, signal) are resolved on
4
+ * first read rather than eagerly.
5
+ *
6
+ * @module
7
+ */
8
+ import { sealRequestIdentity } from '@setu-ts/common';
9
+ import { ResponseBuilder } from "./response.js";
10
+ /** Shared empty params — replaced by `setParams` once a route matches. */
11
+ const EMPTY_PARAMS = Object.freeze({});
12
+ /**
13
+ * The per-request context, as a class so that every accessor lives on ONE
14
+ * shared prototype.
15
+ *
16
+ * The class is load-bearing rather than stylistic. An earlier attempt at the
17
+ * same laziness using own-property getters on a fresh object literal per
18
+ * request measured **13% slower** than eager construction, because each
19
+ * request got its own hidden class. Declared once on a prototype, the same
20
+ * getters are monomorphic.
21
+ *
22
+ * Cold members are resolved on first read. The eager versions each cost every
23
+ * request in the application to serve the minority that reads them: a child
24
+ * registry allocation, a `crypto`-backed UUID, a `Map`, a `URL` parse for the
25
+ * query string (the second in the request's life — the adapter already parsed
26
+ * one), and — on Node — an `AbortController`, because
27
+ * `@hono/node-server`'s lightweight Request creates one on first `signal` read.
28
+ */
29
+ class RequestContext {
30
+ request;
31
+ response;
32
+ startTime;
33
+ #registry;
34
+ #runtime;
35
+ #params = EMPTY_PARAMS;
36
+ #id;
37
+ #services;
38
+ #state;
39
+ #query;
40
+ #signal;
41
+ constructor(request, registry, runtime) {
42
+ this.request = request;
43
+ this.#registry = registry;
44
+ this.#runtime = runtime;
45
+ this.response = new ResponseBuilder();
46
+ // Monotonic, and read eagerly on purpose: it is the request's start, so a
47
+ // lazy read would time the first access rather than the request.
48
+ this.startTime = runtime.hrtime();
49
+ // `raw` is OMITTED, not set to undefined, when the adapter supplied none:
50
+ // `IRequestContext.raw` is optional and the workspace compiles under
51
+ // `exactOptionalPropertyTypes`, so a getter returning `undefined` is not
52
+ // assignable. This reproduces the pre-M87 conditional-spread behaviour.
53
+ if (request.raw !== undefined) {
54
+ this.raw = request.raw;
55
+ }
56
+ }
57
+ /** Unique request ID. */
58
+ get id() {
59
+ this.#id ??= this.#runtime.uuid();
60
+ return this.#id;
61
+ }
62
+ /** The request-scoped child service registry. */
63
+ get services() {
64
+ this.#services ??= this.#registry.createChild();
65
+ return this.#services;
66
+ }
67
+ /** Matched route parameters — empty until the kernel calls `setParams`. */
68
+ get params() {
69
+ return this.#params;
70
+ }
71
+ /** Parsed query-string parameters. */
72
+ get query() {
73
+ if (this.#query === undefined) {
74
+ const url = new URL(this.request.url);
75
+ const query = {};
76
+ for (const [key, value] of url.searchParams.entries()) {
77
+ query[key] = value;
78
+ }
79
+ this.#query = query;
80
+ }
81
+ return this.#query;
82
+ }
83
+ /** Per-request scratch state. */
84
+ get state() {
85
+ this.#state ??= new Map();
86
+ return this.#state;
87
+ }
88
+ /**
89
+ * An abort signal that is live for the life of the request.
90
+ *
91
+ * Falls back to a never-aborting sentinel when the incoming request carries
92
+ * no signal (an injected or test-constructed request), so handlers always
93
+ * have something to listen on.
94
+ *
95
+ * The sentinel is constructed **per request**, never once at module scope:
96
+ * Cloudflare Workers refuses `new AbortController()` in global scope
97
+ * ("Disallowed operation called within global scope"), because an
98
+ * AbortController is bound to an I/O context. A module-scope one made every
99
+ * application fail to boot on workerd. Caching a single instance lazily is
100
+ * not a fix either — workerd would then refuse to use a controller created
101
+ * for one request on behalf of another.
102
+ */
103
+ get signal() {
104
+ this.#signal ??= this.request.signal ?? new AbortController().signal;
105
+ return this.#signal;
106
+ }
107
+ /** Installs matched route parameters after routing. */
108
+ setParams(params) {
109
+ this.#params = params;
110
+ }
111
+ }
112
+ /**
113
+ * Creates a per-request {@linkcode IRequestContext}.
114
+ *
115
+ * The returned `ctx.params` is a readonly getter over an internal slot;
116
+ * use {@linkcode RequestContextHandle.setParams} on the returned handle
117
+ * to update it after routing (the kernel does this in its dispatch
118
+ * terminal). This avoids mutating a `readonly` field via a cast.
119
+ *
120
+ * @param request - The incoming request
121
+ * @param registry - The application-scoped service registry (a child is created
122
+ * on first `ctx.services` read)
123
+ * @param runtime - Runtime services for uuid and hrtime
124
+ * @returns The request context handle
125
+ */
126
+ export function createRequestContext(request, registry, runtime) {
127
+ sealRequestIdentity(request);
128
+ const ctx = new RequestContext(request, registry, runtime);
129
+ return {
130
+ ctx,
131
+ setParams(next) {
132
+ ctx.setParams(next);
133
+ },
134
+ };
135
+ }
136
+ //# sourceMappingURL=request-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../src/context/request-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Response builder — chainable configuration + terminal methods that produce
3
+ * the opaque {@linkcode HandlerResult} brand only the kernel creates.
4
+ *
5
+ * @module
6
+ */
7
+ import type { HandlerResult, IResponse, ResponseSnapshot, ResponseSnapshotInit } from '@setu-ts/common';
8
+ /**
9
+ * Default implementation of {@linkcode IResponse}. Configuration methods
10
+ * chain; terminal methods mark the builder as ended and return the brand.
11
+ */
12
+ export declare class ResponseBuilder implements IResponse {
13
+ #private;
14
+ status(code: number): IResponse;
15
+ header(name: string, value: string): IResponse;
16
+ appendHeader(name: string, value: string): IResponse;
17
+ json<T>(body: T): HandlerResult;
18
+ text(body: string): HandlerResult;
19
+ /**
20
+ * Sends an HTML response with the `text/html; charset=utf-8` media type.
21
+ *
22
+ * @param body - The HTML document text
23
+ * @returns The handler result
24
+ */
25
+ html(body: string): HandlerResult;
26
+ send(body?: Uint8Array): HandlerResult;
27
+ redirect(url: string, status?: number): HandlerResult;
28
+ /**
29
+ * Sends a streaming response body.
30
+ *
31
+ * Accepts a web-standard {@linkcode ReadableStream} so that a handler can flush
32
+ * bytes progressively over a long-lived connection instead of buffering a
33
+ * whole body before send.
34
+ *
35
+ * @param body - A `ReadableStream` of `Uint8Array` chunks
36
+ * @returns The handler result
37
+ */
38
+ stream(body: ReadableStream<Uint8Array>): HandlerResult;
39
+ /**
40
+ * Returns a snapshot of the current response state.
41
+ *
42
+ * @returns The discriminated snapshot (status, headers, and either a buffered
43
+ * body or a live stream, keyed on `streaming`)
44
+ */
45
+ snapshot(): ResponseSnapshot;
46
+ /** Whether a terminal method has been called (used to detect short-circuits). */
47
+ get ended(): boolean;
48
+ /**
49
+ * The response status as currently set, defaulted to 200 — the value a
50
+ * completed request's diagnostics record reports. Read-only by design:
51
+ * status is set through {@linkcode ResponseBuilder.status}.
52
+ * @since 0.8.0
53
+ */
54
+ get statusCode(): number;
55
+ /** Supplies the documented live headers view to an internal snapshot. */
56
+ headersForSnapshot(): Headers;
57
+ /** Supplies the current fast-path init to an internal snapshot. */
58
+ responseInitForSnapshot(): ResponseSnapshotInit | undefined;
59
+ }
60
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/context/response.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAWzB;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;;IAS/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAK/B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAK9C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAKpD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,aAAa;IAO/B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAOjC;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAOjC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,aAAa;IAStC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY,GAAG,aAAa;IAQ1D;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,aAAa;IAOvD;;;;;OAKG;IACH,QAAQ,IAAI,gBAAgB;IAe5B,iFAAiF;IACjF,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;;;;OAKG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAYD,yEAAyE;IACzE,kBAAkB,IAAI,OAAO;IAI7B,mEAAmE;IACnE,uBAAuB,IAAI,oBAAoB,GAAG,SAAS;CA4B5D"}