@owlmeans/payment 0.1.18-rc.8 → 0.1.18

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 (364) hide show
  1. package/README.md +95 -57
  2. package/agent-meta/manifest.json +10 -3
  3. package/agent-meta/skills/entitlements/SKILL.md +159 -0
  4. package/agent-meta/skills/payment/SKILL.md +491 -28
  5. package/build/advertise.d.ts +2 -0
  6. package/build/advertise.d.ts.map +1 -0
  7. package/build/advertise.js +10 -0
  8. package/build/advertise.js.map +1 -0
  9. package/build/checkout/consts.d.ts +2 -0
  10. package/build/checkout/consts.d.ts.map +1 -0
  11. package/build/checkout/consts.js +2 -0
  12. package/build/checkout/consts.js.map +1 -0
  13. package/build/checkout/index.d.ts +6 -0
  14. package/build/checkout/index.d.ts.map +1 -0
  15. package/build/checkout/index.js +4 -0
  16. package/build/checkout/index.js.map +1 -0
  17. package/build/checkout/narrow/types.d.ts +25 -0
  18. package/build/checkout/narrow/types.d.ts.map +1 -0
  19. package/build/checkout/narrow/types.js +2 -0
  20. package/build/checkout/narrow/types.js.map +1 -0
  21. package/build/checkout/narrow.d.ts +8 -0
  22. package/build/checkout/narrow.d.ts.map +1 -0
  23. package/build/checkout/narrow.js +47 -0
  24. package/build/checkout/narrow.js.map +1 -0
  25. package/build/checkout/protocols.d.ts +8 -0
  26. package/build/checkout/protocols.d.ts.map +1 -0
  27. package/build/checkout/protocols.js +28 -0
  28. package/build/checkout/protocols.js.map +1 -0
  29. package/build/checkout/types.d.ts +29 -0
  30. package/build/checkout/types.d.ts.map +1 -0
  31. package/build/checkout/types.js +2 -0
  32. package/build/checkout/types.js.map +1 -0
  33. package/build/consts.d.ts +242 -25
  34. package/build/consts.d.ts.map +1 -1
  35. package/build/consts.js +377 -24
  36. package/build/consts.js.map +1 -1
  37. package/build/consts.local.d.ts +20 -0
  38. package/build/consts.local.d.ts.map +1 -0
  39. package/build/consts.local.js +23 -0
  40. package/build/consts.local.js.map +1 -0
  41. package/build/consumer/cancel.d.ts +11 -0
  42. package/build/consumer/cancel.d.ts.map +1 -0
  43. package/build/consumer/cancel.js +33 -0
  44. package/build/consumer/cancel.js.map +1 -0
  45. package/build/consumer/consts.d.ts +20 -0
  46. package/build/consumer/consts.d.ts.map +1 -0
  47. package/build/consumer/consts.js +39 -0
  48. package/build/consumer/consts.js.map +1 -0
  49. package/build/consumer/consts.local.d.ts +7 -0
  50. package/build/consumer/consts.local.d.ts.map +1 -0
  51. package/build/consumer/consts.local.js +13 -0
  52. package/build/consumer/consts.local.js.map +1 -0
  53. package/build/consumer/copy/types.d.ts +56 -0
  54. package/build/consumer/copy/types.d.ts.map +1 -0
  55. package/build/consumer/copy/types.js +2 -0
  56. package/build/consumer/copy/types.js.map +1 -0
  57. package/build/consumer/copy.d.ts +22 -0
  58. package/build/consumer/copy.d.ts.map +1 -0
  59. package/build/consumer/copy.js +87 -0
  60. package/build/consumer/copy.js.map +1 -0
  61. package/build/consumer/deadline/types.d.ts +30 -0
  62. package/build/consumer/deadline/types.d.ts.map +1 -0
  63. package/build/consumer/deadline/types.js +2 -0
  64. package/build/consumer/deadline/types.js.map +1 -0
  65. package/build/consumer/deadline.d.ts +12 -0
  66. package/build/consumer/deadline.d.ts.map +1 -0
  67. package/build/consumer/deadline.js +44 -0
  68. package/build/consumer/deadline.js.map +1 -0
  69. package/build/consumer/fifo/types.d.ts +17 -0
  70. package/build/consumer/fifo/types.d.ts.map +1 -0
  71. package/build/consumer/fifo/types.js +2 -0
  72. package/build/consumer/fifo/types.js.map +1 -0
  73. package/build/consumer/fifo.d.ts +4 -0
  74. package/build/consumer/fifo.d.ts.map +1 -0
  75. package/build/consumer/fifo.js +34 -0
  76. package/build/consumer/fifo.js.map +1 -0
  77. package/build/consumer/index.d.ts +18 -0
  78. package/build/consumer/index.d.ts.map +1 -0
  79. package/build/consumer/index.js +11 -0
  80. package/build/consumer/index.js.map +1 -0
  81. package/build/consumer/policy/types.d.ts +20 -0
  82. package/build/consumer/policy/types.d.ts.map +1 -0
  83. package/build/consumer/policy/types.js +2 -0
  84. package/build/consumer/policy/types.js.map +1 -0
  85. package/build/consumer/policy.d.ts +17 -0
  86. package/build/consumer/policy.d.ts.map +1 -0
  87. package/build/consumer/policy.js +91 -0
  88. package/build/consumer/policy.js.map +1 -0
  89. package/build/consumer/protocols.d.ts +20 -0
  90. package/build/consumer/protocols.d.ts.map +1 -0
  91. package/build/consumer/protocols.js +70 -0
  92. package/build/consumer/protocols.js.map +1 -0
  93. package/build/consumer/refund/types.d.ts +27 -0
  94. package/build/consumer/refund/types.d.ts.map +1 -0
  95. package/build/consumer/refund/types.js +2 -0
  96. package/build/consumer/refund/types.js.map +1 -0
  97. package/build/consumer/refund.d.ts +9 -0
  98. package/build/consumer/refund.d.ts.map +1 -0
  99. package/build/consumer/refund.js +112 -0
  100. package/build/consumer/refund.js.map +1 -0
  101. package/build/consumer/refusal.d.ts +10 -0
  102. package/build/consumer/refusal.d.ts.map +1 -0
  103. package/build/consumer/refusal.js +35 -0
  104. package/build/consumer/refusal.js.map +1 -0
  105. package/build/consumer/revive/types.d.ts +19 -0
  106. package/build/consumer/revive/types.d.ts.map +1 -0
  107. package/build/consumer/revive/types.js +2 -0
  108. package/build/consumer/revive/types.js.map +1 -0
  109. package/build/consumer/revive.d.ts +13 -0
  110. package/build/consumer/revive.d.ts.map +1 -0
  111. package/build/consumer/revive.js +43 -0
  112. package/build/consumer/revive.js.map +1 -0
  113. package/build/consumer/types.d.ts +196 -0
  114. package/build/consumer/types.d.ts.map +1 -0
  115. package/build/consumer/types.js +2 -0
  116. package/build/consumer/types.js.map +1 -0
  117. package/build/consumer/types.local.d.ts +11 -0
  118. package/build/consumer/types.local.d.ts.map +1 -0
  119. package/build/consumer/types.local.js +2 -0
  120. package/build/consumer/types.local.js.map +1 -0
  121. package/build/countries.d.ts +3 -0
  122. package/build/countries.d.ts.map +1 -0
  123. package/build/countries.js +4 -0
  124. package/build/countries.js.map +1 -0
  125. package/build/entitled.d.ts +14 -0
  126. package/build/entitled.d.ts.map +1 -0
  127. package/build/entitled.js +17 -0
  128. package/build/entitled.js.map +1 -0
  129. package/build/entitlement/types.d.ts +29 -0
  130. package/build/entitlement/types.d.ts.map +1 -0
  131. package/build/entitlement/types.js +2 -0
  132. package/build/entitlement/types.js.map +1 -0
  133. package/build/entitlement.d.ts +12 -0
  134. package/build/entitlement.d.ts.map +1 -0
  135. package/build/entitlement.js +64 -0
  136. package/build/entitlement.js.map +1 -0
  137. package/build/errors.d.ts +189 -0
  138. package/build/errors.d.ts.map +1 -1
  139. package/build/errors.js +361 -0
  140. package/build/errors.js.map +1 -1
  141. package/build/estimate/types.d.ts +34 -0
  142. package/build/estimate/types.d.ts.map +1 -0
  143. package/build/estimate/types.js +2 -0
  144. package/build/estimate/types.js.map +1 -0
  145. package/build/estimate.d.ts +11 -0
  146. package/build/estimate.d.ts.map +1 -0
  147. package/build/estimate.js +76 -0
  148. package/build/estimate.js.map +1 -0
  149. package/build/i18n/consumer-rights/be.json +131 -0
  150. package/build/i18n/consumer-rights/de.json +131 -0
  151. package/build/i18n/consumer-rights/en.json +131 -0
  152. package/build/i18n/consumer-rights/es.json +131 -0
  153. package/build/i18n/consumer-rights/fr.json +131 -0
  154. package/build/i18n/consumer-rights/pl.json +131 -0
  155. package/build/i18n/consumer-rights/ru.json +131 -0
  156. package/build/i18n/consumer-rights/uk.json +131 -0
  157. package/build/i18n/errors/be.json +30 -0
  158. package/build/i18n/errors/de.json +30 -0
  159. package/build/i18n/errors/en.json +30 -0
  160. package/build/i18n/errors/es.json +30 -0
  161. package/build/i18n/errors/fr.json +30 -0
  162. package/build/i18n/errors/pl.json +30 -0
  163. package/build/i18n/errors/ru.json +30 -0
  164. package/build/i18n/errors/uk.json +30 -0
  165. package/build/i18n/fr.json +39 -0
  166. package/build/i18n.js +53 -8
  167. package/build/i18n.js.map +1 -1
  168. package/build/index.d.ts +19 -1
  169. package/build/index.d.ts.map +1 -1
  170. package/build/index.js +12 -1
  171. package/build/index.js.map +1 -1
  172. package/build/limit/types.d.ts +44 -0
  173. package/build/limit/types.d.ts.map +1 -0
  174. package/build/limit/types.js +2 -0
  175. package/build/limit/types.js.map +1 -0
  176. package/build/limit.d.ts +23 -0
  177. package/build/limit.d.ts.map +1 -0
  178. package/build/limit.js +97 -0
  179. package/build/limit.js.map +1 -0
  180. package/build/model/checkout.d.ts +2 -3
  181. package/build/model/checkout.d.ts.map +1 -1
  182. package/build/model/checkout.js +12 -7
  183. package/build/model/checkout.js.map +1 -1
  184. package/build/model/consts.d.ts +15 -0
  185. package/build/model/consts.d.ts.map +1 -0
  186. package/build/model/consts.js +193 -0
  187. package/build/model/consts.js.map +1 -0
  188. package/build/model/consts.local.d.ts +35 -0
  189. package/build/model/consts.local.d.ts.map +1 -0
  190. package/build/model/consts.local.js +65 -0
  191. package/build/model/consts.local.js.map +1 -0
  192. package/build/model/consumer.d.ts +23 -0
  193. package/build/model/consumer.d.ts.map +1 -0
  194. package/build/model/consumer.js +272 -0
  195. package/build/model/consumer.js.map +1 -0
  196. package/build/model/estimate.d.ts +5 -0
  197. package/build/model/estimate.d.ts.map +1 -0
  198. package/build/model/estimate.js +69 -0
  199. package/build/model/estimate.js.map +1 -0
  200. package/build/model/index.d.ts +7 -2
  201. package/build/model/index.d.ts.map +1 -1
  202. package/build/model/index.js +7 -2
  203. package/build/model/index.js.map +1 -1
  204. package/build/model/limit.d.ts +7 -0
  205. package/build/model/limit.d.ts.map +1 -0
  206. package/build/model/limit.js +32 -0
  207. package/build/model/limit.js.map +1 -0
  208. package/build/model/plan.d.ts.map +1 -1
  209. package/build/model/plan.js +24 -11
  210. package/build/model/plan.js.map +1 -1
  211. package/build/model/portal.d.ts +4 -0
  212. package/build/model/portal.d.ts.map +1 -0
  213. package/build/model/portal.js +22 -0
  214. package/build/model/portal.js.map +1 -0
  215. package/build/model/pricing.d.ts +4 -0
  216. package/build/model/pricing.d.ts.map +1 -0
  217. package/build/model/pricing.js +31 -0
  218. package/build/model/pricing.js.map +1 -0
  219. package/build/model/view.d.ts +3 -0
  220. package/build/model/view.d.ts.map +1 -0
  221. package/build/model/view.js +15 -0
  222. package/build/model/view.js.map +1 -0
  223. package/build/pricing/types.d.ts +13 -0
  224. package/build/pricing/types.d.ts.map +1 -0
  225. package/build/pricing/types.js +2 -0
  226. package/build/pricing/types.js.map +1 -0
  227. package/build/pricing.d.ts +13 -0
  228. package/build/pricing.d.ts.map +1 -0
  229. package/build/pricing.js +74 -0
  230. package/build/pricing.js.map +1 -0
  231. package/build/promo/types.d.ts +14 -0
  232. package/build/promo/types.d.ts.map +1 -0
  233. package/build/promo/types.js +2 -0
  234. package/build/promo/types.js.map +1 -0
  235. package/build/promo.d.ts +7 -0
  236. package/build/promo.d.ts.map +1 -0
  237. package/build/promo.js +25 -0
  238. package/build/promo.js.map +1 -0
  239. package/build/regions/types.d.ts +32 -0
  240. package/build/regions/types.d.ts.map +1 -0
  241. package/build/regions/types.js +2 -0
  242. package/build/regions/types.js.map +1 -0
  243. package/build/regions.d.ts +15 -0
  244. package/build/regions.d.ts.map +1 -0
  245. package/build/regions.js +43 -0
  246. package/build/regions.js.map +1 -0
  247. package/build/service.d.ts.map +1 -1
  248. package/build/service.js +24 -9
  249. package/build/service.js.map +1 -1
  250. package/build/types.d.ts +619 -52
  251. package/build/types.d.ts.map +1 -1
  252. package/build/types.local.d.ts +4 -0
  253. package/build/types.local.d.ts.map +1 -0
  254. package/build/types.local.js +2 -0
  255. package/build/types.local.js.map +1 -0
  256. package/build/view/types.d.ts +33 -0
  257. package/build/view/types.d.ts.map +1 -0
  258. package/build/view/types.js +2 -0
  259. package/build/view/types.js.map +1 -0
  260. package/build/view.d.ts +13 -0
  261. package/build/view.d.ts.map +1 -0
  262. package/build/view.js +78 -0
  263. package/build/view.js.map +1 -0
  264. package/package.json +14 -12
  265. package/src/advertise.ts +13 -0
  266. package/src/checkout/consts.ts +1 -0
  267. package/src/checkout/index.ts +5 -0
  268. package/src/checkout/narrow/types.ts +27 -0
  269. package/src/checkout/narrow.ts +63 -0
  270. package/src/checkout/protocols.ts +39 -0
  271. package/src/checkout/types.ts +27 -0
  272. package/src/consts.local.ts +34 -0
  273. package/src/consts.ts +417 -24
  274. package/src/consumer/cancel.ts +40 -0
  275. package/src/consumer/consts.local.ts +16 -0
  276. package/src/consumer/consts.ts +46 -0
  277. package/src/consumer/copy/types.ts +54 -0
  278. package/src/consumer/copy.ts +121 -0
  279. package/src/consumer/deadline/types.ts +30 -0
  280. package/src/consumer/deadline.ts +61 -0
  281. package/src/consumer/fifo/types.ts +17 -0
  282. package/src/consumer/fifo.ts +42 -0
  283. package/src/consumer/index.ts +17 -0
  284. package/src/consumer/policy/types.ts +20 -0
  285. package/src/consumer/policy.ts +101 -0
  286. package/src/consumer/protocols.ts +116 -0
  287. package/src/consumer/refund/types.ts +27 -0
  288. package/src/consumer/refund.ts +136 -0
  289. package/src/consumer/refusal.ts +35 -0
  290. package/src/consumer/revive/types.ts +23 -0
  291. package/src/consumer/revive.ts +82 -0
  292. package/src/consumer/types.local.ts +10 -0
  293. package/src/consumer/types.ts +189 -0
  294. package/src/countries.ts +5 -0
  295. package/src/entitled.ts +20 -0
  296. package/src/entitlement/types.ts +29 -0
  297. package/src/entitlement.ts +86 -0
  298. package/src/errors.ts +445 -0
  299. package/src/estimate/types.ts +34 -0
  300. package/src/estimate.ts +90 -0
  301. package/src/i18n/consumer-rights/be.json +131 -0
  302. package/src/i18n/consumer-rights/de.json +131 -0
  303. package/src/i18n/consumer-rights/en.json +131 -0
  304. package/src/i18n/consumer-rights/es.json +131 -0
  305. package/src/i18n/consumer-rights/fr.json +131 -0
  306. package/src/i18n/consumer-rights/pl.json +131 -0
  307. package/src/i18n/consumer-rights/ru.json +131 -0
  308. package/src/i18n/consumer-rights/uk.json +131 -0
  309. package/src/i18n/errors/be.json +30 -0
  310. package/src/i18n/errors/de.json +30 -0
  311. package/src/i18n/errors/en.json +30 -0
  312. package/src/i18n/errors/es.json +30 -0
  313. package/src/i18n/errors/fr.json +30 -0
  314. package/src/i18n/errors/pl.json +30 -0
  315. package/src/i18n/errors/ru.json +30 -0
  316. package/src/i18n/errors/uk.json +30 -0
  317. package/src/i18n/fr.json +39 -0
  318. package/src/i18n.ts +58 -8
  319. package/src/index.ts +19 -2
  320. package/src/limit/types.ts +41 -0
  321. package/src/limit.ts +132 -0
  322. package/src/model/checkout.ts +12 -7
  323. package/src/model/consts.local.ts +83 -0
  324. package/src/model/consts.ts +206 -0
  325. package/src/model/consumer.ts +294 -0
  326. package/src/model/estimate.ts +73 -0
  327. package/src/model/index.ts +7 -2
  328. package/src/model/limit.ts +36 -0
  329. package/src/model/plan.ts +25 -12
  330. package/src/model/portal.ts +25 -0
  331. package/src/model/pricing.ts +34 -0
  332. package/src/model/view.ts +17 -0
  333. package/src/pricing/types.ts +13 -0
  334. package/src/pricing.ts +110 -0
  335. package/src/promo/types.ts +18 -0
  336. package/src/promo.ts +46 -0
  337. package/src/regions/types.ts +42 -0
  338. package/src/regions.ts +85 -0
  339. package/src/service.ts +32 -15
  340. package/src/types.local.ts +5 -0
  341. package/src/types.ts +669 -49
  342. package/src/view/types.ts +39 -0
  343. package/src/view.ts +119 -0
  344. package/tests/checkout-narrow.spec.ts +75 -0
  345. package/tests/consumer-copy.spec.ts +378 -0
  346. package/tests/consumer-deadline.spec.ts +85 -0
  347. package/tests/consumer-fifo.spec.ts +61 -0
  348. package/tests/consumer-protocols.spec.ts +103 -0
  349. package/tests/consumer-refund.spec.ts +134 -0
  350. package/tests/consumer-regions.spec.ts +140 -0
  351. package/tests/consumer-wire.spec.ts +170 -0
  352. package/tests/contract.spec.ts +183 -0
  353. package/tests/entitlement.spec.ts +103 -0
  354. package/tests/errors.spec.ts +168 -0
  355. package/tests/estimate.spec.ts +139 -0
  356. package/tests/limit.spec.ts +117 -0
  357. package/tests/pricing.spec.ts +30 -0
  358. package/tests/tsconfig.json +11 -0
  359. package/tests/view.spec.ts +130 -0
  360. package/tsconfig.json +6 -1
  361. package/build/.gitkeep +0 -0
  362. package/src/model/subscription.ts +0 -63
  363. package/src/model/utils.ts +0 -32
  364. package/src/modules.ts +0 -43
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC/G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,YAAY,CAAC,EAAE,aAAa,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,iBAAiB,CAAA;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACrC;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,UAAU,CAAA;IAClB,eAAe,CAAC,EAAE;QAChB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,YAAY,CAAC,EAAE,aAAa,EAAE,CAAA;IAC9B,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAA;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;IACf,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,YAAY,CAAC,EAAE,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,MAAM,EAAE,kBAAkB,CAAA;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,aAAa,EAAE,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAA;IACvC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,CAAA;CAClD;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,yBAAyB,CAAA;AAEjE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,SAAS,EAAE,IAAI,CAAA;IACf,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,KAAK,aAAa,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,CAAA;AAE1D,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1C,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAElC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAE7E,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;IAE/C,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAExD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAE9E,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACjE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ConsumerRightsPolicy } from './types.js';
2
+ export type RegionPolicy = Pick<ConsumerRightsPolicy, 'countries'> | null | undefined;
3
+ export type Dated = Record<string, unknown>;
4
+ //# sourceMappingURL=types.local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.local.d.ts","sourceRoot":"","sources":["../src/types.local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,CAAA;AAErF,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.local.js","sourceRoot":"","sources":["../src/types.local.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import type { CapabilityView, EntitlementPlanView, EntitlementView, LimitUsage, LimitView, ProductPlan } from '../types.js';
2
+ /** The entitlement view of a plan — its capability and limit rows — and its wire reviver. */
3
+ export interface EntitlementViewHelper {
4
+ /**
5
+ * One row per granted permission of a plan's capability sets.
6
+ *
7
+ * A `null`/`false` value is not a grant and is not listed. A set whose promo is no longer in force
8
+ * is still listed — `granted: false`, `promo.active: false` — so a UI can say the promotion ended.
9
+ * A set under the reserved `limit` scope is never a capability and is skipped.
10
+ */
11
+ capabilityViewsOf: (plan: Pick<ProductPlan, 'capabilities'>, subscribedAt?: Date | null, at?: Date) => CapabilityView[];
12
+ /**
13
+ * One row per declared limit, in declaration order.
14
+ *
15
+ * `used` comes from the usage row of the limit's CURRENT window (none ⇒ `0`); a lapsed promo makes
16
+ * the limit `0`; `remaining` never goes below `0`; `windowStart`/`resetsAt` exist only for a
17
+ * window limit.
18
+ */
19
+ limitViewsOf: (plan: Pick<ProductPlan, 'limits'>, usage: LimitUsage[], subscribedAt?: Date | null, at?: Date) => LimitView[];
20
+ /**
21
+ * The full entitlement view of one effective plan.
22
+ *
23
+ * Promos are measured against `planView.subscribedAt` — leave it unset for an entity with no
24
+ * subscription row, and no promo is grandfathered.
25
+ */
26
+ entitlementViewOf: (plan: ProductPlan, planView: EntitlementPlanView, usage: LimitUsage[], at?: Date) => EntitlementView;
27
+ /**
28
+ * An `EntitlementView` as the WIRE carries it — every date an ISO string — turned back into the
29
+ * typed shape with `Date` instances. Idempotent: a view that already holds dates is copied as is.
30
+ */
31
+ reviveEntitlementView: (view: EntitlementView) => EntitlementView;
32
+ }
33
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/view/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EACzF,MAAM,aAAa,CAAA;AAEpB,6FAA6F;AAC7F,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,KAAK,cAAc,EAAE,CAAA;IACvH;;;;;;OAMG;IACH,YAAY,EAAE,CACZ,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,KAC1F,SAAS,EAAE,CAAA;IAChB;;;;;OAKG;IACH,iBAAiB,EAAE,CACjB,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,KAC7E,eAAe,CAAA;IACpB;;;OAGG;IACH,qBAAqB,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,eAAe,CAAA;CAClE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/view/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { CapabilityView, EntitlementPlanView, EntitlementView, LimitUsage, LimitView, ProductPlan } from './types.js';
2
+ import type { EntitlementViewHelper } from './view/types.js';
3
+ export declare const createEntitlementViewHelper: () => EntitlementViewHelper;
4
+ export declare const entitlementViewHelper: EntitlementViewHelper;
5
+ /** @deprecated compat:factory-refactor — use `entitlementViewHelper.capabilityViewsOf(…)` */
6
+ export declare const capabilityViewsOf: (plan: Pick<ProductPlan, 'capabilities'>, subscribedAt?: Date | null, at?: Date) => CapabilityView[];
7
+ /** @deprecated compat:factory-refactor — use `entitlementViewHelper.limitViewsOf(…)` */
8
+ export declare const limitViewsOf: (plan: Pick<ProductPlan, 'limits'>, usage: LimitUsage[], subscribedAt?: Date | null, at?: Date) => LimitView[];
9
+ /** @deprecated compat:factory-refactor — use `entitlementViewHelper.entitlementViewOf(…)` */
10
+ export declare const entitlementViewOf: (plan: ProductPlan, planView: EntitlementPlanView, usage: LimitUsage[], at?: Date) => EntitlementView;
11
+ /** @deprecated compat:factory-refactor — use `entitlementViewHelper.reviveEntitlementView(…)` */
12
+ export declare const reviveEntitlementView: (view: EntitlementView) => EntitlementView;
13
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EACzF,MAAM,YAAY,CAAA;AAGnB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAE5D,eAAO,MAAM,2BAA2B,QAAO,qBAsF9C,CAAA;AAED,eAAO,MAAM,qBAAqB,uBAAgC,CAAA;AAElE,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,SACtB,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,iBAAiB,IAAI,GAAG,IAAI,OAAO,IAAI,KAC7E,cAAc,EAAqE,CAAA;AAEtF,wFAAwF;AACxF,eAAO,MAAM,YAAY,SACjB,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,UAAU,EAAE,iBAAiB,IAAI,GAAG,IAAI,OAAO,IAAI,KAC5F,SAAS,EAAuE,CAAA;AAEnF,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,SACtB,WAAW,YAAY,mBAAmB,SAAS,UAAU,EAAE,OAAO,IAAI,KAC/E,eAAqF,CAAA;AAExF,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,SAAU,eAAe,KAAG,eACX,CAAA"}
package/build/view.js ADDED
@@ -0,0 +1,78 @@
1
+ import { LimitKind, CAPABILITY_LIMIT_SCOPE } from './consts.js';
2
+ import { entitlementParamHelper } from './entitlement.js';
3
+ import { planLimitHelper } from './limit.js';
4
+ import { promoHelper } from './promo.js';
5
+ import { LIMIT_DATES, PLAN_DATES } from './consts.local.js';
6
+ export const createEntitlementViewHelper = () => {
7
+ const capabilityViewsOf = (plan, subscribedAt, at = new Date()) => {
8
+ const views = [];
9
+ for (const set of plan.capabilities ?? []) {
10
+ if (set.scope === CAPABILITY_LIMIT_SCOPE) {
11
+ continue;
12
+ }
13
+ const granted = promoHelper.promoActive(set.promo, subscribedAt, at);
14
+ const promo = promoHelper.promoViewOf(set.promo, subscribedAt, at);
15
+ for (const [permission, value] of Object.entries(set.permissions ?? {})) {
16
+ if (value == null || value === false) {
17
+ continue;
18
+ }
19
+ views.push({
20
+ param: entitlementParamHelper.formatEntitlementParam({ scope: set.scope, permission }),
21
+ scope: set.scope, permission, value, granted,
22
+ ...(promo != null ? { promo } : {}),
23
+ });
24
+ }
25
+ }
26
+ return views;
27
+ };
28
+ const limitViewsOf = (plan, usage, subscribedAt, at = new Date()) => Object.entries(plan.limits ?? {}).map(([key, declaration]) => {
29
+ const window = planLimitHelper.windowKeyOf(declaration.kind, declaration.window, at, subscribedAt ?? at);
30
+ const used = Math.max(0, usage.find(row => row.key === key && row.window === window)?.used ?? 0);
31
+ const limit = promoHelper.promoActive(declaration.promo, subscribedAt, at) ? declaration.limit : 0;
32
+ const promo = promoHelper.promoViewOf(declaration.promo, subscribedAt, at);
33
+ const bounds = declaration.kind === LimitKind.Window && declaration.window != null
34
+ ? planLimitHelper.windowBoundsOf(declaration.window, at, subscribedAt ?? at) : null;
35
+ return {
36
+ key, param: planLimitHelper.formatLimitParam(key), kind: declaration.kind,
37
+ ...(declaration.kind === LimitKind.Window ? { window: declaration.window } : {}),
38
+ limit, used, remaining: Math.max(0, limit - used),
39
+ ...(bounds != null ? { windowStart: bounds.start, resetsAt: bounds.resetsAt } : {}),
40
+ ...(declaration.unit != null ? { unit: declaration.unit } : {}),
41
+ ...(promo != null ? { promo } : {}),
42
+ };
43
+ });
44
+ const entitlementViewOf = (plan, planView, usage, at = new Date()) => ({
45
+ plan: planView,
46
+ capabilities: capabilityViewsOf(plan, planView.subscribedAt, at),
47
+ limits: limitViewsOf(plan, usage, planView.subscribedAt, at),
48
+ at,
49
+ });
50
+ const revive = (value, fields) => {
51
+ const copy = { ...value };
52
+ for (const field of fields) {
53
+ const raw = copy[field];
54
+ if (raw != null && !(raw instanceof Date)) {
55
+ copy[field] = new Date(raw);
56
+ }
57
+ }
58
+ return copy;
59
+ };
60
+ const revivePromo = (row) => row.promo == null ? row : { ...row, promo: revive(row.promo, ['until']) };
61
+ const reviveEntitlementView = (view) => ({
62
+ plan: revive(view.plan, PLAN_DATES),
63
+ capabilities: view.capabilities.map(revivePromo),
64
+ limits: view.limits.map(limit => revivePromo(revive(limit, LIMIT_DATES))),
65
+ at: view.at instanceof Date ? view.at : new Date(view.at),
66
+ });
67
+ return { capabilityViewsOf, limitViewsOf, entitlementViewOf, reviveEntitlementView };
68
+ };
69
+ export const entitlementViewHelper = createEntitlementViewHelper();
70
+ /** @deprecated compat:factory-refactor — use `entitlementViewHelper.capabilityViewsOf(…)` */
71
+ export const capabilityViewsOf = (plan, subscribedAt, at) => entitlementViewHelper.capabilityViewsOf(plan, subscribedAt, at);
72
+ /** @deprecated compat:factory-refactor — use `entitlementViewHelper.limitViewsOf(…)` */
73
+ export const limitViewsOf = (plan, usage, subscribedAt, at) => entitlementViewHelper.limitViewsOf(plan, usage, subscribedAt, at);
74
+ /** @deprecated compat:factory-refactor — use `entitlementViewHelper.entitlementViewOf(…)` */
75
+ export const entitlementViewOf = (plan, planView, usage, at) => entitlementViewHelper.entitlementViewOf(plan, planView, usage, at);
76
+ /** @deprecated compat:factory-refactor — use `entitlementViewHelper.reviveEntitlementView(…)` */
77
+ export const reviveEntitlementView = (view) => entitlementViewHelper.reviveEntitlementView(view);
78
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@owlmeans/payment",
3
- "version": "0.1.18-rc.8",
3
+ "version": "0.1.18",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "build": "tsc -b",
8
8
  "dev": "sleep 228 && nodemon -e ts,tsx,json --watch src --exec \"tsc -p ./tsconfig.json\"",
