@c9up/ream 0.2.4 → 0.2.6

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 (112) hide show
  1. package/README.md +3 -9
  2. package/dist/Application.d.ts +85 -5
  3. package/dist/Application.d.ts.map +1 -1
  4. package/dist/Application.js +171 -21
  5. package/dist/Application.js.map +1 -1
  6. package/dist/ErrorBoundary.d.ts +1 -7
  7. package/dist/ErrorBoundary.d.ts.map +1 -1
  8. package/dist/ErrorBoundary.js +31 -31
  9. package/dist/ErrorBoundary.js.map +1 -1
  10. package/dist/HttpKernel.js +2 -2
  11. package/dist/HttpKernel.js.map +1 -1
  12. package/dist/Ignitor.d.ts +18 -49
  13. package/dist/Ignitor.d.ts.map +1 -1
  14. package/dist/Ignitor.js +211 -173
  15. package/dist/Ignitor.js.map +1 -1
  16. package/dist/env/Env.d.ts +6 -0
  17. package/dist/env/Env.d.ts.map +1 -1
  18. package/dist/env/Env.js +6 -0
  19. package/dist/env/Env.js.map +1 -1
  20. package/dist/events/Emitter.d.ts +0 -6
  21. package/dist/events/Emitter.d.ts.map +1 -1
  22. package/dist/events/Emitter.js +42 -42
  23. package/dist/events/Emitter.js.map +1 -1
  24. package/dist/events/native.d.ts +13 -11
  25. package/dist/events/native.d.ts.map +1 -1
  26. package/dist/events/native.js.map +1 -1
  27. package/dist/helpers/compose.d.ts +30 -0
  28. package/dist/helpers/compose.d.ts.map +1 -0
  29. package/dist/helpers/compose.js +27 -0
  30. package/dist/helpers/compose.js.map +1 -0
  31. package/dist/helpers/index.d.ts +1 -0
  32. package/dist/helpers/index.d.ts.map +1 -1
  33. package/dist/helpers/index.js +1 -0
  34. package/dist/helpers/index.js.map +1 -1
  35. package/dist/helpers/is.d.ts +69 -16
  36. package/dist/helpers/is.d.ts.map +1 -1
  37. package/dist/helpers/is.js +79 -16
  38. package/dist/helpers/is.js.map +1 -1
  39. package/dist/index.d.ts +4 -3
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +2 -3
  42. package/dist/index.js.map +1 -1
  43. package/dist/middleware/Pipeline.d.ts +9 -3
  44. package/dist/middleware/Pipeline.d.ts.map +1 -1
  45. package/dist/middleware/Pipeline.js +10 -4
  46. package/dist/middleware/Pipeline.js.map +1 -1
  47. package/dist/native/generated.d.ts +243 -0
  48. package/dist/native/generated.d.ts.map +1 -0
  49. package/dist/native/generated.js +7 -0
  50. package/dist/native/generated.js.map +1 -0
  51. package/dist/rpc/RpcRouter.js +2 -2
  52. package/dist/rpc/RpcRouter.js.map +1 -1
  53. package/dist/services/app.d.ts +6 -0
  54. package/dist/services/app.d.ts.map +1 -1
  55. package/dist/services/app.js +8 -0
  56. package/dist/services/app.js.map +1 -1
  57. package/dist/services/config.d.ts +15 -0
  58. package/dist/services/config.d.ts.map +1 -0
  59. package/dist/services/config.js +18 -0
  60. package/dist/services/config.js.map +1 -0
  61. package/dist/services/encryption.d.ts +23 -0
  62. package/dist/services/encryption.d.ts.map +1 -0
  63. package/dist/services/encryption.js +33 -0
  64. package/dist/services/encryption.js.map +1 -0
  65. package/dist/services/urlBuilder.d.ts +21 -0
  66. package/dist/services/urlBuilder.d.ts.map +1 -0
  67. package/dist/services/urlBuilder.js +34 -0
  68. package/dist/services/urlBuilder.js.map +1 -0
  69. package/dist/session/drivers/CookieDriver.d.ts +1 -1
  70. package/dist/session/drivers/CookieDriver.d.ts.map +1 -1
  71. package/dist/session/drivers/CookieDriver.js +4 -4
  72. package/dist/session/drivers/CookieDriver.js.map +1 -1
  73. package/dist/testing/ApiResponse.d.ts +44 -44
  74. package/dist/testing/ApiResponse.d.ts.map +1 -1
  75. package/dist/testing/ApiResponse.js +48 -48
  76. package/dist/testing/ApiResponse.js.map +1 -1
  77. package/dist/testing/RequestBuilder.d.ts +39 -39
  78. package/dist/testing/RequestBuilder.d.ts.map +1 -1
  79. package/dist/testing/RequestBuilder.js +49 -49
  80. package/dist/testing/RequestBuilder.js.map +1 -1
  81. package/dist/testing/TestClient.d.ts +5 -5
  82. package/dist/testing/TestClient.d.ts.map +1 -1
  83. package/dist/testing/TestClient.js +7 -7
  84. package/dist/testing/TestClient.js.map +1 -1
  85. package/events.win32-x64-msvc.node +0 -0
  86. package/index.win32-x64-msvc.node +0 -0
  87. package/package.json +15 -2
  88. package/scheduler.win32-x64-msvc.node +0 -0
  89. package/scripts/build-napi-types.mjs +68 -0
  90. package/scripts/generate-napi-types.mjs +171 -0
  91. package/src/Application.ts +221 -21
  92. package/src/ErrorBoundary.ts +31 -31
  93. package/src/HttpKernel.ts +2 -2
  94. package/src/Ignitor.ts +228 -176
  95. package/src/env/Env.ts +6 -0
  96. package/src/events/Emitter.ts +42 -42
  97. package/src/events/native.ts +21 -14
  98. package/src/helpers/compose.ts +84 -0
  99. package/src/helpers/index.ts +1 -0
  100. package/src/helpers/is.ts +87 -16
  101. package/src/index.ts +3 -3
  102. package/src/middleware/Pipeline.ts +10 -4
  103. package/src/native/generated.ts +291 -0
  104. package/src/rpc/RpcRouter.ts +2 -2
  105. package/src/services/app.ts +9 -0
  106. package/src/services/config.ts +24 -0
  107. package/src/services/encryption.ts +42 -0
  108. package/src/services/urlBuilder.ts +41 -0
  109. package/src/session/drivers/CookieDriver.ts +4 -4
  110. package/src/testing/ApiResponse.ts +52 -52
  111. package/src/testing/RequestBuilder.ts +55 -55
  112. package/src/testing/TestClient.ts +8 -8
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Typed response object crossing the TS→NAPI→Rust boundary.
3
+ *
4
+ * Using `#[napi(object)]` (instead of `String` carrying JSON) means napi-rs
5
+ * walks the JS object tree directly into Rust fields — zero JSON parse overhead.
6
+ *
7
+ * When `stream_id` is set, `body` is ignored and the hyper response is fed
8
+ * from the matching entry in the shared `StreamRegistry`. The handler must
9
+ * have called [`HyperServer::register_stream`] with that id BEFORE
10
+ * returning, otherwise the response collapses to a 500 (E_STREAM_UNKNOWN).
11
+ */
12
+ export interface NapiResponse {
13
+ status: number;
14
+ headers: Record<string, string>;
15
+ body: string;
16
+ streamId?: string;
17
+ }
18
+ /**
19
+ * Configuration for the wire-level shield filter. Mirrors the Rust
20
+ * `ShieldConfig` shape; the JS layer constructs it from `ShieldMiddleware`
21
+ * options at boot and hands it off to `HyperServer.configureShield`.
22
+ */
23
+ export interface NapiShieldConfig {
24
+ pathTraversal: boolean;
25
+ paramPollution: boolean;
26
+ }
27
+ /**
28
+ * Configuration for the wire-level rate limiter. `windowSecs` is the size
29
+ * of the fixed window in seconds; `max` is the request budget per key
30
+ * (resolved client IP) per window.
31
+ */
32
+ export interface NapiRateLimitConfig {
33
+ max: number;
34
+ windowSecs: number;
35
+ }
36
+ /**
37
+ * NAPI-exposed event bus.
38
+ * Uses shared Tokio runtime (no per-instance runtime).
39
+ */
40
+ export declare class EventBus {
41
+ constructor(requestHandlerTimeoutMs?: number | undefined | null);
42
+ /** Emit an event (async — does NOT block Node.js thread). */
43
+ emit(name: string, data: string): Promise<string>;
44
+ /**
45
+ * Subscribe to events matching a pattern. Callback receives event JSON string.
46
+ * Returns subscription ID.
47
+ *
48
+ * NOTE: This is `pub fn` (sync) — napi-rs cannot make `async fn` capture
49
+ * `JsFunction` because JsFunction isn't Send. The block_on here runs on the
50
+ * JS thread (no async context above), so it doesn't deadlock the runtime.
51
+ */
52
+ subscribe(pattern: string, callback: (eventJson: string) => void): number;
53
+ /** Unsubscribe by subscription ID. */
54
+ unsubscribe(subId: number): Promise<void>;
55
+ /** Register a request handler. */
56
+ onRequest(name: string, callback: (eventJson: string, reply: (response: string) => void) => void): void;
57
+ /** Send a request and get a response (async with timeout). */
58
+ request(name: string, data: string, timeoutMs?: number | undefined | null): Promise<string>;
59
+ /** Check if a pattern matches an event name (wildcard matching via Rust). */
60
+ matchesWildcard(pattern: string, eventName: string): boolean;
61
+ /** Get subscription count. */
62
+ subscriptionCount(): Promise<number>;
63
+ }
64
+ /** NAPI-exposed Hyper HTTP server. */
65
+ export declare class HyperServer {
66
+ /**
67
+ * `host` is the bind address: an IPv4 literal (`0.0.0.0` to accept from
68
+ * every interface) or the `localhost` alias. Omitted → loopback only,
69
+ * the safe default for a dev machine.
70
+ */
71
+ constructor(port?: number | undefined | null, host?: string | undefined | null);
72
+ /** Register the request handler. Callback receives JSON request string, must return JSON response string. */
73
+ onRequest(callback: (request: string) => Promise<string> | string): void;
74
+ /**
75
+ * Configure the trusted-proxy CIDR list used by `request.ip` resolution.
76
+ * Must be called BEFORE `listen()`. Empty list = legacy permissive mode
77
+ * (any peer can populate `X-Forwarded-For`).
78
+ */
79
+ configureTrustedProxies(cidrs: Array<string>): void;
80
+ /**
81
+ * Install (or replace) the wire-level rate limiter. Pass `None` to
82
+ * disable. Must be called BEFORE `listen()`.
83
+ */
84
+ configureRateLimit(config?: NapiRateLimitConfig | undefined | null): void;
85
+ /**
86
+ * Configure the wire-level security shield. Must be called BEFORE
87
+ * `listen()` — the configuration is captured into the security filter
88
+ * when the server starts. Calling after `listen()` has no effect.
89
+ */
90
+ configureShield(config: NapiShieldConfig): void;
91
+ /** Start the HTTP server. */
92
+ listen(): Promise<void>;
93
+ /** Get the actual bound port. */
94
+ port(): Promise<number>;
95
+ /**
96
+ * Shut down the server and release the handles that keep the host's event
97
+ * loop alive.
98
+ *
99
+ * `listen()` registers the JS callback as a `ThreadsafeFunction` (which
100
+ * holds a libuv ref so `ream start` stays alive). Three `Arc` clones of the
101
+ * request handler capture it: this struct's `self.handler`, the inner
102
+ * `ReamServer.handler`, and the accept-loop task's clone. ALL three must
103
+ * drop for napi-rs to release the tsfn on `Drop` (refcount → 0). The old
104
+ * `close()` only signalled shutdown, leaving every clone alive — so an
105
+ * in-process host (test harness) leaked the handle and never drained.
106
+ */
107
+ close(): Promise<void>;
108
+ /**
109
+ * Reserve a slot in the stream registry. Returns `false` if the id
110
+ * already exists (caller picked a colliding UUID). Always returns
111
+ * before `listen()` need have run.
112
+ */
113
+ registerStream(streamId: string): Promise<boolean>;
114
+ /**
115
+ * Push a chunk onto a registered stream. Returns `false` when the
116
+ * stream has already finished (receiver dropped — client gone or
117
+ * `closeStream` called) so the caller can bail out of its push
118
+ * loop. Backpressure is handled silently: a full buffer drops the
119
+ * frame rather than awaiting — SSE is fire-and-forget by design.
120
+ */
121
+ writeStream(streamId: string, chunk: string): Promise<boolean>;
122
+ /**
123
+ * Push a BINARY chunk onto a registered stream, waiting for room.
124
+ *
125
+ * The counterpart of [`write_stream`](Self::write_stream) for a body the
126
+ * client reassembles — a file, an export, an archive. Two differences,
127
+ * both required there and both wrong for SSE:
128
+ *
129
+ * * it takes bytes, not a `String`, so a payload that is not valid UTF-8
130
+ * survives the crossing intact;
131
+ * * it AWAITS when the channel is full instead of dropping the frame, so
132
+ * a slow client slows the producer rather than silently receiving a
133
+ * truncated file.
134
+ *
135
+ * Returns `false` when the receiver is gone (client disconnected or the
136
+ * stream was closed), so the caller can stop reading its source.
137
+ */
138
+ writeStreamBytes(streamId: string, chunk: Uint8Array): Promise<boolean>;
139
+ /**
140
+ * Close a stream from the server side. The matching response body
141
+ * finishes cleanly (hyper writes the final chunk + `0
142
+
143
+ ` for
144
+ * HTTP/1.1 chunked encoding). Idempotent.
145
+ */
146
+ closeStream(streamId: string): Promise<boolean>;
147
+ /**
148
+ * Install a one-shot callback fired the moment the matching stream
149
+ * receiver is dropped — i.e. the client disconnected or
150
+ * `closeStream` was called. Used by the JS SDK to drop subscription
151
+ * bookkeeping when an SSE viewer leaves.
152
+ *
153
+ * The callback runs on the libuv loop via the threadsafe-function
154
+ * machinery, so JS code in the callback uses regular await /
155
+ * reentrant container calls without crossing-thread surprises.
156
+ */
157
+ onStreamDisconnect(streamId: string, callback: (streamId: string) => void): void;
158
+ }
159
+ /**
160
+ * Scheduler instance exposed to TypeScript.
161
+ *
162
+ * Usage (from TS):
163
+ * ```ignore
164
+ * const scheduler = new RustScheduler();
165
+ * scheduler.register('cleanup', '0 *\/5 * * *', (payload) => { ... });
166
+ * scheduler.start();
167
+ * // later
168
+ * scheduler.stop();
169
+ * ```
170
+ */
171
+ export declare class RustScheduler {
172
+ constructor();
173
+ /**
174
+ * Register a task. `cronExpr` is a standard 5-field cron expression
175
+ * evaluated in UTC.
176
+ *
177
+ * Throws with `DUPLICATE_TASK` if `name` already exists, or
178
+ * `INVALID_CRON` if the expression is malformed.
179
+ */
180
+ register(name: string, cronExpr: string, callback: (invocation: {
181
+ taskName: string;
182
+ scheduledForMs: number;
183
+ }) => void): void;
184
+ /** Remove a task. Idempotent — unknown names are not an error. */
185
+ unregister(name: string): void;
186
+ /** Launch the tick loop on the shared Tokio runtime. Idempotent. */
187
+ start(): void;
188
+ /** Cancel the tick loop. Safe to call even if not running. */
189
+ stop(): void;
190
+ /** Return the next fire time in ms epoch, or `null` if the task is unknown. */
191
+ nextRun(name: string): number | null;
192
+ }
193
+ /**
194
+ * Sign a JWT payload with HMAC-SHA256 (Rust-native).
195
+ * Returns the complete JWT token string.
196
+ */
197
+ export declare function jwtSign(payload: string, secret: string): string;
198
+ /**
199
+ * Verify a JWT token and return the decoded payload JSON string.
200
+ * Validates signature (constant-time), exp, and nbf claims.
201
+ */
202
+ export declare function jwtVerify(token: string, secret: string): string;
203
+ /**
204
+ * Hash a password with Argon2id (Rust-native).
205
+ * Returns the PHC-formatted hash string.
206
+ */
207
+ export declare function argon2Hash(password: string): string;
208
+ /** Verify a password against an Argon2id hash. */
209
+ export declare function argon2Verify(password: string, hash: string): boolean;
210
+ /**
211
+ * Hash a password with bcrypt (Rust-native).
212
+ * `rounds` defaults to 12 when not supplied — matches the previous
213
+ * warden-engine default and the OWASP-recommended cost floor enforced
214
+ * by `sigil-engine`.
215
+ */
216
+ export declare function bcryptHash(password: string, rounds?: number | undefined | null): string;
217
+ /** Verify a password against a bcrypt hash. */
218
+ export declare function bcryptVerify(password: string, hash: string): boolean;
219
+ /** Constant-time string comparison. */
220
+ export declare function constantTimeEq(a: string, b: string): boolean;
221
+ /** HMAC-SHA256 sign. Returns base64url signature. */
222
+ export declare function hmacSign(data: string, secret: string): string;
223
+ /** HMAC-SHA256 verify (constant-time). */
224
+ export declare function hmacVerify(data: string, signature: string, secret: string): boolean;
225
+ /** Generate cryptographically secure random bytes as base64url. */
226
+ export declare function randomBytesBase64(len: number): string;
227
+ /** Generate cryptographically secure random bytes as hex. */
228
+ export declare function randomHex(len: number): string;
229
+ /**
230
+ * Parse a GraphQL query using the Rust graphql-parser crate.
231
+ * Returns JSON: { operationType, operationName, fields: [...], errors: [...] }
232
+ * Invalid queries are rejected here — they never reach the TypeScript resolver layer.
233
+ */
234
+ export declare function graphqlParse(query: string): string;
235
+ /** Validate a GraphQL query string. Returns JSON array of error strings (empty = valid). */
236
+ export declare function graphqlValidate(query: string): string;
237
+ /**
238
+ * Extract argument scalar types from a GraphQL SDL schema.
239
+ * Returns JSON: `{ "Type.field": { "argName": "ScalarType" } }` for argument
240
+ * coercion in the TypeScript engine.
241
+ */
242
+ export declare function graphqlSchemaArgTypes(sdl: string): string;
243
+ //# sourceMappingURL=generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/native/generated.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ // GENERATED FROM THE RUST — do not edit.
2
+ //
3
+ // Produced by scripts/generate-napi-types.mjs from napi-derive's type-def
4
+ // output. Editing this file by hand puts it back where it started: a
5
+ // description that can disagree with the code it describes.
6
+ export {};
7
+ //# sourceMappingURL=generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated.js","sourceRoot":"","sources":["../../src/native/generated.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,0EAA0E;AAC1E,qEAAqE;AACrE,4DAA4D"}
@@ -11,7 +11,7 @@
11
11
  * @implements MISS-27
