@nifrajs/cli 4.0.2 → 5.1.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 (364) hide show
  1. package/README.md +10 -2
  2. package/dist/agent-files.d.ts +107 -0
  3. package/dist/agent-files.d.ts.map +1 -0
  4. package/dist/agent-files.js +162 -0
  5. package/dist/agent-files.js.map +1 -0
  6. package/dist/app-files.d.ts +6 -0
  7. package/dist/app-files.d.ts.map +1 -1
  8. package/dist/app-files.js +27 -2
  9. package/dist/app-files.js.map +1 -1
  10. package/dist/assure-hydration.d.ts.map +1 -1
  11. package/dist/assure-hydration.js +9 -2
  12. package/dist/assure-hydration.js.map +1 -1
  13. package/dist/assure.d.ts +12 -2
  14. package/dist/assure.d.ts.map +1 -1
  15. package/dist/assure.js +59 -8
  16. package/dist/assure.js.map +1 -1
  17. package/dist/capabilities-tool.d.ts.map +1 -1
  18. package/dist/capabilities-tool.js +36 -9
  19. package/dist/capabilities-tool.js.map +1 -1
  20. package/dist/check-diagnostics.d.ts +22 -2
  21. package/dist/check-diagnostics.d.ts.map +1 -1
  22. package/dist/check-diagnostics.js +54 -7
  23. package/dist/check-diagnostics.js.map +1 -1
  24. package/dist/check-scan.d.ts +83 -24
  25. package/dist/check-scan.d.ts.map +1 -1
  26. package/dist/check-scan.js +1516 -318
  27. package/dist/check-scan.js.map +1 -1
  28. package/dist/check.d.ts +2 -2
  29. package/dist/check.d.ts.map +1 -1
  30. package/dist/check.js +203 -70
  31. package/dist/check.js.map +1 -1
  32. package/dist/cli.d.ts +9 -0
  33. package/dist/cli.d.ts.map +1 -1
  34. package/dist/cli.js +215 -50
  35. package/dist/cli.js.map +1 -1
  36. package/dist/client-module.d.ts +20 -0
  37. package/dist/client-module.d.ts.map +1 -0
  38. package/dist/client-module.js +73 -0
  39. package/dist/client-module.js.map +1 -0
  40. package/dist/command-catalog.d.ts +24 -5
  41. package/dist/command-catalog.d.ts.map +1 -1
  42. package/dist/command-catalog.js +194 -45
  43. package/dist/command-catalog.js.map +1 -1
  44. package/dist/component-check.d.ts +13 -0
  45. package/dist/component-check.d.ts.map +1 -0
  46. package/dist/component-check.js +59 -0
  47. package/dist/component-check.js.map +1 -0
  48. package/dist/contract-proof.d.ts +1 -1
  49. package/dist/contract-proof.d.ts.map +1 -1
  50. package/dist/contract-proof.js +2 -24
  51. package/dist/contract-proof.js.map +1 -1
  52. package/dist/contracts.d.ts +19 -0
  53. package/dist/contracts.d.ts.map +1 -1
  54. package/dist/contracts.js +50 -3
  55. package/dist/contracts.js.map +1 -1
  56. package/dist/db-tool.d.ts.map +1 -1
  57. package/dist/db-tool.js +4 -3
  58. package/dist/db-tool.js.map +1 -1
  59. package/dist/dev-bun-config.d.ts +5 -1
  60. package/dist/dev-bun-config.d.ts.map +1 -1
  61. package/dist/dev-bun-config.js +44 -11
  62. package/dist/dev-bun-config.js.map +1 -1
  63. package/dist/dev-feed-tool.d.ts +18 -1
  64. package/dist/dev-feed-tool.d.ts.map +1 -1
  65. package/dist/dev-feed-tool.js +93 -0
  66. package/dist/dev-feed-tool.js.map +1 -1
  67. package/dist/diagnostics.d.ts +3 -0
  68. package/dist/diagnostics.d.ts.map +1 -1
  69. package/dist/diagnostics.js.map +1 -1
  70. package/dist/diff-tool.d.ts +9 -8
  71. package/dist/diff-tool.d.ts.map +1 -1
  72. package/dist/diff-tool.js +28 -24
  73. package/dist/diff-tool.js.map +1 -1
  74. package/dist/doctor.d.ts +13 -0
  75. package/dist/doctor.d.ts.map +1 -1
  76. package/dist/doctor.js +23 -15
  77. package/dist/doctor.js.map +1 -1
  78. package/dist/env-file.d.ts +6 -0
  79. package/dist/env-file.d.ts.map +1 -1
  80. package/dist/env-file.js +6 -0
  81. package/dist/env-file.js.map +1 -1
  82. package/dist/fix-recipes.d.ts +2 -0
  83. package/dist/fix-recipes.d.ts.map +1 -1
  84. package/dist/fix-recipes.js +102 -2
  85. package/dist/fix-recipes.js.map +1 -1
  86. package/dist/hand-built-manifest.d.ts +27 -0
  87. package/dist/hand-built-manifest.d.ts.map +1 -0
  88. package/dist/hand-built-manifest.js +124 -0
  89. package/dist/hand-built-manifest.js.map +1 -0
  90. package/dist/hooks-report.d.ts +23 -0
  91. package/dist/hooks-report.d.ts.map +1 -0
  92. package/dist/hooks-report.js +104 -0
  93. package/dist/hooks-report.js.map +1 -0
  94. package/dist/init-agents.d.ts +18 -2
  95. package/dist/init-agents.d.ts.map +1 -1
  96. package/dist/init-agents.js +20 -13
  97. package/dist/init-agents.js.map +1 -1
  98. package/dist/internal/config-paths.d.ts +16 -0
  99. package/dist/internal/config-paths.d.ts.map +1 -0
  100. package/dist/internal/config-paths.js +124 -0
  101. package/dist/internal/config-paths.js.map +1 -0
  102. package/dist/internal/installed-package.d.ts +4 -0
  103. package/dist/internal/installed-package.d.ts.map +1 -0
  104. package/dist/internal/installed-package.js +17 -0
  105. package/dist/internal/installed-package.js.map +1 -0
  106. package/dist/internal/nifra-project.d.ts +41 -0
  107. package/dist/internal/nifra-project.d.ts.map +1 -0
  108. package/dist/internal/nifra-project.js +183 -0
  109. package/dist/internal/nifra-project.js.map +1 -0
  110. package/dist/internal/project-specifiers.d.ts +29 -0
  111. package/dist/internal/project-specifiers.d.ts.map +1 -0
  112. package/dist/internal/project-specifiers.js +435 -0
  113. package/dist/internal/project-specifiers.js.map +1 -0
  114. package/dist/internal/script-kind.d.ts.map +1 -1
  115. package/dist/internal/script-kind.js +2 -1
  116. package/dist/internal/script-kind.js.map +1 -1
  117. package/dist/internal/source-facts.d.ts +8 -1
  118. package/dist/internal/source-facts.d.ts.map +1 -1
  119. package/dist/internal/source-facts.js +22 -5
  120. package/dist/internal/source-facts.js.map +1 -1
  121. package/dist/internal/typescript-import.d.ts +1 -1
  122. package/dist/internal/typescript-import.d.ts.map +1 -1
  123. package/dist/internal/typescript-import.js +10 -6
  124. package/dist/internal/typescript-import.js.map +1 -1
  125. package/dist/introspect.d.ts +15 -6
  126. package/dist/introspect.d.ts.map +1 -1
  127. package/dist/introspect.js +87 -25
  128. package/dist/introspect.js.map +1 -1
  129. package/dist/levels-tool.d.ts.map +1 -1
  130. package/dist/levels-tool.js +98 -23
  131. package/dist/levels-tool.js.map +1 -1
  132. package/dist/load.d.ts +33 -10
  133. package/dist/load.d.ts.map +1 -1
  134. package/dist/load.js +60 -10
  135. package/dist/load.js.map +1 -1
  136. package/dist/mcp-context.d.ts +5 -5
  137. package/dist/mcp-context.d.ts.map +1 -1
  138. package/dist/mcp-context.js +8 -23
  139. package/dist/mcp-context.js.map +1 -1
  140. package/dist/mcp-delegate.d.ts +2 -2
  141. package/dist/mcp-delegate.d.ts.map +1 -1
  142. package/dist/mcp-delegate.js +19 -7
  143. package/dist/mcp-delegate.js.map +1 -1
  144. package/dist/mcp-exec.d.ts +13 -4
  145. package/dist/mcp-exec.d.ts.map +1 -1
  146. package/dist/mcp-exec.js +56 -14
  147. package/dist/mcp-exec.js.map +1 -1
  148. package/dist/mcp-http.js +1 -1
  149. package/dist/mcp-io.d.ts +30 -0
  150. package/dist/mcp-io.d.ts.map +1 -1
  151. package/dist/mcp-io.js +63 -0
  152. package/dist/mcp-io.js.map +1 -1
  153. package/dist/mcp-isolate.d.ts.map +1 -1
  154. package/dist/mcp-isolate.js +3 -2
  155. package/dist/mcp-isolate.js.map +1 -1
  156. package/dist/mcp-path.d.ts +2 -1
  157. package/dist/mcp-path.d.ts.map +1 -1
  158. package/dist/mcp-path.js +9 -24
  159. package/dist/mcp-path.js.map +1 -1
  160. package/dist/mcp-project-child.js +1 -1
  161. package/dist/mcp-project-child.js.map +1 -1
  162. package/dist/mcp-root.d.ts.map +1 -1
  163. package/dist/mcp-root.js +50 -10
  164. package/dist/mcp-root.js.map +1 -1
  165. package/dist/mcp-ws.d.ts.map +1 -1
  166. package/dist/mcp-ws.js +3 -1
  167. package/dist/mcp-ws.js.map +1 -1
  168. package/dist/mcp.d.ts.map +1 -1
  169. package/dist/mcp.js +48 -19
  170. package/dist/mcp.js.map +1 -1
  171. package/dist/migrate-layout.d.ts +47 -1
  172. package/dist/migrate-layout.d.ts.map +1 -1
  173. package/dist/migrate-layout.js +1972 -170
  174. package/dist/migrate-layout.js.map +1 -1
  175. package/dist/output-schemas.d.ts +128 -0
  176. package/dist/output-schemas.d.ts.map +1 -0
  177. package/dist/output-schemas.js +975 -0
  178. package/dist/output-schemas.js.map +1 -0
  179. package/dist/port.d.ts.map +1 -1
  180. package/dist/port.js +3 -2
  181. package/dist/port.js.map +1 -1
  182. package/dist/project-facts.d.ts +15 -4
  183. package/dist/project-facts.d.ts.map +1 -1
  184. package/dist/project-facts.js +1 -0
  185. package/dist/project-facts.js.map +1 -1
  186. package/dist/project-path.d.ts +6 -0
  187. package/dist/project-path.d.ts.map +1 -1
  188. package/dist/project-path.js +48 -14
  189. package/dist/project-path.js.map +1 -1
  190. package/dist/recipes/5.0.0.d.ts +11 -0
  191. package/dist/recipes/5.0.0.d.ts.map +1 -0
  192. package/dist/recipes/5.0.0.js +34 -0
  193. package/dist/recipes/5.0.0.js.map +1 -0
  194. package/dist/recipes/index.d.ts +7 -0
  195. package/dist/recipes/index.d.ts.map +1 -1
  196. package/dist/recipes/index.js +2 -0
  197. package/dist/recipes/index.js.map +1 -1
  198. package/dist/release-verification.d.ts +5 -0
  199. package/dist/release-verification.d.ts.map +1 -1
  200. package/dist/release-verification.js +14 -0
  201. package/dist/release-verification.js.map +1 -1
  202. package/dist/replay.d.ts.map +1 -1
  203. package/dist/replay.js +12 -3
  204. package/dist/replay.js.map +1 -1
  205. package/dist/review.d.ts +3 -1
  206. package/dist/review.d.ts.map +1 -1
  207. package/dist/review.js +43 -7
  208. package/dist/review.js.map +1 -1
  209. package/dist/rules/codes.d.ts +12 -0
  210. package/dist/rules/codes.d.ts.map +1 -1
  211. package/dist/rules/codes.js +12 -0
  212. package/dist/rules/codes.js.map +1 -1
  213. package/dist/rules/comment-markers.d.ts +16 -7
  214. package/dist/rules/comment-markers.d.ts.map +1 -1
  215. package/dist/rules/comment-markers.js +58 -19
  216. package/dist/rules/comment-markers.js.map +1 -1
  217. package/dist/rules/contract-visibility.d.ts +3 -0
  218. package/dist/rules/contract-visibility.d.ts.map +1 -0
  219. package/dist/rules/contract-visibility.js +337 -0
  220. package/dist/rules/contract-visibility.js.map +1 -0
  221. package/dist/rules/data-guard.d.ts +13 -0
  222. package/dist/rules/data-guard.d.ts.map +1 -1
  223. package/dist/rules/data-guard.js +356 -37
  224. package/dist/rules/data-guard.js.map +1 -1
  225. package/dist/rules/layout.d.ts +4 -0
  226. package/dist/rules/layout.d.ts.map +1 -0
  227. package/dist/rules/layout.js +19 -0
  228. package/dist/rules/layout.js.map +1 -0
  229. package/dist/rules/legacy.d.ts.map +1 -1
  230. package/dist/rules/legacy.js +178 -44
  231. package/dist/rules/legacy.js.map +1 -1
  232. package/dist/rules/pages.d.ts +50 -0
  233. package/dist/rules/pages.d.ts.map +1 -1
  234. package/dist/rules/pages.js +436 -4
  235. package/dist/rules/pages.js.map +1 -1
  236. package/dist/rules/routes.d.ts +6 -0
  237. package/dist/rules/routes.d.ts.map +1 -1
  238. package/dist/rules/routes.js +111 -16
  239. package/dist/rules/routes.js.map +1 -1
  240. package/dist/rules/secrets.js +2 -2
  241. package/dist/rules/secrets.js.map +1 -1
  242. package/dist/rules/security.d.ts +13 -1
  243. package/dist/rules/security.d.ts.map +1 -1
  244. package/dist/rules/security.js +313 -69
  245. package/dist/rules/security.js.map +1 -1
  246. package/dist/rules/zones.d.ts +13 -0
  247. package/dist/rules/zones.d.ts.map +1 -1
  248. package/dist/rules/zones.js +218 -44
  249. package/dist/rules/zones.js.map +1 -1
  250. package/dist/scaffold.d.ts.map +1 -1
  251. package/dist/scaffold.js +6 -4
  252. package/dist/scaffold.js.map +1 -1
  253. package/dist/sdk.d.ts.map +1 -1
  254. package/dist/sdk.js +14 -5
  255. package/dist/sdk.js.map +1 -1
  256. package/dist/stylex-migrate.d.ts.map +1 -1
  257. package/dist/stylex-migrate.js +290 -24
  258. package/dist/stylex-migrate.js.map +1 -1
  259. package/dist/test-tool.d.ts.map +1 -1
  260. package/dist/test-tool.js +6 -3
  261. package/dist/test-tool.js.map +1 -1
  262. package/dist/typecheck-coverage.d.ts +20 -0
  263. package/dist/typecheck-coverage.d.ts.map +1 -0
  264. package/dist/typecheck-coverage.js +129 -0
  265. package/dist/typecheck-coverage.js.map +1 -0
  266. package/dist/upgrade.d.ts +84 -0
  267. package/dist/upgrade.d.ts.map +1 -1
  268. package/dist/upgrade.js +498 -78
  269. package/dist/upgrade.js.map +1 -1
  270. package/dist/verification-plan.d.ts.map +1 -1
  271. package/dist/verification-plan.js +16 -2
  272. package/dist/verification-plan.js.map +1 -1
  273. package/dist/version-drift.d.ts +22 -0
  274. package/dist/version-drift.d.ts.map +1 -0
  275. package/dist/version-drift.js +94 -0
  276. package/dist/version-drift.js.map +1 -0
  277. package/dist/web-app-options.d.ts +1 -1
  278. package/dist/web-app-options.d.ts.map +1 -1
  279. package/dist/web-app-options.js +1 -1
  280. package/dist/web-app-options.js.map +1 -1
  281. package/dist/work-graph.d.ts.map +1 -1
  282. package/dist/work-graph.js +20 -8
  283. package/dist/work-graph.js.map +1 -1
  284. package/docs/examples.json +55 -7
  285. package/docs/llms-full.txt +2043 -222
  286. package/docs/types.json +1573 -246
  287. package/package.json +11 -12
  288. package/src/agent-files.ts +203 -0
  289. package/src/app-files.ts +34 -4
  290. package/src/assure-hydration.ts +18 -2
  291. package/src/assure.ts +88 -10
  292. package/src/capabilities-tool.ts +47 -9
  293. package/src/check-diagnostics.ts +75 -9
  294. package/src/check-scan.ts +1816 -377
  295. package/src/check.ts +258 -81
  296. package/src/cli.ts +242 -37
  297. package/src/client-module.ts +97 -0
  298. package/src/command-catalog.ts +237 -52
  299. package/src/component-check.ts +79 -0
  300. package/src/contract-proof.ts +3 -25
  301. package/src/contracts.ts +60 -3
  302. package/src/db-tool.ts +5 -2
  303. package/src/dev-bun-config.ts +51 -10
  304. package/src/dev-feed-tool.ts +112 -1
  305. package/src/diagnostics.ts +3 -0
  306. package/src/diff-tool.ts +33 -26
  307. package/src/doctor.ts +43 -21
  308. package/src/env-file.ts +7 -0
  309. package/src/fix-recipes.ts +116 -2
  310. package/src/hand-built-manifest.ts +144 -0
  311. package/src/hooks-report.ts +135 -0
  312. package/src/init-agents.ts +21 -14
  313. package/src/internal/config-paths.ts +154 -0
  314. package/src/internal/installed-package.ts +15 -0
  315. package/src/internal/nifra-project.ts +191 -0
  316. package/src/internal/project-specifiers.ts +477 -0
  317. package/src/internal/script-kind.ts +2 -1
  318. package/src/internal/source-facts.ts +48 -5
  319. package/src/internal/typescript-import.ts +15 -6
  320. package/src/introspect.ts +104 -28
  321. package/src/levels-tool.ts +124 -29
  322. package/src/load.ts +107 -17
  323. package/src/mcp-context.ts +12 -25
  324. package/src/mcp-delegate.ts +22 -10
  325. package/src/mcp-exec.ts +68 -18
  326. package/src/mcp-http.ts +1 -1
  327. package/src/mcp-io.ts +74 -0
  328. package/src/mcp-isolate.ts +9 -2
  329. package/src/mcp-path.ts +8 -22
  330. package/src/mcp-project-child.ts +1 -1
  331. package/src/mcp-root.ts +58 -8
  332. package/src/mcp-ws.ts +4 -2
  333. package/src/mcp.ts +56 -22
  334. package/src/migrate-layout.ts +2257 -176
  335. package/src/output-schemas.ts +1240 -0
  336. package/src/port.ts +3 -2
  337. package/src/project-facts.ts +17 -3
  338. package/src/project-path.ts +44 -13
  339. package/src/recipes/5.0.0.ts +35 -0
  340. package/src/recipes/index.ts +10 -0
  341. package/src/release-verification.ts +20 -0
  342. package/src/replay.ts +14 -3
  343. package/src/review.ts +44 -10
  344. package/src/rules/codes.ts +12 -0
  345. package/src/rules/comment-markers.ts +57 -21
  346. package/src/rules/contract-visibility.ts +383 -0
  347. package/src/rules/data-guard.ts +391 -42
  348. package/src/rules/layout.ts +22 -0
  349. package/src/rules/legacy.ts +206 -52
  350. package/src/rules/pages.ts +481 -4
  351. package/src/rules/routes.ts +124 -16
  352. package/src/rules/secrets.ts +2 -2
  353. package/src/rules/security.ts +391 -72
  354. package/src/rules/zones.ts +232 -42
  355. package/src/scaffold.ts +6 -4
  356. package/src/sdk.ts +14 -5
  357. package/src/stylex-migrate.ts +251 -24
  358. package/src/test-tool.ts +12 -3
  359. package/src/typecheck-coverage.ts +134 -0
  360. package/src/upgrade.ts +576 -72
  361. package/src/verification-plan.ts +33 -2
  362. package/src/version-drift.ts +118 -0
  363. package/src/web-app-options.ts +2 -2
  364. package/src/work-graph.ts +17 -12
