@endora-commerce/cli 0.100.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 (356) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -0
  3. package/dist/bin/endora.d.ts +28 -0
  4. package/dist/bin/endora.d.ts.map +1 -0
  5. package/dist/bin/endora.js +926 -0
  6. package/dist/bin/endora.js.map +1 -0
  7. package/dist/check/estate.d.ts +189 -0
  8. package/dist/check/estate.d.ts.map +1 -0
  9. package/dist/check/estate.js +1037 -0
  10. package/dist/check/estate.js.map +1 -0
  11. package/dist/check/hosts.d.ts +25 -0
  12. package/dist/check/hosts.d.ts.map +1 -0
  13. package/dist/check/hosts.js +1347 -0
  14. package/dist/check/hosts.js.map +1 -0
  15. package/dist/check/index.d.ts +60 -0
  16. package/dist/check/index.d.ts.map +1 -0
  17. package/dist/check/index.js +111 -0
  18. package/dist/check/index.js.map +1 -0
  19. package/dist/check/layout.d.ts +136 -0
  20. package/dist/check/layout.d.ts.map +1 -0
  21. package/dist/check/layout.js +262 -0
  22. package/dist/check/layout.js.map +1 -0
  23. package/dist/check/ledger.d.ts +98 -0
  24. package/dist/check/ledger.d.ts.map +1 -0
  25. package/dist/check/ledger.js +173 -0
  26. package/dist/check/ledger.js.map +1 -0
  27. package/dist/check/peer-owners.d.ts +116 -0
  28. package/dist/check/peer-owners.d.ts.map +1 -0
  29. package/dist/check/peer-owners.js +225 -0
  30. package/dist/check/peer-owners.js.map +1 -0
  31. package/dist/check/report.d.ts +33 -0
  32. package/dist/check/report.d.ts.map +1 -0
  33. package/dist/check/report.js +107 -0
  34. package/dist/check/report.js.map +1 -0
  35. package/dist/check/run.d.ts +147 -0
  36. package/dist/check/run.d.ts.map +1 -0
  37. package/dist/check/run.js +111 -0
  38. package/dist/check/run.js.map +1 -0
  39. package/dist/checks.d.ts +17 -0
  40. package/dist/checks.d.ts.map +1 -0
  41. package/dist/checks.js +17 -0
  42. package/dist/checks.js.map +1 -0
  43. package/dist/dev/index.d.ts +83 -0
  44. package/dist/dev/index.d.ts.map +1 -0
  45. package/dist/dev/index.js +298 -0
  46. package/dist/dev/index.js.map +1 -0
  47. package/dist/generate/divergence.d.ts +38 -0
  48. package/dist/generate/divergence.d.ts.map +1 -0
  49. package/dist/generate/divergence.js +237 -0
  50. package/dist/generate/divergence.js.map +1 -0
  51. package/dist/generate/index.d.ts +90 -0
  52. package/dist/generate/index.d.ts.map +1 -0
  53. package/dist/generate/index.js +369 -0
  54. package/dist/generate/index.js.map +1 -0
  55. package/dist/index.d.ts +23 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +35 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/inputs/declaration.d.ts +18 -0
  60. package/dist/inputs/declaration.d.ts.map +1 -0
  61. package/dist/inputs/declaration.js +64 -0
  62. package/dist/inputs/declaration.js.map +1 -0
  63. package/dist/inputs/env-file.d.ts +73 -0
  64. package/dist/inputs/env-file.d.ts.map +1 -0
  65. package/dist/inputs/env-file.js +134 -0
  66. package/dist/inputs/env-file.js.map +1 -0
  67. package/dist/inputs/prompt.d.ts +21 -0
  68. package/dist/inputs/prompt.d.ts.map +1 -0
  69. package/dist/inputs/prompt.js +59 -0
  70. package/dist/inputs/prompt.js.map +1 -0
  71. package/dist/inputs/resolve.d.ts +163 -0
  72. package/dist/inputs/resolve.d.ts.map +1 -0
  73. package/dist/inputs/resolve.js +290 -0
  74. package/dist/inputs/resolve.js.map +1 -0
  75. package/dist/install/host.d.ts +27 -0
  76. package/dist/install/host.d.ts.map +1 -0
  77. package/dist/install/host.js +90 -0
  78. package/dist/install/host.js.map +1 -0
  79. package/dist/install/index.d.ts +173 -0
  80. package/dist/install/index.d.ts.map +1 -0
  81. package/dist/install/index.js +793 -0
  82. package/dist/install/index.js.map +1 -0
  83. package/dist/install/wizard.d.ts +144 -0
  84. package/dist/install/wizard.d.ts.map +1 -0
  85. package/dist/install/wizard.js +362 -0
  86. package/dist/install/wizard.js.map +1 -0
  87. package/dist/lib/admin-artefacts.d.ts +70 -0
  88. package/dist/lib/admin-artefacts.d.ts.map +1 -0
  89. package/dist/lib/admin-artefacts.js +354 -0
  90. package/dist/lib/admin-artefacts.js.map +1 -0
  91. package/dist/lib/admin-surfaces.d.ts +298 -0
  92. package/dist/lib/admin-surfaces.d.ts.map +1 -0
  93. package/dist/lib/admin-surfaces.js +669 -0
  94. package/dist/lib/admin-surfaces.js.map +1 -0
  95. package/dist/lib/delegated-composer.d.ts +85 -0
  96. package/dist/lib/delegated-composer.d.ts.map +1 -0
  97. package/dist/lib/delegated-composer.js +241 -0
  98. package/dist/lib/delegated-composer.js.map +1 -0
  99. package/dist/lib/divergence-artefacts.d.ts +305 -0
  100. package/dist/lib/divergence-artefacts.d.ts.map +1 -0
  101. package/dist/lib/divergence-artefacts.js +828 -0
  102. package/dist/lib/divergence-artefacts.js.map +1 -0
  103. package/dist/lib/divergence.d.ts +337 -0
  104. package/dist/lib/divergence.d.ts.map +1 -0
  105. package/dist/lib/divergence.js +1005 -0
  106. package/dist/lib/divergence.js.map +1 -0
  107. package/dist/lib/docs-artefacts.d.ts +395 -0
  108. package/dist/lib/docs-artefacts.d.ts.map +1 -0
  109. package/dist/lib/docs-artefacts.js +781 -0
  110. package/dist/lib/docs-artefacts.js.map +1 -0
  111. package/dist/lib/emitted-exports.d.ts +21 -0
  112. package/dist/lib/emitted-exports.d.ts.map +1 -0
  113. package/dist/lib/emitted-exports.js +96 -0
  114. package/dist/lib/emitted-exports.js.map +1 -0
  115. package/dist/lib/emitted-freshness.d.ts +112 -0
  116. package/dist/lib/emitted-freshness.d.ts.map +1 -0
  117. package/dist/lib/emitted-freshness.js +288 -0
  118. package/dist/lib/emitted-freshness.js.map +1 -0
  119. package/dist/lib/entity-index-artefact.d.ts +95 -0
  120. package/dist/lib/entity-index-artefact.d.ts.map +1 -0
  121. package/dist/lib/entity-index-artefact.js +210 -0
  122. package/dist/lib/entity-index-artefact.js.map +1 -0
  123. package/dist/lib/instance-build-inputs.d.ts +108 -0
  124. package/dist/lib/instance-build-inputs.d.ts.map +1 -0
  125. package/dist/lib/instance-build-inputs.js +165 -0
  126. package/dist/lib/instance-build-inputs.js.map +1 -0
  127. package/dist/lib/module-docs.d.ts +473 -0
  128. package/dist/lib/module-docs.d.ts.map +1 -0
  129. package/dist/lib/module-docs.js +711 -0
  130. package/dist/lib/module-docs.js.map +1 -0
  131. package/dist/lib/module-package-subpaths.d.ts +56 -0
  132. package/dist/lib/module-package-subpaths.d.ts.map +1 -0
  133. package/dist/lib/module-package-subpaths.js +223 -0
  134. package/dist/lib/module-package-subpaths.js.map +1 -0
  135. package/dist/lib/module-packages.d.ts +200 -0
  136. package/dist/lib/module-packages.d.ts.map +1 -0
  137. package/dist/lib/module-packages.js +580 -0
  138. package/dist/lib/module-packages.js.map +1 -0
  139. package/dist/lib/module-population.d.ts +129 -0
  140. package/dist/lib/module-population.d.ts.map +1 -0
  141. package/dist/lib/module-population.js +172 -0
  142. package/dist/lib/module-population.js.map +1 -0
  143. package/dist/lib/module-roots.d.ts +337 -0
  144. package/dist/lib/module-roots.d.ts.map +1 -0
  145. package/dist/lib/module-roots.js +586 -0
  146. package/dist/lib/module-roots.js.map +1 -0
  147. package/dist/lib/nested-checkouts.d.ts +33 -0
  148. package/dist/lib/nested-checkouts.d.ts.map +1 -0
  149. package/dist/lib/nested-checkouts.js +160 -0
  150. package/dist/lib/nested-checkouts.js.map +1 -0
  151. package/dist/lib/platform-root.d.ts +43 -0
  152. package/dist/lib/platform-root.d.ts.map +1 -0
  153. package/dist/lib/platform-root.js +134 -0
  154. package/dist/lib/platform-root.js.map +1 -0
  155. package/dist/lib/platform-surface.d.ts +235 -0
  156. package/dist/lib/platform-surface.d.ts.map +1 -0
  157. package/dist/lib/platform-surface.js +393 -0
  158. package/dist/lib/platform-surface.js.map +1 -0
  159. package/dist/lib/port-registrations.d.ts +223 -0
  160. package/dist/lib/port-registrations.d.ts.map +1 -0
  161. package/dist/lib/port-registrations.js +532 -0
  162. package/dist/lib/port-registrations.js.map +1 -0
  163. package/dist/lib/read-size.d.ts +154 -0
  164. package/dist/lib/read-size.d.ts.map +1 -0
  165. package/dist/lib/read-size.js +182 -0
  166. package/dist/lib/read-size.js.map +1 -0
  167. package/dist/lib/registration-owners.d.ts +79 -0
  168. package/dist/lib/registration-owners.d.ts.map +1 -0
  169. package/dist/lib/registration-owners.js +77 -0
  170. package/dist/lib/registration-owners.js.map +1 -0
  171. package/dist/lib/release-index.d.ts +53 -0
  172. package/dist/lib/release-index.d.ts.map +1 -0
  173. package/dist/lib/release-index.js +162 -0
  174. package/dist/lib/release-index.js.map +1 -0
  175. package/dist/lib/repeating-timers.d.ts +79 -0
  176. package/dist/lib/repeating-timers.d.ts.map +1 -0
  177. package/dist/lib/repeating-timers.js +189 -0
  178. package/dist/lib/repeating-timers.js.map +1 -0
  179. package/dist/lib/source-text.d.ts +34 -0
  180. package/dist/lib/source-text.d.ts.map +1 -0
  181. package/dist/lib/source-text.js +80 -0
  182. package/dist/lib/source-text.js.map +1 -0
  183. package/dist/lib/specifiers.d.ts +20 -0
  184. package/dist/lib/specifiers.d.ts.map +1 -0
  185. package/dist/lib/specifiers.js +130 -0
  186. package/dist/lib/specifiers.js.map +1 -0
  187. package/dist/lib/sql-tables.d.ts +166 -0
  188. package/dist/lib/sql-tables.d.ts.map +1 -0
  189. package/dist/lib/sql-tables.js +464 -0
  190. package/dist/lib/sql-tables.js.map +1 -0
  191. package/dist/lib/switchable-modules.d.ts +54 -0
  192. package/dist/lib/switchable-modules.d.ts.map +1 -0
  193. package/dist/lib/switchable-modules.js +104 -0
  194. package/dist/lib/switchable-modules.js.map +1 -0
  195. package/dist/lib/tailwind-sources.d.ts +136 -0
  196. package/dist/lib/tailwind-sources.d.ts.map +1 -0
  197. package/dist/lib/tailwind-sources.js +307 -0
  198. package/dist/lib/tailwind-sources.js.map +1 -0
  199. package/dist/lib/ui-layer.d.ts +54 -0
  200. package/dist/lib/ui-layer.d.ts.map +1 -0
  201. package/dist/lib/ui-layer.js +57 -0
  202. package/dist/lib/ui-layer.js.map +1 -0
  203. package/dist/lib/workspace-packages.d.ts +186 -0
  204. package/dist/lib/workspace-packages.d.ts.map +1 -0
  205. package/dist/lib/workspace-packages.js +351 -0
  206. package/dist/lib/workspace-packages.js.map +1 -0
  207. package/dist/new-instance/deploy.d.ts +211 -0
  208. package/dist/new-instance/deploy.d.ts.map +1 -0
  209. package/dist/new-instance/deploy.js +1381 -0
  210. package/dist/new-instance/deploy.js.map +1 -0
  211. package/dist/new-instance/docs-toolchain.d.ts +66 -0
  212. package/dist/new-instance/docs-toolchain.d.ts.map +1 -0
  213. package/dist/new-instance/docs-toolchain.js +69 -0
  214. package/dist/new-instance/docs-toolchain.js.map +1 -0
  215. package/dist/new-instance/host.d.ts +124 -0
  216. package/dist/new-instance/host.d.ts.map +1 -0
  217. package/dist/new-instance/host.js +276 -0
  218. package/dist/new-instance/host.js.map +1 -0
  219. package/dist/new-instance/index.d.ts +118 -0
  220. package/dist/new-instance/index.d.ts.map +1 -0
  221. package/dist/new-instance/index.js +567 -0
  222. package/dist/new-instance/index.js.map +1 -0
  223. package/dist/new-instance/modules.d.ts +188 -0
  224. package/dist/new-instance/modules.d.ts.map +1 -0
  225. package/dist/new-instance/modules.js +392 -0
  226. package/dist/new-instance/modules.js.map +1 -0
  227. package/dist/new-instance/template.d.ts +505 -0
  228. package/dist/new-instance/template.d.ts.map +1 -0
  229. package/dist/new-instance/template.js +1886 -0
  230. package/dist/new-instance/template.js.map +1 -0
  231. package/dist/new-module/emit.d.ts +67 -0
  232. package/dist/new-module/emit.d.ts.map +1 -0
  233. package/dist/new-module/emit.js +1393 -0
  234. package/dist/new-module/emit.js.map +1 -0
  235. package/dist/new-module/host.d.ts +67 -0
  236. package/dist/new-module/host.d.ts.map +1 -0
  237. package/dist/new-module/host.js +224 -0
  238. package/dist/new-module/host.js.map +1 -0
  239. package/dist/new-module/index.d.ts +32 -0
  240. package/dist/new-module/index.d.ts.map +1 -0
  241. package/dist/new-module/index.js +193 -0
  242. package/dist/new-module/index.js.map +1 -0
  243. package/dist/new-module/spec.d.ts +188 -0
  244. package/dist/new-module/spec.d.ts.map +1 -0
  245. package/dist/new-module/spec.js +404 -0
  246. package/dist/new-module/spec.js.map +1 -0
  247. package/dist/new-module/text.d.ts +15 -0
  248. package/dist/new-module/text.d.ts.map +1 -0
  249. package/dist/new-module/text.js +22 -0
  250. package/dist/new-module/text.js.map +1 -0
  251. package/dist/new-storefront/dockerfile.d.ts +20 -0
  252. package/dist/new-storefront/dockerfile.d.ts.map +1 -0
  253. package/dist/new-storefront/dockerfile.js +131 -0
  254. package/dist/new-storefront/dockerfile.js.map +1 -0
  255. package/dist/new-storefront/gitignore.d.ts +23 -0
  256. package/dist/new-storefront/gitignore.d.ts.map +1 -0
  257. package/dist/new-storefront/gitignore.js +39 -0
  258. package/dist/new-storefront/gitignore.js.map +1 -0
  259. package/dist/new-storefront/index.d.ts +93 -0
  260. package/dist/new-storefront/index.d.ts.map +1 -0
  261. package/dist/new-storefront/index.js +329 -0
  262. package/dist/new-storefront/index.js.map +1 -0
  263. package/dist/new-storefront/npmrc.d.ts +98 -0
  264. package/dist/new-storefront/npmrc.d.ts.map +1 -0
  265. package/dist/new-storefront/npmrc.js +217 -0
  266. package/dist/new-storefront/npmrc.js.map +1 -0
  267. package/dist/new-storefront/reference.d.ts +189 -0
  268. package/dist/new-storefront/reference.d.ts.map +1 -0
  269. package/dist/new-storefront/reference.js +430 -0
  270. package/dist/new-storefront/reference.js.map +1 -0
  271. package/dist/new-storefront/rewrite.d.ts +171 -0
  272. package/dist/new-storefront/rewrite.d.ts.map +1 -0
  273. package/dist/new-storefront/rewrite.js +701 -0
  274. package/dist/new-storefront/rewrite.js.map +1 -0
  275. package/dist/release-index.json +284 -0
  276. package/dist/rules/action-route-permissions.d.ts +141 -0
  277. package/dist/rules/action-route-permissions.d.ts.map +1 -0
  278. package/dist/rules/action-route-permissions.js +556 -0
  279. package/dist/rules/action-route-permissions.js.map +1 -0
  280. package/dist/rules/bundle-pairing.d.ts +74 -0
  281. package/dist/rules/bundle-pairing.d.ts.map +1 -0
  282. package/dist/rules/bundle-pairing.js +281 -0
  283. package/dist/rules/bundle-pairing.js.map +1 -0
  284. package/dist/rules/channel-resolution.d.ts +17 -0
  285. package/dist/rules/channel-resolution.d.ts.map +1 -0
  286. package/dist/rules/channel-resolution.js +382 -0
  287. package/dist/rules/channel-resolution.js.map +1 -0
  288. package/dist/rules/command-coverage.d.ts +210 -0
  289. package/dist/rules/command-coverage.d.ts.map +1 -0
  290. package/dist/rules/command-coverage.js +714 -0
  291. package/dist/rules/command-coverage.js.map +1 -0
  292. package/dist/rules/container-imports.d.ts +60 -0
  293. package/dist/rules/container-imports.d.ts.map +1 -0
  294. package/dist/rules/container-imports.js +158 -0
  295. package/dist/rules/container-imports.js.map +1 -0
  296. package/dist/rules/default-language-prose.d.ts +212 -0
  297. package/dist/rules/default-language-prose.d.ts.map +1 -0
  298. package/dist/rules/default-language-prose.js +710 -0
  299. package/dist/rules/default-language-prose.js.map +1 -0
  300. package/dist/rules/diacritic-folds.d.ts +238 -0
  301. package/dist/rules/diacritic-folds.d.ts.map +1 -0
  302. package/dist/rules/diacritic-folds.js +681 -0
  303. package/dist/rules/diacritic-folds.js.map +1 -0
  304. package/dist/rules/entity-tenant-classification.d.ts +171 -0
  305. package/dist/rules/entity-tenant-classification.d.ts.map +1 -0
  306. package/dist/rules/entity-tenant-classification.js +323 -0
  307. package/dist/rules/entity-tenant-classification.js.map +1 -0
  308. package/dist/rules/entry-presence.d.ts +142 -0
  309. package/dist/rules/entry-presence.d.ts.map +1 -0
  310. package/dist/rules/entry-presence.js +339 -0
  311. package/dist/rules/entry-presence.js.map +1 -0
  312. package/dist/rules/entry-scope.d.ts +91 -0
  313. package/dist/rules/entry-scope.d.ts.map +1 -0
  314. package/dist/rules/entry-scope.js +404 -0
  315. package/dist/rules/entry-scope.js.map +1 -0
  316. package/dist/rules/env-inputs.d.ts +222 -0
  317. package/dist/rules/env-inputs.d.ts.map +1 -0
  318. package/dist/rules/env-inputs.js +951 -0
  319. package/dist/rules/env-inputs.js.map +1 -0
  320. package/dist/rules/kernel-boundary.d.ts +37 -0
  321. package/dist/rules/kernel-boundary.d.ts.map +1 -0
  322. package/dist/rules/kernel-boundary.js +195 -0
  323. package/dist/rules/kernel-boundary.js.map +1 -0
  324. package/dist/rules/nul-bytes.d.ts +233 -0
  325. package/dist/rules/nul-bytes.d.ts.map +1 -0
  326. package/dist/rules/nul-bytes.js +332 -0
  327. package/dist/rules/nul-bytes.js.map +1 -0
  328. package/dist/rules/platform-surface.d.ts +479 -0
  329. package/dist/rules/platform-surface.d.ts.map +1 -0
  330. package/dist/rules/platform-surface.js +749 -0
  331. package/dist/rules/platform-surface.js.map +1 -0
  332. package/dist/rules/port-catches.d.ts +225 -0
  333. package/dist/rules/port-catches.d.ts.map +1 -0
  334. package/dist/rules/port-catches.js +1374 -0
  335. package/dist/rules/port-catches.js.map +1 -0
  336. package/dist/rules/port-shape.d.ts +213 -0
  337. package/dist/rules/port-shape.d.ts.map +1 -0
  338. package/dist/rules/port-shape.js +670 -0
  339. package/dist/rules/port-shape.js.map +1 -0
  340. package/dist/rules/queue-names.d.ts +108 -0
  341. package/dist/rules/queue-names.d.ts.map +1 -0
  342. package/dist/rules/queue-names.js +395 -0
  343. package/dist/rules/queue-names.js.map +1 -0
  344. package/dist/rules/singleton-identity.d.ts +205 -0
  345. package/dist/rules/singleton-identity.d.ts.map +1 -0
  346. package/dist/rules/singleton-identity.js +830 -0
  347. package/dist/rules/singleton-identity.js.map +1 -0
  348. package/dist/rules/subscribe-seam.d.ts +121 -0
  349. package/dist/rules/subscribe-seam.d.ts.map +1 -0
  350. package/dist/rules/subscribe-seam.js +594 -0
  351. package/dist/rules/subscribe-seam.js.map +1 -0
  352. package/dist/rules/transaction-context.d.ts +40 -0
  353. package/dist/rules/transaction-context.d.ts.map +1 -0
  354. package/dist/rules/transaction-context.js +294 -0
  355. package/dist/rules/transaction-context.js.map +1 -0
  356. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-surface.js","sourceRoot":"","sources":["../../src/rules/platform-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsOG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,GAIhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAqB,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,yEAAyE;AACzE,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAE9B,kFAAkF;AAClF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAE7B,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAiM1C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAA6C,EAC7C,gBAAqC;IAErC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO;QACL,MAAM,EAAE,iBAAiB;QACzB,QAAQ,EAAE,SAAS,CAAC,MAAM;QAC1B,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;KAC9E,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,KAAK,CAAC,OAA+B;IACnD,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED,8EAA8E;AAC9E;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,SAAiB,EACjB,KAA0B;IAE1B,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACnD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,KAAK,MAAM,SAAS,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAiBD;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA2B;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC;IACjD,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC;IAChC,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC;IAC5D,MAAM,cAAc,GAAG,CAAC,GAAW,EAAW,EAAE,CAC9C,kBAAkB,KAAK,IAAI;QAC3B,CAAC,GAAG,KAAK,kBAAkB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,kBAAkB,GAAG,CAAC,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,0EAA0E;YAC1E,wEAAwE;YACxE,mBAAmB;YACnB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,qBAAqB;gBAC3B,IAAI;gBACJ,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,4EAA4E;QAC5E,2EAA2E;QAC3E,IAAI,cAAc,CAAC,IAAI,CAAC;YAAE,SAAS;QAEnC,KAAK,MAAM,SAAS,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACpD,uEAAuE;YACvE,oEAAoE;YACpE,yEAAyE;YACzE,kDAAkD;YAClD,MAAM,SAAS,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7D,IAAI,SAAS,KAAK,IAAI;gBAAE,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,SAAS,EAAE,IAAI,KAAK,oBAAoB,IAAI,SAAS,EAAE,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBAC5F,QAAQ,CAAC,IAAI,CAAC;oBACZ,qEAAqE;oBACrE,mEAAmE;oBACnE,0CAA0C;oBAC1C,IAAI,EACF,SAAS,CAAC,IAAI,KAAK,oBAAoB;wBACrC,CAAC,CAAC,qBAAqB;wBACvB,CAAC,CAAC,uBAAuB;oBAC7B,IAAI;oBACJ,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,QAAQ;oBACR,MAAM,EAAE,SAAS,CAAC,IAAI;oBACtB,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,SAAS,CAAC,IAAI;iBAC1B,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,sEAAsE;YACtE,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACpE,MAAM,QAAQ,GACZ,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YAC3F,MAAM,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC9D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,oBAAoB;oBAC1B,IAAI;oBACJ,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,QAAQ;oBACR,MAAM,EAAE,SAAS,CAAC,IAAI;oBACtB,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,SAAS,CAAC,IAAI;iBAC1B,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,qEAAqE;YACrE,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI;gBAAE,SAAS;YAEzC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAClF,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;YAE9F,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,CAAC;gBACb,uEAAuE;gBACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvC,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,kBAAkB;wBACxB,IAAI;wBACJ,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,QAAQ;wBACR,MAAM;wBACN,MAAM,EAAE,UAAU;wBAClB,SAAS,EAAE,SAAS,CAAC,IAAI;qBAC1B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YAC3E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,CAAC;gBACb,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;oBAAE,SAAS;gBAChD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAClC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,oBAAoB;oBAC1B,IAAI;oBACJ,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,QAAQ;oBACR,MAAM;oBACN,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,SAAS,CAAC,IAAI;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACrB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QACf,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YACrB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;QACpC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CACjC,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;AACjD,CAAC;AAkBD,MAAM,UAAU,oBAAoB,CAClC,KAA2B,EAC3B,MAA+C;IAE/C,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,OAA+B,EAAW,EAAE,CAC1D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAEpE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;QAC3B,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE;QACjC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;QACpC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC;AACJ,CAAC;AAwED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,KAAyF;IAEzF,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,kBAAkB,GAAG,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,KAAK,MAAM,SAAS,IAAI,oBAAoB,CAAC,GAAG,KAAK,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QACpF,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E,SAAS,qBAAqB,CAAC,MAAc,EAAE,KAA4B;IACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;IAC5E,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1D,6DAA6D;QAC7D,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;IACxF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AASD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAA4B;IACjE,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,KAAK,MAAM,SAAS,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,MAAM,KAAK,IAAI;gBAAE,SAAS;YAC9B,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,MAAM,KAAK,IAAI;gBAAE,SAAS;YAC9B,OAAO,IAAI,CAAC,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,qBAAqB;gBAC3B,IAAI;gBACJ,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,QAAQ,EAAE,IAAI;gBACd,MAAM;gBACN,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,SAAS,CAAC,IAAI;gBACzB,WAAW,EAAE,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACrB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CACpF,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAA4B,EAC5B,MAAmD;IAEnD,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,CAAC,OAA+B,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,SAAS,CAAC;IAClG,OAAO;QACL,GAAG,IAAI;QACP,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAC/B,IAAI,EAAE;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAmD,EACnD,MAAiC,EACjC,MAA2B;IAE3B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzF,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,QAAQ,CAAC,MAAM;QACzB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;KAC5D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAGvC;IACC,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CACL,oFAAoF;YACpF,qFAAqF;YACrF,wEAAwE,CACzE,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CACL,oFAAoF;YACpF,oFAAoF;YACpF,gEAAgE,CACjE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAGtC;IACC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,CACL,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,mDAAmD;YACrF,mFAAmF;YACnF,+DAA+D,CAChE,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU;aACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;aACtE,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,CACL,qFAAqF;YACrF,kFAAkF;YAClF,kCAAkC,KAAK,EAAE,CAC1C,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,GAAW,EAAE,MAAgB,EAAE;IAC3E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACjC,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,MAAM;gBAAE,SAAS;YACzD,6BAA6B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;aAAM;QACL,wEAAwE;QACxE,qEAAqE;QACrE,qEAAqE;QACrE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC1B,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC3B,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EACvB,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,IAAY;IAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAChE,CAAC;AAED,mDAAmD;AACnD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,OAA+B;IACtD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,oBAAoB;YACvB,OAAO,KAAK,OAAO,CAAC,MAAM,8BAA8B,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3E,KAAK,kBAAkB;YACrB,OAAO,2BAA2B,OAAO,CAAC,MAAM,sBAAsB,CAAC;QACzE,KAAK,oBAAoB;YACvB,OAAO,KAAK,OAAO,CAAC,SAAS,uCAAuC,CAAC;QACvE,KAAK,qBAAqB;YACxB,OAAO,iDAAiD,CAAC;QAC3D,KAAK,qBAAqB;YACxB,OAAO,CACL,KAAK,OAAO,CAAC,SAAS,+DAA+D;gBACrF,qCAAqC,CACtC,CAAC;QACJ,KAAK,qBAAqB;YACxB,OAAO,CACL,KAAK,OAAO,CAAC,SAAS,YAAY,OAAO,CAAC,MAAM,qBAAqB;gBACrE,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;oBAChE,CAAC,CAAC,iFAAiF;wBACjF,qEAAqE;oBACvE,CAAC,CAAC,oBAAoB,OAAO,CAAC,WAAW,IAAI,CAAC;gBAChD,mFAAmF;gBACnF,qEAAqE,CACtE,CAAC;QACJ,KAAK,uBAAuB;YAC1B,OAAO,CACL,KAAK,OAAO,CAAC,SAAS,+DAA+D;gBACrF,oFAAoF;gBACpF,qFAAqF;gBACrF,qFAAqF;gBACrF,0CAA0C,CAC3C,CAAC;IACN,CAAC;AACH,CAAC"}
