@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":"bundle-pairing.d.ts","sourceRoot":"","sources":["../../src/rules/bundle-pairing.ts"],"names":[],"mappings":"AAiHA,yEAAyE;AACzE,eAAO,MAAM,MAAM,qBAAqB,CAAC;AAEzC,MAAM,MAAM,wBAAwB,GAChC,yBAAyB,GACzB,cAAc,GACd,oBAAoB,GACpB,uBAAuB,CAAC;AAE5B,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7C;AAED,eAAO,MAAM,mBAAmB,EAAE,eAgBjC,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACnD,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,SAAS,MAAM,EAAE,CAQnB;AAaD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAmHjF;AAED,kDAAkD;AAClD,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAgBvE,CAAC"}
@@ -0,0 +1,281 @@
1
+ /**
2
+ * CI check — **a module that ships a bundle in any language ships one in every
3
+ * language the platform ships** (`specs/094-translation-boundary/`,
4
+ * `contracts/bundle-pairing-ratchet.md`).
5
+ *
6
+ * The owner's ruling of 2026-09-01, third surface: every module Endora
7
+ * implements ships an `en` bundle and a `pl` bundle, English being the default
8
+ * and the runtime fallback. It lands at **zero violations** — 62 of the 69
9
+ * registered modules ship both, 7 ship neither, none ships exactly one — and
10
+ * that is the argument for landing it, not against: the invariant is true today
11
+ * and nothing holds it there.
12
+ *
13
+ * ## The predicate is a conditional, and that is the whole design
14
+ *
15
+ * Not *"every module ships `pl.json`"*. Seven registered modules legitimately
16
+ * ship no bundle at all — a module with no user-facing strings owes none, and
17
+ * demanding one would produce seven empty files whose only effect is to make
18
+ * this check pass. The obligation attaches to the **first** bundle: once a
19
+ * module has strings, it has them in every shipped language.
20
+ *
21
+ * ## What already looks like the enforcer and is not
22
+ *
23
+ * `test/unit/_i18n/registered-bundles-shape.test.ts` is the file that appears to
24
+ * answer this, and it misses it twice — both times because the population is
25
+ * derived from the artefact under judgement, which is the family this repository
26
+ * spends its review effort on (issues #113, #244, #215):
27
+ *
28
+ * * its symmetry case read `if (!en || !pl) continue;`, so a module that drops
29
+ * `pl.json` was **skipped by the test whose subject is bundle symmetry**.
30
+ * That line is deleted in the merge request this check lands in: pairing is
31
+ * the precondition it rests on, and a skip whose reason has gone is worse
32
+ * than no skip at all;
33
+ * * its action-key case iterates `loaded.byLanguage` — the languages *that
34
+ * module happens to ship*. "Every shipped language" silently means the
35
+ * module's rather than the platform's, and the two readings are
36
+ * indistinguishable in prose.
37
+ *
38
+ * Neither is a bug in that file. It was written to answer key-level symmetry and
39
+ * it answers it; nothing answered file-level presence. This check is that, and
40
+ * it deliberately does **not** judge key-level symmetry — one rule, one
41
+ * instrument.
42
+ *
43
+ * ## The two derived sets
44
+ *
45
+ * **The languages** come from `SUPPORTED_LANGUAGES`, never from a literal list
46
+ * here (D-100). A third shipped language makes every two-bundle module a finding
47
+ * in the same run, which is the point of deriving it.
48
+ *
49
+ * **The modules** come from the generated manifest index, through
50
+ * `lib/module-roots.ts` and `lib/module-population.ts`, so a module that became a
51
+ * package is followed rather than dropped (issue #215). Each module's own
52
+ * directory is `dirname(manifestPath)` — the anchor the `_i18n` boot reconciler
53
+ * joins `bundlesDir` to, so this check reads the bundles the running platform
54
+ * reads and not a directory computed from a convention.
55
+ *
56
+ * **And the probe directory name is derived too.** A module that declares
57
+ * `i18n.bundlesDir` is read there. A module that declares none is probed at every
58
+ * directory name the *other* manifests declare — `i18n` today, whatever a module
59
+ * calls it tomorrow — because `undeclared-bundle-dir` is a finding about files
60
+ * that exist and are never read, and a check that spelled `'i18n'` into itself
61
+ * would answer for one convention and go quiet for the next.
62
+ *
63
+ * ## Findings
64
+ *
65
+ * * **`missing-language-bundle`** — a module shipping a bundle in one shipped
66
+ * language and not another. The centre.
67
+ * * **`empty-bundle`** — a bundle that parses to zero entries. It satisfies a
68
+ * presence test while translating nothing: the way around this check that
69
+ * would otherwise be one `echo '{}' >` away.
70
+ * * **`unparseable-bundle`** — a bundle that is not readable as
71
+ * `TranslationBundleEntriesSchema`. A **finding, not a skip**: the boot
72
+ * reconciler logs and skips it and the module renders raw keys, so a check
73
+ * that also skipped it would agree with the defect (issue #113).
74
+ * * **`undeclared-bundle-dir`** — bundle files on disk under a module whose
75
+ * manifest declares no `i18n.bundlesDir`, so nothing loads them. The inverse
76
+ * failure, and the pairing predicate still applies to what was found.
77
+ *
78
+ * **No ledger, deliberately.** Every finding is a module one file away from
79
+ * compliance, the remedy is available in the same merge request, and the
80
+ * population stands at zero. An entry could only license shipping a
81
+ * single-language module, which is the thing the ruling forbids.
82
+ *
83
+ * ## What it does not cover, stated rather than discovered later
84
+ *
85
+ * * **Key-level symmetry** between `en.json` and `pl.json` — that is
86
+ * `registered-bundles-shape.test.ts`' subject, and this check is the
87
+ * precondition it was missing.
88
+ * * **Whether a Polish sentence is a faithful translation.** Nothing static
89
+ * can.
90
+ * * **A bundle file named for a language the platform does not ship**
91
+ * (`de.json`). The loader throws `unsupported-language-file` on it at boot;
92
+ * it is out of this predicate's population and is not read.
93
+ * * **The storefront**, which has no module bundles: `MessageKey` is a closed
94
+ * union in one in-tree file and `Record<MessageKey, string>` is total, so
95
+ * `tsc` refuses a missing Polish string at compile time — stronger than any
96
+ * check here could be.
97
+ *
98
+ * ## One analysis, two hosts
99
+ *
100
+ * This file is the analysis. `backend/scripts/check-bundle-pairing.ts` hosts it
101
+ * over every module the generated index registers; `endora check` hosts it over
102
+ * the one module a package declares
103
+ * (`specs/101-endora-check/contracts/package-scope-layout.md` §6). Both hand in
104
+ * `modules` and `languages`, so neither re-derives the other's population — and
105
+ * the package-scope host declares `undeclared-bundle-dir` unevaluated, because
106
+ * the directory names it probes come from *peers'* manifests and a lone package
107
+ * has none.
108
+ */
109
+ import { readFileSync, statSync } from 'node:fs';
110
+ import { join } from 'node:path';
111
+ import { TranslationBundleEntriesSchema } from '@endora-commerce/contracts';
112
+ /** The log prefix both hosts print under — one grammar, one spelling. */
113
+ export const PREFIX = '[bundle-pairing]';
114
+ export const nodeBundlePairingFs = {
115
+ isDirectory: (path) => {
116
+ try {
117
+ return statSync(path).isDirectory();
118
+ }
119
+ catch {
120
+ return false;
121
+ }
122
+ },
123
+ isFile: (path) => {
124
+ try {
125
+ return statSync(path).isFile();
126
+ }
127
+ catch {
128
+ return false;
129
+ }
130
+ },
131
+ readFile: (path) => readFileSync(path, 'utf8'),
132
+ };
133
+ /** The directory names the manifests themselves declare — never a literal. */
134
+ export function declaredBundleDirectories(modules) {
135
+ return [
136
+ ...new Set(modules
137
+ .map((module) => module.bundlesDir)
138
+ .filter((dir) => dir !== null && dir.length > 0)),
139
+ ].sort();
140
+ }
141
+ /** Where a module's bundles would be, declared first and probed otherwise. */
142
+ function candidateDirectories(module, declared) {
143
+ if (module.bundlesDir !== null && module.bundlesDir.length > 0) {
144
+ return [join(module.directory, module.bundlesDir)];
145
+ }
146
+ return declared.map((name) => join(module.directory, name));
147
+ }
148
+ /**
149
+ * The findings, over the modules and languages handed in.
150
+ *
151
+ * Pure but for the injected reader, so a red proof enters where a real run
152
+ * enters: a module tree on disk plus the index's own answer about which modules
153
+ * exist (issue #130). A fixture handing in a per-module classification would
154
+ * prove the reporter and leave the classifier — which is all of the analysis —
155
+ * unproven.
156
+ */
157
+ export function checkBundlePairing(input) {
158
+ const fs = input.fs ?? nodeBundlePairingFs;
159
+ const declared = declaredBundleDirectories(input.modules);
160
+ const findings = [];
161
+ const filesRead = [];
162
+ const classified = [];
163
+ const shipping = [];
164
+ const shippingNothing = [];
165
+ for (const module of input.modules) {
166
+ classified.push(module.moduleId);
167
+ // The first candidate directory that actually holds a bundle. A module with
168
+ // a declared `bundlesDir` has exactly one; a module with none is probed at
169
+ // every name the other manifests use, which is what makes
170
+ // `undeclared-bundle-dir` reachable without a directory name written here.
171
+ let bundlesDirectory = null;
172
+ const present = new Map();
173
+ for (const candidate of candidateDirectories(module, declared)) {
174
+ if (!fs.isDirectory(candidate))
175
+ continue;
176
+ const found = new Map();
177
+ for (const language of input.languages) {
178
+ const file = join(candidate, `${language}.json`);
179
+ if (fs.isFile(file))
180
+ found.set(language, file);
181
+ }
182
+ if (found.size === 0)
183
+ continue;
184
+ bundlesDirectory = candidate;
185
+ for (const [language, file] of found)
186
+ present.set(language, file);
187
+ break;
188
+ }
189
+ if (bundlesDirectory === null) {
190
+ // § 1's conditional: a module with no user-facing strings owes nothing,
191
+ // and this is the branch that keeps the rule a conditional rather than a
192
+ // universal. Seven registered modules take it today.
193
+ shippingNothing.push(module.moduleId);
194
+ continue;
195
+ }
196
+ shipping.push(module.moduleId);
197
+ if (module.bundlesDir === null || module.bundlesDir.length === 0) {
198
+ findings.push({
199
+ kind: 'undeclared-bundle-dir',
200
+ moduleId: module.moduleId,
201
+ language: null,
202
+ path: bundlesDirectory,
203
+ detail: `bundle files are on disk but the manifest declares no \`i18n.bundlesDir\`, so ` +
204
+ `the boot reconciler never loads them and every key they hold renders raw`,
205
+ });
206
+ }
207
+ for (const language of input.languages) {
208
+ const file = present.get(language);
209
+ if (file === undefined) {
210
+ findings.push({
211
+ kind: 'missing-language-bundle',
212
+ moduleId: module.moduleId,
213
+ language,
214
+ path: join(bundlesDirectory, `${language}.json`),
215
+ detail: `the module ships ${[...present.keys()].sort().join(', ')} and not ${language}; ` +
216
+ `a reader whose language is ${language} gets this module's strings in another one`,
217
+ });
218
+ continue;
219
+ }
220
+ filesRead.push(file);
221
+ let parsed;
222
+ try {
223
+ parsed = JSON.parse(fs.readFile(file));
224
+ }
225
+ catch (error) {
226
+ findings.push({
227
+ kind: 'unparseable-bundle',
228
+ moduleId: module.moduleId,
229
+ language,
230
+ path: file,
231
+ detail: `not valid JSON (${error instanceof Error ? error.message : String(error)})`,
232
+ });
233
+ continue;
234
+ }
235
+ const validated = TranslationBundleEntriesSchema.safeParse(parsed);
236
+ if (!validated.success) {
237
+ findings.push({
238
+ kind: 'unparseable-bundle',
239
+ moduleId: module.moduleId,
240
+ language,
241
+ path: file,
242
+ detail: 'not readable as `TranslationBundleEntriesSchema` — entries must be a flat ' +
243
+ `{"a.b.c": "text"} map (${validated.error.issues[0]?.message ?? 'invalid shape'})`,
244
+ });
245
+ continue;
246
+ }
247
+ if (Object.keys(validated.data).length === 0) {
248
+ findings.push({
249
+ kind: 'empty-bundle',
250
+ moduleId: module.moduleId,
251
+ language,
252
+ path: file,
253
+ detail: 'parses to zero entries — it satisfies a presence test while translating nothing',
254
+ });
255
+ }
256
+ }
257
+ }
258
+ return {
259
+ findings,
260
+ filesRead,
261
+ classified,
262
+ shipping,
263
+ shippingNothing,
264
+ languagesProbed: shipping.length > 0 ? input.languages.length : 0,
265
+ };
266
+ }
267
+ /** The remedy paragraph, one per finding kind. */
268
+ export const REMEDIES = {
269
+ 'missing-language-bundle': 'Every module Endora implements ships a bundle in every language the platform ships ' +
270
+ '(AGENTS.md § i18n, owner ruling of 2026-09-01). Author the strings in English and ' +
271
+ 'translate them; a module with no user-facing strings ships no bundle at all, which is ' +
272
+ 'the only exemption there is.',
273
+ 'empty-bundle': 'Delete the file if the module has no strings — shipping none is legal and shipping an ' +
274
+ 'empty one is a presence test passing over nothing. If it has strings, write them.',
275
+ 'unparseable-bundle': 'The boot reconciler validates each bundle with `TranslationBundleEntriesSchema`, logs ' +
276
+ 'and skips one that fails, and the module then renders raw keys with nothing reported. ' +
277
+ 'Flatten the JSON to `{"a.b.c": "text"}`.',
278
+ 'undeclared-bundle-dir': "Declare `i18n: { bundlesDir: '<dir>' }` in the module's `manifest.ts`. Until it is " +
279
+ 'declared the files are read by nobody, which looks exactly like having no translations.',
280
+ };
281
+ //# sourceMappingURL=bundle-pairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-pairing.js","sourceRoot":"","sources":["../../src/rules/bundle-pairing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Every TypeScript source under `dir`, with the rule's own prunes applied.
3
+ *
4
+ * Exported because the population is part of the rule: two hosts computing
5
+ * "which files this check reads" two ways is the shape that lets one of them go
6
+ * half-blind.
7
+ */
8
+ export declare function collectChannelSources(dir: string, out?: string[]): string[];
9
+ export interface Violation {
10
+ file: string;
11
+ line: number;
12
+ kind: 'raw-channel-header' | 'request-channel-reresolution' | 'settings-channel-literal' | 'invented-channel-identifier';
13
+ detail: string;
14
+ }
15
+ /** Analyze one source string. Exported for the unit self-test. */
16
+ export declare function analyzeSource(source: string, relPath: string): Violation[];
17
+ //# sourceMappingURL=channel-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-resolution.d.ts","sourceRoot":"","sources":["../../src/rules/channel-resolution.ts"],"names":[],"mappings":"AA+LA;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAW/E;AAyBD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EACA,oBAAoB,GACpB,8BAA8B,GAC9B,0BAA0B,GAC1B,6BAA6B,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAoL1E"}