package/dist/check.js CHANGED
@@ -15,17 +15,26 @@
15
15
  * `nifra_check` MCP tool, so an agent acts on diagnostics instead of scraping prose). Exits non-zero if
16
16
  * anything fails. Pure scanners (`scanFetchText`, `scanServerOnlyImports`) are unit-tested.
17
17
  */
18
- import { existsSync, readFileSync } from "node:fs";
19
- import { dirname, isAbsolute, join, relative } from "node:path";
18
+ import { existsSync, mkdtempSync, readFileSync, realpathSync, rmdirSync, rmSync } from "node:fs";
19
+ import { tmpdir } from "node:os";
20
+ import { dirname, isAbsolute, join, relative, resolve } from "node:path";
21
+ import { declaredSide, specifierPackage } from "@nifrajs/web/zones";
20
22
  import { BACKEND_APP_FILE } from "./app-files.js";
21
- import { collectCheckDiagnostics, } from "./check-diagnostics.js";
23
+ import { collectCheckDiagnostics, safeIgnoreGlobMatch, } from "./check-diagnostics.js";
24
+ import { appDirs, clientModuleRoot } from "./client-module.js";
22
25
  import { checkContractsLock, DEFAULT_CONTRACTS_LOCK } from "./contracts.js";
23
26
  import { normalizeSeverity, toSarifLog } from "./diagnostics.js";
