@tagadapay/node-sdk 0.2.1 → 1.1.0

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 (92) hide show
  1. package/README.md +1 -1
  2. package/dist/HttpClient.d.ts +10 -0
  3. package/dist/HttpClient.d.ts.map +1 -1
  4. package/dist/HttpClient.js +21 -6
  5. package/dist/HttpClient.js.map +1 -1
  6. package/dist/Tagada.d.ts +73 -0
  7. package/dist/Tagada.d.ts.map +1 -1
  8. package/dist/Tagada.js +43 -0
  9. package/dist/Tagada.js.map +1 -1
  10. package/dist/cli/init.d.ts +38 -0
  11. package/dist/cli/init.d.ts.map +1 -0
  12. package/dist/cli/init.js +392 -0
  13. package/dist/cli/init.js.map +1 -0
  14. package/dist/dashboard/client.d.ts +147 -0
  15. package/dist/dashboard/client.d.ts.map +1 -0
  16. package/dist/dashboard/client.js +243 -0
  17. package/dist/dashboard/client.js.map +1 -0
  18. package/dist/dashboard/httpTransport.d.ts +28 -0
  19. package/dist/dashboard/httpTransport.d.ts.map +1 -0
  20. package/dist/dashboard/httpTransport.js +196 -0
  21. package/dist/dashboard/httpTransport.js.map +1 -0
  22. package/dist/dashboard/index.d.ts +22 -0
  23. package/dist/dashboard/index.d.ts.map +1 -0
  24. package/dist/dashboard/index.js +22 -0
  25. package/dist/dashboard/index.js.map +1 -0
  26. package/dist/dashboard/internalTransport.d.ts +29 -0
  27. package/dist/dashboard/internalTransport.d.ts.map +1 -0
  28. package/dist/dashboard/internalTransport.js +70 -0
  29. package/dist/dashboard/internalTransport.js.map +1 -0
  30. package/dist/dashboard/types.d.ts +389 -0
  31. package/dist/dashboard/types.d.ts.map +1 -0
  32. package/dist/dashboard/types.js +50 -0
  33. package/dist/dashboard/types.js.map +1 -0
  34. package/dist/index.d.ts +4 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +12 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/onboarding/OnboardingClient.d.ts +117 -0
  39. package/dist/onboarding/OnboardingClient.d.ts.map +1 -0
  40. package/dist/onboarding/OnboardingClient.js +154 -0
  41. package/dist/onboarding/OnboardingClient.js.map +1 -0
  42. package/dist/resources/Partners.d.ts +133 -0
  43. package/dist/resources/Partners.d.ts.map +1 -0
  44. package/dist/resources/Partners.js +151 -0
  45. package/dist/resources/Partners.js.map +1 -0
  46. package/dist/resources/PaymentSetup.d.ts +34 -0
  47. package/dist/resources/PaymentSetup.d.ts.map +1 -0
  48. package/dist/resources/PaymentSetup.js +34 -0
  49. package/dist/resources/PaymentSetup.js.map +1 -0
  50. package/dist/resources/Plugins.d.ts +1 -1
  51. package/dist/resources/Plugins.d.ts.map +1 -1
  52. package/dist/resources/Plugins.js +10 -3
  53. package/dist/resources/Plugins.js.map +1 -1
  54. package/dist/resources/Products.d.ts +5 -1
  55. package/dist/resources/Products.d.ts.map +1 -1
  56. package/dist/resources/Products.js +6 -0
  57. package/dist/resources/Products.js.map +1 -1
  58. package/dist/resources/ShippingRates.d.ts +91 -0
  59. package/dist/resources/ShippingRates.d.ts.map +1 -0
  60. package/dist/resources/ShippingRates.js +36 -0
  61. package/dist/resources/ShippingRates.js.map +1 -0
  62. package/dist/resources/Threeds.d.ts +30 -0
  63. package/dist/resources/Threeds.d.ts.map +1 -0
  64. package/dist/resources/Threeds.js +32 -0
  65. package/dist/resources/Threeds.js.map +1 -0
  66. package/dist/resources/index.d.ts +1 -0
  67. package/dist/resources/index.d.ts.map +1 -1
  68. package/dist/resources/index.js +1 -0
  69. package/dist/resources/index.js.map +1 -1
  70. package/dist/types/index.d.ts +3 -1
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/dist/types/index.js +3 -1
  73. package/dist/types/index.js.map +1 -1
  74. package/dist/types/partners.d.ts +119 -0
  75. package/dist/types/partners.d.ts.map +1 -0
  76. package/dist/types/partners.js +9 -0
  77. package/dist/types/partners.js.map +1 -0
  78. package/dist/types/paymentSetup.d.ts +67 -0
  79. package/dist/types/paymentSetup.d.ts.map +1 -0
  80. package/dist/types/paymentSetup.js +9 -0
  81. package/dist/types/paymentSetup.js.map +1 -0
  82. package/dist/types/plugins.d.ts +2 -2
  83. package/dist/types/plugins.d.ts.map +1 -1
  84. package/dist/types/products.d.ts +12 -0
  85. package/dist/types/products.d.ts.map +1 -1
  86. package/dist/types/stores.d.ts +0 -1
  87. package/dist/types/stores.d.ts.map +1 -1
  88. package/dist/types/threeds.d.ts +27 -0
  89. package/dist/types/threeds.d.ts.map +1 -0
  90. package/dist/types/threeds.js +8 -0
  91. package/dist/types/threeds.js.map +1 -0
  92. package/package.json +15 -1
