@prospera/eprospera-cli 0.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 (91) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +21 -0
  3. package/README.md +140 -0
  4. package/bin/eprospera.js +3 -0
  5. package/cli.ocs.yaml +406 -0
  6. package/dist/bundle/eprospera.mjs +28349 -0
  7. package/dist/completions/eprospera.bash +7 -0
  8. package/dist/completions/eprospera.fish +2 -0
  9. package/dist/completions/eprospera.ps1 +7 -0
  10. package/dist/completions/eprospera.zsh +4 -0
  11. package/dist/src/api/client.d.ts +29 -0
  12. package/dist/src/api/client.js +131 -0
  13. package/dist/src/api/errors.d.ts +11 -0
  14. package/dist/src/api/errors.js +125 -0
  15. package/dist/src/api/generated.d.ts +1159 -0
  16. package/dist/src/api/generated.js +6 -0
  17. package/dist/src/commands/application/create.d.ts +5 -0
  18. package/dist/src/commands/application/create.js +62 -0
  19. package/dist/src/commands/application/get.d.ts +2 -0
  20. package/dist/src/commands/application/get.js +11 -0
  21. package/dist/src/commands/application/list.d.ts +2 -0
  22. package/dist/src/commands/application/list.js +8 -0
  23. package/dist/src/commands/application/pay.d.ts +5 -0
  24. package/dist/src/commands/application/pay.js +27 -0
  25. package/dist/src/commands/application/watch.d.ts +7 -0
  26. package/dist/src/commands/application/watch.js +42 -0
  27. package/dist/src/commands/auth/login.d.ts +7 -0
  28. package/dist/src/commands/auth/login.js +60 -0
  29. package/dist/src/commands/auth/logout.d.ts +2 -0
  30. package/dist/src/commands/auth/logout.js +14 -0
  31. package/dist/src/commands/auth/whoami.d.ts +2 -0
  32. package/dist/src/commands/auth/whoami.js +19 -0
  33. package/dist/src/commands/completion.d.ts +3 -0
  34. package/dist/src/commands/completion.js +80 -0
  35. package/dist/src/commands/config/get.d.ts +2 -0
  36. package/dist/src/commands/config/get.js +9 -0
  37. package/dist/src/commands/config/list.d.ts +2 -0
  38. package/dist/src/commands/config/list.js +7 -0
  39. package/dist/src/commands/config/set.d.ts +2 -0
  40. package/dist/src/commands/config/set.js +9 -0
  41. package/dist/src/commands/config/unset.d.ts +2 -0
  42. package/dist/src/commands/config/unset.js +9 -0
  43. package/dist/src/commands/entity/documents.d.ts +2 -0
  44. package/dist/src/commands/entity/documents.js +11 -0
  45. package/dist/src/commands/entity/get.d.ts +2 -0
  46. package/dist/src/commands/entity/get.js +11 -0
  47. package/dist/src/commands/entity/search.d.ts +2 -0
  48. package/dist/src/commands/entity/search.js +17 -0
  49. package/dist/src/commands/entity/verify.d.ts +2 -0
  50. package/dist/src/commands/entity/verify.js +9 -0
  51. package/dist/src/commands/files.d.ts +2 -0
  52. package/dist/src/commands/files.js +24 -0
  53. package/dist/src/commands/me/id-verification.d.ts +2 -0
  54. package/dist/src/commands/me/id-verification.js +8 -0
  55. package/dist/src/commands/me/profile.d.ts +2 -0
  56. package/dist/src/commands/me/profile.js +8 -0
  57. package/dist/src/commands/me/residency.d.ts +2 -0
  58. package/dist/src/commands/me/residency.js +8 -0
  59. package/dist/src/commands/runtime.d.ts +56 -0
  60. package/dist/src/commands/runtime.js +101 -0
  61. package/dist/src/commands/schema.d.ts +2 -0
  62. package/dist/src/commands/schema.js +13 -0
  63. package/dist/src/config/store.d.ts +14 -0
  64. package/dist/src/config/store.js +99 -0
  65. package/dist/src/credentials/resolve.d.ts +15 -0
  66. package/dist/src/credentials/resolve.js +63 -0
  67. package/dist/src/credentials/store.d.ts +22 -0
  68. package/dist/src/credentials/store.js +184 -0
  69. package/dist/src/credentials/types.d.ts +15 -0
  70. package/dist/src/credentials/types.js +5 -0
  71. package/dist/src/errors.d.ts +39 -0
  72. package/dist/src/errors.js +38 -0
  73. package/dist/src/index.d.ts +4 -0
  74. package/dist/src/index.js +244 -0
  75. package/dist/src/output/format.d.ts +27 -0
  76. package/dist/src/output/format.js +126 -0
  77. package/dist/src/output/table.d.ts +5 -0
  78. package/dist/src/output/table.js +124 -0
  79. package/dist/src/output/tty.d.ts +26 -0
  80. package/dist/src/output/tty.js +41 -0
  81. package/dist/src/polling/watch.d.ts +19 -0
  82. package/dist/src/polling/watch.js +86 -0
  83. package/dist/src/prompts/confirm.d.ts +2 -0
  84. package/dist/src/prompts/confirm.js +19 -0
  85. package/dist/src/scopes/check.d.ts +17 -0
  86. package/dist/src/scopes/check.js +64 -0
  87. package/dist/src/scopes/map.d.ts +81 -0
  88. package/dist/src/scopes/map.js +76 -0
  89. package/dist/src/version.d.ts +1 -0
  90. package/dist/src/version.js +35 -0
  91. package/package.json +70 -0