12
12
  */
13
13
  import { buildSuccess, isNotification, isRpcShapedError, parseRequest as parseRpcRequest, buildError as rpcError, } from '@c9up/comet';
14
- import { compose, runValidator } from '../middleware/Pipeline.js';
14
+ import { composeMiddleware, runValidator } from '../middleware/Pipeline.js';
15
15
  export class RpcMethodBuilder {
16
16
  #def;
17
17
  constructor(def) {
@@ -193,7 +193,7 @@ export class RpcRouter {
193
193
  }
194
194
  return mw;
195
195
  });
196
- await compose(fns)(ctx, async () => { });
196
+ await composeMiddleware(fns)(ctx, async () => { });
197
197
  }
198
198
  async #processOne(ctx, request) {
199
199
  const parsed = parseRpcRequest(request);
@@ -1 +1 @@
1
- {"version":3,"file":"RpcRouter.js","sourceRoot":"","sources":["../../src/rpc/RpcRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RpcRouter.js","sourceRoot":"","sources":["../../src/rpc/RpcRouter.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,12 @@ export declare function setApp(app: Application): void;
15
15
  * locator, the older app's stop() must not tear down the newer binding.
16
16
  */
17
17
  export declare function clearApp(app: Application): void;
18
+ /**
19
+ * @internal Get the app instance directly. Used by the accessors that stand in
20
+ * for something the app OWNS (`services/config` is `app.config`), so they read
21
+ * through here instead of keeping a second copy that a re-boot could desync.
22
+ */
23
+ export declare function getApp(): Application | undefined;
18
24
  declare const app: Application;
19
25
  export default app;
20
26
  //# sourceMappingURL=app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAKpD,0DAA0D;AAC1D,wBAAgB,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAE/C;AAED,QAAA,MAAM,GAAG,EAAE,WAIV,CAAA;AAED,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAKpD,0DAA0D;AAC1D,wBAAgB,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,WAAW,GAAG,SAAS,CAEhD;AAED,QAAA,MAAM,GAAG,EAAE,WAIV,CAAA;AAED,eAAe,GAAG,CAAA"}
@@ -21,6 +21,14 @@ export function clearApp(app) {
21
21
  if (instance === app)
22
22
  instance = undefined;
23
23
  }
24
+ /**
25
+ * @internal Get the app instance directly. Used by the accessors that stand in
26
+ * for something the app OWNS (`services/config` is `app.config`), so they read
27
+ * through here instead of keeping a second copy that a re-boot could desync.
28
+ */
29
+ export function getApp() {
30
+ return instance;
31
+ }
24
32
  const app = createServiceProxy(() => instance, 'Application accessed before initialization. ' +
25
33
  'Ensure this code runs during or after the boot phase.');
26
34
  export default app;
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,IAAI,QAAiC,CAAA;AAErC,0DAA0D;AAC1D,MAAM,UAAU,MAAM,CAAC,GAAgB;IACrC,QAAQ,GAAG,GAAG,CAAA;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAgB;IACvC,IAAI,QAAQ,KAAK,GAAG;QAAE,QAAQ,GAAG,SAAS,CAAA;AAC5C,CAAC;AAED,MAAM,GAAG,GAAgB,kBAAkB,CACzC,GAAG,EAAE,CAAC,QAAQ,EACd,8CAA8C;IAC5C,uDAAuD,CAC1D,CAAA;AAED,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,IAAI,QAAiC,CAAA;AAErC,0DAA0D;AAC1D,MAAM,UAAU,MAAM,CAAC,GAAgB;IACrC,QAAQ,GAAG,GAAG,CAAA;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAgB;IACvC,IAAI,QAAQ,KAAK,GAAG;QAAE,QAAQ,GAAG,SAAS,CAAA;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,GAAG,GAAgB,kBAAkB,CACzC,GAAG,EAAE,CAAC,QAAQ,EACd,8CAA8C;IAC5C,uDAAuD,CAC1D,CAAA;AAED,eAAe,GAAG,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Config store singleton service.
3
+ *
4
+ * Usage:
5
+ * import config from '@c9up/ream/services/config'
6
+ * const port = config.get<number>('app.port', 3333)
7
+ *
8
+ * Unlike the other accessors this one keeps no instance of its own: the store
9
+ * IS `app.config`, so it reads through the app locator. One source of truth
10
+ * means the two can never point at different stores after a re-boot.
11
+ */
12
+ import type { ConfigStore } from '../ConfigLoader.js';
13
+ declare const config: ConfigStore;
14
+ export default config;
15
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAIrD,QAAA,MAAM,MAAM,EAAE,WAKb,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Config store singleton service.
3
+ *
4
+ * Usage:
5
+ * import config from '@c9up/ream/services/config'
6
+ * const port = config.get<number>('app.port', 3333)
7
+ *
8
+ * Unlike the other accessors this one keeps no instance of its own: the store
9
+ * IS `app.config`, so it reads through the app locator. One source of truth
10
+ * means the two can never point at different stores after a re-boot.
11
+ */
12
+ import { getApp } from './app.js';
13
+ import { createServiceProxy } from './createServiceProxy.js';
14
+ const config = createServiceProxy(() => getApp()?.config, 'Config accessed before initialization. ' +
15
+ 'The store is built during the boot phase — read it from inside a provider, ' +
16
+ 'a preload, or a request, not at module top level.');
17
+ export default config;
18
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,MAAM,GAAgB,kBAAkB,CAC5C,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,EACtB,yCAAyC;IACvC,6EAA6E;IAC7E,mDAAmD,CACtD,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Cookie/value signing singleton service.
3
+ *
4
+ * Usage:
5
+ * import encryption from '@c9up/ream/services/encryption'
6
+ * const signed = encryption.sign('payload')
7
+ *
8
+ * Registered only when `APP_KEY` is set — there is nothing to sign with
9
+ * otherwise — so the not-ready message names that rather than the boot phase.
10
+ */
11
+ import type { CookieSigner } from '../security/CookieSigner.js';
12
+ /** @internal Set the signer (called by Ignitor once APP_KEY is validated). */
13
+ export declare function setEncryption(signer: CookieSigner): void;
14
+ /**
15
+ * @internal Unset the locator IF it still points at `signer` (called by
16
+ * Ignitor.stop()). Ownership-guarded — see services/app.ts.
17
+ */
18
+ export declare function clearEncryption(signer: CookieSigner): void;
19
+ /** @internal Get the signer directly. */
20
+ export declare function getEncryption(): CookieSigner | undefined;
21
+ declare const encryption: CookieSigner;
22
+ export default encryption;
23
+ //# sourceMappingURL=encryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../src/services/encryption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAK/D,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAExD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAE1D;AAED,yCAAyC;AACzC,wBAAgB,aAAa,IAAI,YAAY,GAAG,SAAS,CAExD;AAED,QAAA,MAAM,UAAU,EAAE,YAKjB,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Cookie/value signing singleton service.
3
+ *
4
+ * Usage:
5
+ * import encryption from '@c9up/ream/services/encryption'
6
+ * const signed = encryption.sign('payload')
7
+ *
8
+ * Registered only when `APP_KEY` is set — there is nothing to sign with
9
+ * otherwise — so the not-ready message names that rather than the boot phase.
10
+ */
11
+ import { createServiceProxy } from './createServiceProxy.js';
12
+ let instance;
13
+ /** @internal Set the signer (called by Ignitor once APP_KEY is validated). */
14
+ export function setEncryption(signer) {
15
+ instance = signer;
16
+ }
17
+ /**
18
+ * @internal Unset the locator IF it still points at `signer` (called by
19
+ * Ignitor.stop()). Ownership-guarded — see services/app.ts.
20
+ */
21
+ export function clearEncryption(signer) {
22
+ if (instance === signer)
23
+ instance = undefined;
24
+ }
25
+ /** @internal Get the signer directly. */
26
+ export function getEncryption() {
27
+ return instance;
28
+ }
29
+ const encryption = createServiceProxy(() => instance, '[E_MISSING_APP_KEY] Encryption accessed before it was registered. ' +
30
+ 'It exists only when APP_KEY is set (>= 16 characters) — check the ' +
31
+ 'environment before reaching for it, or you are reading it before boot.');
32
+ export default encryption;
33
+ //# sourceMappingURL=encryption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/services/encryption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,IAAI,QAAkC,CAAA;AAEtC,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,QAAQ,GAAG,MAAM,CAAA;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,IAAI,QAAQ,KAAK,MAAM;QAAE,QAAQ,GAAG,SAAS,CAAA;AAC/C,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,aAAa;IAC3B,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,GAAiB,kBAAkB,CACjD,GAAG,EAAE,CAAC,QAAQ,EACd,oEAAoE;IAClE,oEAAoE;IACpE,wEAAwE,CAC3E,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Named-route URL helpers, as free functions.
3
+ *
4
+ * Usage:
5
+ * import { urlFor, signedUrlFor } from '@c9up/ream/services/urlBuilder'
6
+ * const href = urlFor('users.show', { id: '42' })
7
+ * const link = signedUrlFor('email.verify', { id: '42' }, { expiresIn: '1h' })
8
+ *
9
+ * Both delegate to the router — the same code `router.urlFor` /
10
+ * `router.makeSignedUrl` run — so a route renamed in one place cannot mean two
11
+ * things. They exist as functions rather than as another proxy object because
12
+ * that is all there is to the URL builder: two calls, no state.
13
+ *
14
+ * `signedUrlFor` needs an APP_KEY-backed signer and says so if there is none.
15
+ */
16
+ import type { SignedUrlOptions } from '../router/Router.js';
17
+ /** Generate a URL from a named route, filling `:param` placeholders. */
18
+ export declare function urlFor(name: string, params?: Record<string, string>): string;
19
+ /** Generate a tamper-proof signed URL for a named route. */
20
+ export declare function signedUrlFor(name: string, params?: Record<string, string>, options?: SignedUrlOptions): string;
21
+ //# sourceMappingURL=urlBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlBuilder.d.ts","sourceRoot":"","sources":["../../src/services/urlBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAQ3D,wEAAwE;AACxE,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAI5E;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAIR"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Named-route URL helpers, as free functions.
3
+ *
4
+ * Usage:
5
+ * import { urlFor, signedUrlFor } from '@c9up/ream/services/urlBuilder'
6
+ * const href = urlFor('users.show', { id: '42' })
7
+ * const link = signedUrlFor('email.verify', { id: '42' }, { expiresIn: '1h' })
8
+ *
9
+ * Both delegate to the router — the same code `router.urlFor` /
10
+ * `router.makeSignedUrl` run — so a route renamed in one place cannot mean two
11
+ * things. They exist as functions rather than as another proxy object because
12
+ * that is all there is to the URL builder: two calls, no state.
13
+ *
14
+ * `signedUrlFor` needs an APP_KEY-backed signer and says so if there is none.
15
+ */
16
+ import { getRouter } from './router.js';
17
+ const NOT_READY = 'URL builder used before initialization. ' +
18
+ 'Routes are registered during the boot phase — build URLs from inside a ' +
19
+ 'controller, a view, or a preload, not at module top level.';
20
+ /** Generate a URL from a named route, filling `:param` placeholders. */
21
+ export function urlFor(name, params) {
22
+ const router = getRouter();
23
+ if (!router)
24
+ throw new Error(NOT_READY);
25
+ return router.urlFor(name, params);
26
+ }
27
+ /** Generate a tamper-proof signed URL for a named route. */
28
+ export function signedUrlFor(name, params, options) {
29
+ const router = getRouter();
30
+ if (!router)
31
+ throw new Error(NOT_READY);
32
+ return router.makeSignedUrl(name, params, options);
33
+ }
34
+ //# sourceMappingURL=urlBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlBuilder.js","sourceRoot":"","sources":["../../src/services/urlBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,SAAS,GACb,0CAA0C;IAC1C,yEAAyE;IACzE,4DAA4D,CAAA;AAE9D,wEAAwE;AACxE,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,MAA+B;IAClE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACpC,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,MAA+B,EAC/B,OAA0B;IAE1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;IACvC,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AACpD,CAAC"}
@@ -5,7 +5,7 @@ import type { SessionDriver } from '../Session.js';
5
5
  * Requires a secret for encryption.
6
6
  */
7
7
  export declare class CookieDriver implements SessionDriver {
8
- private signer;
8
+ #private;
9
9
  constructor(secret: string);
10
10
  read(sessionId: string): Promise<Record<string, unknown> | null>;
11
11
  write(_sessionId: string, _data: Record<string, unknown>, _ttl: number): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"CookieDriver.d.ts","sourceRoot":"","sources":["../../../src/session/drivers/CookieDriver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD;;;;GAIG;AACH,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,MAAM;IASpB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAWhE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItF,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,0DAA0D;IAC1D,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;CAG9C"}
1
+ {"version":3,"file":"CookieDriver.d.ts","sourceRoot":"","sources":["../../../src/session/drivers/CookieDriver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD;;;;GAIG;AACH,qBAAa,YAAa,YAAW,aAAa;;gBAGpC,MAAM,EAAE,MAAM;IASpB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAWhE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItF,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,0DAA0D;IAC1D,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;CAG9C"}
@@ -5,17 +5,17 @@ import { CookieSigner } from '../../security/CookieSigner.js';
5
5
  * Requires a secret for encryption.
6
6
  */
7
7
  export class CookieDriver {
8
- signer;
8
+ #signer;
9
9
  constructor(secret) {
10
10
  if (!secret) {
11
11
  throw new Error('CookieDriver requires a secret for session encryption. Set session.secret in your config.');
12
12
  }
13
- this.signer = new CookieSigner(secret);
13
+ this.#signer = new CookieSigner(secret);
14
14
  }
15
15
  async read(sessionId) {
16
16
  if (!sessionId)
17
17
  return null;
18
- const decrypted = this.signer.decrypt(sessionId);
18
+ const decrypted = this.#signer.decrypt(sessionId);
19
19
  if (!decrypted)
20
20
  return null;
21
21
  try {
@@ -36,7 +36,7 @@ export class CookieDriver {
36
36
  }
37
37
  /** Encode session data for cookie storage (encrypted). */
38
38
  encode(data) {
39
- return this.signer.encrypt(JSON.stringify(data));
39
+ return this.#signer.encrypt(JSON.stringify(data));
40
40
  }
41
41
  }
42
42
  //# sourceMappingURL=CookieDriver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CookieDriver.js","sourceRoot":"","sources":["../../../src/session/drivers/CookieDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAG7D;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAc;IAE5B,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAA;QACH,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAChD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,KAA8B,EAAE,IAAY;QAC1E,uEAAuE;IACzE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB;QAC9B,yDAAyD;IAC3D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,IAAY;QAC1C,uCAAuC;IACzC,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,IAA6B;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"CookieDriver.js","sourceRoot":"","sources":["../../../src/session/drivers/CookieDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAG7D;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACvB,OAAO,CAAc;IAErB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAA;QACH,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACjD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,KAA8B,EAAE,IAAY;QAC1E,uEAAuE;IACzE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB;QAC9B,yDAAyD;IAC3D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,IAAY;QAC1C,uCAAuC;IACzC,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,IAA6B;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IACnD,CAAC;CACF"}