@defdone/annon 0.0.0-stage → 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/CLI.md +378 -0
  3. package/LICENSE +201 -0
  4. package/NOTICE +7 -0
  5. package/README.md +591 -2
  6. package/dist/api/annon-types.d.ts +108 -0
  7. package/dist/api/annon-types.js +2 -0
  8. package/dist/api/annon.d.ts +117 -0
  9. package/dist/api/annon.js +1152 -0
  10. package/dist/api/hosted-record.d.ts +13 -0
  11. package/dist/api/hosted-record.js +149 -0
  12. package/dist/api/sharing-types.d.ts +109 -0
  13. package/dist/api/sharing-types.js +1 -0
  14. package/dist/api/sharing.d.ts +36 -0
  15. package/dist/api/sharing.js +879 -0
  16. package/dist/browser/download.d.ts +19 -0
  17. package/dist/browser/download.js +52 -0
  18. package/dist/browser/index.d.ts +23 -0
  19. package/dist/browser/index.js +22 -0
  20. package/dist/browser/login-bundle.js +151 -0
  21. package/dist/browser/login.d.ts +1 -0
  22. package/dist/browser/login.js +216 -0
  23. package/dist/browser/purchase-bundle.js +84 -0
  24. package/dist/browser/purchases.d.ts +98 -0
  25. package/dist/browser/purchases.js +735 -0
  26. package/dist/browser/record.d.ts +55 -0
  27. package/dist/browser/record.js +16 -0
  28. package/dist/browser/selling.d.ts +146 -0
  29. package/dist/browser/selling.js +418 -0
  30. package/dist/browser/wallets.d.ts +53 -0
  31. package/dist/browser/wallets.js +286 -0
  32. package/dist/bytes.d.ts +4 -0
  33. package/dist/bytes.js +16 -0
  34. package/dist/download/download.d.ts +59 -0
  35. package/dist/download/download.js +384 -0
  36. package/dist/download/host.d.ts +56 -0
  37. package/dist/download/host.js +161 -0
  38. package/dist/download/http.d.ts +23 -0
  39. package/dist/download/http.js +87 -0
  40. package/dist/download/proof.d.ts +20 -0
  41. package/dist/download/proof.js +79 -0
  42. package/dist/download/upload.d.ts +130 -0
  43. package/dist/download/upload.js +408 -0
  44. package/dist/envelope/evm.d.ts +4 -0
  45. package/dist/envelope/evm.js +32 -0
  46. package/dist/envelope/pay2.d.ts +176 -0
  47. package/dist/envelope/pay2.js +541 -0
  48. package/dist/envelope/replay.d.ts +45 -0
  49. package/dist/envelope/replay.js +186 -0
  50. package/dist/envelope/stream.d.ts +78 -0
  51. package/dist/envelope/stream.js +372 -0
  52. package/dist/errors.d.ts +21 -0
  53. package/dist/errors.js +300 -0
  54. package/dist/index.d.ts +25 -0
  55. package/dist/index.js +23 -0
  56. package/dist/keys/near-ckd.d.ts +47 -0
  57. package/dist/keys/near-ckd.js +96 -0
  58. package/dist/limits.d.ts +4 -0
  59. package/dist/limits.js +4 -0
  60. package/dist/near/nep413.d.ts +22 -0
  61. package/dist/near/nep413.js +39 -0
  62. package/dist/near/rpc.d.ts +170 -0
  63. package/dist/near/rpc.js +423 -0
  64. package/dist/near/texts.d.ts +39 -0
  65. package/dist/near/texts.js +60 -0
  66. package/dist/net/ip.d.ts +7 -0
  67. package/dist/net/ip.js +62 -0
  68. package/dist/net/retry.d.ts +3 -0
  69. package/dist/net/retry.js +31 -0
  70. package/dist/node/adapter-checks.d.ts +6 -0
  71. package/dist/node/adapter-checks.js +13 -0
  72. package/dist/node/adapter.d.ts +8 -0
  73. package/dist/node/adapter.js +98 -0
  74. package/dist/node/agent.d.ts +49 -0
  75. package/dist/node/agent.js +266 -0
  76. package/dist/node/amounts.d.ts +2 -0
  77. package/dist/node/amounts.js +20 -0
  78. package/dist/node/browser-login.d.ts +25 -0
  79. package/dist/node/browser-login.js +219 -0
  80. package/dist/node/budget.d.ts +24 -0
  81. package/dist/node/budget.js +59 -0
  82. package/dist/node/buy-commands.d.ts +24 -0
  83. package/dist/node/buy-commands.js +301 -0
  84. package/dist/node/cli.d.ts +60 -0
  85. package/dist/node/cli.js +201 -0
  86. package/dist/node/command-context.d.ts +82 -0
  87. package/dist/node/command-context.js +77 -0
  88. package/dist/node/config.d.ts +37 -0
  89. package/dist/node/config.js +189 -0
  90. package/dist/node/core-adapter.d.ts +43 -0
  91. package/dist/node/core-adapter.js +122 -0
  92. package/dist/node/errors.d.ts +8 -0
  93. package/dist/node/errors.js +12 -0
  94. package/dist/node/index.d.ts +7 -0
  95. package/dist/node/index.js +5 -0
  96. package/dist/node/io.d.ts +13 -0
  97. package/dist/node/io.js +112 -0
  98. package/dist/node/keychain.d.ts +10 -0
  99. package/dist/node/keychain.js +67 -0
  100. package/dist/node/main.d.ts +2 -0
  101. package/dist/node/main.js +21 -0
  102. package/dist/node/offers.d.ts +16 -0
  103. package/dist/node/offers.js +91 -0
  104. package/dist/node/origin.d.ts +11 -0
  105. package/dist/node/origin.js +80 -0
  106. package/dist/node/paths.d.ts +3 -0
  107. package/dist/node/paths.js +71 -0
  108. package/dist/node/payment-terms.d.ts +26 -0
  109. package/dist/node/payment-terms.js +127 -0
  110. package/dist/node/purchase-commands.d.ts +16 -0
  111. package/dist/node/purchase-commands.js +237 -0
  112. package/dist/node/purchase-guard.d.ts +19 -0
  113. package/dist/node/purchase-guard.js +53 -0
  114. package/dist/node/relay-transport.d.ts +6 -0
  115. package/dist/node/relay-transport.js +173 -0
  116. package/dist/node/resources.d.ts +2 -0
  117. package/dist/node/resources.js +26 -0
  118. package/dist/node/retry-gate.d.ts +15 -0
  119. package/dist/node/retry-gate.js +53 -0
  120. package/dist/node/seller-commands.d.ts +12 -0
  121. package/dist/node/seller-commands.js +207 -0
  122. package/dist/node/sharing.d.ts +3 -0
  123. package/dist/node/sharing.js +28 -0
  124. package/dist/node/shops.d.ts +17 -0
  125. package/dist/node/shops.js +74 -0
  126. package/dist/node/signer-mock.d.ts +11 -0
  127. package/dist/node/signer-mock.js +79 -0
  128. package/dist/node/signer-wallet.d.ts +8 -0
  129. package/dist/node/signer-wallet.js +149 -0
  130. package/dist/node/signing.d.ts +29 -0
  131. package/dist/node/signing.js +200 -0
  132. package/dist/node/storage-commands.d.ts +11 -0
  133. package/dist/node/storage-commands.js +50 -0
  134. package/dist/node/sync-dir.d.ts +1 -0
  135. package/dist/node/sync-dir.js +11 -0
  136. package/dist/node/wallets.d.ts +13 -0
  137. package/dist/node/wallets.js +146 -0
  138. package/dist/oneclick/oneclick.d.ts +132 -0
  139. package/dist/oneclick/oneclick.js +342 -0
  140. package/dist/pay/backup.d.ts +70 -0
  141. package/dist/pay/backup.js +402 -0
  142. package/dist/pay/base.d.ts +135 -0
  143. package/dist/pay/base.js +386 -0
  144. package/dist/pay/eip3009.d.ts +59 -0
  145. package/dist/pay/eip3009.js +72 -0
  146. package/dist/pay/pay.d.ts +86 -0
  147. package/dist/pay/pay.js +297 -0
  148. package/dist/pay/purchase.d.ts +103 -0
  149. package/dist/pay/purchase.js +20 -0
  150. package/dist/pay/recover.d.ts +31 -0
  151. package/dist/pay/recover.js +34 -0
  152. package/dist/pay/seller.d.ts +130 -0
  153. package/dist/pay/seller.js +444 -0
  154. package/dist/pay/settle.d.ts +96 -0
  155. package/dist/pay/settle.js +308 -0
  156. package/dist/pay/split.d.ts +115 -0
  157. package/dist/pay/split.js +256 -0
  158. package/dist/pay/store-node.d.ts +8 -0
  159. package/dist/pay/store-node.js +224 -0
  160. package/dist/pay/store.d.ts +54 -0
  161. package/dist/pay/store.js +135 -0
  162. package/dist/pay/x402.d.ts +95 -0
  163. package/dist/pay/x402.js +136 -0
  164. package/dist/relay/admission.d.ts +8 -0
  165. package/dist/relay/admission.js +58 -0
  166. package/dist/relay/capabilities.d.ts +36 -0
  167. package/dist/relay/capabilities.js +232 -0
  168. package/dist/relay/fees.d.ts +17 -0
  169. package/dist/relay/fees.js +105 -0
  170. package/dist/relay/index.d.ts +10 -0
  171. package/dist/relay/index.js +8 -0
  172. package/dist/relay/keeper-balance.d.ts +17 -0
  173. package/dist/relay/keeper-balance.js +46 -0
  174. package/dist/relay/keeper-runner.d.ts +114 -0
  175. package/dist/relay/keeper-runner.js +703 -0
  176. package/dist/relay/keeper.d.ts +38 -0
  177. package/dist/relay/keeper.js +73 -0
  178. package/dist/relay/ledger.d.ts +155 -0
  179. package/dist/relay/ledger.js +392 -0
  180. package/dist/relay/relay-checks.d.ts +3 -0
  181. package/dist/relay/relay-checks.js +244 -0
  182. package/dist/relay/relay-reconciliation.d.ts +15 -0
  183. package/dist/relay/relay-reconciliation.js +293 -0
  184. package/dist/relay/relay-request.d.ts +6 -0
  185. package/dist/relay/relay-request.js +139 -0
  186. package/dist/relay/relay-transactions.d.ts +23 -0
  187. package/dist/relay/relay-transactions.js +182 -0
  188. package/dist/relay/relay-types.d.ts +128 -0
  189. package/dist/relay/relay-types.js +17 -0
  190. package/dist/relay/relay.d.ts +102 -0
  191. package/dist/relay/relay.js +426 -0
  192. package/dist/relay/reservation.d.ts +29 -0
  193. package/dist/relay/reservation.js +132 -0
  194. package/dist/relay/sponsorship.d.ts +42 -0
  195. package/dist/relay/sponsorship.js +184 -0
  196. package/dist/routes.d.ts +2 -0
  197. package/dist/routes.js +1 -0
  198. package/dist/settle-near/codec.d.ts +17 -0
  199. package/dist/settle-near/codec.js +86 -0
  200. package/dist/settle-near/identity.d.ts +27 -0
  201. package/dist/settle-near/identity.js +80 -0
  202. package/dist/settle-near/purchase.d.ts +40 -0
  203. package/dist/settle-near/purchase.js +153 -0
  204. package/dist/settle-near/terms.d.ts +37 -0
  205. package/dist/settle-near/terms.js +89 -0
  206. package/dist/shops/discovery.d.ts +95 -0
  207. package/dist/shops/discovery.js +384 -0
  208. package/dist/wallet/account-only.d.ts +11 -0
  209. package/dist/wallet/account-only.js +6 -0
  210. package/dist/wallet/uncertain.d.ts +8 -0
  211. package/dist/wallet/uncertain.js +13 -0
  212. package/dist/wallet/wallet.d.ts +100 -0
  213. package/dist/wallet/wallet.js +204 -0
  214. package/package.json +136 -3
