@softure-ai/billing 0.0.0-stage → 0.1.5

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 (294) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +699 -2
  3. package/dist/calendar.d.ts +26 -0
  4. package/dist/calendar.d.ts.map +1 -0
  5. package/dist/calendar.js +81 -0
  6. package/dist/calendar.js.map +1 -0
  7. package/dist/contract.d.ts +187 -0
  8. package/dist/contract.d.ts.map +1 -0
  9. package/dist/contract.js +6 -0
  10. package/dist/contract.js.map +1 -0
  11. package/dist/currency-digits.d.ts +3 -0
  12. package/dist/currency-digits.d.ts.map +1 -0
  13. package/dist/currency-digits.js +32 -0
  14. package/dist/currency-digits.js.map +1 -0
  15. package/dist/entitlement.d.ts +25 -0
  16. package/dist/entitlement.d.ts.map +1 -0
  17. package/dist/entitlement.js +75 -0
  18. package/dist/entitlement.js.map +1 -0
  19. package/dist/fields.d.ts +25 -0
  20. package/dist/fields.d.ts.map +1 -0
  21. package/dist/fields.js +27 -0
  22. package/dist/fields.js.map +1 -0
  23. package/dist/index.d.ts +274 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +73 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/invoice.d.ts +29 -0
  28. package/dist/invoice.d.ts.map +1 -0
  29. package/dist/invoice.js +35 -0
  30. package/dist/invoice.js.map +1 -0
  31. package/dist/mailing/index.d.ts +2 -0
  32. package/dist/mailing/index.d.ts.map +1 -0
  33. package/dist/mailing/index.js +4 -0
  34. package/dist/mailing/index.js.map +1 -0
  35. package/dist/mailing/reminder-mail.d.ts +50 -0
  36. package/dist/mailing/reminder-mail.d.ts.map +1 -0
  37. package/dist/mailing/reminder-mail.js +71 -0
  38. package/dist/mailing/reminder-mail.js.map +1 -0
  39. package/dist/manual.d.ts +12 -0
  40. package/dist/manual.d.ts.map +1 -0
  41. package/dist/manual.js +22 -0
  42. package/dist/manual.js.map +1 -0
  43. package/dist/messages/en.d.ts +176 -0
  44. package/dist/messages/en.d.ts.map +1 -0
  45. package/dist/messages/en.js +151 -0
  46. package/dist/messages/en.js.map +1 -0
  47. package/dist/messages/index.d.ts +359 -0
  48. package/dist/messages/index.d.ts.map +1 -0
  49. package/dist/messages/index.js +14 -0
  50. package/dist/messages/index.js.map +1 -0
  51. package/dist/messages/pl.d.ts +3 -0
  52. package/dist/messages/pl.d.ts.map +1 -0
  53. package/dist/messages/pl.js +151 -0
  54. package/dist/messages/pl.js.map +1 -0
  55. package/dist/next/access.d.ts +16 -0
  56. package/dist/next/access.d.ts.map +1 -0
  57. package/dist/next/access.js +24 -0
  58. package/dist/next/access.js.map +1 -0
  59. package/dist/next/actions.d.ts +24 -0
  60. package/dist/next/actions.d.ts.map +1 -0
  61. package/dist/next/actions.js +158 -0
  62. package/dist/next/actions.js.map +1 -0
  63. package/dist/next/context.d.ts +4 -0
  64. package/dist/next/context.d.ts.map +1 -0
  65. package/dist/next/context.js +17 -0
  66. package/dist/next/context.js.map +1 -0
  67. package/dist/next/current-entitlement.d.ts +18 -0
  68. package/dist/next/current-entitlement.d.ts.map +1 -0
  69. package/dist/next/current-entitlement.js +26 -0
  70. package/dist/next/current-entitlement.js.map +1 -0
  71. package/dist/next/index.d.ts +8 -0
  72. package/dist/next/index.d.ts.map +1 -0
  73. package/dist/next/index.js +12 -0
  74. package/dist/next/index.js.map +1 -0
  75. package/dist/next/pages.d.ts +24 -0
  76. package/dist/next/pages.d.ts.map +1 -0
  77. package/dist/next/pages.js +166 -0
  78. package/dist/next/pages.js.map +1 -0
  79. package/dist/next/pricing.d.ts +12 -0
  80. package/dist/next/pricing.d.ts.map +1 -0
  81. package/dist/next/pricing.js +20 -0
  82. package/dist/next/pricing.js.map +1 -0
  83. package/dist/next/route.d.ts +11 -0
  84. package/dist/next/route.d.ts.map +1 -0
  85. package/dist/next/route.js +56 -0
  86. package/dist/next/route.js.map +1 -0
  87. package/dist/options.d.ts +85 -0
  88. package/dist/options.d.ts.map +1 -0
  89. package/dist/options.js +121 -0
  90. package/dist/options.js.map +1 -0
  91. package/dist/payment.d.ts +61 -0
  92. package/dist/payment.d.ts.map +1 -0
  93. package/dist/payment.js +12 -0
  94. package/dist/payment.js.map +1 -0
  95. package/dist/plans.d.ts +20 -0
  96. package/dist/plans.d.ts.map +1 -0
  97. package/dist/plans.js +53 -0
  98. package/dist/plans.js.map +1 -0
  99. package/dist/price.d.ts +12 -0
  100. package/dist/price.d.ts.map +1 -0
  101. package/dist/price.js +37 -0
  102. package/dist/price.js.map +1 -0
  103. package/dist/refund.d.ts +70 -0
  104. package/dist/refund.d.ts.map +1 -0
  105. package/dist/refund.js +109 -0
  106. package/dist/refund.js.map +1 -0
  107. package/dist/reminder.d.ts +30 -0
  108. package/dist/reminder.d.ts.map +1 -0
  109. package/dist/reminder.js +34 -0
  110. package/dist/reminder.js.map +1 -0
  111. package/dist/schema.d.ts +1023 -0
  112. package/dist/schema.d.ts.map +1 -0
  113. package/dist/schema.js +77 -0
  114. package/dist/schema.js.map +1 -0
  115. package/dist/scripts/entitlement-scripts.d.ts +17 -0
  116. package/dist/scripts/entitlement-scripts.d.ts.map +1 -0
  117. package/dist/scripts/entitlement-scripts.js +167 -0
  118. package/dist/scripts/entitlement-scripts.js.map +1 -0
  119. package/dist/scripts/index.d.ts +3 -0
  120. package/dist/scripts/index.d.ts.map +1 -0
  121. package/dist/scripts/index.js +5 -0
  122. package/dist/scripts/index.js.map +1 -0
  123. package/dist/scripts/plan-scripts.d.ts +19 -0
  124. package/dist/scripts/plan-scripts.d.ts.map +1 -0
  125. package/dist/scripts/plan-scripts.js +106 -0
  126. package/dist/scripts/plan-scripts.js.map +1 -0
  127. package/dist/server/entitlements.d.ts +69 -0
  128. package/dist/server/entitlements.d.ts.map +1 -0
  129. package/dist/server/entitlements.js +202 -0
  130. package/dist/server/entitlements.js.map +1 -0
  131. package/dist/server/grants.d.ts +74 -0
  132. package/dist/server/grants.d.ts.map +1 -0
  133. package/dist/server/grants.js +174 -0
  134. package/dist/server/grants.js.map +1 -0
  135. package/dist/server/health.d.ts +3 -0
  136. package/dist/server/health.d.ts.map +1 -0
  137. package/dist/server/health.js +17 -0
  138. package/dist/server/health.js.map +1 -0
  139. package/dist/server/index.d.ts +12 -0
  140. package/dist/server/index.d.ts.map +1 -0
  141. package/dist/server/index.js +14 -0
  142. package/dist/server/index.js.map +1 -0
  143. package/dist/server/options.d.ts +20 -0
  144. package/dist/server/options.d.ts.map +1 -0
  145. package/dist/server/options.js +38 -0
  146. package/dist/server/options.js.map +1 -0
  147. package/dist/server/payments.d.ts +140 -0
  148. package/dist/server/payments.d.ts.map +1 -0
  149. package/dist/server/payments.js +339 -0
  150. package/dist/server/payments.js.map +1 -0
  151. package/dist/server/plans.d.ts +50 -0
  152. package/dist/server/plans.d.ts.map +1 -0
  153. package/dist/server/plans.js +129 -0
  154. package/dist/server/plans.js.map +1 -0
  155. package/dist/server/privacy.d.ts +77 -0
  156. package/dist/server/privacy.d.ts.map +1 -0
  157. package/dist/server/privacy.js +110 -0
  158. package/dist/server/privacy.js.map +1 -0
  159. package/dist/server/reminders.d.ts +20 -0
  160. package/dist/server/reminders.d.ts.map +1 -0
  161. package/dist/server/reminders.js +85 -0
  162. package/dist/server/reminders.js.map +1 -0
  163. package/dist/server/requests.d.ts +80 -0
  164. package/dist/server/requests.d.ts.map +1 -0
  165. package/dist/server/requests.js +155 -0
  166. package/dist/server/requests.js.map +1 -0
  167. package/dist/server/setup.d.ts +9 -0
  168. package/dist/server/setup.d.ts.map +1 -0
  169. package/dist/server/setup.js +34 -0
  170. package/dist/server/setup.js.map +1 -0
  171. package/dist/server/take-back.d.ts +80 -0
  172. package/dist/server/take-back.d.ts.map +1 -0
  173. package/dist/server/take-back.js +138 -0
  174. package/dist/server/take-back.js.map +1 -0
  175. package/dist/server/user-id.d.ts +4 -0
  176. package/dist/server/user-id.d.ts.map +1 -0
  177. package/dist/server/user-id.js +11 -0
  178. package/dist/server/user-id.js.map +1 -0
  179. package/dist/stripe-currency.d.ts +27 -0
  180. package/dist/stripe-currency.d.ts.map +1 -0
  181. package/dist/stripe-currency.js +57 -0
  182. package/dist/stripe-currency.js.map +1 -0
  183. package/dist/stripe-webhook.d.ts +101 -0
  184. package/dist/stripe-webhook.d.ts.map +1 -0
  185. package/dist/stripe-webhook.js +209 -0
  186. package/dist/stripe-webhook.js.map +1 -0
  187. package/dist/stripe.d.ts +25 -0
  188. package/dist/stripe.d.ts.map +1 -0
  189. package/dist/stripe.js +116 -0
  190. package/dist/stripe.js.map +1 -0
  191. package/dist/ui/access-badge.d.ts +16 -0
  192. package/dist/ui/access-badge.d.ts.map +1 -0
  193. package/dist/ui/access-badge.js +43 -0
  194. package/dist/ui/access-badge.js.map +1 -0
  195. package/dist/ui/access-notice.d.ts +20 -0
  196. package/dist/ui/access-notice.d.ts.map +1 -0
  197. package/dist/ui/access-notice.js +41 -0
  198. package/dist/ui/access-notice.js.map +1 -0
  199. package/dist/ui/format.d.ts +11 -0
  200. package/dist/ui/format.d.ts.map +1 -0
  201. package/dist/ui/format.js +21 -0
  202. package/dist/ui/format.js.map +1 -0
  203. package/dist/ui/grant-form.d.ts +18 -0
  204. package/dist/ui/grant-form.d.ts.map +1 -0
  205. package/dist/ui/grant-form.js +23 -0
  206. package/dist/ui/grant-form.js.map +1 -0
  207. package/dist/ui/grant-history.d.ts +39 -0
  208. package/dist/ui/grant-history.d.ts.map +1 -0
  209. package/dist/ui/grant-history.js +36 -0
  210. package/dist/ui/grant-history.js.map +1 -0
  211. package/dist/ui/index.d.ts +9 -0
  212. package/dist/ui/index.d.ts.map +1 -0
  213. package/dist/ui/index.js +12 -0
  214. package/dist/ui/index.js.map +1 -0
  215. package/dist/ui/payment-form.d.ts +23 -0
  216. package/dist/ui/payment-form.d.ts.map +1 -0
  217. package/dist/ui/payment-form.js +34 -0
  218. package/dist/ui/payment-form.js.map +1 -0
  219. package/dist/ui/payment-requests.d.ts +30 -0
  220. package/dist/ui/payment-requests.d.ts.map +1 -0
  221. package/dist/ui/payment-requests.js +31 -0
  222. package/dist/ui/payment-requests.js.map +1 -0
  223. package/dist/ui/pricing-tiles.d.ts +22 -0
  224. package/dist/ui/pricing-tiles.d.ts.map +1 -0
  225. package/dist/ui/pricing-tiles.js +40 -0
  226. package/dist/ui/pricing-tiles.js.map +1 -0
  227. package/migrations/0001_create_entitlements.sql +16 -0
  228. package/migrations/0002_create_payments.sql +30 -0
  229. package/migrations/0003_record_payment_grants.sql +25 -0
  230. package/migrations/0004_create_requests_and_grants.sql +58 -0
  231. package/migrations/0005_record_refunded_amounts.sql +18 -0
  232. package/migrations/0006_record_request_handover_and_prices.sql +38 -0
  233. package/migrations/0007_record_failed_refunds.sql +27 -0
  234. package/migrations/0008_record_request_handover_claims.sql +9 -0
  235. package/migrations/0009_record_pending_charge_states.sql +16 -0
  236. package/module.json +23 -0
  237. package/package.json +81 -4
  238. package/src/calendar.ts +90 -0
  239. package/src/contract.ts +181 -0
  240. package/src/currency-digits.ts +37 -0
  241. package/src/entitlement.ts +84 -0
  242. package/src/fields.ts +37 -0
  243. package/src/index.ts +163 -0
  244. package/src/invoice.ts +58 -0
  245. package/src/mailing/index.ts +11 -0
  246. package/src/mailing/reminder-mail.ts +108 -0
  247. package/src/manual.ts +31 -0
  248. package/src/messages/en.ts +150 -0
  249. package/src/messages/index.ts +18 -0
  250. package/src/messages/pl.ts +152 -0
  251. package/src/next/access.tsx +55 -0
  252. package/src/next/actions.ts +176 -0
  253. package/src/next/context.ts +18 -0
  254. package/src/next/current-entitlement.ts +36 -0
  255. package/src/next/index.ts +11 -0
  256. package/src/next/next-modules.d.ts +21 -0
  257. package/src/next/pages.tsx +267 -0
  258. package/src/next/pricing.tsx +39 -0
  259. package/src/next/route.ts +57 -0
  260. package/src/options.ts +128 -0
  261. package/src/payment.ts +77 -0
  262. package/src/plans.ts +63 -0
  263. package/src/price.ts +50 -0
  264. package/src/refund.ts +135 -0
  265. package/src/reminder.ts +52 -0
  266. package/src/schema.ts +86 -0
  267. package/src/scripts/entitlement-scripts.ts +188 -0
  268. package/src/scripts/index.ts +11 -0
  269. package/src/scripts/plan-scripts.ts +143 -0
  270. package/src/server/entitlements.ts +227 -0
  271. package/src/server/grants.ts +227 -0
  272. package/src/server/health.ts +18 -0
  273. package/src/server/index.ts +83 -0
  274. package/src/server/options.ts +52 -0
  275. package/src/server/payments.ts +434 -0
  276. package/src/server/plans.ts +143 -0
  277. package/src/server/privacy.ts +189 -0
  278. package/src/server/reminders.ts +113 -0
  279. package/src/server/requests.ts +201 -0
  280. package/src/server/setup.ts +37 -0
  281. package/src/server/take-back.ts +190 -0
  282. package/src/server/user-id.ts +12 -0
  283. package/src/stripe-currency.ts +65 -0
  284. package/src/stripe-webhook.ts +278 -0
  285. package/src/stripe.ts +130 -0
  286. package/src/ui/access-badge.tsx +64 -0
  287. package/src/ui/access-notice.tsx +73 -0
  288. package/src/ui/format.ts +25 -0
  289. package/src/ui/grant-form.tsx +69 -0
  290. package/src/ui/grant-history.tsx +127 -0
  291. package/src/ui/index.ts +25 -0
  292. package/src/ui/payment-form.tsx +111 -0
  293. package/src/ui/payment-requests.tsx +126 -0
  294. package/src/ui/pricing-tiles.tsx +105 -0
