@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,22 @@
1
+ /**
2
+ * The small text helpers the emitters share.
3
+ *
4
+ * They exist so a value the author typed is quoted **once**, in one place: a
5
+ * label carrying an apostrophe, a description carrying a backslash, and a
6
+ * reason carrying a newline are all things an author writes and a naive
7
+ * `'${value}'` turns into a file that does not parse.
8
+ */
9
+ /** A single-quoted TypeScript string literal, escaped. */
10
+ export function quote(value) {
11
+ return `'${value.replace(/\\/g, '\\\\').replace(/'/g, "\\'").replace(/\n/g, '\\n')}'`;
12
+ }
13
+ /** A JSON object rendered as a flat two-space-indented map, keys in the given order. */
14
+ export function flatJson(entries) {
15
+ const body = entries.map(([key, value]) => ` ${JSON.stringify(key)}: ${JSON.stringify(value)}`);
16
+ return `{\n${body.join(',\n')}\n}\n`;
17
+ }
18
+ /** `..`, `../..`, … — the path from a package directory back to the checkout root. */
19
+ export function rootPrefixFor(depth) {
20
+ return new Array(depth).fill('..').join('/');
21
+ }
22
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/new-module/text.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,0DAA0D;AAC1D,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;AACxF,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,QAAQ,CAAC,OAA+C;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjG,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACvC,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** What the rendering needs to know about the copy. */
2
+ export interface StorefrontDockerInput {
3
+ /** The rewritten manifest's `engines.node`, if it declares one. */
4
+ readonly enginesNode: string | undefined;
5
+ /** The rewritten manifest's `packageManager`, if it pins one. */
6
+ readonly packageManager: string | undefined;
7
+ /** Whether the scaffold writes an `.npmrc` (`--registry`). */
8
+ readonly npmrc: boolean;
9
+ }
10
+ export declare function storefrontDockerfile(input: StorefrontDockerInput): string;
11
+ /**
12
+ * What the build context leaves out.
13
+ *
14
+ * `.env` first, and for a reason rather than tidiness: it holds this
15
+ * storefront's `REVALIDATE_SECRET`, and `COPY . .` would put it in a layer of an
16
+ * image that is pushed to a registry. The installed and built trees are the
17
+ * image's own to produce; a host's would shadow them.
18
+ */
19
+ export declare const STOREFRONT_DOCKERIGNORE: string;
20
+ //# sourceMappingURL=dockerfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dockerfile.d.ts","sourceRoot":"","sources":["../../src/new-storefront/dockerfile.ts"],"names":[],"mappings":"AAqCA,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,iEAAiE;IACjE,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAyEzE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,QAYpB,CAAC"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * The scaffolded storefront's `Dockerfile` and `.dockerignore`, rendered for the
3
+ * tree `endora new storefront` writes (`specs/136-open-source-publication/` plan
4
+ * W7.4, D-274 clause 6).
5
+ *
6
+ * ## Why they are rendered rather than copied
7
+ *
8
+ * The reference storefront's own `Dockerfile` builds from **this repository's
9
+ * root**: it runs `scripts/collect-workspace-manifests.sh` to find the workspace
10
+ * members, copies `packages/` to build them, and filters the install to the
11
+ * storefront's slice of a monorepo. A scaffolded storefront is a tree of its own
12
+ * (D-195) whose `@endora-commerce/*` dependencies arrive built from a registry,
13
+ * so none of that exists there — measured on 2026-09-28, `docker build` of a
14
+ * fresh scaffold stopped at `cannot open scripts/collect-workspace-manifests.sh`.
15
+ * The copy was a Dockerfile for a tree the client does not have.
16
+ *
17
+ * ## What is derived, and from where
18
+ *
19
+ * The build arguments are `../lib/instance-build-inputs.js`'s, through the same
20
+ * two emitters the instance's own image examples use (`layer-independence.md`
21
+ * R3.8), so a fifth spelling of a build input cannot arrive here. The base image
22
+ * and the package manager are the rewritten manifest's `engines.node` and
23
+ * `packageManager` — the values the scaffold already copies from the checkout
24
+ * rather than invents (FR-023).
25
+ *
26
+ * The run stage mirrors the reference's: the storefront's `next.config.js`
27
+ * traces the standalone output from the directory **above** the application, so
28
+ * the tree is built one level down, at `/app/storefront`, and the server lands at
29
+ * `.next/standalone/storefront/server.js` whatever the client called the
30
+ * directory.
31
+ */
32
+ import { argDeclarations, buildInvocation, corepack, nodeImage } from '../new-instance/deploy.js';
33
+ import { TOKEN_VARIABLE } from './npmrc.js';
34
+ /** The BuildKit secret the install reads the registry token from (D-274 clause 2.4). */
35
+ const TOKEN_SECRET = TOKEN_VARIABLE.toLowerCase();
36
+ export function storefrontDockerfile(input) {
37
+ // An absent range is a digit-free one to `nodeImage`, which falls back to the
38
+ // running interpreter's major rather than to a literal written here.
39
+ const base = nodeImage(input.enginesNode ?? '');
40
+ const invocation = buildInvocation('storefront', 'Dockerfile');
41
+ return `${[
42
+ // 1.10 for `RUN --mount=type=secret,…,env=`, which the private-registry
43
+ // install below uses.
44
+ '# syntax=docker/dockerfile:1.10',
45
+ '# The image for this storefront: `next build`, served by its standalone server.',
46
+ '# Copy it, change what you need, own it.',
47
+ '#',
48
+ '# Build from the root of this storefront:',
49
+ ...(input.npmrc
50
+ ? [
51
+ ...invocation.slice(0, -1),
52
+ `# --secret id=${TOKEN_SECRET},env=${TOKEN_VARIABLE} \\`,
53
+ invocation.at(-1),
54
+ ]
55
+ : invocation),
56
+ '#',
57
+ '# THE NEXT_PUBLIC_* VALUES ARE INLINED AT BUILD TIME. The API origin and this',
58
+ '# shop\'s own public origin (every canonical link, the sitemap and robots.txt)',
59
+ '# are compiled into the bundle, so no container environment can correct them',
60
+ '# afterwards: a wrong one is a rebuild, not a redeploy. What the server reads at',
61
+ '# RUNTIME — BACKEND_BASE_URL, REVALIDATE_SECRET — comes from the container',
62
+ '# environment, never from `.env`, which `.dockerignore` keeps out of the image.',
63
+ ...(input.npmrc
64
+ ? [
65
+ '#',
66
+ `# \`.npmrc\` names your registry and reads its token from ${TOKEN_VARIABLE} at`,
67
+ '# install time. The install below receives it as a BuildKit secret, which',
68
+ '# exists for that one RUN and is in no layer. Never pass it as a build',
69
+ '# argument: an ARG is readable in `docker history` by anyone who can pull',
70
+ '# the image.',
71
+ ]
72
+ : []),
73
+ '',
74
+ `FROM ${base} AS base`,
75
+ 'ENV PNPM_HOME=/pnpm',
76
+ 'ENV PATH="$PNPM_HOME:$PATH"',
77
+ ...corepack(input.packageManager),
78
+ '# One level down: `next.config.js` traces the standalone output from the',
79
+ '# directory above this one.',
80
+ 'WORKDIR /app/storefront',
81
+ '',
82
+ 'FROM base AS build',
83
+ '# The lockfile is one of these on purpose: `--frozen-lockfile` below refuses to',
84
+ '# resolve a range, so an image is built from the versions you committed and',
85
+ '# never from whatever the registry had that morning. `pnpm install` writes it;',
86
+ '# commit it.',
87
+ 'COPY package.json pnpm-lock.yaml ./',
88
+ ...(input.npmrc ? ['COPY .npmrc ./'] : []),
89
+ input.npmrc
90
+ ? `RUN --mount=type=secret,id=${TOKEN_SECRET},env=${TOKEN_VARIABLE} pnpm install --frozen-lockfile`
91
+ : 'RUN pnpm install --frozen-lockfile',
92
+ '',
93
+ 'COPY . .',
94
+ ...argDeclarations('storefront'),
95
+ 'ENV NEXT_TELEMETRY_DISABLED=1',
96
+ '# The storefront\'s own build command — themes, `next build`, the theme check —',
97
+ '# and not a second spelling of it.',
98
+ 'RUN pnpm run build',
99
+ '',
100
+ 'FROM base AS run',
101
+ 'ENV NODE_ENV=production NEXT_TELEMETRY_DISABLED=1 PORT=3000 HOSTNAME=0.0.0.0',
102
+ 'WORKDIR /app',
103
+ 'COPY --from=build /app/storefront/.next/standalone ./',
104
+ 'COPY --from=build /app/storefront/.next/static ./storefront/.next/static',
105
+ 'COPY --from=build /app/storefront/public ./storefront/public',
106
+ 'EXPOSE 3000',
107
+ 'CMD ["node", "storefront/server.js"]',
108
+ ].join('\n')}\n`;
109
+ }
110
+ /**
111
+ * What the build context leaves out.
112
+ *
113
+ * `.env` first, and for a reason rather than tidiness: it holds this
114
+ * storefront's `REVALIDATE_SECRET`, and `COPY . .` would put it in a layer of an
115
+ * image that is pushed to a registry. The installed and built trees are the
116
+ * image's own to produce; a host's would shadow them.
117
+ */
118
+ export const STOREFRONT_DOCKERIGNORE = `${[
119
+ '# The build context `docker build` sends. See Dockerfile.',
120
+ '.env',
121
+ '.env.*',
122
+ '!.env.example',
123
+ '**/node_modules',
124
+ '**/.next',
125
+ '**/.git',
126
+ 'test-results/',
127
+ 'playwright-report/',
128
+ 'blob-report/',
129
+ '.playwright/',
130
+ ].join('\n')}\n`;
131
+ //# sourceMappingURL=dockerfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dockerfile.js","sourceRoot":"","sources":["../../src/new-storefront/dockerfile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,wFAAwF;AACxF,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;AAYlD,MAAM,UAAU,oBAAoB,CAAC,KAA4B;IAC/D,8EAA8E;IAC9E,qEAAqE;IACrE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC/D,OAAO,GAAG;QACR,wEAAwE;QACxE,sBAAsB;QACtB,iCAAiC;QACjC,iFAAiF;QACjF,0CAA0C;QAC1C,GAAG;QACH,2CAA2C;QAC3C,GAAG,CAAC,KAAK,CAAC,KAAK;YACb,CAAC,CAAC;gBACE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,qBAAqB,YAAY,QAAQ,cAAc,KAAK;gBAC5D,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE;aACnB;YACH,CAAC,CAAC,UAAU,CAAC;QACf,GAAG;QACH,+EAA+E;QAC/E,gFAAgF;QAChF,8EAA8E;QAC9E,kFAAkF;QAClF,4EAA4E;QAC5E,iFAAiF;QACjF,GAAG,CAAC,KAAK,CAAC,KAAK;YACb,CAAC,CAAC;gBACE,GAAG;gBACH,6DAA6D,cAAc,KAAK;gBAChF,2EAA2E;gBAC3E,wEAAwE;gBACxE,2EAA2E;gBAC3E,cAAc;aACf;YACH,CAAC,CAAC,EAAE,CAAC;QACP,EAAE;QACF,QAAQ,IAAI,UAAU;QACtB,qBAAqB;QACrB,6BAA6B;QAC7B,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;QACjC,0EAA0E;QAC1E,6BAA6B;QAC7B,yBAAyB;QACzB,EAAE;QACF,oBAAoB;QACpB,iFAAiF;QACjF,6EAA6E;QAC7E,gFAAgF;QAChF,cAAc;QACd,qCAAqC;QACrC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,KAAK;YACT,CAAC,CAAC,8BAA8B,YAAY,QAAQ,cAAc,iCAAiC;YACnG,CAAC,CAAC,oCAAoC;QACxC,EAAE;QACF,UAAU;QACV,GAAG,eAAe,CAAC,YAAY,CAAC;QAChC,+BAA+B;QAC/B,iFAAiF;QACjF,oCAAoC;QACpC,oBAAoB;QACpB,EAAE;QACF,kBAAkB;QAClB,8EAA8E;QAC9E,cAAc;QACd,uDAAuD;QACvD,0EAA0E;QAC1E,8DAA8D;QAC9D,aAAa;QACb,sCAAsC;KACvC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG;IACxC,2DAA2D;IAC3D,MAAM;IACN,QAAQ;IACR,eAAe;IACf,iBAAiB;IACjB,UAAU;IACV,SAAS;IACT,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,cAAc;CACf,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The scaffolded storefront's `.gitignore`, rendered for the tree
3
+ * `endora new storefront` writes.
4
+ *
5
+ * The reference storefront's own `.gitignore` was written for a directory
6
+ * **inside this repository**, whose root `.gitignore` already covers `.env`, the
7
+ * installed trees and the build output — so it names none of them. A scaffolded
8
+ * storefront is a repository of its own (D-195), and the same run writes
9
+ * `REVALIDATE_SECRET`, the bearer token of the public `app/api/revalidate`
10
+ * route, into `.env`: copied unchanged, that file let the client's first
11
+ * `git add .` commit the secret. The rendered `.dockerignore` already kept it
12
+ * out of the image; this keeps it out of the history.
13
+ *
14
+ * The reference file's own entries are kept verbatim, below the ones this
15
+ * scaffold adds, so an entry the storefront gains there reaches every future
16
+ * copy without this file being edited.
17
+ */
18
+ /**
19
+ * @param reference the reference storefront's own `.gitignore`, or `null` when
20
+ * it has none.
21
+ */
22
+ export declare function storefrontGitignore(reference: string | null): string;
23
+ //# sourceMappingURL=gitignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/new-storefront/gitignore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgBH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGpE"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The scaffolded storefront's `.gitignore`, rendered for the tree
3
+ * `endora new storefront` writes.
4
+ *
5
+ * The reference storefront's own `.gitignore` was written for a directory
6
+ * **inside this repository**, whose root `.gitignore` already covers `.env`, the
7
+ * installed trees and the build output — so it names none of them. A scaffolded
8
+ * storefront is a repository of its own (D-195), and the same run writes
9
+ * `REVALIDATE_SECRET`, the bearer token of the public `app/api/revalidate`
10
+ * route, into `.env`: copied unchanged, that file let the client's first
11
+ * `git add .` commit the secret. The rendered `.dockerignore` already kept it
12
+ * out of the image; this keeps it out of the history.
13
+ *
14
+ * The reference file's own entries are kept verbatim, below the ones this
15
+ * scaffold adds, so an entry the storefront gains there reaches every future
16
+ * copy without this file being edited.
17
+ */
18
+ /** What every scaffolded storefront ignores, whatever the reference file says. */
19
+ const SCAFFOLD_ENTRIES = [
20
+ '# This storefront\'s own configuration. `.env` holds REVALIDATE_SECRET — the',
21
+ '# bearer token of `app/api/revalidate` — and must never be committed;',
22
+ '# `.env.example` is the file to commit.',
23
+ '.env',
24
+ '.env*.local',
25
+ '',
26
+ '# Installed and built trees.',
27
+ 'node_modules/',
28
+ '.next/',
29
+ '*.tsbuildinfo',
30
+ ];
31
+ /**
32
+ * @param reference the reference storefront's own `.gitignore`, or `null` when
33
+ * it has none.
34
+ */
35
+ export function storefrontGitignore(reference) {
36
+ const own = reference === null ? '' : reference.replace(/\s+$/, '');
37
+ return `${[...SCAFFOLD_ENTRIES, ...(own === '' ? [] : ['', own])].join('\n')}\n`;
38
+ }
39
+ //# sourceMappingURL=gitignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/new-storefront/gitignore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,kFAAkF;AAClF,MAAM,gBAAgB,GAAsB;IAC1C,8EAA8E;IAC9E,uEAAuE;IACvE,yCAAyC;IACzC,MAAM;IACN,aAAa;IACb,EAAE;IACF,8BAA8B;IAC9B,eAAe;IACf,QAAQ;IACR,eAAe;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAwB;IAC1D,MAAM,GAAG,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnF,CAAC"}
@@ -0,0 +1,93 @@
1
+ import { type EnvironmentInput } from '@endora-commerce/contracts';
2
+ import { type PromptIo } from '../inputs/prompt.js';
3
+ import { type ResolvedInput } from '../inputs/resolve.js';
4
+ import { StorefrontHostError, StorefrontInputError, type StorefrontReference } from './reference.js';
5
+ import { type StorefrontPlan } from './rewrite.js';
6
+ export interface NewStorefrontOptions {
7
+ /** Where to write. Required: this command has no default target. */
8
+ readonly dir?: string | undefined;
9
+ /** Report what would be written and what each rewrite becomes; write nothing. */
10
+ readonly dryRun?: boolean | undefined;
11
+ /**
12
+ * The registry the scaffolded storefront installs from.
13
+ *
14
+ * Absent writes no `.npmrc`, which is what a consumer of the public registry
15
+ * holds, and is deliberately the default so that the path this command takes
16
+ * unasked is the destination rather than the rehearsal.
17
+ */
18
+ readonly registry?: string | undefined;
19
+ readonly cwd?: string | undefined;
20
+ /**
21
+ * Values supplied on the command line — tier 1, keyed by variable name.
22
+ *
23
+ * Keyed by the **variable**, not by the flag: `flagFor` derives the flag from
24
+ * the name, so a storefront that declares a variable this build has never
25
+ * heard of is still supplied by `--its-own-name` with nothing here to update.
26
+ */
27
+ readonly inputs?: Readonly<Record<string, string | undefined>> | undefined;
28
+ /** Force the refusal even on a terminal, for reproducibility (R3.4). */
29
+ readonly nonInteractive?: boolean | undefined;
30
+ /** Where a prompt is asked. Injected so a test drives it without a pty. */
31
+ readonly promptIo?: PromptIo | undefined;
32
+ }
33
+ /** Raised when required inputs are missing and this run may not ask (R7.2). */
34
+ export declare class MissingInputsError extends Error {
35
+ readonly name = "MissingInputsError";
36
+ }
37
+ export interface NewStorefrontResult {
38
+ readonly reference: StorefrontReference;
39
+ readonly targetDir: string;
40
+ readonly plan: StorefrontPlan;
41
+ readonly dryRun: boolean;
42
+ readonly nextSteps: readonly string[];
43
+ /** Every input this run answered for, with where each answer came from. */
44
+ readonly resolved: readonly ResolvedInput[];
45
+ /** R2.1's one line, printed by the caller. */
46
+ readonly provenance: string;
47
+ /**
48
+ * Under `--dry-run`, what the run *would* have asked for and generated
49
+ * (R2.4). Empty otherwise, because a real run did it rather than planning it.
50
+ */
51
+ readonly wouldPrompt: readonly string[];
52
+ readonly wouldGenerate: readonly string[];
53
+ /** Declared, in scope, and legitimately left unset — an optional nobody set. */
54
+ readonly unset: readonly string[];
55
+ }
56
+ export declare function runNewStorefront(options: NewStorefrontOptions): Promise<NewStorefrontResult>;
57
+ /**
58
+ * The flags this build accepts for the reference storefront's declared inputs,
59
+ * without their leading dashes.
60
+ *
61
+ * The argv layer calls this **before** it parses, so `parseArgs` keeps
62
+ * `strict: true` and an unrecognised flag stays a refusal
63
+ * (`cli-surface.md` §1). The alternative — parsing leniently for this one
64
+ * subcommand — would trade a typo'd `--next-public-api-base-ur` from a loud
65
+ * refusal into a silently unset required input, which is the whole class of
66
+ * failure this feature exists to remove.
67
+ *
68
+ * It is derived from the declaration rather than written down, so a storefront
69
+ * that declares a variable this build has never heard of is supplied by its own
70
+ * flag with nothing here to update (D-100).
71
+ */
72
+ export declare function storefrontInputFlags(cwd: string): Promise<readonly string[]>;
73
+ /**
74
+ * The reference storefront's own declaration, scoped to the one member this
75
+ * command writes.
76
+ *
77
+ * Exported because a caller that has to *supply* these inputs needs the same
78
+ * population the command will *demand*, and deriving it twice is two answers
79
+ * waiting to disagree — which is exactly how the acceptance criterion came to
80
+ * invoke this command with none of them. The scoping is `planResolution`'s and
81
+ * is applied here so that the two cannot part company either: an input read only
82
+ * by the admin or only by the backend is out of this command's population, so it
83
+ * is out of a supplier's too.
84
+ *
85
+ * The requirement is deliberately **not** filtered here. `isRequiredGiven` reads
86
+ * a conditional requirement against the values a run has in hand, so which
87
+ * inputs are required is a property of the invocation rather than of the
88
+ * declaration, and answering it here would answer it for one invocation and be
89
+ * wrong for the next.
90
+ */
91
+ export declare function storefrontDeclaredInputs(cwd: string): Promise<readonly EnvironmentInput[]>;
92
+ export { StorefrontHostError, StorefrontInputError };
93
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/new-storefront/index.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInF,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAML,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnE,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3E,wEAAwE;IACxE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC1C;AAED,+EAA+E;AAC/E,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,SAAkB,IAAI,wBAAwB;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CA0G9B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAElF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAItC;AAkKD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC"}