27
+ import { installedManifest } from "./internal/installed-package.js";
28
+ import { createApiOnlyProbe, createNifraProjectProbe } from "./internal/nifra-project.js";
29
+ import { createSpecifierResolver } from "./internal/project-specifiers.js";
24
30
  import { createSourceFacts } from "./internal/source-facts.js";
25
31
  import { loadProjectTypeScript } from "./internal/typescript-import.js";
32
+ import { forwardTerminalSignals, OWN_PROCESS_GROUP, signalProcessGroup } from "./mcp-io.js";
26
33
  import { RULE_CODES } from "./rules/codes.js";
27
34
  import { sourceIndex } from "./rules/index.js";
28
- import { createProjectSqlImports, isBrowserSource, resolveServerOnlyChains, scanFetchText, scanInterpolatedSql, scanRemovedImports, scanResponseRoutes, scanServerManifestDrift, scanStaticRouteText, scanStreamText, scanUntypedClient, walkSource, } from "./check-scan.js";
35
+ import { filesOutsideProgram, splitListedFiles } from "./typecheck-coverage.js";
36
+ import { COMPONENT_FILE, componentScripts, createProjectSqlImports, createServerOnlyChains, isBrowserSource, scanFetchText, scanRemovedImports, scanResponseRoutes, scanServerManifestDrift, scanSqlSites, scanStaticRouteText, scanStreamText, scanUnresolvedRoutePaths, scanUntypedClient, walkSource, } from "./check-scan.js";
37
+ import { componentCheckReceipts } from "./component-check.js";
29
38
  export * from "./check-scan.js";