9
- "watch": "tsc -b -w --preserveWatchOutput --pretty"
9
+ "watch": "tsc -b -w --preserveWatchOutput --pretty",
10
+ "test": "bun test ./tests"
10
11
  },
11
12
  "main": "build/index.js",
12
13
  "module": "build/index.js",
@@ -31,18 +32,19 @@
31
32
  "ajv": "*"
32
33
  },
33
34
  "dependencies": {
34
- "@owlmeans/auth": "^0.1.18-rc.6",
35
- "@owlmeans/basic-envelope": "^0.1.18-rc.8",
36
- "@owlmeans/config": "^0.1.18-rc.7",
37
- "@owlmeans/context": "^0.1.18-rc.6",
38
- "@owlmeans/error": "^0.1.18-rc.6",
39
- "@owlmeans/i18n": "^0.1.18-rc.6",
40
- "@owlmeans/entrypoint": "^0.1.18-rc.7",
41
- "@owlmeans/resource": "^0.1.18-rc.7",
42
- "@owlmeans/route": "^0.1.18-rc.6"
35
+ "@owlmeans/api-config": "^0.1.18",
36
+ "@owlmeans/auth": "^0.1.18",
37
+ "@owlmeans/basic-envelope": "^0.1.18",
38
+ "@owlmeans/config": "^0.1.18",
39
+ "@owlmeans/context": "^0.1.18",
40
+ "@owlmeans/error": "^0.1.18",
41
+ "@owlmeans/i18n": "^0.1.18",
42
+ "@owlmeans/entrypoint": "^0.1.18",
43
+ "@owlmeans/resource": "^0.1.18",
44
+ "@owlmeans/route": "^0.1.18"
43
45
  },
