@snaha/swarm-id 0.0.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 (223) hide show
  1. package/README.md +431 -0
  2. package/dist/chunk/bmt.d.ts +17 -0
  3. package/dist/chunk/bmt.d.ts.map +1 -0
  4. package/dist/chunk/cac.d.ts +18 -0
  5. package/dist/chunk/cac.d.ts.map +1 -0
  6. package/dist/chunk/constants.d.ts +10 -0
  7. package/dist/chunk/constants.d.ts.map +1 -0
  8. package/dist/chunk/encrypted-cac.d.ts +48 -0
  9. package/dist/chunk/encrypted-cac.d.ts.map +1 -0
  10. package/dist/chunk/encryption.d.ts +86 -0
  11. package/dist/chunk/encryption.d.ts.map +1 -0
  12. package/dist/chunk/index.d.ts +6 -0
  13. package/dist/chunk/index.d.ts.map +1 -0
  14. package/dist/index.d.ts +46 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/proxy/act/act.d.ts +78 -0
  17. package/dist/proxy/act/act.d.ts.map +1 -0
  18. package/dist/proxy/act/crypto.d.ts +44 -0
  19. package/dist/proxy/act/crypto.d.ts.map +1 -0
  20. package/dist/proxy/act/grantee-list.d.ts +82 -0
  21. package/dist/proxy/act/grantee-list.d.ts.map +1 -0
  22. package/dist/proxy/act/history.d.ts +183 -0
  23. package/dist/proxy/act/history.d.ts.map +1 -0
  24. package/dist/proxy/act/index.d.ts +104 -0
  25. package/dist/proxy/act/index.d.ts.map +1 -0
  26. package/dist/proxy/chunking-encrypted.d.ts +14 -0
  27. package/dist/proxy/chunking-encrypted.d.ts.map +1 -0
  28. package/dist/proxy/chunking.d.ts +15 -0
  29. package/dist/proxy/chunking.d.ts.map +1 -0
  30. package/dist/proxy/download-data.d.ts +16 -0
  31. package/dist/proxy/download-data.d.ts.map +1 -0
  32. package/dist/proxy/feed-manifest.d.ts +62 -0
  33. package/dist/proxy/feed-manifest.d.ts.map +1 -0
  34. package/dist/proxy/feeds/epochs/async-finder.d.ts +77 -0
  35. package/dist/proxy/feeds/epochs/async-finder.d.ts.map +1 -0
  36. package/dist/proxy/feeds/epochs/epoch.d.ts +88 -0
  37. package/dist/proxy/feeds/epochs/epoch.d.ts.map +1 -0
  38. package/dist/proxy/feeds/epochs/finder.d.ts +67 -0
  39. package/dist/proxy/feeds/epochs/finder.d.ts.map +1 -0
  40. package/dist/proxy/feeds/epochs/index.d.ts +35 -0
  41. package/dist/proxy/feeds/epochs/index.d.ts.map +1 -0
  42. package/dist/proxy/feeds/epochs/test-utils.d.ts +93 -0
  43. package/dist/proxy/feeds/epochs/test-utils.d.ts.map +1 -0
  44. package/dist/proxy/feeds/epochs/types.d.ts +109 -0
  45. package/dist/proxy/feeds/epochs/types.d.ts.map +1 -0
  46. package/dist/proxy/feeds/epochs/updater.d.ts +68 -0
  47. package/dist/proxy/feeds/epochs/updater.d.ts.map +1 -0
  48. package/dist/proxy/feeds/epochs/utils.d.ts +22 -0
  49. package/dist/proxy/feeds/epochs/utils.d.ts.map +1 -0
  50. package/dist/proxy/feeds/index.d.ts +5 -0
  51. package/dist/proxy/feeds/index.d.ts.map +1 -0
  52. package/dist/proxy/feeds/sequence/async-finder.d.ts +14 -0
  53. package/dist/proxy/feeds/sequence/async-finder.d.ts.map +1 -0
  54. package/dist/proxy/feeds/sequence/finder.d.ts +17 -0
  55. package/dist/proxy/feeds/sequence/finder.d.ts.map +1 -0
  56. package/dist/proxy/feeds/sequence/index.d.ts +23 -0
  57. package/dist/proxy/feeds/sequence/index.d.ts.map +1 -0
  58. package/dist/proxy/feeds/sequence/types.d.ts +80 -0
  59. package/dist/proxy/feeds/sequence/types.d.ts.map +1 -0
  60. package/dist/proxy/feeds/sequence/updater.d.ts +26 -0
  61. package/dist/proxy/feeds/sequence/updater.d.ts.map +1 -0
  62. package/dist/proxy/index.d.ts +6 -0
  63. package/dist/proxy/index.d.ts.map +1 -0
  64. package/dist/proxy/manifest-builder.d.ts +183 -0
  65. package/dist/proxy/manifest-builder.d.ts.map +1 -0
  66. package/dist/proxy/mantaray-encrypted.d.ts +27 -0
  67. package/dist/proxy/mantaray-encrypted.d.ts.map +1 -0
  68. package/dist/proxy/mantaray.d.ts +26 -0
  69. package/dist/proxy/mantaray.d.ts.map +1 -0
  70. package/dist/proxy/types.d.ts +29 -0
  71. package/dist/proxy/types.d.ts.map +1 -0
  72. package/dist/proxy/upload-data.d.ts +17 -0
  73. package/dist/proxy/upload-data.d.ts.map +1 -0
  74. package/dist/proxy/upload-encrypted-data.d.ts +103 -0
  75. package/dist/proxy/upload-encrypted-data.d.ts.map +1 -0
  76. package/dist/schemas.d.ts +240 -0
  77. package/dist/schemas.d.ts.map +1 -0
  78. package/dist/storage/debounced-uploader.d.ts +62 -0
  79. package/dist/storage/debounced-uploader.d.ts.map +1 -0
  80. package/dist/storage/utilization-store.d.ts +108 -0
  81. package/dist/storage/utilization-store.d.ts.map +1 -0
  82. package/dist/swarm-id-auth.d.ts +74 -0
  83. package/dist/swarm-id-auth.d.ts.map +1 -0
  84. package/dist/swarm-id-auth.js +2 -0
  85. package/dist/swarm-id-auth.js.map +1 -0
  86. package/dist/swarm-id-client.d.ts +878 -0
  87. package/dist/swarm-id-client.d.ts.map +1 -0
  88. package/dist/swarm-id-client.js +2 -0
  89. package/dist/swarm-id-client.js.map +1 -0
  90. package/dist/swarm-id-proxy.d.ts +236 -0
  91. package/dist/swarm-id-proxy.d.ts.map +1 -0
  92. package/dist/swarm-id-proxy.js +2 -0
  93. package/dist/swarm-id-proxy.js.map +1 -0
  94. package/dist/swarm-id.esm.js +2 -0
  95. package/dist/swarm-id.esm.js.map +1 -0
  96. package/dist/swarm-id.umd.js +2 -0
  97. package/dist/swarm-id.umd.js.map +1 -0
  98. package/dist/sync/index.d.ts +9 -0
  99. package/dist/sync/index.d.ts.map +1 -0
  100. package/dist/sync/key-derivation.d.ts +25 -0
  101. package/dist/sync/key-derivation.d.ts.map +1 -0
  102. package/dist/sync/restore-account.d.ts +28 -0
  103. package/dist/sync/restore-account.d.ts.map +1 -0
  104. package/dist/sync/serialization.d.ts +16 -0
  105. package/dist/sync/serialization.d.ts.map +1 -0
  106. package/dist/sync/store-interfaces.d.ts +53 -0
  107. package/dist/sync/store-interfaces.d.ts.map +1 -0
  108. package/dist/sync/sync-account.d.ts +44 -0
  109. package/dist/sync/sync-account.d.ts.map +1 -0
  110. package/dist/sync/types.d.ts +13 -0
  111. package/dist/sync/types.d.ts.map +1 -0
  112. package/dist/test-fixtures.d.ts +17 -0
  113. package/dist/test-fixtures.d.ts.map +1 -0
  114. package/dist/types-BD_VkNn0.js +2 -0
  115. package/dist/types-BD_VkNn0.js.map +1 -0
  116. package/dist/types-lJCaT-50.js +2 -0
  117. package/dist/types-lJCaT-50.js.map +1 -0
  118. package/dist/types.d.ts +2157 -0
  119. package/dist/types.d.ts.map +1 -0
  120. package/dist/utils/account-payload.d.ts +94 -0
  121. package/dist/utils/account-payload.d.ts.map +1 -0
  122. package/dist/utils/account-state-snapshot.d.ts +38 -0
  123. package/dist/utils/account-state-snapshot.d.ts.map +1 -0
  124. package/dist/utils/backup-encryption.d.ts +127 -0
  125. package/dist/utils/backup-encryption.d.ts.map +1 -0
  126. package/dist/utils/batch-utilization.d.ts +432 -0
  127. package/dist/utils/batch-utilization.d.ts.map +1 -0
  128. package/dist/utils/constants.d.ts +11 -0
  129. package/dist/utils/constants.d.ts.map +1 -0
  130. package/dist/utils/hex.d.ts +17 -0
  131. package/dist/utils/hex.d.ts.map +1 -0
  132. package/dist/utils/key-derivation.d.ts +92 -0
  133. package/dist/utils/key-derivation.d.ts.map +1 -0
  134. package/dist/utils/storage-managers.d.ts +65 -0
  135. package/dist/utils/storage-managers.d.ts.map +1 -0
  136. package/dist/utils/swarm-id-export.d.ts +24 -0
  137. package/dist/utils/swarm-id-export.d.ts.map +1 -0
  138. package/dist/utils/ttl.d.ts +49 -0
  139. package/dist/utils/ttl.d.ts.map +1 -0
  140. package/dist/utils/url.d.ts +41 -0
  141. package/dist/utils/url.d.ts.map +1 -0
  142. package/dist/utils/versioned-storage.d.ts +131 -0
  143. package/dist/utils/versioned-storage.d.ts.map +1 -0
  144. package/package.json +78 -0
  145. package/src/chunk/bmt.test.ts +217 -0
  146. package/src/chunk/bmt.ts +57 -0
  147. package/src/chunk/cac.test.ts +214 -0
  148. package/src/chunk/cac.ts +65 -0
  149. package/src/chunk/constants.ts +18 -0
  150. package/src/chunk/encrypted-cac.test.ts +385 -0
  151. package/src/chunk/encrypted-cac.ts +131 -0
  152. package/src/chunk/encryption.test.ts +352 -0
  153. package/src/chunk/encryption.ts +300 -0
  154. package/src/chunk/index.ts +47 -0
  155. package/src/index.ts +430 -0
  156. package/src/proxy/act/act.test.ts +278 -0
  157. package/src/proxy/act/act.ts +158 -0
  158. package/src/proxy/act/bee-compat.test.ts +948 -0
  159. package/src/proxy/act/crypto.test.ts +436 -0
  160. package/src/proxy/act/crypto.ts +376 -0
  161. package/src/proxy/act/grantee-list.test.ts +393 -0
  162. package/src/proxy/act/grantee-list.ts +239 -0
  163. package/src/proxy/act/history.test.ts +360 -0
  164. package/src/proxy/act/history.ts +413 -0
  165. package/src/proxy/act/index.test.ts +748 -0
  166. package/src/proxy/act/index.ts +853 -0
  167. package/src/proxy/chunking-encrypted.ts +95 -0
  168. package/src/proxy/chunking.ts +65 -0
  169. package/src/proxy/download-data.ts +448 -0
  170. package/src/proxy/feed-manifest.ts +174 -0
  171. package/src/proxy/feeds/epochs/async-finder.ts +372 -0
  172. package/src/proxy/feeds/epochs/epoch.test.ts +249 -0
  173. package/src/proxy/feeds/epochs/epoch.ts +181 -0
  174. package/src/proxy/feeds/epochs/finder.ts +282 -0
  175. package/src/proxy/feeds/epochs/index.ts +73 -0
  176. package/src/proxy/feeds/epochs/integration.test.ts +1336 -0
  177. package/src/proxy/feeds/epochs/test-utils.ts +274 -0
  178. package/src/proxy/feeds/epochs/types.ts +128 -0
  179. package/src/proxy/feeds/epochs/updater.ts +192 -0
  180. package/src/proxy/feeds/epochs/utils.ts +62 -0
  181. package/src/proxy/feeds/index.ts +5 -0
  182. package/src/proxy/feeds/sequence/async-finder.ts +31 -0
  183. package/src/proxy/feeds/sequence/finder.ts +73 -0
  184. package/src/proxy/feeds/sequence/index.ts +54 -0
  185. package/src/proxy/feeds/sequence/integration.test.ts +966 -0
  186. package/src/proxy/feeds/sequence/types.ts +103 -0
  187. package/src/proxy/feeds/sequence/updater.ts +71 -0
  188. package/src/proxy/index.ts +5 -0
  189. package/src/proxy/manifest-builder.test.ts +427 -0
  190. package/src/proxy/manifest-builder.ts +679 -0
  191. package/src/proxy/mantaray-encrypted.ts +78 -0
  192. package/src/proxy/mantaray.ts +104 -0
  193. package/src/proxy/types.ts +32 -0
  194. package/src/proxy/upload-data.ts +189 -0
  195. package/src/proxy/upload-encrypted-data.ts +658 -0
  196. package/src/schemas.ts +299 -0
  197. package/src/storage/debounced-uploader.ts +192 -0
  198. package/src/storage/utilization-store.ts +397 -0
  199. package/src/swarm-id-client.test.ts +99 -0
  200. package/src/swarm-id-client.ts +3095 -0
  201. package/src/swarm-id-proxy.ts +3891 -0
  202. package/src/sync/index.ts +28 -0
  203. package/src/sync/restore-account.ts +90 -0
  204. package/src/sync/serialization.ts +39 -0
  205. package/src/sync/store-interfaces.ts +62 -0
  206. package/src/sync/sync-account.test.ts +302 -0
  207. package/src/sync/sync-account.ts +396 -0
  208. package/src/sync/types.ts +11 -0
  209. package/src/test-fixtures.ts +109 -0
  210. package/src/types.ts +1651 -0
  211. package/src/utils/account-state-snapshot.test.ts +595 -0
  212. package/src/utils/account-state-snapshot.ts +94 -0
  213. package/src/utils/backup-encryption.test.ts +442 -0
  214. package/src/utils/backup-encryption.ts +352 -0
  215. package/src/utils/batch-utilization.ts +1309 -0
  216. package/src/utils/constants.ts +20 -0
  217. package/src/utils/hex.ts +27 -0
  218. package/src/utils/key-derivation.ts +197 -0
  219. package/src/utils/storage-managers.ts +365 -0
  220. package/src/utils/ttl.ts +129 -0
  221. package/src/utils/url.test.ts +136 -0
  222. package/src/utils/url.ts +71 -0
  223. package/src/utils/versioned-storage.ts +323 -0
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Swarm ID Proxy - Runs inside the iframe
3
+ *
4
+ * Responsibilities:
5
+ * - Receive app-specific secrets from auth popup
6
+ * - Store secrets in partitioned localStorage
7
+ * - Proxy Bee API calls from parent dApp
8
+ * - Augment requests with authentication
9
+ * - Return responses to parent dApp
10
+ */
11
+ export declare class SwarmIdProxy {
12
+ private parentOrigin;
13
+ private parentIdentified;
14
+ private authenticated;
15
+ private authLoading;
16
+ private appSecret;
17
+ private postageBatchId;
18
+ private signerKey;
19
+ private stamper;
20
+ private stamperDepth;
21
+ private storagePartitioned;
22
+ private pendingChallenge;
23
+ private storagePartitionedIdentity;
24
+ private utilizationStore;
25
+ private beeApiUrl;
26
+ private authButtonContainer;
27
+ private currentStyles;
28
+ private buttonConfig;
29
+ private popupMode;
30
+ private appMetadata;
31
+ private bee;
32
+ private unsubscribeConnectedApps;
33
+ private isConnecting;
34
+ private parentWindow;
35
+ private utilizationChannel;
36
+ constructor();
37
+ /**
38
+ * Subscribe to connected apps storage changes for direct mode authentication.
39
+ * When a user completes authentication in the /connect popup (direct mode),
40
+ * the popup writes to localStorage. This storage event notifies the proxy
41
+ * to check for a new valid connection and send authSuccess to the parent.
42
+ * Also handles disconnection when the connection is removed or invalidated.
43
+ *
44
+ * Note: We always set up this listener, even when storage might be partitioned.
45
+ * In some browsers/configurations (like localhost development), storage events
46
+ * work between same-origin windows even in iframes. If storage IS partitioned,
47
+ * the listener simply won't fire, and we fall back to postMessage from the popup.
48
+ */
49
+ private setupConnectedAppsListener;
50
+ /**
51
+ * Handle changes to connected apps storage (triggered by storage events from other windows).
52
+ * Handles new connections, identity changes, and disconnections.
53
+ */
54
+ private handleConnectedAppsChange;
55
+ /**
56
+ * Authenticate using data from connected apps storage
57
+ */
58
+ private authenticateFromStorage;
59
+ /**
60
+ * Handle messages from the auth popup (same-origin postMessage).
61
+ * Used as storage partitioning fallback when storage events don't fire due to partitioning.
62
+ */
63
+ private handlePopupMessage;
64
+ /**
65
+ * Clean up resources when the proxy is destroyed.
66
+ * Call this method when the proxy iframe is being unloaded.
67
+ */
68
+ destroy(): void;
69
+ /**
70
+ * Setup listener for utilization updates from other tabs.
71
+ * When another tab completes a write, it broadcasts an update.
72
+ * This tab applies the delta update directly from the message.
73
+ */
74
+ private setupUtilizationListener;
75
+ /**
76
+ * Execute a write operation with an exclusive lock across all tabs.
77
+ * Uses Web Locks API to ensure only one write happens at a time.
78
+ * Lock is scoped to the batch ID to allow different batches to write concurrently.
79
+ */
80
+ private withWriteLock;
81
+ /**
82
+ * Announce that proxy is ready to receive messages
83
+ * Broadcasts to parent with wildcard origin since we don't know parent origin yet
84
+ */
85
+ private announceReady;
86
+ /**
87
+ * Get the stored postage batch ID
88
+ */
89
+ getPostageBatchId(): string | undefined;
90
+ /**
91
+ * Get the stored signer key
92
+ */
93
+ getSignerKey(): string | undefined;
94
+ /**
95
+ * Initialize the Stamper for client-side signing
96
+ * Uses UtilizationAwareStamper to track bucket usage
97
+ */
98
+ private initializeStamper;
99
+ /**
100
+ * Save stamper bucket state to IndexedDB
101
+ * Utilization-aware stamper persists bucket state automatically
102
+ */
103
+ private saveStamperState;
104
+ /**
105
+ * Setup message listener for parent and popup messages
106
+ */
107
+ private setupMessageListener;
108
+ /**
109
+ * Handle parent identification
110
+ */
111
+ private handleParentIdentify;
112
+ /**
113
+ * Handle messages from parent window
114
+ */
115
+ private handleParentMessage;
116
+ /**
117
+ * Load authentication data from shared storage (ConnectedApp records).
118
+ */
119
+ private loadAuthData;
120
+ /**
121
+ * Look up the postage stamp for the currently connected app's identity
122
+ * by reading from shared localStorage stores.
123
+ */
124
+ private lookupPostageStampForApp;
125
+ /**
126
+ * Look up the account for the currently connected app's identity
127
+ * by reading from shared localStorage stores.
128
+ *
129
+ * @returns Account info with owner address and encryption key, or undefined if not found
130
+ */
131
+ private lookupAccountForApp;
132
+ /**
133
+ * Check if a connection is still valid based on connectedUntil timestamp
134
+ */
135
+ private isConnectionValid;
136
+ /**
137
+ * Find the most recently connected valid entry for the current parent origin.
138
+ * Resolves ambiguity when multiple identities are connected to the same app
139
+ * by sorting by lastConnectedAt descending and returning the first valid one.
140
+ */
141
+ private findMostRecentConnection;
142
+ /**
143
+ * Look up the app secret from shared storage for the current parent origin.
144
+ * Returns the secret and identityId if found and connection is valid.
145
+ */
146
+ private lookupAppSecretFromSharedStorage;
147
+ /**
148
+ * Clear authentication data
149
+ */
150
+ private clearAuthData;
151
+ /**
152
+ * Send error message to parent
153
+ */
154
+ private sendErrorToParent;
155
+ private ensureCanUpload;
156
+ /**
157
+ * Send message to parent
158
+ */
159
+ private sendToParent;
160
+ private handleCheckAuth;
161
+ private handleGetConnectionInfo;
162
+ private handleIsConnected;
163
+ private handleGetNodeInfo;
164
+ private handleDisconnect;
165
+ private handleRequestAuth;
166
+ /**
167
+ * Show authentication button in the UI
168
+ */
169
+ private showAuthButton;
170
+ private handleConnect;
171
+ /**
172
+ * Open the authentication popup window.
173
+ * Returns true if popup was opened, false if parent origin is not set.
174
+ */
175
+ private openAuthPopup;
176
+ /**
177
+ * Handle login button click
178
+ */
179
+ private handleLoginClick;
180
+ /**
181
+ * Handle disconnect button click
182
+ */
183
+ private handleDisconnectClick;
184
+ /**
185
+ * Set container element for auth button
186
+ */
187
+ setAuthButtonContainer(container: HTMLElement): void;
188
+ private handleUploadData;
189
+ private handleDownloadData;
190
+ private handleUploadFile;
191
+ private handleDownloadFile;
192
+ private handleUploadChunk;
193
+ private handleDownloadChunk;
194
+ private handleGsocMine;
195
+ private handleGsocSend;
196
+ private handleSocUpload;
197
+ private handleSocRawUpload;
198
+ private handleSocDownload;
199
+ private handleSocRawDownload;
200
+ private handleSocGetOwner;
201
+ private parseFeedTimestamp;
202
+ private parseFeedIndex;
203
+ private makeSequentialFeedIdentifier;
204
+ private findLatestSequentialIndex;
205
+ private sequentialNextIndex;
206
+ private handleFeedGetOwner;
207
+ private handleEpochFeedDownloadReference;
208
+ private handleEpochFeedUploadReference;
209
+ private handleSequentialFeedGetOwner;
210
+ private resolveSequentialOwner;
211
+ private parseSequentialPayload;
212
+ private resolveSequentialIndex;
213
+ private handleSequentialFeedDownloadPayload;
214
+ private handleSequentialFeedDownloadRawPayload;
215
+ private handleSequentialFeedDownloadReference;
216
+ private buildSequentialPayload;
217
+ private handleSequentialFeedUploadPayload;
218
+ private handleSequentialFeedUploadRawPayload;
219
+ private handleSequentialFeedUploadReference;
220
+ private handleActUploadData;
221
+ private handleActDownloadData;
222
+ private handleActAddGrantees;
223
+ private handleActRevokeGrantees;
224
+ private handleActGetGrantees;
225
+ private handleGetPostageBatch;
226
+ /**
227
+ * Handle createFeedManifest request
228
+ * Creates a feed manifest for accessing feed content via URL
229
+ */
230
+ private handleCreateFeedManifest;
231
+ }
232
+ /**
233
+ * Initialize the proxy (called from HTML page)
234
+ */
235
+ export declare function initProxy(): SwarmIdProxy;
236
+ //# sourceMappingURL=swarm-id-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-id-proxy.d.ts","sourceRoot":"","sources":["../src/swarm-id-proxy.ts"],"names":[],"mappings":"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"}