@adonis-agora/payments 0.2.0 → 0.4.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 (346) hide show
  1. package/CHANGELOG.md +2375 -0
  2. package/dist/assets/spa/assets/index-B7rU8eIL.css +2 -0
  3. package/dist/assets/spa/assets/index-BcM2VH5k.js +10 -0
  4. package/dist/assets/spa/assets/index-BcM2VH5k.js.map +1 -0
  5. package/dist/assets/spa/index.html +20 -0
  6. package/dist/commands/main.d.ts +4 -3
  7. package/dist/commands/main.d.ts.map +1 -1
  8. package/dist/commands/main.js +9 -2
  9. package/dist/commands/main.js.map +1 -1
  10. package/dist/commands/make_billable.d.ts.map +1 -1
  11. package/dist/commands/make_billable.js +1 -1
  12. package/dist/commands/make_billable.js.map +1 -1
  13. package/dist/commands/make_webhook_handler.d.ts.map +1 -1
  14. package/dist/commands/make_webhook_handler.js +1 -1
  15. package/dist/commands/make_webhook_handler.js.map +1 -1
  16. package/dist/commands/payments_health.d.ts +31 -0
  17. package/dist/commands/payments_health.d.ts.map +1 -0
  18. package/dist/commands/payments_health.js +113 -0
  19. package/dist/commands/payments_health.js.map +1 -0
  20. package/dist/commands/payments_sync.d.ts +18 -4
  21. package/dist/commands/payments_sync.d.ts.map +1 -1
  22. package/dist/commands/payments_sync.js +136 -40
  23. package/dist/commands/payments_sync.js.map +1 -1
  24. package/dist/commands/payments_webhook.d.ts.map +1 -1
  25. package/dist/commands/payments_webhook.js.map +1 -1
  26. package/dist/configure.d.ts +12 -5
  27. package/dist/configure.d.ts.map +1 -1
  28. package/dist/configure.js +18 -5
  29. package/dist/configure.js.map +1 -1
  30. package/dist/providers/dashboard_provider.d.ts +97 -0
  31. package/dist/providers/dashboard_provider.d.ts.map +1 -0
  32. package/dist/providers/dashboard_provider.js +430 -0
  33. package/dist/providers/dashboard_provider.js.map +1 -0
  34. package/dist/providers/payments_client_provider.d.ts +41 -0
  35. package/dist/providers/payments_client_provider.d.ts.map +1 -0
  36. package/dist/providers/payments_client_provider.js +95 -0
  37. package/dist/providers/payments_client_provider.js.map +1 -0
  38. package/dist/providers/payments_provider.d.ts +35 -0
  39. package/dist/providers/payments_provider.d.ts.map +1 -1
  40. package/dist/providers/payments_provider.js +250 -36
  41. package/dist/providers/payments_provider.js.map +1 -1
  42. package/dist/src/billing/billing_health.d.ts +85 -0
  43. package/dist/src/billing/billing_health.d.ts.map +1 -0
  44. package/dist/src/billing/billing_health.js +155 -0
  45. package/dist/src/billing/billing_health.js.map +1 -0
  46. package/dist/src/billing/billing_overview.d.ts +4 -3
  47. package/dist/src/billing/billing_overview.d.ts.map +1 -1
  48. package/dist/src/billing/billing_overview.js +14 -5
  49. package/dist/src/billing/billing_overview.js.map +1 -1
  50. package/dist/src/billing/billing_store.d.ts +634 -5
  51. package/dist/src/billing/billing_store.d.ts.map +1 -1
  52. package/dist/src/billing/billing_store.js +18 -1
  53. package/dist/src/billing/billing_store.js.map +1 -1
  54. package/dist/src/billing/index.d.ts +4 -3
  55. package/dist/src/billing/index.d.ts.map +1 -1
  56. package/dist/src/billing/index.js +2 -1
  57. package/dist/src/billing/index.js.map +1 -1
  58. package/dist/src/billing/list_query.d.ts +16 -0
  59. package/dist/src/billing/list_query.d.ts.map +1 -0
  60. package/dist/src/billing/list_query.js +28 -0
  61. package/dist/src/billing/list_query.js.map +1 -0
  62. package/dist/src/billing/lucid_billing_store.d.ts +122 -4
  63. package/dist/src/billing/lucid_billing_store.d.ts.map +1 -1
  64. package/dist/src/billing/lucid_billing_store.js +811 -13
  65. package/dist/src/billing/lucid_billing_store.js.map +1 -1
  66. package/dist/src/billing/mixins/index.d.ts +5 -2
  67. package/dist/src/billing/mixins/index.d.ts.map +1 -1
  68. package/dist/src/billing/mixins/index.js +5 -2
  69. package/dist/src/billing/mixins/index.js.map +1 -1
  70. package/dist/src/billing/mixins/with_audit_event.d.ts +48 -0
  71. package/dist/src/billing/mixins/with_audit_event.d.ts.map +1 -0
  72. package/dist/src/billing/mixins/with_audit_event.js +77 -0
  73. package/dist/src/billing/mixins/with_audit_event.js.map +1 -0
  74. package/dist/src/billing/mixins/with_billable.d.ts.map +1 -1
  75. package/dist/src/billing/mixins/with_customer.d.ts +39 -0
  76. package/dist/src/billing/mixins/with_customer.d.ts.map +1 -0
  77. package/dist/src/billing/mixins/with_customer.js +68 -0
  78. package/dist/src/billing/mixins/with_customer.js.map +1 -0
  79. package/dist/src/billing/mixins/with_dispute.d.ts +68 -0
  80. package/dist/src/billing/mixins/with_dispute.d.ts.map +1 -0
  81. package/dist/src/billing/mixins/with_dispute.js +83 -0
  82. package/dist/src/billing/mixins/with_dispute.js.map +1 -0
  83. package/dist/src/billing/mixins/with_payment.d.ts +42 -0
  84. package/dist/src/billing/mixins/with_payment.d.ts.map +1 -1
  85. package/dist/src/billing/mixins/with_payment.js +29 -3
  86. package/dist/src/billing/mixins/with_payment.js.map +1 -1
  87. package/dist/src/billing/mixins/with_subscription.d.ts +7 -0
  88. package/dist/src/billing/mixins/with_subscription.d.ts.map +1 -1
  89. package/dist/src/billing/mixins/with_subscription.js +15 -1
  90. package/dist/src/billing/mixins/with_subscription.js.map +1 -1
  91. package/dist/src/billing/mixins/with_usage_event.d.ts +7 -0
  92. package/dist/src/billing/mixins/with_usage_event.d.ts.map +1 -1
  93. package/dist/src/billing/mixins/with_usage_event.js +15 -1
  94. package/dist/src/billing/mixins/with_usage_event.js.map +1 -1
  95. package/dist/src/billing/mixins/with_webhook_event.d.ts +18 -0
  96. package/dist/src/billing/mixins/with_webhook_event.d.ts.map +1 -1
  97. package/dist/src/billing/mixins/with_webhook_event.js +18 -1
  98. package/dist/src/billing/mixins/with_webhook_event.js.map +1 -1
  99. package/dist/src/billing/resolve_dispatch.d.ts +22 -0
  100. package/dist/src/billing/resolve_dispatch.d.ts.map +1 -0
  101. package/dist/src/billing/resolve_dispatch.js +44 -0
  102. package/dist/src/billing/resolve_dispatch.js.map +1 -0
  103. package/dist/src/billing/resolve_store.d.ts +18 -0
  104. package/dist/src/billing/resolve_store.d.ts.map +1 -0
  105. package/dist/src/billing/resolve_store.js +35 -0
  106. package/dist/src/billing/resolve_store.js.map +1 -0
  107. package/dist/src/billing/schema.d.ts +108 -0
  108. package/dist/src/billing/schema.d.ts.map +1 -0
  109. package/dist/src/billing/schema.js +350 -0
  110. package/dist/src/billing/schema.js.map +1 -0
  111. package/dist/src/billing/webhook_dispatcher.d.ts +95 -16
  112. package/dist/src/billing/webhook_dispatcher.d.ts.map +1 -1
  113. package/dist/src/billing/webhook_dispatcher.js +186 -33
  114. package/dist/src/billing/webhook_dispatcher.js.map +1 -1
  115. package/dist/src/billing/webhook_events.d.ts +67 -1
  116. package/dist/src/billing/webhook_events.d.ts.map +1 -1
  117. package/dist/src/billing/webhook_events.js +15 -0
  118. package/dist/src/billing/webhook_events.js.map +1 -1
  119. package/dist/src/billing/webhook_processor.d.ts.map +1 -1
  120. package/dist/src/billing/webhook_processor.js +325 -5
  121. package/dist/src/billing/webhook_processor.js.map +1 -1
  122. package/dist/src/client/define_config.d.ts +150 -0
  123. package/dist/src/client/define_config.d.ts.map +1 -0
  124. package/dist/src/client/define_config.js +98 -0
  125. package/dist/src/client/define_config.js.map +1 -0
  126. package/dist/src/client/handlers.d.ts +71 -0
  127. package/dist/src/client/handlers.d.ts.map +1 -0
  128. package/dist/src/client/handlers.js +119 -0
  129. package/dist/src/client/handlers.js.map +1 -0
  130. package/dist/src/client/index.d.ts +15 -0
  131. package/dist/src/client/index.d.ts.map +1 -0
  132. package/dist/src/client/index.js +12 -0
  133. package/dist/src/client/index.js.map +1 -0
  134. package/dist/src/client/statuses.d.ts +38 -0
  135. package/dist/src/client/statuses.d.ts.map +1 -0
  136. package/dist/src/client/statuses.js +42 -0
  137. package/dist/src/client/statuses.js.map +1 -0
  138. package/dist/src/dashboard/actions.d.ts +143 -0
  139. package/dist/src/dashboard/actions.d.ts.map +1 -0
  140. package/dist/src/dashboard/actions.js +112 -0
  141. package/dist/src/dashboard/actions.js.map +1 -0
  142. package/dist/src/dashboard/auth.d.ts +136 -0
  143. package/dist/src/dashboard/auth.d.ts.map +1 -0
  144. package/dist/src/dashboard/auth.js +152 -0
  145. package/dist/src/dashboard/auth.js.map +1 -0
  146. package/dist/src/dashboard/define_config.d.ts +80 -0
  147. package/dist/src/dashboard/define_config.d.ts.map +1 -0
  148. package/dist/src/dashboard/define_config.js +83 -0
  149. package/dist/src/dashboard/define_config.js.map +1 -0
  150. package/dist/src/dashboard/handlers.d.ts +281 -0
  151. package/dist/src/dashboard/handlers.d.ts.map +1 -0
  152. package/dist/src/dashboard/handlers.js +960 -0
  153. package/dist/src/dashboard/handlers.js.map +1 -0
  154. package/dist/src/dashboard/index.d.ts +17 -0
  155. package/dist/src/dashboard/index.d.ts.map +1 -0
  156. package/dist/src/dashboard/index.js +13 -0
  157. package/dist/src/dashboard/index.js.map +1 -0
  158. package/dist/src/dashboard/login_page.d.ts +23 -0
  159. package/dist/src/dashboard/login_page.d.ts.map +1 -0
  160. package/dist/src/dashboard/login_page.js +170 -0
  161. package/dist/src/dashboard/login_page.js.map +1 -0
  162. package/dist/src/dashboard/period.d.ts +31 -0
  163. package/dist/src/dashboard/period.d.ts.map +1 -0
  164. package/dist/src/dashboard/period.js +44 -0
  165. package/dist/src/dashboard/period.js.map +1 -0
  166. package/dist/src/dashboard/session_cookie.d.ts +42 -0
  167. package/dist/src/dashboard/session_cookie.d.ts.map +1 -0
  168. package/dist/src/dashboard/session_cookie.js +97 -0
  169. package/dist/src/dashboard/session_cookie.js.map +1 -0
  170. package/dist/src/dashboard/spa.d.ts +24 -0
  171. package/dist/src/dashboard/spa.d.ts.map +1 -0
  172. package/dist/src/dashboard/spa.js +52 -0
  173. package/dist/src/dashboard/spa.js.map +1 -0
  174. package/dist/src/define_config.d.ts +245 -10
  175. package/dist/src/define_config.d.ts.map +1 -1
  176. package/dist/src/define_config.js +97 -1
  177. package/dist/src/define_config.js.map +1 -1
  178. package/dist/src/diagnostics.d.ts +287 -7
  179. package/dist/src/diagnostics.d.ts.map +1 -1
  180. package/dist/src/diagnostics.js +317 -1
  181. package/dist/src/diagnostics.js.map +1 -1
  182. package/dist/src/driver.d.ts +139 -5
  183. package/dist/src/driver.d.ts.map +1 -1
  184. package/dist/src/drivers/abacate.d.ts +13 -3
  185. package/dist/src/drivers/abacate.d.ts.map +1 -1
  186. package/dist/src/drivers/abacate.js +112 -19
  187. package/dist/src/drivers/abacate.js.map +1 -1
  188. package/dist/src/drivers/adyen.d.ts +164 -0
  189. package/dist/src/drivers/adyen.d.ts.map +1 -0
  190. package/dist/src/drivers/adyen.js +678 -0
  191. package/dist/src/drivers/adyen.js.map +1 -0
  192. package/dist/src/drivers/asaas.d.ts +53 -3
  193. package/dist/src/drivers/asaas.d.ts.map +1 -1
  194. package/dist/src/drivers/asaas.js +364 -29
  195. package/dist/src/drivers/asaas.js.map +1 -1
  196. package/dist/src/drivers/dodo.d.ts +135 -0
  197. package/dist/src/drivers/dodo.d.ts.map +1 -0
  198. package/dist/src/drivers/dodo.js +864 -0
  199. package/dist/src/drivers/dodo.js.map +1 -0
  200. package/dist/src/drivers/efi.d.ts +98 -0
  201. package/dist/src/drivers/efi.d.ts.map +1 -0
  202. package/dist/src/drivers/efi.js +628 -0
  203. package/dist/src/drivers/efi.js.map +1 -0
  204. package/dist/src/drivers/infinitepay.d.ts +156 -0
  205. package/dist/src/drivers/infinitepay.d.ts.map +1 -0
  206. package/dist/src/drivers/infinitepay.js +321 -0
  207. package/dist/src/drivers/infinitepay.js.map +1 -0
  208. package/dist/src/drivers/lemonsqueezy.d.ts +125 -0
  209. package/dist/src/drivers/lemonsqueezy.d.ts.map +1 -0
  210. package/dist/src/drivers/lemonsqueezy.js +632 -0
  211. package/dist/src/drivers/lemonsqueezy.js.map +1 -0
  212. package/dist/src/drivers/mercadopago.d.ts +97 -0
  213. package/dist/src/drivers/mercadopago.d.ts.map +1 -0
  214. package/dist/src/drivers/mercadopago.js +844 -0
  215. package/dist/src/drivers/mercadopago.js.map +1 -0
  216. package/dist/src/drivers/mollie.d.ts +125 -0
  217. package/dist/src/drivers/mollie.d.ts.map +1 -0
  218. package/dist/src/drivers/mollie.js +812 -0
  219. package/dist/src/drivers/mollie.js.map +1 -0
  220. package/dist/src/drivers/paddle.d.ts +148 -0
  221. package/dist/src/drivers/paddle.d.ts.map +1 -0
  222. package/dist/src/drivers/paddle.js +738 -0
  223. package/dist/src/drivers/paddle.js.map +1 -0
  224. package/dist/src/drivers/pagarme.d.ts +97 -0
  225. package/dist/src/drivers/pagarme.d.ts.map +1 -0
  226. package/dist/src/drivers/pagarme.js +829 -0
  227. package/dist/src/drivers/pagarme.js.map +1 -0
  228. package/dist/src/drivers/pagbank.d.ts +57 -0
  229. package/dist/src/drivers/pagbank.d.ts.map +1 -0
  230. package/dist/src/drivers/pagbank.js +499 -0
  231. package/dist/src/drivers/pagbank.js.map +1 -0
  232. package/dist/src/drivers/paypal.d.ts +120 -0
  233. package/dist/src/drivers/paypal.d.ts.map +1 -0
  234. package/dist/src/drivers/paypal.js +891 -0
  235. package/dist/src/drivers/paypal.js.map +1 -0
  236. package/dist/src/drivers/polar.d.ts +118 -0
  237. package/dist/src/drivers/polar.d.ts.map +1 -0
  238. package/dist/src/drivers/polar.js +604 -0
  239. package/dist/src/drivers/polar.js.map +1 -0
  240. package/dist/src/drivers/razorpay.d.ts +103 -0
  241. package/dist/src/drivers/razorpay.d.ts.map +1 -0
  242. package/dist/src/drivers/razorpay.js +867 -0
  243. package/dist/src/drivers/razorpay.js.map +1 -0
  244. package/dist/src/drivers/shared.d.ts +33 -0
  245. package/dist/src/drivers/shared.d.ts.map +1 -0
  246. package/dist/src/drivers/shared.js +37 -0
  247. package/dist/src/drivers/shared.js.map +1 -0
  248. package/dist/src/drivers/square.d.ts +133 -0
  249. package/dist/src/drivers/square.d.ts.map +1 -0
  250. package/dist/src/drivers/square.js +905 -0
  251. package/dist/src/drivers/square.js.map +1 -0
  252. package/dist/src/drivers/stripe.d.ts +41 -4
  253. package/dist/src/drivers/stripe.d.ts.map +1 -1
  254. package/dist/src/drivers/stripe.js +823 -26
  255. package/dist/src/drivers/stripe.js.map +1 -1
  256. package/dist/src/drivers/woovi.d.ts +11 -4
  257. package/dist/src/drivers/woovi.d.ts.map +1 -1
  258. package/dist/src/drivers/woovi.js +162 -29
  259. package/dist/src/drivers/woovi.js.map +1 -1
  260. package/dist/src/ensure_customer.d.ts +34 -1
  261. package/dist/src/ensure_customer.d.ts.map +1 -1
  262. package/dist/src/ensure_customer.js +29 -4
  263. package/dist/src/ensure_customer.js.map +1 -1
  264. package/dist/src/hooks/webhook_handlers.d.ts.map +1 -1
  265. package/dist/src/hooks/webhook_handlers.js.map +1 -1
  266. package/dist/src/http.d.ts +37 -3
  267. package/dist/src/http.d.ts.map +1 -1
  268. package/dist/src/http.js +69 -5
  269. package/dist/src/http.js.map +1 -1
  270. package/dist/src/index.d.ts +54 -26
  271. package/dist/src/index.d.ts.map +1 -1
  272. package/dist/src/index.js +29 -12
  273. package/dist/src/index.js.map +1 -1
  274. package/dist/src/invoice/drivers/asaas.d.ts.map +1 -1
  275. package/dist/src/invoice/drivers/asaas.js.map +1 -1
  276. package/dist/src/invoice/drivers/enotas.d.ts.map +1 -1
  277. package/dist/src/invoice/drivers/enotas.js.map +1 -1
  278. package/dist/src/invoice/drivers/focus.d.ts.map +1 -1
  279. package/dist/src/invoice/drivers/focus.js.map +1 -1
  280. package/dist/src/invoice/drivers/plugnotas.d.ts.map +1 -1
  281. package/dist/src/invoice/drivers/plugnotas.js.map +1 -1
  282. package/dist/src/invoice/drivers/tecnospeed.d.ts.map +1 -1
  283. package/dist/src/invoice/drivers/tecnospeed.js.map +1 -1
  284. package/dist/src/invoice/emit_invoice.d.ts.map +1 -1
  285. package/dist/src/invoice/emit_invoice.js +31 -11
  286. package/dist/src/invoice/emit_invoice.js.map +1 -1
  287. package/dist/src/invoice/invoice_manager.d.ts.map +1 -1
  288. package/dist/src/money.d.ts +23 -5
  289. package/dist/src/money.d.ts.map +1 -1
  290. package/dist/src/money.js +72 -7
  291. package/dist/src/money.js.map +1 -1
  292. package/dist/src/payments_manager.d.ts +8 -1
  293. package/dist/src/payments_manager.d.ts.map +1 -1
  294. package/dist/src/payments_manager.js +168 -6
  295. package/dist/src/payments_manager.js.map +1 -1
  296. package/dist/src/services/main.d.ts +38 -0
  297. package/dist/src/services/main.d.ts.map +1 -1
  298. package/dist/src/services/main.js +130 -0
  299. package/dist/src/services/main.js.map +1 -1
  300. package/dist/src/telescope/index.d.ts +2 -0
  301. package/dist/src/telescope/index.d.ts.map +1 -1
  302. package/dist/src/telescope/index.js +1 -0
  303. package/dist/src/telescope/index.js.map +1 -1
  304. package/dist/src/telescope/payments_watcher.d.ts +10 -4
  305. package/dist/src/telescope/payments_watcher.d.ts.map +1 -1
  306. package/dist/src/telescope/payments_watcher.js +66 -14
  307. package/dist/src/telescope/payments_watcher.js.map +1 -1
  308. package/dist/src/telescope/register.d.ts +62 -0
  309. package/dist/src/telescope/register.d.ts.map +1 -0
  310. package/dist/src/telescope/register.js +48 -0
  311. package/dist/src/telescope/register.js.map +1 -0
  312. package/dist/src/testing/fake_payments.d.ts +62 -0
  313. package/dist/src/testing/fake_payments.d.ts.map +1 -0
  314. package/dist/src/testing/fake_payments.js +82 -0
  315. package/dist/src/testing/fake_payments.js.map +1 -0
  316. package/dist/src/testing/fake_payments_driver.d.ts +1 -1
  317. package/dist/src/testing/fake_payments_driver.d.ts.map +1 -1
  318. package/dist/src/testing/fake_payments_driver.js.map +1 -1
  319. package/dist/src/testing/in_memory_billing_store.d.ts +151 -2
  320. package/dist/src/testing/in_memory_billing_store.d.ts.map +1 -1
  321. package/dist/src/testing/in_memory_billing_store.js +517 -4
  322. package/dist/src/testing/in_memory_billing_store.js.map +1 -1
  323. package/dist/src/testing/index.d.ts +3 -2
  324. package/dist/src/testing/index.d.ts.map +1 -1
  325. package/dist/src/testing/index.js +1 -0
  326. package/dist/src/testing/index.js.map +1 -1
  327. package/dist/src/testing/mutable_clock.d.ts.map +1 -1
  328. package/dist/src/types.d.ts +161 -5
  329. package/dist/src/types.d.ts.map +1 -1
  330. package/dist/src/types.js +30 -1
  331. package/dist/src/types.js.map +1 -1
  332. package/dist/src/webhook_handlers.d.ts +96 -2
  333. package/dist/src/webhook_handlers.d.ts.map +1 -1
  334. package/dist/src/webhook_handlers.js +91 -10
  335. package/dist/src/webhook_handlers.js.map +1 -1
  336. package/dist/src/webhook_security.d.ts +94 -3
  337. package/dist/src/webhook_security.d.ts.map +1 -1
  338. package/dist/src/webhook_security.js +173 -9
  339. package/dist/src/webhook_security.js.map +1 -1
  340. package/dist/stubs/config/payments.stub +13 -0
  341. package/dist/stubs/config/payments_client.stub +42 -0
  342. package/dist/stubs/config/payments_dashboard.stub +38 -0
  343. package/dist/stubs/database/migrations/create_billing_tables.stub +35 -77
  344. package/dist/stubs/main.js.map +1 -1
  345. package/dist/stubs/make/webhook_handler/main.stub +29 -11
  346. package/package.json +67 -32
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/dashboard/handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /** Keep in sync with this package's `version` in package.json. */
2
+ export declare const VERSION = "0.2.0";
3
+ export type { RefundAction, RefundCapableDriver, RefundOutcome, ReplayAction, ReplayableWebhookEvent, ReplayOutcome, } from './actions.js';
4
+ export { createRefundAction, createReplayAction } from './actions.js';
5
+ export type { AuthMode, DashboardAuthOptions, LoginHook, LoginOutcome, ResolvedDashboardAuth, SessionHook, SessionOutcome, } from './auth.js';
6
+ export { performLogin, performSession, readSession, resolveDashboardAuth, SESSION_COOKIE_NAME, sanitizeReturnTo, } from './auth.js';
7
+ export type { AuthorizeHook, PaymentsDashboardConfig, ResolvedPaymentsDashboardConfig, } from './define_config.js';
8
+ export { defaultAuthorize, defineConfig, resolveConfig } from './define_config.js';
9
+ export type { ApiRequest, ApiResponse, DashboardActions, Deps } from './handlers.js';
10
+ export { AUDIT_ACTION_FILTERS, auditEvents, customers, DISPUTE_DEFAULT_DUE_WITHIN_HOURS, DISPUTE_RESOLUTION_STATUSES, DISPUTE_STATUSES, disputes, health, ok, overview, PAYMENT_STATUSES, PROVIDER_SCAN_CAP, paymentDetail, payments, providers, refundPayment, resolveDispute, retryWebhookEvent, SUBSCRIPTION_DEFAULT_STATUS, SUBSCRIPTION_STATUSES, subscriptions, WEBHOOK_EVENT_STATUSES, webhookEvents, } from './handlers.js';
11
+ export { renderLoginPage } from './login_page.js';
12
+ export type { Period, PeriodPreset } from './period.js';
13
+ export { DEFAULT_PERIOD, PERIOD_PRESETS, resolvePeriod } from './period.js';
14
+ export type { DashboardSession, DashboardSessionUser, SignOptions, VerifyOptions, } from './session_cookie.js';
15
+ export { signSessionCookie, verifySessionCookie } from './session_cookie.js';
16
+ export { BASE_PLACEHOLDER, CONTENT_TYPES, contentTypeFor, renderIndexHtml } from './spa.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACtE,YAAY,EACV,QAAQ,EACR,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,cAAc,GACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,aAAa,EACb,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,SAAS,EACT,gCAAgC,EAChC,2BAA2B,EAC3B,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,EAAE,EACF,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5E,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** Keep in sync with this package's `version` in package.json. */
2
+ export const VERSION = '0.2.0';
3
+ // The two WRITE actions (refund + webhook retry), as framework-light ports.
4
+ export { createRefundAction, createReplayAction } from './actions.js';
5
+ // Built-in `dashboardAuth` login screen (optional; opt-in via `config/payments_dashboard.ts`).
6
+ export { performLogin, performSession, readSession, resolveDashboardAuth, SESSION_COOKIE_NAME, sanitizeReturnTo, } from './auth.js';
7
+ export { defaultAuthorize, defineConfig, resolveConfig } from './define_config.js';
8
+ export { AUDIT_ACTION_FILTERS, auditEvents, customers, DISPUTE_DEFAULT_DUE_WITHIN_HOURS, DISPUTE_RESOLUTION_STATUSES, DISPUTE_STATUSES, disputes, health, ok, overview, PAYMENT_STATUSES, PROVIDER_SCAN_CAP, paymentDetail, payments, providers, refundPayment, resolveDispute, retryWebhookEvent, SUBSCRIPTION_DEFAULT_STATUS, SUBSCRIPTION_STATUSES, subscriptions, WEBHOOK_EVENT_STATUSES, webhookEvents, } from './handlers.js';
9
+ export { renderLoginPage } from './login_page.js';
10
+ export { DEFAULT_PERIOD, PERIOD_PRESETS, resolvePeriod } from './period.js';
11
+ export { signSessionCookie, verifySessionCookie } from './session_cookie.js';
12
+ export { BASE_PLACEHOLDER, CONTENT_TYPES, contentTypeFor, renderIndexHtml } from './spa.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAU/B,4EAA4E;AAC5E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUtE,+FAA+F;AAC/F,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAMnB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,SAAS,EACT,gCAAgC,EAChC,2BAA2B,EAC3B,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,EAAE,EACF,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAO5E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The built-in `dashboardAuth` login page (`GET <basePath>/login`). Deliberately a small,
3
+ * dependency-free, hand-authored HTML page — NOT part of the bundled dashboard SPA — so gating the
4
+ * dashboard shell doesn't require rebuilding or extending the bundled SPA.
5
+ *
6
+ * `returnTo` and any error state are read CLIENT-SIDE from `location.search` (never server-echoed
7
+ * into the HTML), so this function's only per-request-ish input is `basePath` — a developer-
8
+ * controlled config value, not user input — and the page body is otherwise a static template.
9
+ * This sidesteps HTML-escaping entirely: there is no reflected query-param interpolation surface
10
+ * to get wrong.
11
+ *
12
+ * The visual language (dark zinc card, mono type, emerald accent) mirrors the Agora consoles so
13
+ * they feel like one family. The submit flow POSTs JSON via `fetch` and follows the JSON
14
+ * `redirectTo` it gets back (rather than a classic form POST + server redirect), which is why the
15
+ * markup keeps its own `<script>`.
16
+ *
17
+ * The password input has NO `required` attribute and the value is forwarded AS-IS (empty string
18
+ * when blank): the host's `login` hook — not this page — decides whether a password matters, so an
19
+ * email-only host (gate on username, ignore password) works with the same page as a host with real
20
+ * passwords.
21
+ */
22
+ export declare function renderLoginPage(basePath: string): string;
23
+ //# sourceMappingURL=login_page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login_page.d.ts","sourceRoot":"","sources":["../../../src/dashboard/login_page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmJxD"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * The built-in `dashboardAuth` login page (`GET <basePath>/login`). Deliberately a small,
3
+ * dependency-free, hand-authored HTML page — NOT part of the bundled dashboard SPA — so gating the
4
+ * dashboard shell doesn't require rebuilding or extending the bundled SPA.
5
+ *
6
+ * `returnTo` and any error state are read CLIENT-SIDE from `location.search` (never server-echoed
7
+ * into the HTML), so this function's only per-request-ish input is `basePath` — a developer-
8
+ * controlled config value, not user input — and the page body is otherwise a static template.
9
+ * This sidesteps HTML-escaping entirely: there is no reflected query-param interpolation surface
10
+ * to get wrong.
11
+ *
12
+ * The visual language (dark zinc card, mono type, emerald accent) mirrors the Agora consoles so
13
+ * they feel like one family. The submit flow POSTs JSON via `fetch` and follows the JSON
14
+ * `redirectTo` it gets back (rather than a classic form POST + server redirect), which is why the
15
+ * markup keeps its own `<script>`.
16
+ *
17
+ * The password input has NO `required` attribute and the value is forwarded AS-IS (empty string
18
+ * when blank): the host's `login` hook — not this page — decides whether a password matters, so an
19
+ * email-only host (gate on username, ignore password) works with the same page as a host with real
20
+ * passwords.
21
+ */
22
+ export function renderLoginPage(basePath) {
23
+ const loginAction = `${basePath}/login`;
24
+ const defaultReturnTo = basePath === '' ? '/' : basePath;
25
+ return `<!doctype html>
26
+ <html lang="en">
27
+ <head>
28
+ <meta charset="utf-8" />
29
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
30
+ <meta name="robots" content="noindex, nofollow" />
31
+ <title>Sign in — Payments</title>
32
+ <style>
33
+ :root { color-scheme: dark; }
34
+ * { box-sizing: border-box; }
35
+ body {
36
+ margin: 0;
37
+ min-height: 100vh;
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: center;
41
+ background: #09090b;
42
+ color: #e4e4e7;
43
+ font: 14px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
44
+ padding: 16px;
45
+ }
46
+ .card {
47
+ width: 100%;
48
+ max-width: 384px;
49
+ border: 1px solid #27272a;
50
+ background: #18181b;
51
+ border-radius: 8px;
52
+ padding: 32px;
53
+ box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.5);
54
+ }
55
+ .brand {
56
+ margin: 0 0 24px;
57
+ text-align: center;
58
+ font-size: 18px;
59
+ font-weight: 600;
60
+ color: #34d399;
61
+ }
62
+ form { display: flex; flex-direction: column; gap: 16px; }
63
+ label { display: flex; flex-direction: column; gap: 6px; }
64
+ .field-label {
65
+ font-size: 11px;
66
+ text-transform: uppercase;
67
+ letter-spacing: 0.05em;
68
+ color: #71717a;
69
+ }
70
+ input {
71
+ border-radius: 4px;
72
+ border: 1px solid #3f3f46;
73
+ background: #09090b;
74
+ color: #f4f4f5;
75
+ padding: 8px 12px;
76
+ font: inherit;
77
+ outline: none;
78
+ }
79
+ input:focus { border-color: rgb(52 211 153 / 0.6); }
80
+ #error {
81
+ display: none;
82
+ margin: 0;
83
+ font-size: 12px;
84
+ color: #fb7185;
85
+ }
86
+ button {
87
+ margin-top: 8px;
88
+ border-radius: 4px;
89
+ border: 1px solid rgb(52 211 153 / 0.4);
90
+ background: rgb(52 211 153 / 0.1);
91
+ color: #6ee7b7;
92
+ padding: 8px 12px;
93
+ font: inherit;
94
+ font-size: 12px;
95
+ font-weight: 500;
96
+ text-transform: uppercase;
97
+ letter-spacing: 0.05em;
98
+ cursor: pointer;
99
+ }
100
+ button:hover:not(:disabled) { background: rgb(52 211 153 / 0.2); }
101
+ button:disabled { opacity: 0.6; cursor: default; }
102
+ </style>
103
+ </head>
104
+ <body>
105
+ <div class="card">
106
+ <p class="brand">Payments</p>
107
+ <form id="login-form" autocomplete="on">
108
+ <label>
109
+ <span class="field-label">Username</span>
110
+ <input id="username" name="username" type="text" autocomplete="username" required autofocus />
111
+ </label>
112
+ <label>
113
+ <span class="field-label">Password</span>
114
+ <input id="password" name="password" type="password" autocomplete="current-password" />
115
+ </label>
116
+ <p id="error" role="alert">Invalid username or password.</p>
117
+ <button id="submit" type="submit">Sign in</button>
118
+ </form>
119
+ </div>
120
+ <script>
121
+ (function () {
122
+ var LOGIN_ACTION = ${JSON.stringify(loginAction)};
123
+ var DEFAULT_RETURN_TO = ${JSON.stringify(defaultReturnTo)};
124
+ var params = new URLSearchParams(window.location.search);
125
+ var errorBox = document.getElementById('error');
126
+ if (params.get('error')) errorBox.style.display = 'block';
127
+
128
+ function sameOriginReturnTo(value) {
129
+ if (typeof value !== 'string' || value === '') return DEFAULT_RETURN_TO;
130
+ if (value.charAt(0) !== '/' || value.charAt(1) === '/' || value.indexOf('://') !== -1) {
131
+ return DEFAULT_RETURN_TO;
132
+ }
133
+ return value;
134
+ }
135
+
136
+ var form = document.getElementById('login-form');
137
+ var submitButton = document.getElementById('submit');
138
+ form.addEventListener('submit', function (event) {
139
+ event.preventDefault();
140
+ submitButton.disabled = true;
141
+ errorBox.style.display = 'none';
142
+ var returnTo = sameOriginReturnTo(params.get('returnTo'));
143
+ fetch(LOGIN_ACTION, {
144
+ method: 'POST',
145
+ headers: { 'content-type': 'application/json' },
146
+ credentials: 'same-origin',
147
+ body: JSON.stringify({
148
+ username: document.getElementById('username').value,
149
+ password: document.getElementById('password').value,
150
+ returnTo: returnTo,
151
+ }),
152
+ })
153
+ .then(function (response) {
154
+ if (!response.ok) throw new Error('unauthorized');
155
+ return response.json();
156
+ })
157
+ .then(function (data) {
158
+ window.location.href = data.redirectTo || DEFAULT_RETURN_TO;
159
+ })
160
+ .catch(function () {
161
+ errorBox.style.display = 'block';
162
+ submitButton.disabled = false;
163
+ });
164
+ });
165
+ })();
166
+ </script>
167
+ </body>
168
+ </html>`;
169
+ }
170
+ //# sourceMappingURL=login_page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login_page.js","sourceRoot":"","sources":["../../../src/dashboard/login_page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,WAAW,GAAG,GAAG,QAAQ,QAAQ,CAAC;IACxC,MAAM,eAAe,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAiGc,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;4BACtB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA6CnD,CAAC;AACT,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The dashboard's period selector, as a pure function — no HTTP, no clock of its own.
3
+ *
4
+ * Every screen that shows an aggregate has to agree on what "last 7 days" means, and the
5
+ * overview handler is not the place to re-derive it per request.
6
+ */
7
+ /** The named windows the SPA's period selector offers. */
8
+ export declare const PERIOD_PRESETS: readonly ['24h', '7d', '30d', '90d'];
9
+ export type PeriodPreset = (typeof PERIOD_PRESETS)[number];
10
+ /** The window fed to `billingOverview` — half-open `[from, to)`. */
11
+ export interface Period {
12
+ from: Date;
13
+ to: Date;
14
+ /** The preset this window came from, or `'custom'` when explicit `from`/`to` were supplied. */
15
+ preset: PeriodPreset | 'custom';
16
+ }
17
+ /** The preset used when the request names none (or names one that does not exist). */
18
+ export declare const DEFAULT_PERIOD: PeriodPreset;
19
+ /**
20
+ * Resolve `{ period }` or `{ from, to }` query params into a concrete window.
21
+ *
22
+ * Explicit `from`/`to` win when BOTH parse and `from < to`; a half-supplied or backwards
23
+ * custom range falls back to the preset rather than silently producing an empty window that
24
+ * would read as "no revenue" instead of "you asked for nothing".
25
+ */
26
+ export declare function resolvePeriod(query: {
27
+ period?: unknown;
28
+ from?: unknown;
29
+ to?: unknown;
30
+ }, now: Date): Period;
31
+ //# sourceMappingURL=period.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"period.d.ts","sourceRoot":"","sources":["../../../src/dashboard/period.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,cAAc,YAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAEnE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,oEAAoE;AACpE,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,IAAI,CAAC;IACT,+FAA+F;IAC/F,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC;CACjC;AAWD,sFAAsF;AACtF,eAAO,MAAM,cAAc,EAAE,YAAoB,CAAC;AAalD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,EACzD,GAAG,EAAE,IAAI,GACR,MAAM,CAQR"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The dashboard's period selector, as a pure function — no HTTP, no clock of its own.
3
+ *
4
+ * Every screen that shows an aggregate has to agree on what "last 7 days" means, and the
5
+ * overview handler is not the place to re-derive it per request.
6
+ */
7
+ /** The named windows the SPA's period selector offers. */
8
+ export const PERIOD_PRESETS = ['24h', '7d', '30d', '90d'];
9
+ const DAY_MS = 24 * 60 * 60 * 1000;
10
+ const PRESET_MS = {
11
+ '24h': DAY_MS,
12
+ '7d': 7 * DAY_MS,
13
+ '30d': 30 * DAY_MS,
14
+ '90d': 90 * DAY_MS,
15
+ };
16
+ /** The preset used when the request names none (or names one that does not exist). */
17
+ export const DEFAULT_PERIOD = '30d';
18
+ function isPreset(value) {
19
+ return typeof value === 'string' && PERIOD_PRESETS.includes(value);
20
+ }
21
+ /** Parse an ISO timestamp, returning `undefined` for anything unparseable. */
22
+ function parseDate(value) {
23
+ if (typeof value !== 'string' || value === '')
24
+ return undefined;
25
+ const date = new Date(value);
26
+ return Number.isNaN(date.getTime()) ? undefined : date;
27
+ }
28
+ /**
29
+ * Resolve `{ period }` or `{ from, to }` query params into a concrete window.
30
+ *
31
+ * Explicit `from`/`to` win when BOTH parse and `from < to`; a half-supplied or backwards
32
+ * custom range falls back to the preset rather than silently producing an empty window that
33
+ * would read as "no revenue" instead of "you asked for nothing".
34
+ */
35
+ export function resolvePeriod(query, now) {
36
+ const from = parseDate(query.from);
37
+ const to = parseDate(query.to);
38
+ if (from !== undefined && to !== undefined && from.getTime() < to.getTime()) {
39
+ return { from, to, preset: 'custom' };
40
+ }
41
+ const preset = isPreset(query.period) ? query.period : DEFAULT_PERIOD;
42
+ return { from: new Date(now.getTime() - PRESET_MS[preset]), to: now, preset };
43
+ }
44
+ //# sourceMappingURL=period.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"period.js","sourceRoot":"","sources":["../../../src/dashboard/period.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAYnE,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnC,MAAM,SAAS,GAAiC;IAC9C,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,CAAC,GAAG,MAAM;IAChB,KAAK,EAAE,EAAE,GAAG,MAAM;IAClB,KAAK,EAAE,EAAE,GAAG,MAAM;CACnB,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,cAAc,GAAiB,KAAK,CAAC;AAElD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5F,CAAC;AAED,8EAA8E;AAC9E,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAyD,EACzD,GAAS;IAET,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5E,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACxC,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;IACtE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAChF,CAAC"}
@@ -0,0 +1,42 @@
1
+ /** The validated dashboard session attached to a request once its cookie verifies. */
2
+ export interface DashboardSession {
3
+ /** Stable user id (the session user's `id`). */
4
+ sub: string;
5
+ /** Optional display name. */
6
+ name?: string;
7
+ /** Free-form role strings; the dashboard does not interpret them. */
8
+ roles: string[];
9
+ /** Issued-at, epoch milliseconds. */
10
+ iat: number;
11
+ /** Expiry, epoch milliseconds. */
12
+ exp: number;
13
+ }
14
+ /** The session user the host `login` hook returns to mint a cookie. */
15
+ export interface DashboardSessionUser {
16
+ id: string;
17
+ name?: string;
18
+ roles?: string[];
19
+ }
20
+ export interface SignOptions {
21
+ secret: string;
22
+ ttlMs: number;
23
+ /** Injectable clock (epoch ms) for deterministic tests. Defaults to `Date.now()`. */
24
+ now?: number;
25
+ }
26
+ export interface VerifyOptions {
27
+ secret: string;
28
+ /** Injectable clock (epoch ms) for deterministic tests. Defaults to `Date.now()`. */
29
+ now?: number;
30
+ }
31
+ /**
32
+ * Sign a session into the cookie value `base64url(payload).base64url(hmac)`. Stateless
33
+ * HMAC-SHA256, no store, `node:crypto` only — no JWT dependency.
34
+ */
35
+ export declare function signSessionCookie(user: DashboardSessionUser, options: SignOptions): string;
36
+ /**
37
+ * Verify a cookie value and return the session, or `null` for anything that's tampered,
38
+ * malformed, or expired (past `exp` + a 30s grace). Constant-time signature comparison. NEVER
39
+ * throws — any parse failure yields `null`.
40
+ */
41
+ export declare function verifySessionCookie(value: string, options: VerifyOptions): DashboardSession | null;
42
+ //# sourceMappingURL=session_cookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session_cookie.d.ts","sourceRoot":"","sources":["../../../src/dashboard/session_cookie.ts"],"names":[],"mappings":"AAcA,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,uEAAuE;AACvE,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAcD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAY1F;AAeD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,GACrB,gBAAgB,GAAG,IAAI,CA4BzB"}
@@ -0,0 +1,97 @@
1
+ import { createHmac, timingSafeEqual } from 'node:crypto';
2
+ /**
3
+ * Dependency-free, framework-light signed session cookie for the dashboard's
4
+ * built-in {@link file://./auth.ts dashboardAuth} mechanism. Stateless
5
+ * HMAC-SHA256 over `node:crypto` only (no JWT dependency, no store, no
6
+ * AdonisJS types) — ported verbatim from `@adonis-agora/durable`'s `src/dashboard/session_cookie.ts` so the
7
+ * cookie format is identical across every Agora console and this stays
8
+ * unit-testable without an `HttpContext`.
9
+ */
10
+ /** Clock-skew grace applied to `exp` so a marginally-late clock doesn't bounce a valid cookie. */
11
+ const EXP_GRACE_MS = 30_000;
12
+ function base64urlEncode(value) {
13
+ return Buffer.from(value, 'utf8').toString('base64url');
14
+ }
15
+ function base64urlDecode(value) {
16
+ return Buffer.from(value, 'base64url').toString('utf8');
17
+ }
18
+ function hmac(secret, payload) {
19
+ return createHmac('sha256', secret).update(payload).digest('base64url');
20
+ }
21
+ /**
22
+ * Sign a session into the cookie value `base64url(payload).base64url(hmac)`. Stateless
23
+ * HMAC-SHA256, no store, `node:crypto` only — no JWT dependency.
24
+ */
25
+ export function signSessionCookie(user, options) {
26
+ const issuedAt = options.now ?? Date.now();
27
+ const session = {
28
+ sub: user.id,
29
+ ...(user.name !== undefined ? { name: user.name } : {}),
30
+ roles: user.roles ?? [],
31
+ iat: issuedAt,
32
+ exp: issuedAt + options.ttlMs,
33
+ };
34
+ const encodedPayload = base64urlEncode(JSON.stringify(session));
35
+ const signature = hmac(options.secret, encodedPayload);
36
+ return `${encodedPayload}.${signature}`;
37
+ }
38
+ /** Type guard for the decoded payload shape — defends against tampered/legacy payloads. */
39
+ function isSessionPayload(value) {
40
+ if (typeof value !== 'object' || value === null)
41
+ return false;
42
+ const record = { ...value };
43
+ if (typeof record.sub !== 'string')
44
+ return false;
45
+ if (record.name !== undefined && typeof record.name !== 'string')
46
+ return false;
47
+ if (!Array.isArray(record.roles))
48
+ return false;
49
+ if (!record.roles.every((role) => typeof role === 'string'))
50
+ return false;
51
+ if (typeof record.iat !== 'number' || !Number.isFinite(record.iat))
52
+ return false;
53
+ if (typeof record.exp !== 'number' || !Number.isFinite(record.exp))
54
+ return false;
55
+ return true;
56
+ }
57
+ /**
58
+ * Verify a cookie value and return the session, or `null` for anything that's tampered,
59
+ * malformed, or expired (past `exp` + a 30s grace). Constant-time signature comparison. NEVER
60
+ * throws — any parse failure yields `null`.
61
+ */
62
+ export function verifySessionCookie(value, options) {
63
+ try {
64
+ const dot = value.indexOf('.');
65
+ if (dot <= 0 || dot === value.length - 1)
66
+ return null;
67
+ const encodedPayload = value.slice(0, dot);
68
+ const providedSignature = value.slice(dot + 1);
69
+ const expectedSignature = hmac(options.secret, encodedPayload);
70
+ const provided = Buffer.from(providedSignature, 'base64url');
71
+ const expected = Buffer.from(expectedSignature, 'base64url');
72
+ // timingSafeEqual throws on a length mismatch — guard it so a wrong-length (tampered)
73
+ // signature returns null instead of throwing.
74
+ if (provided.length !== expected.length)
75
+ return null;
76
+ if (!timingSafeEqual(provided, expected))
77
+ return null;
78
+ const decoded = JSON.parse(base64urlDecode(encodedPayload));
79
+ if (!isSessionPayload(decoded))
80
+ return null;
81
+ const now = options.now ?? Date.now();
82
+ if (now > decoded.exp + EXP_GRACE_MS)
83
+ return null;
84
+ const session = {
85
+ sub: decoded.sub,
86
+ ...(decoded.name !== undefined ? { name: decoded.name } : {}),
87
+ roles: decoded.roles,
88
+ iat: decoded.iat,
89
+ exp: decoded.exp,
90
+ };
91
+ return session;
92
+ }
93
+ catch {
94
+ return null;
95
+ }
96
+ }
97
+ //# sourceMappingURL=session_cookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session_cookie.js","sourceRoot":"","sources":["../../../src/dashboard/session_cookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D;;;;;;;GAOG;AAEH,kGAAkG;AAClG,MAAM,YAAY,GAAG,MAAM,CAAC;AAoC5B,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,IAAI,CAAC,MAAc,EAAE,OAAe;IAC3C,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA0B,EAAE,OAAoB;IAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAqB;QAChC,GAAG,EAAE,IAAI,CAAC,EAAE;QACZ,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,KAAK;KAC9B,CAAC;IACF,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvD,OAAO,GAAG,cAAc,IAAI,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,2FAA2F;AAC3F,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,MAAM,GAA4B,EAAE,GAAG,KAAK,EAAE,CAAC;IACrD,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACjF,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACjF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAa,EACb,OAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC7D,sFAAsF;QACtF,8CAA8C;QAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,YAAY;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,OAAO,GAAqB;YAChC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Pure helpers for mounting/serving the `@adonis-agora/payments-dashboard` React SPA — split out so
3
+ * they're unit-testable without booting AdonisJS. `providers/dashboard_provider.ts` is a thin HTTP
4
+ * shell around these. Mirrors `@adonis-agora/durable`'s `src/dashboard/spa.ts` in shape, so the
5
+ * "serve a Vite SPA from an AdonisJS provider" story stays ONE pattern across the Agora ecosystem.
6
+ */
7
+ /** Placeholder base Vite bakes into asset URLs (`packages/dashboard/vite.config.ts`); rewritten to the
8
+ * configured dashboard `path` at serve time — the SAME built bundle mounts at any path with no rebuild. */
9
+ export declare const BASE_PLACEHOLDER = "/__PAYMENTS_DASHBOARD__/";
10
+ export declare const CONTENT_TYPES: Record<string, string>;
11
+ /** Content type for a served asset filename, defaulting to octet-stream. */
12
+ export declare function contentTypeFor(file: string): string;
13
+ /**
14
+ * Rewrite the built `index.html` for serving: point Vite's placeholder base at the configured mount
15
+ * path, and inject the globals `src/client/payments-client.ts` reads
16
+ * (`window.__PAYMENTS_BASE__`/`window.__PAYMENTS_API__`) plus the display currency
17
+ * (`window.__PAYMENTS_CURRENCY__`) the SPA formats cents with.
18
+ *
19
+ * The currency is the one addition over durable's two-global version: money is integer cents on the
20
+ * wire and formatted only at render, so the renderer has to be told which currency to render in —
21
+ * and the config file, not the bundle, is where that belongs.
22
+ */
23
+ export declare function renderIndexHtml(html: string, basePath: string, apiBasePath: string, currency: string): string;
24
+ //# sourceMappingURL=spa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spa.d.ts","sourceRoot":"","sources":["../../../src/dashboard/spa.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;4GAC4G;AAC5G,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAE3D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAchD,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,MAAM,CAWR"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Pure helpers for mounting/serving the `@adonis-agora/payments-dashboard` React SPA — split out so
3
+ * they're unit-testable without booting AdonisJS. `providers/dashboard_provider.ts` is a thin HTTP
4
+ * shell around these. Mirrors `@adonis-agora/durable`'s `src/dashboard/spa.ts` in shape, so the
5
+ * "serve a Vite SPA from an AdonisJS provider" story stays ONE pattern across the Agora ecosystem.
6
+ */
7
+ /** Placeholder base Vite bakes into asset URLs (`packages/dashboard/vite.config.ts`); rewritten to the
8
+ * configured dashboard `path` at serve time — the SAME built bundle mounts at any path with no rebuild. */
9
+ export const BASE_PLACEHOLDER = '/__PAYMENTS_DASHBOARD__/';
10
+ export const CONTENT_TYPES = {
11
+ '.js': 'text/javascript; charset=utf-8',
12
+ '.mjs': 'text/javascript; charset=utf-8',
13
+ '.css': 'text/css; charset=utf-8',
14
+ '.map': 'application/json; charset=utf-8',
15
+ '.json': 'application/json; charset=utf-8',
16
+ '.svg': 'image/svg+xml',
17
+ '.png': 'image/png',
18
+ '.jpg': 'image/jpeg',
19
+ '.jpeg': 'image/jpeg',
20
+ '.gif': 'image/gif',
21
+ '.ico': 'image/x-icon',
22
+ '.woff2': 'font/woff2',
23
+ '.woff': 'font/woff',
24
+ };
25
+ /** Content type for a served asset filename, defaulting to octet-stream. */
26
+ export function contentTypeFor(file) {
27
+ const ext = file.slice(file.lastIndexOf('.'));
28
+ return CONTENT_TYPES[ext] ?? 'application/octet-stream';
29
+ }
30
+ /**
31
+ * Rewrite the built `index.html` for serving: point Vite's placeholder base at the configured mount
32
+ * path, and inject the globals `src/client/payments-client.ts` reads
33
+ * (`window.__PAYMENTS_BASE__`/`window.__PAYMENTS_API__`) plus the display currency
34
+ * (`window.__PAYMENTS_CURRENCY__`) the SPA formats cents with.
35
+ *
36
+ * The currency is the one addition over durable's two-global version: money is integer cents on the
37
+ * wire and formatted only at render, so the renderer has to be told which currency to render in —
38
+ * and the config file, not the bundle, is where that belongs.
39
+ */
40
+ export function renderIndexHtml(html, basePath, apiBasePath, currency) {
41
+ const based = html.split(BASE_PLACEHOLDER).join(`${basePath}/`);
42
+ // JSON.stringify, not concatenation: a config value containing `</script>` must not be able to
43
+ // close the tag it is injected into.
44
+ const globals = [
45
+ `window.__PAYMENTS_BASE__=${JSON.stringify(basePath)};`,
46
+ `window.__PAYMENTS_API__=${JSON.stringify(apiBasePath)};`,
47
+ `window.__PAYMENTS_CURRENCY__=${JSON.stringify(currency)};`,
48
+ ].join('');
49
+ const inject = `<script>${globals}</script>`;
50
+ return based.includes('</head>') ? based.replace('</head>', `${inject}</head>`) : inject + based;
51
+ }
52
+ //# sourceMappingURL=spa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spa.js","sourceRoot":"","sources":["../../../src/dashboard/spa.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;4GAC4G;AAC5G,MAAM,CAAC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAE3D,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,KAAK,EAAE,gCAAgC;IACvC,MAAM,EAAE,gCAAgC;IACxC,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE,iCAAiC;IACzC,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,WAAW;CACrB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;AAC1D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,QAAgB,EAChB,WAAmB,EACnB,QAAgB;IAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;IAChE,+FAA+F;IAC/F,qCAAqC;IACrC,MAAM,OAAO,GAAG;QACd,4BAA4B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG;QACvD,2BAA2B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG;QACzD,gCAAgC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG;KAC5D,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,MAAM,MAAM,GAAG,WAAW,OAAO,WAAW,CAAC;IAC7C,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;AACnG,CAAC"}