@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.
Files changed (203) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +413 -0
  3. package/dist/auth/http.d.ts +44 -0
  4. package/dist/auth/http.d.ts.map +1 -0
  5. package/dist/auth/http.js +80 -0
  6. package/dist/auth/http.js.map +1 -0
  7. package/dist/auth/index.d.ts +19 -0
  8. package/dist/auth/index.d.ts.map +1 -0
  9. package/dist/auth/index.js +18 -0
  10. package/dist/auth/index.js.map +1 -0
  11. package/dist/auth/oauth2-strategy.d.ts +117 -0
  12. package/dist/auth/oauth2-strategy.d.ts.map +1 -0
  13. package/dist/auth/oauth2-strategy.js +217 -0
  14. package/dist/auth/oauth2-strategy.js.map +1 -0
  15. package/dist/auth/reseller-strategy.d.ts +65 -0
  16. package/dist/auth/reseller-strategy.d.ts.map +1 -0
  17. package/dist/auth/reseller-strategy.js +68 -0
  18. package/dist/auth/reseller-strategy.js.map +1 -0
  19. package/dist/auth/single-flight.d.ts +81 -0
  20. package/dist/auth/single-flight.d.ts.map +1 -0
  21. package/dist/auth/single-flight.js +160 -0
  22. package/dist/auth/single-flight.js.map +1 -0
  23. package/dist/auth/token-cache.d.ts +50 -0
  24. package/dist/auth/token-cache.d.ts.map +1 -0
  25. package/dist/auth/token-cache.js +59 -0
  26. package/dist/auth/token-cache.js.map +1 -0
  27. package/dist/errors/api-error.d.ts +15 -0
  28. package/dist/errors/api-error.d.ts.map +1 -0
  29. package/dist/errors/api-error.js +18 -0
  30. package/dist/errors/api-error.js.map +1 -0
  31. package/dist/errors/auth-error.d.ts +14 -0
  32. package/dist/errors/auth-error.d.ts.map +1 -0
  33. package/dist/errors/auth-error.js +17 -0
  34. package/dist/errors/auth-error.js.map +1 -0
  35. package/dist/errors/base.d.ts +59 -0
  36. package/dist/errors/base.d.ts.map +1 -0
  37. package/dist/errors/base.js +51 -0
  38. package/dist/errors/base.js.map +1 -0
  39. package/dist/errors/index.d.ts +18 -0
  40. package/dist/errors/index.d.ts.map +1 -0
  41. package/dist/errors/index.js +16 -0
  42. package/dist/errors/index.js.map +1 -0
  43. package/dist/errors/mode-mismatch-error.d.ts +19 -0
  44. package/dist/errors/mode-mismatch-error.d.ts.map +1 -0
  45. package/dist/errors/mode-mismatch-error.js +22 -0
  46. package/dist/errors/mode-mismatch-error.js.map +1 -0
  47. package/dist/errors/rate-limit-error.d.ts +20 -0
  48. package/dist/errors/rate-limit-error.d.ts.map +1 -0
  49. package/dist/errors/rate-limit-error.js +20 -0
  50. package/dist/errors/rate-limit-error.js.map +1 -0
  51. package/dist/errors/validation-error.d.ts +14 -0
  52. package/dist/errors/validation-error.d.ts.map +1 -0
  53. package/dist/errors/validation-error.js +17 -0
  54. package/dist/errors/validation-error.js.map +1 -0
  55. package/dist/errors/webhook-error.d.ts +14 -0
  56. package/dist/errors/webhook-error.d.ts.map +1 -0
  57. package/dist/errors/webhook-error.js +17 -0
  58. package/dist/errors/webhook-error.js.map +1 -0
  59. package/dist/index.d.ts +15 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +15 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/isv/accounts.d.ts +38 -0
  64. package/dist/isv/accounts.d.ts.map +1 -0
  65. package/dist/isv/accounts.js +60 -0
  66. package/dist/isv/accounts.js.map +1 -0
  67. package/dist/isv/client.d.ts +187 -0
  68. package/dist/isv/client.d.ts.map +1 -0
  69. package/dist/isv/client.js +465 -0
  70. package/dist/isv/client.js.map +1 -0
  71. package/dist/isv/index.d.ts +52 -0
  72. package/dist/isv/index.d.ts.map +1 -0
  73. package/dist/isv/index.js +53 -0
  74. package/dist/isv/index.js.map +1 -0
  75. package/dist/isv/legacy-basic-client.d.ts +122 -0
  76. package/dist/isv/legacy-basic-client.d.ts.map +1 -0
  77. package/dist/isv/legacy-basic-client.js +281 -0
  78. package/dist/isv/legacy-basic-client.js.map +1 -0
  79. package/dist/isv/payments.d.ts +199 -0
  80. package/dist/isv/payments.d.ts.map +1 -0
  81. package/dist/isv/payments.js +385 -0
  82. package/dist/isv/payments.js.map +1 -0
  83. package/dist/isv/sources.d.ts +80 -0
  84. package/dist/isv/sources.d.ts.map +1 -0
  85. package/dist/isv/sources.js +112 -0
  86. package/dist/isv/sources.js.map +1 -0
  87. package/dist/isv/webhooks-api.d.ts +48 -0
  88. package/dist/isv/webhooks-api.d.ts.map +1 -0
  89. package/dist/isv/webhooks-api.js +66 -0
  90. package/dist/isv/webhooks-api.js.map +1 -0
  91. package/dist/legacy/client.d.ts +199 -0
  92. package/dist/legacy/client.d.ts.map +1 -0
  93. package/dist/legacy/client.js +351 -0
  94. package/dist/legacy/client.js.map +1 -0
  95. package/dist/legacy/index.d.ts +15 -0
  96. package/dist/legacy/index.d.ts.map +1 -0
  97. package/dist/legacy/index.js +14 -0
  98. package/dist/legacy/index.js.map +1 -0
  99. package/dist/observability/context.d.ts +30 -0
  100. package/dist/observability/context.d.ts.map +1 -0
  101. package/dist/observability/context.js +40 -0
  102. package/dist/observability/context.js.map +1 -0
  103. package/dist/observability/index.d.ts +15 -0
  104. package/dist/observability/index.d.ts.map +1 -0
  105. package/dist/observability/index.js +11 -0
  106. package/dist/observability/index.js.map +1 -0
  107. package/dist/observability/logger.d.ts +81 -0
  108. package/dist/observability/logger.d.ts.map +1 -0
  109. package/dist/observability/logger.js +127 -0
  110. package/dist/observability/logger.js.map +1 -0
  111. package/dist/observability/metrics.d.ts +37 -0
  112. package/dist/observability/metrics.d.ts.map +1 -0
  113. package/dist/observability/metrics.js +40 -0
  114. package/dist/observability/metrics.js.map +1 -0
  115. package/dist/observability/redact.d.ts +21 -0
  116. package/dist/observability/redact.d.ts.map +1 -0
  117. package/dist/observability/redact.js +72 -0
  118. package/dist/observability/redact.js.map +1 -0
  119. package/dist/observability/tracer.d.ts +25 -0
  120. package/dist/observability/tracer.d.ts.map +1 -0
  121. package/dist/observability/tracer.js +18 -0
  122. package/dist/observability/tracer.js.map +1 -0
  123. package/dist/payments/client.d.ts +247 -0
  124. package/dist/payments/client.d.ts.map +1 -0
  125. package/dist/payments/client.js +488 -0
  126. package/dist/payments/client.js.map +1 -0
  127. package/dist/payments/index.d.ts +14 -0
  128. package/dist/payments/index.d.ts.map +1 -0
  129. package/dist/payments/index.js +13 -0
  130. package/dist/payments/index.js.map +1 -0
  131. package/dist/refunds/fast-refund-client.d.ts +128 -0
  132. package/dist/refunds/fast-refund-client.d.ts.map +1 -0
  133. package/dist/refunds/fast-refund-client.js +138 -0
  134. package/dist/refunds/fast-refund-client.js.map +1 -0
  135. package/dist/refunds/index.d.ts +19 -0
  136. package/dist/refunds/index.d.ts.map +1 -0
  137. package/dist/refunds/index.js +17 -0
  138. package/dist/refunds/index.js.map +1 -0
  139. package/dist/refunds/strategy.d.ts +78 -0
  140. package/dist/refunds/strategy.d.ts.map +1 -0
  141. package/dist/refunds/strategy.js +75 -0
  142. package/dist/refunds/strategy.js.map +1 -0
  143. package/dist/types/auth.d.ts +80 -0
  144. package/dist/types/auth.d.ts.map +1 -0
  145. package/dist/types/auth.js +12 -0
  146. package/dist/types/auth.js.map +1 -0
  147. package/dist/types/card-types.d.ts +48 -0
  148. package/dist/types/card-types.d.ts.map +1 -0
  149. package/dist/types/card-types.js +62 -0
  150. package/dist/types/card-types.js.map +1 -0
  151. package/dist/types/common.d.ts +160 -0
  152. package/dist/types/common.d.ts.map +1 -0
  153. package/dist/types/common.js +70 -0
  154. package/dist/types/common.js.map +1 -0
  155. package/dist/types/index.d.ts +21 -0
  156. package/dist/types/index.d.ts.map +1 -0
  157. package/dist/types/index.js +21 -0
  158. package/dist/types/index.js.map +1 -0
  159. package/dist/types/isv-accounts.d.ts +109 -0
  160. package/dist/types/isv-accounts.d.ts.map +1 -0
  161. package/dist/types/isv-accounts.js +22 -0
  162. package/dist/types/isv-accounts.js.map +1 -0
  163. package/dist/types/isv-payments.d.ts +262 -0
  164. package/dist/types/isv-payments.d.ts.map +1 -0
  165. package/dist/types/isv-payments.js +19 -0
  166. package/dist/types/isv-payments.js.map +1 -0
  167. package/dist/types/status.d.ts +125 -0
  168. package/dist/types/status.d.ts.map +1 -0
  169. package/dist/types/status.js +19 -0
  170. package/dist/types/status.js.map +1 -0
  171. package/dist/types/webhook-events.d.ts +447 -0
  172. package/dist/types/webhook-events.d.ts.map +1 -0
  173. package/dist/types/webhook-events.js +76 -0
  174. package/dist/types/webhook-events.js.map +1 -0
  175. package/dist/webhooks/challenge-response.d.ts +28 -0
  176. package/dist/webhooks/challenge-response.d.ts.map +1 -0
  177. package/dist/webhooks/challenge-response.js +35 -0
  178. package/dist/webhooks/challenge-response.js.map +1 -0
  179. package/dist/webhooks/event-types.d.ts +44 -0
  180. package/dist/webhooks/event-types.d.ts.map +1 -0
  181. package/dist/webhooks/event-types.js +50 -0
  182. package/dist/webhooks/event-types.js.map +1 -0
  183. package/dist/webhooks/extract-client-ip.d.ts +40 -0
  184. package/dist/webhooks/extract-client-ip.d.ts.map +1 -0
  185. package/dist/webhooks/extract-client-ip.js +72 -0
  186. package/dist/webhooks/extract-client-ip.js.map +1 -0
  187. package/dist/webhooks/hmac-verify.d.ts +38 -0
  188. package/dist/webhooks/hmac-verify.d.ts.map +1 -0
  189. package/dist/webhooks/hmac-verify.js +92 -0
  190. package/dist/webhooks/hmac-verify.js.map +1 -0
  191. package/dist/webhooks/index.d.ts +19 -0
  192. package/dist/webhooks/index.d.ts.map +1 -0
  193. package/dist/webhooks/index.js +19 -0
  194. package/dist/webhooks/index.js.map +1 -0
  195. package/dist/webhooks/ip-allowlist.d.ts +59 -0
  196. package/dist/webhooks/ip-allowlist.d.ts.map +1 -0
  197. package/dist/webhooks/ip-allowlist.js +147 -0
  198. package/dist/webhooks/ip-allowlist.js.map +1 -0
  199. package/dist/webhooks/status-lattice.d.ts +72 -0
  200. package/dist/webhooks/status-lattice.d.ts.map +1 -0
  201. package/dist/webhooks/status-lattice.js +208 -0
  202. package/dist/webhooks/status-lattice.js.map +1 -0
  203. 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
+ }