@usetoki/toki 0.1.2 → 0.3.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 (71) hide show
  1. package/README.md +76 -7
  2. package/dist/core/app.d.ts +42 -0
  3. package/dist/{app.js → core/app.js} +82 -190
  4. package/dist/core/app.js.map +1 -0
  5. package/dist/core/logger.js.map +1 -0
  6. package/dist/{pipeline.d.ts → core/pipeline.d.ts} +2 -2
  7. package/dist/{pipeline.js → core/pipeline.js} +2 -2
  8. package/dist/core/pipeline.js.map +1 -0
  9. package/dist/{app.d.ts → core/scope.d.ts} +22 -48
  10. package/dist/core/scope.js +196 -0
  11. package/dist/core/scope.js.map +1 -0
  12. package/dist/{types.d.ts → core/types.d.ts} +5 -3
  13. package/dist/core/types.js.map +1 -0
  14. package/dist/http/cookies.js.map +1 -0
  15. package/dist/http/forms.js.map +1 -0
  16. package/dist/{group.d.ts → http/group.d.ts} +1 -1
  17. package/dist/http/group.js.map +1 -0
  18. package/dist/http/inject.js.map +1 -0
  19. package/dist/{request.d.ts → http/request.d.ts} +2 -2
  20. package/dist/{request.js → http/request.js} +28 -7
  21. package/dist/http/request.js.map +1 -0
  22. package/dist/{response.d.ts → http/response.d.ts} +2 -2
  23. package/dist/http/response.js.map +1 -0
  24. package/dist/http/schema.js.map +1 -0
  25. package/dist/{static.d.ts → http/static.d.ts} +1 -1
  26. package/dist/http/static.js.map +1 -0
  27. package/dist/index.d.ts +22 -19
  28. package/dist/index.js +11 -9
  29. package/dist/index.js.map +1 -1
  30. package/dist/{native.d.ts → native/native.d.ts} +35 -1
  31. package/dist/{native.js → native/native.js} +2 -1
  32. package/dist/native/native.js.map +1 -0
  33. package/dist/{jwt.d.ts → security/jwt.d.ts} +1 -1
  34. package/dist/{jwt.js → security/jwt.js} +1 -1
  35. package/dist/security/jwt.js.map +1 -0
  36. package/dist/{middleware.d.ts → security/middleware.d.ts} +1 -1
  37. package/dist/{middleware.js → security/middleware.js} +1 -1
  38. package/dist/security/middleware.js.map +1 -0
  39. package/dist/websocket/websocket.d.ts +64 -0
  40. package/dist/websocket/websocket.js +145 -0
  41. package/dist/websocket/websocket.js.map +1 -0
  42. package/package.json +21 -16
  43. package/dist/app.js.map +0 -1
  44. package/dist/cookies.js.map +0 -1
  45. package/dist/forms.js.map +0 -1
  46. package/dist/group.js.map +0 -1
  47. package/dist/inject.js.map +0 -1
  48. package/dist/jwt.js.map +0 -1
  49. package/dist/logger.js.map +0 -1
  50. package/dist/middleware.js.map +0 -1
  51. package/dist/native.js.map +0 -1
  52. package/dist/pipeline.js.map +0 -1
  53. package/dist/request.js.map +0 -1
  54. package/dist/response.js.map +0 -1
  55. package/dist/schema.js.map +0 -1
  56. package/dist/static.js.map +0 -1
  57. package/dist/types.js.map +0 -1
  58. /package/dist/{logger.d.ts → core/logger.d.ts} +0 -0
  59. /package/dist/{logger.js → core/logger.js} +0 -0
  60. /package/dist/{types.js → core/types.js} +0 -0
  61. /package/dist/{cookies.d.ts → http/cookies.d.ts} +0 -0
  62. /package/dist/{cookies.js → http/cookies.js} +0 -0
  63. /package/dist/{forms.d.ts → http/forms.d.ts} +0 -0
  64. /package/dist/{forms.js → http/forms.js} +0 -0
  65. /package/dist/{group.js → http/group.js} +0 -0
  66. /package/dist/{inject.d.ts → http/inject.d.ts} +0 -0
  67. /package/dist/{inject.js → http/inject.js} +0 -0
  68. /package/dist/{response.js → http/response.js} +0 -0
  69. /package/dist/{schema.d.ts → http/schema.d.ts} +0 -0
  70. /package/dist/{schema.js → http/schema.js} +0 -0
  71. /package/dist/{static.js → http/static.js} +0 -0