@@ -0,0 +1,225 @@
1
+ /**
2
+ * A `catch` around a gated-port call may not swallow the module's presence
3
+ * answer (issue #84; the deferred half of feature 072's D-43).
4
+ *
5
+ * `lazyPort` resolves the name inside the *forwarded call*, so a switched-off
6
+ * owner surfaces as `ModuleDisabledError` at the call site rather than at wiring
7
+ * time. A `try { … } catch { return null }` around one therefore converts
8
+ * fail-closed into fail-open, and does it silently: the caller answers "no data"
9
+ * where the truthful answer is "this capability is off", and the operator reads a
10
+ * working screen that is lying to them.
11
+ *
12
+ * **The whole of the reasoning is in `backend/scripts/check-port-catches.ts`**,
13
+ * the repository-scope host, whose header it has always been: the three shapes
14
+ * the measured 51 sites turned out to be, the two spellings one predicate judges,
15
+ * the `async`-boundary bound, the alias fixpoint and its exclusions, the one hop
16
+ * backwards through a class, the scoping correction of issue #278, what counts as
17
+ * handling it, and `OWNER LOCKED`. None of it is restated here.
18
+ *
19
+ * `specs/101-endora-check/contracts/package-scope-layout.md` §6 — one analysis,
20
+ * two hosts.
21
+ *
22
+ * ## Two things changed on the way across, and both are load-bearing
23
+ *
24
+ * **1. `portOwners` can be seeded from outside, and it had to be.** The owner map
25
+ * is built from `di.providePort` in a file that declares `registerModule` — the
26
+ * **owner's** file. `isProxyCall` then admits `lazyPort(ctx, '<name>')` only when
27
+ * `<name>` is already in that map. So over one package in isolation a consumer's
28
+ * resolutions seed nothing and every `catch` around one reads clean.
29
+ *
30
+ * Measured over this repository's module packages before the seam existed: the
31
+ * whole-tree run attributes **226** sites to 41 packages, the same analysis over
32
+ * each package alone finds **19** in 10 packages, and **31 of the 41 lose every
33
+ * site** — including all four PIM connectors and `product_feeds`, which is to say
34
+ * the integration-heavy modules the package host exists for: the ones whose ports
35
+ * are almost all somebody else's. {@link PortCatchInput.peerOwners} is what a
36
+ * package-scope host supplies instead, out of its installed and workspace peers.
37
+ *
38
+ * **2. {@link resolvedPortNames} is new, and it is the denominator.** A rule that
39
+ * reads an owner map has to say how much of it it managed to resolve, or a short
40
+ * map is indistinguishable from a clean tree — and the estate's idiom for *"I
41
+ * read n of the m things I needed"* is the `read:` line's `sources=` token, not a
42
+ * sentence. This collects every `lazyPort(ctx, '<literal>')` name the sources
43
+ * write **whether or not an owner is known**, so a host can print
44
+ * `sources=owners:<attributed>/<written>` and refuse when the numerator is zero.
45
+ * Nothing else in the analysis can supply it: everywhere else, an unowned name is
46
+ * already gone.
47
+ *
48
+ * **3. `checkPortCatches`'s ledger argument loses its default.** A host states
49
+ * which exemptions it is judging against; `PORT_CATCHES_TO_DRAIN` is this
50
+ * repository's and stays in `backend/scripts/`, where `check:lock-claims`'
51
+ * population can also still see it.
52
+ */
53
+ import { type HostResidentModules } from '../lib/module-population.js';
54
+ import { lockedOwners, type ManifestActivationInput } from '../lib/switchable-modules.js';
55
+ /**
56
+ * Sites where absorbing the presence answer is, today, the least-wrong
57
+ * behaviour — with the reason, and the question that would retire the entry.
58
+ *
59
+ * Keyed `<path under src/>:<port or alias>` rather than by line, so moving code
60
+ * inside a file does not invalidate an entry and re-opening the hole does not
61
+ * silently inherit one. **Two-way**, in the idiom of
62
+ * `WIRING_RESOLUTIONS_TO_DRAIN` and `KERNEL_MODULE_IMPORTS_TO_DRAIN`: an
63
+ * unledgered violation fails the build, and a ledger entry that no longer
64
+ * describes a violation fails it too.
65
+ *
66
+ * There are three shapes here, and each entry says which it is. A fourth
67
+ * answer, `OWNER LOCKED`, is **derived** and never written here — see the
68
+ * header.
69
+ *
70
+ * - **After the fact** — the guarded call runs after the operation it belongs
71
+ * to has already committed, so re-throwing would report a failure for work
72
+ * that succeeded. That is a design question about compensating actions, not
73
+ * a `catch` somebody forgot to narrow.
74
+ * - **A degrade the owner should be answering** — the caller genuinely wants
75
+ * "this capability is not here" and is right to keep serving without it
76
+ * (Constitution XVII: a module that is off behaves as if never installed).
77
+ * `rethrowIfModuleDisabled` would be the *wrong* fix — it would 503 a
78
+ * surface that has a defined behaviour without the module. The answer
79
+ * belongs in the port's or the contribution's return type, or in a
80
+ * `nonBindingDependencies` entry; until it is there, the `catch` is the only
81
+ * place it is written down, and the entry names what would move it.
82
+ * - **Boot hook** — the presence answer is decided at the top of the hook
83
+ * (D-62), so what the `catch` absorbs is an ordinary failure with no caller
84
+ * to report to. These entries are not drainable and say so.
85
+ *
86
+ * A fourth entry stood here until issue #278 and was **deleted rather than
87
+ * drained**: `modules/pim_ergonode/backend.ts:handle` described a boot hook
88
+ * whose `catch` reached no gated port at all. The site was in the population
89
+ * only because a **function parameter** named `handle`, declared in
90
+ * `services/import/import-context.ts`, was aliased across the whole module, and
91
+ * `backend.ts` reads an unrelated cradle property of that spelling. Scoping the
92
+ * parameter to its declaring file took the site out, which is what makes the
93
+ * entry stale. Its neighbour under `product_feeds` is unaffected and stays:
94
+ * that one reaches a real port.
95
+ */
96
+ /**
97
+ * Which spelling of "absorb this error" the site is.
98
+ *
99
+ * `statement` is `try { … } catch { … }`; `promise` is `.catch(handler)` and
100
+ * `.then(onOk, onErr)`. They are judged identically and kept apart only in the
101
+ * ledger key — see {@link keyOf}.
102
+ */
103
+ export type PortCatchForm = 'statement' | 'promise';
104
+ export interface PortCatch {
105
+ /** Path under `src/`, POSIX separators. */
106
+ readonly file: string;
107
+ readonly line: number;
108
+ readonly moduleId: string;
109
+ /** The alias or port name the guarded expression called through. */
110
+ readonly port: string;
111
+ readonly form: PortCatchForm;
112
+ readonly handled: boolean;
113
+ /** The gated port names that alias carries — what the `catch` could swallow. */
114
+ readonly gates: readonly string[];
115
+ /** The modules owning those gates — whose locks an `OWNER LOCKED` site rests on. */
116
+ readonly gateOwners: readonly string[];
117
+ /** Every one of those gates is owned by a `nonDeactivatable` module (D-63). */
118
+ readonly ownerLocked: boolean;
119
+ }
120
+ /**
121
+ * `<file>:<port>` — the ledger key, and the identity of a site, with `#promise`
122
+ * appended for the promise form.
123
+ *
124
+ * The key is deliberately not line-based: moving code inside a file must not
125
+ * invalidate an entry, and re-opening the hole must not silently inherit one.
126
+ * The discriminator is the same rule one granularity across. A file can hold
127
+ * both spellings over one alias — `product_feeds` does — and a single key would
128
+ * let an entry written for the `try` absorb a `.catch` added later, which is
129
+ * the inheritance the line-independence was chosen to avoid. It is a **suffix**
130
+ * so that every entry standing when the promise form landed keeps its key.
131
+ */
132
+ export declare function keyOf(found: PortCatch): string;
133
+ /**
134
+ * The part of a module manifest this check reads: which modules the platform
135
+ * refuses to switch off (D-63). Structural rather than `ModuleManifest`, so a
136
+ * fixture can supply the two fields the derivation looks at and nothing else —
137
+ * and so the derivation itself stays inside the analysis, where a red proof can
138
+ * reach it.
139
+ *
140
+ * Both the shape and `lockedOwners` come from `lib/switchable-modules.ts`, which
141
+ * `check-entry-presence` reads as well (D-68): the same lock decides whether a
142
+ * `catch` is `OWNER LOCKED` and whether a module's boot hooks are in that
143
+ * check's population, so an owner who withdraws one re-reds both on the same
144
+ * run. Re-exported here because this check's own tests and its inventory entry
145
+ * name it.
146
+ */
147
+ export type { ManifestActivationInput };
148
+ export { lockedOwners };
149
+ export interface PortCatchInput {
150
+ /** Every source under `src/`, keyed by path relative to `src/`. */
151
+ readonly sources: ReadonlyMap<string, string>;
152
+ /**
153
+ * The deployment's manifests. Omitted means *nothing is locked*: a caller
154
+ * that supplies none gets the pre-D-63 classification, which is the safe
155
+ * default — a site is only ever retired by a lock somebody declared.
156
+ */
157
+ readonly manifests?: readonly ManifestActivationInput[];
158
+ /**
159
+ * Directories whose files belong to a module no `modules/<id>/` segment names
160
+ * — `lib/module-roots.ts`' `hostResidentModules` (feature 080, T040b).
161
+ *
162
+ * Omitting it does not merely lose a module: every file of one attributes to
163
+ * `ROOT`, so its ports read as a composition root's and every `catch` around
164
+ * one of them is judged under the wrong scope.
165
+ */
166
+ readonly hostResidentModules?: HostResidentModules | undefined;
167
+ /**
168
+ * Gated port name → owning module id, contributed by sources **outside**
169
+ * `sources` — a package-scope host's installed and workspace peers.
170
+ *
171
+ * Omitting it is correct for a host whose walk already holds every owner (this
172
+ * repository's does). For a host whose walk holds one package it is not
173
+ * optional in any useful sense: without it `isProxyCall` admits nothing a
174
+ * consumer wrote, and the rule reports `violations=0` over the packages it
175
+ * exists to judge. The measurement is in this file's header.
176
+ *
177
+ * Entries here are **merged under** the walk's own, so a package that provides
178
+ * a port and also resolves it keeps its own answer.
179
+ */
180
+ readonly peerOwners?: ReadonlyMap<string, string> | undefined;
181
+ }
182
+ /** Every `try` and every promise-form rejection handler that reaches a gated port. */
183
+ export declare function findPortCatches(input: PortCatchInput): PortCatch[];
184
+ export interface CheckResult {
185
+ readonly total: number;
186
+ readonly violations: readonly PortCatch[];
187
+ readonly ledgered: readonly PortCatch[];
188
+ /** Sites retired by D-63: every gate they carry has a locked owner. */
189
+ readonly ownerLocked: readonly PortCatch[];
190
+ /** Ledger keys that no longer describe a violation — the staleness half. */
191
+ readonly stale: readonly string[];
192
+ /**
193
+ * Every promise-form rejection handler the walk read, whether or not it
194
+ * reaches a port. Zero over a real tree means the recogniser is blind, not
195
+ * that the tree is clean — the CLI exits 2 on it.
196
+ */
197
+ readonly rejectionHandlerSites: number;
198
+ }
199
+ export declare function checkPortCatches(input: PortCatchInput, ledger: Readonly<Record<string, string>>): CheckResult;
200
+ /**
201
+ * Every source this rule reads under `roots`.
202
+ *
203
+ * One spelling, both hosts: the repository host supplies its source roots and the
204
+ * package host supplies one package's, and neither gets to differ about which
205
+ * files are in the population.
206
+ */
207
+ export declare function collectPortCatchFiles(roots: readonly string[], out?: string[]): string[];
208
+ /**
209
+ * Every gated-port name the sources **write**, owned or not — the denominator.
210
+ *
211
+ * This is the one thing the rest of the analysis structurally cannot report. A
212
+ * `lazyPort(ctx, '<name>')` whose `<name>` is in no owner map never becomes a
213
+ * site, never becomes an alias and never becomes a finding: it disappears, and
214
+ * the disappearance is indistinguishable from a package that resolves nothing.
215
+ * So the count is taken here, before the owner map is consulted at all, and a
216
+ * host prints `sources=owners:<attributed>/<written>` from it.
217
+ *
218
+ * Deliberately **not** gated on `portOwners`, and deliberately blind to whether
219
+ * the name is really a port: what a host needs is *how many names this package
220
+ * asked me to attribute*, and every `lazyPort` literal is one of those. A
221
+ * non-literal name is not counted — it cannot be attributed by anyone, so
222
+ * counting it would make the denominator permanently unreachable.
223
+ */
224
+ export declare function resolvedPortNames(sources: ReadonlyMap<string, string>): ReadonlySet<string>;
225
+ //# sourceMappingURL=port-catches.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port-catches.d.ts","sourceRoot":"","sources":["../../src/rules/port-catches.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAOH,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,YAAY,EACZ,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAiKtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,oFAAoF;IACpF,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAG9C;AAED;;;;;;;;;;;;;GAaG;AACH,YAAY,EAAE,uBAAuB,EAAE,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACxD;;;;;;;OAOG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC/D;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAC/D;AA8/BD,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,EAAE,CAElE;AAkMD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IACxC,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAC;IAC3C,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACvC,WAAW,CAiBb;AAGD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAc5F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAqB3F"}