@c9up/ream 0.1.26 → 0.1.28

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 (179) hide show
  1. package/README.md +65 -0
  2. package/dist/Ignitor.d.ts +115 -7
  3. package/dist/Ignitor.d.ts.map +1 -1
  4. package/dist/Ignitor.js +233 -37
  5. package/dist/Ignitor.js.map +1 -1
  6. package/dist/console/BaseCommand.d.ts +217 -0
  7. package/dist/console/BaseCommand.d.ts.map +1 -0
  8. package/dist/console/BaseCommand.js +340 -0
  9. package/dist/console/BaseCommand.js.map +1 -0
  10. package/dist/console/Console.d.ts +86 -0
  11. package/dist/console/Console.d.ts.map +1 -0
  12. package/dist/console/Console.js +134 -0
  13. package/dist/console/Console.js.map +1 -0
  14. package/dist/console/ExceptionHandler.d.ts +28 -0
  15. package/dist/console/ExceptionHandler.d.ts.map +1 -0
  16. package/dist/console/ExceptionHandler.js +76 -0
  17. package/dist/console/ExceptionHandler.js.map +1 -0
  18. package/dist/console/HelpCommand.d.ts +16 -0
  19. package/dist/console/HelpCommand.d.ts.map +1 -0
  20. package/dist/console/HelpCommand.js +40 -0
  21. package/dist/console/HelpCommand.js.map +1 -0
  22. package/dist/console/IndexGenerator.d.ts +24 -0
  23. package/dist/console/IndexGenerator.d.ts.map +1 -0
  24. package/dist/console/IndexGenerator.js +65 -0
  25. package/dist/console/IndexGenerator.js.map +1 -0
  26. package/dist/console/Kernel.d.ts +298 -0
  27. package/dist/console/Kernel.d.ts.map +1 -0
  28. package/dist/console/Kernel.js +1120 -0
  29. package/dist/console/Kernel.js.map +1 -0
  30. package/dist/console/ListCommand.d.ts +18 -0
  31. package/dist/console/ListCommand.d.ts.map +1 -0
  32. package/dist/console/ListCommand.js +60 -0
  33. package/dist/console/ListCommand.js.map +1 -0
  34. package/dist/console/assertions.d.ts +20 -0
  35. package/dist/console/assertions.d.ts.map +1 -0
  36. package/dist/console/assertions.js +84 -0
  37. package/dist/console/assertions.js.map +1 -0
  38. package/dist/console/cliui.d.ts +248 -0
  39. package/dist/console/cliui.d.ts.map +1 -0
  40. package/dist/console/cliui.js +587 -0
  41. package/dist/console/cliui.js.map +1 -0
  42. package/dist/console/decorators.d.ts +90 -0
  43. package/dist/console/decorators.d.ts.map +1 -0
  44. package/dist/console/decorators.js +142 -0
  45. package/dist/console/decorators.js.map +1 -0
  46. package/dist/console/index.d.ts +32 -0
  47. package/dist/console/index.d.ts.map +1 -0
  48. package/dist/console/index.js +24 -0
  49. package/dist/console/index.js.map +1 -0
  50. package/dist/console/loaders.d.ts +52 -0
  51. package/dist/console/loaders.d.ts.map +1 -0
  52. package/dist/console/loaders.js +131 -0
  53. package/dist/console/loaders.js.map +1 -0
  54. package/dist/console/parser.d.ts +86 -0
  55. package/dist/console/parser.d.ts.map +1 -0
  56. package/dist/console/parser.js +440 -0
  57. package/dist/console/parser.js.map +1 -0
  58. package/dist/console/prompts.d.ts +124 -0
  59. package/dist/console/prompts.d.ts.map +1 -0
  60. package/dist/console/prompts.js +364 -0
  61. package/dist/console/prompts.js.map +1 -0
  62. package/dist/console/tracing.d.ts +17 -0
  63. package/dist/console/tracing.d.ts.map +1 -0
  64. package/dist/console/tracing.js +11 -0
  65. package/dist/console/tracing.js.map +1 -0
  66. package/dist/console/types.d.ts +255 -0
  67. package/dist/console/types.d.ts.map +1 -0
  68. package/dist/console/types.js +25 -0
  69. package/dist/console/types.js.map +1 -0
  70. package/dist/console/ui.d.ts +20 -0
  71. package/dist/console/ui.d.ts.map +1 -0
  72. package/dist/console/ui.js +31 -0
  73. package/dist/console/ui.js.map +1 -0
  74. package/dist/console/utils.d.ts +27 -0
  75. package/dist/console/utils.d.ts.map +1 -0
  76. package/dist/console/utils.js +56 -0
  77. package/dist/console/utils.js.map +1 -0
  78. package/dist/container/Container.d.ts.map +1 -1
  79. package/dist/container/Container.js +40 -12
  80. package/dist/container/Container.js.map +1 -1
  81. package/dist/container/types.d.ts +14 -2
  82. package/dist/container/types.d.ts.map +1 -1
  83. package/dist/decorators/Service.d.ts +7 -0
  84. package/dist/decorators/Service.d.ts.map +1 -1
  85. package/dist/decorators/Service.js +23 -3
  86. package/dist/decorators/Service.js.map +1 -1
  87. package/dist/errors/ReamError.d.ts +25 -0
  88. package/dist/errors/ReamError.d.ts.map +1 -1
  89. package/dist/errors/ReamError.js +5 -0
  90. package/dist/errors/ReamError.js.map +1 -1
  91. package/dist/errors/prettyPrintError.d.ts +9 -0
  92. package/dist/errors/prettyPrintError.d.ts.map +1 -0
  93. package/dist/errors/prettyPrintError.js +22 -0
  94. package/dist/errors/prettyPrintError.js.map +1 -0
  95. package/dist/index.d.ts +14 -4
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +16 -2
  98. package/dist/index.js.map +1 -1
  99. package/dist/middleware/Pipeline.d.ts +29 -8
  100. package/dist/middleware/Pipeline.d.ts.map +1 -1
  101. package/dist/middleware/Pipeline.js +39 -1
  102. package/dist/middleware/Pipeline.js.map +1 -1
  103. package/dist/rpc/RpcRouter.d.ts.map +1 -1
  104. package/dist/rpc/RpcRouter.js +13 -2
  105. package/dist/rpc/RpcRouter.js.map +1 -1
  106. package/dist/services/app.d.ts +1 -1
  107. package/dist/services/app.js +1 -1
  108. package/dist/services/console.d.ts +21 -0
  109. package/dist/services/console.d.ts.map +1 -0
  110. package/dist/services/console.js +35 -0
  111. package/dist/services/console.js.map +1 -0
  112. package/dist/testing/ApiResponse.d.ts +218 -0
  113. package/dist/testing/ApiResponse.d.ts.map +1 -0
  114. package/dist/testing/ApiResponse.js +576 -0
  115. package/dist/testing/ApiResponse.js.map +1 -0
  116. package/dist/testing/RequestBuilder.d.ts +132 -72
  117. package/dist/testing/RequestBuilder.d.ts.map +1 -1
  118. package/dist/testing/RequestBuilder.js +389 -222
  119. package/dist/testing/RequestBuilder.js.map +1 -1
  120. package/dist/testing/TestClient.d.ts +34 -39
  121. package/dist/testing/TestClient.d.ts.map +1 -1
  122. package/dist/testing/TestClient.js +48 -56
  123. package/dist/testing/TestClient.js.map +1 -1
  124. package/dist/utils/Macroable.js +3 -3
  125. package/dist/utils/Macroable.js.map +1 -1
  126. package/events.darwin-arm64.node +0 -0
  127. package/events.darwin-x64.node +0 -0
  128. package/events.linux-arm64-gnu.node +0 -0
  129. package/events.linux-x64-gnu.node +0 -0
  130. package/events.win32-x64-msvc.node +0 -0
  131. package/index.darwin-arm64.node +0 -0
  132. package/index.darwin-x64.node +0 -0
  133. package/index.linux-arm64-gnu.node +0 -0
  134. package/index.linux-x64-gnu.node +0 -0
  135. package/index.win32-x64-msvc.node +0 -0
  136. package/package.json +15 -2
  137. package/scheduler.darwin-arm64.node +0 -0
  138. package/scheduler.darwin-x64.node +0 -0
  139. package/scheduler.linux-arm64-gnu.node +0 -0
  140. package/scheduler.linux-x64-gnu.node +0 -0
  141. package/scheduler.win32-x64-msvc.node +0 -0
  142. package/src/Ignitor.ts +340 -42
  143. package/src/console/BaseCommand.ts +467 -0
  144. package/src/console/Console.ts +174 -0
  145. package/src/console/ExceptionHandler.ts +91 -0
  146. package/src/console/HelpCommand.ts +37 -0
  147. package/src/console/IndexGenerator.ts +79 -0
  148. package/src/console/Kernel.ts +1382 -0
  149. package/src/console/ListCommand.ts +55 -0
  150. package/src/console/assertions.ts +114 -0
  151. package/src/console/cliui.ts +756 -0
  152. package/src/console/decorators.ts +199 -0
  153. package/src/console/index.ts +67 -0
  154. package/src/console/loaders.ts +145 -0
  155. package/src/console/parser.ts +598 -0
  156. package/src/console/prompts.ts +556 -0
  157. package/src/console/tracing.ts +22 -0
  158. package/src/console/types.ts +280 -0
  159. package/src/console/ui.ts +37 -0
  160. package/src/console/utils.ts +69 -0
  161. package/src/container/Container.ts +55 -13
  162. package/src/container/types.ts +15 -2
  163. package/src/decorators/Service.ts +28 -3
  164. package/src/errors/ReamError.ts +31 -0
  165. package/src/errors/prettyPrintError.ts +20 -0
  166. package/src/index.ts +30 -4
  167. package/src/middleware/Pipeline.ts +76 -5
  168. package/src/rpc/RpcRouter.ts +16 -2
  169. package/src/services/app.ts +1 -1
  170. package/src/services/console.ts +42 -0
  171. package/src/testing/ApiResponse.ts +691 -0
  172. package/src/testing/RequestBuilder.ts +498 -275
  173. package/src/testing/TestClient.ts +63 -86
  174. package/src/utils/Macroable.ts +3 -3
  175. package/dist/console/CommandRunner.d.ts +0 -18
  176. package/dist/console/CommandRunner.d.ts.map +0 -1
  177. package/dist/console/CommandRunner.js +0 -65
  178. package/dist/console/CommandRunner.js.map +0 -1
  179. package/src/console/CommandRunner.ts +0 -82