@@ -1,22 +1,28 @@
1
- import { RouteGroup } from "./group.js";
2
- import { type InjectOptions, type InjectResponse } from "./inject.js";
3
- import { type CorsOptions } from "./middleware.js";
4
- import { type ServerOptions } from "./native.js";
5
- import { type StaticOptions } from "./static.js";
6
- import type { BodyParser, ContentTypeParserEntry, ErrorHandler, Handler, LifecycleHook, ListenHandle, Logger, Middleware, PluginOptions, ResponseHook, RouteMethod, RouteOptions, SerializationHook, TimeoutHook, TokiOptions } from "./types.js";
7
- interface Route {
1
+ import { RouteGroup } from "../http/group.js";
2
+ import type { StaticOptions } from "../http/static.js";
3
+ import { type CorsOptions } from "../security/middleware.js";
4
+ import type { WebSocketHandler, WebSocketOptions } from "../websocket/websocket.js";
5
+ import type { Toki } from "./app.js";
6
+ import type { BodyParser, ContentTypeParserEntry, ErrorHandler, Handler, Logger, Middleware, PluginOptions, ResponseHook, RouteMethod, RouteOptions, SerializationHook, TimeoutHook } from "./types.js";
7
+ export interface Route {
8
8
  readonly method: RouteMethod;
9
9
  readonly path: string;
10
10
  readonly handler: Handler;
11
11
  readonly options: RouteOptions;
12
12
  readonly groupMiddleware: readonly Middleware[];
13
13
  readonly scope: Scope;
14
+ readonly webSocket?: {
15
+ readonly handler: WebSocketHandler;
16
+ readonly options: WebSocketOptions;
17
+ };
14
18
  }
15
- interface PluginEntry {
19
+ export interface PluginEntry {
16
20
  readonly plugin: TokiPlugin;
17
21
  readonly opts: PluginOptions;
18
22
  readonly scope: Scope;
19
23
  }
24
+ /** The registration surface a plugin receives (the application or a child scope). */
25
+ export type TokiInstance = Scope;
20
26
  /** Registers routes/hooks/decorators on the encapsulated `instance`. */
21
27
  export type TokiPlugin = (instance: TokiInstance, opts: PluginOptions) => void | Promise<void>;
22
28
  /**
@@ -58,6 +64,14 @@ export declare class Scope {
58
64
  head(path: string, handler: Handler): this;
59
65
  options(path: string, handler: Handler): this;
60
66
  route(method: RouteMethod, path: string, handler: Handler): this;
67
+ /**
68
+ * Register a WebSocket endpoint. The handler runs once per accepted connection
69
+ * with the live `TokiWebSocket` and the upgrade `TokiRequest`; attach
70
+ * `message` / `close` / `ping` / `pong` / `drain` listeners on it. A plain GET
71
+ * to the same path (no `Upgrade` header) gets a `426 Upgrade Required`.
72
+ */
73
+ ws(path: string, handler: WebSocketHandler): this;
74
+ ws(path: string, options: WebSocketOptions, handler: WebSocketHandler): this;
61
75
  /** Add middleware; runs before every handler in this scope and descendants. */
62
76
  use(middleware: Middleware): this;
63
77
  /** Register a lifecycle hook scoped to this instance. */
@@ -95,43 +109,3 @@ export declare class Scope {
95
109
  */
96
110
  register(plugin: TokiPlugin, opts?: PluginOptions): this;
97
111
  }
98
- /** The registration surface a plugin receives (the application or a child scope). */
99
- export type TokiInstance = Scope;
100
- /**
101
- * The application. Register routes (optionally with a validation schema and
102
- * route-scoped hooks), global hooks, middleware, and plugins, then
103
- * {@link Toki.listen}. The pipeline stays synchronous until a step returns a
104
- * `Promise`, keeping the common sync request on the fast path.
105
- */
106
- export declare class Toki extends Scope {
107
- #private;
108
- constructor(options?: TokiOptions);
109
- /** @internal */
110
- get _logger(): Logger;
111
- /** @internal */
112
- _pushRoute(route: Route): void;
113
- /** @internal */
114
- _decorate(name: string, value: unknown): void;
115
- /** @internal */
116
- _setNotFound(handler: Handler): void;
117
- /** @internal */
118
- _mountStatic(prefix: string, dir: string, options?: StaticOptions): void;
119
- /** Run `fn` once at {@link Toki.listen}, before serving. */
120
- onReady(fn: LifecycleHook): this;
121
- /** Run `fn` when the server closes. */
122
- onClose(fn: LifecycleHook): this;
123
- /** Load all registered plugins, awaiting async ones. Call before {@link Toki.listen}
124
- * when any plugin is async; `listen` loads sync plugins on its own. */
125
- ready(): Promise<void>;
126
- /** Bind `port` and serve. Returns a handle whose `close()` stops the server. */
127
- listen(port: number, options?: ServerOptions): ListenHandle;
128
- /**
129
- * Inject a request in-process for testing. Sends a real request over loopback so
130
- * the full native path runs, auto-binding an ephemeral port when not already
131
- * listening. Returns the captured response.
132
- */
133
- inject(options: InjectOptions | string): Promise<InjectResponse>;
134
- }
135
- /** Create a new application. */
136
- export declare function createApp(options?: TokiOptions): Toki;
137
- export {};
@@ -0,0 +1,196 @@
1
+ import { joinPaths, RouteGroup } from "../http/group.js";
2
+ import { reply } from "../http/response.js";
3
+ import { corsHeaders, corsPreflight } from "../security/middleware.js";
4
+ import { contentTypeMatcher } from "./pipeline.js";
5
+ const NO_MIDDLEWARE = [];
6
+ // a plain GET to a ws route (no Upgrade header) gets this; native handles real upgrades
7
+ const wsUpgradeRequired = () => reply.text("Upgrade Required", 426);
8
+ /**
9
+ * Encapsulated registration scope: own hooks, middleware, request decorators,
10
+ * error handler, and path prefix. Routes here run the hook chains of this scope
11
+ * and all ancestors. The root app ({@link Toki}) is itself a scope; {@link
12
+ * Scope.register} creates children.
13
+ */
14
+ export class Scope {
15
+ parent;
16
+ prefix;
17
+ onRequest = [];
18
+ preParsing = [];
19
+ middleware = [];
20
+ preValidation = [];
21
+ preHandler = [];
22
+ preSerialization = [];
23
+ onResponse = [];
24
+ onSend = [];
25
+ onTimeout = [];
26
+ requestDecorators = {};
27
+ contentTypeParsers = [];
28
+ plugins = [];
29
+ errorHandler;
30
+ constructor(parent, prefix) {
31
+ this.parent = parent;
32
+ this.prefix = prefix;
33
+ }
34
+ get root() {
35
+ return this.parent ? this.parent.root : this;
36
+ }
37
+ get log() {
38
+ return this.root._logger;
39
+ }
40
+ get(path, a, b) {
41
+ return this.#add("GET", path, a, b);
42
+ }
43
+ post(path, a, b) {
44
+ return this.#add("POST", path, a, b);
45
+ }
46
+ put(path, a, b) {
47
+ return this.#add("PUT", path, a, b);
48
+ }
49
+ patch(path, a, b) {
50
+ return this.#add("PATCH", path, a, b);
51
+ }
52
+ delete(path, a, b) {
53
+ return this.#add("DELETE", path, a, b);
54
+ }
55
+ head(path, handler) {
56
+ return this.#add("HEAD", path, handler);
57
+ }
58
+ options(path, handler) {
59
+ return this.#add("OPTIONS", path, handler);
60
+ }
61
+ route(method, path, handler) {
62
+ return this.#add(method, path, handler);
63
+ }
64
+ ws(path, a, b) {
65
+ const [options, handler] = typeof a === "function" ? [{}, a] : [a, b];
66
+ this.root._pushRoute({
67
+ method: "GET",
68
+ path: joinPaths(this.prefix, path),
69
+ handler: wsUpgradeRequired,
70
+ options: {},
71
+ groupMiddleware: NO_MIDDLEWARE,
72
+ scope: this,
73
+ webSocket: { handler, options },
74
+ });
75
+ return this;
76
+ }
77
+ #add(method, path, a, b) {
78
+ const [options, handler] = typeof a === "function" ? [{}, a] : [a, b];
79
+ this.root._pushRoute({
80
+ method,
81
+ path: joinPaths(this.prefix, path),
82
+ handler,
83
+ options,
84
+ groupMiddleware: NO_MIDDLEWARE,
85
+ scope: this,
86
+ });
87
+ return this;
88
+ }
89
+ /** Add middleware; runs before every handler in this scope and descendants. */
90
+ use(middleware) {
91
+ this.middleware.push(middleware);
92
+ return this;
93
+ }
94
+ addHook(name, fn) {
95
+ switch (name) {
96
+ case "onResponse":
97
+ this.onResponse.push(fn);
98
+ break;
99
+ case "onSend":
100
+ this.onSend.push(fn);
101
+ break;
102
+ case "preParsing":
103
+ this.preParsing.push(fn);
104
+ break;
105
+ case "preValidation":
106
+ this.preValidation.push(fn);
107
+ break;
108
+ case "preHandler":
109
+ this.preHandler.push(fn);
110
+ break;
111
+ case "preSerialization":
112
+ this.preSerialization.push(fn);
113
+ break;
114
+ case "onTimeout":
115
+ this.onTimeout.push(fn);
116
+ break;
117
+ default:
118
+ this.onRequest.push(fn);
119
+ }
120
+ return this;
121
+ }
122
+ /** Set the error handler for routes in this scope (alias: `onError`). */
123
+ setErrorHandler(handler) {
124
+ this.errorHandler = handler;
125
+ return this;
126
+ }
127
+ onError(handler) {
128
+ return this.setErrorHandler(handler);
129
+ }
130
+ /** Attach a property to every request handled in this scope. */
131
+ decorateRequest(name, value) {
132
+ this.requestDecorators[name] = value;
133
+ return this;
134
+ }
135
+ /**
136
+ * Register a body parser for one or more content types, consulted by
137
+ * `req.parseBody()`. `type` matches case-insensitively as a prefix (e.g.
138
+ * `"application/xml"`), a `RegExp`, or `"*"` for any. A child scope overrides
139
+ * an ancestor for the same type.
140
+ */
141
+ addContentTypeParser(type, parser) {
142
+ const tests = Array.isArray(type) ? type : [type];
143
+ for (const t of tests) {
144
+ this.contentTypeParsers.push({ test: contentTypeMatcher(t), parser });
145
+ }
146
+ return this;
147
+ }
148
+ /** Attach a property to the application instance (app-global, not encapsulated). */
149
+ decorate(name, value) {
150
+ this.root._decorate(name, value);
151
+ return this;
152
+ }
153
+ /** Set the handler for unmatched routes (app-global). */
154
+ setNotFoundHandler(handler) {
155
+ this.root._setNotFound(handler);
156
+ return this;
157
+ }
158
+ /** Enable CORS: stage headers on every response and answer preflight `OPTIONS`. */
159
+ cors(options = {}) {
160
+ this.use(corsHeaders(options));
161
+ this.options("/*", corsPreflight(options));
162
+ return this;
163
+ }
164
+ /** Serve files under `dir` at `urlPrefix` (joined with this scope's prefix). */
165
+ static(urlPrefix, dir, options) {
166
+ this.root._mountStatic(joinPaths(this.prefix, urlPrefix), dir, options);
167
+ return this;
168
+ }
169
+ /** Register a prefixed group of routes with its own middleware. */
170
+ group(prefix, build) {
171
+ const group = new RouteGroup(prefix, (method, path, handler, middleware) => {
172
+ this.root._pushRoute({
173
+ method,
174
+ path: joinPaths(this.prefix, path),
175
+ handler,
176
+ options: {},
177
+ groupMiddleware: middleware,
178
+ scope: this,
179
+ });
180
+ });
181
+ build(group);
182
+ return this;
183
+ }
184
+ /**
185
+ * Register a plugin into a fresh child scope. The plugin receives that scope as
186
+ * its `instance`; routes/hooks/decorators it adds are encapsulated there (and
187
+ * inherited by its own children), not leaked to the parent. Async plugins load
188
+ * during {@link Toki.ready}. `opts.prefix` mounts the plugin's routes under a path.
189
+ */
190
+ register(plugin, opts = {}) {
191
+ const prefix = joinPaths(this.prefix, typeof opts.prefix === "string" ? opts.prefix : "/");
192
+ this.plugins.push({ plugin, opts, scope: new Scope(this, prefix) });
193
+ return this;
194
+ }
195
+ }
196
+ //# sourceMappingURL=scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../ts/core/scope.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { TokiRequest } from "./request.js";
2
- import type { RouteSchema } from "./schema.js";
1
+ import type { TokiRequest } from "../http/request.js";
2
+ import type { RouteSchema } from "../http/schema.js";
3
3
  /** Methods toki routes natively. Any token is accepted via {@link Toki.route}. */
4
4
  export type RouteMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
5
- /** A plain value a handler may return; it is sent as JSON (validated by the response schema). */
5
+ /** A plain value a handler may return; sent as JSON (serialized via the response schema when one is set). */
6
6
  export type JsonResult = Record<string, unknown> | unknown[] | number | boolean | null;
7
7
  /** Handler response; build with {@link reply}. Engine adds the status line, `Content-Length`, `Connection`. */
8
8
  export interface TokiResponse {
@@ -84,5 +84,7 @@ export interface TokiOptions {
84
84
  }
85
85
  /** Returned by `listen`; `close()` stops the server. */
86
86
  export interface ListenHandle {
87
+ /** the port the server bound to — resolves `0` to the OS-assigned port */
88
+ readonly port: number;
87
89
  close(): void;
88
90
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../ts/core/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../ts/http/cookies.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAE5C,qFAAqF;AACrF,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,GAAG,GAAuC,EAAE,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YACrC,SAAS;QACX,CAAC;QACD,IAAI,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa,EAAE,UAAyB,EAAE;IACtF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,SAAS,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,GAAG,GAAG,IAAI,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IACpD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,IAAI,UAAU,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;IAC1C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,UAAU,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,eAAe,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,cAAc,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../ts/http/forms.ts"],"names":[],"mappings":"AAcA,yEAAyE;AACzE,MAAM,UAAU,SAAS,CAAC,WAAmB,EAAE,IAAgB;IAC7D,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,IAAI,CAAC,UAAU,CAAC,mCAAmC,CAAC,EAAE,CAAC;QACzD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,IAAgB;IACvC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAE3C,SAAS,cAAc,CAAC,IAAgB,EAAE,QAAgB;IACxD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;IAC/C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC;QACxB,yCAAyC;QACzC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM;QACR,CAAC;QACD,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM;QACR,CAAC;QACD,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;QAChD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;YAChB,MAAM;QACR,CAAC;QACD,8DAA8D;QAC9D,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,WAAW,GACf,6BAA6B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,0BAA0B,CAAC;YACpF,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,GAAG,GAAG,IAAI,CAAC;IACb,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Handler, Middleware, RouteMethod } from "./types.js";
1
+ import type { Handler, Middleware, RouteMethod } from "../core/types.js";
2
2
  export declare function joinPaths(prefix: string, path: string): string;
3
3
  type RegisterRoute = (method: RouteMethod, path: string, handler: Handler, middleware: Middleware[]) => void;
4
4
  /** Prefixed route group; its middleware runs after the app's. */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../ts/http/group.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,IAAY;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACvD,OAAO,GAAG,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC;AAClC,CAAC;AASD,iEAAiE;AACjE,MAAM,OAAO,UAAU;IACZ,OAAO,CAAS;IAChB,SAAS,CAAgB;IAClC,0EAA0E;IAC1E,+BAA+B;IACtB,WAAW,GAAiB,EAAE,CAAC;IAExC,YAAY,MAAc,EAAE,QAAuB;QACjD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,2CAA2C;IAC3C,GAAG,CAAC,UAAsB;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,OAAgB;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,IAAY,EAAE,OAAgB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,GAAG,CAAC,IAAY,EAAE,OAAgB;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,CAAC,IAAY,EAAE,OAAgB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,CAAC,IAAY,EAAE,OAAgB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,IAAY,EAAE,OAAgB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,IAAY,EAAE,OAAgB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,MAAmB,EAAE,IAAY,EAAE,OAAgB;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,MAAmB,EAAE,IAAY,EAAE,OAAgB;QACtD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../ts/http/inject.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type CookieOptions } from "./cookies.js";
2
2
  import { type ParsedForm } from "./forms.js";
3
- import type { NativeRequest } from "./native.js";
4
- import type { ContentTypeParserEntry, Logger, RouteMethod } from "./types.js";
3
+ import type { NativeRequest } from "../native/native.js";
4
+ import type { ContentTypeParserEntry, Logger, RouteMethod } from "../core/types.js";
5
5
  /** Per-request context the dispatcher supplies; kept off the hot fields. */
6
6
  interface RequestContext {
7
7
  readonly log: Logger;
@@ -1,8 +1,10 @@
1
1
  import { parseCookies, serializeCookie } from "./cookies.js";
2
2
  import { parseForm } from "./forms.js";
3
- import { silentLogger } from "./logger.js";
3
+ import { silentLogger } from "../core/logger.js";
4
4
  let sequence = 0;
5
5
  const NO_PARSERS = [];
6
+ // one decoder for every body read; TextDecoder is stateless across decode() calls
7
+ const decoder = new TextDecoder();
6
8
  /**
7
9
  * An incoming request handed to a handler. Query/headers parsed lazily.
8
10
  * Backed by an engine-owned buffer — valid only during the handler call;
@@ -33,13 +35,32 @@ export class TokiRequest {
33
35
  }
34
36
  /** The request host (from the `Host` header), without the port. */
35
37
  get hostname() {
36
- const host = this.headers.get("host") ?? "";
38
+ const host = this.#header("host") ?? "";
37
39
  const colon = host.lastIndexOf(":");
38
40
  return colon === -1 ? host : host.slice(0, colon);
39
41
  }
40
42
  /** `"https"` when forwarded as such by a proxy, else `"http"`. */
41
43
  get protocol() {
42
- return this.headers.get("x-forwarded-proto") ?? "http";
44
+ return this.#header("x-forwarded-proto") ?? "http";
45
+ }
46
+ // Look up one header by lowercased name without building the full Headers object.
47
+ // The common getters (host, cookie, content-type) read a single header, so this
48
+ // keeps them off the Headers-construction path; `req.headers` stays a real Headers.
49
+ #header(name) {
50
+ const raw = this.#raw.rawHeaders;
51
+ let i = 0;
52
+ while (i < raw.length) {
53
+ const nl = raw.indexOf("\r\n", i);
54
+ const end = nl === -1 ? raw.length : nl;
55
+ const colon = raw.indexOf(":", i);
56
+ if (colon !== -1 && colon < end && raw.slice(i, colon).toLowerCase() === name) {
57
+ return raw.slice(colon + 1, end).trimStart();
58
+ }
59
+ if (nl === -1)
60
+ break;
61
+ i = nl + 2;
62
+ }
63
+ return null;
43
64
  }
44
65
  #id;
45
66
  #params;
@@ -97,7 +118,7 @@ export class TokiRequest {
97
118
  /** Cookies parsed from the `Cookie` header; an absent key reads as `undefined`. */
98
119
  get cookies() {
99
120
  if (this.#cookies === undefined) {
100
- const header = this.headers.get("cookie");
121
+ const header = this.#header("cookie");
101
122
  this.#cookies = header ? parseCookies(header) : Object.freeze({});
102
123
  }
103
124
  return this.#cookies;
@@ -116,7 +137,7 @@ export class TokiRequest {
116
137
  }
117
138
  /** Decode the body as UTF-8 text, or `""` when there is none. */
118
139
  text() {
119
- return this.body ? new TextDecoder().decode(this.body) : "";
140
+ return this.body ? decoder.decode(this.body) : "";
120
141
  }
121
142
  /** Parse the body as JSON. `T` is an unchecked assertion; throws on malformed input. */
122
143
  json() {
@@ -126,7 +147,7 @@ export class TokiRequest {
126
147
  /** Body parsed as a form (urlencoded/multipart); null for any other content type. */
127
148
  get form() {
128
149
  if (this.#form === undefined) {
129
- this.#form = this.body ? parseForm(this.headers.get("content-type") ?? "", this.body) : null;
150
+ this.#form = this.body ? parseForm(this.#header("content-type") ?? "", this.body) : null;
130
151
  }
131
152
  return this.#form;
132
153
  }
@@ -148,7 +169,7 @@ export class TokiRequest {
148
169
  if (!body) {
149
170
  return undefined;
150
171
  }
151
- const contentType = (this.headers.get("content-type") ?? "").toLowerCase();
172
+ const contentType = (this.#header("content-type") ?? "").toLowerCase();
152
173
  for (const entry of this.#parsers) {
153
174
  if (entry.test(contentType)) {
154
175
  return entry.parser(this, body);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../ts/http/request.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { NativeResponse } from "./native.js";
2
- import type { HandlerResult, StreamResponse, StreamSource, TokiResponse } from "./types.js";
1
+ import type { NativeResponse } from "../native/native.js";
2
+ import type { HandlerResult, StreamResponse, StreamSource, TokiResponse } from "../core/types.js";
3
3
  type StagedHeaders = ReadonlyArray<readonly [string, string]>;
4
4
  export declare function isTokiResponse(value: unknown): value is TokiResponse;
5
5
  export declare function isStreamResponse(value: unknown): value is StreamResponse;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../ts/http/response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../ts/http/schema.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { StaticEntry } from "./native.js";
1
+ import type { StaticEntry } from "../native/native.js";
2
2
  /** Options for {@link Toki.static}. */
3
3
  export interface StaticOptions {
4
4
  /** `Cache-Control` for served files. Default `"public, max-age=3600"`. */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.js","sourceRoot":"","sources":["../../ts/http/static.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,19 +1,22 @@
1
- export { createApp, Scope, Toki } from "./app.js";
2
- export type { TokiInstance, TokiPlugin } from "./app.js";
3
- export { RouteGroup } from "./group.js";
4
- export type { InjectOptions, InjectResponse } from "./inject.js";
5
- export { TokiRequest } from "./request.js";
6
- export { reply } from "./response.js";
7
- export { parseCookies, serializeCookie } from "./cookies.js";
8
- export type { CookieOptions } from "./cookies.js";
9
- export { createConsoleLogger, silentLogger } from "./logger.js";
10
- export { compression, corsHeaders, corsPreflight, securityHeaders } from "./middleware.js";
11
- export type { CompressionOptions, CorsOptions, SecurityOptions } from "./middleware.js";
12
- export { serialize, validate } from "./schema.js";
13
- export type { ErrorMessages, JSONSchema, RouteSchema } from "./schema.js";
14
- export { JwtError, jwtAuth, signJwt, verifyJwt } from "./jwt.js";
15
- export type { JwtAlgorithm, JwtAuthOptions, JwtPayload, SignOptions, VerifyOptions, } from "./jwt.js";
16
- export type { FormFile, ParsedForm } from "./forms.js";
17
- export type { StaticOptions } from "./static.js";
18
- export type { ServerOptions } from "./native.js";
19
- export type { BodyParser, ContentTypeParserEntry, ErrorHandler, Handler, HandlerResult, HookName, JsonResult, LifecycleHook, ListenHandle, Logger, LogLevel, Middleware, PluginOptions, ResponseHook, RouteMethod, RouteOptions, SerializationHook, StreamResponse, StreamSource, TokiOptions, TokiResponse, } from "./types.js";
1
+ export { createApp, Toki } from "./core/app.js";
2
+ export { Scope } from "./core/scope.js";
3
+ export type { TokiInstance, TokiPlugin } from "./core/scope.js";
4
+ export { RouteGroup } from "./http/group.js";
5
+ export type { InjectOptions, InjectResponse } from "./http/inject.js";
6
+ export { TokiRequest } from "./http/request.js";
7
+ export { reply } from "./http/response.js";
8
+ export { parseCookies, serializeCookie } from "./http/cookies.js";
9
+ export type { CookieOptions } from "./http/cookies.js";
10
+ export { createConsoleLogger, silentLogger } from "./core/logger.js";
11
+ export { compression, corsHeaders, corsPreflight, securityHeaders } from "./security/middleware.js";
12
+ export type { CompressionOptions, CorsOptions, SecurityOptions } from "./security/middleware.js";
13
+ export { serialize, validate } from "./http/schema.js";
14
+ export type { ErrorMessages, JSONSchema, RouteSchema } from "./http/schema.js";
15
+ export { JwtError, jwtAuth, signJwt, verifyJwt } from "./security/jwt.js";
16
+ export type { JwtAlgorithm, JwtAuthOptions, JwtPayload, SignOptions, VerifyOptions, } from "./security/jwt.js";
17
+ export type { FormFile, ParsedForm } from "./http/forms.js";
18
+ export type { StaticOptions } from "./http/static.js";
19
+ export type { ServerOptions } from "./native/native.js";
20
+ export { TokiWebSocket } from "./websocket/websocket.js";
21
+ export type { BufferListener, CloseListener, DrainListener, MessageListener, WebSocketHandler, WebSocketOptions, } from "./websocket/websocket.js";
22
+ export type { BodyParser, ContentTypeParserEntry, ErrorHandler, Handler, HandlerResult, HookName, JsonResult, LifecycleHook, ListenHandle, Logger, LogLevel, Middleware, PluginOptions, ResponseHook, RouteMethod, RouteOptions, SerializationHook, StreamResponse, StreamSource, TokiOptions, TokiResponse, } from "./core/types.js";
package/dist/index.js CHANGED
@@ -1,11 +1,13 @@
1
1
  // Public API surface.
2
- export { createApp, Scope, Toki } from "./app.js";
3
- export { RouteGroup } from "./group.js";
4
- export { TokiRequest } from "./request.js";
5
- export { reply } from "./response.js";
6
- export { parseCookies, serializeCookie } from "./cookies.js";
7
- export { createConsoleLogger, silentLogger } from "./logger.js";
8
- export { compression, corsHeaders, corsPreflight, securityHeaders } from "./middleware.js";
9
- export { serialize, validate } from "./schema.js";
10
- export { JwtError, jwtAuth, signJwt, verifyJwt } from "./jwt.js";
2
+ export { createApp, Toki } from "./core/app.js";
3
+ export { Scope } from "./core/scope.js";
4
+ export { RouteGroup } from "./http/group.js";
5
+ export { TokiRequest } from "./http/request.js";
6
+ export { reply } from "./http/response.js";
7
+ export { parseCookies, serializeCookie } from "./http/cookies.js";
8
+ export { createConsoleLogger, silentLogger } from "./core/logger.js";
9
+ export { compression, corsHeaders, corsPreflight, securityHeaders } from "./security/middleware.js";
10
+ export { serialize, validate } from "./http/schema.js";
11
+ export { JwtError, jwtAuth, signJwt, verifyJwt } from "./security/jwt.js";
12
+ export { TokiWebSocket } from "./websocket/websocket.js";
11
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEpG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAW1E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}