@@ -0,0 +1,392 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * `tagada-init [email]`
4
+ *
5
+ * Reachable as:
6
+ * - `npx -p @tagadapay/node-sdk tagada-init` (one-shot, no install)
7
+ * - `npx tagada-init` (after `npm i -D @tagadapay/node-sdk`)
8
+ * - `tagada-init` (after a global install)
9
+ *
10
+ * Interactive CLI that walks a developer through provisioning a fresh
11
+ * sandbox Tagada account in ~30 seconds:
12
+ *
13
+ * 1. Asks for an email (or accepts it as the first positional arg).
14
+ * 2. POSTs `/api/public/onboarding/start` to mail a 6-digit code.
15
+ * 3. Prompts the user to paste the code from their inbox.
16
+ * 4. POSTs `/api/public/onboarding/verify` to provision the account.
17
+ * 5. Writes the returned `apiKey` / `storeId` / `accountId` to a `.env`
18
+ * file in the current working directory (creating it if missing,
19
+ * appending non-conflicting keys if it exists).
20
+ * 6. Prints next steps.
21
+ *
22
+ * Flags:
23
+ * --base-url=<url> Override the API host (default https://api.tagada.io)
24
+ * --no-env Print the values instead of writing `.env`
25
+ * --env-file=<path> Custom path for the env file (default ./.env)
26
+ * --source=<tag> Acquisition source override (default 'cli')
27
+ *
28
+ * UTM forwarding: any `--utm-foo=bar` flag, plus matching `UTM_FOO` env
29
+ * vars, are bundled into the `utm` payload so attribution survives the
30
+ * jump from a docs link → terminal command.
31
+ *
32
+ * Naming note: the package is `@tagadapay/node-sdk` (the SDK to talk to
33
+ * the TagadaPay payment processor), but the *account* this command
34
+ * creates is a **Tagada** account (the CRM / control plane). Hence
35
+ * `tagada-init`, not `tagadapay-init`.
36
+ */
37
+ import { promises as fs } from 'node:fs';
38
+ import { existsSync } from 'node:fs';
39
+ import path from 'node:path';
40
+ import readline from 'node:readline/promises';
41
+ import { stdin as input, stdout as output } from 'node:process';
42
+ import { OnboardingClient, OnboardingError, } from '../onboarding/OnboardingClient.js';
43
+ function parseArgs(argv) {
44
+ const out = {
45
+ envFile: '.env',
46
+ writeEnv: true,
47
+ source: 'cli',
48
+ utm: {},
49
+ help: false,
50
+ };
51
+ for (const raw of argv) {
52
+ if (raw === '--help' || raw === '-h') {
53
+ out.help = true;
54
+ continue;
55
+ }
56
+ if (raw === '--no-env') {
57
+ out.writeEnv = false;
58
+ continue;
59
+ }
60
+ const eq = raw.indexOf('=');
61
+ if (raw.startsWith('--')) {
62
+ const key = eq === -1 ? raw.slice(2) : raw.slice(2, eq);
63
+ const value = eq === -1 ? 'true' : raw.slice(eq + 1);
64
+ if (key === 'base-url')
65
+ out.baseUrl = value;
66
+ else if (key === 'env-file')
67
+ out.envFile = value;
68
+ else if (key === 'source')
69
+ out.source = value;
70
+ else if (key.startsWith('utm-')) {
71
+ // --utm-source=docs → utm.utm_source = 'docs'
72
+ out.utm[`utm_${key.slice(4).replace(/-/g, '_')}`] = value;
73
+ }
74
+ continue;
75
+ }
76
+ // First positional = email.
77
+ if (!out.email)
78
+ out.email = raw;
79
+ }
80
+ // Pull UTMs from env vars too (so wrapper scripts can set them once).
81
+ for (const [k, v] of Object.entries(process.env)) {
82
+ if (k.startsWith('UTM_') && typeof v === 'string' && v.length > 0) {
83
+ const key = k.toLowerCase();
84
+ if (!(key in out.utm))
85
+ out.utm[key] = v;
86
+ }
87
+ }
88
+ return out;
89
+ }
90
+ function printHelp() {
91
+ console.log(`
92
+ tagada-init — provision a fresh sandbox Tagada account from your terminal.
93
+
94
+ Verifies your email with a 6-digit code, creates a Tagada account
95
+ (Clerk user + org), provisions a demo-seeded store with sandbox
96
+ processor + payment flow + funnel, and writes the API key to \`.env\`.
97
+
98
+ Usage:
99
+ npx -p @tagadapay/node-sdk tagada-init [email] [flags]
100
+ npx tagada-init [email] [flags] # after npm i @tagadapay/node-sdk
101
+
102
+ Examples:
103
+ npx -p @tagadapay/node-sdk tagada-init you@example.com
104
+ npx tagada-init you@example.com --utm-source=docs --utm-campaign=cli
105
+ npx tagada-init --base-url=http://localhost:3000 # local dev
106
+
107
+ Flags:
108
+ --base-url=<url> API host (default https://api.tagada.io)
109
+ --env-file=<path> Where to write the API key (default ./.env)
110
+ --no-env Print credentials instead of writing them
111
+ --source=<tag> Acquisition source (default cli)
112
+ --utm-<name>=<val> Forward UTM params (e.g. --utm-source=docs)
113
+ --help, -h Show this message
114
+ `.trim());
115
+ }
116
+ async function prompt(rl, message) {
117
+ const answer = await rl.question(message);
118
+ return answer.trim();
119
+ }
120
+ function isLikelyEmail(s) {
121
+ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(s);
122
+ }
123
+ async function readExistingEnv(filePath) {
124
+ const map = new Map();
125
+ if (!existsSync(filePath))
126
+ return map;
127
+ const content = await fs.readFile(filePath, 'utf8');
128
+ for (const line of content.split('\n')) {
129
+ const trimmed = line.trim();
130
+ if (!trimmed || trimmed.startsWith('#'))
131
+ continue;
132
+ const eq = trimmed.indexOf('=');
133
+ if (eq === -1)
134
+ continue;
135
+ map.set(trimmed.slice(0, eq).trim(), trimmed.slice(eq + 1));
136
+ }
137
+ return map;
138
+ }
139
+ /**
140
+ * Append `additions` to `filePath`, preserving anything already there.
141
+ * Existing keys with the same name are commented out (not overwritten),
142
+ * so users can see what changed without losing their previous values.
143
+ */
144
+ async function writeEnvFile(filePath, additions) {
145
+ const existing = await readExistingEnv(filePath);
146
+ const conflicts = [];
147
+ for (const k of Object.keys(additions)) {
148
+ if (existing.has(k))
149
+ conflicts.push(k);
150
+ }
151
+ let prior = '';
152
+ if (existsSync(filePath)) {
153
+ prior = await fs.readFile(filePath, 'utf8');
154
+ if (!prior.endsWith('\n'))
155
+ prior += '\n';
156
+ // Comment out any conflicting keys so we don't shadow them silently.
157
+ for (const k of conflicts) {
158
+ prior = prior.replace(new RegExp(`^${escapeRegex(k)}=.*$`, 'm'), `# ${k}= (replaced by tagadapay init on ${new Date().toISOString()})`);
159
+ }
160
+ }
161
+ const block = [
162
+ '',
163
+ '# Provisioned by `npx @tagadapay/node-sdk init`',
164
+ `# ${new Date().toISOString()}`,
165
+ ...Object.entries(additions).map(([k, v]) => `${k}=${v}`),
166
+ '',
167
+ ].join('\n');
168
+ await fs.writeFile(filePath, prior + block, 'utf8');
169
+ }
170
+ function escapeRegex(s) {
171
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
172
+ }
173
+ /**
174
+ * Look at the cwd and decide which frameworks the user is targeting so we
175
+ * can mirror the canonical `TAGADA_*` env vars under the prefix that
176
+ * framework actually exposes to the browser. We do this purely from
177
+ * filesystem signals (config files + dependency manifests) — no
178
+ * `require()` of user code.
179
+ *
180
+ * Multiple matches are possible (e.g. an Astro site that uses Vite under
181
+ * the hood). We return all of them; the caller writes one prefix per
182
+ * framework.
183
+ */
184
+ async function detectFrameworks(cwd) {
185
+ const found = new Set();
186
+ const has = (rel) => existsSync(path.join(cwd, rel));
187
+ if (has('vite.config.ts') ||
188
+ has('vite.config.js') ||
189
+ has('vite.config.mjs') ||
190
+ has('vite.config.cjs')) {
191
+ found.add('vite');
192
+ }
193
+ if (has('next.config.ts') ||
194
+ has('next.config.js') ||
195
+ has('next.config.mjs') ||
196
+ has('next.config.cjs')) {
197
+ found.add('next');
198
+ }
199
+ if (has('astro.config.ts') ||
200
+ has('astro.config.js') ||
201
+ has('astro.config.mjs')) {
202
+ found.add('astro');
203
+ }
204
+ // Fallback to package.json sniffing for projects that omit a config file.
205
+ if (found.size === 0 && has('package.json')) {
206
+ try {
207
+ const pkg = JSON.parse(await fs.readFile(path.join(cwd, 'package.json'), 'utf8'));
208
+ const deps = {
209
+ ...(pkg.dependencies ?? {}),
210
+ ...(pkg.devDependencies ?? {}),
211
+ };
212
+ if (deps.vite)
213
+ found.add('vite');
214
+ if (deps.next)
215
+ found.add('next');
216
+ if (deps.astro)
217
+ found.add('astro');
218
+ }
219
+ catch {
220
+ /* ignore unreadable package.json */
221
+ }
222
+ }
223
+ return [...found];
224
+ }
225
+ async function main() {
226
+ const args = parseArgs(process.argv.slice(2));
227
+ if (args.help) {
228
+ printHelp();
229
+ return 0;
230
+ }
231
+ const rl = readline.createInterface({ input, output });
232
+ try {
233
+ // ─── Step 1: collect email ────────────────────────────────────────
234
+ let email = args.email;
235
+ while (!email || !isLikelyEmail(email)) {
236
+ if (email) {
237
+ console.error(`✗ '${email}' doesn't look like a valid email.`);
238
+ }
239
+ email = await prompt(rl, 'Email: ');
240
+ }
241
+ email = email.toLowerCase();
242
+ const client = new OnboardingClient({ baseUrl: args.baseUrl });
243
+ // ─── Step 2: send the code ────────────────────────────────────────
244
+ process.stdout.write(`→ Sending verification code to ${email}... `);
245
+ try {
246
+ await client.start({
247
+ email,
248
+ source: args.source,
249
+ utm: Object.keys(args.utm).length > 0 ? args.utm : undefined,
250
+ });
251
+ }
252
+ catch (err) {
253
+ process.stdout.write('\n');
254
+ return handleOnboardingError(err);
255
+ }
256
+ console.log('✓');
257
+ // ─── Step 3: prompt for code ──────────────────────────────────────
258
+ let code = '';
259
+ let verifyResult;
260
+ for (let attempt = 0; attempt < 5; attempt++) {
261
+ code = await prompt(rl, 'Code (6 digits): ');
262
+ if (!/^\d{6}$/.test(code)) {
263
+ console.error('✗ The code must be exactly 6 digits.');
264
+ continue;
265
+ }
266
+ try {
267
+ process.stdout.write('→ Provisioning account... ');
268
+ verifyResult = await client.verify({
269
+ email,
270
+ code,
271
+ source: args.source,
272
+ utm: Object.keys(args.utm).length > 0 ? args.utm : undefined,
273
+ });
274
+ console.log('✓');
275
+ break;
276
+ }
277
+ catch (err) {
278
+ process.stdout.write('\n');
279
+ if (err instanceof OnboardingError && err.code === 'invalid_code') {
280
+ console.error('✗ Wrong code. Try again.');
281
+ continue;
282
+ }
283
+ return handleOnboardingError(err);
284
+ }
285
+ }
286
+ if (!verifyResult) {
287
+ console.error('✗ Too many failed attempts. Run `tagada-init` again to get a fresh code.');
288
+ return 1;
289
+ }
290
+ // ─── Step 4: persist credentials ──────────────────────────────────
291
+ // Always write canonical TAGADA_* (used by Node/server scripts), and
292
+ // additionally mirror to framework-prefixed vars so the frontend can
293
+ // read them without a config rename. We only mirror the storeId +
294
+ // environment (browser-safe); the apiKey stays server-only.
295
+ const additions = {
296
+ TAGADA_API_KEY: verifyResult.apiKey,
297
+ TAGADA_STORE_ID: verifyResult.storeId,
298
+ TAGADA_ACCOUNT_ID: verifyResult.accountId,
299
+ };
300
+ const frameworks = await detectFrameworks(process.cwd());
301
+ if (frameworks.includes('vite')) {
302
+ additions.VITE_STORE_ID = verifyResult.storeId;
303
+ additions.VITE_ENVIRONMENT = 'production';
304
+ }
305
+ if (frameworks.includes('next')) {
306
+ additions.NEXT_PUBLIC_TAGADA_STORE_ID = verifyResult.storeId;
307
+ additions.NEXT_PUBLIC_TAGADA_ENVIRONMENT = 'production';
308
+ }
309
+ if (frameworks.includes('astro')) {
310
+ additions.PUBLIC_TAGADA_STORE_ID = verifyResult.storeId;
311
+ additions.PUBLIC_TAGADA_ENVIRONMENT = 'production';
312
+ }
313
+ if (args.writeEnv) {
314
+ const fullPath = path.resolve(process.cwd(), args.envFile);
315
+ await writeEnvFile(fullPath, additions);
316
+ const frameworksHint = frameworks.length
317
+ ? ` (with ${frameworks.join(' + ')} mirrored vars)`
318
+ : '';
319
+ console.log(`✓ Wrote credentials to ${path.relative(process.cwd(), fullPath) || args.envFile}${frameworksHint}`);
320
+ }
321
+ else {
322
+ console.log('\nCredentials (copy into your environment):');
323
+ for (const [k, v] of Object.entries(additions)) {
324
+ console.log(` ${k}=${v}`);
325
+ }
326
+ }
327
+ // ─── Step 5: next steps ───────────────────────────────────────────
328
+ console.log(`
329
+ Done. Your sandbox account is ready.
330
+
331
+ Account: ${verifyResult.accountId}
332
+ Store: ${verifyResult.storeId}
333
+ Org: ${verifyResult.orgSlug ?? verifyResult.clerkOrgId}
334
+
335
+ Demo products, payment flow, and funnel are seeding in the background
336
+ (typically <30s). You can already run your dev server — the catalog will
337
+ populate as the seed completes.
338
+
339
+ Next:
340
+ 1. cd into your TagadaPay app (e.g. examples/headless-react-store)
341
+ 2. pnpm install
342
+ 3. pnpm dev
343
+ `);
344
+ return 0;
345
+ }
346
+ finally {
347
+ rl.close();
348
+ }
349
+ }
350
+ function handleOnboardingError(err) {
351
+ if (err instanceof OnboardingError) {
352
+ switch (err.code) {
353
+ case 'rate_limited':
354
+ console.error(`✗ Rate limited. ${err.message}`);
355
+ if (err.resetAt) {
356
+ console.error(` Try again after ${err.resetAt.toLocaleTimeString()}.`);
357
+ }
358
+ return 2;
359
+ case 'email_send_failed':
360
+ console.error(`✗ Could not send the verification email. ${err.message}`);
361
+ console.error(' Try a different email or retry in a few minutes.');
362
+ return 3;
363
+ case 'expired':
364
+ case 'no_pending_code':
365
+ console.error(`✗ ${err.message}`);
366
+ return 4;
367
+ case 'too_many_attempts':
368
+ console.error(`✗ ${err.message}`);
369
+ return 5;
370
+ case 'invalid_request':
371
+ console.error(`✗ Invalid request: ${err.message}`);
372
+ return 6;
373
+ case 'provisioning_failed':
374
+ console.error(`✗ Provisioning failed: ${err.message}`);
375
+ console.error(' This usually clears up after a retry. Run `tagada-init` again.');
376
+ return 7;
377
+ case 'network_error':
378
+ console.error(`✗ Network error: ${err.message}`);
379
+ return 8;
380
+ default:
381
+ console.error(`✗ ${err.message}`);
382
+ return 9;
383
+ }
384
+ }
385
+ console.error('✗ Unexpected error:', err);
386
+ return 99;
387
+ }
388
+ main().then((code) => process.exit(code), (err) => {
389
+ console.error('✗ Fatal error:', err);
390
+ process.exit(99);
391
+ });
392
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EACL,gBAAgB,EAChB,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAY3C,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,GAAG,GAAe;QACtB,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,KAAK;KACZ,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACrC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;YACrB,SAAS;QACX,CAAC;QACD,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACrD,IAAI,GAAG,KAAK,UAAU;gBAAE,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;iBACvC,IAAI,GAAG,KAAK,UAAU;gBAAE,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;iBAC5C,IAAI,GAAG,KAAK,QAAQ;gBAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;iBACzC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,8CAA8C;gBAC9C,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;YAC5D,CAAC;YACD,SAAS;QACX,CAAC;QACD,4BAA4B;QAC5B,IAAI,CAAC,GAAG,CAAC,KAAK;YAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;IAClC,CAAC;IAED,sEAAsE;IACtE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAuBX,CAAC,IAAI,EAAE,CAAC,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,EAAsB,EAAE,OAAe;IAC3D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,CAAS;IAC9B,OAAO,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,GAAG,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAS;QACxB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,SAAiC;IAEjC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,KAAK,IAAI,IAAI,CAAC;QAEzC,qEAAqE;QACrE,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,KAAK,GAAG,KAAK,CAAC,OAAO,CACnB,IAAI,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EACzC,KAAK,CAAC,oCAAoC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,EAAE;QACF,iDAAiD;QACjD,KAAK,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;QAC/B,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,gBAAgB,CAAC,GAAW;IACzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEnD,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAE7D,IACE,GAAG,CAAC,gBAAgB,CAAC;QACrB,GAAG,CAAC,gBAAgB,CAAC;QACrB,GAAG,CAAC,iBAAiB,CAAC;QACtB,GAAG,CAAC,iBAAiB,CAAC,EACtB,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IACD,IACE,GAAG,CAAC,gBAAgB,CAAC;QACrB,GAAG,CAAC,gBAAgB,CAAC;QACrB,GAAG,CAAC,iBAAiB,CAAC;QACtB,GAAG,CAAC,iBAAiB,CAAC,EACtB,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IACD,IACE,GAAG,CAAC,iBAAiB,CAAC;QACtB,GAAG,CAAC,iBAAiB,CAAC;QACtB,GAAG,CAAC,kBAAkB,CAAC,EACvB,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,0EAA0E;IAC1E,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAClF,MAAM,IAAI,GAAG;gBACX,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;gBAC3B,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;aAC/B,CAAC;YACF,IAAI,IAAI,CAAC,IAAI;gBAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,IAAI;gBAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,KAAK;gBAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,qEAAqE;QACrE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,OAAO,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,CAAC;YACjE,CAAC;YACD,KAAK,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAE/D,qEAAqE;QACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,KAAK,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC;gBACjB,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;aAC7D,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjB,qEAAqE;QACrE,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,YAAY,CAAC;QACjB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACtD,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBACnD,YAAY,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;oBACjC,KAAK;oBACL,IAAI;oBACJ,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;iBAC7D,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,MAAM;YACR,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,GAAG,YAAY,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAClE,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CACX,0EAA0E,CAC3E,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,qEAAqE;QACrE,qEAAqE;QACrE,qEAAqE;QACrE,kEAAkE;QAClE,4DAA4D;QAC5D,MAAM,SAAS,GAA2B;YACxC,cAAc,EAAE,YAAY,CAAC,MAAM;YACnC,eAAe,EAAE,YAAY,CAAC,OAAO;YACrC,iBAAiB,EAAE,YAAY,CAAC,SAAS;SAC1C,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,SAAS,CAAC,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;YAC/C,SAAS,CAAC,gBAAgB,GAAG,YAAY,CAAC;QAC5C,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,SAAS,CAAC,2BAA2B,GAAG,YAAY,CAAC,OAAO,CAAC;YAC7D,SAAS,CAAC,8BAA8B,GAAG,YAAY,CAAC;QAC1D,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,SAAS,CAAC,sBAAsB,GAAG,YAAY,CAAC,OAAO,CAAC;YACxD,SAAS,CAAC,yBAAyB,GAAG,YAAY,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACxC,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM;gBACtC,CAAC,CAAC,UAAU,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB;gBACnD,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,GAAG,CACT,0BAA0B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,cAAc,EAAE,CACpG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC3D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,OAAO,CAAC,GAAG,CAAC;;;aAGH,YAAY,CAAC,SAAS;aACtB,YAAY,CAAC,OAAO;aACpB,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,UAAU;;;;;;;;;;CAU3D,CAAC,CAAC;QAEC,OAAO,CAAC,CAAC;IACX,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAY;IACzC,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;QACnC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,cAAc;gBACjB,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAChB,OAAO,CAAC,KAAK,CACX,qBAAqB,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CACzD,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,KAAK,mBAAmB;gBACtB,OAAO,CAAC,KAAK,CAAC,4CAA4C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzE,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBACpE,OAAO,CAAC,CAAC;YACX,KAAK,SAAS,CAAC;YACf,KAAK,iBAAiB;gBACpB,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClC,OAAO,CAAC,CAAC;YACX,KAAK,mBAAmB;gBACtB,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClC,OAAO,CAAC,CAAC;YACX,KAAK,iBAAiB;gBACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnD,OAAO,CAAC,CAAC;YACX,KAAK,qBAAqB;gBACxB,OAAO,CAAC,KAAK,CAAC,0BAA0B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvD,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;gBAClF,OAAO,CAAC,CAAC;YACX,KAAK,eAAe;gBAClB,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjD,OAAO,CAAC,CAAC;YACX;gBACE,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClC,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;IAChD,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,147 @@
1
+ import type { Account, BalanceTransaction, Capability, ChargebackAlert, CreateAccountParams, CreateReportRunParams, CreateWebhookEndpointParams, Dispute, Document, DocumentUpload, ListAccountsParams, ListBalanceTransactionsParams, ListChargebackAlertsParams, ListDisputesParams, ListPayoutsParams, OnboardingLink, Page, PaymentsRestriction, Payout, PricingTemplate, ReportRun, Requirement, RequestOpts, TpaEvent, UpdateAccountParams, WebhookEndpoint } from './types.js';
2
+ /**
3
+ * A ClientTransport abstracts the wire protocol. Two impls exist:
4
+ * - InternalTransport (used by the Hub): calls local services in-process.
5
+ * - HttpTransport (used by partners and the future stand-alone tagadapay-app):
6
+ * makes HTTP requests to the published API.
7
+ *
8
+ * The Public SDK surface (TagadaPayClient) is identical regardless of
9
+ * transport — a consumer writes the same code for both.
10
+ */
11
+ export interface ClientTransport {
12
+ kind: 'internal' | 'http';
13
+ accountsCreate(payload: CreateAccountParams, opts?: RequestOpts): Promise<Account>;
14
+ accountsRetrieve(id: string, opts?: RequestOpts): Promise<Account>;
15
+ accountsUpdate(id: string, patch: UpdateAccountParams, opts?: RequestOpts): Promise<Account>;
16
+ accountsList(params: ListAccountsParams, opts?: RequestOpts): Promise<Page<Account>>;
17
+ accountsUploadDocument(id: string, doc: DocumentUpload, opts?: RequestOpts): Promise<Document>;
18
+ accountsListRequirements(id: string, opts?: RequestOpts): Promise<Requirement[]>;
19
+ accountsCreateOnboardingLink(id: string, opts?: RequestOpts): Promise<OnboardingLink>;
20
+ accountsListCapabilities(id: string, opts?: RequestOpts): Promise<Capability[]>;
21
+ payoutsList(params: ListPayoutsParams, opts?: RequestOpts): Promise<Page<Payout>>;
22
+ payoutsRetrieve(id: string, opts?: RequestOpts): Promise<Payout>;
23
+ disputesList(params: ListDisputesParams, opts?: RequestOpts): Promise<Page<Dispute>>;
24
+ disputesRetrieve(id: string, opts?: RequestOpts): Promise<Dispute>;
25
+ disputesSubmitEvidence(id: string, evidence: Record<string, unknown>, opts?: RequestOpts): Promise<Dispute>;
26
+ chargebackAlertsList(params: ListChargebackAlertsParams, opts?: RequestOpts): Promise<Page<ChargebackAlert>>;
27
+ chargebackAlertsRetrieve(id: string, opts?: RequestOpts): Promise<ChargebackAlert>;
28
+ chargebackAlertsAction(id: string, action: 'refund' | 'accept' | 'ignore', opts?: RequestOpts): Promise<ChargebackAlert>;
29
+ balanceTransactionsList(params: ListBalanceTransactionsParams, opts?: RequestOpts): Promise<Page<BalanceTransaction>>;
30
+ balanceTransactionsRetrieve(id: string, opts?: RequestOpts): Promise<BalanceTransaction>;
31
+ reportRunsCreate(params: CreateReportRunParams, opts?: RequestOpts): Promise<ReportRun>;
32
+ reportRunsRetrieve(id: string, opts?: RequestOpts): Promise<ReportRun>;
33
+ reportRunsList(cursor?: string, opts?: RequestOpts): Promise<Page<ReportRun>>;
34
+ webhookEndpointsCreate(params: CreateWebhookEndpointParams, opts?: RequestOpts): Promise<WebhookEndpoint>;
35
+ webhookEndpointsList(ownerType: 'merchant' | 'platform' | 'partner', ownerId: string, opts?: RequestOpts): Promise<Page<WebhookEndpoint>>;
36
+ webhookEndpointsUpdate(id: string, patch: Partial<Pick<WebhookEndpoint, 'url' | 'enabledEvents' | 'status'>>, opts?: RequestOpts): Promise<WebhookEndpoint>;
37
+ webhookEndpointsDelete(id: string, opts?: RequestOpts): Promise<void>;
38
+ pricingTemplatesCreate(params: Omit<PricingTemplate, 'object' | 'id' | 'createdAt' | 'status'> & {
39
+ ownerType: 'platform' | 'partner';
40
+ ownerId: string;
41
+ }, opts?: RequestOpts): Promise<PricingTemplate>;
42
+ pricingTemplatesList(ownerType: 'platform' | 'partner', ownerId: string, opts?: RequestOpts): Promise<Page<PricingTemplate>>;
43
+ pricingTemplatesRetrieve(id: string, opts?: RequestOpts): Promise<PricingTemplate>;
44
+ accountsPlacePaymentsRestriction(id: string, restriction: PaymentsRestriction, opts?: RequestOpts): Promise<Account>;
45
+ accountsReleasePaymentsRestriction(id: string, opts?: RequestOpts): Promise<Account>;
46
+ }
47
+ export interface TagadaPayClientConfig {
48
+ /** Merchant or partner API key (tgd_live_xxx / tgd_test_xxx / tgd_internal_xxx). */
49
+ apiKey?: string;
50
+ /** Internal trust secret used by the Hub in Phase A (fn-call instead of HTTP). */
51
+ internalTrust?: {
52
+ secret: string;
53
+ };
54
+ /** Public API base URL. Ignored by the InternalTransport. */
55
+ baseUrl?: string;
56
+ /** API pinned version header. */
57
+ apiVersion?: string;
58
+ /** Explicit transport override (useful for tests). */
59
+ transport?: ClientTransport;
60
+ }
61
+ /**
62
+ * TagadaPayClient — pluggable-transport client.
63
+ *
64
+ * Two transports:
65
+ *
66
+ * - `InternalTransport` for in-process Hub→TagadaPay handoff (no HTTP
67
+ * hop). Used by `src/app/services/tagadapay/client.ts`:
68
+ *
69
+ * const tagadapay = new TagadaPayClient({
70
+ * transport: createInternalTransport({ accounts: { create, retrieve } }),
71
+ * });
72
+ *
73
+ * - `HttpTransport` for the public `/api/tagadapay/v1/*` surface:
74
+ *
75
+ * const tagadapay = new TagadaPayClient({
76
+ * transport: createHttpTransport({ apiKey: 'tp_sk_***', baseUrl: '...' }),
77
+ * });
78
+ *
79
+ * For new partner / external code, prefer the modern `Tagada` client
80
+ * and the `tagada.partners.*` namespace — resource-keyed (Stripe-style)
81
+ * and exposed at the top level of `@tagadapay/node-sdk`.
82
+ */
83
+ export declare class TagadaPayClient {
84
+ private readonly transport;
85
+ private readonly apiVersion;
86
+ constructor(config: TagadaPayClientConfig);
87
+ accounts: {
88
+ create: (payload: CreateAccountParams, opts?: RequestOpts) => Promise<Account>;
89
+ retrieve: (id: string, opts?: RequestOpts) => Promise<Account>;
90
+ update: (id: string, patch: UpdateAccountParams, opts?: RequestOpts) => Promise<Account>;
91
+ list: (params: ListAccountsParams, opts?: RequestOpts) => Promise<Page<Account>>;
92
+ uploadDocument: (id: string, doc: DocumentUpload, opts?: RequestOpts) => Promise<Document>;
93
+ listRequirements: (id: string, opts?: RequestOpts) => Promise<Requirement[]>;
94
+ createOnboardingLink: (id: string, opts?: RequestOpts) => Promise<OnboardingLink>;
95
+ listCapabilities: (id: string, opts?: RequestOpts) => Promise<Capability[]>;
96
+ };
97
+ payouts: {
98
+ list: (params: ListPayoutsParams, opts?: RequestOpts) => Promise<Page<Payout>>;
99
+ retrieve: (id: string, opts?: RequestOpts) => Promise<Payout>;
100
+ };
101
+ disputes: {
102
+ list: (params: ListDisputesParams, opts?: RequestOpts) => Promise<Page<Dispute>>;
103
+ retrieve: (id: string, opts?: RequestOpts) => Promise<Dispute>;
104
+ submitEvidence: (id: string, evidence: Record<string, unknown>, opts?: RequestOpts) => Promise<Dispute>;
105
+ };
106
+ chargebackAlerts: {
107
+ list: (params: ListChargebackAlertsParams, opts?: RequestOpts) => Promise<Page<ChargebackAlert>>;
108
+ retrieve: (id: string, opts?: RequestOpts) => Promise<ChargebackAlert>;
109
+ action: (id: string, action: "refund" | "accept" | "ignore", opts?: RequestOpts) => Promise<ChargebackAlert>;
110
+ };
111
+ balanceTransactions: {
112
+ list: (params: ListBalanceTransactionsParams, opts?: RequestOpts) => Promise<Page<BalanceTransaction>>;
113
+ retrieve: (id: string, opts?: RequestOpts) => Promise<BalanceTransaction>;
114
+ };
115
+ reportRuns: {
116
+ create: (params: CreateReportRunParams, opts?: RequestOpts) => Promise<ReportRun>;
117
+ retrieve: (id: string, opts?: RequestOpts) => Promise<ReportRun>;
118
+ list: (cursor?: string, opts?: RequestOpts) => Promise<Page<ReportRun>>;
119
+ };
120
+ webhookEndpoints: {
121
+ create: (params: CreateWebhookEndpointParams, opts?: RequestOpts) => Promise<WebhookEndpoint>;
122
+ list: (ownerType: "merchant" | "platform" | "partner", ownerId: string, opts?: RequestOpts) => Promise<Page<WebhookEndpoint>>;
123
+ update: (id: string, patch: Partial<Pick<WebhookEndpoint, "url" | "enabledEvents" | "status">>, opts?: RequestOpts) => Promise<WebhookEndpoint>;
124
+ delete: (id: string, opts?: RequestOpts) => Promise<void>;
125
+ };
126
+ pricingTemplates: {
127
+ create: (params: Omit<PricingTemplate, "object" | "id" | "createdAt" | "status"> & {
128
+ ownerType: "platform" | "partner";
129
+ ownerId: string;
130
+ }, opts?: RequestOpts) => Promise<PricingTemplate>;
131
+ list: (ownerType: "platform" | "partner", ownerId: string, opts?: RequestOpts) => Promise<Page<PricingTemplate>>;
132
+ retrieve: (id: string, opts?: RequestOpts) => Promise<PricingTemplate>;
133
+ };
134
+ paymentsRestrictions: {
135
+ place: (id: string, restriction: PaymentsRestriction, opts?: RequestOpts) => Promise<Account>;
136
+ release: (id: string, opts?: RequestOpts) => Promise<Account>;
137
+ };
138
+ webhooks: {
139
+ /**
140
+ * Verify HMAC signature and parse the envelope. Spec-compat with
141
+ * Stripe-style signatures for portability (`t=<ts>,v1=<hex>`).
142
+ */
143
+ constructEvent: <T = unknown>(rawBody: string, signature: string, secret: string) => TpaEvent<T>;
144
+ };
145
+ private withVersion;
146
+ }
147
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/dashboard/client.ts"],"names":[],"mappings":"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"}