@@ -0,0 +1,176 @@
1
+ export declare const en: {
2
+ badge: {
3
+ trial: string;
4
+ paid: string;
5
+ lifetime: string;
6
+ readOnly: string;
7
+ daysLeft: {
8
+ one: string;
9
+ few: string;
10
+ many: string;
11
+ other: string;
12
+ };
13
+ until: string;
14
+ };
15
+ notice: {
16
+ trialEnding: string;
17
+ paidEnding: string;
18
+ trialEnded: string;
19
+ paidEnded: string;
20
+ choosePlan: string;
21
+ renew: string;
22
+ };
23
+ reminderMail: {
24
+ trialEnding: {
25
+ subject: string;
26
+ body: string;
27
+ };
28
+ paidEnding: {
29
+ subject: string;
30
+ body: string;
31
+ };
32
+ trialEnded: {
33
+ subject: string;
34
+ body: string;
35
+ };
36
+ paidEnded: {
37
+ subject: string;
38
+ body: string;
39
+ };
40
+ };
41
+ pricing: {
42
+ period: {
43
+ day: {
44
+ one: string;
45
+ few: string;
46
+ many: string;
47
+ other: string;
48
+ };
49
+ week: {
50
+ one: string;
51
+ few: string;
52
+ many: string;
53
+ other: string;
54
+ };
55
+ month: {
56
+ one: string;
57
+ few: string;
58
+ many: string;
59
+ other: string;
60
+ };
61
+ year: {
62
+ one: string;
63
+ few: string;
64
+ many: string;
65
+ other: string;
66
+ };
67
+ lifetime: string;
68
+ };
69
+ featured: string;
70
+ choose: string;
71
+ empty: string;
72
+ };
73
+ payment: {
74
+ title: string;
75
+ lead: string;
76
+ plansLabel: string;
77
+ orderTitle: string;
78
+ orderLead: string;
79
+ changePlan: string;
80
+ invoiceLead: string;
81
+ fields: {
82
+ name: string;
83
+ taxId: string;
84
+ address: string;
85
+ };
86
+ requestInvoice: string;
87
+ checkout: string;
88
+ pending: string;
89
+ requested: string;
90
+ checkoutSuccess: string;
91
+ checkoutCancelled: string;
92
+ lifetime: string;
93
+ };
94
+ admin: {
95
+ title: string;
96
+ lead: string;
97
+ email: string;
98
+ plan: string;
99
+ submit: string;
100
+ pending: string;
101
+ granted: string;
102
+ grantedUntil: string;
103
+ noPlans: string;
104
+ requests: {
105
+ title: string;
106
+ lead: string;
107
+ empty: string;
108
+ line: string;
109
+ requestedOn: string;
110
+ price: string;
111
+ invoice: string;
112
+ taxId: string;
113
+ noInvoice: string;
114
+ grant: string;
115
+ granting: string;
116
+ dismiss: string;
117
+ dismissing: string;
118
+ history: string;
119
+ grantLabel: string;
120
+ dismissLabel: string;
121
+ };
122
+ history: {
123
+ title: string;
124
+ lead: string;
125
+ email: string;
126
+ submit: string;
127
+ pending: string;
128
+ accountTitle: string;
129
+ empty: string;
130
+ manual: string;
131
+ fromRequest: string;
132
+ provider: string;
133
+ grantedOn: string;
134
+ grantedFor: string;
135
+ paidOn: string;
136
+ period: string;
137
+ lifetime: string;
138
+ noGrant: string;
139
+ active: string;
140
+ revokedOn: string;
141
+ paid: string;
142
+ refundedOn: string;
143
+ partlyRefunded: string;
144
+ revoke: string;
145
+ revoking: string;
146
+ revokeLabel: string;
147
+ };
148
+ };
149
+ errors: {
150
+ billing: {
151
+ read_only: string;
152
+ account_unknown: string;
153
+ end_not_in_future: string;
154
+ plan_unknown: string;
155
+ invoice_details_invalid: string;
156
+ invoice_field_required: string;
157
+ invoice_field_too_long: string;
158
+ invoice_field_control_characters: string;
159
+ payment_failed: string;
160
+ lifetime_active: string;
161
+ request_closed: string;
162
+ grant_revoked: string;
163
+ };
164
+ security: {
165
+ rate_limited: string;
166
+ };
167
+ auth: {
168
+ forbidden: string;
169
+ };
170
+ core: {
171
+ database_failed: string;
172
+ unexpected: string;
173
+ };
174
+ };
175
+ };
176
+ //# sourceMappingURL=en.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/messages/en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqJd,CAAC"}
@@ -0,0 +1,151 @@
1
+ export const en = {
2
+ badge: {
3
+ trial: "Trial",
4
+ paid: "Paid",
5
+ lifetime: "Lifetime access",
6
+ readOnly: "Read-only",
7
+ daysLeft: { one: "{count} day left", few: "{count} days left", many: "{count} days left", other: "{count} days left" },
8
+ until: "until {date}",
9
+ },
10
+ notice: {
11
+ trialEnding: "Your trial ends on {date}. Choose a plan to keep writing after that.",
12
+ paidEnding: "Your access ends on {date}. Renew it to keep writing after that.",
13
+ trialEnded: "Your trial has ended. Your data is safe and you can still read it; choose a plan to write again.",
14
+ paidEnded: "Your access has ended. Your data is safe and you can still read it; renew it to write again.",
15
+ choosePlan: "Choose a plan",
16
+ renew: "Renew access",
17
+ },
18
+ reminderMail: {
19
+ trialEnding: {
20
+ subject: "Your trial ends on {date}",
21
+ body: "Your trial ends on {date}. Choose a plan to keep writing after that; your data stays safe either way.",
22
+ },
23
+ paidEnding: {
24
+ subject: "Your access ends on {date}",
25
+ body: "Your access ends on {date}. Renew it to keep writing after that; your data stays safe either way.",
26
+ },
27
+ trialEnded: {
28
+ subject: "Your trial has ended",
29
+ body: "Your trial has ended. Your data is safe and you can still read it; choose a plan to write again.",
30
+ },
31
+ paidEnded: {
32
+ subject: "Your access has ended",
33
+ body: "Your access has ended. Your data is safe and you can still read it; renew it to write again.",
34
+ },
35
+ },
36
+ pricing: {
37
+ period: {
38
+ day: { one: "per day", few: "per {count} days", many: "per {count} days", other: "per {count} days" },
39
+ week: { one: "per week", few: "per {count} weeks", many: "per {count} weeks", other: "per {count} weeks" },
40
+ month: { one: "per month", few: "per {count} months", many: "per {count} months", other: "per {count} months" },
41
+ year: { one: "per year", few: "per {count} years", many: "per {count} years", other: "per {count} years" },
42
+ lifetime: "one-time payment",
43
+ },
44
+ featured: "Recommended",
45
+ choose: "Choose {plan}",
46
+ empty: "No plans are available yet.",
47
+ },
48
+ payment: {
49
+ title: "Choose a plan",
50
+ lead: "Pick the plan that suits you. Paid access starts when your current access ends.",
51
+ plansLabel: "Plans",
52
+ orderTitle: "Your order",
53
+ orderLead: "{plan}, {price} {period}",
54
+ changePlan: "Choose another plan",
55
+ invoiceLead: "We will send an invoice to {email}. Your access starts once it is paid.",
56
+ fields: {
57
+ name: "Name or company",
58
+ taxId: "Tax ID (optional)",
59
+ address: "Billing address",
60
+ },
61
+ requestInvoice: "Request an invoice",
62
+ checkout: "Go to payment",
63
+ pending: "Sending…",
64
+ requested: "Thank you! Your invoice request for {plan} has been sent. We will email the invoice to {email}; your access starts once it is paid.",
65
+ checkoutSuccess: "Thank you for your payment! Your access is updated as soon as the payment is confirmed, usually within a minute.",
66
+ checkoutCancelled: "The payment was cancelled and nothing was charged. You can try again or choose another plan.",
67
+ lifetime: "You have lifetime access: there is nothing left to pay for.",
68
+ },
69
+ admin: {
70
+ title: "Grant access",
71
+ lead: "Grant a plan to an account once its payment has arrived. A paid period starts when the account's current access ends.",
72
+ email: "Account email",
73
+ plan: "Plan",
74
+ submit: "Grant plan",
75
+ pending: "Granting…",
76
+ granted: "{email} now has {plan}.",
77
+ grantedUntil: "{email} now has {plan}, with access until {date}.",
78
+ noPlans: "There are no plans to grant: add them to billing({ plans }).",
79
+ requests: {
80
+ title: "Invoice requests",
81
+ lead: "Requests sent from the payment page. Grant the plan once the invoice is paid, or dismiss the request.",
82
+ empty: "No open requests.",
83
+ line: "{email} · {plan}",
84
+ requestedOn: "Requested on {date}",
85
+ price: "Price: {price}",
86
+ invoice: "Invoice to: {name}, {address}",
87
+ taxId: "Tax ID: {taxId}",
88
+ noInvoice: "No invoice details",
89
+ grant: "Grant",
90
+ granting: "Granting…",
91
+ dismiss: "Dismiss",
92
+ dismissing: "Dismissing…",
93
+ history: "History",
94
+ grantLabel: "Grant {plan} to {email}",
95
+ dismissLabel: "Dismiss the request of {email} for {plan}",
96
+ },
97
+ history: {
98
+ title: "Account history",
99
+ lead: "Find an account to see its access, the plans granted to it by hand and its payments.",
100
+ email: "Find an account by email",
101
+ submit: "Show history",
102
+ pending: "Searching…",
103
+ accountTitle: "History of {email}",
104
+ empty: "No grants or payments yet.",
105
+ manual: "{plan}, granted by hand",
106
+ fromRequest: "{plan}, granted from a request",
107
+ provider: "{plan}, paid with {provider}",
108
+ grantedOn: "Granted on {date}",
109
+ grantedFor: "Granted for {amount} on {date}",
110
+ paidOn: "Paid {amount} on {date}",
111
+ period: "Access from {from} to {to}",
112
+ lifetime: "Lifetime access",
113
+ noGrant: "Recorded before grants were stored",
114
+ active: "Active",
115
+ revokedOn: "Revoked on {date}",
116
+ paid: "Paid",
117
+ refundedOn: "Refunded on {date}",
118
+ partlyRefunded: "Paid, {amount} refunded",
119
+ revoke: "Revoke",
120
+ revoking: "Revoking…",
121
+ revokeLabel: "Revoke {plan} granted on {date}",
122
+ },
123
+ },
124
+ errors: {
125
+ billing: {
126
+ read_only: "Your account is read-only. Choose a plan to make changes.",
127
+ account_unknown: "No account has this email address.",
128
+ end_not_in_future: "The end date must be in the future.",
129
+ plan_unknown: "This plan is no longer available. Choose another one.",
130
+ invoice_details_invalid: "Check the invoice details below.",
131
+ invoice_field_required: "Fill in this field.",
132
+ invoice_field_too_long: "Use at most {max} characters.",
133
+ invoice_field_control_characters: "Remove line breaks, tabs and other control characters.",
134
+ payment_failed: "The payment could not be started. Try again in a moment.",
135
+ lifetime_active: "This account already has lifetime access: there is nothing to pay for or grant.",
136
+ request_closed: "This request was granted or dismissed already.",
137
+ grant_revoked: "This grant was revoked already.",
138
+ },
139
+ security: {
140
+ rate_limited: "Too many attempts. Try again later.",
141
+ },
142
+ auth: {
143
+ forbidden: "You are not allowed to do this.",
144
+ },
145
+ core: {
146
+ database_failed: "Something went wrong on our side. Try again in a moment.",
147
+ unexpected: "Something went wrong on our side. Try again in a moment.",
148
+ },
149
+ },
150
+ };
151
+ //# sourceMappingURL=en.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/messages/en.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,359 @@
1
+ import type { AdminActionErrorCode, BillingFormErrorCode, GrantFormErrorCode, PaymentFormErrorCode } from "../contract.js";
2
+ import { en } from "./en.js";
3
+ export type BillingMessages = typeof en;
4
+ /** Complete default dictionaries; apps pass partial overrides per locale. */
5
+ export declare const billingMessages: {
6
+ en: {
7
+ badge: {
8
+ trial: string;
9
+ paid: string;
10
+ lifetime: string;
11
+ readOnly: string;
12
+ daysLeft: {
13
+ one: string;
14
+ few: string;
15
+ many: string;
16
+ other: string;
17
+ };
18
+ until: string;
19
+ };
20
+ notice: {
21
+ trialEnding: string;
22
+ paidEnding: string;
23
+ trialEnded: string;
24
+ paidEnded: string;
25
+ choosePlan: string;
26
+ renew: string;
27
+ };
28
+ reminderMail: {
29
+ trialEnding: {
30
+ subject: string;
31
+ body: string;
32
+ };
33
+ paidEnding: {
34
+ subject: string;
35
+ body: string;
36
+ };
37
+ trialEnded: {
38
+ subject: string;
39
+ body: string;
40
+ };
41
+ paidEnded: {
42
+ subject: string;
43
+ body: string;
44
+ };
45
+ };
46
+ pricing: {
47
+ period: {
48
+ day: {
49
+ one: string;
50
+ few: string;
51
+ many: string;
52
+ other: string;
53
+ };
54
+ week: {
55
+ one: string;
56
+ few: string;
57
+ many: string;
58
+ other: string;
59
+ };
60
+ month: {
61
+ one: string;
62
+ few: string;
63
+ many: string;
64
+ other: string;
65
+ };
66
+ year: {
67
+ one: string;
68
+ few: string;
69
+ many: string;
70
+ other: string;
71
+ };
72
+ lifetime: string;
73
+ };
74
+ featured: string;
75
+ choose: string;
76
+ empty: string;
77
+ };
78
+ payment: {
79
+ title: string;
80
+ lead: string;
81
+ plansLabel: string;
82
+ orderTitle: string;
83
+ orderLead: string;
84
+ changePlan: string;
85
+ invoiceLead: string;
86
+ fields: {
87
+ name: string;
88
+ taxId: string;
89
+ address: string;
90
+ };
91
+ requestInvoice: string;
92
+ checkout: string;
93
+ pending: string;
94
+ requested: string;
95
+ checkoutSuccess: string;
96
+ checkoutCancelled: string;
97
+ lifetime: string;
98
+ };
99
+ admin: {
100
+ title: string;
101
+ lead: string;
102
+ email: string;
103
+ plan: string;
104
+ submit: string;
105
+ pending: string;
106
+ granted: string;
107
+ grantedUntil: string;
108
+ noPlans: string;
109
+ requests: {
110
+ title: string;
111
+ lead: string;
112
+ empty: string;
113
+ line: string;
114
+ requestedOn: string;
115
+ price: string;
116
+ invoice: string;
117
+ taxId: string;
118
+ noInvoice: string;
119
+ grant: string;
120
+ granting: string;
121
+ dismiss: string;
122
+ dismissing: string;
123
+ history: string;
124
+ grantLabel: string;
125
+ dismissLabel: string;
126
+ };
127
+ history: {
128
+ title: string;
129
+ lead: string;
130
+ email: string;
131
+ submit: string;
132
+ pending: string;
133
+ accountTitle: string;
134
+ empty: string;
135
+ manual: string;
136
+ fromRequest: string;
137
+ provider: string;
138
+ grantedOn: string;
139
+ grantedFor: string;
140
+ paidOn: string;
141
+ period: string;
142
+ lifetime: string;
143
+ noGrant: string;
144
+ active: string;
145
+ revokedOn: string;
146
+ paid: string;
147
+ refundedOn: string;
148
+ partlyRefunded: string;
149
+ revoke: string;
150
+ revoking: string;
151
+ revokeLabel: string;
152
+ };
153
+ };
154
+ errors: {
155
+ billing: {
156
+ read_only: string;
157
+ account_unknown: string;
158
+ end_not_in_future: string;
159
+ plan_unknown: string;
160
+ invoice_details_invalid: string;
161
+ invoice_field_required: string;
162
+ invoice_field_too_long: string;
163
+ invoice_field_control_characters: string;
164
+ payment_failed: string;
165
+ lifetime_active: string;
166
+ request_closed: string;
167
+ grant_revoked: string;
168
+ };
169
+ security: {
170
+ rate_limited: string;
171
+ };
172
+ auth: {
173
+ forbidden: string;
174
+ };
175
+ core: {
176
+ database_failed: string;
177
+ unexpected: string;
178
+ };
179
+ };
180
+ };
181
+ pl: {
182
+ badge: {
183
+ trial: string;
184
+ paid: string;
185
+ lifetime: string;
186
+ readOnly: string;
187
+ daysLeft: {
188
+ one: string;
189
+ few: string;
190
+ many: string;
191
+ other: string;
192
+ };
193
+ until: string;
194
+ };
195
+ notice: {
196
+ trialEnding: string;
197
+ paidEnding: string;
198
+ trialEnded: string;
199
+ paidEnded: string;
200
+ choosePlan: string;
201
+ renew: string;
202
+ };
203
+ reminderMail: {
204
+ trialEnding: {
205
+ subject: string;
206
+ body: string;
207
+ };
208
+ paidEnding: {
209
+ subject: string;
210
+ body: string;
211
+ };
212
+ trialEnded: {
213
+ subject: string;
214
+ body: string;
215
+ };
216
+ paidEnded: {
217
+ subject: string;
218
+ body: string;
219
+ };
220
+ };
221
+ pricing: {
222
+ period: {
223
+ day: {
224
+ one: string;
225
+ few: string;
226
+ many: string;
227
+ other: string;
228
+ };
229
+ week: {
230
+ one: string;
231
+ few: string;
232
+ many: string;
233
+ other: string;
234
+ };
235
+ month: {
236
+ one: string;
237
+ few: string;
238
+ many: string;
239
+ other: string;
240
+ };
241
+ year: {
242
+ one: string;
243
+ few: string;
244
+ many: string;
245
+ other: string;
246
+ };
247
+ lifetime: string;
248
+ };
249
+ featured: string;
250
+ choose: string;
251
+ empty: string;
252
+ };
253
+ payment: {
254
+ title: string;
255
+ lead: string;
256
+ plansLabel: string;
257
+ orderTitle: string;
258
+ orderLead: string;
259
+ changePlan: string;
260
+ invoiceLead: string;
261
+ fields: {
262
+ name: string;
263
+ taxId: string;
264
+ address: string;
265
+ };
266
+ requestInvoice: string;
267
+ checkout: string;
268
+ pending: string;
269
+ requested: string;
270
+ checkoutSuccess: string;
271
+ checkoutCancelled: string;
272
+ lifetime: string;
273
+ };
274
+ admin: {
275
+ title: string;
276
+ lead: string;
277
+ email: string;
278
+ plan: string;
279
+ submit: string;
280
+ pending: string;
281
+ granted: string;
282
+ grantedUntil: string;
283
+ noPlans: string;
284
+ requests: {
285
+ title: string;
286
+ lead: string;
287
+ empty: string;
288
+ line: string;
289
+ requestedOn: string;
290
+ price: string;
291
+ invoice: string;
292
+ taxId: string;
293
+ noInvoice: string;
294
+ grant: string;
295
+ granting: string;
296
+ dismiss: string;
297
+ dismissing: string;
298
+ history: string;
299
+ grantLabel: string;
300
+ dismissLabel: string;
301
+ };
302
+ history: {
303
+ title: string;
304
+ lead: string;
305
+ email: string;
306
+ submit: string;
307
+ pending: string;
308
+ accountTitle: string;
309
+ empty: string;
310
+ manual: string;
311
+ fromRequest: string;
312
+ provider: string;
313
+ grantedOn: string;
314
+ grantedFor: string;
315
+ paidOn: string;
316
+ period: string;
317
+ lifetime: string;
318
+ noGrant: string;
319
+ active: string;
320
+ revokedOn: string;
321
+ paid: string;
322
+ refundedOn: string;
323
+ partlyRefunded: string;
324
+ revoke: string;
325
+ revoking: string;
326
+ revokeLabel: string;
327
+ };
328
+ };
329
+ errors: {
330
+ billing: {
331
+ read_only: string;
332
+ account_unknown: string;
333
+ end_not_in_future: string;
334
+ plan_unknown: string;
335
+ invoice_details_invalid: string;
336
+ invoice_field_required: string;
337
+ invoice_field_too_long: string;
338
+ invoice_field_control_characters: string;
339
+ payment_failed: string;
340
+ lifetime_active: string;
341
+ request_closed: string;
342
+ grant_revoked: string;
343
+ };
344
+ security: {
345
+ rate_limited: string;
346
+ };
347
+ auth: {
348
+ forbidden: string;
349
+ };
350
+ core: {
351
+ database_failed: string;
352
+ unexpected: string;
353
+ };
354
+ };
355
+ };
356
+ };
357
+ /** The copy for an error code; an unknown code gets the generic failure. */
358
+ export declare function getBillingErrorMessage(messages: BillingMessages, code: BillingFormErrorCode | PaymentFormErrorCode | GrantFormErrorCode | AdminActionErrorCode): string;
359
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3H,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAG7B,MAAM,MAAM,eAAe,GAAG,OAAO,EAAE,CAAC;AAExC,6EAA6E;AAC7E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAC;AAE1C,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,MAAM,CAOvK"}