@pithy-sh/core 0.1.2 → 0.1.3

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 (393) hide show
  1. package/dist/address/address.d.ts +57 -0
  2. package/dist/address/address.d.ts.map +1 -0
  3. package/dist/address/address.js +71 -0
  4. package/dist/audit/auditEvent.d.ts +89 -0
  5. package/dist/audit/auditEvent.d.ts.map +1 -0
  6. package/dist/audit/auditEvent.js +69 -0
  7. package/dist/audit/recorder.d.ts +18 -0
  8. package/dist/audit/recorder.d.ts.map +1 -0
  9. package/dist/audit/recorder.js +8 -0
  10. package/dist/capability/bindings.d.ts +62 -0
  11. package/dist/capability/bindings.d.ts.map +1 -0
  12. package/dist/capability/bindings.js +97 -0
  13. package/dist/capability/capability.d.ts +501 -0
  14. package/dist/capability/capability.d.ts.map +1 -0
  15. package/dist/capability/capability.js +16 -0
  16. package/dist/capability/client.d.ts +70 -0
  17. package/dist/capability/client.d.ts.map +1 -0
  18. package/dist/capability/client.js +86 -0
  19. package/dist/capability/compose.d.ts +25 -0
  20. package/dist/capability/compose.d.ts.map +1 -0
  21. package/dist/capability/compose.js +54 -0
  22. package/dist/capability/composition.d.ts +26 -0
  23. package/dist/capability/composition.d.ts.map +1 -0
  24. package/dist/capability/composition.js +84 -0
  25. package/dist/capability/config.d.ts +7 -0
  26. package/dist/capability/config.d.ts.map +1 -0
  27. package/dist/capability/config.js +14 -0
  28. package/dist/capability/devSecret.d.ts +32 -0
  29. package/dist/capability/devSecret.d.ts.map +1 -0
  30. package/dist/capability/devSecret.js +28 -0
  31. package/dist/capability/manifest.d.ts +298 -0
  32. package/dist/capability/manifest.d.ts.map +1 -0
  33. package/dist/capability/manifest.js +356 -0
  34. package/dist/capability/secretOrigin.d.ts +121 -0
  35. package/dist/capability/secretOrigin.d.ts.map +1 -0
  36. package/dist/capability/secretOrigin.js +134 -0
  37. package/dist/capability/settings.d.ts +119 -0
  38. package/dist/capability/settings.d.ts.map +1 -0
  39. package/dist/capability/settings.js +66 -0
  40. package/dist/capability/validateBindings.d.ts +4 -0
  41. package/dist/capability/validateBindings.d.ts.map +1 -0
  42. package/dist/capability/validateBindings.js +34 -0
  43. package/dist/capability/vanishingKey.d.ts +31 -0
  44. package/dist/capability/vanishingKey.d.ts.map +1 -0
  45. package/dist/capability/vanishingKey.js +79 -0
  46. package/dist/controlPlane/audit/actions.d.ts +70 -0
  47. package/dist/controlPlane/audit/actions.d.ts.map +1 -0
  48. package/dist/controlPlane/audit/actions.js +76 -0
  49. package/dist/controlPlane/capability.d.ts +47 -0
  50. package/dist/controlPlane/capability.d.ts.map +1 -0
  51. package/dist/controlPlane/capability.js +138 -0
  52. package/dist/controlPlane/config/config.d.ts +19 -0
  53. package/dist/controlPlane/config/config.d.ts.map +1 -0
  54. package/dist/controlPlane/config/config.js +85 -0
  55. package/dist/controlPlane/context.d.ts +27 -0
  56. package/dist/controlPlane/context.d.ts.map +1 -0
  57. package/dist/controlPlane/context.js +29 -0
  58. package/dist/controlPlane/data/connection.d.ts +79 -0
  59. package/dist/controlPlane/data/connection.d.ts.map +1 -0
  60. package/dist/controlPlane/data/connection.js +55 -0
  61. package/dist/controlPlane/data/keyLifecycle.d.ts +62 -0
  62. package/dist/controlPlane/data/keyLifecycle.d.ts.map +1 -0
  63. package/dist/controlPlane/data/keyLifecycle.js +126 -0
  64. package/dist/controlPlane/data/replay.d.ts +18 -0
  65. package/dist/controlPlane/data/replay.d.ts.map +1 -0
  66. package/dist/controlPlane/data/replay.js +20 -0
  67. package/dist/controlPlane/data/tables.d.ts +34 -0
  68. package/dist/controlPlane/data/tables.d.ts.map +1 -0
  69. package/dist/controlPlane/data/tables.js +37 -0
  70. package/dist/controlPlane/discovery/adminRoute.d.ts +313 -0
  71. package/dist/controlPlane/discovery/adminRoute.d.ts.map +1 -0
  72. package/dist/controlPlane/discovery/adminRoute.js +136 -0
  73. package/dist/controlPlane/discovery/configuration.d.ts +108 -0
  74. package/dist/controlPlane/discovery/configuration.d.ts.map +1 -0
  75. package/dist/controlPlane/discovery/configuration.js +187 -0
  76. package/dist/controlPlane/discovery/drift.d.ts +64 -0
  77. package/dist/controlPlane/discovery/drift.d.ts.map +1 -0
  78. package/dist/controlPlane/discovery/drift.js +58 -0
  79. package/dist/controlPlane/discovery/health.d.ts +99 -0
  80. package/dist/controlPlane/discovery/health.d.ts.map +1 -0
  81. package/dist/controlPlane/discovery/health.js +151 -0
  82. package/dist/controlPlane/discovery/healthSummary.d.ts +236 -0
  83. package/dist/controlPlane/discovery/healthSummary.d.ts.map +1 -0
  84. package/dist/controlPlane/discovery/healthSummary.js +278 -0
  85. package/dist/controlPlane/error/errors.d.ts +67 -0
  86. package/dist/controlPlane/error/errors.d.ts.map +1 -0
  87. package/dist/controlPlane/error/errors.js +79 -0
  88. package/dist/controlPlane/http/cors.d.ts +112 -0
  89. package/dist/controlPlane/http/cors.d.ts.map +1 -0
  90. package/dist/controlPlane/http/cors.js +192 -0
  91. package/dist/controlPlane/http/guard.d.ts +77 -0
  92. package/dist/controlPlane/http/guard.d.ts.map +1 -0
  93. package/dist/controlPlane/http/guard.js +142 -0
  94. package/dist/controlPlane/http/handlers.d.ts +179 -0
  95. package/dist/controlPlane/http/handlers.d.ts.map +1 -0
  96. package/dist/controlPlane/http/handlers.js +245 -0
  97. package/dist/controlPlane/http/responses.d.ts +99 -0
  98. package/dist/controlPlane/http/responses.d.ts.map +1 -0
  99. package/dist/controlPlane/http/responses.js +63 -0
  100. package/dist/controlPlane/http/routes.d.ts +40 -0
  101. package/dist/controlPlane/http/routes.d.ts.map +1 -0
  102. package/dist/controlPlane/http/routes.js +83 -0
  103. package/dist/controlPlane/http/schemas.d.ts +39 -0
  104. package/dist/controlPlane/http/schemas.d.ts.map +1 -0
  105. package/dist/controlPlane/http/schemas.js +31 -0
  106. package/dist/controlPlane/http/verify.d.ts +84 -0
  107. package/dist/controlPlane/http/verify.d.ts.map +1 -0
  108. package/dist/controlPlane/http/verify.js +65 -0
  109. package/dist/controlPlane/migrations/0001_init.d.ts +51 -0
  110. package/dist/controlPlane/migrations/0001_init.d.ts.map +1 -0
  111. package/dist/controlPlane/migrations/0001_init.js +65 -0
  112. package/dist/controlPlane/replay/d1Guard.d.ts +29 -0
  113. package/dist/controlPlane/replay/d1Guard.d.ts.map +1 -0
  114. package/dist/controlPlane/replay/d1Guard.js +39 -0
  115. package/dist/controlPlane/replay/guard.d.ts +52 -0
  116. package/dist/controlPlane/replay/guard.d.ts.map +1 -0
  117. package/dist/controlPlane/replay/guard.js +0 -0
  118. package/dist/controlPlane/replay/kvGuard.d.ts +99 -0
  119. package/dist/controlPlane/replay/kvGuard.d.ts.map +1 -0
  120. package/dist/controlPlane/replay/kvGuard.js +101 -0
  121. package/dist/controlPlane/scope/scope.d.ts +68 -0
  122. package/dist/controlPlane/scope/scope.d.ts.map +1 -0
  123. package/dist/controlPlane/scope/scope.js +63 -0
  124. package/dist/controlPlane/token/base64url.d.ts +10 -0
  125. package/dist/controlPlane/token/base64url.d.ts.map +1 -0
  126. package/dist/controlPlane/token/base64url.js +48 -0
  127. package/dist/controlPlane/token/claims.d.ts +83 -0
  128. package/dist/controlPlane/token/claims.d.ts.map +1 -0
  129. package/dist/controlPlane/token/claims.js +86 -0
  130. package/dist/controlPlane/token/digest.d.ts +44 -0
  131. package/dist/controlPlane/token/digest.d.ts.map +1 -0
  132. package/dist/controlPlane/token/digest.js +56 -0
  133. package/dist/controlPlane/token/jws.d.ts +52 -0
  134. package/dist/controlPlane/token/jws.d.ts.map +1 -0
  135. package/dist/controlPlane/token/jws.js +65 -0
  136. package/dist/controlPlane/token/mint.d.ts +56 -0
  137. package/dist/controlPlane/token/mint.d.ts.map +1 -0
  138. package/dist/controlPlane/token/mint.js +55 -0
  139. package/dist/controlPlane/wire.d.ts +122 -0
  140. package/dist/controlPlane/wire.d.ts.map +1 -0
  141. package/dist/controlPlane/wire.js +123 -0
  142. package/dist/createBackend.d.ts +58 -0
  143. package/dist/createBackend.d.ts.map +1 -0
  144. package/dist/createBackend.js +170 -0
  145. package/dist/createEntrypoint.d.ts +53 -0
  146. package/dist/createEntrypoint.d.ts.map +1 -0
  147. package/dist/createEntrypoint.js +52 -0
  148. package/dist/data/boundParameters.d.ts +83 -0
  149. package/dist/data/boundParameters.d.ts.map +1 -0
  150. package/dist/data/boundParameters.js +162 -0
  151. package/dist/data/codecs.d.ts +34 -0
  152. package/dist/data/codecs.d.ts.map +1 -0
  153. package/dist/data/codecs.js +135 -0
  154. package/dist/data/cursor.d.ts +81 -0
  155. package/dist/data/cursor.d.ts.map +1 -0
  156. package/dist/data/cursor.js +104 -0
  157. package/dist/data/databases.d.ts +55 -0
  158. package/dist/data/databases.d.ts.map +1 -0
  159. package/dist/data/databases.js +32 -0
  160. package/dist/data/db.d.ts +42 -0
  161. package/dist/data/db.d.ts.map +1 -0
  162. package/dist/data/db.js +24 -0
  163. package/dist/data/withD1Retry.d.ts +91 -0
  164. package/dist/data/withD1Retry.d.ts.map +1 -0
  165. package/dist/data/withD1Retry.js +152 -0
  166. package/dist/entitlement/entitlement.d.ts +118 -0
  167. package/dist/entitlement/entitlement.d.ts.map +1 -0
  168. package/dist/entitlement/entitlement.js +59 -0
  169. package/dist/entitlement/gateScan.d.ts +26 -0
  170. package/dist/entitlement/gateScan.d.ts.map +1 -0
  171. package/dist/entitlement/gateScan.js +96 -0
  172. package/dist/entitlement/require.d.ts +12 -0
  173. package/dist/entitlement/require.d.ts.map +1 -0
  174. package/dist/entitlement/require.js +123 -0
  175. package/dist/env/ambient.d.ts +52 -0
  176. package/dist/env/ambient.d.ts.map +1 -0
  177. package/dist/env/ambient.js +35 -0
  178. package/dist/env/ci.d.ts +36 -0
  179. package/dist/env/ci.d.ts.map +1 -0
  180. package/dist/env/ci.js +40 -0
  181. package/dist/env/stem.d.ts +23 -0
  182. package/dist/env/stem.d.ts.map +1 -0
  183. package/dist/env/stem.js +29 -0
  184. package/dist/error/cause.d.ts +143 -0
  185. package/dist/error/cause.d.ts.map +1 -0
  186. package/dist/error/cause.js +192 -0
  187. package/dist/error/client.d.ts +35 -0
  188. package/dist/error/client.d.ts.map +1 -0
  189. package/dist/error/client.js +38 -0
  190. package/dist/error/extend.d.ts +101 -0
  191. package/dist/error/extend.d.ts.map +1 -0
  192. package/dist/error/extend.js +76 -0
  193. package/dist/error/http.d.ts +1516 -0
  194. package/dist/error/http.d.ts.map +1 -0
  195. package/dist/error/http.js +72 -0
  196. package/dist/error/payload.d.ts +3034 -0
  197. package/dist/error/payload.d.ts.map +1 -0
  198. package/dist/error/payload.js +1110 -0
  199. package/dist/error/pithyError.d.ts +154 -0
  200. package/dist/error/pithyError.d.ts.map +1 -0
  201. package/dist/error/pithyError.js +197 -0
  202. package/dist/error/terminal.d.ts +28 -0
  203. package/dist/error/terminal.d.ts.map +1 -0
  204. package/dist/error/terminal.js +33 -0
  205. package/dist/http/authContext.d.ts +21 -0
  206. package/dist/http/authContext.d.ts.map +1 -0
  207. package/dist/http/authContext.js +23 -0
  208. package/dist/http/routeContract.d.ts +39 -0
  209. package/dist/http/routeContract.d.ts.map +1 -0
  210. package/dist/http/routeContract.js +82 -0
  211. package/dist/http/sameOrigin.d.ts +47 -0
  212. package/dist/http/sameOrigin.d.ts.map +1 -0
  213. package/dist/http/sameOrigin.js +24 -0
  214. package/dist/http/signedWebhook.d.ts +225 -0
  215. package/dist/http/signedWebhook.d.ts.map +1 -0
  216. package/dist/http/signedWebhook.js +247 -0
  217. package/dist/http/validation.d.ts +37 -0
  218. package/dist/http/validation.d.ts.map +1 -0
  219. package/dist/http/validation.js +14 -0
  220. package/dist/http/verification.d.ts +10 -0
  221. package/dist/http/verification.d.ts.map +1 -0
  222. package/dist/http/verification.js +17 -0
  223. package/dist/i18n/acceptLanguage.d.ts +22 -0
  224. package/dist/i18n/acceptLanguage.d.ts.map +1 -0
  225. package/dist/i18n/acceptLanguage.js +55 -0
  226. package/dist/i18n/catalog.d.ts +39 -0
  227. package/dist/i18n/catalog.d.ts.map +1 -0
  228. package/dist/i18n/catalog.js +57 -0
  229. package/dist/i18n/locale.d.ts +74 -0
  230. package/dist/i18n/locale.d.ts.map +1 -0
  231. package/dist/i18n/locale.js +109 -0
  232. package/dist/i18n/localeMarker.d.ts +29 -0
  233. package/dist/i18n/localeMarker.d.ts.map +1 -0
  234. package/dist/i18n/localeMarker.js +112 -0
  235. package/dist/i18n/match.d.ts +26 -0
  236. package/dist/i18n/match.d.ts.map +1 -0
  237. package/dist/i18n/match.js +88 -0
  238. package/dist/i18n/registry.d.ts +25 -0
  239. package/dist/i18n/registry.d.ts.map +1 -0
  240. package/dist/i18n/registry.js +51 -0
  241. package/dist/i18n/translator.d.ts +107 -0
  242. package/dist/i18n/translator.d.ts.map +1 -0
  243. package/dist/i18n/translator.js +80 -0
  244. package/dist/index.d.ts +32 -0
  245. package/dist/index.d.ts.map +1 -0
  246. package/dist/index.js +17 -0
  247. package/dist/kv/kv.d.ts +166 -0
  248. package/dist/kv/kv.d.ts.map +1 -0
  249. package/dist/kv/kv.js +261 -0
  250. package/dist/kv/namespaces.d.ts +58 -0
  251. package/dist/kv/namespaces.d.ts.map +1 -0
  252. package/dist/kv/namespaces.js +40 -0
  253. package/dist/logger/local.d.ts +41 -0
  254. package/dist/logger/local.d.ts.map +1 -0
  255. package/dist/logger/local.js +45 -0
  256. package/dist/logger/logger.d.ts +56 -0
  257. package/dist/logger/logger.d.ts.map +1 -0
  258. package/dist/logger/logger.js +83 -0
  259. package/dist/logger/record.d.ts +919 -0
  260. package/dist/logger/record.d.ts.map +1 -0
  261. package/dist/logger/record.js +79 -0
  262. package/dist/logger/worker.d.ts +74 -0
  263. package/dist/logger/worker.d.ts.map +1 -0
  264. package/dist/logger/worker.js +54 -0
  265. package/dist/migrations/batch.d.ts +10 -0
  266. package/dist/migrations/batch.d.ts.map +1 -0
  267. package/dist/migrations/batch.js +193 -0
  268. package/dist/migrations/bookkeeping.d.ts +24 -0
  269. package/dist/migrations/bookkeeping.d.ts.map +1 -0
  270. package/dist/migrations/bookkeeping.js +57 -0
  271. package/dist/migrations/owner.d.ts +41 -0
  272. package/dist/migrations/owner.d.ts.map +1 -0
  273. package/dist/migrations/owner.js +105 -0
  274. package/dist/migrations/registry.d.ts +36 -0
  275. package/dist/migrations/registry.d.ts.map +1 -0
  276. package/dist/migrations/registry.js +70 -0
  277. package/dist/migrations/runner.d.ts +67 -0
  278. package/dist/migrations/runner.d.ts.map +1 -0
  279. package/dist/migrations/runner.js +218 -0
  280. package/dist/naming/domains.d.ts +108 -0
  281. package/dist/naming/domains.d.ts.map +1 -0
  282. package/dist/naming/domains.js +156 -0
  283. package/dist/naming/environment.d.ts +118 -0
  284. package/dist/naming/environment.d.ts.map +1 -0
  285. package/dist/naming/environment.js +190 -0
  286. package/dist/naming/feature.d.ts +68 -0
  287. package/dist/naming/feature.d.ts.map +1 -0
  288. package/dist/naming/feature.js +106 -0
  289. package/dist/naming/limits.d.ts +229 -0
  290. package/dist/naming/limits.d.ts.map +1 -0
  291. package/dist/naming/limits.js +187 -0
  292. package/dist/naming/provisionScope.d.ts +91 -0
  293. package/dist/naming/provisionScope.d.ts.map +1 -0
  294. package/dist/naming/provisionScope.js +65 -0
  295. package/dist/naming/resource.d.ts +169 -0
  296. package/dist/naming/resource.d.ts.map +1 -0
  297. package/dist/naming/resource.js +220 -0
  298. package/dist/naming/resourceNames.d.ts +83 -0
  299. package/dist/naming/resourceNames.d.ts.map +1 -0
  300. package/dist/naming/resourceNames.js +102 -0
  301. package/dist/naming/segment.d.ts +29 -0
  302. package/dist/naming/segment.d.ts.map +1 -0
  303. package/dist/naming/segment.js +31 -0
  304. package/dist/projection/asRead.d.ts +72 -0
  305. package/dist/projection/asRead.d.ts.map +1 -0
  306. package/dist/projection/asRead.js +169 -0
  307. package/dist/projection/published.d.ts +95 -0
  308. package/dist/projection/published.d.ts.map +1 -0
  309. package/dist/projection/published.js +114 -0
  310. package/dist/schema/describedness.d.ts +55 -0
  311. package/dist/schema/describedness.d.ts.map +1 -0
  312. package/dist/schema/describedness.js +180 -0
  313. package/dist/seed/compose.d.ts +41 -0
  314. package/dist/seed/compose.d.ts.map +1 -0
  315. package/dist/seed/compose.js +51 -0
  316. package/dist/seed/devLogin.d.ts +50 -0
  317. package/dist/seed/devLogin.d.ts.map +1 -0
  318. package/dist/seed/devLogin.js +52 -0
  319. package/dist/seed/exampleIdentities.d.ts +58 -0
  320. package/dist/seed/exampleIdentities.d.ts.map +1 -0
  321. package/dist/seed/exampleIdentities.js +26 -0
  322. package/dist/seed/metadata.d.ts +20 -0
  323. package/dist/seed/metadata.d.ts.map +1 -0
  324. package/dist/seed/metadata.js +27 -0
  325. package/dist/seed/seed.d.ts +264 -0
  326. package/dist/seed/seed.d.ts.map +1 -0
  327. package/dist/seed/seed.js +37 -0
  328. package/dist/seed/seededRows.d.ts +26 -0
  329. package/dist/seed/seededRows.d.ts.map +1 -0
  330. package/dist/seed/seededRows.js +20 -0
  331. package/dist/seed/writeD1.d.ts +43 -0
  332. package/dist/seed/writeD1.d.ts.map +1 -0
  333. package/dist/seed/writeD1.js +73 -0
  334. package/dist/seed/writeKv.d.ts +29 -0
  335. package/dist/seed/writeKv.d.ts.map +1 -0
  336. package/dist/seed/writeKv.js +63 -0
  337. package/dist/semver/semver.d.ts +62 -0
  338. package/dist/semver/semver.d.ts.map +1 -0
  339. package/dist/semver/semver.js +137 -0
  340. package/dist/text/comments.d.ts +62 -0
  341. package/dist/text/comments.d.ts.map +1 -0
  342. package/dist/text/comments.js +161 -0
  343. package/dist/version.generated.d.ts +5 -0
  344. package/dist/version.generated.d.ts.map +1 -0
  345. package/dist/version.generated.js +7 -0
  346. package/dist/worker/health.d.ts +39 -0
  347. package/dist/worker/health.d.ts.map +1 -0
  348. package/dist/worker/health.js +41 -0
  349. package/dist/worker/identity.d.ts +191 -0
  350. package/dist/worker/identity.d.ts.map +1 -0
  351. package/dist/worker/identity.js +162 -0
  352. package/dist/workflow/bindings.d.ts +41 -0
  353. package/dist/workflow/bindings.d.ts.map +1 -0
  354. package/dist/workflow/bindings.js +53 -0
  355. package/dist/workflow/dispatch.d.ts +98 -0
  356. package/dist/workflow/dispatch.d.ts.map +1 -0
  357. package/dist/workflow/dispatch.js +148 -0
  358. package/dist/workflow/dispatchRoute.d.ts +80 -0
  359. package/dist/workflow/dispatchRoute.d.ts.map +1 -0
  360. package/dist/workflow/dispatchRoute.js +134 -0
  361. package/dist/workflow/faults.d.ts +97 -0
  362. package/dist/workflow/faults.d.ts.map +1 -0
  363. package/dist/workflow/faults.js +111 -0
  364. package/dist/workflow/host.d.ts +176 -0
  365. package/dist/workflow/host.d.ts.map +1 -0
  366. package/dist/workflow/host.js +116 -0
  367. package/dist/workflow/hostEntry.d.ts +50 -0
  368. package/dist/workflow/hostEntry.d.ts.map +1 -0
  369. package/dist/workflow/hostEntry.js +24 -0
  370. package/dist/workflow/hostEnv.d.ts +143 -0
  371. package/dist/workflow/hostEnv.d.ts.map +1 -0
  372. package/dist/workflow/hostEnv.js +170 -0
  373. package/dist/workflow/loopback.d.ts +52 -0
  374. package/dist/workflow/loopback.d.ts.map +1 -0
  375. package/dist/workflow/loopback.js +76 -0
  376. package/dist/workflow/naming.d.ts +79 -0
  377. package/dist/workflow/naming.d.ts.map +1 -0
  378. package/dist/workflow/naming.js +138 -0
  379. package/dist/workflow/register.d.ts +19 -0
  380. package/dist/workflow/register.d.ts.map +1 -0
  381. package/dist/workflow/register.js +40 -0
  382. package/dist/workflow/schemas.d.ts +44 -0
  383. package/dist/workflow/schemas.d.ts.map +1 -0
  384. package/dist/workflow/schemas.js +43 -0
  385. package/dist/workflow/spec.d.ts +81 -0
  386. package/dist/workflow/spec.d.ts.map +1 -0
  387. package/dist/workflow/spec.js +0 -0
  388. package/dist/workflow/stepMessage.d.ts +122 -0
  389. package/dist/workflow/stepMessage.d.ts.map +1 -0
  390. package/dist/workflow/stepMessage.js +152 -0
  391. package/package.json +20 -9
  392. package/src/capability/manifest.ts +21 -0
  393. package/src/version.generated.ts +1 -1
