@sakeetech/viva-payments-core 0.2.1
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/LICENSE +21 -0
- package/README.md +413 -0
- package/dist/auth/http.d.ts +44 -0
- package/dist/auth/http.d.ts.map +1 -0
- package/dist/auth/http.js +80 -0
- package/dist/auth/http.js.map +1 -0
- package/dist/auth/index.d.ts +19 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +18 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/oauth2-strategy.d.ts +117 -0
- package/dist/auth/oauth2-strategy.d.ts.map +1 -0
- package/dist/auth/oauth2-strategy.js +217 -0
- package/dist/auth/oauth2-strategy.js.map +1 -0
- package/dist/auth/reseller-strategy.d.ts +65 -0
- package/dist/auth/reseller-strategy.d.ts.map +1 -0
- package/dist/auth/reseller-strategy.js +68 -0
- package/dist/auth/reseller-strategy.js.map +1 -0
- package/dist/auth/single-flight.d.ts +81 -0
- package/dist/auth/single-flight.d.ts.map +1 -0
- package/dist/auth/single-flight.js +160 -0
- package/dist/auth/single-flight.js.map +1 -0
- package/dist/auth/token-cache.d.ts +50 -0
- package/dist/auth/token-cache.d.ts.map +1 -0
- package/dist/auth/token-cache.js +59 -0
- package/dist/auth/token-cache.js.map +1 -0
- package/dist/errors/api-error.d.ts +15 -0
- package/dist/errors/api-error.d.ts.map +1 -0
- package/dist/errors/api-error.js +18 -0
- package/dist/errors/api-error.js.map +1 -0
- package/dist/errors/auth-error.d.ts +14 -0
- package/dist/errors/auth-error.d.ts.map +1 -0
- package/dist/errors/auth-error.js +17 -0
- package/dist/errors/auth-error.js.map +1 -0
- package/dist/errors/base.d.ts +59 -0
- package/dist/errors/base.d.ts.map +1 -0
- package/dist/errors/base.js +51 -0
- package/dist/errors/base.js.map +1 -0
- package/dist/errors/index.d.ts +18 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +16 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/mode-mismatch-error.d.ts +19 -0
- package/dist/errors/mode-mismatch-error.d.ts.map +1 -0
- package/dist/errors/mode-mismatch-error.js +22 -0
- package/dist/errors/mode-mismatch-error.js.map +1 -0
- package/dist/errors/rate-limit-error.d.ts +20 -0
- package/dist/errors/rate-limit-error.d.ts.map +1 -0
- package/dist/errors/rate-limit-error.js +20 -0
- package/dist/errors/rate-limit-error.js.map +1 -0
- package/dist/errors/validation-error.d.ts +14 -0
- package/dist/errors/validation-error.d.ts.map +1 -0
- package/dist/errors/validation-error.js +17 -0
- package/dist/errors/validation-error.js.map +1 -0
- package/dist/errors/webhook-error.d.ts +14 -0
- package/dist/errors/webhook-error.d.ts.map +1 -0
- package/dist/errors/webhook-error.js +17 -0
- package/dist/errors/webhook-error.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/isv/accounts.d.ts +38 -0
- package/dist/isv/accounts.d.ts.map +1 -0
- package/dist/isv/accounts.js +60 -0
- package/dist/isv/accounts.js.map +1 -0
- package/dist/isv/client.d.ts +187 -0
- package/dist/isv/client.d.ts.map +1 -0
- package/dist/isv/client.js +465 -0
- package/dist/isv/client.js.map +1 -0
- package/dist/isv/index.d.ts +52 -0
- package/dist/isv/index.d.ts.map +1 -0
- package/dist/isv/index.js +53 -0
- package/dist/isv/index.js.map +1 -0
- package/dist/isv/legacy-basic-client.d.ts +122 -0
- package/dist/isv/legacy-basic-client.d.ts.map +1 -0
- package/dist/isv/legacy-basic-client.js +281 -0
- package/dist/isv/legacy-basic-client.js.map +1 -0
- package/dist/isv/payments.d.ts +199 -0
- package/dist/isv/payments.d.ts.map +1 -0
- package/dist/isv/payments.js +385 -0
- package/dist/isv/payments.js.map +1 -0
- package/dist/isv/sources.d.ts +80 -0
- package/dist/isv/sources.d.ts.map +1 -0
- package/dist/isv/sources.js +112 -0
- package/dist/isv/sources.js.map +1 -0
- package/dist/isv/webhooks-api.d.ts +48 -0
- package/dist/isv/webhooks-api.d.ts.map +1 -0
- package/dist/isv/webhooks-api.js +66 -0
- package/dist/isv/webhooks-api.js.map +1 -0
- package/dist/legacy/client.d.ts +199 -0
- package/dist/legacy/client.d.ts.map +1 -0
- package/dist/legacy/client.js +351 -0
- package/dist/legacy/client.js.map +1 -0
- package/dist/legacy/index.d.ts +15 -0
- package/dist/legacy/index.d.ts.map +1 -0
- package/dist/legacy/index.js +14 -0
- package/dist/legacy/index.js.map +1 -0
- package/dist/observability/context.d.ts +30 -0
- package/dist/observability/context.d.ts.map +1 -0
- package/dist/observability/context.js +40 -0
- package/dist/observability/context.js.map +1 -0
- package/dist/observability/index.d.ts +15 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +11 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/logger.d.ts +81 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +127 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/metrics.d.ts +37 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +40 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/redact.d.ts +21 -0
- package/dist/observability/redact.d.ts.map +1 -0
- package/dist/observability/redact.js +72 -0
- package/dist/observability/redact.js.map +1 -0
- package/dist/observability/tracer.d.ts +25 -0
- package/dist/observability/tracer.d.ts.map +1 -0
- package/dist/observability/tracer.js +18 -0
- package/dist/observability/tracer.js.map +1 -0
- package/dist/payments/client.d.ts +247 -0
- package/dist/payments/client.d.ts.map +1 -0
- package/dist/payments/client.js +488 -0
- package/dist/payments/client.js.map +1 -0
- package/dist/payments/index.d.ts +14 -0
- package/dist/payments/index.d.ts.map +1 -0
- package/dist/payments/index.js +13 -0
- package/dist/payments/index.js.map +1 -0
- package/dist/refunds/fast-refund-client.d.ts +128 -0
- package/dist/refunds/fast-refund-client.d.ts.map +1 -0
- package/dist/refunds/fast-refund-client.js +138 -0
- package/dist/refunds/fast-refund-client.js.map +1 -0
- package/dist/refunds/index.d.ts +19 -0
- package/dist/refunds/index.d.ts.map +1 -0
- package/dist/refunds/index.js +17 -0
- package/dist/refunds/index.js.map +1 -0
- package/dist/refunds/strategy.d.ts +78 -0
- package/dist/refunds/strategy.d.ts.map +1 -0
- package/dist/refunds/strategy.js +75 -0
- package/dist/refunds/strategy.js.map +1 -0
- package/dist/types/auth.d.ts +80 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +12 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/card-types.d.ts +48 -0
- package/dist/types/card-types.d.ts.map +1 -0
- package/dist/types/card-types.js +62 -0
- package/dist/types/card-types.js.map +1 -0
- package/dist/types/common.d.ts +160 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +70 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/isv-accounts.d.ts +109 -0
- package/dist/types/isv-accounts.d.ts.map +1 -0
- package/dist/types/isv-accounts.js +22 -0
- package/dist/types/isv-accounts.js.map +1 -0
- package/dist/types/isv-payments.d.ts +262 -0
- package/dist/types/isv-payments.d.ts.map +1 -0
- package/dist/types/isv-payments.js +19 -0
- package/dist/types/isv-payments.js.map +1 -0
- package/dist/types/status.d.ts +125 -0
- package/dist/types/status.d.ts.map +1 -0
- package/dist/types/status.js +19 -0
- package/dist/types/status.js.map +1 -0
- package/dist/types/webhook-events.d.ts +447 -0
- package/dist/types/webhook-events.d.ts.map +1 -0
- package/dist/types/webhook-events.js +76 -0
- package/dist/types/webhook-events.js.map +1 -0
- package/dist/webhooks/challenge-response.d.ts +28 -0
- package/dist/webhooks/challenge-response.d.ts.map +1 -0
- package/dist/webhooks/challenge-response.js +35 -0
- package/dist/webhooks/challenge-response.js.map +1 -0
- package/dist/webhooks/event-types.d.ts +44 -0
- package/dist/webhooks/event-types.d.ts.map +1 -0
- package/dist/webhooks/event-types.js +50 -0
- package/dist/webhooks/event-types.js.map +1 -0
- package/dist/webhooks/extract-client-ip.d.ts +40 -0
- package/dist/webhooks/extract-client-ip.d.ts.map +1 -0
- package/dist/webhooks/extract-client-ip.js +72 -0
- package/dist/webhooks/extract-client-ip.js.map +1 -0
- package/dist/webhooks/hmac-verify.d.ts +38 -0
- package/dist/webhooks/hmac-verify.d.ts.map +1 -0
- package/dist/webhooks/hmac-verify.js +92 -0
- package/dist/webhooks/hmac-verify.js.map +1 -0
- package/dist/webhooks/index.d.ts +19 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/index.js +19 -0
- package/dist/webhooks/index.js.map +1 -0
- package/dist/webhooks/ip-allowlist.d.ts +59 -0
- package/dist/webhooks/ip-allowlist.d.ts.map +1 -0
- package/dist/webhooks/ip-allowlist.js +147 -0
- package/dist/webhooks/ip-allowlist.js.map +1 -0
- package/dist/webhooks/status-lattice.d.ts +72 -0
- package/dist/webhooks/status-lattice.d.ts.map +1 -0
- package/dist/webhooks/status-lattice.js +208 -0
- package/dist/webhooks/status-lattice.js.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Viva transaction status mapping and monotonic status lattice.
|
|
3
|
+
*
|
|
4
|
+
* Implements plan P17 (status letter → plugin enum) and plan A9
|
|
5
|
+
* (authorized → cancelled allowed — void-before-capture transition).
|
|
6
|
+
*
|
|
7
|
+
* Status lattice (per P17 + A9):
|
|
8
|
+
* initiated → authorized | captured | failed
|
|
9
|
+
* authorized → captured | cancelled | failed | disputed ← A9 added cancelled
|
|
10
|
+
* captured → refunded | disputed
|
|
11
|
+
* refunded → disputed
|
|
12
|
+
* failed, cancelled, disputed → TERMINAL (no further transitions)
|
|
13
|
+
*
|
|
14
|
+
* Terminal states never transition except to themselves (idempotent re-apply).
|
|
15
|
+
*
|
|
16
|
+
* @see references/viva-docs/md/wh-sale-transactions.txt:210
|
|
17
|
+
* @see references/viva-docs/md/wh-transaction-payment-created.txt:398
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Pure mapping from Viva's `StatusId` letter to the plugin's canonical status.
|
|
21
|
+
*
|
|
22
|
+
* M-family letters (M, MA, MI, ML, MS, MW) all map to `'disputed'` with the
|
|
23
|
+
* specific letter preserved as `claimSubstate`.
|
|
24
|
+
*
|
|
25
|
+
* @see references/viva-docs/md/wh-sale-transactions.txt:210
|
|
26
|
+
* @see references/viva-docs/md/wh-transaction-payment-created.txt:398
|
|
27
|
+
*/
|
|
28
|
+
export function mapStatusLetter(letter) {
|
|
29
|
+
switch (letter) {
|
|
30
|
+
case 'F':
|
|
31
|
+
return { status: 'captured', claimSubstate: null };
|
|
32
|
+
case 'A':
|
|
33
|
+
return { status: 'authorized', claimSubstate: null };
|
|
34
|
+
case 'C':
|
|
35
|
+
return { status: 'captured', claimSubstate: null };
|
|
36
|
+
case 'E':
|
|
37
|
+
return { status: 'failed', claimSubstate: null };
|
|
38
|
+
case 'R':
|
|
39
|
+
return { status: 'refunded', claimSubstate: null };
|
|
40
|
+
case 'X':
|
|
41
|
+
return { status: 'cancelled', claimSubstate: null };
|
|
42
|
+
case 'M':
|
|
43
|
+
return { status: 'disputed', claimSubstate: 'M' };
|
|
44
|
+
case 'MA':
|
|
45
|
+
return { status: 'disputed', claimSubstate: 'MA' };
|
|
46
|
+
case 'MI':
|
|
47
|
+
return { status: 'disputed', claimSubstate: 'MI' };
|
|
48
|
+
case 'ML':
|
|
49
|
+
return { status: 'disputed', claimSubstate: 'ML' };
|
|
50
|
+
case 'MS':
|
|
51
|
+
return { status: 'disputed', claimSubstate: 'MS' };
|
|
52
|
+
case 'MW':
|
|
53
|
+
return { status: 'disputed', claimSubstate: 'MW' };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
// Status transition lattice
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
/**
|
|
60
|
+
* Terminal states — no transitions out (other than idempotent self-transition).
|
|
61
|
+
*
|
|
62
|
+
* Derived from the lattice: any state whose allowed-set is empty.
|
|
63
|
+
* `captured` and `refunded` are NOT terminal because they can still
|
|
64
|
+
* transition to `refunded`/`disputed` respectively.
|
|
65
|
+
*
|
|
66
|
+
* @see Plan P17, Plan A9
|
|
67
|
+
*/
|
|
68
|
+
const TERMINAL_STATES = new Set([
|
|
69
|
+
'failed',
|
|
70
|
+
'cancelled',
|
|
71
|
+
'disputed',
|
|
72
|
+
]);
|
|
73
|
+
/**
|
|
74
|
+
* Allowed forward transitions per source state.
|
|
75
|
+
*
|
|
76
|
+
* Lattice (per P17 + A9):
|
|
77
|
+
* initiated → authorized | captured | failed
|
|
78
|
+
* authorized → captured | cancelled | failed | disputed ← A9 added cancelled
|
|
79
|
+
* captured → refunded | disputed
|
|
80
|
+
* refunded → disputed
|
|
81
|
+
* failed → (terminal — no transitions)
|
|
82
|
+
* cancelled → (terminal — no transitions)
|
|
83
|
+
* disputed → (terminal — no transitions)
|
|
84
|
+
*
|
|
85
|
+
* Note: `captured` is terminal in the sense that no real-world event takes a
|
|
86
|
+
* captured payment backwards, but it can still transition forward to `refunded`
|
|
87
|
+
* or `disputed`.
|
|
88
|
+
*
|
|
89
|
+
* @see references/viva-docs/md/wh-transaction-payment-created.txt:398
|
|
90
|
+
*/
|
|
91
|
+
const LATTICE = new Map([
|
|
92
|
+
['initiated', new Set(['authorized', 'captured', 'failed'])],
|
|
93
|
+
['authorized', new Set(['captured', 'cancelled', 'failed', 'disputed'])],
|
|
94
|
+
['captured', new Set(['refunded', 'disputed'])],
|
|
95
|
+
['refunded', new Set(['disputed'])],
|
|
96
|
+
// Terminal states — empty sets (no forward transitions).
|
|
97
|
+
['failed', new Set()],
|
|
98
|
+
['cancelled', new Set()],
|
|
99
|
+
['disputed', new Set()],
|
|
100
|
+
]);
|
|
101
|
+
// Verify the lattice is fully specified (TypeScript does not enforce exhaustive
|
|
102
|
+
// Map entries, so we do a runtime assertion at module load time).
|
|
103
|
+
const _ALL_STATUSES = [
|
|
104
|
+
'initiated',
|
|
105
|
+
'authorized',
|
|
106
|
+
'captured',
|
|
107
|
+
'refunded',
|
|
108
|
+
'failed',
|
|
109
|
+
'cancelled',
|
|
110
|
+
'disputed',
|
|
111
|
+
];
|
|
112
|
+
for (const s of _ALL_STATUSES) {
|
|
113
|
+
if (!LATTICE.has(s)) {
|
|
114
|
+
throw new Error(`BUG: status-lattice.ts is missing an entry for status '${s}'`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
// Backward-reachability: used to classify BACKWARD vs ILLEGAL
|
|
119
|
+
// ---------------------------------------------------------------------------
|
|
120
|
+
/**
|
|
121
|
+
* Build the set of all states that are ancestors (upstream) of `target` in the
|
|
122
|
+
* DAG. Used to classify a rejected transition as BACKWARD vs ILLEGAL.
|
|
123
|
+
*
|
|
124
|
+
* The disputed state is a "side-exit" reachable from multiple states; we walk
|
|
125
|
+
* the full DAG regardless.
|
|
126
|
+
*/
|
|
127
|
+
function computeAncestors(target) {
|
|
128
|
+
const ancestors = new Set();
|
|
129
|
+
const queue = [];
|
|
130
|
+
// Find direct parents of `target`.
|
|
131
|
+
for (const [from, allowed] of LATTICE) {
|
|
132
|
+
if (allowed.has(target)) {
|
|
133
|
+
queue.push(from);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
while (queue.length > 0) {
|
|
137
|
+
const node = queue.shift();
|
|
138
|
+
if (ancestors.has(node))
|
|
139
|
+
continue;
|
|
140
|
+
ancestors.add(node);
|
|
141
|
+
// Walk further up.
|
|
142
|
+
for (const [from, allowed] of LATTICE) {
|
|
143
|
+
if (allowed.has(node) && !ancestors.has(from)) {
|
|
144
|
+
queue.push(from);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return ancestors;
|
|
149
|
+
}
|
|
150
|
+
// Pre-compute ancestor sets for all statuses (module-load-time, not per-call).
|
|
151
|
+
const _ANCESTORS = new Map(_ALL_STATUSES.map((s) => [s, computeAncestors(s)]));
|
|
152
|
+
// ---------------------------------------------------------------------------
|
|
153
|
+
// Public validator
|
|
154
|
+
// ---------------------------------------------------------------------------
|
|
155
|
+
/**
|
|
156
|
+
* Pure validator. Does NOT mutate state. Returns a typed result describing
|
|
157
|
+
* whether the `current → next` transition is allowed by the lattice.
|
|
158
|
+
*
|
|
159
|
+
* Returns:
|
|
160
|
+
* - `{ ok: true, next }` if the transition is allowed OR if `next === current`
|
|
161
|
+
* (idempotent re-apply).
|
|
162
|
+
* - `{ ok: false, reason: 'TERMINAL' }` if `current` is terminal and
|
|
163
|
+
* `next !== current`.
|
|
164
|
+
* - `{ ok: false, reason: 'BACKWARD' }` if `next` is an ancestor of `current`
|
|
165
|
+
* in the DAG.
|
|
166
|
+
* - `{ ok: false, reason: 'ILLEGAL' }` for any other invalid pair.
|
|
167
|
+
*
|
|
168
|
+
* Callers (the Medusa subscriber) use this before issuing an UPDATE to
|
|
169
|
+
* `viva_transaction.status`.
|
|
170
|
+
*
|
|
171
|
+
* @see Plan P17 (status lattice), Plan A9 (authorized → cancelled)
|
|
172
|
+
* @see references/viva-docs/md/wh-transaction-payment-created.txt:398
|
|
173
|
+
*/
|
|
174
|
+
export function validateStatusTransition(current, next) {
|
|
175
|
+
// Idempotent re-apply: same → same is always OK.
|
|
176
|
+
if (current === next) {
|
|
177
|
+
return { ok: true, next };
|
|
178
|
+
}
|
|
179
|
+
const allowed = LATTICE.get(current);
|
|
180
|
+
// Terminal state: current has no allowed transitions.
|
|
181
|
+
if (TERMINAL_STATES.has(current) && (allowed === undefined || allowed.size === 0)) {
|
|
182
|
+
return { ok: false, reason: 'TERMINAL', current, attempted: next };
|
|
183
|
+
}
|
|
184
|
+
// Allowed forward transition.
|
|
185
|
+
if (allowed !== undefined && allowed.has(next)) {
|
|
186
|
+
return { ok: true, next };
|
|
187
|
+
}
|
|
188
|
+
// Check if `next` is an ancestor of `current` → BACKWARD.
|
|
189
|
+
const ancestors = _ANCESTORS.get(current);
|
|
190
|
+
if (ancestors !== undefined && ancestors.has(next)) {
|
|
191
|
+
return { ok: false, reason: 'BACKWARD', current, attempted: next };
|
|
192
|
+
}
|
|
193
|
+
// Anything else (cross-edge, unrelated state) → ILLEGAL.
|
|
194
|
+
return { ok: false, reason: 'ILLEGAL', current, attempted: next };
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Convenience wrapper: looks up `mapStatusLetter` then calls
|
|
198
|
+
* `validateStatusTransition`. Returns the full result so callers can decide
|
|
199
|
+
* whether to apply or log.
|
|
200
|
+
*
|
|
201
|
+
* Not part of the core interface spec, provided for S8 convenience.
|
|
202
|
+
*/
|
|
203
|
+
export function applyStatusTransition(current, incomingLetter) {
|
|
204
|
+
const { status: next, claimSubstate } = mapStatusLetter(incomingLetter);
|
|
205
|
+
const result = validateStatusTransition(current, next);
|
|
206
|
+
return { ...result, claimSubstate };
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=status-lattice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-lattice.js","sourceRoot":"","sources":["../../src/webhooks/status-lattice.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sakeetech/viva-payments-core",
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "Framework-agnostic Viva Wallet client for ISV integrations. Used by medusa-payment-viva and vendure-payment-viva.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/sakee-tech/vivawallet-npm-public.git",
|
|
9
|
+
"directory": "packages/viva-payments-core"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/sakee-tech/vivawallet-npm-public/tree/main/packages/viva-payments-core#readme",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/sakee-tech/vivawallet-npm-public/issues"
|
|
14
|
+
},
|
|
15
|
+
"type": "module",
|
|
16
|
+
"main": "./dist/index.js",
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"import": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./auth": {
|
|
24
|
+
"types": "./dist/auth/index.d.ts",
|
|
25
|
+
"import": "./dist/auth/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./isv": {
|
|
28
|
+
"types": "./dist/isv/index.d.ts",
|
|
29
|
+
"import": "./dist/isv/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./payments": {
|
|
32
|
+
"types": "./dist/payments/index.d.ts",
|
|
33
|
+
"import": "./dist/payments/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./legacy": {
|
|
36
|
+
"types": "./dist/legacy/index.d.ts",
|
|
37
|
+
"import": "./dist/legacy/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./refunds": {
|
|
40
|
+
"types": "./dist/refunds/index.d.ts",
|
|
41
|
+
"import": "./dist/refunds/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./webhooks": {
|
|
44
|
+
"types": "./dist/webhooks/index.d.ts",
|
|
45
|
+
"import": "./dist/webhooks/index.js"
|
|
46
|
+
},
|
|
47
|
+
"./types": {
|
|
48
|
+
"types": "./dist/types/index.d.ts",
|
|
49
|
+
"import": "./dist/types/index.js"
|
|
50
|
+
},
|
|
51
|
+
"./errors": {
|
|
52
|
+
"types": "./dist/errors/index.d.ts",
|
|
53
|
+
"import": "./dist/errors/index.js"
|
|
54
|
+
},
|
|
55
|
+
"./observability": {
|
|
56
|
+
"types": "./dist/observability/index.d.ts",
|
|
57
|
+
"import": "./dist/observability/index.js"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"publishConfig": {
|
|
61
|
+
"access": "public"
|
|
62
|
+
},
|
|
63
|
+
"files": [
|
|
64
|
+
"dist",
|
|
65
|
+
"README.md",
|
|
66
|
+
"LICENSE"
|
|
67
|
+
],
|
|
68
|
+
"dependencies": {
|
|
69
|
+
"undici": "^7.2.0"
|
|
70
|
+
},
|
|
71
|
+
"devDependencies": {
|
|
72
|
+
"typescript": "^5.7.2",
|
|
73
|
+
"vitest": "^2.1.8"
|
|
74
|
+
},
|
|
75
|
+
"engines": {
|
|
76
|
+
"node": ">=20.0.0"
|
|
77
|
+
},
|
|
78
|
+
"scripts": {
|
|
79
|
+
"build": "tsc -p tsconfig.json",
|
|
80
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
81
|
+
"test": "vitest run",
|
|
82
|
+
"test:watch": "vitest",
|
|
83
|
+
"clean": "rm -rf dist .tsbuildinfo coverage"
|
|
84
|
+
}
|
|
85
|
+
}
|