@stellar-agent-services/provider-kit 0.0.0-stage → 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 (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +506 -2
  3. package/dist/approve/assets/index-BazIJAI2.css +1 -0
  4. package/dist/approve/assets/index-CL28cSJy.js +420 -0
  5. package/dist/approve/favicon.svg +1 -0
  6. package/dist/approve/index.html +18 -0
  7. package/dist/cli/approval-view.d.ts +80 -0
  8. package/dist/cli/approval-view.d.ts.map +1 -0
  9. package/dist/cli/approval-view.js +5 -0
  10. package/dist/cli/approval-view.js.map +1 -0
  11. package/dist/cli/approval.d.ts +132 -0
  12. package/dist/cli/approval.d.ts.map +1 -0
  13. package/dist/cli/approval.js +542 -0
  14. package/dist/cli/approval.js.map +1 -0
  15. package/dist/cli/check.d.ts +3 -0
  16. package/dist/cli/check.d.ts.map +1 -0
  17. package/dist/cli/check.js +137 -0
  18. package/dist/cli/check.js.map +1 -0
  19. package/dist/cli/dev-account.d.ts +28 -0
  20. package/dist/cli/dev-account.d.ts.map +1 -0
  21. package/dist/cli/dev-account.js +62 -0
  22. package/dist/cli/dev-account.js.map +1 -0
  23. package/dist/cli/dev.d.ts +27 -0
  24. package/dist/cli/dev.d.ts.map +1 -0
  25. package/dist/cli/dev.js +226 -0
  26. package/dist/cli/dev.js.map +1 -0
  27. package/dist/cli/discovery.d.ts +20 -0
  28. package/dist/cli/discovery.d.ts.map +1 -0
  29. package/dist/cli/discovery.js +202 -0
  30. package/dist/cli/discovery.js.map +1 -0
  31. package/dist/cli/env-file.d.ts +16 -0
  32. package/dist/cli/env-file.d.ts.map +1 -0
  33. package/dist/cli/env-file.js +77 -0
  34. package/dist/cli/env-file.js.map +1 -0
  35. package/dist/cli/fly.d.ts +28 -0
  36. package/dist/cli/fly.d.ts.map +1 -0
  37. package/dist/cli/fly.js +92 -0
  38. package/dist/cli/fly.js.map +1 -0
  39. package/dist/cli/index.d.ts +3 -0
  40. package/dist/cli/index.d.ts.map +1 -0
  41. package/dist/cli/index.js +11 -0
  42. package/dist/cli/index.js.map +1 -0
  43. package/dist/cli/init.d.ts +3 -0
  44. package/dist/cli/init.d.ts.map +1 -0
  45. package/dist/cli/init.js +170 -0
  46. package/dist/cli/init.js.map +1 -0
  47. package/dist/cli/launch.d.ts +21 -0
  48. package/dist/cli/launch.d.ts.map +1 -0
  49. package/dist/cli/launch.js +627 -0
  50. package/dist/cli/launch.js.map +1 -0
  51. package/dist/cli/main.d.ts +2 -0
  52. package/dist/cli/main.d.ts.map +1 -0
  53. package/dist/cli/main.js +158 -0
  54. package/dist/cli/main.js.map +1 -0
  55. package/dist/cli/owner-chain.d.ts +88 -0
  56. package/dist/cli/owner-chain.d.ts.map +1 -0
  57. package/dist/cli/owner-chain.js +284 -0
  58. package/dist/cli/owner-chain.js.map +1 -0
  59. package/dist/cli/owner-steps.d.ts +33 -0
  60. package/dist/cli/owner-steps.d.ts.map +1 -0
  61. package/dist/cli/owner-steps.js +121 -0
  62. package/dist/cli/owner-steps.js.map +1 -0
  63. package/dist/cli/processes.d.ts +47 -0
  64. package/dist/cli/processes.d.ts.map +1 -0
  65. package/dist/cli/processes.js +129 -0
  66. package/dist/cli/processes.js.map +1 -0
  67. package/dist/cli/reconcile.d.ts +3 -0
  68. package/dist/cli/reconcile.d.ts.map +1 -0
  69. package/dist/cli/reconcile.js +76 -0
  70. package/dist/cli/reconcile.js.map +1 -0
  71. package/dist/cli/register.d.ts +9 -0
  72. package/dist/cli/register.d.ts.map +1 -0
  73. package/dist/cli/register.js +209 -0
  74. package/dist/cli/register.js.map +1 -0
  75. package/dist/cli/request-validation.d.ts +5 -0
  76. package/dist/cli/request-validation.d.ts.map +1 -0
  77. package/dist/cli/request-validation.js +144 -0
  78. package/dist/cli/request-validation.js.map +1 -0
  79. package/dist/cli/serve.d.ts +25 -0
  80. package/dist/cli/serve.d.ts.map +1 -0
  81. package/dist/cli/serve.js +73 -0
  82. package/dist/cli/serve.js.map +1 -0
  83. package/dist/cli/shared.d.ts +142 -0
  84. package/dist/cli/shared.d.ts.map +1 -0
  85. package/dist/cli/shared.js +110 -0
  86. package/dist/cli/shared.js.map +1 -0
  87. package/dist/cli/status.d.ts +32 -0
  88. package/dist/cli/status.d.ts.map +1 -0
  89. package/dist/cli/status.js +248 -0
  90. package/dist/cli/status.js.map +1 -0
  91. package/dist/cli/target.d.ts +14 -0
  92. package/dist/cli/target.d.ts.map +1 -0
  93. package/dist/cli/target.js +43 -0
  94. package/dist/cli/target.js.map +1 -0
  95. package/dist/cli/trustline.d.ts +3 -0
  96. package/dist/cli/trustline.d.ts.map +1 -0
  97. package/dist/cli/trustline.js +114 -0
  98. package/dist/cli/trustline.js.map +1 -0
  99. package/dist/cli/try.d.ts +54 -0
  100. package/dist/cli/try.d.ts.map +1 -0
  101. package/dist/cli/try.js +448 -0
  102. package/dist/cli/try.js.map +1 -0
  103. package/dist/cli/tunnel.d.ts +13 -0
  104. package/dist/cli/tunnel.d.ts.map +1 -0
  105. package/dist/cli/tunnel.js +43 -0
  106. package/dist/cli/tunnel.js.map +1 -0
  107. package/dist/cli/validators.d.ts +6 -0
  108. package/dist/cli/validators.d.ts.map +1 -0
  109. package/dist/cli/validators.js +14 -0
  110. package/dist/cli/validators.js.map +1 -0
  111. package/dist/define-service.d.ts +71 -0
  112. package/dist/define-service.d.ts.map +1 -0
  113. package/dist/define-service.js +86 -0
  114. package/dist/define-service.js.map +1 -0
  115. package/dist/gateway/config.d.ts +88 -0
  116. package/dist/gateway/config.d.ts.map +1 -0
  117. package/dist/gateway/config.js +201 -0
  118. package/dist/gateway/config.js.map +1 -0
  119. package/dist/gateway/openapi.d.ts +69 -0
  120. package/dist/gateway/openapi.d.ts.map +1 -0
  121. package/dist/gateway/openapi.js +677 -0
  122. package/dist/gateway/openapi.js.map +1 -0
  123. package/dist/gateway/upstream.d.ts +15 -0
  124. package/dist/gateway/upstream.d.ts.map +1 -0
  125. package/dist/gateway/upstream.js +95 -0
  126. package/dist/gateway/upstream.js.map +1 -0
  127. package/dist/http/bounded.d.ts +3 -0
  128. package/dist/http/bounded.d.ts.map +1 -0
  129. package/dist/http/bounded.js +23 -0
  130. package/dist/http/bounded.js.map +1 -0
  131. package/dist/http/node-server.d.ts +15 -0
  132. package/dist/http/node-server.d.ts.map +1 -0
  133. package/dist/http/node-server.js +120 -0
  134. package/dist/http/node-server.js.map +1 -0
  135. package/dist/http/rate-limit.d.ts +11 -0
  136. package/dist/http/rate-limit.d.ts.map +1 -0
  137. package/dist/http/rate-limit.js +35 -0
  138. package/dist/http/rate-limit.js.map +1 -0
  139. package/dist/http/router.d.ts +29 -0
  140. package/dist/http/router.d.ts.map +1 -0
  141. package/dist/http/router.js +329 -0
  142. package/dist/http/router.js.map +1 -0
  143. package/dist/index.d.ts +20 -0
  144. package/dist/index.d.ts.map +1 -0
  145. package/dist/index.js +31 -0
  146. package/dist/index.js.map +1 -0
  147. package/dist/jobs/memory-store.d.ts +3 -0
  148. package/dist/jobs/memory-store.d.ts.map +1 -0
  149. package/dist/jobs/memory-store.js +121 -0
  150. package/dist/jobs/memory-store.js.map +1 -0
  151. package/dist/jobs/reconcile.d.ts +22 -0
  152. package/dist/jobs/reconcile.d.ts.map +1 -0
  153. package/dist/jobs/reconcile.js +82 -0
  154. package/dist/jobs/reconcile.js.map +1 -0
  155. package/dist/jobs/recovery.d.ts +19 -0
  156. package/dist/jobs/recovery.d.ts.map +1 -0
  157. package/dist/jobs/recovery.js +65 -0
  158. package/dist/jobs/recovery.js.map +1 -0
  159. package/dist/jobs/runner.d.ts +38 -0
  160. package/dist/jobs/runner.d.ts.map +1 -0
  161. package/dist/jobs/runner.js +194 -0
  162. package/dist/jobs/runner.js.map +1 -0
  163. package/dist/jobs/scheduler.d.ts +66 -0
  164. package/dist/jobs/scheduler.d.ts.map +1 -0
  165. package/dist/jobs/scheduler.js +197 -0
  166. package/dist/jobs/scheduler.js.map +1 -0
  167. package/dist/jobs/sqlite-store.d.ts +8 -0
  168. package/dist/jobs/sqlite-store.d.ts.map +1 -0
  169. package/dist/jobs/sqlite-store.js +231 -0
  170. package/dist/jobs/sqlite-store.js.map +1 -0
  171. package/dist/jobs/store.d.ts +118 -0
  172. package/dist/jobs/store.d.ts.map +1 -0
  173. package/dist/jobs/store.js +36 -0
  174. package/dist/jobs/store.js.map +1 -0
  175. package/dist/manifest.d.ts +11 -0
  176. package/dist/manifest.d.ts.map +1 -0
  177. package/dist/manifest.js +99 -0
  178. package/dist/manifest.js.map +1 -0
  179. package/dist/payments/chain.d.ts +23 -0
  180. package/dist/payments/chain.d.ts.map +1 -0
  181. package/dist/payments/chain.js +108 -0
  182. package/dist/payments/chain.js.map +1 -0
  183. package/dist/payments/facilitator.d.ts +44 -0
  184. package/dist/payments/facilitator.d.ts.map +1 -0
  185. package/dist/payments/facilitator.js +125 -0
  186. package/dist/payments/facilitator.js.map +1 -0
  187. package/dist/payments/onchain.d.ts +36 -0
  188. package/dist/payments/onchain.d.ts.map +1 -0
  189. package/dist/payments/onchain.js +191 -0
  190. package/dist/payments/onchain.js.map +1 -0
  191. package/dist/payments/payload-checks.d.ts +22 -0
  192. package/dist/payments/payload-checks.d.ts.map +1 -0
  193. package/dist/payments/payload-checks.js +113 -0
  194. package/dist/payments/payload-checks.js.map +1 -0
  195. package/dist/payments/settlement.d.ts +22 -0
  196. package/dist/payments/settlement.d.ts.map +1 -0
  197. package/dist/payments/settlement.js +65 -0
  198. package/dist/payments/settlement.js.map +1 -0
  199. package/dist/payments/x402-server.d.ts +8 -0
  200. package/dist/payments/x402-server.d.ts.map +1 -0
  201. package/dist/payments/x402-server.js +74 -0
  202. package/dist/payments/x402-server.js.map +1 -0
  203. package/dist/provider.d.ts +63 -0
  204. package/dist/provider.d.ts.map +1 -0
  205. package/dist/provider.js +177 -0
  206. package/dist/provider.js.map +1 -0
  207. package/dist/registration.d.ts +86 -0
  208. package/dist/registration.d.ts.map +1 -0
  209. package/dist/registration.js +162 -0
  210. package/dist/registration.js.map +1 -0
  211. package/dist/testing.d.ts +13 -0
  212. package/dist/testing.d.ts.map +1 -0
  213. package/dist/testing.js +48 -0
  214. package/dist/testing.js.map +1 -0
  215. package/dist/validation-request.d.ts +36 -0
  216. package/dist/validation-request.d.ts.map +1 -0
  217. package/dist/validation-request.js +101 -0
  218. package/dist/validation-request.js.map +1 -0
  219. package/package.json +55 -4
  220. package/schemas/gateway-config.schema.json +140 -0
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#6366f1"/><stop offset="1" stop-color="#4338ca"/></linearGradient></defs><rect width="32" height="32" rx="9" fill="url(#g)"/><path d="M16 26s7-3.5 7-8.75V11l-7-2.6L9 11v6.25C9 22.5 16 26 16 26z" fill="none" stroke="#fff" stroke-width="2" stroke-linejoin="round"/><path d="m12.8 16.6 2.2 2.2 4.2-4.2" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
@@ -0,0 +1,18 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta name="color-scheme" content="light dark" />
7
+ <meta name="referrer" content="no-referrer" />
8
+ <meta name="description" content="Approve provider-kit's transactions in your own Stellar wallet. provider-kit never sees your key." />
9
+ <!-- provider-kit serves this page with its Content Security Policy as a header (src/cli/approval.ts). -->
10
+ <title>Approve in your wallet · Provider Kit</title>
11
+ <link rel="icon" href="./favicon.svg" type="image/svg+xml" />
12
+ <script type="module" crossorigin src="./assets/index-CL28cSJy.js"></script>
13
+ <link rel="stylesheet" crossorigin href="./assets/index-BazIJAI2.css">
14
+ </head>
15
+ <body>
16
+ <div id="app"></div>
17
+ </body>
18
+ </html>
@@ -0,0 +1,80 @@
1
+ export type ApprovalState = "connect" | "working" | "review" | "done" | "failed" | "cancelled";
2
+ /** One row of a summary: a label and its value. */
3
+ export interface ApprovalDetail {
4
+ label: string;
5
+ value: string;
6
+ /** Monospace, for addresses, hashes and ids. */
7
+ mono?: boolean;
8
+ /** Where the value can be looked up, such as an account on Stellar Expert. */
9
+ href?: string;
10
+ }
11
+ export interface ApprovalStepView {
12
+ id: string;
13
+ title: string;
14
+ status: "pending" | "active" | "done";
15
+ /** What happened, once done, such as "Agent 42". */
16
+ note?: string;
17
+ /** The transaction that did it, once done. */
18
+ transaction?: {
19
+ hash: string;
20
+ url: string;
21
+ };
22
+ }
23
+ /** The transaction waiting for approval. */
24
+ export interface ApprovalReview {
25
+ stepId: string;
26
+ title: string;
27
+ /** What signing it does, in plain words. */
28
+ summary: string;
29
+ details: ApprovalDetail[];
30
+ /** The transaction to sign as it is: base64 XDR. */
31
+ xdr: string;
32
+ /** Its hash, hex. Wallets that show a hash show this one. */
33
+ hash: string;
34
+ /** The most it can cost in network fees, such as "0.0012 XLM". */
35
+ maxFee: string;
36
+ /** When the network stops accepting it, in epoch milliseconds. */
37
+ expiresAt: number;
38
+ }
39
+ export interface ApprovalView {
40
+ /** The command that opened the page, such as "provider-kit register". */
41
+ command: string;
42
+ title: string;
43
+ intro: string;
44
+ network: {
45
+ id: string;
46
+ name: string;
47
+ passphrase: string;
48
+ };
49
+ /** The account to connect, when the command needs a particular one. */
50
+ account?: {
51
+ address: string;
52
+ label: string;
53
+ reason: string;
54
+ };
55
+ /** The account the wallet connected, and the wallet's name. */
56
+ connected?: {
57
+ address: string;
58
+ wallet?: string;
59
+ };
60
+ state: ApprovalState;
61
+ /** What is happening while the state is "working". */
62
+ activity?: string;
63
+ /** The steps after connecting a wallet, in order. */
64
+ steps: ApprovalStepView[];
65
+ /** Set while the state is "review". */
66
+ review?: ApprovalReview;
67
+ /** The last problem. `retry` is what the page offers: connect a wallet again, build the transaction again, or nothing. */
68
+ error?: {
69
+ title: string;
70
+ message: string;
71
+ retry: "connect" | "rebuild" | "none";
72
+ };
73
+ /** How the session ended: set once the state is "done", "failed" or "cancelled". */
74
+ result?: {
75
+ title: string;
76
+ message: string;
77
+ details: ApprovalDetail[];
78
+ };
79
+ }
80
+ //# sourceMappingURL=approval-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-view.d.ts","sourceRoot":"","sources":["../../src/cli/approval-view.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/F,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,uEAAuE;IACvE,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,+DAA+D;IAC/D,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,KAAK,EAAE,aAAa,CAAC;IACrB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,uCAAuC;IACvC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,0HAA0H;IAC1H,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;KAAE,CAAC;IAClF,oFAAoF;IACpF,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;CACxE"}
@@ -0,0 +1,5 @@
1
+ // What the approval page shows: the state of one approval session, as the CLI sends it to the page in the
2
+ // browser (approve/src). The page renders it as it is, so every word the developer reads comes from here.
3
+ // Types only, with no imports, so the page can import this file too.
4
+ export {};
5
+ //# sourceMappingURL=approval-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-view.js","sourceRoot":"","sources":["../../src/cli/approval-view.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,0GAA0G;AAC1G,qEAAqE"}
@@ -0,0 +1,132 @@
1
+ import { type StellarNetwork } from "@stellar-agent-services/protocol";
2
+ import type { Transaction } from "@stellar/stellar-sdk";
3
+ import type { ApprovalDetail, ApprovalState, ApprovalView } from "./approval-view.js";
4
+ import { ApprovalError, type OwnerChain, type SendResult } from "./owner-chain.js";
5
+ export { ApprovalError };
6
+ /** What a command asks the developer to approve. */
7
+ export interface ApprovalPlan {
8
+ /** Such as "provider-kit register". */
9
+ command: string;
10
+ title: string;
11
+ intro: string;
12
+ network: StellarNetwork;
13
+ /** The account to connect, when the command needs a particular one. */
14
+ account?: {
15
+ address: string;
16
+ label: string;
17
+ reason: string;
18
+ };
19
+ /** The steps the page lists before a wallet connects. */
20
+ outline: {
21
+ id: string;
22
+ title: string;
23
+ }[];
24
+ /** Checks the connected account and returns its steps, in order. Throws an ApprovalError when it can't go on. */
25
+ steps(address: string): Promise<ApprovalStep[]>;
26
+ /** What the page says once every step is done. */
27
+ result(): {
28
+ title: string;
29
+ message: string;
30
+ details: ApprovalDetail[];
31
+ };
32
+ }
33
+ export type ApprovalStep =
34
+ /** Something done without a signature, such as funding a new testnet account. Returns what happened. */
35
+ {
36
+ kind: "auto";
37
+ id: string;
38
+ title: string;
39
+ run(): Promise<string>;
40
+ }
41
+ /** A transaction the wallet signs. build() runs when the step is due; done() says what it did. */
42
+ | {
43
+ kind: "sign";
44
+ id: string;
45
+ title: string;
46
+ build(): Promise<ProposedTransaction>;
47
+ done(sent: Extract<SendResult, {
48
+ status: "success";
49
+ }>): string | Promise<string>;
50
+ };
51
+ /** A transaction to sign, and what it does in plain words. */
52
+ export interface ProposedTransaction {
53
+ transaction: Transaction;
54
+ summary: string;
55
+ details: ApprovalDetail[];
56
+ }
57
+ export type ApprovalOutcome = {
58
+ status: "done";
59
+ address: string;
60
+ } | {
61
+ status: "cancelled";
62
+ } | {
63
+ status: "expired";
64
+ } | {
65
+ status: "failed";
66
+ reason: string;
67
+ };
68
+ /** A request the session can't take now, such as an approval for a step that isn't due. The page reloads the view. */
69
+ export declare class ApprovalConflict extends Error {
70
+ name: string;
71
+ }
72
+ /** One command's approval: its steps, run in order as the developer connects a wallet and approves. */
73
+ export declare class ApprovalSession {
74
+ #private;
75
+ readonly plan: ApprovalPlan;
76
+ readonly chain: OwnerChain;
77
+ readonly log: (line: string) => void;
78
+ readonly finished: Promise<ApprovalOutcome>;
79
+ constructor(plan: ApprovalPlan, chain: OwnerChain, log?: (line: string) => void);
80
+ get state(): ApprovalState;
81
+ /** Whether a request is under way, such as a check, a build or a transaction being sent. */
82
+ get busy(): boolean;
83
+ view(): ApprovalView;
84
+ /** The wallet connected `address`: checks it, then runs the steps up to the first transaction to approve. */
85
+ connect(address: string, wallet?: string): Promise<void>;
86
+ /** The wallet signed the transaction waiting for approval: checks it is that very transaction, sends it and moves on. */
87
+ submit(stepId: string, signedXdr: string): Promise<void>;
88
+ /** Builds the transaction waiting for approval again: after it expired, or after the network refused it. */
89
+ rebuild(stepId: string): Promise<void>;
90
+ /**
91
+ * Ends the session before it is done. While a request is under way, such as a transaction being sent, it is
92
+ * refused, or with `whenIdle` the session ends as soon as that request finishes.
93
+ */
94
+ cancel(whenIdle?: boolean): void;
95
+ /** Ends a session left idle. A session in the middle of something carries on. */
96
+ expire(): void;
97
+ }
98
+ /** What the terminal says when a session ends without finishing. */
99
+ export declare function describeOutcome(outcome: Exclude<ApprovalOutcome, {
100
+ status: "done";
101
+ }>): string;
102
+ /** The built page: dist/approve, next to dist/cli. */
103
+ export declare const APPROVAL_PAGE: import("url").URL;
104
+ /** The page's port. A fixed one lets wallets remember that they connected to it before; a busy one falls back to any free port. */
105
+ export declare const DEFAULT_APPROVAL_PORT = 8790;
106
+ export interface ApprovalServer {
107
+ /** The link to open, with the token in its fragment. */
108
+ url: string;
109
+ port: number;
110
+ close(): Promise<void>;
111
+ }
112
+ export interface ApprovalServerOptions {
113
+ /** A port to use, which must be free. Without it: DEFAULT_APPROVAL_PORT, or any free port when that one is busy. */
114
+ port?: number;
115
+ /** The built page's directory. */
116
+ page?: URL;
117
+ /** How long the session may sit idle before it expires. */
118
+ idleMs?: number;
119
+ }
120
+ export declare function startApprovalServer(session: ApprovalSession, options?: ApprovalServerOptions): Promise<ApprovalServer>;
121
+ /** Opens `url` in the default browser. Best effort: the terminal shows the link too. */
122
+ export declare function openBrowser(url: string): void;
123
+ export interface ApproveOptions {
124
+ port?: number;
125
+ /** false: print the link without opening a browser, as over SSH. */
126
+ open?: boolean;
127
+ page?: URL;
128
+ log?: (line: string) => void;
129
+ }
130
+ /** Opens the approval page for `plan` and waits until the developer finishes or cancels. */
131
+ export declare function approveInBrowser(plan: ApprovalPlan, chain: OwnerChain, options?: ApproveOptions): Promise<ApprovalOutcome>;
132
+ //# sourceMappingURL=approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/cli/approval.ts"],"names":[],"mappings":"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"}