44
46
  "devDependencies": {
45
- "@owlmeans/dep-config": "workspace:*",
47
+ "@owlmeans/dep-config": "^0.1.18",
46
48
  "nodemon": "^3.1.14",
47
49
  "typescript": "^7.0.2"
48
50
  },
@@ -0,0 +1,13 @@
1
+ import { CONFIG_RECORD } from '@owlmeans/context'
2
+ import { apiConfigPlugin, every } from '@owlmeans/api-config'
3
+ import { advertisedRecordTypes } from './consts.local.js'
4
+
5
+ apiConfigPlugin({
6
+ allow: {
7
+ [CONFIG_RECORD]: every(
8
+ true,
9
+ value => value != null && typeof value === 'object'
10
+ && advertisedRecordTypes.has((value as { recordType?: string }).recordType ?? '')
11
+ ),
12
+ },
13
+ })
@@ -0,0 +1 @@
1
+ export const CHECKOUT_READ_API_PATH = '/checkout'
@@ -0,0 +1,5 @@
1
+ export * from './narrow.js'
2
+ export type * from './types.js'
3
+ export type * from './narrow/types.js'
4
+ export * from './protocols.js'
5
+ export * from './consts.js'
@@ -0,0 +1,27 @@
1
+ import type { AmountCheckoutPolicy, AmountNarrowing, AmountPolicyView } from '../../types.js'
2
+ import type { NarrowAmountPolicyOptions } from '../types.js'
3
+
4
+ /** An amount policy narrowed for one entity, and the amounts it still allows. */
5
+ export interface AmountNarrowingHelper {
6
+ /**
7
+ * An amount policy narrowed for one entity — the one computation the server's refusal and the
8
+ * dialog's control share, so a disabled control and a refusal cannot disagree.
9
+ *
10
+ * - The maximum is the smallest of the base maximum and every narrowing's; the reason, reset and
11
+ * remaining come from the narrowing that set it (the first on a tie).
12
+ * - Presets above the maximum are dropped; the default is clamped into `[minimum, maximum]`.
13
+ * - `limit` is `null` when no narrowing lowered the base maximum.
14
+ * - `blocked` (`limit.maximumMinor < base.minimumMinor`) means NO amount may be bought now. The
15
+ * returned `policy` then stays a VALID policy pinned to the minimum (maximum = default =
16
+ * minimum, no presets above it), so a validator never throws on it; the UI disables the input
17
+ * and the confirm button on `limit.blocked`, and the server refuses every amount with
18
+ * `CheckoutLimitExceeded` — neither may read the pinned policy as "the minimum is allowed".
19
+ *
20
+ * @throws PaymentError (`checkout-policy:*`) when the base policy itself is invalid.
21
+ */
22
+ narrowAmountPolicy: (
23
+ base: AmountCheckoutPolicy, narrowings: AmountNarrowing[], opts?: NarrowAmountPolicyOptions,
24
+ ) => AmountPolicyView
25
+ /** Whether an amount may be bought under a narrowed view: never when blocked. */
26
+ amountAllowed: (view: AmountPolicyView, amountMinor: number) => boolean
27
+ }
@@ -0,0 +1,63 @@
1
+ import { checkoutPricingHelper } from '../pricing.js'
2
+ import type { AmountCheckoutPolicy, AmountNarrowing, AmountPolicyView, CheckoutLimitView } from '../types.js'
3
+ import type { AmountNarrowingHelper } from './narrow/types.js'
4
+ import type { NarrowAmountPolicyOptions } from './types.js'
5
+
6
+ export const createAmountNarrowingHelper = (): AmountNarrowingHelper => {
7
+ const maximumOf = (narrowing: AmountNarrowing): number =>
8
+ Number.isFinite(narrowing.maximumMinor) ? Math.max(0, Math.floor(narrowing.maximumMinor)) : 0
9
+
10
+ const narrowAmountPolicy = (
11
+ base: AmountCheckoutPolicy, narrowings: AmountNarrowing[], opts: NarrowAmountPolicyOptions = {},
12
+ ): AmountPolicyView => {
13
+ checkoutPricingHelper.assertAmountCheckoutPolicy(base)
14
+ let setter: AmountNarrowing | null = null
15
+ let maximum = base.maximumMinor
16
+ for (const narrowing of narrowings) {
17
+ const candidate = maximumOf(narrowing)
18
+ if (candidate < maximum) {
19
+ maximum = candidate
20
+ setter = narrowing
21
+ }
22
+ }
23
+ if (setter == null) {
24
+ return { policy: base, limit: null }
25
+ }
26
+
27
+ const blocked = maximum < base.minimumMinor
28
+ const ceiling = blocked ? base.minimumMinor : maximum
29
+ const policy: AmountCheckoutPolicy = {
30
+ ...base,
31
+ maximumMinor: ceiling,
32
+ defaultMinor: Math.min(Math.max(base.defaultMinor, base.minimumMinor), ceiling),
33
+ presetsMinor: base.presetsMinor.filter(preset => preset <= ceiling),
34
+ }
35
+ const limit: CheckoutLimitView = {
36
+ productSku: opts.productSku ?? '',
37
+ ...(opts.planSku != null ? { planSku: opts.planSku } : {}),
38
+ currency: base.currency,
39
+ minimumMinor: base.minimumMinor,
40
+ maximumMinor: maximum,
41
+ narrowed: true,
42
+ blocked,
43
+ reason: setter.reason,
44
+ ...(setter.resetsAt != null ? { resetsAt: setter.resetsAt } : {}),
45
+ ...(setter.remainingMinor != null ? { remainingMinor: setter.remainingMinor } : {}),
46
+ }
47
+
48
+ return { policy: checkoutPricingHelper.assertAmountCheckoutPolicy(policy), limit }
49
+ }
50
+
51
+ const amountAllowed = (view: AmountPolicyView, amountMinor: number): boolean =>
52
+ view.limit?.blocked !== true && Number.isSafeInteger(amountMinor)
53
+ && amountMinor >= view.policy.minimumMinor && amountMinor <= view.policy.maximumMinor
54
+
55
+ return { narrowAmountPolicy, amountAllowed }
56
+ }
57
+
58
+ export const amountNarrowingHelper = createAmountNarrowingHelper()
59
+
60
+ /** @deprecated compat:factory-refactor — use `amountNarrowingHelper.narrowAmountPolicy(…)` */
61
+ export const narrowAmountPolicy = (
62
+ base: AmountCheckoutPolicy, narrowings: AmountNarrowing[], opts?: NarrowAmountPolicyOptions,
63
+ ): AmountPolicyView => amountNarrowingHelper.narrowAmountPolicy(base, narrowings, opts)
@@ -0,0 +1,39 @@
1
+ import { contract, openProtocol, protocol, typed } from '@owlmeans/entrypoint'
2
+ import { backend, route, RouteMethod } from '@owlmeans/route'
3
+ import {
4
+ AmountPolicyQuerySchema, AmountPolicyViewSchema, PlanPriceListSchema, PlanPricesQuerySchema,
5
+ } from '../model/consumer.js'
6
+ import type { AmountPolicyQuery, PlanPricesQuery } from '../types.js'
7
+ import { CHECKOUT_READ_API_PATH } from './consts.js'
8
+ import type { CheckoutReadProtocolOptions, CheckoutReadProtocols } from './types.js'
9
+
10
+ /**
11
+ * The read side of checkout: `amountPolicy` GET `/amount-policy?productSku&planSku` and
12
+ * `planPrices` GET `/plan-prices?productSku`, under the application's guarded `parent` (or its own
13
+ * `guards`). Aliases are `<prefix>:<name>`.
14
+ */
15
+ export const makeCheckoutReadProtocols = (opts: CheckoutReadProtocolOptions): CheckoutReadProtocols => {
16
+ if (opts.parent == null && opts.guards == null) {
17
+ throw new SyntaxError('checkout-read: the routes need either a parent or explicit guards')
18
+ }
19
+ const alias = (name: string): string => `${opts.prefix}:${name}`
20
+ const path = opts.path ?? CHECKOUT_READ_API_PATH
21
+ const base = opts.parent != null
22
+ ? openProtocol(route(alias('base'), path, backend({ parent: opts.parent })))
23
+ : openProtocol(route(alias('base'), path, backend()), {
24
+ guards: opts.guards,
25
+ ...(opts.gate != null ? { gate: opts.gate } : {}),
26
+ })
27
+
28
+ return {
29
+ base,
30
+ amountPolicy: protocol(
31
+ route(alias('amount-policy'), '/amount-policy', backend({ parent: base, method: RouteMethod.GET })),
32
+ contract.request({ query: typed<AmountPolicyQuery>(AmountPolicyQuerySchema) }, AmountPolicyViewSchema),
33
+ ),
34
+ planPrices: protocol(
35
+ route(alias('plan-prices'), '/plan-prices', backend({ parent: base, method: RouteMethod.GET })),
36
+ contract.request({ query: typed<PlanPricesQuery>(PlanPricesQuerySchema) }, PlanPriceListSchema),
37
+ ),
38
+ }
39
+ }
@@ -0,0 +1,27 @@
1
+ import type { RouteParent } from '@owlmeans/route'
2
+ import type { EntrypointOptions, EntrypointProtocol, OpenRequest, OpenValue } from '@owlmeans/entrypoint'
3
+ import type { AmountPolicyQuery, AmountPolicyView, PlanPriceList, PlanPricesQuery } from '../types.js'
4
+
5
+ export interface NarrowAmountPolicyOptions {
6
+ productSku?: string
7
+ planSku?: string
8
+ }
9
+
10
+ export interface CheckoutReadProtocolOptions {
11
+ /** Alias prefix of every declaration, e.g. `my-app:account:checkout`. */
12
+ prefix: string
13
+ /** The application's guarded parent — its guards and gate are inherited. */
14
+ parent?: RouteParent
15
+ guards?: EntrypointOptions['guards']
16
+ gate?: EntrypointOptions['gate']
17
+ /** Default `/checkout`. */
18
+ path?: string
19
+ }
20
+
21
+ export interface CheckoutReadProtocols {
22
+ base: EntrypointProtocol<OpenRequest, OpenValue>
23
+ /** The entity's amount policy as narrowed now — the same computation the checkout enforces. */
24
+ amountPolicy: EntrypointProtocol<{ query: AmountPolicyQuery }, AmountPolicyView>
25
+ /** The prices a product's plans are charged at, per currency, as last synchronized. */
26
+ planPrices: EntrypointProtocol<{ query: PlanPricesQuery }, PlanPriceList>
27
+ }
@@ -0,0 +1,34 @@
1
+ import { CONSUMER_RIGHTS_RECORD_TYPE, L10N_RECORD_TYPE, PLAN_RECORD_TYPE, PRICING_POLICY_RECORD_TYPE, PRODUCT_RECORD_TYPE } from './consts.js'
2
+
3
+ /**
4
+ * The pricing policy record carries only flags and TTLs (never a Stripe secret, an API version, or
5
+ * a migration switch — those stay in a backend-only plugin), so advertising it to the browser is
6
+ * safe. The consumer-rights policy record carries only public links, territories and switches
7
+ * (the mail options — sender, archive copy — stay in a backend-only plugin config), so the browser
8
+ * renders the same links and switches the server enforces.
9
+ */
10
+ export const advertisedRecordTypes = new Set([
11
+ L10N_RECORD_TYPE, PLAN_RECORD_TYPE, PRODUCT_RECORD_TYPE, PRICING_POLICY_RECORD_TYPE, CONSUMER_RIGHTS_RECORD_TYPE,
12
+ ])
13
+
14
+ export const CAPABILITY_REQUIRED_MARKER = 'capability-required:'
15
+
16
+ export const LIMIT_EXHAUSTED_MARKER = 'limit-exhausted:'
17
+
18
+ export const LIMIT_EXHAUSTED_FIELDS = /^(.*):([^:/]+)\/([^:/]+)(?::(.+))?$/
19
+
20
+ export const PERFORMANCE_CONSENT_MARKER = 'performance-consent-required:'
21
+
22
+ export const SUBSCRIPTION_START_MARKER = 'subscription-start-required:'
23
+
24
+ export const BILLING_COUNTRY_LOCKED_MARKER = 'billing-country-locked:'
25
+
26
+ export const WITHDRAWAL_UNAVAILABLE_MARKER = 'withdrawal-unavailable:'
27
+
28
+ export const CANCELLATION_UNAVAILABLE_MARKER = 'cancellation-unavailable:'
29
+
30
+ export const CHECKOUT_LIMIT_MARKER = 'checkout-limit-exceeded:'
31
+
32
+ export const PLAN_DATES = ['subscribedAt', 'periodStart', 'periodEnd', 'trialEnd', 'pausedAt'] as const
33
+
34
+ export const LIMIT_DATES = ['windowStart', 'resetsAt'] as const