@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.
- package/LICENSE +21 -0
- package/README.md +144 -2
- package/dist/application/application.d.ts +172 -0
- package/dist/application/application.d.ts.map +1 -0
- package/dist/application/application.js +1862 -0
- package/dist/application/application.js.map +1 -0
- package/dist/application/inject-body.d.ts +58 -0
- package/dist/application/inject-body.d.ts.map +1 -0
- package/dist/application/inject-body.js +82 -0
- package/dist/application/inject-body.js.map +1 -0
- package/dist/context/request-context.d.ts +32 -0
- package/dist/context/request-context.d.ts.map +1 -0
- package/dist/context/request-context.js +136 -0
- package/dist/context/request-context.js.map +1 -0
- package/dist/context/response.d.ts +60 -0
- package/dist/context/response.d.ts.map +1 -0
- package/dist/context/response.js +193 -0
- package/dist/context/response.js.map +1 -0
- package/dist/diagnostics/buffer.d.ts +143 -0
- package/dist/diagnostics/buffer.d.ts.map +1 -0
- package/dist/diagnostics/buffer.js +185 -0
- package/dist/diagnostics/buffer.js.map +1 -0
- package/dist/diagnostics/collector.d.ts +284 -0
- package/dist/diagnostics/collector.d.ts.map +1 -0
- package/dist/diagnostics/collector.js +812 -0
- package/dist/diagnostics/collector.js.map +1 -0
- package/dist/diagnostics/projection.d.ts +153 -0
- package/dist/diagnostics/projection.d.ts.map +1 -0
- package/dist/diagnostics/projection.js +226 -0
- package/dist/diagnostics/projection.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle/lifecycle-manager.d.ts +136 -0
- package/dist/lifecycle/lifecycle-manager.d.ts.map +1 -0
- package/dist/lifecycle/lifecycle-manager.js +206 -0
- package/dist/lifecycle/lifecycle-manager.js.map +1 -0
- package/dist/pipeline/execute-chain.d.ts +71 -0
- package/dist/pipeline/execute-chain.d.ts.map +1 -0
- package/dist/pipeline/execute-chain.js +104 -0
- package/dist/pipeline/execute-chain.js.map +1 -0
- package/dist/pipeline/middleware-pipeline.d.ts +68 -0
- package/dist/pipeline/middleware-pipeline.d.ts.map +1 -0
- package/dist/pipeline/middleware-pipeline.js +82 -0
- package/dist/pipeline/middleware-pipeline.js.map +1 -0
- package/dist/registry/plugin-resolver.d.ts +42 -0
- package/dist/registry/plugin-resolver.d.ts.map +1 -0
- package/dist/registry/plugin-resolver.js +140 -0
- package/dist/registry/plugin-resolver.js.map +1 -0
- package/dist/registry/service-registry.d.ts +110 -0
- package/dist/registry/service-registry.d.ts.map +1 -0
- package/dist/registry/service-registry.js +197 -0
- package/dist/registry/service-registry.js.map +1 -0
- package/dist/router/route-matcher.d.ts +85 -0
- package/dist/router/route-matcher.d.ts.map +1 -0
- package/dist/router/route-matcher.js +102 -0
- package/dist/router/route-matcher.js.map +1 -0
- package/dist/router/router.d.ts +130 -0
- package/dist/router/router.d.ts.map +1 -0
- package/dist/router/router.js +350 -0
- package/dist/router/router.js.map +1 -0
- package/package.json +48 -3
- package/src/application/application.ts +2299 -0
- package/src/application/inject-body.ts +131 -0
- package/src/context/request-context.ts +169 -0
- package/src/context/response.ts +254 -0
- package/src/diagnostics/buffer.ts +241 -0
- package/src/diagnostics/collector.ts +1031 -0
- package/src/diagnostics/projection.ts +322 -0
- package/src/index.ts +20 -0
- package/src/lifecycle/lifecycle-manager.ts +287 -0
- package/src/pipeline/execute-chain.ts +164 -0
- package/src/pipeline/middleware-pipeline.ts +131 -0
- package/src/registry/plugin-resolver.ts +185 -0
- package/src/registry/service-registry.ts +267 -0
- package/src/router/route-matcher.ts +131 -0
- package/src/router/router.ts +485 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagnostics collector — the kernel-owned writer and the public pull-only
|
|
3
|
+
* reader behind `IApplication.diagnostics`.
|
|
4
|
+
*
|
|
5
|
+
* Ownership is the whole design: only the kernel implementation writes here,
|
|
6
|
+
* at its own registration and execution boundaries, projecting bounded
|
|
7
|
+
* primitives captured once at the owning mutation. The reader offers exactly
|
|
8
|
+
* `snapshot()` and `read()` — neither can register a callback, invoke
|
|
9
|
+
* application code, resolve a service, or mutate state — so an external
|
|
10
|
+
* reader can be slow, stop polling, or throw after reading without any effect
|
|
11
|
+
* on the application.
|
|
12
|
+
*
|
|
13
|
+
* Every mutation and execution call site passes through {@linkcode
|
|
14
|
+
* DiagnosticsCollector.safeObserve}: an inspection failure must never change a
|
|
15
|
+
* response, a lifecycle result, or a startup error. An event-capture failure
|
|
16
|
+
* drops the record, increments a value-free counter, and disables further
|
|
17
|
+
* event capture; a topology-capture failure drops that entry and marks the
|
|
18
|
+
* snapshot truncated.
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
import type { DiagnosticsBatch, DiagnosticsEventKind, DiagnosticsEventOutcome, DiagnosticsEventStage, DiagnosticsSnapshot, IDiagnosticsSource } from '@setu-ts/common';
|
|
23
|
+
import type { RouteRegistrationEvent } from '../router/router.ts';
|
|
24
|
+
import type { RegistryDiagnosticEvent } from '../registry/service-registry.ts';
|
|
25
|
+
import type { DiagnosticsLabelAllowlists } from './projection.ts';
|
|
26
|
+
/** Capture-time description of one plugin, taken at its registration boundary. */
|
|
27
|
+
export interface PluginRegistrationInfo {
|
|
28
|
+
/** The plugin's declared `name`. */
|
|
29
|
+
readonly name: string;
|
|
30
|
+
/** The plugin's declared `version`, emitted only when it passes the bounded grammar. */
|
|
31
|
+
readonly version: string;
|
|
32
|
+
/** Declared `provides` tokens. */
|
|
33
|
+
readonly provides: readonly string[];
|
|
34
|
+
/** Declared `requires` tokens. */
|
|
35
|
+
readonly requires: readonly string[];
|
|
36
|
+
/** Declared `optionalDependencies` tokens. */
|
|
37
|
+
readonly optionalDependencies: readonly string[];
|
|
38
|
+
/** Declared `consumes` tokens. */
|
|
39
|
+
readonly consumes: readonly string[];
|
|
40
|
+
}
|
|
41
|
+
/** Capture-time description of one global middleware stage, in execution order. */
|
|
42
|
+
export interface MiddlewareCompiledDescriptor {
|
|
43
|
+
readonly name: string;
|
|
44
|
+
readonly priority: number;
|
|
45
|
+
/** 1-based execution position in the stable priority sort. */
|
|
46
|
+
readonly position: number;
|
|
47
|
+
}
|
|
48
|
+
/** An operation allocated at entry, linking later records to their parent. */
|
|
49
|
+
export interface DiagnosticsOperation {
|
|
50
|
+
readonly id: string;
|
|
51
|
+
readonly startedAtMs: number | null;
|
|
52
|
+
}
|
|
53
|
+
/** Parts of one completion record the collector turns into a stored event. */
|
|
54
|
+
export interface CompletionRecordParts {
|
|
55
|
+
readonly kind: DiagnosticsEventKind;
|
|
56
|
+
readonly stage: DiagnosticsEventStage;
|
|
57
|
+
readonly operationId: string;
|
|
58
|
+
readonly parentOperationId: string | null;
|
|
59
|
+
readonly nodeId: string | null;
|
|
60
|
+
readonly outcome: DiagnosticsEventOutcome;
|
|
61
|
+
readonly startedAtMs: number | null;
|
|
62
|
+
readonly durationMs: number | null;
|
|
63
|
+
readonly statusCode?: number;
|
|
64
|
+
/** Whether the record may carry validated trace/span identifiers. */
|
|
65
|
+
readonly withTrace?: boolean;
|
|
66
|
+
}
|
|
67
|
+
/** The slice of `ITelemetryService` the collector reads, kept structural. */
|
|
68
|
+
interface TraceReadingTelemetry {
|
|
69
|
+
activeSpanContext?(): {
|
|
70
|
+
readonly traceId: string;
|
|
71
|
+
readonly spanId: string;
|
|
72
|
+
} | undefined;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The collector. Instantiated ONLY when the application was created with
|
|
76
|
+
* `diagnostics` explicitly enabled; an omitted option never constructs one.
|
|
77
|
+
* @since 0.8.0
|
|
78
|
+
*/
|
|
79
|
+
export declare class DiagnosticsCollector implements IDiagnosticsSource {
|
|
80
|
+
#private;
|
|
81
|
+
constructor(labels: DiagnosticsLabelAllowlists);
|
|
82
|
+
/** @inheritDoc */
|
|
83
|
+
snapshot(): DiagnosticsSnapshot;
|
|
84
|
+
/** @inheritDoc */
|
|
85
|
+
read(after: number, limit?: number): DiagnosticsBatch;
|
|
86
|
+
/**
|
|
87
|
+
* Application start has begun. A start following a FAILED start resets the
|
|
88
|
+
* reader for the new attempt — the kernel rolls its own `#started` back so
|
|
89
|
+
* a start that failed before any plugin registered can be corrected and
|
|
90
|
+
* retried, and the reader must not keep
|
|
91
|
+
* reporting `failed` for a process that is starting (or later serving)
|
|
92
|
+
* again. The failed attempt's retained metadata was already cleared by
|
|
93
|
+
* `markStartupFailed`, so the reset recovers nothing sensitive; `closed`
|
|
94
|
+
* remains absolute (a stopped application never restarts its reader).
|
|
95
|
+
*/
|
|
96
|
+
markStarting(): void;
|
|
97
|
+
/** Startup completed; the application is serving. */
|
|
98
|
+
markRunning(): void;
|
|
99
|
+
/** Shutdown has begun; the application is about to refuse requests. */
|
|
100
|
+
markStopping(): void;
|
|
101
|
+
/**
|
|
102
|
+
* Startup failed. Terminal: clears every retained node/edge/event buffer
|
|
103
|
+
* while preserving the caller's original error, so a reader sees only the
|
|
104
|
+
* coarse state, the failure code, and counters.
|
|
105
|
+
*/
|
|
106
|
+
markStartupFailed(): void;
|
|
107
|
+
/**
|
|
108
|
+
* Shutdown finished (successfully or not). Terminal, like
|
|
109
|
+
* {@linkcode markStartupFailed}: retained buffers are cleared regardless of
|
|
110
|
+
* the outcome.
|
|
111
|
+
*
|
|
112
|
+
* @param shutdownFailed - `true` when a shutdown-phase hook rejected
|
|
113
|
+
*/
|
|
114
|
+
markClosed(shutdownFailed: boolean): void;
|
|
115
|
+
/**
|
|
116
|
+
* Records runtime availability: the monotonic origin starts here and the
|
|
117
|
+
* instance UUID is generated once, through the registered runtime. Both are
|
|
118
|
+
* guarded — a failing runtime reports as unavailable (`null` timings, `null`
|
|
119
|
+
* instanceId) rather than turning startup into a diagnostics fault. Before
|
|
120
|
+
* this call, every timing is `null` and none is ever fabricated.
|
|
121
|
+
*
|
|
122
|
+
* @param runtime - The registered runtime services
|
|
123
|
+
* @param telemetryReader - Resolves the telemetry service WITHOUT resolving
|
|
124
|
+
* a lazy factory; `undefined` identifiers are reported as absence
|
|
125
|
+
*/
|
|
126
|
+
initializeRuntime(runtime: {
|
|
127
|
+
readonly uuid: () => string;
|
|
128
|
+
readonly hrtime: () => number;
|
|
129
|
+
}, telemetryReader: (() => TraceReadingTelemetry | undefined) | undefined): void;
|
|
130
|
+
/**
|
|
131
|
+
* The one inspection boundary every capture passes through. An event-scope
|
|
132
|
+
* failure disables further event capture after saturating the drop counter;
|
|
133
|
+
* a topology-scope failure drops that entry and marks the snapshot
|
|
134
|
+
* truncated. Neither can propagate: an inspection failure must not change a
|
|
135
|
+
* response, a lifecycle result, or a startup error.
|
|
136
|
+
*
|
|
137
|
+
* @param scope - Which capture family the callback belongs to
|
|
138
|
+
* @param emit - The capture work
|
|
139
|
+
* @returns The callback's value, or `undefined` when it failed
|
|
140
|
+
*/
|
|
141
|
+
safeObserve<T>(scope: 'event' | 'topology', emit: () => T): T | undefined;
|
|
142
|
+
/** Guarded monotonic offset in ms from runtime initialization, or `null`. */
|
|
143
|
+
monotonicMs(): number | null;
|
|
144
|
+
/**
|
|
145
|
+
* Captures one plugin at its registration boundary: the node plus its
|
|
146
|
+
* DECLARED dependency edges. Names are projected through the allowlists
|
|
147
|
+
* here, at capture — the collector never stores a label that was not
|
|
148
|
+
* explicitly approved.
|
|
149
|
+
*
|
|
150
|
+
* @param info - The declared plugin description
|
|
151
|
+
* @returns The plugin node id, or `undefined` when the capture was dropped
|
|
152
|
+
*/
|
|
153
|
+
pluginRegistered(info: PluginRegistrationInfo): string | undefined;
|
|
154
|
+
/**
|
|
155
|
+
* Observes a successful registry registration (instance, factory, or
|
|
156
|
+
* multi-provider) or removal, using token metadata alone. The registry's
|
|
157
|
+
* existing logging observer is untouched.
|
|
158
|
+
*
|
|
159
|
+
* @param event - The registry's registration event
|
|
160
|
+
* @param owner - The plugin whose `register()` was running, when known
|
|
161
|
+
*/
|
|
162
|
+
capabilityRegistrationObserved(event: RegistryDiagnosticEvent, owner: string | undefined): void;
|
|
163
|
+
/**
|
|
164
|
+
* Captures one route registration with its route-middleware nodes.
|
|
165
|
+
*
|
|
166
|
+
* @param event - The router's registration event
|
|
167
|
+
* @returns The route node id, or `undefined` when the capture was dropped
|
|
168
|
+
*/
|
|
169
|
+
routeRegistered(event: RouteRegistrationEvent): string | undefined;
|
|
170
|
+
/**
|
|
171
|
+
* Captures the compiled global pipeline in execution order — the stable
|
|
172
|
+
* priority sort — so middleware stage records can name their node.
|
|
173
|
+
*
|
|
174
|
+
* @param descriptors - The compiled stages, in execution order
|
|
175
|
+
*/
|
|
176
|
+
middlewareCompiled(descriptors: readonly MiddlewareCompiledDescriptor[]): void;
|
|
177
|
+
/** Route node id for a router entry index, when that route was captured. */
|
|
178
|
+
routeNodeIdOf(entryIndex: number): string | undefined;
|
|
179
|
+
/**
|
|
180
|
+
* Allocates an operation root at entry. The identifier exists before any
|
|
181
|
+
* record is written, so a child may reference a parent whose completion
|
|
182
|
+
* record appears later.
|
|
183
|
+
*
|
|
184
|
+
* @returns The operation handle
|
|
185
|
+
*/
|
|
186
|
+
beginOperation(): DiagnosticsOperation;
|
|
187
|
+
/**
|
|
188
|
+
* Allocates the request operation for a context, stored in a private
|
|
189
|
+
* WeakMap — never in application state, never a caller-supplied id.
|
|
190
|
+
*
|
|
191
|
+
* @param ctx - The request context keying the operation
|
|
192
|
+
*/
|
|
193
|
+
beginRequestOperation(ctx: object): void;
|
|
194
|
+
/**
|
|
195
|
+
* Emits the request operation's completion record.
|
|
196
|
+
*
|
|
197
|
+
* @param ctx - The request context keying the operation
|
|
198
|
+
* @param parts - Outcome and the produced status code
|
|
199
|
+
*/
|
|
200
|
+
endRequestOperation(ctx: object, parts: {
|
|
201
|
+
outcome: DiagnosticsEventOutcome;
|
|
202
|
+
statusCode?: number;
|
|
203
|
+
}): void;
|
|
204
|
+
/**
|
|
205
|
+
* Emits one middleware stage completion record (global or route chain).
|
|
206
|
+
*
|
|
207
|
+
* @param parts - The stage observation from the chain executor
|
|
208
|
+
*/
|
|
209
|
+
observeMiddlewareStage(parts: {
|
|
210
|
+
parentOperationId: string;
|
|
211
|
+
scope: 'global' | 'route';
|
|
212
|
+
position: number;
|
|
213
|
+
routeEntryIndex: number | undefined;
|
|
214
|
+
outcome: DiagnosticsEventOutcome;
|
|
215
|
+
startedAtMs: number | null;
|
|
216
|
+
durationMs: number | null;
|
|
217
|
+
}): void;
|
|
218
|
+
/**
|
|
219
|
+
* Emits one handler or protocol-boundary completion record.
|
|
220
|
+
*
|
|
221
|
+
* @param parts - The handler observation
|
|
222
|
+
*/
|
|
223
|
+
observeHandlerStage(parts: {
|
|
224
|
+
parentOperationId: string;
|
|
225
|
+
stage: 'handler' | 'websocket-upgrade' | 'grpc-dispatch';
|
|
226
|
+
nodeId: string | null;
|
|
227
|
+
outcome: DiagnosticsEventOutcome;
|
|
228
|
+
startedAtMs: number | null;
|
|
229
|
+
durationMs: number | null;
|
|
230
|
+
statusCode?: number;
|
|
231
|
+
}): void;
|
|
232
|
+
/**
|
|
233
|
+
* Emits one request-scoped hook completion record (`request-hook`,
|
|
234
|
+
* `response-hook`, `error-hook`).
|
|
235
|
+
*
|
|
236
|
+
* @param parts - The hook observation
|
|
237
|
+
*/
|
|
238
|
+
observeRequestStage(parts: {
|
|
239
|
+
parentOperationId: string;
|
|
240
|
+
stage: 'request-hook' | 'response-hook' | 'error-hook';
|
|
241
|
+
outcome: DiagnosticsEventOutcome;
|
|
242
|
+
startedAtMs: number | null;
|
|
243
|
+
durationMs: number | null;
|
|
244
|
+
}): void;
|
|
245
|
+
/**
|
|
246
|
+
* Emits one lifecycle completion record for an operation allocated at entry
|
|
247
|
+
* with {@linkcode beginOperation}.
|
|
248
|
+
*
|
|
249
|
+
* @param operation - The operation allocated at the boundary's entry
|
|
250
|
+
* @param stage - The lifecycle boundary that completed
|
|
251
|
+
* @param nodeId - The plugin node the boundary belongs to, when known
|
|
252
|
+
* @param outcome - How the boundary completed
|
|
253
|
+
*/
|
|
254
|
+
observeLifecycleEvent(operation: DiagnosticsOperation, stage: DiagnosticsEventStage, nodeId: string | null, outcome: DiagnosticsEventOutcome): void;
|
|
255
|
+
/**
|
|
256
|
+
* Emits one per-hook lifecycle record observed by the lifecycle manager —
|
|
257
|
+
* fixed phase plus execution ordinal, never an inferred owner.
|
|
258
|
+
*
|
|
259
|
+
* @param observation - The manager's hook observation
|
|
260
|
+
*/
|
|
261
|
+
observeLifecycleHook(observation: {
|
|
262
|
+
phase: 'register-hook' | 'init' | 'bootstrap' | 'stopping' | 'shutdown' | 'close';
|
|
263
|
+
ordinal: number;
|
|
264
|
+
failed: boolean;
|
|
265
|
+
startedAtMs: number | null;
|
|
266
|
+
durationMs: number | null;
|
|
267
|
+
}): void;
|
|
268
|
+
/**
|
|
269
|
+
* The request operation identifier keyed to a context, when one exists.
|
|
270
|
+
*
|
|
271
|
+
* @param ctx - The request context the operation was keyed under
|
|
272
|
+
* @returns The operation id, or `undefined`
|
|
273
|
+
*/
|
|
274
|
+
requestOperationIdOf(ctx: object): string | undefined;
|
|
275
|
+
/**
|
|
276
|
+
* Inclusive monotonic elapsed time since a recorded start offset.
|
|
277
|
+
*
|
|
278
|
+
* @param startedAtMs - The recorded start offset, or `null`
|
|
279
|
+
* @returns Elapsed ms, or `null` when either reading was unavailable
|
|
280
|
+
*/
|
|
281
|
+
elapsedSince(startedAtMs: number | null): number | null;
|
|
282
|
+
}
|
|
283
|
+
export {};
|
|
284
|
+
//# sourceMappingURL=collector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/diagnostics/collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EACV,gBAAgB,EAIhB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EAIrB,mBAAmB,EAGnB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAiB/E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElE,kFAAkF;AAClF,MAAM,WAAW,sBAAsB;IACrC,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,8CAA8C;IAC9C,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,mFAAmF;AACnF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,8EAA8E;AAC9E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD,6EAA6E;AAC7E,UAAU,qBAAqB;IAC7B,iBAAiB,CAAC,IAAI;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CACzF;AAqCD;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,kBAAkB;;gBA6BjD,MAAM,EAAE,0BAA0B;IAQ9C,kBAAkB;IAClB,QAAQ,IAAI,mBAAmB;IA0B/B,kBAAkB;IAClB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB;IA4CrD;;;;;;;;;OASG;IACH,YAAY,IAAI,IAAI;IAcpB,qDAAqD;IACrD,WAAW,IAAI,IAAI;IAInB,uEAAuE;IACvE,YAAY,IAAI,IAAI;IAIpB;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;IASzB;;;;;;OAMG;IACH,UAAU,CAAC,cAAc,EAAE,OAAO,GAAG,IAAI;IAUzC;;;;;;;;;;OAUG;IACH,iBAAiB,CACf,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAA;KAAE,EACvE,eAAe,EAAE,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC,GAAG,SAAS,GACrE,IAAI;IAgCP;;;;;;;;;;OAUG;IACH,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS;IAezE,6EAA6E;IAC7E,WAAW,IAAI,MAAM,GAAG,IAAI;IAS5B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,GAAG,SAAS;IA2BlE;;;;;;;OAOG;IACH,8BAA8B,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAgB/F;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,GAAG,SAAS;IA4ClE;;;;;OAKG;IACH,kBAAkB,CAAC,WAAW,EAAE,SAAS,4BAA4B,EAAE,GAAG,IAAI;IA+B9E,4EAA4E;IAC5E,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQrD;;;;;;OAMG;IACH,cAAc,IAAI,oBAAoB;IAOtC;;;;;OAKG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxC;;;;;OAKG;IACH,mBAAmB,CACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE;QAAE,OAAO,EAAE,uBAAuB,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/D,IAAI;IAoBP;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE;QAC5B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,OAAO,EAAE,uBAAuB,CAAC;QACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,GAAG,IAAI;IAgBR;;;;OAIG;IACH,mBAAmB,CAAC,KAAK,EAAE;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,SAAS,GAAG,mBAAmB,GAAG,eAAe,CAAC;QACzD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE,uBAAuB,CAAC;QACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI;IAeR;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,cAAc,GAAG,eAAe,GAAG,YAAY,CAAC;QACvD,OAAO,EAAE,uBAAuB,CAAC;QACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,GAAG,IAAI;IAaR;;;;;;;;OAQG;IACH,qBAAqB,CACnB,SAAS,EAAE,oBAAoB,EAC/B,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,uBAAuB,GAC/B,IAAI;IAaP;;;;;OAKG;IACH,oBAAoB,CAAC,WAAW,EAAE;QAChC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;QAClF,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,GAAG,IAAI;IAaR;;;;;OAKG;IACH,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIrD;;;;;OAKG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;CAoPxD"}
|