@owlmeans/payment 0.1.18-rc.9 → 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.
- package/README.md +95 -57
- package/agent-meta/manifest.json +10 -3
- package/agent-meta/skills/entitlements/SKILL.md +159 -0
- package/agent-meta/skills/payment/SKILL.md +491 -28
- package/build/advertise.d.ts +2 -0
- package/build/advertise.d.ts.map +1 -0
- package/build/advertise.js +10 -0
- package/build/advertise.js.map +1 -0
- package/build/checkout/consts.d.ts +2 -0
- package/build/checkout/consts.d.ts.map +1 -0
- package/build/checkout/consts.js +2 -0
- package/build/checkout/consts.js.map +1 -0
- package/build/checkout/index.d.ts +6 -0
- package/build/checkout/index.d.ts.map +1 -0
- package/build/checkout/index.js +4 -0
- package/build/checkout/index.js.map +1 -0
- package/build/checkout/narrow/types.d.ts +25 -0
- package/build/checkout/narrow/types.d.ts.map +1 -0
- package/build/checkout/narrow/types.js +2 -0
- package/build/checkout/narrow/types.js.map +1 -0
- package/build/checkout/narrow.d.ts +8 -0
- package/build/checkout/narrow.d.ts.map +1 -0
- package/build/checkout/narrow.js +47 -0
- package/build/checkout/narrow.js.map +1 -0
- package/build/checkout/protocols.d.ts +8 -0
- package/build/checkout/protocols.d.ts.map +1 -0
- package/build/checkout/protocols.js +28 -0
- package/build/checkout/protocols.js.map +1 -0
- package/build/checkout/types.d.ts +29 -0
- package/build/checkout/types.d.ts.map +1 -0
- package/build/checkout/types.js +2 -0
- package/build/checkout/types.js.map +1 -0
- package/build/consts.d.ts +242 -25
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +377 -24
- package/build/consts.js.map +1 -1
- package/build/consts.local.d.ts +20 -0
- package/build/consts.local.d.ts.map +1 -0
- package/build/consts.local.js +23 -0
- package/build/consts.local.js.map +1 -0
- package/build/consumer/cancel.d.ts +11 -0
- package/build/consumer/cancel.d.ts.map +1 -0
- package/build/consumer/cancel.js +33 -0
- package/build/consumer/cancel.js.map +1 -0
- package/build/consumer/consts.d.ts +20 -0
- package/build/consumer/consts.d.ts.map +1 -0
- package/build/consumer/consts.js +39 -0
- package/build/consumer/consts.js.map +1 -0
- package/build/consumer/consts.local.d.ts +7 -0
- package/build/consumer/consts.local.d.ts.map +1 -0
- package/build/consumer/consts.local.js +13 -0
- package/build/consumer/consts.local.js.map +1 -0
- package/build/consumer/copy/types.d.ts +56 -0
- package/build/consumer/copy/types.d.ts.map +1 -0
- package/build/consumer/copy/types.js +2 -0
- package/build/consumer/copy/types.js.map +1 -0
- package/build/consumer/copy.d.ts +22 -0
- package/build/consumer/copy.d.ts.map +1 -0
- package/build/consumer/copy.js +87 -0
- package/build/consumer/copy.js.map +1 -0
- package/build/consumer/deadline/types.d.ts +30 -0
- package/build/consumer/deadline/types.d.ts.map +1 -0
- package/build/consumer/deadline/types.js +2 -0
- package/build/consumer/deadline/types.js.map +1 -0
- package/build/consumer/deadline.d.ts +12 -0
- package/build/consumer/deadline.d.ts.map +1 -0
- package/build/consumer/deadline.js +44 -0
- package/build/consumer/deadline.js.map +1 -0
- package/build/consumer/fifo/types.d.ts +17 -0
- package/build/consumer/fifo/types.d.ts.map +1 -0
- package/build/consumer/fifo/types.js +2 -0
- package/build/consumer/fifo/types.js.map +1 -0
- package/build/consumer/fifo.d.ts +4 -0
- package/build/consumer/fifo.d.ts.map +1 -0
- package/build/consumer/fifo.js +34 -0
- package/build/consumer/fifo.js.map +1 -0
- package/build/consumer/index.d.ts +18 -0
- package/build/consumer/index.d.ts.map +1 -0
- package/build/consumer/index.js +11 -0
- package/build/consumer/index.js.map +1 -0
- package/build/consumer/policy/types.d.ts +20 -0
- package/build/consumer/policy/types.d.ts.map +1 -0
- package/build/consumer/policy/types.js +2 -0
- package/build/consumer/policy/types.js.map +1 -0
- package/build/consumer/policy.d.ts +17 -0
- package/build/consumer/policy.d.ts.map +1 -0
- package/build/consumer/policy.js +91 -0
- package/build/consumer/policy.js.map +1 -0
- package/build/consumer/protocols.d.ts +20 -0
- package/build/consumer/protocols.d.ts.map +1 -0
- package/build/consumer/protocols.js +70 -0
- package/build/consumer/protocols.js.map +1 -0
- package/build/consumer/refund/types.d.ts +27 -0
- package/build/consumer/refund/types.d.ts.map +1 -0
- package/build/consumer/refund/types.js +2 -0
- package/build/consumer/refund/types.js.map +1 -0
- package/build/consumer/refund.d.ts +9 -0
- package/build/consumer/refund.d.ts.map +1 -0
- package/build/consumer/refund.js +112 -0
- package/build/consumer/refund.js.map +1 -0
- package/build/consumer/refusal.d.ts +10 -0
- package/build/consumer/refusal.d.ts.map +1 -0
- package/build/consumer/refusal.js +35 -0
- package/build/consumer/refusal.js.map +1 -0
- package/build/consumer/revive/types.d.ts +19 -0
- package/build/consumer/revive/types.d.ts.map +1 -0
- package/build/consumer/revive/types.js +2 -0
- package/build/consumer/revive/types.js.map +1 -0
- package/build/consumer/revive.d.ts +13 -0
- package/build/consumer/revive.d.ts.map +1 -0
- package/build/consumer/revive.js +43 -0
- package/build/consumer/revive.js.map +1 -0
- package/build/consumer/types.d.ts +196 -0
- package/build/consumer/types.d.ts.map +1 -0
- package/build/consumer/types.js +2 -0
- package/build/consumer/types.js.map +1 -0
- package/build/consumer/types.local.d.ts +11 -0
- package/build/consumer/types.local.d.ts.map +1 -0
- package/build/consumer/types.local.js +2 -0
- package/build/consumer/types.local.js.map +1 -0
- package/build/countries.d.ts +3 -0
- package/build/countries.d.ts.map +1 -0
- package/build/countries.js +4 -0
- package/build/countries.js.map +1 -0
- package/build/entitled.d.ts +14 -0
- package/build/entitled.d.ts.map +1 -0
- package/build/entitled.js +17 -0
- package/build/entitled.js.map +1 -0
- package/build/entitlement/types.d.ts +29 -0
- package/build/entitlement/types.d.ts.map +1 -0
- package/build/entitlement/types.js +2 -0
- package/build/entitlement/types.js.map +1 -0
- package/build/entitlement.d.ts +7 -55
- package/build/entitlement.d.ts.map +1 -1
- package/build/entitlement.js +55 -86
- package/build/entitlement.js.map +1 -1
- package/build/errors.d.ts +189 -0
- package/build/errors.d.ts.map +1 -1
- package/build/errors.js +361 -0
- package/build/errors.js.map +1 -1
- package/build/estimate/types.d.ts +34 -0
- package/build/estimate/types.d.ts.map +1 -0
- package/build/estimate/types.js +2 -0
- package/build/estimate/types.js.map +1 -0
- package/build/estimate.d.ts +11 -0
- package/build/estimate.d.ts.map +1 -0
- package/build/estimate.js +76 -0
- package/build/estimate.js.map +1 -0
- package/build/i18n/consumer-rights/be.json +131 -0
- package/build/i18n/consumer-rights/de.json +131 -0
- package/build/i18n/consumer-rights/en.json +131 -0
- package/build/i18n/consumer-rights/es.json +131 -0
- package/build/i18n/consumer-rights/fr.json +131 -0
- package/build/i18n/consumer-rights/pl.json +131 -0
- package/build/i18n/consumer-rights/ru.json +131 -0
- package/build/i18n/consumer-rights/uk.json +131 -0
- package/build/i18n/errors/be.json +30 -0
- package/build/i18n/errors/de.json +30 -0
- package/build/i18n/errors/en.json +30 -0
- package/build/i18n/errors/es.json +30 -0
- package/build/i18n/errors/fr.json +30 -0
- package/build/i18n/errors/pl.json +30 -0
- package/build/i18n/errors/ru.json +30 -0
- package/build/i18n/errors/uk.json +30 -0
- package/build/i18n/fr.json +39 -0
- package/build/i18n.js +53 -8
- package/build/i18n.js.map +1 -1
- package/build/index.d.ts +18 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +11 -1
- package/build/index.js.map +1 -1
- package/build/limit/types.d.ts +44 -0
- package/build/limit/types.d.ts.map +1 -0
- package/build/limit/types.js +2 -0
- package/build/limit/types.js.map +1 -0
- package/build/limit.d.ts +23 -0
- package/build/limit.d.ts.map +1 -0
- package/build/limit.js +97 -0
- package/build/limit.js.map +1 -0
- package/build/model/checkout.d.ts +2 -3
- package/build/model/checkout.d.ts.map +1 -1
- package/build/model/checkout.js +12 -7
- package/build/model/checkout.js.map +1 -1
- package/build/model/consts.d.ts +15 -0
- package/build/model/consts.d.ts.map +1 -0
- package/build/model/consts.js +193 -0
- package/build/model/consts.js.map +1 -0
- package/build/model/consts.local.d.ts +35 -0
- package/build/model/consts.local.d.ts.map +1 -0
- package/build/model/consts.local.js +65 -0
- package/build/model/consts.local.js.map +1 -0
- package/build/model/consumer.d.ts +23 -0
- package/build/model/consumer.d.ts.map +1 -0
- package/build/model/consumer.js +272 -0
- package/build/model/consumer.js.map +1 -0
- package/build/model/estimate.d.ts +5 -0
- package/build/model/estimate.d.ts.map +1 -0
- package/build/model/estimate.js +69 -0
- package/build/model/estimate.js.map +1 -0
- package/build/model/index.d.ts +7 -2
- package/build/model/index.d.ts.map +1 -1
- package/build/model/index.js +7 -2
- package/build/model/index.js.map +1 -1
- package/build/model/limit.d.ts +7 -0
- package/build/model/limit.d.ts.map +1 -0
- package/build/model/limit.js +32 -0
- package/build/model/limit.js.map +1 -0
- package/build/model/plan.d.ts.map +1 -1
- package/build/model/plan.js +24 -11
- package/build/model/plan.js.map +1 -1
- package/build/model/portal.d.ts +4 -0
- package/build/model/portal.d.ts.map +1 -0
- package/build/model/portal.js +22 -0
- package/build/model/portal.js.map +1 -0
- package/build/model/pricing.d.ts +4 -0
- package/build/model/pricing.d.ts.map +1 -0
- package/build/model/pricing.js +31 -0
- package/build/model/pricing.js.map +1 -0
- package/build/model/view.d.ts +3 -0
- package/build/model/view.d.ts.map +1 -0
- package/build/model/view.js +15 -0
- package/build/model/view.js.map +1 -0
- package/build/pricing/types.d.ts +13 -0
- package/build/pricing/types.d.ts.map +1 -0
- package/build/pricing/types.js +2 -0
- package/build/pricing/types.js.map +1 -0
- package/build/pricing.d.ts +13 -0
- package/build/pricing.d.ts.map +1 -0
- package/build/pricing.js +74 -0
- package/build/pricing.js.map +1 -0
- package/build/promo/types.d.ts +14 -0
- package/build/promo/types.d.ts.map +1 -0
- package/build/promo/types.js +2 -0
- package/build/promo/types.js.map +1 -0
- package/build/promo.d.ts +7 -0
- package/build/promo.d.ts.map +1 -0
- package/build/promo.js +25 -0
- package/build/promo.js.map +1 -0
- package/build/regions/types.d.ts +32 -0
- package/build/regions/types.d.ts.map +1 -0
- package/build/regions/types.js +2 -0
- package/build/regions/types.js.map +1 -0
- package/build/regions.d.ts +15 -0
- package/build/regions.d.ts.map +1 -0
- package/build/regions.js +43 -0
- package/build/regions.js.map +1 -0
- package/build/service.d.ts.map +1 -1
- package/build/service.js +24 -9
- package/build/service.js.map +1 -1
- package/build/types.d.ts +619 -52
- package/build/types.d.ts.map +1 -1
- package/build/types.local.d.ts +4 -0
- package/build/types.local.d.ts.map +1 -0
- package/build/types.local.js +2 -0
- package/build/types.local.js.map +1 -0
- package/build/view/types.d.ts +33 -0
- package/build/view/types.d.ts.map +1 -0
- package/build/view/types.js +2 -0
- package/build/view/types.js.map +1 -0
- package/build/view.d.ts +13 -0
- package/build/view.d.ts.map +1 -0
- package/build/view.js +78 -0
- package/build/view.js.map +1 -0
- package/package.json +14 -12
- package/src/advertise.ts +13 -0
- package/src/checkout/consts.ts +1 -0
- package/src/checkout/index.ts +5 -0
- package/src/checkout/narrow/types.ts +27 -0
- package/src/checkout/narrow.ts +63 -0
- package/src/checkout/protocols.ts +39 -0
- package/src/checkout/types.ts +27 -0
- package/src/consts.local.ts +34 -0
- package/src/consts.ts +417 -24
- package/src/consumer/cancel.ts +40 -0
- package/src/consumer/consts.local.ts +16 -0
- package/src/consumer/consts.ts +46 -0
- package/src/consumer/copy/types.ts +54 -0
- package/src/consumer/copy.ts +121 -0
- package/src/consumer/deadline/types.ts +30 -0
- package/src/consumer/deadline.ts +61 -0
- package/src/consumer/fifo/types.ts +17 -0
- package/src/consumer/fifo.ts +42 -0
- package/src/consumer/index.ts +17 -0
- package/src/consumer/policy/types.ts +20 -0
- package/src/consumer/policy.ts +101 -0
- package/src/consumer/protocols.ts +116 -0
- package/src/consumer/refund/types.ts +27 -0
- package/src/consumer/refund.ts +136 -0
- package/src/consumer/refusal.ts +35 -0
- package/src/consumer/revive/types.ts +23 -0
- package/src/consumer/revive.ts +82 -0
- package/src/consumer/types.local.ts +10 -0
- package/src/consumer/types.ts +189 -0
- package/src/countries.ts +5 -0
- package/src/entitled.ts +20 -0
- package/src/entitlement/types.ts +29 -0
- package/src/entitlement.ts +67 -103
- package/src/errors.ts +445 -0
- package/src/estimate/types.ts +34 -0
- package/src/estimate.ts +90 -0
- package/src/i18n/consumer-rights/be.json +131 -0
- package/src/i18n/consumer-rights/de.json +131 -0
- package/src/i18n/consumer-rights/en.json +131 -0
- package/src/i18n/consumer-rights/es.json +131 -0
- package/src/i18n/consumer-rights/fr.json +131 -0
- package/src/i18n/consumer-rights/pl.json +131 -0
- package/src/i18n/consumer-rights/ru.json +131 -0
- package/src/i18n/consumer-rights/uk.json +131 -0
- package/src/i18n/errors/be.json +30 -0
- package/src/i18n/errors/de.json +30 -0
- package/src/i18n/errors/en.json +30 -0
- package/src/i18n/errors/es.json +30 -0
- package/src/i18n/errors/fr.json +30 -0
- package/src/i18n/errors/pl.json +30 -0
- package/src/i18n/errors/ru.json +30 -0
- package/src/i18n/errors/uk.json +30 -0
- package/src/i18n/fr.json +39 -0
- package/src/i18n.ts +58 -8
- package/src/index.ts +18 -2
- package/src/limit/types.ts +41 -0
- package/src/limit.ts +132 -0
- package/src/model/checkout.ts +12 -7
- package/src/model/consts.local.ts +83 -0
- package/src/model/consts.ts +206 -0
- package/src/model/consumer.ts +294 -0
- package/src/model/estimate.ts +73 -0
- package/src/model/index.ts +7 -2
- package/src/model/limit.ts +36 -0
- package/src/model/plan.ts +25 -12
- package/src/model/portal.ts +25 -0
- package/src/model/pricing.ts +34 -0
- package/src/model/view.ts +17 -0
- package/src/pricing/types.ts +13 -0
- package/src/pricing.ts +110 -0
- package/src/promo/types.ts +18 -0
- package/src/promo.ts +46 -0
- package/src/regions/types.ts +42 -0
- package/src/regions.ts +85 -0
- package/src/service.ts +32 -15
- package/src/types.local.ts +5 -0
- package/src/types.ts +669 -49
- package/src/view/types.ts +39 -0
- package/src/view.ts +119 -0
- package/tests/checkout-narrow.spec.ts +75 -0
- package/tests/consumer-copy.spec.ts +378 -0
- package/tests/consumer-deadline.spec.ts +85 -0
- package/tests/consumer-fifo.spec.ts +61 -0
- package/tests/consumer-protocols.spec.ts +103 -0
- package/tests/consumer-refund.spec.ts +134 -0
- package/tests/consumer-regions.spec.ts +140 -0
- package/tests/consumer-wire.spec.ts +170 -0
- package/tests/contract.spec.ts +183 -0
- package/tests/entitlement.spec.ts +38 -25
- package/tests/errors.spec.ts +168 -0
- package/tests/estimate.spec.ts +139 -0
- package/tests/limit.spec.ts +117 -0
- package/tests/pricing.spec.ts +30 -0
- package/tests/view.spec.ts +130 -0
- package/build/.gitkeep +0 -0
- package/src/model/subscription.ts +0 -63
- package/src/model/utils.ts +0 -32
- package/src/modules.ts +0 -43
- package/tests/entitlement.spec.d.ts +0 -2
- package/tests/entitlement.spec.d.ts.map +0 -1
- package/tests/entitlement.spec.js +0 -72
- package/tests/entitlement.spec.js.map +0 -1
package/build/errors.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { ResilientError } from '@owlmeans/error';
|
|
2
|
+
import { AuthForbidden } from '@owlmeans/auth';
|
|
3
|
+
import type { BillingCountryLockedDetails, CheckoutLimitExceededDetails, LimitExhaustedDetails, PerformanceConsentRequiredDetails } from './types.js';
|
|
2
4
|
export declare class PaymentError extends ResilientError {
|
|
3
5
|
static typeName: string;
|
|
4
6
|
constructor(message?: string);
|
|
@@ -15,6 +17,17 @@ export declare class PaygateMappingError extends PaygateError {
|
|
|
15
17
|
static typeName: string;
|
|
16
18
|
constructor(message?: string);
|
|
17
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* A webhook delivery whose signature is missing or verifies against no known secret. The sender is
|
|
22
|
+
* refused as a client error (400): a forged or unsigned POST at a public hook is not a server fault,
|
|
23
|
+
* and answering 500 would page operators for it and invite the sender to retry it.
|
|
24
|
+
*/
|
|
25
|
+
export declare class PaygateSignatureError extends PaygateError {
|
|
26
|
+
static typeName: string;
|
|
27
|
+
/** Read by the HTTP boundary (`server-api` `declaredErrorStatus`). */
|
|
28
|
+
static httpStatus: number;
|
|
29
|
+
constructor();
|
|
30
|
+
}
|
|
18
31
|
export declare class ProductError extends PaymentError {
|
|
19
32
|
static typeName: string;
|
|
20
33
|
constructor(message?: string);
|
|
@@ -39,4 +52,180 @@ export declare class UnknownSubscription extends SubscriptionError {
|
|
|
39
52
|
static typeName: string;
|
|
40
53
|
constructor(message?: string);
|
|
41
54
|
}
|
|
55
|
+
export declare class LimitUnknown extends ProductError {
|
|
56
|
+
static typeName: string;
|
|
57
|
+
constructor(message?: string);
|
|
58
|
+
}
|
|
59
|
+
export declare class LimitMisdeclared extends ProductError {
|
|
60
|
+
static typeName: string;
|
|
61
|
+
constructor(message?: string);
|
|
62
|
+
}
|
|
63
|
+
export declare class PlanRequired extends ProductError {
|
|
64
|
+
static typeName: string;
|
|
65
|
+
constructor(message?: string);
|
|
66
|
+
}
|
|
67
|
+
export declare class PlanRankConflict extends ProductError {
|
|
68
|
+
static typeName: string;
|
|
69
|
+
constructor(message?: string);
|
|
70
|
+
}
|
|
71
|
+
export declare class WebhookSetupError extends PaygateError {
|
|
72
|
+
static typeName: string;
|
|
73
|
+
constructor(message?: string);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The entity has nothing the requested portal flow can act on — no paygate customer, no entitling
|
|
77
|
+
* subscription, no plan or item to change to. The entity's own state, not a fault: an HTTP boundary
|
|
78
|
+
* that honours `httpStatus` (`@owlmeans/server-api`) answers 409 Conflict.
|
|
79
|
+
*/
|
|
80
|
+
export declare class PortalUnavailable extends PaygateError {
|
|
81
|
+
static typeName: string;
|
|
82
|
+
static httpStatus: number;
|
|
83
|
+
constructor(message?: string);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The entity's plan does not allow the request.
|
|
87
|
+
*
|
|
88
|
+
* Extends `AuthForbidden` so an HTTP boundary answers 403, never 500. Only `type` and `message`
|
|
89
|
+
* survive a marshal round trip, so each subclass packs its fields into the message and rebuilds
|
|
90
|
+
* them in `finalizeUnmarshal()`.
|
|
91
|
+
*/
|
|
92
|
+
export declare class EntitlementRefusal extends AuthForbidden {
|
|
93
|
+
static typeName: string;
|
|
94
|
+
constructor(message?: string);
|
|
95
|
+
}
|
|
96
|
+
/** None of the capability parameters (OR'd) is granted. Message marker `capability-required:<a|b>`. */
|
|
97
|
+
export declare class CapabilityRequired extends EntitlementRefusal {
|
|
98
|
+
static typeName: string;
|
|
99
|
+
/** The refused parameters, as the gate took them. */
|
|
100
|
+
params: string[];
|
|
101
|
+
constructor(params?: string | string[]);
|
|
102
|
+
private applyFields;
|
|
103
|
+
finalizeUnmarshal(): void;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* A limit has no room left. Message marker `limit-exhausted:<key>:<used>/<limit>[:<resetsAt ISO>]`.
|
|
107
|
+
*/
|
|
108
|
+
export declare class LimitExhausted extends EntitlementRefusal {
|
|
109
|
+
static typeName: string;
|
|
110
|
+
limitKey: string;
|
|
111
|
+
used: number;
|
|
112
|
+
limit: number;
|
|
113
|
+
resetsAt?: Date;
|
|
114
|
+
/** The packed marker body of a refusal. */
|
|
115
|
+
static encode(details: LimitExhaustedDetails): string;
|
|
116
|
+
constructor(details: LimitExhaustedDetails);
|
|
117
|
+
/** A packed marker body (`LimitExhausted.encode`) or a marshaled message — the error registry's path. */
|
|
118
|
+
constructor(message: string);
|
|
119
|
+
private applyFields;
|
|
120
|
+
finalizeUnmarshal(): void;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* A consumer-rights fault — a misdeclared policy (`policy:<field>`), a missing usage meter or
|
|
124
|
+
* mailer, a copy template without a value (`copy:<path>`). Declares no status: 500.
|
|
125
|
+
*/
|
|
126
|
+
export declare class ConsumerRightsError extends PaymentError {
|
|
127
|
+
static typeName: string;
|
|
128
|
+
constructor(message?: string);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* The consumer's own position refuses the request — never a fault. Deliberately NOT an
|
|
132
|
+
* `AuthForbidden`: an HTTP boundary tests that family first, and a 403 would hide the declared
|
|
133
|
+
* 428/409 a client acts on.
|
|
134
|
+
*/
|
|
135
|
+
export declare class ConsumerRightsRefusal extends ConsumerRightsError {
|
|
136
|
+
static typeName: string;
|
|
137
|
+
constructor(message?: string);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Billed work would spend credits of a purchase still inside its withdrawal window, and the
|
|
141
|
+
* consumer has not expressly requested performance. HTTP 428. Marker
|
|
142
|
+
* `performance-consent-required:<pending>[:<deadline ISO>]`.
|
|
143
|
+
*/
|
|
144
|
+
export declare class PerformanceConsentRequired extends ConsumerRightsRefusal {
|
|
145
|
+
static typeName: string;
|
|
146
|
+
static httpStatus: number;
|
|
147
|
+
pending: number;
|
|
148
|
+
deadline?: Date;
|
|
149
|
+
static encode(details: PerformanceConsentRequiredDetails): string;
|
|
150
|
+
constructor(details: PerformanceConsentRequiredDetails);
|
|
151
|
+
/** A packed marker body (`encode`) or a marshaled message — the error registry's path. */
|
|
152
|
+
constructor(message: string);
|
|
153
|
+
private applyFields;
|
|
154
|
+
finalizeUnmarshal(): void;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* A subscription checkout needs a fresh express start request bound to this plan. HTTP 428.
|
|
158
|
+
* Marker `subscription-start-required:<encodeURIComponent(planSku)>`.
|
|
159
|
+
*/
|
|
160
|
+
export declare class SubscriptionStartRequired extends ConsumerRightsRefusal {
|
|
161
|
+
static typeName: string;
|
|
162
|
+
static httpStatus: number;
|
|
163
|
+
planSku: string;
|
|
164
|
+
static encode(planSku: string): string;
|
|
165
|
+
/** `planSku` as is, or a packed marker body / marshaled message (the registry's path). */
|
|
166
|
+
constructor(planSku?: string | {
|
|
167
|
+
planSku: string;
|
|
168
|
+
});
|
|
169
|
+
/** A string that already is a marker (the registry path) passes through unencoded. */
|
|
170
|
+
private static encodeLoose;
|
|
171
|
+
private applyFields;
|
|
172
|
+
finalizeUnmarshal(): void;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* The entity's billing country is fixed and the request declared another. HTTP 409. Marker
|
|
176
|
+
* `billing-country-locked:<country>[:<requested>]`.
|
|
177
|
+
*/
|
|
178
|
+
export declare class BillingCountryLocked extends ConsumerRightsRefusal {
|
|
179
|
+
static typeName: string;
|
|
180
|
+
static httpStatus: number;
|
|
181
|
+
country: string;
|
|
182
|
+
requested?: string;
|
|
183
|
+
static encode(details: BillingCountryLockedDetails): string;
|
|
184
|
+
constructor(details: BillingCountryLockedDetails);
|
|
185
|
+
constructor(message: string);
|
|
186
|
+
private applyFields;
|
|
187
|
+
finalizeUnmarshal(): void;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* The named purchase cannot be withdrawn from (`WithdrawalUnavailableReason`). HTTP 409. Marker
|
|
191
|
+
* `withdrawal-unavailable:<reason>`. Never raised on the public page, which discloses nothing.
|
|
192
|
+
*/
|
|
193
|
+
export declare class WithdrawalUnavailable extends ConsumerRightsRefusal {
|
|
194
|
+
static typeName: string;
|
|
195
|
+
static httpStatus: number;
|
|
196
|
+
reason: string;
|
|
197
|
+
constructor(reason?: string);
|
|
198
|
+
private applyFields;
|
|
199
|
+
finalizeUnmarshal(): void;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Nothing to cancel in-app (`CancellationUnavailableReason`). HTTP 409. Marker
|
|
203
|
+
* `cancellation-unavailable:<reason>`.
|
|
204
|
+
*/
|
|
205
|
+
export declare class CancellationUnavailable extends ConsumerRightsRefusal {
|
|
206
|
+
static typeName: string;
|
|
207
|
+
static httpStatus: number;
|
|
208
|
+
reason: string;
|
|
209
|
+
constructor(reason?: string);
|
|
210
|
+
private applyFields;
|
|
211
|
+
finalizeUnmarshal(): void;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* The amount is above what this entity may buy now (a narrowing of the plan's policy). HTTP 409.
|
|
215
|
+
* Marker `checkout-limit-exceeded:<encodeURIComponent(reason)>:<maximumMinor>:<currency>[:<ISO>]`.
|
|
216
|
+
* A payment refusal, not a consumer-rights one.
|
|
217
|
+
*/
|
|
218
|
+
export declare class CheckoutLimitExceeded extends PaymentError {
|
|
219
|
+
static typeName: string;
|
|
220
|
+
static httpStatus: number;
|
|
221
|
+
reason: string;
|
|
222
|
+
maximumMinor: number;
|
|
223
|
+
currency: string;
|
|
224
|
+
resetsAt?: Date;
|
|
225
|
+
static encode(details: CheckoutLimitExceededDetails): string;
|
|
226
|
+
constructor(details: CheckoutLimitExceededDetails);
|
|
227
|
+
constructor(message: string);
|
|
228
|
+
private applyFields;
|
|
229
|
+
finalizeUnmarshal(): void;
|
|
230
|
+
}
|
|
42
231
|
//# sourceMappingURL=errors.d.ts.map
|
package/build/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/build/errors.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { ResilientError } from '@owlmeans/error';
|
|
2
|
+
import { AuthForbidden } from '@owlmeans/auth';
|
|
3
|
+
import { BILLING_COUNTRY_LOCKED_MARKER, CANCELLATION_UNAVAILABLE_MARKER, CAPABILITY_REQUIRED_MARKER, CHECKOUT_LIMIT_MARKER, LIMIT_EXHAUSTED_FIELDS, LIMIT_EXHAUSTED_MARKER, PERFORMANCE_CONSENT_MARKER, SUBSCRIPTION_START_MARKER, WITHDRAWAL_UNAVAILABLE_MARKER } from './consts.local.js';
|
|
2
4
|
export class PaymentError extends ResilientError {
|
|
3
5
|
static typeName = 'PaymentError';
|
|
4
6
|
constructor(message = 'error') {
|
|
@@ -26,6 +28,20 @@ export class PaygateMappingError extends PaygateError {
|
|
|
26
28
|
this.type = PaygateMappingError.typeName;
|
|
27
29
|
}
|
|
28
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* A webhook delivery whose signature is missing or verifies against no known secret. The sender is
|
|
33
|
+
* refused as a client error (400): a forged or unsigned POST at a public hook is not a server fault,
|
|
34
|
+
* and answering 500 would page operators for it and invite the sender to retry it.
|
|
35
|
+
*/
|
|
36
|
+
export class PaygateSignatureError extends PaygateError {
|
|
37
|
+
static typeName = `${PaygateError.typeName}Signature`;
|
|
38
|
+
/** Read by the HTTP boundary (`server-api` `declaredErrorStatus`). */
|
|
39
|
+
static httpStatus = 400;
|
|
40
|
+
constructor() {
|
|
41
|
+
super('signature');
|
|
42
|
+
this.type = PaygateSignatureError.typeName;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
29
45
|
export class ProductError extends PaymentError {
|
|
30
46
|
static typeName = `${PaymentError.typeName}Product`;
|
|
31
47
|
constructor(message = 'error') {
|
|
@@ -68,14 +84,359 @@ export class UnknownSubscription extends SubscriptionError {
|
|
|
68
84
|
this.type = UnknownSubscription.typeName;
|
|
69
85
|
}
|
|
70
86
|
}
|
|
87
|
+
export class LimitUnknown extends ProductError {
|
|
88
|
+
static typeName = `${ProductError.typeName}LimitUnknown`;
|
|
89
|
+
constructor(message = 'error') {
|
|
90
|
+
super(`limit-unknown:${message}`);
|
|
91
|
+
this.type = LimitUnknown.typeName;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export class LimitMisdeclared extends ProductError {
|
|
95
|
+
static typeName = `${ProductError.typeName}LimitMisdeclared`;
|
|
96
|
+
constructor(message = 'error') {
|
|
97
|
+
super(`limit-misdeclared:${message}`);
|
|
98
|
+
this.type = LimitMisdeclared.typeName;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export class PlanRequired extends ProductError {
|
|
102
|
+
static typeName = `${ProductError.typeName}PlanRequired`;
|
|
103
|
+
constructor(message = 'error') {
|
|
104
|
+
super(`plan-required:${message}`);
|
|
105
|
+
this.type = PlanRequired.typeName;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export class PlanRankConflict extends ProductError {
|
|
109
|
+
static typeName = `${ProductError.typeName}PlanRankConflict`;
|
|
110
|
+
constructor(message = 'error') {
|
|
111
|
+
super(`plan-rank-conflict:${message}`);
|
|
112
|
+
this.type = PlanRankConflict.typeName;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export class WebhookSetupError extends PaygateError {
|
|
116
|
+
static typeName = `${PaygateError.typeName}WebhookSetup`;
|
|
117
|
+
constructor(message = 'error') {
|
|
118
|
+
super(`webhook-setup:${message}`);
|
|
119
|
+
this.type = WebhookSetupError.typeName;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* The entity has nothing the requested portal flow can act on — no paygate customer, no entitling
|
|
124
|
+
* subscription, no plan or item to change to. The entity's own state, not a fault: an HTTP boundary
|
|
125
|
+
* that honours `httpStatus` (`@owlmeans/server-api`) answers 409 Conflict.
|
|
126
|
+
*/
|
|
127
|
+
export class PortalUnavailable extends PaygateError {
|
|
128
|
+
static typeName = `${PaygateError.typeName}PortalUnavailable`;
|
|
129
|
+
static httpStatus = 409;
|
|
130
|
+
constructor(message = 'error') {
|
|
131
|
+
super(`portal-unavailable:${message}`);
|
|
132
|
+
this.type = PortalUnavailable.typeName;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* The entity's plan does not allow the request.
|
|
137
|
+
*
|
|
138
|
+
* Extends `AuthForbidden` so an HTTP boundary answers 403, never 500. Only `type` and `message`
|
|
139
|
+
* survive a marshal round trip, so each subclass packs its fields into the message and rebuilds
|
|
140
|
+
* them in `finalizeUnmarshal()`.
|
|
141
|
+
*/
|
|
142
|
+
export class EntitlementRefusal extends AuthForbidden {
|
|
143
|
+
static typeName = 'EntitlementRefusal';
|
|
144
|
+
constructor(message = 'error') {
|
|
145
|
+
super(`entitlement:${message}`);
|
|
146
|
+
this.type = EntitlementRefusal.typeName;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/** None of the capability parameters (OR'd) is granted. Message marker `capability-required:<a|b>`. */
|
|
150
|
+
export class CapabilityRequired extends EntitlementRefusal {
|
|
151
|
+
static typeName = `${EntitlementRefusal.typeName}CapabilityRequired`;
|
|
152
|
+
/** The refused parameters, as the gate took them. */
|
|
153
|
+
params = [];
|
|
154
|
+
constructor(params = []) {
|
|
155
|
+
const list = (Array.isArray(params) ? params : [params]).filter(param => param !== '');
|
|
156
|
+
super(`${CAPABILITY_REQUIRED_MARKER}${list.join('|')}`);
|
|
157
|
+
this.type = CapabilityRequired.typeName;
|
|
158
|
+
this.applyFields();
|
|
159
|
+
}
|
|
160
|
+
applyFields() {
|
|
161
|
+
const at = this.message.indexOf(CAPABILITY_REQUIRED_MARKER);
|
|
162
|
+
const packed = at < 0 ? '' : this.message.slice(at + CAPABILITY_REQUIRED_MARKER.length);
|
|
163
|
+
this.params = packed.split('|').filter(param => param !== '');
|
|
164
|
+
}
|
|
165
|
+
finalizeUnmarshal() {
|
|
166
|
+
this.applyFields();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* A limit has no room left. Message marker `limit-exhausted:<key>:<used>/<limit>[:<resetsAt ISO>]`.
|
|
171
|
+
*/
|
|
172
|
+
export class LimitExhausted extends EntitlementRefusal {
|
|
173
|
+
static typeName = `${EntitlementRefusal.typeName}LimitExhausted`;
|
|
174
|
+
limitKey = '';
|
|
175
|
+
used = 0;
|
|
176
|
+
limit = 0;
|
|
177
|
+
resetsAt;
|
|
178
|
+
/** The packed marker body of a refusal. */
|
|
179
|
+
static encode(details) {
|
|
180
|
+
const resetsAt = details.resetsAt != null && !Number.isNaN(details.resetsAt.getTime())
|
|
181
|
+
? `:${details.resetsAt.toISOString()}` : '';
|
|
182
|
+
return `${details.key}:${details.used}/${details.limit}${resetsAt}`;
|
|
183
|
+
}
|
|
184
|
+
constructor(details = 'error') {
|
|
185
|
+
super(`${LIMIT_EXHAUSTED_MARKER}${typeof details === 'string' ? details : LimitExhausted.encode(details)}`);
|
|
186
|
+
this.type = LimitExhausted.typeName;
|
|
187
|
+
this.applyFields();
|
|
188
|
+
}
|
|
189
|
+
applyFields() {
|
|
190
|
+
const at = this.message.indexOf(LIMIT_EXHAUSTED_MARKER);
|
|
191
|
+
const match = at < 0 ? null
|
|
192
|
+
: LIMIT_EXHAUSTED_FIELDS.exec(this.message.slice(at + LIMIT_EXHAUSTED_MARKER.length));
|
|
193
|
+
if (match == null) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
const [, key, used, limit, resetsAt] = match;
|
|
197
|
+
this.limitKey = key;
|
|
198
|
+
this.used = Number(used) || 0;
|
|
199
|
+
this.limit = Number(limit) || 0;
|
|
200
|
+
const date = resetsAt != null ? new Date(resetsAt) : null;
|
|
201
|
+
this.resetsAt = date != null && !Number.isNaN(date.getTime()) ? date : undefined;
|
|
202
|
+
}
|
|
203
|
+
finalizeUnmarshal() {
|
|
204
|
+
this.applyFields();
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* A consumer-rights fault — a misdeclared policy (`policy:<field>`), a missing usage meter or
|
|
209
|
+
* mailer, a copy template without a value (`copy:<path>`). Declares no status: 500.
|
|
210
|
+
*/
|
|
211
|
+
export class ConsumerRightsError extends PaymentError {
|
|
212
|
+
static typeName = `${PaymentError.typeName}ConsumerRights`;
|
|
213
|
+
constructor(message = 'error') {
|
|
214
|
+
super(`consumer-rights:${message}`);
|
|
215
|
+
this.type = ConsumerRightsError.typeName;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* The consumer's own position refuses the request — never a fault. Deliberately NOT an
|
|
220
|
+
* `AuthForbidden`: an HTTP boundary tests that family first, and a 403 would hide the declared
|
|
221
|
+
* 428/409 a client acts on.
|
|
222
|
+
*/
|
|
223
|
+
export class ConsumerRightsRefusal extends ConsumerRightsError {
|
|
224
|
+
static typeName = `${ConsumerRightsError.typeName}Refusal`;
|
|
225
|
+
constructor(message = 'error') {
|
|
226
|
+
super(message);
|
|
227
|
+
this.type = ConsumerRightsRefusal.typeName;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/** The packed body after the LAST marker occurrence — a registry rebuild doubles the prefix. */
|
|
231
|
+
const packedAfter = (message, marker) => {
|
|
232
|
+
const at = message.lastIndexOf(marker);
|
|
233
|
+
return at < 0 ? null : message.slice(at + marker.length);
|
|
234
|
+
};
|
|
235
|
+
const dateOf = (value) => {
|
|
236
|
+
const date = value != null && value !== '' ? new Date(value) : null;
|
|
237
|
+
return date != null && !Number.isNaN(date.getTime()) ? date : undefined;
|
|
238
|
+
};
|
|
239
|
+
const isoOf = (date) => date != null && !Number.isNaN(date.getTime()) ? `:${date.toISOString()}` : '';
|
|
240
|
+
const decode = (value) => {
|
|
241
|
+
try {
|
|
242
|
+
return decodeURIComponent(value);
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
return value;
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
/**
|
|
249
|
+
* Billed work would spend credits of a purchase still inside its withdrawal window, and the
|
|
250
|
+
* consumer has not expressly requested performance. HTTP 428. Marker
|
|
251
|
+
* `performance-consent-required:<pending>[:<deadline ISO>]`.
|
|
252
|
+
*/
|
|
253
|
+
export class PerformanceConsentRequired extends ConsumerRightsRefusal {
|
|
254
|
+
static typeName = `${ConsumerRightsRefusal.typeName}PerformanceConsentRequired`;
|
|
255
|
+
static httpStatus = 428;
|
|
256
|
+
pending = 0;
|
|
257
|
+
deadline;
|
|
258
|
+
static encode(details) {
|
|
259
|
+
return `${Math.max(0, Math.floor(details.pending))}${isoOf(details.deadline)}`;
|
|
260
|
+
}
|
|
261
|
+
constructor(details = 'error') {
|
|
262
|
+
super(`${PERFORMANCE_CONSENT_MARKER}${typeof details === 'string' ? details : PerformanceConsentRequired.encode(details)}`);
|
|
263
|
+
this.type = PerformanceConsentRequired.typeName;
|
|
264
|
+
this.applyFields();
|
|
265
|
+
}
|
|
266
|
+
applyFields() {
|
|
267
|
+
const match = /^(\d+)(?::(.+))?$/.exec(packedAfter(this.message, PERFORMANCE_CONSENT_MARKER) ?? '');
|
|
268
|
+
if (match == null) {
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
this.pending = Number(match[1]);
|
|
272
|
+
this.deadline = dateOf(match[2]);
|
|
273
|
+
}
|
|
274
|
+
finalizeUnmarshal() {
|
|
275
|
+
this.applyFields();
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* A subscription checkout needs a fresh express start request bound to this plan. HTTP 428.
|
|
280
|
+
* Marker `subscription-start-required:<encodeURIComponent(planSku)>`.
|
|
281
|
+
*/
|
|
282
|
+
export class SubscriptionStartRequired extends ConsumerRightsRefusal {
|
|
283
|
+
static typeName = `${ConsumerRightsRefusal.typeName}SubscriptionStartRequired`;
|
|
284
|
+
static httpStatus = 428;
|
|
285
|
+
planSku = '';
|
|
286
|
+
static encode(planSku) {
|
|
287
|
+
return encodeURIComponent(planSku);
|
|
288
|
+
}
|
|
289
|
+
/** `planSku` as is, or a packed marker body / marshaled message (the registry's path). */
|
|
290
|
+
constructor(planSku = 'error') {
|
|
291
|
+
super(`${SUBSCRIPTION_START_MARKER}${typeof planSku === 'string' ? SubscriptionStartRequired.encodeLoose(planSku) : SubscriptionStartRequired.encode(planSku.planSku)}`);
|
|
292
|
+
this.type = SubscriptionStartRequired.typeName;
|
|
293
|
+
this.applyFields();
|
|
294
|
+
}
|
|
295
|
+
/** A string that already is a marker (the registry path) passes through unencoded. */
|
|
296
|
+
static encodeLoose(value) {
|
|
297
|
+
return value.includes(SUBSCRIPTION_START_MARKER) ? value : SubscriptionStartRequired.encode(value);
|
|
298
|
+
}
|
|
299
|
+
applyFields() {
|
|
300
|
+
const packed = packedAfter(this.message, SUBSCRIPTION_START_MARKER);
|
|
301
|
+
if (packed != null) {
|
|
302
|
+
this.planSku = decode(packed);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
finalizeUnmarshal() {
|
|
306
|
+
this.applyFields();
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* The entity's billing country is fixed and the request declared another. HTTP 409. Marker
|
|
311
|
+
* `billing-country-locked:<country>[:<requested>]`.
|
|
312
|
+
*/
|
|
313
|
+
export class BillingCountryLocked extends ConsumerRightsRefusal {
|
|
314
|
+
static typeName = `${ConsumerRightsRefusal.typeName}BillingCountryLocked`;
|
|
315
|
+
static httpStatus = 409;
|
|
316
|
+
country = '';
|
|
317
|
+
requested;
|
|
318
|
+
static encode(details) {
|
|
319
|
+
return details.requested != null && details.requested !== ''
|
|
320
|
+
? `${details.country}:${details.requested}` : details.country;
|
|
321
|
+
}
|
|
322
|
+
constructor(details = 'error') {
|
|
323
|
+
super(`${BILLING_COUNTRY_LOCKED_MARKER}${typeof details === 'string' ? details : BillingCountryLocked.encode(details)}`);
|
|
324
|
+
this.type = BillingCountryLocked.typeName;
|
|
325
|
+
this.applyFields();
|
|
326
|
+
}
|
|
327
|
+
applyFields() {
|
|
328
|
+
const match = /^([A-Za-z]{2})(?::([A-Za-z]{2}))?$/.exec(packedAfter(this.message, BILLING_COUNTRY_LOCKED_MARKER) ?? '');
|
|
329
|
+
if (match == null) {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
this.country = match[1];
|
|
333
|
+
this.requested = match[2];
|
|
334
|
+
}
|
|
335
|
+
finalizeUnmarshal() {
|
|
336
|
+
this.applyFields();
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* The named purchase cannot be withdrawn from (`WithdrawalUnavailableReason`). HTTP 409. Marker
|
|
341
|
+
* `withdrawal-unavailable:<reason>`. Never raised on the public page, which discloses nothing.
|
|
342
|
+
*/
|
|
343
|
+
export class WithdrawalUnavailable extends ConsumerRightsRefusal {
|
|
344
|
+
static typeName = `${ConsumerRightsRefusal.typeName}WithdrawalUnavailable`;
|
|
345
|
+
static httpStatus = 409;
|
|
346
|
+
reason = '';
|
|
347
|
+
constructor(reason = 'error') {
|
|
348
|
+
super(`${WITHDRAWAL_UNAVAILABLE_MARKER}${reason}`);
|
|
349
|
+
this.type = WithdrawalUnavailable.typeName;
|
|
350
|
+
this.applyFields();
|
|
351
|
+
}
|
|
352
|
+
applyFields() {
|
|
353
|
+
this.reason = /^[\w-]*/.exec(packedAfter(this.message, WITHDRAWAL_UNAVAILABLE_MARKER) ?? '')?.[0] ?? '';
|
|
354
|
+
}
|
|
355
|
+
finalizeUnmarshal() {
|
|
356
|
+
this.applyFields();
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Nothing to cancel in-app (`CancellationUnavailableReason`). HTTP 409. Marker
|
|
361
|
+
* `cancellation-unavailable:<reason>`.
|
|
362
|
+
*/
|
|
363
|
+
export class CancellationUnavailable extends ConsumerRightsRefusal {
|
|
364
|
+
static typeName = `${ConsumerRightsRefusal.typeName}CancellationUnavailable`;
|
|
365
|
+
static httpStatus = 409;
|
|
366
|
+
reason = '';
|
|
367
|
+
constructor(reason = 'error') {
|
|
368
|
+
super(`${CANCELLATION_UNAVAILABLE_MARKER}${reason}`);
|
|
369
|
+
this.type = CancellationUnavailable.typeName;
|
|
370
|
+
this.applyFields();
|
|
371
|
+
}
|
|
372
|
+
applyFields() {
|
|
373
|
+
this.reason = /^[\w-]*/.exec(packedAfter(this.message, CANCELLATION_UNAVAILABLE_MARKER) ?? '')?.[0] ?? '';
|
|
374
|
+
}
|
|
375
|
+
finalizeUnmarshal() {
|
|
376
|
+
this.applyFields();
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* The amount is above what this entity may buy now (a narrowing of the plan's policy). HTTP 409.
|
|
381
|
+
* Marker `checkout-limit-exceeded:<encodeURIComponent(reason)>:<maximumMinor>:<currency>[:<ISO>]`.
|
|
382
|
+
* A payment refusal, not a consumer-rights one.
|
|
383
|
+
*/
|
|
384
|
+
export class CheckoutLimitExceeded extends PaymentError {
|
|
385
|
+
static typeName = `${PaymentError.typeName}CheckoutLimitExceeded`;
|
|
386
|
+
static httpStatus = 409;
|
|
387
|
+
reason = '';
|
|
388
|
+
maximumMinor = 0;
|
|
389
|
+
currency = '';
|
|
390
|
+
resetsAt;
|
|
391
|
+
static encode(details) {
|
|
392
|
+
return `${encodeURIComponent(details.reason)}:${Math.max(0, Math.floor(details.maximumMinor))}`
|
|
393
|
+
+ `:${details.currency.toLowerCase()}${isoOf(details.resetsAt)}`;
|
|
394
|
+
}
|
|
395
|
+
constructor(details = 'error') {
|
|
396
|
+
super(`${CHECKOUT_LIMIT_MARKER}${typeof details === 'string' ? details : CheckoutLimitExceeded.encode(details)}`);
|
|
397
|
+
this.type = CheckoutLimitExceeded.typeName;
|
|
398
|
+
this.applyFields();
|
|
399
|
+
}
|
|
400
|
+
applyFields() {
|
|
401
|
+
const match = /^([^:]*):(\d+):([a-z]{3})(?::(.+))?$/.exec(packedAfter(this.message, CHECKOUT_LIMIT_MARKER) ?? '');
|
|
402
|
+
if (match == null) {
|
|
403
|
+
return;
|
|
404
|
+
}
|
|
405
|
+
this.reason = decode(match[1]);
|
|
406
|
+
this.maximumMinor = Number(match[2]);
|
|
407
|
+
this.currency = match[3];
|
|
408
|
+
this.resetsAt = dateOf(match[4]);
|
|
409
|
+
}
|
|
410
|
+
finalizeUnmarshal() {
|
|
411
|
+
this.applyFields();
|
|
412
|
+
}
|
|
413
|
+
}
|
|
71
414
|
ResilientError.registerErrorClass(PaymentError);
|
|
72
415
|
ResilientError.registerErrorClass(PaygateError);
|
|
73
416
|
ResilientError.registerErrorClass(UnknownPaygate);
|
|
74
417
|
ResilientError.registerErrorClass(PaygateMappingError);
|
|
418
|
+
ResilientError.registerErrorClass(PaygateSignatureError);
|
|
75
419
|
ResilientError.registerErrorClass(ProductError);
|
|
76
420
|
ResilientError.registerErrorClass(UnknownProduct);
|
|
77
421
|
ResilientError.registerErrorClass(UnknownPlan);
|
|
78
422
|
ResilientError.registerErrorClass(PaymentIdentificationError);
|
|
79
423
|
ResilientError.registerErrorClass(SubscriptionError);
|
|
80
424
|
ResilientError.registerErrorClass(UnknownSubscription);
|
|
425
|
+
ResilientError.registerErrorClass(LimitUnknown);
|
|
426
|
+
ResilientError.registerErrorClass(LimitMisdeclared);
|
|
427
|
+
ResilientError.registerErrorClass(PlanRequired);
|
|
428
|
+
ResilientError.registerErrorClass(PlanRankConflict);
|
|
429
|
+
ResilientError.registerErrorClass(WebhookSetupError);
|
|
430
|
+
ResilientError.registerErrorClass(PortalUnavailable);
|
|
431
|
+
ResilientError.registerErrorClass(EntitlementRefusal);
|
|
432
|
+
ResilientError.registerErrorClass(CapabilityRequired);
|
|
433
|
+
ResilientError.registerErrorClass(LimitExhausted);
|
|
434
|
+
ResilientError.registerErrorClass(ConsumerRightsError);
|
|
435
|
+
ResilientError.registerErrorClass(ConsumerRightsRefusal);
|
|
436
|
+
ResilientError.registerErrorClass(PerformanceConsentRequired);
|
|
437
|
+
ResilientError.registerErrorClass(SubscriptionStartRequired);
|
|
438
|
+
ResilientError.registerErrorClass(BillingCountryLocked);
|
|
439
|
+
ResilientError.registerErrorClass(WithdrawalUnavailable);
|
|
440
|
+
ResilientError.registerErrorClass(CancellationUnavailable);
|
|
441
|
+
ResilientError.registerErrorClass(CheckoutLimitExceeded);
|
|
81
442
|
//# sourceMappingURL=errors.js.map
|
package/build/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|