@@ -0,0 +1,255 @@
1
+ /**
2
+ * Console command contract — the STATIC shape the kernel dispatches against.
3
+ *
4
+ * Console parity: a command is a class carrying its own metadata as statics
5
+ * (`commandName`, `description`, `options`) plus the argument/flag metadata
6
+ * collected by the `@args` / `@flags` decorators. The kernel never requires the
7
+ * class to extend {@link BaseCommand}: ANY class exposing these statics is
8
+ * dispatchable.
9
+ *
10
+ * That is deliberate. Framework-agnostic packages (atlas and friends) must not
11
+ * import `@c9up/ream` — the same constraint that made the old `AtlasCommand`
12
+ * duck-type the `{ name, description, run }` object shape. Keeping the contract
13
+ * on statics lets those packages declare classes with typed args/flags and stay
14
+ * dependency-free.
15
+ */
16
+ /** Per-command behaviour switches. Mirrors Console's `CommandOptions`. */
17
+ export interface CommandOptions {
18
+ /**
19
+ * Boot the application (providers, DB, container) before `run()`.
20
+ *
21
+ * Defaults to `false`, as in Console: a scaffolding command has no business
22
+ * opening a database connection. Commands that resolve services from the
23
+ * container must opt in.
24
+ */
25
+ startApp?: boolean;
26
+ /**
27
+ * Keep the process alive after `run()` resolves (long-running commands such
28
+ * as a queue worker). Defaults to `false` — the kernel tears the app down and
29
+ * lets the process exit.
30
+ */
31
+ staysAlive?: boolean;
32
+ /**
33
+ * Accept flags the command did not declare instead of failing. Off by
34
+ * default so a typo (`--warm` for `--warn`) is reported, not swallowed.
35
+ */
36
+ allowUnknownFlags?: boolean;
37
+ }
38
+ /** Metadata recorded by an `@args.*` decorator. */
39
+ export interface ArgumentMetaData {
40
+ type: 'string' | 'spread';
41
+ /** Class property the parsed value is assigned to. */
42
+ propertyName: string;
43
+ /** Name shown in help output (defaults to the dash-cased property name). */
44
+ argumentName: string;
45
+ description?: string;
46
+ required: boolean;
47
+ default?: string | string[];
48
+ /**
49
+ * Accept an empty value (`ream greet ""`). Rejected by default, as in Console: an
50
+ * empty positional is nearly always a shell variable that did not expand.
51
+ */
52
+ allowEmptyValue?: boolean;
53
+ /** Transforms/validates the raw value before it is assigned (Console `parse`). */
54
+ parse?: (value: string | string[]) => unknown;
55
+ }
56
+ /** Metadata recorded by a `@flags.*` decorator. */
57
+ export interface FlagMetaData {
58
+ type: 'string' | 'boolean' | 'number' | 'array';
59
+ /** Class property the parsed value is assigned to. */
60
+ propertyName: string;
61
+ /** Name used on the command line (defaults to the dash-cased property name). */
62
+ flagName: string;
63
+ description?: string;
64
+ /** Single-character shorthands, e.g. `['r']` for `-r`. */
65
+ alias: string[];
66
+ default?: string | string[] | number | boolean;
67
+ required: boolean;
68
+ /**
69
+ * Accept `--name` with nothing behind it, as an empty value rather than an
70
+ * error (Console `allowEmptyValue`).
71
+ */
72
+ allowEmptyValue?: boolean;
73
+ /** Transforms/validates the coerced value before it is assigned (Console `parse`). */
74
+ parse?: (value: string | string[] | number | boolean) => unknown;
75
+ /** List `--no-<flag>` alongside the flag in help (booleans only). */
76
+ showNegatedVariantInHelp?: boolean;
77
+ }
78
+ /** What the kernel produces from argv and assigns onto the command instance. */
79
+ /**
80
+ * The parsed CLI input, in the shape Console publishes it.
81
+ *
82
+ * Positionals are a LIST, in declaration order, and flags are keyed by their
83
+ * COMMAND-LINE name — `parsed.flags['user-email']`, not `parsed.flags.userEmail`.
84
+ * The property names are what the values are assigned TO on the command; the
85
+ * parsed bag describes what was typed.
86
+ */
87
+ export interface ParsedInput {
88
+ args: unknown[];
89
+ flags: Record<string, unknown>;
90
+ /**
91
+ * Names of the flags that were passed but not declared (Console
92
+ * `this.parsed.unknownFlags`). Their values are in {@link flags}; this is the
93
+ * list a command inspects to know what it was handed but does not know about.
94
+ */
95
+ unknownFlags: string[];
96
+ /**
97
+ * Positionals beyond what the command declared.
98
+ *
99
+ * Normally none: an undeclared positional is an error. A command running with
100
+ * `allowUnknownFlags` is a proxy, so they are kept here instead of being
101
+ * dropped — forwarding them is the whole point of such a command.
102
+ */
103
+ extraArgs: string[];
104
+ /** Console's name for {@link extraArgs} — the same array, not a copy. */
105
+ _: string[];
106
+ /**
107
+ * The arguments node itself was started with (Console `nodeArgs`), filled only
108
+ * for the command invoked from the command line.
109
+ */
110
+ nodeArgs: string[];
111
+ }
112
+ /**
113
+ * The instance side of a command.
114
+ *
115
+ * Only `run()` is required. The lifecycle hooks are optional: the kernel calls
116
+ * whichever the command defines, in Console's order — prepare, interact, run,
117
+ * completed.
118
+ */
119
+ export interface CommandInstance {
120
+ /**
121
+ * Whatever it returns becomes `result` on the executed command.
122
+ *
123
+ * Parameters are allowed: the container injects them (Console `@inject()` on a
124
+ * lifecycle method), and a no-arg signature would reject those commands.
125
+ */
126
+ run(...args: never[]): unknown;
127
+ prepare?(...args: never[]): void | Promise<void>;
128
+ interact?(...args: never[]): void | Promise<void>;
129
+ /** Returning `true` marks the error handled, stopping its propagation. */
130
+ completed?(...args: never[]): boolean | void | Promise<boolean | void>;
131
+ /** Set by the command to force a code; the kernel fills it in otherwise. */
132
+ exitCode?: number;
133
+ /** Filled by the kernel before `completed()` runs. */
134
+ error?: unknown;
135
+ /** Filled by the kernel with what `run()` returned. */
136
+ result?: unknown;
137
+ }
138
+ /**
139
+ * A command's metadata as plain data (Console `serialize`).
140
+ *
141
+ * JSON-safe on purpose: the `parse` callbacks carried by the live metadata are
142
+ * dropped, so this can be printed, cached or sent over a wire without a
143
+ * function silently disappearing at the boundary.
144
+ */
145
+ /**
146
+ * How one positional argument is parsed (Console `ArgumentsParserOptions`).
147
+ *
148
+ * Derived from the declarations by `BaseCommand.getParserOptions()`. Ream's own
149
+ * parser reads the declarations directly; this shape exists so code ported from
150
+ * Console — which inspects it — keeps working.
151
+ */
152
+ export interface ArgumentsParserOptions {
153
+ type: 'string' | 'spread';
154
+ default?: string | string[];
155
+ parse?: (value: string | string[]) => unknown;
156
+ }
157
+ /** How the flags are parsed, grouped by type (Console `FlagsParserOptions`). */
158
+ export interface FlagsParserOptions {
159
+ all: string[];
160
+ string: string[];
161
+ boolean: string[];
162
+ number: string[];
163
+ array: string[];
164
+ /** Flag name → its single-character shorthands. */
165
+ alias: Record<string, string[]>;
166
+ count: string[];
167
+ /** Flag name → its `parse` callback. */
168
+ coerce: Record<string, (value: never) => unknown>;
169
+ default: Record<string, unknown>;
170
+ }
171
+ export interface SerializedCommand {
172
+ commandName: string;
173
+ /**
174
+ * Where the command was found, relative to the directory it was loaded from.
175
+ *
176
+ * Set by loaders that read files, and by nothing else: it is what lets a
177
+ * generated manifest import a command without scanning anything.
178
+ */
179
+ filePath?: string;
180
+ /** The part before `:` — `make` for `make:controller`, null when there is none. */
181
+ namespace: string | null;
182
+ description: string;
183
+ help?: string | string[];
184
+ aliases: string[];
185
+ options: CommandOptions;
186
+ args: Array<Omit<ArgumentMetaData, 'parse'>>;
187
+ flags: Array<Omit<FlagMetaData, 'parse'>>;
188
+ }
189
+ /**
190
+ * A snapshot of a command that has run (Console `toJSON`).
191
+ *
192
+ * Unlike {@link SerializedCommand} this is about one execution: the values it
193
+ * received and what it produced. `args` / `flags` are the parsed VALUES, not
194
+ * their declarations.
195
+ */
196
+ export interface CommandSnapshot {
197
+ commandName: string;
198
+ options: CommandOptions;
199
+ /** Positional VALUES in declaration order — Console exposes a list here. */
200
+ args: unknown[];
201
+ flags: Record<string, unknown>;
202
+ error: unknown;
203
+ result: unknown;
204
+ exitCode: number | undefined;
205
+ }
206
+ /**
207
+ * A command that has run.
208
+ *
209
+ * The three outcome fields are guaranteed here, which is what `exec()` returns:
210
+ * without it the documented `command.exitCode` / `.result` / `.error` does not
211
+ * typecheck for a caller, and the only way to read them is a reflective escape
212
+ * hatch — which is exactly what the tests had ended up doing.
213
+ */
214
+ /**
215
+ * Assertions available on a command that has run.
216
+ *
217
+ * Part of what `exec()` returns, so a caller can use them without the type
218
+ * hiding what exists at runtime. The kernel attaches them to every command it
219
+ * runs, including one that does not extend `BaseCommand`.
220
+ */
221
+ export interface CommandAssertions {
222
+ assertSucceeded(): void;
223
+ assertFailed(): void;
224
+ assertExitCode(expected: number): void;
225
+ assertNotExitCode(unexpected: number): void;
226
+ assertLog(message: string, stream?: 'stdout' | 'stderr'): void;
227
+ assertLogMatches(pattern: RegExp, stream?: 'stdout' | 'stderr'): void;
228
+ assertTableRows(expected: readonly (readonly string[])[]): void;
229
+ }
230
+ export interface ExecutedCommand extends CommandInstance, CommandAssertions {
231
+ exitCode: number;
232
+ error: unknown;
233
+ result: unknown;
234
+ /** A snapshot of this execution (Console `toJSON`). */
235
+ toJSON(): CommandSnapshot;
236
+ }
237
+ /**
238
+ * The static side. `args` / `flags` are optional so a command with neither
239
+ * still satisfies the contract without declaring empty arrays.
240
+ */
241
+ export interface CommandClass {
242
+ new (...args: never[]): CommandInstance;
243
+ commandName: string;
244
+ description: string;
245
+ /** Alternative names the command also answers to (Console `static aliases`). */
246
+ aliases?: readonly string[];
247
+ options?: CommandOptions;
248
+ args?: readonly ArgumentMetaData[];
249
+ flags?: readonly FlagMetaData[];
250
+ /** Longer help text printed under the usage line by `<cmd> --help`. */
251
+ help?: string | string[];
252
+ }
253
+ /** Narrowing guard used by the kernel when loading modules. */
254
+ export declare function isCommandClass(value: unknown): value is CommandClass;
255
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/console/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Console command contract — the STATIC shape the kernel dispatches against.
3
+ *
4
+ * Console parity: a command is a class carrying its own metadata as statics
5
+ * (`commandName`, `description`, `options`) plus the argument/flag metadata
6
+ * collected by the `@args` / `@flags` decorators. The kernel never requires the
7
+ * class to extend {@link BaseCommand}: ANY class exposing these statics is
8
+ * dispatchable.
9
+ *
10
+ * That is deliberate. Framework-agnostic packages (atlas and friends) must not
11
+ * import `@c9up/ream` — the same constraint that made the old `AtlasCommand`
12
+ * duck-type the `{ name, description, run }` object shape. Keeping the contract
13
+ * on statics lets those packages declare classes with typed args/flags and stay
14
+ * dependency-free.
15
+ */
16
+ /** Narrowing guard used by the kernel when loading modules. */
17
+ export function isCommandClass(value) {
18
+ if (typeof value !== 'function')
19
+ return false;
20
+ const candidate = value;
21
+ return (typeof candidate.commandName === 'string' &&
22
+ candidate.commandName.length > 0 &&
23
+ typeof candidate.description === 'string');
24
+ }
25
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/console/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgQH,+DAA+D;AAC/D,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,CAAA;IAC7C,MAAM,SAAS,GAAG,KAA8B,CAAA;IAChD,OAAO,CACL,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ;QACzC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAChC,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ,CAC1C,CAAA;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Console UI — `this.logger` and `this.prompt` on every command (Console parity).
3
+ *
4
+ * Kept dependency-free: the framework ships no colour or prompt library, and
5
+ * pulling one in for the CLI surface alone is not worth the install weight.
6
+ */
7
+ declare const CODES: {
8
+ readonly reset: "\u001B[0m";
9
+ readonly dim: "\u001B[2m";
10
+ readonly red: "\u001B[31m";
11
+ readonly green: "\u001B[32m";
12
+ readonly yellow: "\u001B[33m";
13
+ readonly blue: "\u001B[34m";
14
+ readonly magenta: "\u001B[35m";
15
+ readonly cyan: "\u001B[36m";
16
+ };
17
+ export type Colour = keyof Omit<typeof CODES, 'reset'>;
18
+ export declare function colourise(text: string, colour: Colour, stream?: NodeJS.WriteStream): string;
19
+ export {};
20
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/console/ui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,QAAA,MAAM,KAAK;;;;;;;;;CASD,CAAA;AAEV,MAAM,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,KAAK,EAAE,OAAO,CAAC,CAAA;AAEtD,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,CAAC,WAAoB,GAClC,MAAM,CAGR"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Console UI — `this.logger` and `this.prompt` on every command (Console parity).
3
+ *
4
+ * Kept dependency-free: the framework ships no colour or prompt library, and
5
+ * pulling one in for the CLI surface alone is not worth the install weight.
6
+ */
7
+ import { stdout } from 'node:process';
8
+ /** Colour is opt-out via NO_COLOR and skipped when piped to a file. */
9
+ function supportsColour(stream) {
10
+ if (process.env.NO_COLOR !== undefined && process.env.NO_COLOR !== '')
11
+ return false;
12
+ if (process.env.FORCE_COLOR !== undefined && process.env.FORCE_COLOR !== '')
13
+ return true;
14
+ return Boolean(stream.isTTY);
15
+ }
16
+ const CODES = {
17
+ reset: '\u001B[0m',
18
+ dim: '\u001B[2m',
19
+ red: '\u001B[31m',
20
+ green: '\u001B[32m',
21
+ yellow: '\u001B[33m',
22
+ blue: '\u001B[34m',
23
+ magenta: '\u001B[35m',
24
+ cyan: '\u001B[36m',
25
+ };
26
+ export function colourise(text, colour, stream = stdout) {
27
+ if (!supportsColour(stream))
28
+ return text;
29
+ return `${CODES[colour]}${text}${CODES.reset}`;
30
+ }
31
+ //# sourceMappingURL=ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/console/ui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,uEAAuE;AACvE,SAAS,cAAc,CAAC,MAA0B;IAChD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA;IACnF,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE;QAAE,OAAO,IAAI,CAAA;IACxF,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE,WAAW;IAClB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,YAAY;IACjB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,YAAY;CACV,CAAA;AAIV,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,MAAc,EACd,SAA6B,MAAM;IAEnC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;AAChD,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The helpers Console exposes around commands (`@adonisjs/consoleApp` utils).
3
+ *
4
+ * They exist as exports because a custom loader needs them: validating what a
5
+ * module exported, and reporting a name that resolved to nothing.
6
+ */
7
+ import type { Logger } from './cliui.js';
8
+ import { type CommandClass, type SerializedCommand } from './types.js';
9
+ /** Sort command and namespace names the way the listing does. */
10
+ export declare function sortAlphabetically(prev: string, curr: string): number;
11
+ /**
12
+ * Report a name that resolved to nothing, with the closest matches.
13
+ *
14
+ * Shared by the kernel's unknown-command report and the `help` command: two
15
+ * wordings for the same dead end is how they end up disagreeing.
16
+ */
17
+ export declare function renderErrorWithSuggestions(logger: Logger, message: string, suggestions: readonly string[]): void;
18
+ /**
19
+ * Assert that a module's export is a command class.
20
+ *
21
+ * `exportPath` names the file, because the useful part of the message is WHICH
22
+ * module exported the wrong thing.
23
+ */
24
+ export declare function validateCommand(command: unknown, exportPath: string): asserts command is CommandClass;
25
+ /** The same, for a metadata object a loader published. */
26
+ export declare function validateCommandMetaData(metadata: unknown, exportPath: string): asserts metadata is SerializedCommand;
27
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/console/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,KAAK,YAAY,EAAkB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEtF,iEAAiE;AACjE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,IAAI,CAIN;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,IAAI,YAAY,CAKjC;AAED,0DAA0D;AAC1D,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAgBvC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The helpers Console exposes around commands (`@adonisjs/consoleApp` utils).
3
+ *
4
+ * They exist as exports because a custom loader needs them: validating what a
5
+ * module exported, and reporting a name that resolved to nothing.
6
+ */
7
+ import { ReamError } from '../errors/ReamError.js';
8
+ import { isCommandClass } from './types.js';
9
+ /** Sort command and namespace names the way the listing does. */
10
+ export function sortAlphabetically(prev, curr) {
11
+ return prev.localeCompare(curr);
12
+ }
13
+ /**
14
+ * Report a name that resolved to nothing, with the closest matches.
15
+ *
16
+ * Shared by the kernel's unknown-command report and the `help` command: two
17
+ * wordings for the same dead end is how they end up disagreeing.
18
+ */
19
+ export function renderErrorWithSuggestions(logger, message, suggestions) {
20
+ logger.error(message);
21
+ if (suggestions.length === 0)
22
+ return;
23
+ process.stderr.write(` Did you mean "${suggestions.slice(0, 4).join('", "')}"?\n`);
24
+ }
25
+ /**
26
+ * Assert that a module's export is a command class.
27
+ *
28
+ * `exportPath` names the file, because the useful part of the message is WHICH
29
+ * module exported the wrong thing.
30
+ */
31
+ export function validateCommand(command, exportPath) {
32
+ if (isCommandClass(command))
33
+ return;
34
+ throw new ReamError('E_CONSOLE_INVALID_COMMAND', `Invalid command exported from ${exportPath}.`, {
35
+ hint: 'Expected a class with a static commandName, a static description and a run() method.',
36
+ });
37
+ }
38
+ /** The same, for a metadata object a loader published. */
39
+ export function validateCommandMetaData(metadata, exportPath) {
40
+ const invalid = (reason) => {
41
+ throw new ReamError('E_CONSOLE_INVALID_COMMAND_METADATA', `Invalid command metadata exported from ${exportPath}: ${reason}.`);
42
+ };
43
+ if (typeof metadata !== 'object' || metadata === null)
44
+ invalid('expected an object');
45
+ const record = metadata;
46
+ if (typeof record.commandName !== 'string' || record.commandName === '') {
47
+ invalid('"commandName" is missing');
48
+ }
49
+ if (typeof record.description !== 'string')
50
+ invalid('"description" is missing');
51
+ if (!Array.isArray(record.args))
52
+ invalid('"args" is missing');
53
+ if (!Array.isArray(record.flags))
54
+ invalid('"flags" is missing');
55
+ }
56
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/console/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,EAAqB,cAAc,EAA0B,MAAM,YAAY,CAAA;AAEtF,iEAAiE;AACjE,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,IAAY;IAC3D,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAc,EACd,OAAe,EACf,WAA8B;IAE9B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACrB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACrF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAgB,EAChB,UAAkB;IAElB,IAAI,cAAc,CAAC,OAAO,CAAC;QAAE,OAAM;IACnC,MAAM,IAAI,SAAS,CAAC,2BAA2B,EAAE,iCAAiC,UAAU,GAAG,EAAE;QAC/F,IAAI,EAAE,sFAAsF;KAC7F,CAAC,CAAA;AACJ,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,uBAAuB,CACrC,QAAiB,EACjB,UAAkB;IAElB,MAAM,OAAO,GAAG,CAAC,MAAc,EAAS,EAAE;QACxC,MAAM,IAAI,SAAS,CACjB,oCAAoC,EACpC,0CAA0C,UAAU,KAAK,MAAM,GAAG,CACnE,CAAA;IACH,CAAC,CAAA;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACpF,MAAM,MAAM,GAAG,QAAmC,CAAA;IAClD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;QACxE,OAAO,CAAC,0BAA0B,CAAC,CAAA;IACrC,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,CAAC,0BAA0B,CAAC,CAAA;IAC/E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,oBAAoB,CAAC,CAAA;AACjE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,kBAAkB,CAAA;AAIzB,OAAO,KAAK,EAAW,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AASvE,qBAAa,SAAS;;IAoBpB,kEAAkE;IAClE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAKjE,+DAA+D;IAC/D,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAK5D,uCAAuC;IACvC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAMjD;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAItD;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAcxF;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IASxD;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIhD,+DAA+D;IAC/D,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI;IAqBnC;;;;;;;;OAQG;IACH,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAInE;;;;;OAKG;IACG,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAyB5E;;;;OAIG;IACG,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EACtC,QAAQ,EAAE,CAAC,EACX,MAAM,EAAE,CAAC,EACT,aAAa,CAAC,EAAE,OAAO,EAAE,GACxB,OAAO,CAAC,OAAO,CAAC;IA8BnB,oDAAoD;IACpD,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAWjC,uFAAuF;IACvF,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO;IAI/C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,+EAA+E;IAC/E,YAAY,IAAI,IAAI;CAyMrB"}
1
+ {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,kBAAkB,CAAA;AAUzB,OAAO,KAAK,EAAW,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAevE,qBAAa,SAAS;;IA4BpB,kEAAkE;IAClE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAKjE,+DAA+D;IAC/D,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAK5D,uCAAuC;IACvC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAMjD;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAItD;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAcxF;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IASxD;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIhD,+DAA+D;IAC/D,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI;IAqBnC;;;;;;;;OAQG;IACH,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAInE;;;;;OAKG;IACG,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAkC5E;;;;OAIG;IACG,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EACtC,QAAQ,EAAE,CAAC,EACX,MAAM,EAAE,CAAC,EACT,aAAa,CAAC,EAAE,OAAO,EAAE,GACxB,OAAO,CAAC,OAAO,CAAC;IA2CnB,oDAAoD;IACpD,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAWjC,uFAAuF;IACvF,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO;IAI/C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,+EAA+E;IAC/E,YAAY,IAAI,IAAI;CAyMrB"}
@@ -9,7 +9,8 @@
9
9
  * @implements FR11, FR12, FR14, FR16
10
10
  */
11
11
  import 'reflect-metadata';
12
- import { getInjectTokens, getServiceMetadata, getServiceRegistry } from '../decorators/Service.js';
12
+ import { AsyncLocalStorage } from 'node:async_hooks';
13
+ import { getInjectTokens, getMethodInjectTokens, getServiceMetadata, getServiceRegistry, } from '../decorators/Service.js';
13
14
  import { didYouMean } from '../errors/FuzzyMatcher.js';
14
15
  import { ReamError } from '../errors/ReamError.js';
15
16
  /**
@@ -33,8 +34,16 @@ export class Container {
33
34
  #aliases = new Map();
34
35
  /** token key → post-resolution callbacks (AdonisJS `container.resolving`). */
35
36
  #resolvingHooks = new Map();
36
- #resolutionStack = [];
37
- #resolutionSet = new Set();
37
+ /**
38
+ * The resolution chain currently being walked, for cycle detection.
39
+ *
40
+ * Scoped to the async context, NOT to the container: `resolve()` is async, so
41
+ * two independent chains interleave, and a stack held on the instance would
42
+ * splice them together and report a cycle neither of them has. Per-container
43
+ * storage keeps a chain that crosses two containers from colliding on a token
44
+ * name they happen to share.
45
+ */
46
+ #chain = new AsyncLocalStorage();
38
47
  // ─── Explicit bindings ────────────────────────────────────
39
48
  /** Register a singleton binding (factory called once, cached). */
40
49
  singleton(token, factory) {
@@ -146,21 +155,27 @@ export class Container {
146
155
  if (aliasTarget !== undefined)
147
156
  return this.resolve(aliasTarget, runtimeValues);
148
157
  const key = this.#tokenToKey(token);
149
- if (this.#resolutionSet.has(key)) {
150
- const cycle = [...this.#resolutionStack, key].join(' → ');
158
+ // Top of a chain: open one, so everything this resolution triggers shares
159
+ // it and nothing outside it does.
160
+ const chain = this.#chain.getStore();
161
+ if (chain === undefined) {
162
+ return this.#chain.run({ stack: [], set: new Set() }, () => this.resolve(token, runtimeValues));
163
+ }
164
+ if (chain.set.has(key)) {
165
+ const cycle = [...chain.stack, key].join(' → ');
151
166
  throw new ReamError('CIRCULAR_DEPENDENCY', `Circular dependency detected: ${cycle}`, {
152
167
  hint: 'Break the cycle by resolving one dependency lazily inside a method (`await container.make(Dep)`) instead of injecting it in the constructor.',
153
168
  context: { chain: cycle },
154
169
  });
155
170
  }
156
- this.#resolutionStack.push(key);
157
- this.#resolutionSet.add(key);
171
+ chain.stack.push(key);
172
+ chain.set.add(key);
158
173
  try {
159
174
  return await this.#resolveInner(key, token, runtimeValues);
160
175
  }
161
176
  finally {
162
- this.#resolutionStack.pop();
163
- this.#resolutionSet.delete(key);
177
+ chain.stack.pop();
178
+ chain.set.delete(key);
164
179
  }
165
180
  }
166
181
  /**
@@ -173,7 +188,15 @@ export class Container {
173
188
  // narrows it back to a typed constructor without a cast expression.
174
189
  const target = Object.getPrototypeOf(instance).constructor;
175
190
  const paramTypes = Reflect.getMetadata('design:paramtypes', target.prototype, method) ?? [];
176
- const len = Math.max(paramTypes.length, runtimeValues?.length ?? 0);
191
+ // `@Inject('token')` on a method parameter — a named binding the reflected
192
+ // type cannot express (an interface, or a class registered under a name).
193
+ const injectTokens = getMethodInjectTokens(target.prototype, method);
194
+ // `@Inject` counts towards the parameter span too: a method may carry named
195
+ // tokens without `design:paramtypes` being emitted for it, and computing the
196
+ // span from the reflected types alone left the loop at zero iterations —
197
+ // the tokens were read and then never used.
198
+ const injectSpan = injectTokens.size === 0 ? 0 : Math.max(...injectTokens.keys()) + 1;
199
+ const len = Math.max(paramTypes.length, runtimeValues?.length ?? 0, injectSpan);
177
200
  // Sequential resolution keeps the shared cycle-detection stack consistent.
178
201
  const args = [];
179
202
  for (let index = 0; index < len; index += 1) {
@@ -182,6 +205,11 @@ export class Container {
182
205
  args.push(runtimeValues[index]);
183
206
  continue;
184
207
  }
208
+ const named = injectTokens.get(index);
209
+ if (named !== undefined) {
210
+ args.push(await this.resolve(named));
211
+ continue;
212
+ }
185
213
  const type = paramTypes[index];
186
214
  args.push(isInjectableClass(type) ? await this.resolve(type) : undefined);
187
215
  }
@@ -227,7 +255,7 @@ export class Container {
227
255
  async #resolveInner(key, token, runtimeValues) {
228
256
  // 1. Check swaps (test overrides) — a swap factory may be async.
229
257
  if (this.#overrides.has(key)) {
230
- const swapped = await this.#overrides.get(key)?.();
258
+ const swapped = await this.#overrides.get(key)?.(this);
231
259
  return swapped;
232
260
  }
233
261
  // 2. Check cached singletons
@@ -237,7 +265,7 @@ export class Container {
237
265
  // 3. Check explicit bindings — the factory may be async.
238
266
  const binding = this.#bindings.get(key);
239
267
  if (binding) {
240
- const instance = binding.factory ? await binding.factory() : undefined;
268
+ const instance = binding.factory ? await binding.factory(this) : undefined;
241
269
  if (binding.scope === 'singleton') {
242
270
  this.#singletons.set(key, instance);
243
271
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAGlD;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;AAQ/E,MAAM,OAAO,SAAS;IACpB,SAAS,GAAyB,IAAI,GAAG,EAAE,CAAA;IAC3C,WAAW,GAAyB,IAAI,GAAG,EAAE,CAAA;IAC7C,UAAU,GAAgC,IAAI,GAAG,EAAE,CAAA;IACnD;;;;;OAKG;IACH,gBAAgB,GAAyB,IAAI,GAAG,EAAE,CAAA;IAClD,yEAAyE;IACzE,QAAQ,GAA8B,IAAI,GAAG,EAAE,CAAA;IAC/C,8EAA8E;IAC9E,eAAe,GAAiE,IAAI,GAAG,EAAE,CAAA;IACzF;;;;;;;;OAQG;IACM,MAAM,GAAG,IAAI,iBAAiB,EAAmB,CAAA;IAE1D,6DAA6D;IAE7D,kEAAkE;IAClE,SAAS,CAAK,KAAmB,EAAE,OAAuB;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;IACnF,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAK,KAAmB,EAAE,OAAuB;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;IACnF,CAAC;IAED,uCAAuC;IACvC,SAAS,CAAI,KAAmB,EAAE,KAAQ;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;IAChG,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAmB,EAAE,MAAoB;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;IACpD,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,KAAmB,EAAE,QAAkD;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;;YAC1B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,KAAc;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,KAAK;YAAE,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;IACxD,CAAC;IAED,6DAA6D;IAE7D;;;;OAIG;IACH,IAAI,CAAC,KAAmB,EAAE,OAAuB;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAI,KAAmB,EAAE,KAAQ;QACvC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,+DAA+D;IAC/D,OAAO,CAAC,KAAoB;QAC1B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YACzD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,6DAA6D;IAE7D;;;;;;;;OAQG;IACH,IAAI,CAAI,KAAmB,EAAE,aAAyB;QACpD,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,aAAa,CAAC,CAAA;IAC9C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAI,KAAmB,EAAE,aAAyB;QAC7D,2DAA2D;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9D,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,OAAO,CAAI,WAAW,EAAE,aAAa,CAAC,CAAA;QAEjF,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAEnC,0EAA0E;QAC1E,kCAAkC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CACzD,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,aAAa,CAAC,CACtC,CAAA;QACH,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/C,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,iCAAiC,KAAK,EAAE,EAAE;gBACnF,IAAI,EAAE,8IAA8I;gBACpJ,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;aAC1B,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAElB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,aAAa,CAAI,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAA;QAC/D,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;YACjB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CACR,QAAW,EACX,MAAS,EACT,aAAyB;QAGzB,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,MAAM,GAAS,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAA;QAChE,MAAM,UAAU,GACd,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAEpE,4EAA4E;QAC5E,6EAA6E;QAC7E,yEAAyE;QACzE,4CAA4C;QAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QACrF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,EAAE,UAAU,CAAC,CAAA;QAC/E,2EAA2E;QAC3E,MAAM,IAAI,GAAc,EAAE,CAAA;QAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC5C,qEAAqE;YACrE,IAAI,aAAa,IAAI,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC/B,SAAQ;YACV,CAAC;YACD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;gBACpC,SAAQ;YACV,CAAC;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAC9B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,MAAM,GAAY,QAAQ,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,4BAA4B,CAAC,CAAA;QACzE,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,6DAA6D;IAE7D,oDAAoD;IACpD,GAAG,CAAC,KAAmB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,OAAO,CACL,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YACtB,CAAC,OAAO,KAAK,KAAK,UAAU,IAAI,kBAAkB,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CACzE,CAAA;IACH,CAAC;IAED,uFAAuF;IACvF,cAAc,CAAC,MAAsB;QACnC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAA;IAC5B,CAAC;IAED,+EAA+E;IAC/E,YAAY;QACV,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,kBAAkB,EAAE,EAAE,CAAC;YACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,WAAW,GAAG,MAAM,CAAA;gBAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE;oBACtB,KAAK,EAAE,QAAQ,CAAC,EAAE,IAAI,MAAM;oBAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;oBAC/C,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,YAAY,EAAE,EAAE;iBACjB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAE7D,KAAK,CAAC,aAAa,CAAI,GAAW,EAAE,KAAmB,EAAE,aAAyB;QAChF,iEAAiE;QACjE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACtD,OAAO,OAAY,CAAA;QACrB,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAM,CAAA;QACvC,CAAC;QAED,yDAAyD;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC1E,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YACrC,CAAC;YACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC5C,4EAA4E;YAC5E,OAAO,QAAa,CAAA;QACtB,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAM,CAAA;YACvE,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC5C,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;QACrE,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC3C,MAAM,IAAI,SAAS,CACjB,qBAAqB,EACrB,yBAAyB,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACrE;YACE,IAAI,EAAE,oEAAoE;SAC3E,CACF,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAClB,MAA2C,EAC3C,aAAyB;QAEzB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,WAAW,CAAA;QAC5C,MAAM,GAAG,GAAG,QAAQ,EAAE,EAAE,IAAI,MAAM,CAAC,IAAI,CAAA;QAEvC,IAAI,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,CAAC;QAED,2EAA2E;QAC3E,kDAAkD;QAClD,MAAM,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAA;QAEpE,uEAAuE;QACvE,kCAAkC;QAClC,MAAM,YAAY,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAA;QAEvD,kCAAkC;QAClC,MAAM,UAAU,GACd,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;QAExE,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QAE5C,6EAA6E;QAC7E,sEAAsE;QACtE,kEAAkE;QAClE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,qEAAqE;YACrE,uEAAuE;YACvE,wEAAwE;YACxE,qDAAqD;YACrD,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACnF,MAAM,IAAI,GAAc,EAAE,CAAA;gBAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;oBAClD,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;oBAC3B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;wBACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;wBACb,SAAQ;oBACV,CAAC;oBACD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;oBACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;gBAChE,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;gBACpC,IAAI,KAAK,KAAK,WAAW;oBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;gBAC9D,OAAO,QAAQ,CAAA;YACjB,CAAC;YACD,0EAA0E;YAC1E,0EAA0E;YAC1E,oEAAoE;YACpE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;gBACvF,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;gBACpC,IAAI,KAAK,KAAK,WAAW;oBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;gBAC9D,OAAO,QAAQ,CAAA;YACjB,CAAC;YACD,wEAAwE;YACxE,0EAA0E;YAC1E,qDAAqD;YACrD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,SAAS,CACjB,4BAA4B,EAC5B,yBAAyB,MAAM,CAAC,IAAI,iBAAiB,MAAM,CAAC,MAAM,iEAAiE,EACnI;oBACE,IAAI,EAAE,oJAAoJ;iBAC3J,CACF,CAAA;YACH,CAAC;YACD,mCAAmC;YACnC,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAA;YAC7B,IAAI,KAAK,KAAK,WAAW;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC9D,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,sEAAsE;QACtE,6EAA6E;QAC7E,MAAM,IAAI,GAAc,EAAE,CAAA;QAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;YAC3B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACb,SAAQ;YACV,CAAC;YACD,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAC9B,kEAAkE;YAClE,8EAA8E;YAC9E,MAAM,QAAQ,GACZ,UAAU,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;QACpC,IAAI,KAAK,KAAK,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAC9D,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,WAAW,CAAC,KAAmB;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YACxC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,wEAAwE;YACxE,sEAAsE;YACtE,uEAAuE;YACvE,yDAAyD;YACzD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,MAAM,IAAI,SAAS,CACjB,yBAAyB,EACzB,8DAA8D,KAAK,CAAC,WAAW,IAAI,MAAM,8CAA8C,CACxI,CAAA;YACH,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAA;YAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,SAAS,CAAC,yBAAyB,EAAE,wCAAwC,CAAC,CAAA;YAC1F,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;YACnD,OAAO,UAAU,IAAI,GAAG,CAAA;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAA;IACnB,CAAC;IAED,kBAAkB,CAAC,IAAY,EAAE,IAAqC;QACpE,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CAAC,0BAA0B,EAAE,kCAAkC,IAAI,IAAI,EAAE;gBAC1F,IAAI,EAAE,IAAI,IAAI,kEAAkE,IAAI,GAAG;aACxF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAU;IACnD,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,QAAQ;IACR,MAAM;IACN,IAAI;IACJ,MAAM;IACN,OAAO;IACP,KAAK;CACN,CAAC,CAAA;AAEF,wFAAwF;AACxF,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC/E,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAA;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,MAAc;IAChD,IAAI,CAAC,CAAC,qBAAqB,IAAI,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAA;IAC7C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3E,IAAI,CAAC,CAAC,cAAc,IAAI,UAAU,CAAC;QAAE,OAAO,SAAS,CAAA;IACrD,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,CAAA;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAC/D,IAAI,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAA;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAA;AAC9F,CAAC"}