30
39
  /**
31
40
  * Find the project's `tsc` the way module resolution would: `node_modules/typescript/bin/tsc` in
@@ -50,7 +59,7 @@ function resolveTscBin(cwd) {
50
59
  async function typecheck(cwd, signal) {
51
60
  const tsconfig = join(cwd, "tsconfig.json");
52
61
  if (!(await Bun.file(tsconfig).exists()))
53
- return { ran: false, ok: true, note: "no tsconfig.json" };
62
+ return { ran: false, ok: true, missingTsconfig: true, note: "no tsconfig.json" };
54
63
  // Routes import their generated `./+types` modules; bring them up to date before tsc reads them.
55
64
  const { refreshRouteTypes } = await import("./route-types.js");
56
65
  refreshRouteTypes(cwd, () => { });
@@ -63,41 +72,69 @@ async function typecheck(cwd, signal) {
63
72
  note: "typescript not installed (run: bun add -d typescript)",
64
73
  };
65
74
  }
75
+ const first = await runTsc(cwd, tscBin, tsconfig, true, signal);
76
+ // A compiler that rejects `--listFiles` still gets its typecheck; only the coverage check is lost.
77
+ if (!first.ok && !first.cancelled && /TS50(?:23|25)\b[^\n]*listFiles/.test(first.output ?? ""))
78
+ return runTsc(cwd, tscBin, tsconfig, false, signal);
79
+ return first;
80
+ }
81
+ async function runTsc(cwd, tscBin, tsconfig, listFiles, signal) {
66
82
  if (signal?.aborted)
67
83
  return { ran: true, ok: false, cancelled: true, output: "cancelled" };
68
- const proc = Bun.spawn([process.execPath, tscBin, "--noEmit", "-p", tsconfig], {
69
- cwd,
70
- stdout: "pipe",
71
- stderr: "pipe",
72
- });
73
- let cancelled = false;
74
- const abort = () => {
75
- cancelled = true;
76
- proc.kill();
77
- };
78
- signal?.addEventListener("abort", abort, { once: true });
79
- let out = "";
80
- let err = "";
81
- let code = null;
84
+ const args = [process.execPath, tscBin, "--noEmit", "-p", tsconfig];
85
+ if (listFiles)
86
+ args.push("--listFiles");
87
+ // tsc calls process.exit after printing. Bun can discard buffered pipe writes at that point,
88
+ // especially while the parent's other scans occupy the event loop. Files keep the full program.
89
+ const outputDirectory = mkdtempSync(join(tmpdir(), "nifra-tsc-"));
90
+ const stdout = Bun.file(join(outputDirectory, "stdout"));
91
+ const stderr = Bun.file(join(outputDirectory, "stderr"));
82
92
  try {
83
- const result = await Promise.all([
84
- new Response(proc.stdout).text(),
85
- new Response(proc.stderr).text(),
86
- proc.exited,
87
- ]);
88
- out = result[0];
89
- err = result[1];
90
- code = result[2];
93
+ const proc = Bun.spawn(args, {
94
+ cwd,
95
+ stdout,
96
+ stderr,
97
+ // Its own group lets cancellation also stop a compiler process the tsc entry started.
98
+ detached: OWN_PROCESS_GROUP,
99
+ });
100
+ let cancelled = false;
101
+ const stop = () => signalProcessGroup(proc, "SIGTERM");
102
+ const abort = () => {
103
+ cancelled = true;
104
+ stop();
105
+ };
106
+ signal?.addEventListener("abort", abort, { once: true });
107
+ const releaseSignals = forwardTerminalSignals(stop);
108
+ let out = "";
109
+ let err = "";
110
+ let code = null;
111
+ try {
112
+ code = await proc.exited;
113
+ const result = await Promise.all([stdout.text(), stderr.text()]);
114
+ out = result[0];
115
+ err = result[1];
116
+ }
117
+ finally {
118
+ signal?.removeEventListener("abort", abort);
119
+ releaseSignals();
120
+ }
121
+ if (cancelled)
122
+ return { ran: true, ok: false, output: "cancelled", cancelled: true };
123
+ const listed = listFiles ? splitListedFiles(out) : undefined;
124
+ return {
125
+ ran: true,
126
+ ok: code === 0,
127
+ output: `${listed?.output ?? out}${err}`.trim(),
128
+ ...(listed !== undefined && listed.programFiles.length > 0
129
+ ? { programFiles: listed.programFiles }
130
+ : {}),
131
+ };
91
132
  }
92
133
  finally {
93
- signal?.removeEventListener("abort", abort);
134
+ rmSync(join(outputDirectory, "stdout"), { force: true });
135
+ rmSync(join(outputDirectory, "stderr"), { force: true });
136
+ rmdirSync(outputDirectory);
94
137
  }
95
- return {
96
- ran: true,
97
- ok: code === 0 && !cancelled,
98
- output: cancelled ? "cancelled" : `${out}${err}`.trim(),
99
- ...(cancelled ? { cancelled: true } : {}),
100
- };
101
138
  }
102
139
  // `src/x.tsx(12,5): error TS2322: <message>` → one structured diagnostic.
103
140
  const OVERRIDE_SEVERITIES = ["error", "warn", "info", "off"];
@@ -168,12 +205,7 @@ async function collectContractFacts(cwd) {
168
205
  if (!hasBackend && !hasLock)
169
206
  return { present: false, vacuous: false, diagnostics: [] };
170
207
  try {
171
- const result = await checkContractsLock(cwd);
172
- return {
173
- present: result.present,
174
- vacuous: result.vacuous,
175
- diagnostics: result.diagnostics,
176
- };
208
+ return await checkContractsLock(cwd);
177
209
  }
178
210
  catch (error) {
179
211
  if (error instanceof Error && error.message === "contract source not configured") {
@@ -187,6 +219,22 @@ async function collectContractFacts(cwd) {
187
219
  };
188
220
  }
189
221
  }
222
+ /** A project whose TypeScript no tsconfig.json covers has no typecheck to pass: the gate fails. */
223
+ function withoutTsconfig(result, sourceFiles) {
224
+ if (result.missingTsconfig !== true)
225
+ return result;
226
+ const sources = sourceFiles.filter(({ file }) => !/\.d\.[cm]?ts$/.test(file)).length;
227
+ return sources === 0 ? result : { ...result, ok: false, sourcesWithoutTsconfig: sources };
228
+ }
229
+ /** Record the zoned files the compiler's program left out, minus the typecheck rule's `ignore` globs. */
230
+ function withProgramCoverage(cwd, result, sourceFiles, checkConfig) {
231
+ const { programFiles, ...rest } = result;
232
+ if (programFiles === undefined)
233
+ return result;
234
+ const ignore = (checkConfig.rules.typecheck ?? checkConfig.rules["NF-C001"])?.ignore;
235
+ const outside = filesOutsideProgram(cwd, sourceFiles.map((source) => source.file), programFiles).filter((file) => !ignore?.some((pattern) => safeIgnoreGlobMatch(pattern, file)));
236
+ return outside.length === 0 ? rest : { ...rest, outsideProgram: outside };
237
+ }
190
238
  /** Build the rule input from one source walk and the other check-wide scans. */