@@ -0,0 +1,1159 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export interface paths {
6
+ "/api/v1/verify_rpn": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ get?: never;
14
+ put?: never;
15
+ /**
16
+ * Verify whether an RPN exists and is active
17
+ * @description Rate-limited to 5,000 requests / 24 h and 50 / minute per API key.
18
+ */
19
+ post: {
20
+ parameters: {
21
+ query?: never;
22
+ header?: never;
23
+ path?: never;
24
+ cookie?: never;
25
+ };
26
+ requestBody: {
27
+ content: {
28
+ "application/json": {
29
+ /** @example 80000000000012 */
30
+ rpn: string;
31
+ };
32
+ };
33
+ };
34
+ responses: {
35
+ /** @description Lookup result */
36
+ 200: {
37
+ headers: {
38
+ [name: string]: unknown;
39
+ };
40
+ content: {
41
+ "application/json": {
42
+ /** @enum {string} */
43
+ result: "found_legal_entity" | "found_natural_person" | "not_found";
44
+ active: boolean;
45
+ };
46
+ };
47
+ };
48
+ 400: components["responses"]["BadRequest"];
49
+ 401: components["responses"]["Unauthorized"];
50
+ 403: components["responses"]["Forbidden"];
51
+ 429: components["responses"]["RateLimited"];
52
+ 500: components["responses"]["InternalError"];
53
+ };
54
+ };
55
+ delete?: never;
56
+ options?: never;
57
+ head?: never;
58
+ patch?: never;
59
+ trace?: never;
60
+ };
61
+ "/api/v1/registries/legal_entities/search": {
62
+ parameters: {
63
+ query?: never;
64
+ header?: never;
65
+ path?: never;
66
+ cookie?: never;
67
+ };
68
+ get?: never;
69
+ put?: never;
70
+ /**
71
+ * Free-text search of the legal-entity registry
72
+ * @description Multi-word queries split on whitespace. Case-insensitive name match plus partial RPN match.
73
+ * Rate-limited to 5,000 / 24 h and 50 / minute per API key.
74
+ */
75
+ post: {
76
+ parameters: {
77
+ query?: never;
78
+ header?: never;
79
+ path?: never;
80
+ cookie?: never;
81
+ };
82
+ requestBody: {
83
+ content: {
84
+ "application/json": {
85
+ /** @example Acme Holdings */
86
+ query: string;
87
+ };
88
+ };
89
+ };
90
+ responses: {
91
+ /** @description Matching legal entities */
92
+ 200: {
93
+ headers: {
94
+ [name: string]: unknown;
95
+ };
96
+ content: {
97
+ "application/json": {
98
+ results?: {
99
+ /** Format: uuid */
100
+ id?: string;
101
+ name?: string;
102
+ extension?: string;
103
+ residentPermitNumber?: string | null;
104
+ }[];
105
+ };
106
+ };
107
+ };
108
+ 400: components["responses"]["BadRequest"];
109
+ 401: components["responses"]["Unauthorized"];
110
+ 403: components["responses"]["Forbidden"];
111
+ 429: components["responses"]["RateLimited"];
112
+ 500: components["responses"]["InternalError"];
113
+ };
114
+ };
115
+ delete?: never;
116
+ options?: never;
117
+ head?: never;
118
+ patch?: never;
119
+ trace?: never;
120
+ };
121
+ "/api/v1/legal_entities/{id}": {
122
+ parameters: {
123
+ query?: never;
124
+ header?: never;
125
+ path?: never;
126
+ cookie?: never;
127
+ };
128
+ /**
129
+ * Fetch one legal entity
130
+ * @description Agent Keys can only access entities whose underlying residency application
131
+ * was created via the API (`residencyApplication.createdViaAPI === true`).
132
+ */
133
+ get: {
134
+ parameters: {
135
+ query?: never;
136
+ header?: never;
137
+ path: {
138
+ id: components["parameters"]["LegalEntityId"];
139
+ };
140
+ cookie?: never;
141
+ };
142
+ requestBody?: never;
143
+ responses: {
144
+ /** @description The legal-entity record */
145
+ 200: {
146
+ headers: {
147
+ [name: string]: unknown;
148
+ };
149
+ content: {
150
+ "application/json": {
151
+ data?: components["schemas"]["LegalEntity"];
152
+ };
153
+ };
154
+ };
155
+ 401: components["responses"]["Unauthorized"];
156
+ 403: components["responses"]["Forbidden"];
157
+ 404: components["responses"]["NotFound"];
158
+ 500: components["responses"]["InternalError"];
159
+ };
160
+ };
161
+ put?: never;
162
+ post?: never;
163
+ delete?: never;
164
+ options?: never;
165
+ head?: never;
166
+ patch?: never;
167
+ trace?: never;
168
+ };
169
+ "/api/v1/legal_entities/{id}/documents": {
170
+ parameters: {
171
+ query?: never;
172
+ header?: never;
173
+ path?: never;
174
+ cookie?: never;
175
+ };
176
+ /**
177
+ * List documents for a legal entity
178
+ * @description Not currently paginated — full result set is returned under `data`.
179
+ * See https://portal.eprospera.com/api-docs/conventions#pagination.
180
+ */
181
+ get: {
182
+ parameters: {
183
+ query?: never;
184
+ header?: never;
185
+ path: {
186
+ id: components["parameters"]["LegalEntityId"];
187
+ };
188
+ cookie?: never;
189
+ };
190
+ requestBody?: never;
191
+ responses: {
192
+ /** @description Documents for the entity */
193
+ 200: {
194
+ headers: {
195
+ [name: string]: unknown;
196
+ };
197
+ content: {
198
+ "application/json": {
199
+ data?: components["schemas"]["Document"][];
200
+ };
201
+ };
202
+ };
203
+ 401: components["responses"]["Unauthorized"];
204
+ 403: components["responses"]["Forbidden"];
205
+ 404: components["responses"]["NotFound"];
206
+ 500: components["responses"]["InternalError"];
207
+ };
208
+ };
209
+ put?: never;
210
+ post?: never;
211
+ delete?: never;
212
+ options?: never;
213
+ head?: never;
214
+ patch?: never;
215
+ trace?: never;
216
+ };
217
+ "/api/v1/legal_entity_applications": {
218
+ parameters: {
219
+ query?: never;
220
+ header?: never;
221
+ path?: never;
222
+ cookie?: never;
223
+ };
224
+ /**
225
+ * List legal-entity applications
226
+ * @description Agent Keys see only API-created applications (`createdViaAPI=true`).
227
+ * Not currently paginated.
228
+ */
229
+ get: {
230
+ parameters: {
231
+ query?: never;
232
+ header?: never;
233
+ path?: never;
234
+ cookie?: never;
235
+ };
236
+ requestBody?: never;
237
+ responses: {
238
+ /** @description Applications visible to the caller */
239
+ 200: {
240
+ headers: {
241
+ [name: string]: unknown;
242
+ };
243
+ content: {
244
+ "application/json": {
245
+ data?: components["schemas"]["LegalEntityApplication"][];
246
+ };
247
+ };
248
+ };
249
+ 401: components["responses"]["Unauthorized"];
250
+ 500: components["responses"]["InternalError"];
251
+ };
252
+ };
253
+ put?: never;
254
+ /**
255
+ * Create a legal-entity application
256
+ * @description Write Agent Keys require an active Manifestation of Will. With AOC pre-acceptance
257
+ * the application auto-progresses on payment; otherwise `nextSteps.signature` returns
258
+ * a browser URL the human must visit.
259
+ */
260
+ post: {
261
+ parameters: {
262
+ query?: never;
263
+ header?: never;
264
+ path?: never;
265
+ cookie?: never;
266
+ };
267
+ requestBody: {
268
+ content: {
269
+ "application/json": components["schemas"]["CreateLegalEntityApplicationRequest"];
270
+ };
271
+ };
272
+ responses: {
273
+ /** @description Application created */
274
+ 200: {
275
+ headers: {
276
+ [name: string]: unknown;
277
+ };
278
+ content: {
279
+ "application/json": {
280
+ data?: components["schemas"]["LegalEntityApplication"];
281
+ nextSteps?: {
282
+ /** Format: uri */
283
+ signature?: string | null;
284
+ };
285
+ };
286
+ };
287
+ };
288
+ 400: components["responses"]["BadRequest"];
289
+ 401: components["responses"]["Unauthorized"];
290
+ 403: components["responses"]["Forbidden"];
291
+ 409: components["responses"]["Conflict"];
292
+ 500: components["responses"]["InternalError"];
293
+ };
294
+ };
295
+ delete?: never;
296
+ options?: never;
297
+ head?: never;
298
+ patch?: never;
299
+ trace?: never;
300
+ };
301
+ "/api/v1/legal_entity_applications/{id}": {
302
+ parameters: {
303
+ query?: never;
304
+ header?: never;
305
+ path?: never;
306
+ cookie?: never;
307
+ };
308
+ /** Fetch one application */
309
+ get: {
310
+ parameters: {
311
+ query?: never;
312
+ header?: never;
313
+ path: {
314
+ id: components["parameters"]["ApplicationId"];
315
+ };
316
+ cookie?: never;
317
+ };
318
+ requestBody?: never;
319
+ responses: {
320
+ /** @description Application */
321
+ 200: {
322
+ headers: {
323
+ [name: string]: unknown;
324
+ };
325
+ content: {
326
+ "application/json": {
327
+ data?: components["schemas"]["LegalEntityApplication"];
328
+ };
329
+ };
330
+ };
331
+ 401: components["responses"]["Unauthorized"];
332
+ 404: components["responses"]["NotFound"];
333
+ 500: components["responses"]["InternalError"];
334
+ };
335
+ };
336
+ put?: never;
337
+ post?: never;
338
+ delete?: never;
339
+ options?: never;
340
+ head?: never;
341
+ patch?: never;
342
+ trace?: never;
343
+ };
344
+ "/api/v1/legal_entity_applications/{id}/pay/coupon": {
345
+ parameters: {
346
+ query?: never;
347
+ header?: never;
348
+ path?: never;
349
+ cookie?: never;
350
+ };
351
+ get?: never;
352
+ put?: never;
353
+ /** Apply a coupon that fully covers the invoice */
354
+ post: {
355
+ parameters: {
356
+ query?: never;
357
+ header?: never;
358
+ path: {
359
+ id: components["parameters"]["ApplicationId"];
360
+ };
361
+ cookie?: never;
362
+ };
363
+ requestBody: {
364
+ content: {
365
+ "application/json": {
366
+ couponCode: string;
367
+ };
368
+ };
369
+ };
370
+ responses: {
371
+ /** @description Coupon applied */
372
+ 200: {
373
+ headers: {
374
+ [name: string]: unknown;
375
+ };
376
+ content: {
377
+ "application/json": {
378
+ success?: boolean;
379
+ data?: components["schemas"]["LegalEntityApplication"];
380
+ message?: string;
381
+ };
382
+ };
383
+ };
384
+ 400: components["responses"]["BadRequest"];
385
+ 401: components["responses"]["Unauthorized"];
386
+ 403: components["responses"]["Forbidden"];
387
+ 404: components["responses"]["NotFound"];
388
+ 409: components["responses"]["Conflict"];
389
+ 500: components["responses"]["InternalError"];
390
+ };
391
+ };
392
+ delete?: never;
393
+ options?: never;
394
+ head?: never;
395
+ patch?: never;
396
+ trace?: never;
397
+ };
398
+ "/api/v1/legal_entity_applications/{id}/checkout_session": {
399
+ parameters: {
400
+ query?: never;
401
+ header?: never;
402
+ path?: never;
403
+ cookie?: never;
404
+ };
405
+ get?: never;
406
+ put?: never;
407
+ /**
408
+ * Create a hosted-checkout session for the application invoice
409
+ * @description Standard API keys only. Agent Key hosted-checkout creation is temporarily disabled;
410
+ * use the coupon-payment endpoint or have the resident pay through the portal.
411
+ */
412
+ post: {
413
+ parameters: {
414
+ query?: never;
415
+ header?: never;
416
+ path: {
417
+ id: components["parameters"]["ApplicationId"];
418
+ };
419
+ cookie?: never;
420
+ };
421
+ requestBody: {
422
+ content: {
423
+ "application/json": {
424
+ /** @enum {string} */
425
+ paymentProvider: "stripe" | "stripe-crypto" | "lnbits" | "solana-pay-ptc";
426
+ /** Format: uri */
427
+ redirectUrl: string;
428
+ /** Format: email */
429
+ email?: string | null;
430
+ };
431
+ };
432
+ };
433
+ responses: {
434
+ /** @description Checkout session created */
435
+ 200: {
436
+ headers: {
437
+ [name: string]: unknown;
438
+ };
439
+ content: {
440
+ "application/json": {
441
+ data?: {
442
+ /** Format: uri */
443
+ url?: string;
444
+ };
445
+ /** Format: uuid */
446
+ invoiceId?: string;
447
+ };
448
+ };
449
+ };
450
+ 400: components["responses"]["BadRequest"];
451
+ 401: components["responses"]["Unauthorized"];
452
+ 403: components["responses"]["Forbidden"];
453
+ 404: components["responses"]["NotFound"];
454
+ 500: components["responses"]["InternalError"];
455
+ /** @description Agent Key checkout sessions are temporarily disabled */
456
+ 503: {
457
+ headers: {
458
+ [name: string]: unknown;
459
+ };
460
+ content: {
461
+ "application/json": {
462
+ error?: string;
463
+ };
464
+ };
465
+ };
466
+ };
467
+ };
468
+ delete?: never;
469
+ options?: never;
470
+ head?: never;
471
+ patch?: never;
472
+ trace?: never;
473
+ };
474
+ "/api/v1/referral-codes/{code}/referrals": {
475
+ parameters: {
476
+ query?: never;
477
+ header?: never;
478
+ path?: never;
479
+ cookie?: never;
480
+ };
481
+ /**
482
+ * List referrals for a code you own
483
+ * @description Standard API keys only — Agent Keys are not supported on this route.
484
+ */
485
+ get: {
486
+ parameters: {
487
+ query?: never;
488
+ header?: never;
489
+ path: {
490
+ code: string;
491
+ };
492
+ cookie?: never;
493
+ };
494
+ requestBody?: never;
495
+ responses: {
496
+ /** @description Referral attribution */
497
+ 200: {
498
+ headers: {
499
+ [name: string]: unknown;
500
+ };
501
+ content: {
502
+ "application/json": {
503
+ code?: string;
504
+ naturalPersons?: {
505
+ fullName?: string | null;
506
+ /** Format: date-time */
507
+ referredAt?: string;
508
+ }[];
509
+ legalEntities?: {
510
+ name?: string;
511
+ rpn?: string;
512
+ /** Format: date-time */
513
+ referredAt?: string | null;
514
+ }[];
515
+ };
516
+ };
517
+ };
518
+ 401: components["responses"]["Unauthorized"];
519
+ 404: components["responses"]["NotFound"];
520
+ 500: components["responses"]["InternalError"];
521
+ };
522
+ };
523
+ put?: never;
524
+ post?: never;
525
+ delete?: never;
526
+ options?: never;
527
+ head?: never;
528
+ patch?: never;
529
+ trace?: never;
530
+ };
531
+ "/api/v1/me/natural-person": {
532
+ parameters: {
533
+ query?: never;
534
+ header?: never;
535
+ path?: never;
536
+ cookie?: never;
537
+ };
538
+ /**
539
+ * Personal details for the authenticated user
540
+ * @description Accepts OAuth tokens (with `eprospera:person.details.read`) and Agent Keys
541
+ * (with `agent:person.details.read`). Standard API keys are NOT accepted here.
542
+ * Returns `null` if the owner has no approved residency.
543
+ */
544
+ get: {
545
+ parameters: {
546
+ query?: never;
547
+ header?: never;
548
+ path?: never;
549
+ cookie?: never;
550
+ };
551
+ requestBody?: never;
552
+ responses: {
553
+ /** @description Personal details, or null */
554
+ 200: {
555
+ headers: {
556
+ [name: string]: unknown;
557
+ };
558
+ content: {
559
+ "application/json": components["schemas"]["NaturalPerson"] | null;
560
+ };
561
+ };
562
+ 401: components["responses"]["Unauthorized"];
563
+ 403: components["responses"]["Forbidden"];
564
+ 500: components["responses"]["InternalError"];
565
+ };
566
+ };
567
+ put?: never;
568
+ post?: never;
569
+ delete?: never;
570
+ options?: never;
571
+ head?: never;
572
+ patch?: never;
573
+ trace?: never;
574
+ };
575
+ "/api/v1/me/natural-person/id-verification": {
576
+ parameters: {
577
+ query?: never;
578
+ header?: never;
579
+ path?: never;
580
+ cookie?: never;
581
+ };
582
+ /** ID-verification artifacts (signed URLs, ~1 h TTL) */
583
+ get: {
584
+ parameters: {
585
+ query?: never;
586
+ header?: never;
587
+ path?: never;
588
+ cookie?: never;
589
+ };
590
+ requestBody?: never;
591
+ responses: {
592
+ /** @description ID verification record */
593
+ 200: {
594
+ headers: {
595
+ [name: string]: unknown;
596
+ };
597
+ content: {
598
+ "application/json": components["schemas"]["IdVerification"];
599
+ };
600
+ };
601
+ 401: components["responses"]["Unauthorized"];
602
+ 403: components["responses"]["Forbidden"];
603
+ 500: components["responses"]["InternalError"];
604
+ };
605
+ };
606
+ put?: never;
607
+ post?: never;
608
+ delete?: never;
609
+ options?: never;
610
+ head?: never;
611
+ patch?: never;
612
+ trace?: never;
613
+ };
614
+ "/api/v1/me/natural-person/residency": {
615
+ parameters: {
616
+ query?: never;
617
+ header?: never;
618
+ path?: never;
619
+ cookie?: never;
620
+ };
621
+ /** Residency status for the authenticated user */
622
+ get: {
623
+ parameters: {
624
+ query?: never;
625
+ header?: never;
626
+ path?: never;
627
+ cookie?: never;
628
+ };
629
+ requestBody?: never;
630
+ responses: {
631
+ /** @description Residency status */
632
+ 200: {
633
+ headers: {
634
+ [name: string]: unknown;
635
+ };
636
+ content: {
637
+ "application/json": {
638
+ wasEverResident?: boolean;
639
+ activeResidency?: {
640
+ /** Format: date-time */
641
+ effectiveDate?: string;
642
+ /** Format: date-time */
643
+ terminationDate?: string | null;
644
+ /** @enum {string} */
645
+ residencyType?: "Limited e-Resident" | "e-Resident" | "Resident";
646
+ version?: string;
647
+ } | null;
648
+ };
649
+ };
650
+ };
651
+ 401: components["responses"]["Unauthorized"];
652
+ 403: components["responses"]["Forbidden"];
653
+ 500: components["responses"]["InternalError"];
654
+ };
655
+ };
656
+ put?: never;
657
+ post?: never;
658
+ delete?: never;
659
+ options?: never;
660
+ head?: never;
661
+ patch?: never;
662
+ trace?: never;
663
+ };
664
+ "/api/v1/me/legal-entities": {
665
+ parameters: {
666
+ query?: never;
667
+ header?: never;
668
+ path?: never;
669
+ cookie?: never;
670
+ };
671
+ /** List the user's consented legal entities (OAuth only) */
672
+ get: {
673
+ parameters: {
674
+ query?: never;
675
+ header?: never;
676
+ path?: never;
677
+ cookie?: never;
678
+ };
679
+ requestBody?: never;
680
+ responses: {
681
+ /** @description Legal entities the user consented to share */
682
+ 200: {
683
+ headers: {
684
+ [name: string]: unknown;
685
+ };
686
+ content: {
687
+ "application/json": {
688
+ data?: components["schemas"]["LegalEntitySummary"][];
689
+ };
690
+ };
691
+ };
692
+ 401: components["responses"]["Unauthorized"];
693
+ 500: components["responses"]["InternalError"];
694
+ };
695
+ };
696
+ put?: never;
697
+ post?: never;
698
+ delete?: never;
699
+ options?: never;
700
+ head?: never;
701
+ patch?: never;
702
+ trace?: never;
703
+ };
704
+ "/api/v1/me/legal-entities/{id}": {
705
+ parameters: {
706
+ query?: never;
707
+ header?: never;
708
+ path?: never;
709
+ cookie?: never;
710
+ };
711
+ /** Fetch one consented legal entity (OAuth only) */
712
+ get: {
713
+ parameters: {
714
+ query?: never;
715
+ header?: never;
716
+ path: {
717
+ id: components["parameters"]["LegalEntityId"];
718
+ };
719
+ cookie?: never;
720
+ };
721
+ requestBody?: never;
722
+ responses: {
723
+ /** @description The legal-entity record */
724
+ 200: {
725
+ headers: {
726
+ [name: string]: unknown;
727
+ };
728
+ content: {
729
+ "application/json": {
730
+ data?: components["schemas"]["LegalEntity"];
731
+ };
732
+ };
733
+ };
734
+ 401: components["responses"]["Unauthorized"];
735
+ 404: components["responses"]["NotFound"];
736
+ 500: components["responses"]["InternalError"];
737
+ };
738
+ };
739
+ put?: never;
740
+ post?: never;
741
+ delete?: never;
742
+ options?: never;
743
+ head?: never;
744
+ patch?: never;
745
+ trace?: never;
746
+ };
747
+ "/api/v1/me/legal-entities/{id}/documents": {
748
+ parameters: {
749
+ query?: never;
750
+ header?: never;
751
+ path?: never;
752
+ cookie?: never;
753
+ };
754
+ /** List documents for a consented legal entity (OAuth only) */
755
+ get: {
756
+ parameters: {
757
+ query?: never;
758
+ header?: never;
759
+ path: {
760
+ id: components["parameters"]["LegalEntityId"];
761
+ };
762
+ cookie?: never;
763
+ };
764
+ requestBody?: never;
765
+ responses: {
766
+ /** @description Documents */
767
+ 200: {
768
+ headers: {
769
+ [name: string]: unknown;
770
+ };
771
+ content: {
772
+ "application/json": {
773
+ data?: components["schemas"]["Document"][];
774
+ };
775
+ };
776
+ };
777
+ 401: components["responses"]["Unauthorized"];
778
+ 404: components["responses"]["NotFound"];
779
+ 500: components["responses"]["InternalError"];
780
+ };
781
+ };
782
+ put?: never;
783
+ post?: never;
784
+ delete?: never;
785
+ options?: never;
786
+ head?: never;
787
+ patch?: never;
788
+ trace?: never;
789
+ };
790
+ "/api/oauth/authorize": {
791
+ parameters: {
792
+ query?: never;
793
+ header?: never;
794
+ path?: never;
795
+ cookie?: never;
796
+ };
797
+ /** OAuth 2.0 authorization endpoint (RFC 6749 §4.1) */
798
+ get: {
799
+ parameters: {
800
+ query: {
801
+ client_id: string;
802
+ redirect_uri: string;
803
+ response_type: "code";
804
+ scope: string;
805
+ state: string;
806
+ /** @description Required when `openid` is in `scope`. */
807
+ nonce?: string;
808
+ response_mode?: "query" | "fragment" | "form_post";
809
+ code_challenge?: string;
810
+ code_challenge_method?: "S256";
811
+ };
812
+ header?: never;
813
+ path?: never;
814
+ cookie?: never;
815
+ };
816
+ requestBody?: never;
817
+ responses: {
818
+ /**
819
+ * @description Redirects to the consent screen, then to `redirect_uri` with `code` and `state`
820
+ * (or `error=access_denied&state=...` on denial).
821
+ */
822
+ 302: {
823
+ headers: {
824
+ [name: string]: unknown;
825
+ };
826
+ content?: never;
827
+ };
828
+ };
829
+ };
830
+ put?: never;
831
+ post?: never;
832
+ delete?: never;
833
+ options?: never;
834
+ head?: never;
835
+ patch?: never;
836
+ trace?: never;
837
+ };
838
+ "/api/oauth/token": {
839
+ parameters: {
840
+ query?: never;
841
+ header?: never;
842
+ path?: never;
843
+ cookie?: never;
844
+ };
845
+ get?: never;
846
+ put?: never;
847
+ /** OAuth 2.0 token endpoint */
848
+ post: {
849
+ parameters: {
850
+ query?: never;
851
+ header?: never;
852
+ path?: never;
853
+ cookie?: never;
854
+ };
855
+ requestBody: {
856
+ content: {
857
+ "application/x-www-form-urlencoded": {
858
+ /** @enum {string} */
859
+ grant_type: "authorization_code";
860
+ code: string;
861
+ /** Format: uri */
862
+ redirect_uri: string;
863
+ code_verifier?: string;
864
+ client_id?: string;
865
+ client_secret?: string;
866
+ } | {
867
+ /** @enum {string} */
868
+ grant_type: "refresh_token";
869
+ refresh_token: string;
870
+ scope?: string;
871
+ client_id?: string;
872
+ client_secret?: string;
873
+ };
874
+ };
875
+ };
876
+ responses: {
877
+ /** @description Token response (RFC 6749 §5.1) */
878
+ 200: {
879
+ headers: {
880
+ "Cache-Control"?: "no-store";
881
+ Pragma?: "no-cache";
882
+ [name: string]: unknown;
883
+ };
884
+ content: {
885
+ "application/json": {
886
+ access_token: string;
887
+ /** @enum {string} */
888
+ token_type: "Bearer";
889
+ /** @example 3600 */
890
+ expires_in: number;
891
+ scope: string;
892
+ id_token?: string;
893
+ refresh_token?: string;
894
+ };
895
+ };
896
+ };
897
+ 400: components["responses"]["BadRequest"];
898
+ 401: components["responses"]["Unauthorized"];
899
+ 500: components["responses"]["InternalError"];
900
+ };
901
+ };
902
+ delete?: never;
903
+ options?: never;
904
+ head?: never;
905
+ patch?: never;
906
+ trace?: never;
907
+ };
908
+ "/api/oauth/userinfo": {
909
+ parameters: {
910
+ query?: never;
911
+ header?: never;
912
+ path?: never;
913
+ cookie?: never;
914
+ };
915
+ /** OIDC userinfo endpoint */
916
+ get: {
917
+ parameters: {
918
+ query?: never;
919
+ header?: never;
920
+ path?: never;
921
+ cookie?: never;
922
+ };
923
+ requestBody?: never;
924
+ responses: {
925
+ /** @description Userinfo claims (subset depends on granted scopes) */
926
+ 200: {
927
+ headers: {
928
+ [name: string]: unknown;
929
+ };
930
+ content: {
931
+ "application/json": {
932
+ sub: string;
933
+ name?: string | null;
934
+ given_name?: string | null;
935
+ family_name?: string | null;
936
+ /** Format: uri */
937
+ picture?: string | null;
938
+ /** Format: email */
939
+ email?: string | null;
940
+ email_verified?: boolean;
941
+ };
942
+ };
943
+ };
944
+ 401: components["responses"]["Unauthorized"];
945
+ 404: components["responses"]["NotFound"];
946
+ };
947
+ };
948
+ put?: never;
949
+ post?: never;
950
+ delete?: never;
951
+ options?: never;
952
+ head?: never;
953
+ patch?: never;
954
+ trace?: never;
955
+ };
956
+ }
957
+ export type webhooks = Record<string, never>;
958
+ export interface components {
959
+ schemas: {
960
+ ErrorEnvelope: {
961
+ error: string;
962
+ error_description?: string;
963
+ details?: Record<string, never>[];
964
+ };
965
+ Address: {
966
+ country?: string;
967
+ line1?: string;
968
+ line2?: string | null;
969
+ city?: string;
970
+ state?: string | null;
971
+ postalCode?: string;
972
+ };
973
+ LegalEntitySummary: {
974
+ /** Format: uuid */
975
+ id?: string;
976
+ /** @example llc */
977
+ optionId?: string;
978
+ /** @example Limited Liability Company */
979
+ type?: string;
980
+ name?: string;
981
+ extension?: string;
982
+ nameStartsWithExtension?: boolean;
983
+ residentPermitNumber?: string | null;
984
+ };
985
+ LegalEntity: components["schemas"]["LegalEntitySummary"] & {
986
+ /** Format: date-time */
987
+ formationDate?: string | null;
988
+ /** Format: date-time */
989
+ registrationDate?: string | null;
990
+ /** Format: date-time */
991
+ dissolutionDate?: string | null;
992
+ /** Format: date-time */
993
+ createdAt?: string;
994
+ principalOfficeAddress?: components["schemas"]["Address"] | null;
995
+ };
996
+ Document: {
997
+ /** Format: uuid */
998
+ id?: string;
999
+ name?: string;
1000
+ slug?: string | null;
1001
+ version?: string | number;
1002
+ /** Format: uri */
1003
+ fileUrl?: string;
1004
+ /** Format: date-time */
1005
+ createdAt?: string;
1006
+ };
1007
+ LegalEntityApplication: {
1008
+ /** Format: uuid */
1009
+ id?: string;
1010
+ /** @enum {string} */
1011
+ statusId?: "Draft" | "Pending Review" | "Approved" | "Rejected";
1012
+ /** @description Stored internal format. Not the same shape as the create body. */
1013
+ applicationData?: Record<string, never>;
1014
+ applicationVersion?: string;
1015
+ /** Format: date-time */
1016
+ submittedAt?: string | null;
1017
+ /** Format: date-time */
1018
+ createdAt?: string;
1019
+ /** Format: date-time */
1020
+ approvedAt?: string | null;
1021
+ /** Format: date-time */
1022
+ rejectedAt?: string | null;
1023
+ /** Format: uuid */
1024
+ legalEntityId?: string | null;
1025
+ };
1026
+ CreateLegalEntityApplicationRequest: {
1027
+ applicationData: {
1028
+ /** @enum {string} */
1029
+ residencyType: "e-Resident" | "Resident";
1030
+ /** @enum {string} */
1031
+ entityType: "llc";
1032
+ name: string;
1033
+ /** @enum {string} */
1034
+ extension: "LLC" | "L.L.C." | "Limited Liability Company" | "S. de R.L." | "SRL" | "Limited Company" | "L.C." | "LC" | "Limited Liability Co." | "Limited Co." | "Ltd. Co.";
1035
+ principalOffice: components["schemas"]["Address"];
1036
+ /** Format: email */
1037
+ contactEmail: string;
1038
+ /** @enum {string|null} */
1039
+ registeredAgentProvider?: "prospera_employment_solutions" | null;
1040
+ registeredAgentDetails?: {
1041
+ attn?: string;
1042
+ residentPermitNumber?: string;
1043
+ officeAddress?: components["schemas"]["Address"];
1044
+ mailingAddress?: components["schemas"]["Address"];
1045
+ } | null;
1046
+ analytics?: {
1047
+ [key: string]: unknown;
1048
+ };
1049
+ };
1050
+ referralCode?: string;
1051
+ /** Format: uri */
1052
+ redirectUrl?: string;
1053
+ };
1054
+ NaturalPerson: {
1055
+ givenName?: string;
1056
+ surname?: string;
1057
+ name?: string;
1058
+ residentPermitNumber?: string | null;
1059
+ countryOfBirth?: string | null;
1060
+ citizenships?: string[];
1061
+ dateOfBirth?: string | null;
1062
+ /** @enum {string|null} */
1063
+ sex?: "M" | "F" | null;
1064
+ address?: components["schemas"]["Address"] | null;
1065
+ phoneNumber?: string | null;
1066
+ };
1067
+ IdVerification: {
1068
+ id?: string | null;
1069
+ /** @enum {string|null} */
1070
+ type?: "veriff" | null;
1071
+ /** Format: date-time */
1072
+ date?: string | null;
1073
+ /** @enum {string|null} */
1074
+ status?: "approved" | null;
1075
+ documents?: {
1076
+ /** Format: uri */
1077
+ documentFront?: string | null;
1078
+ /** Format: uri */
1079
+ documentBack?: string | null;
1080
+ /** Format: uri */
1081
+ face?: string | null;
1082
+ };
1083
+ };
1084
+ };
1085
+ responses: {
1086
+ /** @description Validation error or precondition failure. */
1087
+ BadRequest: {
1088
+ headers: {
1089
+ [name: string]: unknown;
1090
+ };
1091
+ content: {
1092
+ "application/json": components["schemas"]["ErrorEnvelope"];
1093
+ };
1094
+ };
1095
+ /** @description Missing or invalid credential. */
1096
+ Unauthorized: {
1097
+ headers: {
1098
+ [name: string]: unknown;
1099
+ };
1100
+ content: {
1101
+ "application/json": components["schemas"]["ErrorEnvelope"];
1102
+ };
1103
+ };
1104
+ /** @description Credential lacks the required scope. */
1105
+ Forbidden: {
1106
+ headers: {
1107
+ [name: string]: unknown;
1108
+ };
1109
+ content: {
1110
+ "application/json": components["schemas"]["ErrorEnvelope"];
1111
+ };
1112
+ };
1113
+ /** @description Resource does not exist or is invisible to the caller. */
1114
+ NotFound: {
1115
+ headers: {
1116
+ [name: string]: unknown;
1117
+ };
1118
+ content: {
1119
+ "application/json": components["schemas"]["ErrorEnvelope"];
1120
+ };
1121
+ };
1122
+ /** @description Conflicting state (e.g. legal-entity name already taken). */
1123
+ Conflict: {
1124
+ headers: {
1125
+ [name: string]: unknown;
1126
+ };
1127
+ content: {
1128
+ "application/json": components["schemas"]["ErrorEnvelope"];
1129
+ };
1130
+ };
1131
+ /** @description Rate limit exceeded. */
1132
+ RateLimited: {
1133
+ headers: {
1134
+ [name: string]: unknown;
1135
+ };
1136
+ content: {
1137
+ "application/json": components["schemas"]["ErrorEnvelope"];
1138
+ };
1139
+ };
1140
+ /** @description Server error. */
1141
+ InternalError: {
1142
+ headers: {
1143
+ [name: string]: unknown;
1144
+ };
1145
+ content: {
1146
+ "application/json": components["schemas"]["ErrorEnvelope"];
1147
+ };
1148
+ };
1149
+ };
1150
+ parameters: {
1151
+ LegalEntityId: string;
1152
+ ApplicationId: string;
1153
+ };
1154
+ requestBodies: never;
1155
+ headers: never;
1156
+ pathItems: never;
1157
+ }
1158
+ export type $defs = Record<string, never>;
1159
+ export type operations = Record<string, never>;