@@ -0,0 +1,19 @@
1
+ /** Bounded, proof-authorized ciphertext download. Plaintext and released keys stay in memory. */
2
+ import { type DownloadOptions } from '../download/download.js';
3
+ import { type Listing } from '../envelope/pay2.js';
4
+ /** The cap includes the PAY2 header and ciphertext overhead. Larger files use the CLI. */
5
+ export declare const BROWSER_DOWNLOAD_LIMIT = 50086016;
6
+ export interface BrowserDownloadProgress {
7
+ phase: 'downloading' | 'decrypting' | 'ready';
8
+ received: number;
9
+ total?: number;
10
+ }
11
+ export interface BrowserDownloadOptions extends Omit<DownloadOptions, 'maxBytes'> {
12
+ listing: Listing;
13
+ checkedHeaderHash: string;
14
+ /** Known encrypted file size, if the host advertises one. The stream cap always applies. */
15
+ size?: number;
16
+ onProgress?: (event: BrowserDownloadProgress) => void;
17
+ }
18
+ export declare function downloadProgress(callback: BrowserDownloadOptions['onProgress'], event: BrowserDownloadProgress): void;
19
+ export declare function browserDownload(o: BrowserDownloadOptions): Promise<Uint8Array>;
@@ -0,0 +1,52 @@
1
+ /** Bounded, proof-authorized ciphertext download. Plaintext and released keys stay in memory. */
2
+ import { DownloadError, download } from '../download/download.js';
3
+ import { concat, inspectHeader } from '../envelope/pay2.js';
4
+ import { MAX_PAY2_BYTES } from '../limits.js';
5
+ import { hex } from '../settle-near/codec.js';
6
+ /** The cap includes the PAY2 header and ciphertext overhead. Larger files use the CLI. */
7
+ export const BROWSER_DOWNLOAD_LIMIT = MAX_PAY2_BYTES;
8
+ export function downloadProgress(callback, event) {
9
+ try {
10
+ callback?.(event);
11
+ }
12
+ catch {
13
+ /* Page observers cannot interrupt opening a purchase. */
14
+ }
15
+ }
16
+ export async function browserDownload(o) {
17
+ if (o.size !== undefined && (!Number.isSafeInteger(o.size) || o.size < 0))
18
+ throw new TypeError('invalid file size');
19
+ if (o.size !== undefined && o.size > BROWSER_DOWNLOAD_LIMIT)
20
+ throw new DownloadError('too_large', 'File exceeds the 50 MB size limit.');
21
+ if (o.signal?.aborted)
22
+ throw new DownloadError('cancelled');
23
+ const inspected = await inspectHeader(o.header, o.listing, o.contractId);
24
+ if (hex(inspected.headerHash) !== o.checkedHeaderHash)
25
+ throw new DownloadError('file_mismatch', 'header differs from the checked purchase header');
26
+ const reader = download({ ...o, maxBytes: BROWSER_DOWNLOAD_LIMIT }).getReader();
27
+ const parts = [];
28
+ let received = 0;
29
+ try {
30
+ for (;;) {
31
+ const next = await reader.read();
32
+ if (o.signal?.aborted)
33
+ throw new DownloadError('cancelled');
34
+ if (next.done)
35
+ return concat(...parts);
36
+ received += next.value.length;
37
+ // Defense in depth if the underlying downloader changes its buffering behavior.
38
+ if (received > BROWSER_DOWNLOAD_LIMIT)
39
+ throw new DownloadError('too_large', 'File exceeds the 50 MB size limit.');
40
+ parts.push(next.value);
41
+ downloadProgress(o.onProgress, {
42
+ phase: 'downloading',
43
+ received,
44
+ ...(o.size === undefined ? {} : { total: o.size }),
45
+ });
46
+ }
47
+ }
48
+ finally {
49
+ await reader.cancel().catch(() => { });
50
+ reader.releaseLock();
51
+ }
52
+ }
@@ -0,0 +1,23 @@
1
+ export { AnnonError, type AnnonErrorCode, isTransient, type PublicError, toPublicError, } from '../errors.js';
2
+ /** Browser purchase logic. The embedding application supplies its own screen and wallets. */
3
+ export { Annon, type AnnonOptions, type BuyOptions, type BuyRoute, SellError, } from '../api/annon.js';
4
+ export type { HostedCheckpoint, Shared, ShareHosting, ShareOptions, ShareQuote, ShareStep, } from '../api/sharing.js';
5
+ export { DownloadError, type DownloadErrorCode } from '../download/download.js';
6
+ export { type UploadAuth, type UploadAuthorization, type UploadBaseSplit, type UploadBaseSplitResult, UploadClient, type UploadIntent, type UploadManifest, type UploadMetadata, type UploadPublished, type UploadStatus, uploadText, } from '../download/upload.js';
7
+ export { Pay2Error, type Pay2ErrorCode } from '../envelope/pay2.js';
8
+ export { SourceChangedError } from '../envelope/stream.js';
9
+ export { CkdError, type CkdErrorCode } from '../keys/near-ckd.js';
10
+ export { HTTP_RETRY_MAX_WAIT_SECONDS, MAX_PAY2_BYTES, MAX_PLAINTEXT_BYTES } from '../limits.js';
11
+ export { NearError, type NearErrorCode, NearRpcRateLimited } from '../near/rpc.js';
12
+ export { type FileFundingArgs, fileFundingText } from '../near/texts.js';
13
+ export { type Deposit, OneClick, type OneClickQuote, OneClickQuoteExpired, OneClickRefused, type Origin, originFromToken, type PollCheckpoint, type PollOptions, type QuotePreview, type SwapStatus, type Token, validateRefundAddress, } from '../oneclick/oneclick.js';
14
+ export { exportSellerKey, importSellerKey, newBackupSecret, type SellerKeyRecord, } from '../pay/backup.js';
15
+ export { BaseRpcRateLimited, PayError, type PayErrorCode } from '../pay/base.js';
16
+ export { BASE_ELIGIBILITY_MAX_AGE_SECONDS, type BaseSponsorship, type BaseSponsorshipOptions, checkBaseSponsorship, validBaseSponsorship, } from '../relay/capabilities.js';
17
+ export { type CatalogEntry, type CatalogQuery, type ConfiguredShop, canonicalManifestUrl, catalog, type DiscoveryConfig, type DiscoveryPage, type DiscoveryQuery, listShops, type Shop, type ShopFailure, type ShopManifest, type ShopProfile, type ShopRules, } from '../shops/discovery.js';
18
+ export { TransactionUncertain } from '../wallet/uncertain.js';
19
+ export { type EvmWallet, FileFundingRefused, type IdentityWallet, type NearWallet, } from '../wallet/wallet.js';
20
+ export { BROWSER_DOWNLOAD_LIMIT, type BrowserDownloadOptions, type BrowserDownloadProgress, browserDownload, } from './download.js';
21
+ export { type BrowserOpenOptions, BrowserPurchaseController, type BrowserPurchaseRecord, type BrowserPurchaseState, type BrowserPurchaseStorage, browserAnnon, browserPurchaseStorage, type ControllerOptions, PurchaseLeaseBusy, type PurchaseProgress, type PurchaseSdk, type PurchaseTermsReview, } from './purchases.js';
22
+ export { type BrowserSaleIndex, type BrowserSellerOptions, browserSellerSpool, browserSellerStorage, createBrowserSeller, type SaleHandle, type SaleView, type SellDraft, type SellerConnection, type SellerFacade, type SellProgress, type SellQuote, type SellStep, type SellTerms, } from './selling.js';
23
+ export { type BrowserNearProvider, type BrowserNearTransaction, BrowserWalletError, type BrowserWalletErrorCode, browserEvmWallet, browserNearWallet, browserSolanaWallet, type InjectedEvmProvider, type InjectedSolanaKey, type InjectedSolanaProvider, signNearUpload, } from './wallets.js';
@@ -0,0 +1,22 @@
1
+ export { AnnonError, isTransient, toPublicError, } from '../errors.js';
2
+ /** Browser purchase logic. The embedding application supplies its own screen and wallets. */
3
+ export { Annon, SellError, } from '../api/annon.js';
4
+ export { DownloadError } from '../download/download.js';
5
+ export { UploadClient, uploadText, } from '../download/upload.js';
6
+ export { Pay2Error } from '../envelope/pay2.js';
7
+ export { SourceChangedError } from '../envelope/stream.js';
8
+ export { CkdError } from '../keys/near-ckd.js';
9
+ export { HTTP_RETRY_MAX_WAIT_SECONDS, MAX_PAY2_BYTES, MAX_PLAINTEXT_BYTES } from '../limits.js';
10
+ export { NearError, NearRpcRateLimited } from '../near/rpc.js';
11
+ export { fileFundingText } from '../near/texts.js';
12
+ export { OneClick, OneClickQuoteExpired, OneClickRefused, originFromToken, validateRefundAddress, } from '../oneclick/oneclick.js';
13
+ export { exportSellerKey, importSellerKey, newBackupSecret, } from '../pay/backup.js';
14
+ export { BaseRpcRateLimited, PayError } from '../pay/base.js';
15
+ export { BASE_ELIGIBILITY_MAX_AGE_SECONDS, checkBaseSponsorship, validBaseSponsorship, } from '../relay/capabilities.js';
16
+ export { canonicalManifestUrl, catalog, listShops, } from '../shops/discovery.js';
17
+ export { TransactionUncertain } from '../wallet/uncertain.js';
18
+ export { FileFundingRefused, } from '../wallet/wallet.js';
19
+ export { BROWSER_DOWNLOAD_LIMIT, browserDownload, } from './download.js';
20
+ export { BrowserPurchaseController, browserAnnon, browserPurchaseStorage, PurchaseLeaseBusy, } from './purchases.js';
21
+ export { browserSellerSpool, browserSellerStorage, createBrowserSeller, } from './selling.js';
22
+ export { BrowserWalletError, browserEvmWallet, browserNearWallet, browserSolanaWallet, signNearUpload, } from './wallets.js';