191
239
  async function buildProjectScan(cwd, opts) {
192
240
  const fetches = [];
@@ -197,10 +245,14 @@ async function buildProjectScan(cwd, opts) {
197
245
  const serverImports = [];
198
246
  const responseRoutes = [];
199
247
  const interpolatedSql = [];
248
+ const routePaths = [];
200
249
  const browserModules = [];
201
250
  const sourceFiles = [];
251
+ const inNifraProject = createNifraProjectProbe(cwd);
252
+ // An API-only project has no browser bundle for server code to reach.
253
+ const apiOnly = createApiOnlyProbe(cwd);
202
254
  const { config: checkConfig, error: checkConfigError, warnings: checkConfigWarnings, } = await loadCheckConfig(cwd);
203
- const [typecheckResult, _, doctor, manifestDrift, contracts] = await Promise.all([
255
+ const [typecheckRun, _, doctor, manifestDrift, contracts] = await Promise.all([
204
256
  opts.lintsOnly
205
257
  ? Promise.resolve({ ran: false, ok: true, note: "lints-only mode" })
206
258
  : typecheck(cwd, opts.signal),
@@ -210,13 +262,18 @@ async function buildProjectScan(cwd, opts) {
210
262
  streams.push(...scanStreamText(rel, content, checkConfig.externalMounts));
211
263
  untypedClients.push(...scanUntypedClient(rel, content));
212
264
  removedImports.push(...scanRemovedImports(rel, content));
213
- if (isBrowserSource(rel))
265
+ const dir = dirname(rel).replace(/^\.$/, "");
266
+ if (isBrowserSource(rel) && inNifraProject(dir) && !apiOnly(dir))
214
267
  browserModules.push({ rel, content });
215
- }),
268
+ }, { scripts: true }),
216
269
  import("./doctor.js").then((m) => m.collectDoctorResult(cwd)),
217
270
  scanServerManifestDrift(cwd),
218
271
  collectContractFacts(cwd),
219
272
  ]);
273
+ // tsc compiles TypeScript sources only; the JavaScript and component files the scan reads are no
274
+ // program's to cover.
275
+ const typeScriptSources = sourceFiles.filter(({ file }) => /\.[cm]?tsx?$/.test(file));
276
+ const typecheckResult = withoutTsconfig(withProgramCoverage(cwd, typecheckRun, typeScriptSources, checkConfig), typeScriptSources);
220
277
  // TypeScript 7's unstable API materializes source files through one project session. Build the
221
278
  // source index first so every syntax-backed scanner (including the independent rule registry)
222
279
  // shares that session instead of spawning one compiler process per rule.
@@ -224,38 +281,94 @@ async function buildProjectScan(cwd, opts) {
224
281
  const loadedTypeScript = await loadProjectTypeScript(cwd, opts.loadTypeScript, source);
225
282
  try {
226
283
  const sqlCompiler = loadedTypeScript.compiler;
227
- const sourceFacts = sqlCompiler === undefined ? undefined : createSourceFacts(sqlCompiler);
284
+ // Resolved modules stay project-relative, as the scanned files are: the zone of a path is read
285
+ // from its folders, and a checkout under a folder named `backend/` must not make it all backend.
286
+ // The resolver answers with real paths, so the project root is read as one too.
287
+ const realCwd = (() => {
288
+ try {
289
+ return realpathSync(cwd);
290
+ }
291
+ catch {
292
+ return cwd;
293
+ }
294
+ })();
295
+ const resolveSpecifier = createSpecifierResolver();
296
+ const sourceFacts = sqlCompiler === undefined
297
+ ? undefined
298
+ : createSourceFacts(sqlCompiler, {
299
+ keepsTypeOnlyImports: (file) => resolveSpecifier.keepsTypeOnlyImports(isAbsolute(file) ? file : join(realCwd, file)),
300
+ });
228
301
  const sqlImports = sqlCompiler === undefined ? undefined : createProjectSqlImports(cwd);
302
+ const project = new Map(sourceFiles.map(({ file, content }) => [file.replaceAll("\\", "/"), content]));
229
303
  for (const { file, content } of sourceFiles) {
230
- staticRoutes.push(...scanStaticRouteText(file, content, sourceFacts));
304
+ staticRoutes.push(...scanStaticRouteText(file, content, sourceFacts, project));
305
+ routePaths.push(...scanUnresolvedRoutePaths(file, content, project, sourceFacts));
231
306
  responseRoutes.push(...scanResponseRoutes(file, content, sourceFacts));
232
307
  if (sqlCompiler !== undefined)
233
- interpolatedSql.push(...scanInterpolatedSql(file, content, sqlCompiler, sqlImports));
308
+ interpolatedSql.push(...scanSqlSites(file, content, sqlCompiler, sqlImports));
234
309
  }
235
- // Resolved modules stay project-relative, as the scanned files are: the zone of a path is read
236
- // from its folders, and a checkout under a folder named `backend/` must not make it all backend.
310
+ const projectPath = (path) => {
311
+ const rel = relative(realCwd, path).replaceAll("\\", "/");
312
+ return rel.startsWith("../") || isAbsolute(rel) ? path : rel;
313
+ };
237
314
  const resolveModule = (fromFile, specifier) => {
315
+ const resolved = resolveSpecifier(isAbsolute(fromFile) ? fromFile : join(realCwd, fromFile), specifier);
316
+ return resolved === undefined ? undefined : projectPath(resolved);
317
+ };
318
+ const readModule = (path) => {
319
+ let text;
238
320
  try {
239
- const fromAbs = isAbsolute(fromFile) ? fromFile : join(cwd, fromFile);
240
- const resolved = Bun.resolveSync(specifier, dirname(fromAbs));
241
- const rel = relative(cwd, resolved).replaceAll("\\", "/");
242
- return rel.startsWith("../") || isAbsolute(rel) ? resolved : rel;
321
+ text = readFileSync(isAbsolute(path) ? path : join(cwd, path), "utf8");
243
322
  }
244
323
  catch {
245
324
  return undefined;
246
325
  }
326
+ return COMPONENT_FILE.test(path) ? componentScripts(text) : text;
247
327
  };
248
- const readModule = (path) => {
328
+ const components = await componentCheckReceipts(cwd, source);
329
+ const componentReceipts = components.receipts;
330
+ // An app's `clientModule` is browser code wherever it lives: the generated client entry imports it.
331
+ const browserRoots = new Set();
332
+ for (const app of appDirs(source.files)) {
333
+ const entry = clientModuleRoot(cwd, app, resolveSpecifier, sqlCompiler);
334
+ if (entry === undefined)
335
+ continue;
336
+ const rel = projectPath(entry.file);
337
+ if (isBrowserSource(rel) || browserRoots.has(rel))
338
+ continue;
339
+ const content = readModule(rel);
340
+ if (content === undefined)
341
+ continue;
342
+ browserRoots.add(rel);
343
+ browserModules.push({ rel, content });
344
+ }
345
+ // The side the package gives the entry the import names: package-wide, or per entry.
346
+ const backendPackage = (fromFile, specifier) => {
347
+ const name = specifierPackage(specifier);
348
+ if (name === undefined)
349
+ return false;
350
+ const manifest = installedManifest(isAbsolute(fromFile) ? fromFile : join(realCwd, fromFile), name);
351
+ if (manifest === undefined)
352
+ return false;
249
353
  try {
250
- return readFileSync(isAbsolute(path) ? path : join(cwd, path), "utf8");
354
+ const nifra = JSON.parse(readFileSync(manifest, "utf8"))?.nifra;
355
+ return (typeof nifra === "object" &&
356
+ nifra !== null &&
357
+ declaredSide(Reflect.get(nifra, "environment"), specifier) === "backend");
251
358
  }
252
359
  catch {
253
- return undefined;
360
+ return false;
254
361
  }
255
362
  };
256
- for (const { rel, content } of browserModules) {
257
- serverImports.push(...resolveServerOnlyChains(rel, content, resolveModule, readModule, sourceFacts));
258
- }
363
+ const serverOnlyChains = createServerOnlyChains({
364
+ resolve: resolveModule,
365
+ read: readModule,
366
+ facts: sourceFacts,
367
+ componentReceipts,
368
+ backendPackage,
369
+ });
370
+ for (const { rel, content } of browserModules)
371
+ serverImports.push(...serverOnlyChains(rel, content, browserRoots.has(rel)));
259
372
  const facts = {
260
373
  source,
261
374
  routes: staticRoutes,
@@ -266,6 +379,9 @@ async function buildProjectScan(cwd, opts) {
266
379
  check: {
267
380
  typecheck: typecheckResult,
268
381
  sqlCompilerAvailable: sqlCompiler !== undefined,
382
+ componentCheckUnsupported: components.unsupported === undefined
383
+ ? undefined
384
+ : { version: components.unsupported.version, message: components.unsupported.message },
269
385
  ...(loadedTypeScript.unsupported === undefined
270
386
  ? {}
271
387
  : { unsupportedTypeScriptVersion: loadedTypeScript.unsupported.version }),
@@ -283,6 +399,7 @@ async function buildProjectScan(cwd, opts) {
283
399
  removedImports,
284
400
  responseRoutes,
285
401
  interpolatedSql,
402
+ routePaths,
286
403
  },
287
404
  };
288
405
  return { facts };
@@ -295,7 +412,9 @@ async function buildProjectScan(cwd, opts) {
295
412
  /** Run the three checks and assemble a structured, machine-readable result. The single source the CLI
296
413
  * report, `--json`, and the MCP tool all render from. */
297
414
  /** Run the scan, freeze its facts, and project them into the public diagnostic result. */
298
- export async function collectCheckResult(cwd, opts = {}) {
415
+ export async function collectCheckResult(root, opts = {}) {
416
+ // The zone classifier works on absolute paths; under a relative root every file read as unzoned.
417
+ const cwd = resolve(root);
299
418
  const scan = await buildProjectScan(cwd, opts);
300
419
  try {
301
420
  return await collectCheckDiagnostics(cwd, scan, opts);
@@ -327,7 +446,7 @@ const REPORT_SECTIONS = [
327
446
  /**
328
447
  * Render the human-readable check report as lines. Pure (no I/O, no cwd) so tests can assert
329
448
  * report/exit-code parity: every diagnostic in `result.diagnostics` appears in the output, and the
330
- * trailer states the error/advisory counts that produced `ok`.
449
+ * trailer states the error, advisory and info counts that produced `ok`.
331
450
  */
332
451
  export function renderCheckReport(result) {
333
452
  const lines = [];
@@ -335,7 +454,7 @@ export function renderCheckReport(result) {
335
454
  lines.push(result.typecheck === "pass"
336
455
  ? "✓ typecheck passed"
337
456
  : result.typecheck === "fail"
338
- ? "✗ typecheck failed - the frontend/backend contract is broken"
457
+ ? `✗ typecheck failed - ${result.typecheckNote ?? "the frontend/backend contract is broken"}`
339
458
  : `⚠ typecheck SKIPPED - ${result.typecheckNote ?? "no tsconfig / typescript not installed"} (the contract gate did not run)`);
340
459
  // Stated on every run, passing or not. "Which bundler is this app on" decides which plugin slot is
341
460
  // live and which toolchain compiles a component, so it belongs in the report rather than only in the
@@ -374,12 +493,16 @@ export function renderCheckReport(result) {
374
493
  // resolve condition the Bun dev bundler can't take does not), so the counts are split rather than
375
494
  // rounded up to the worse of the two.
376
495
  const errors = ds.filter((d) => d.severity === "error").length;
377
- const advisory = ds.length - errors;
496
+ const warnings = ds.filter((d) => d.severity === "warning").length;
497
+ const infos = ds.length - errors - warnings;
498
+ const rest = belowError(warnings, infos);
378
499
  lines.push(ds.length === 0
379
500
  ? `✓ ${label}: none`
380
- : errors === 0
381
- ? `⚠ ${label}: ${advisory} (advisory)`
382
- : `✗ ${label}: ${errors}${advisory > 0 ? ` (+${advisory} advisory)` : ""}`);
501
+ : errors + warnings === 0
502
+ ? `• ${label}: ${ds.length} (info)`
503
+ : errors === 0
504
+ ? `⚠ ${label}: ${warnings} (advisory)${infos > 0 ? ` (+${infos} info)` : ""}`
505
+ : `✗ ${label}: ${errors}${rest === "" ? "" : ` (+${rest})`}`);
383
506
  }
384
507
  for (const d of ds) {
385
508
  lines.push(` ${d.file ?? ""}${d.line ? `:${d.line}` : ""} ${d.message}`);
@@ -418,14 +541,24 @@ export function renderCheckReport(result) {
418
541
  lines.push(`• showing ${result.truncated.shown} of ${result.truncated.total} diagnostics (truncated)`);
419
542
  }
420
543
  const errors = result.diagnostics.filter((d) => d.severity === "error").length;
421
- const advisory = result.diagnostics.length - errors;
544
+ const warnings = result.diagnostics.filter((d) => d.severity === "warning").length;
545
+ const rest = belowError(warnings, result.diagnostics.length - errors - warnings);
422
546
  lines.push("", result.ok
423
- ? advisory > 0
424
- ? `✓ check passed (${advisory} advisory)`
425
- : "✓ check passed"
426
- : `✗ check failed: ${errors} error${errors === 1 ? "" : "s"}${advisory > 0 ? ` (+${advisory} advisory)` : ""}`);
547
+ ? rest === ""
548
+ ? "✓ check passed"
549
+ : `✓ check passed (${rest})`
550
+ : `✗ check failed: ${errors} error${errors === 1 ? "" : "s"}${rest === "" ? "" : ` (+${rest})`}`);
427
551
  return lines;
428
552
  }
553
+ /** The findings that do not fail the check, named by severity: an info finding is not advisory. */
554
+ function belowError(warnings, infos) {
555
+ const parts = [];
556
+ if (warnings > 0)
557
+ parts.push(`${warnings} advisory`);
558
+ if (infos > 0)
559
+ parts.push(`${infos} info`);
560
+ return parts.join(", ");
561
+ }
429
562
  /** Run the full check; print a report (`--json` for machine output) and return whether it passed. */
430
563
  export async function runCheck(cwd, opts = {}) {
431
564
  // The check view over the one project verification: the same collector `assure` and `levels` read.
package/dist/check.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAKL,uBAAuB,EAEvB,mBAAmB,GACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAC3E,OAAO,EAAmB,iBAAiB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAsB,MAAM,iCAAiC,CAAA;AAC3F,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAI3F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAc/E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EAMf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EAIjB,UAAU,GACX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAE7D,cAAc,iBAAiB,CAAA;AAqB/B;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,GAAG,GAAG,GAAG,CAAA;IACb,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACvE,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAA;QACpC,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;AACH,CAAC;AAED,yGAAyG;AACzG,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,MAAoB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;IAC3C,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAA;IAClF,iGAAiG;IACjG,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAC9D,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;YACL,GAAG,EAAE,KAAK;YACV,EAAE,EAAE,KAAK;YACT,iBAAiB,EAAE,IAAI;YACvB,IAAI,EAAE,uDAAuD;SAC9D,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/D,mGAAmG;IACnG,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QAC5F,OAAO,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACrD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,KAAK,UAAU,MAAM,CACnB,GAAW,EACX,MAAc,EACd,QAAgB,EAChB,SAAkB,EAClB,MAAoB;IAEpB,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IAC1F,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IACnE,IAAI,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACvC,6FAA6F;IAC7F,gGAAgG;IAChG,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAA;IACjE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAA;IACxD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YAC3B,GAAG;YACH,MAAM;YACN,MAAM;YACN,sFAAsF;YACtF,QAAQ,EAAE,iBAAiB;SAC5B,CAAC,CAAA;QACF,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,MAAM,IAAI,GAAG,GAAS,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAC5D,MAAM,KAAK,GAAG,GAAS,EAAE;YACvB,SAAS,GAAG,IAAI,CAAA;YAChB,IAAI,EAAE,CAAA;QACR,CAAC,CAAA;QACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;QACnD,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,IAAI,IAAI,GAAkB,IAAI,CAAA;QAC9B,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAA;YACxB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAChE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACf,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC3C,cAAc,EAAE,CAAA;QAClB,CAAC;QACD,IAAI,SAAS;YAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;QACpF,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC5D,OAAO;YACL,GAAG,EAAE,IAAI;YACT,EAAE,EAAE,IAAI,KAAK,CAAC;YACd,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE;YAC/C,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBACxD,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;SACR,CAAA;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,SAAS,CAAC,eAAe,CAAC,CAAA;IAC5B,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,mBAAmB,GAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAE/E,KAAK,UAAU,eAAe,CAC5B,GAAW;IAEX,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAgB,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;IAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAGpD,CAAA;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAA;QAC7E,MAAM,cAAc,GAAG,GAAG;aACvB,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACtE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAA;QACjE,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,MAAM,KAAK,GAAiC,EAAE,CAAA;QAC9C,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,IACE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;gBAChC,MAAM,CAAC,KAAK,KAAK,IAAI;gBACrB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3B,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAA;YAC9F,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxE,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,gCAAgC,CAAC,CAAA;wBAC7D,SAAQ;oBACV,CAAC;oBACD,MAAM,KAAK,GAAG,KAAiD,CAAA;oBAC/D,MAAM,QAAQ,GAGV,EAAE,CAAA;oBACN,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;wBACjC,IACE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;4BAClC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC5C,CAAC;4BACD,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAiD,CAAA;wBAC7E,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,CACX,UAAU,IAAI,iEAAiE,CAChF,CAAA;wBACH,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC/B,IACE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;4BAC3B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAC7D,CAAC;4BACD,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gCAAE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;wBAC7D,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,oDAAoD,CAAC,CAAA;wBACnF,CAAC;oBACH,CAAC;oBACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;wBAClE,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAA;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7D,QAAQ,EAAE,EAAE;SACb,CAAA;IACH,CAAC;AACH,CAAC;AAcD,KAAK,UAAU,oBAAoB,CAAC,GAAW;IAC7C,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAC7D,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;IACvF,IAAI,CAAC;QACH,OAAO,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,gCAAgC,EAAE,CAAC;YACjF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;QAC5D,CAAC;QACD,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,EAAE;YACf,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAA;IACH,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,SAAS,eAAe,CACtB,MAAuB,EACvB,WAAqD;IAErD,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI;QAAE,OAAO,MAAM,CAAA;IAClD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IACpF,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAA;AAC3F,CAAC;AAED,yGAAyG;AACzG,SAAS,mBAAmB,CAC1B,GAAW,EACX,MAAuB,EACvB,WAAqD,EACrD,WAAwB;IAExB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IACxC,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IAC7C,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAA;IACpF,MAAM,OAAO,GAAG,mBAAmB,CACjC,GAAG,EACH,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EACxC,YAAY,CACb,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAClF,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAA;AAC3E,CAAC;AAED,gFAAgF;AAChF,KAAK,UAAU,gBAAgB,CAC7B,GAAW,EACX,IAA6E;IAE7E,MAAM,OAAO,GAAyB,EAAE,CAAA;IACxC,MAAM,OAAO,GAAyB,EAAE,CAAA;IACxC,MAAM,YAAY,GAAyB,EAAE,CAAA;IAC7C,MAAM,cAAc,GAAoB,EAAE,CAAA;IAC1C,MAAM,cAAc,GAAoB,EAAE,CAAA;IAC1C,MAAM,aAAa,GAAoC,EAAE,CAAA;IACzD,MAAM,cAAc,GAAoB,EAAE,CAAA;IAC1C,MAAM,eAAe,GAAiB,EAAE,CAAA;IACxC,MAAM,UAAU,GAAiC,EAAE,CAAA;IACnD,MAAM,cAAc,GAA4C,EAAE,CAAA;IAClE,MAAM,WAAW,GAA6C,EAAE,CAAA;IAChE,MAAM,cAAc,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAA;IACnD,sEAAsE;IACtE,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,EACJ,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,mBAAmB,GAC9B,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5E,IAAI,CAAC,SAAS;YACZ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAkB,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;YACrF,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;QAC/B,UAAU,CACR,GAAG,EACH,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACf,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;YACxC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,CAAA;YACxE,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,CAAA;YACzE,cAAc,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;YACvD,cAAc,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;YACxD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YAC5C,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC9D,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;QACzC,CAAC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB;QACD,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC7D,uBAAuB,CAAC,GAAG,CAAC;QAC5B,oBAAoB,CAAC,GAAG,CAAC;KAC1B,CAAC,CAAA;IAEF,iGAAiG;IACjG,sBAAsB;IACtB,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACrF,MAAM,eAAe,GAAG,eAAe,CACrC,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EACtE,iBAAiB,CAClB,CAAA;IAED,+FAA+F;IAC/F,8FAA8F;IAC9F,yEAAyE;IACzE,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IACvC,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACtF,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAA;QAC7C,+FAA+F;QAC/F,iGAAiG;QACjG,gFAAgF;QAChF,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC;gBACH,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC,CAAC,EAAE,CAAA;QACJ,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAA;QAClD,MAAM,WAAW,GACf,WAAW,KAAK,SAAS;YACvB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE;gBAC7B,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC7B,gBAAgB,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACvF,CAAC,CAAA;QACR,MAAM,UAAU,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAA;QACvF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAC9E,CAAA;QACD,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC;YAC5C,YAAY,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;YAC9E,UAAU,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;YACjF,cAAc,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;YACtE,IAAI,WAAW,KAAK,SAAS;gBAC3B,eAAe,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;QACjF,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE;YAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACzD,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;QAC9D,CAAC,CAAA;QACD,MAAM,aAAa,GAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;YAC5D,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EACzD,SAAS,CACV,CAAA;YACD,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QACnE,CAAC,CAAA;QACD,MAAM,UAAU,GAAiB,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,IAAY,CAAA;YAChB,IAAI,CAAC;gBACH,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;YACxE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAClE,CAAC,CAAA;QACD,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC5D,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAA;QAC7C,oGAAoG;QACpG,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;QACtC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAA;YACvE,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAQ;YACjC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAQ;YAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAQ;YACnC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACrB,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;QACvC,CAAC;QACD,qFAAqF;QACrF,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAW,EAAE;YACtE,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;YACxC,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAA;YACpC,MAAM,QAAQ,GAAG,iBAAiB,CAChC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EACzD,IAAI,CACL,CAAA;YACD,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAA;YACxC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAA;gBACxE,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;oBACzB,KAAK,KAAK,IAAI;oBACd,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,KAAK,SAAS,CACzE,CAAA;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAA;QACD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;YAC9C,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,WAAW;YAClB,iBAAiB;YACjB,cAAc;SACf,CAAC,CAAA;QACF,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,cAAc;YAC3C,aAAa,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAE9E,MAAM,KAAK,GAAqB;YAC9B,MAAM;YACN,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;YACnC,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvE,QAAQ,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE;YACxC,KAAK,EAAE;gBACL,SAAS,EAAE,eAAe;gBAC1B,oBAAoB,EAAE,WAAW,KAAK,SAAS;gBAC/C,yBAAyB,EACvB,UAAU,CAAC,WAAW,KAAK,SAAS;oBAClC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC1F,GAAG,CAAC,gBAAgB,CAAC,WAAW,KAAK,SAAS;oBAC5C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,4BAA4B,EAAE,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC3E,GAAG,CAAC,gBAAgB,CAAC,OAAO,KAAK,SAAS;oBACxC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBACpD,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC;gBAC/D,mBAAmB;gBACnB,SAAS;aACV;YACD,cAAc,EAAE;gBACd,OAAO;gBACP,OAAO;gBACP,cAAc;gBACd,cAAc;gBACd,cAAc;gBACd,eAAe;gBACf,UAAU;aACX;SACF,CAAA;QACD,OAAO,EAAE,KAAK,EAAE,CAAA;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QACvC,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED;yDACyD;AACzD,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,OAA+B,EAAE;IAEjC,iGAAiG;IACjG,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC9C,IAAI,CAAC;QACH,OAAO,MAAM,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACvD,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAA;IACnD,CAAC;AACH,CAAC;AAED;;uGAEuG;AACvG,MAAM,eAAe,GAAG;IACtB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,cAAc,EAAE,2DAA2D,CAAC;IAC7E,CAAC,gBAAgB,EAAE,oDAAoD,CAAC;IACxE,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;IACtD,CAAC,kBAAkB,EAAE,uDAAuD,CAAC;IAC7E,CAAC,gBAAgB,EAAE,2DAA2D,CAAC;IAC/E,CAAC,uBAAuB,EAAE,uCAAuC,CAAC;IAClE,CAAC,mBAAmB,EAAE,iDAAiD,CAAC;IACxE,CAAC,sBAAsB,EAAE,6CAA6C,CAAC;IACvE,CAAC,UAAU,EAAE,oCAAoC,CAAC;IAClD,CAAC,uBAAuB,EAAE,yCAAyC,CAAC;IACpE,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;IACpD,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;IACvD,CAAC,mBAAmB,EAAE,6BAA6B,CAAC;IACpD,CAAC,cAAc,EAAE,kBAAkB,CAAC;CAC5B,CAAA;AAEV;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACnD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;IAC7B,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,SAAS,KAAK,MAAM;QACzB,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,MAAM;YAC3B,CAAC,CAAC,wBAAwB,MAAM,CAAC,aAAa,IAAI,yCAAyC,EAAE;YAC7F,CAAC,CAAC,yBAAyB,MAAM,CAAC,aAAa,IAAI,wCAAwC,kCAAkC,CAClI,CAAA;IACD,mGAAmG;IACnG,qGAAqG;IACrG,gDAAgD;IAChD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;YACpC,CAAC,CAAC,gCAAgC,MAAM,CAAC,QAAQ,CAAC,UAAU,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC1F,CAAC,CAAC,cAAc,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CACzE,CAAA;IACH,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5E,KAAK,CAAC,IAAI,CACR,6DAA6D,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAA;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,yCAAyC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,EAAE,YAAY,IAAI,EAAE,CAAA;IACjE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1E,KAAK,CAAC,IAAI,CAAC,kEAAkE,QAAQ,EAAE,CAAC,CAAA;IAC1F,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC3E,MAAM,KAAK,GAAa,EAAE,CAAA;YAC1B,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;YAChF,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACpF,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QACxC,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,IAAI,CAAC,2CAA2C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAA8B,EAAQ,EAAE;QAC1F,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,iGAAiG;YACjG,+FAA+F;YAC/F,kGAAkG;YAClG,sCAAsC;YACtC,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAA;YAC9D,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAA;YAClE,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;YAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YACxC,KAAK,CAAC,IAAI,CACR,EAAE,CAAC,MAAM,KAAK,CAAC;gBACb,CAAC,CAAC,KAAK,KAAK,QAAQ;gBACpB,CAAC,CAAC,MAAM,GAAG,QAAQ,KAAK,CAAC;oBACvB,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC,MAAM,SAAS;oBACnC,CAAC,CAAC,MAAM,KAAK,CAAC;wBACZ,CAAC,CAAC,KAAK,KAAK,KAAK,QAAQ,cAAc,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC7E,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,CACnE,CAAA;QACH,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;YAC5E,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC9C,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACvC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAChE,CAAC;gBACD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACpC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;gBAC/E,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;oBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;YAC5E,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC;QAC5C,aAAa,CACX,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAClD,CAAA;IACH,CAAC;IACD,gGAAgG;IAChG,gGAAgG;IAChG,8FAA8F;IAC9F,oDAAoD;IACpD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAS,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACpE,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACjF,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAI,UAAiD,CAAC,IAAI,CAAC,CAAA;QACtE,aAAa,CACX,IAAI,EACJ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EACjD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAClD,CAAA;IACH,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,aAAa,MAAM,CAAC,SAAS,CAAC,KAAK,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,0BAA0B,CAC3F,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAA;IAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAA;IAClF,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAA;IAChF,KAAK,CAAC,IAAI,CACR,EAAE,EACF,MAAM,CAAC,EAAE;QACP,CAAC,CAAC,IAAI,KAAK,EAAE;YACX,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,mBAAmB,IAAI,GAAG;QAC9B,CAAC,CAAC,mBAAmB,MAAM,SAAS,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,CACnG,CAAA;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,mGAAmG;AACnG,SAAS,UAAU,CAAC,QAAgB,EAAE,KAAa;IACjD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,QAAQ,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,WAAW,CAAC,CAAA;IACpD,IAAI,KAAK,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC,CAAA;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,qGAAqG;AACrG,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,OAKI,EAAE;IAEN,mGAAmG;IACnG,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;IACxE,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAA;IAClG,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,CAAA;IACzC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GACf,MAAM,CAAC,qBAAqB;YAC5B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACjC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;gBAC9B,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC3C,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;gBACzD,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;gBACzD,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrE,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;gBAClE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;aAChE,CAAC,CAAC,CAAA;QACL,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7D,OAAO,MAAM,CAAC,EAAE,CAAA;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS;YACpE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,qBAAqB,EAAE;YAC1D,CAAC,CAAC,MAAM,EACV,IAAI,EACJ,CAAC,CACF,CACF,CAAA;QACD,OAAO,MAAM,CAAC,EAAE,CAAA;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,qGAAqG;IACrG,kHAAkH;IAClH,uFAAuF;IACvF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CACT,2GAA2G,CAC5G,CAAA;IACH,CAAC;IACD,+FAA+F;IAC/F,8FAA8F;IAC9F,+FAA+F;IAC/F,8FAA8F;IAC9F,4EAA4E;IAC5E,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CACT,wKAAwK,CACzK,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAA;AAClB,CAAC"}
package/dist/cli.d.ts CHANGED
@@ -82,6 +82,8 @@ export declare function assertFrameworkOptionsEdgeExported(fw: NifraFramework, c
82
82
  /** `nifra dev` shows the in-page issues badge unless `--no-indicator` or `dev.indicator: false` turns it off. */
83
83
  export declare function showsIndicator(flags: Pick<Flags, "noIndicator">, fw: Pick<NifraFramework, "dev">): boolean;
84
84
  export declare function assertNoShadowedPages(app: LoadedApp): void;
85
+ /** The flags of `nifra dev`, `build` and `start`, as `--flag value` or `--flag=value`. Anything else is
86
+ * refused: an ignored `--target=vercel` would build the default target and exit 0. */
85
87
  export declare function parseFlags(args: readonly string[]): Flags;
86
88
  /**
87
89
  * `assure` uses the structured-bundle lane only when explicitly asked. A bare `--json` is NOT a
@@ -90,4 +92,11 @@ export declare function parseFlags(args: readonly string[]): Flags;
90
92
  * bundle-only flag) opts in; `--bundle --json` still yields the bundle, which is always JSON.
91
93
  */
92
94
  export declare function assureBundleRequested(argv: readonly string[]): boolean;
95
+ /**
96
+ * The command vector from one runtime argv: the command, then its arguments. Arguments typed before
97
+ * the command (`nifra --json check`) follow the command's own, ahead of any `--`, rather than being
98
+ * dropped. Only when index 1 is the script: a runtime flag there means the leading entries are the
99
+ * runtime's own, not the caller's.
100
+ */
101
+ export declare function commandArgv(values: readonly string[], commandIndex: number): readonly string[];
93
102
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA2BA,OAAO,EAAyB,KAAK,SAAS,EAAW,KAAK,cAAc,EAAE,MAAM,WAAW,CAAA;AAQ/F,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,gFAAgF;IAChF,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB;gDAC4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB;0GACsG;IACtG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB;;;yGAGqG;IACrG,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB;;uGAEmG;IACnG,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAA;IACxC,oGAAoG;IACpG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B;AA6PD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAoBnD;AAoPD;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,EAC1B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;;;;;;;GASG;AACH,wBAAsB,kCAAkC,CACtD,EAAE,EAAE,cAAc,EAClB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;;GAIG;AACH,iHAAiH;AACjH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,EACjC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,GAC9B,OAAO,CAET;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAM1D;AAuMD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CA6BzD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAQtE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA2BA,OAAO,EAAyB,KAAK,SAAS,EAAW,KAAK,cAAc,EAAE,MAAM,WAAW,CAAA;AAQ/F,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,gFAAgF;IAChF,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB;gDAC4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB;0GACsG;IACtG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB;;;yGAGqG;IACrG,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB;;uGAEmG;IACnG,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAA;IACxC,oGAAoG;IACpG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B;AAyRD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAoBnD;AAkRD;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,EAC1B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;;;;;;;GASG;AACH,wBAAsB,kCAAkC,CACtD,EAAE,EAAE,cAAc,EAClB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;;GAIG;AACH,iHAAiH;AACjH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,EACjC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,GAC9B,OAAO,CAET;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAM1D;AA2PD;sFACsF;AACtF,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CA+CzD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAQtE;AA+ZD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAS9F"}