@@ -0,0 +1,298 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * What a manifest states as an option's rendered value: a JSON value other than `null`, nested freely,
4
+ * and printable as source without Biome wanting it back a different way.
5
+ *
6
+ * A scalar is what an option normally is, and every `--set` override still coerces to one — the CLI
7
+ * takes strings from a flag or a prompt, and neither can carry an object.
8
+ *
9
+ * Objects and arrays are here for the options a scalar cannot express: one the capability's config type
10
+ * **requires** and whose contents only the adopter can write. `SecretsConfig` requires a `registry`; a
11
+ * manifest could not state one, so `pithy add secrets` rendered every option but that and left a
12
+ * `pithy.config.ts` failing `tsc` with TS2741 on a project nobody had touched yet (#161).
13
+ *
14
+ * #161 admitted only the **empty** literal, which is right for a registry — an empty registry is a legal
15
+ * registry. It is wrong everywhere the collection is required to be non-empty. `ledger.currencies`,
16
+ * `leaderboard.boards` and `multiplayer.games` each carry `.min(1)` with a message saying why, so an
17
+ * empty seed typechecks and then throws `too_small` on the first config load — and `pithy upgrade`
18
+ * reports that as "Could not load pithy.config.ts", naming the wrong cause (#168). So a default may now
19
+ * be a **complete, minimal, working example**: one currency, one board, one game. The option's
20
+ * `describe`, rendered as the comment directly above it, is what tells the adopter to replace it.
21
+ *
22
+ * `null` stays out. `typeof null === "object"`, and the CLI reads exactly that to decide an option is
23
+ * hand-written and therefore not settable from `--set` or a prompt; a null default would be mistaken for
24
+ * a collection nobody can fill.
25
+ *
26
+ * The recursion is this widening's cost, paid in the open. Every shape admitted here has to come back
27
+ * out as the TypeScript Biome prints — see {@link renderConfigValue}.
28
+ *
29
+ * **The schema is narrower than the type, deliberately.** TypeScript cannot say "a string with no double
30
+ * quote in it", so the two characters {@link renderConfigValue} cannot print as Biome would are refused
31
+ * here instead, at the one door a manifest comes through. The alternative was to teach the renderer
32
+ * Biome's quote-preference heuristic and its numeric-literal normalizer, and then keep both in step with
33
+ * a formatter that is free to change either — for inputs no worked example should carry. A manifest
34
+ * default is an *example*; one that needs a quote inside a string is already too clever (#171).
35
+ */
36
+ export type ConfigOptionValue = string | number | boolean | ConfigOptionValue[] | {
37
+ [key: string]: ConfigOptionValue;
38
+ };
39
+ export declare const ConfigOptionValue: z.ZodType<ConfigOptionValue>;
40
+ /**
41
+ * Render a manifest default as TypeScript source, on one line.
42
+ *
43
+ * `pithy add` writes this straight into the adopter's `pithy.config.ts`, which the scaffold's own
44
+ * `biome check` then reads — so *valid* TypeScript is not the bar. It has to be the TypeScript Biome
45
+ * would have printed. `JSON.stringify` is not: it quotes every key, and Biome's `quoteProperties`
46
+ * default rewrites `{"code":"chips"}` to `{ code: "chips" }`, failing the lint gate on a project the
47
+ * adopter has not touched. This prints Biome's shape directly — bare keys wherever they are legal,
48
+ * spaces inside braces, `, ` between entries, `{}` and `[]` for the empty literals #161 relies on.
49
+ *
50
+ * **Total over what {@link ConfigOptionValue} *parses*, which is narrower than what it types.** The two
51
+ * shapes the schema refuses — a string carrying `"` or `${`, a number no plain decimal spells — are
52
+ * refused here too, with a `ValidationError`. A manifest cannot reach that path, since every manifest is
53
+ * parsed before it is rendered; `pithy add --set` can, because a flag's string goes straight through. A
54
+ * refusal at the command beats a config file that fails the adopter's first `bun run lint`.
55
+ *
56
+ * One line, always. Biome breaks any literal past {@link CONFIG_LINE_WIDTH}, and a broken literal is a
57
+ * `biome check` failure on a project the adopter has not touched — #161 and #168 both. That rule used to
58
+ * be this sentence and nothing else, with multiplayer's seed sitting at 98 columns of 120; it is now a
59
+ * test over every shipped manifest default, rendered by {@link renderConfigOptionLine} at the indent the
60
+ * writers really use (#171).
61
+ */
62
+ export declare function renderConfigValue(value: ConfigOptionValue): string;
63
+ /**
64
+ * The column Biome wraps at — `formatter.lineWidth` in the `biome.jsonc` that `pithy init` scaffolds.
65
+ *
66
+ * A line of exactly this width survives untouched; one character more and Biome explodes the literal
67
+ * across a dozen lines, so `biome check` fails on a file the adopter never opened. Measured by running
68
+ * Biome over generated lines of 118 through 122 columns, not read off a docs page.
69
+ */
70
+ export declare const CONFIG_LINE_WIDTH = 120;
71
+ /**
72
+ * The indent both writers render an option line at in a scaffolded project: the managed-region marker
73
+ * sits four columns in, and an option sits two further.
74
+ *
75
+ * Each writer takes its real indent from the file it is editing, so an adopter who nested `capabilities`
76
+ * deeper gets a longer line than this. This is the scaffold's indent, and the scaffold is what the width
77
+ * rule is measured against — a default that does not fit here fits nowhere.
78
+ */
79
+ export declare const CONFIG_OPTION_INDENT = " ";
80
+ /**
81
+ * The one line both writers put in `pithy.config.ts` for one option.
82
+ *
83
+ * `pithy add` renders a whole registration and `pithy upgrade` splices keys into an existing one, but the
84
+ * line itself is this — so neither command can drift from the other by rendering a default its own way.
85
+ * That drift was real and shipped: `upgrade` called `JSON.stringify` where `add` called
86
+ * {@link renderConfigValue}, so one manifest produced `{"code":"chips"}` from one command and
87
+ * `{ code: "chips" }` from the other, and only the second survived `biome check` (#171).
88
+ *
89
+ * The comment above the line is not measured against {@link CONFIG_LINE_WIDTH}: Biome never reflows a
90
+ * comment, so an option's `describe` may run as long as it needs to.
91
+ */
92
+ /**
93
+ * What a writer has decided to put on the right of an option line: a value, or one of the scaffold's
94
+ * constants referenced by name.
95
+ *
96
+ * A marker object rather than a string, because a string would be indistinguishable from a value that
97
+ * happens to spell an identifier — and the difference is quotes, which is the difference between an
98
+ * origin that follows the environment and one written down. Constructed by the CLI from
99
+ * `ConfigOption.constant` after it has checked the target config declares it; never parsed from a
100
+ * manifest, which states only the key.
101
+ */
102
+ export interface ConfigConstantRef {
103
+ /** The constant to render, by key into {@link CONFIG_CONSTANTS}. */
104
+ readonly constant: ConfigConstant;
105
+ }
106
+ export declare function renderConfigOptionLine(key: string, value: ConfigOptionValue | ConfigConstantRef, indent: string): string;
107
+ /**
108
+ * The comment line both writers put above an option: its `describe`, verbatim, as a `//` comment.
109
+ *
110
+ * The rationale is the whole reason the generated config documents itself, and it comes out of a manifest
111
+ * read from `node_modules` — third-party text reaching generated source. Both writers used to build this
112
+ * line themselves, which is the arrangement that let `pithy add` and `pithy upgrade` disagree about the
113
+ * line *below* it (#171); they now share this, so a rule stated here holds for both.
114
+ *
115
+ * Total over what {@link ConfigOption} parses, exactly as {@link renderConfigOptionLine} is: a manifest
116
+ * cannot reach the throw, because every manifest is parsed before it is rendered.
117
+ */
118
+ export declare function renderConfigOptionComment(describe: string, indent: string): string;
119
+ /**
120
+ * The one import line a capability's wiring is written as.
121
+ *
122
+ * Both halves are interpolated raw, and both used to be `z.string().min(1)`: `pithy add` wrote
123
+ * `import { audit }) ; evil( } from "@pithy-sh/audit/src/index";` from a manifest that parsed, and
124
+ * reported `Done.` (#183). The line has one producer now, for the same reason
125
+ * {@link renderConfigOptionLine} does — a rule stated at one call site is a rule the next call site does
126
+ * not have.
127
+ *
128
+ * Total over what {@link CapabilityManifest} parses. A parsed manifest cannot reach either throw; the
129
+ * fork path `pithy add --eject` composes can, which is why the specifier is checked rather than assumed.
130
+ */
131
+ export declare function renderCapabilityImport(name: string, specifier: string): string;
132
+ /** What {@link renderCapabilityRegistration} writes one registration from. */
133
+ export interface CapabilityRegistration {
134
+ /** The capability's name — written bare as the call, so a bare identifier and nothing else. */
135
+ name: string;
136
+ /** The indent the call sits at, taken by each writer from the file it is editing. */
137
+ indent: string;
138
+ /**
139
+ * The option lines already rendered by {@link renderConfigOptionComment} and
140
+ * {@link renderConfigOptionLine}, in order. Empty renders the one-liner form.
141
+ */
142
+ optionLines?: readonly string[];
143
+ /**
144
+ * Whether the registration ends with the array's separating comma. `pithy add` writes a whole entry and
145
+ * needs it; `pithy upgrade` splices a block over an existing `name()` whose comma is already in the file.
146
+ */
147
+ trailingComma?: boolean;
148
+ }
149
+ /**
150
+ * The registration both writers put in `pithy.config.ts` for one capability — `auth(),` with no options,
151
+ * the block form with them.
152
+ *
153
+ * The name is the only thing here that comes from a manifest, and it is the thing that reached generated
154
+ * source unchecked (#183). One producer, so the rule holds for `pithy add`'s whole-entry write and for
155
+ * `pithy upgrade`'s conversion of a one-liner into a block alike.
156
+ */
157
+ export declare function renderCapabilityRegistration({ name, indent, optionLines, trailingComma, }: CapabilityRegistration): string;
158
+ /**
159
+ * One configurable option a capability exposes. `pithy add` renders each as
160
+ * `cap({ key: default })` in `pithy.config.ts`, with `describe` as the comment
161
+ * above it — the self-documenting config surface (docs/CLI.md §Config). The
162
+ * mount-point model rides on options like this (e.g. `basePath`), so handlers
163
+ * stay in the package and the user owns the wiring.
164
+ *
165
+ * **Every option the capability's config type requires belongs here.** The manifest is the only thing
166
+ * `pithy add` reads, so an option it omits is an option the generated config omits — see
167
+ * {@link ConfigOptionValue} for the one that got away.
168
+ *
169
+ * **All three fields are narrowed to what the renderer can print, not just the value.** #171 held
170
+ * `default` to shapes Biome prints unchanged and left `key` and `describe` as `z.string().min(1)`, so a
171
+ * manifest could still state `content-type` — rendered `content-type: "x",`, which is not TypeScript at
172
+ * all — or a `describe` with a newline in it, whose second line landed in `pithy.config.ts` as bare code.
173
+ * A manifest is third-party data read from `node_modules`, and an option key is that data interpolated
174
+ * into generated source; `}) ; evil(` is the shape that makes the point. Narrowing here is what lets
175
+ * {@link renderConfigOptionLine} and {@link renderConfigOptionComment} guarantee the whole line rather
176
+ * than its right-hand side (#174).
177
+ */
178
+ /**
179
+ * The constants a scaffolded `pithy.config.ts` defines, that a manifest option may name instead of
180
+ * stating a literal — identifier by key, so the manifest carries a **name from a closed set** and never
181
+ * an expression.
182
+ *
183
+ * That is the whole security argument, and it is the same one #183 settled for a capability's name: a
184
+ * manifest is third-party data read out of `node_modules` and written into the adopter's TypeScript, so
185
+ * anything it states unquoted must come from a list this package controls. An `expression` field would
186
+ * put arbitrary code in the adopter's config on the strength of a package they installed.
187
+ *
188
+ * One entry today. `PUBLIC_ORIGIN` is the Worker's address for the environment it composes in, derived
189
+ * by `originFor(compositionEnvironment(), DOMAINS)` in the scaffolded config — the line that exists so no
190
+ * capability ever asks an adopter to write an origin down again.
191
+ */
192
+ export declare const CONFIG_CONSTANTS: {
193
+ readonly publicOrigin: "PUBLIC_ORIGIN";
194
+ };
195
+ /** Which scaffolded constant an option's value is, by key. */
196
+ export declare const ConfigConstant: z.ZodEnum<{
197
+ publicOrigin: "publicOrigin";
198
+ }>;
199
+ export type ConfigConstant = z.infer<typeof ConfigConstant>;
200
+ export declare const ConfigOption: z.ZodObject<{
201
+ key: z.ZodString;
202
+ default: z.ZodOptional<z.ZodType<ConfigOptionValue, unknown, z.core.$ZodTypeInternals<ConfigOptionValue, unknown>>>;
203
+ choices: z.ZodOptional<z.ZodArray<z.ZodString>>;
204
+ choicesNeedingCode: z.ZodOptional<z.ZodPipe<z.ZodCustom<Record<string, string>, Record<string, string>>, z.ZodType<Record<string, string>, Record<string, string>, z.core.$ZodTypeInternals<Record<string, string>, Record<string, string>>>>>;
205
+ constant: z.ZodOptional<z.ZodEnum<{
206
+ publicOrigin: "publicOrigin";
207
+ }>>;
208
+ describe: z.ZodString;
209
+ }, z.core.$strip>;
210
+ export type ConfigOption = z.infer<typeof ConfigOption>;
211
+ /**
212
+ * Declarative, CLI-facing description of a capability. Lives at `pithy.manifest.json` in
213
+ * each capability package; read by `pithy add`/`upgrade` to wire bindings into
214
+ * `wrangler.jsonc` and scaffold config — without executing the package. Plain data, so
215
+ * it's a validated Zod object. `requiredBindings` reuse the `BindingSpec` contract, so a
216
+ * manifest's bindings are normalized (and rejected) exactly like a capability's own.
217
+ *
218
+ * **The invariant, stated here rather than at the writers: every string a manifest states that reaches
219
+ * generated source is constrained to what the renderer can print.** Three rounds got there one field at a
220
+ * time — #171 narrowed an option's `default`, #174 its `key` and `describe`, #183 the capability's own
221
+ * `name` and `package` — because each time the rule lived at the call site that had just been fixed. It
222
+ * lives here now, and `manifest.test.ts` walks this schema and fails the build on a string field that is
223
+ * neither constrained nor declared prose the CLI only ever prints.
224
+ */
225
+ export declare const CapabilityManifest: z.ZodObject<{
226
+ name: z.ZodString;
227
+ package: z.ZodString;
228
+ requiredBindings: z.ZodArray<z.ZodObject<{
229
+ type: z.ZodUnion<readonly [z.ZodLiteral<"d1">, z.ZodLiteral<"kv">, z.ZodLiteral<"r2">, z.ZodLiteral<"ai">, z.ZodLiteral<"vectorize">, z.ZodLiteral<"queue">, z.ZodLiteral<"ratelimit">, z.ZodLiteral<"email">, z.ZodLiteral<"secret">, z.ZodLiteral<"workflow">, z.ZodLiteral<"service">, z.ZodLiteral<"durable_object">]>;
230
+ name: z.ZodString;
231
+ optional: z.ZodDefault<z.ZodBoolean>;
232
+ className: z.ZodOptional<z.ZodString>;
233
+ classModule: z.ZodOptional<z.ZodString>;
234
+ job: z.ZodOptional<z.ZodString>;
235
+ service: z.ZodOptional<z.ZodString>;
236
+ remote: z.ZodOptional<z.ZodBoolean>;
237
+ }, z.core.$strip>>;
238
+ peerCapabilities: z.ZodDefault<z.ZodArray<z.ZodString>>;
239
+ optionalCapabilities: z.ZodDefault<z.ZodArray<z.ZodString>>;
240
+ migrationNamespace: z.ZodOptional<z.ZodString>;
241
+ devSecrets: z.ZodDefault<z.ZodArray<z.ZodObject<{
242
+ name: z.ZodString;
243
+ devValue: z.ZodEnum<{
244
+ random: "random";
245
+ }>;
246
+ }, z.core.$strip>>>;
247
+ secrets: z.ZodDefault<z.ZodArray<z.ZodObject<{
248
+ name: z.ZodString;
249
+ origin: z.ZodDiscriminatedUnion<[z.ZodObject<{
250
+ kind: z.ZodLiteral<"minted">;
251
+ recipe: z.ZodDiscriminatedUnion<[z.ZodObject<{
252
+ kind: z.ZodLiteral<"random">;
253
+ bytes: z.ZodInt;
254
+ encoding: z.ZodEnum<{
255
+ base64: "base64";
256
+ base64url: "base64url";
257
+ hex: "hex";
258
+ }>;
259
+ }, z.core.$strip>, z.ZodObject<{
260
+ kind: z.ZodLiteral<"encryptionConfig">;
261
+ }, z.core.$strip>], "kind">;
262
+ }, z.core.$strip>, z.ZodObject<{
263
+ kind: z.ZodLiteral<"helped">;
264
+ issuer: z.ZodType<"apple" | "atlassian" | "cloudflare" | "facebook" | "github" | "gitlab" | "google" | "lemonSqueezy" | "microsoft" | "other" | "paddle" | "project" | "stripe", unknown, z.core.$ZodTypeInternals<"apple" | "atlassian" | "cloudflare" | "facebook" | "github" | "gitlab" | "google" | "lemonSqueezy" | "microsoft" | "other" | "paddle" | "project" | "stripe", unknown>>;
265
+ needs: z.ZodPipe<z.ZodCustom<Partial<Record<string, string[]>>, Partial<Record<string, string[]>>>, z.ZodType<Partial<Record<string, string[]>>, Partial<Record<string, string[]>>, z.core.$ZodTypeInternals<Partial<Record<string, string[]>>, Partial<Record<string, string[]>>>>>;
266
+ documentation: z.ZodOptional<z.ZodURL>;
267
+ }, z.core.$strip>, z.ZodObject<{
268
+ kind: z.ZodLiteral<"obtained">;
269
+ issuer: z.ZodType<"apple" | "atlassian" | "cloudflare" | "facebook" | "github" | "gitlab" | "google" | "lemonSqueezy" | "microsoft" | "other" | "paddle" | "project" | "stripe", unknown, z.core.$ZodTypeInternals<"apple" | "atlassian" | "cloudflare" | "facebook" | "github" | "gitlab" | "google" | "lemonSqueezy" | "microsoft" | "other" | "paddle" | "project" | "stripe", unknown>>;
270
+ documentation: z.ZodURL;
271
+ }, z.core.$strip>], "kind">;
272
+ rotation: z.ZodDiscriminatedUnion<[z.ZodObject<{
273
+ kind: z.ZodLiteral<"local">;
274
+ }, z.core.$strip>, z.ZodObject<{
275
+ kind: z.ZodLiteral<"provider">;
276
+ issuer: z.ZodType<"apple" | "atlassian" | "cloudflare" | "facebook" | "github" | "gitlab" | "google" | "lemonSqueezy" | "microsoft" | "other" | "paddle" | "project" | "stripe", unknown, z.core.$ZodTypeInternals<"apple" | "atlassian" | "cloudflare" | "facebook" | "github" | "gitlab" | "google" | "lemonSqueezy" | "microsoft" | "other" | "paddle" | "project" | "stripe", unknown>>;
277
+ documentation: z.ZodOptional<z.ZodURL>;
278
+ }, z.core.$strip>, z.ZodObject<{
279
+ kind: z.ZodLiteral<"manual">;
280
+ issuer: z.ZodType<"apple" | "atlassian" | "cloudflare" | "facebook" | "github" | "gitlab" | "google" | "lemonSqueezy" | "microsoft" | "other" | "paddle" | "project" | "stripe", unknown, z.core.$ZodTypeInternals<"apple" | "atlassian" | "cloudflare" | "facebook" | "github" | "gitlab" | "google" | "lemonSqueezy" | "microsoft" | "other" | "paddle" | "project" | "stripe", unknown>>;
281
+ documentation: z.ZodURL;
282
+ }, z.core.$strip>], "kind">;
283
+ }, z.core.$strip>>>;
284
+ scaffold: z.ZodDefault<z.ZodArray<z.ZodString>>;
285
+ configOptions: z.ZodDefault<z.ZodArray<z.ZodObject<{
286
+ key: z.ZodString;
287
+ default: z.ZodOptional<z.ZodType<ConfigOptionValue, unknown, z.core.$ZodTypeInternals<ConfigOptionValue, unknown>>>;
288
+ choices: z.ZodOptional<z.ZodArray<z.ZodString>>;
289
+ choicesNeedingCode: z.ZodOptional<z.ZodPipe<z.ZodCustom<Record<string, string>, Record<string, string>>, z.ZodType<Record<string, string>, Record<string, string>, z.core.$ZodTypeInternals<Record<string, string>, Record<string, string>>>>>;
290
+ constant: z.ZodOptional<z.ZodEnum<{
291
+ publicOrigin: "publicOrigin";
292
+ }>>;
293
+ describe: z.ZodString;
294
+ }, z.core.$strip>>>;
295
+ whenToEnable: z.ZodOptional<z.ZodString>;
296
+ }, z.core.$strip>;
297
+ export type CapabilityManifest = z.infer<typeof CapabilityManifest>;
298
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/capability/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgDxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,iBAAiB,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC;AAEvH,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAUgD,CAAC;AA6D5G;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CASlE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAOD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,EAC5C,MAAM,EAAE,MAAM,GACb,MAAM,CAaR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CASlF;AAwDD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAU9E;AAED,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACrC,+FAA+F;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,IAAI,EACJ,MAAM,EACN,WAAgB,EAChB,aAAoB,GACrB,EAAE,sBAAsB,GAAG,MAAM,CAKjC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB;aAAK,YAAY,EAAE,eAAe;CAAW,CAAC;AAE3E,8DAA8D;AAC9D,eAAO,MAAM,cAAc;;EAEuF,CAAC;AACnH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,YAAY;;;;;;;;;iBA4EoE,CAAC;AAC9F,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiE0D,CAAC;AAC1F,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}