@opendatalabs/personal-server-ts-core 0.2.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/dist/api/index.d.ts +160 -0
  2. package/dist/api/index.d.ts.map +1 -0
  3. package/dist/api/index.js +774 -0
  4. package/dist/api/index.js.map +1 -0
  5. package/dist/auth/index.d.ts +2 -0
  6. package/dist/auth/index.d.ts.map +1 -0
  7. package/dist/auth/index.js +2 -0
  8. package/dist/auth/index.js.map +1 -0
  9. package/dist/auth/request.d.ts +28 -0
  10. package/dist/auth/request.d.ts.map +1 -0
  11. package/dist/auth/request.js +106 -0
  12. package/dist/auth/request.js.map +1 -0
  13. package/dist/client.d.ts +233 -0
  14. package/dist/client.d.ts.map +1 -0
  15. package/dist/client.js +243 -0
  16. package/dist/client.js.map +1 -0
  17. package/dist/config/defaults.d.ts +5 -5
  18. package/dist/config/defaults.d.ts.map +1 -1
  19. package/dist/config/defaults.js +3 -5
  20. package/dist/config/defaults.js.map +1 -1
  21. package/dist/config/index.d.ts +0 -1
  22. package/dist/config/index.d.ts.map +1 -1
  23. package/dist/config/index.js +0 -1
  24. package/dist/config/index.js.map +1 -1
  25. package/dist/config/paths.d.ts.map +1 -1
  26. package/dist/config/paths.js +1 -9
  27. package/dist/config/paths.js.map +1 -1
  28. package/dist/contracts/access-logs.d.ts +8 -0
  29. package/dist/contracts/access-logs.d.ts.map +1 -0
  30. package/dist/contracts/access-logs.js +7 -0
  31. package/dist/contracts/access-logs.js.map +1 -0
  32. package/dist/contracts/auth-device.d.ts +70 -0
  33. package/dist/contracts/auth-device.d.ts.map +1 -0
  34. package/dist/contracts/auth-device.js +163 -0
  35. package/dist/contracts/auth-device.js.map +1 -0
  36. package/dist/contracts/binary.d.ts +54 -0
  37. package/dist/contracts/binary.d.ts.map +1 -0
  38. package/dist/contracts/binary.js +92 -0
  39. package/dist/contracts/binary.js.map +1 -0
  40. package/dist/contracts/config.d.ts +5 -0
  41. package/dist/contracts/config.d.ts.map +1 -0
  42. package/dist/contracts/config.js +30 -0
  43. package/dist/contracts/config.js.map +1 -0
  44. package/dist/contracts/data.d.ts +115 -0
  45. package/dist/contracts/data.d.ts.map +1 -0
  46. package/dist/contracts/data.js +237 -0
  47. package/dist/contracts/data.js.map +1 -0
  48. package/dist/contracts/grants.d.ts +45 -0
  49. package/dist/contracts/grants.d.ts.map +1 -0
  50. package/dist/contracts/grants.js +177 -0
  51. package/dist/contracts/grants.js.map +1 -0
  52. package/dist/contracts/http.d.ts +21 -0
  53. package/dist/contracts/http.d.ts.map +1 -0
  54. package/dist/contracts/http.js +49 -0
  55. package/dist/contracts/http.js.map +1 -0
  56. package/dist/contracts/index.d.ts +16 -0
  57. package/dist/contracts/index.d.ts.map +1 -0
  58. package/dist/contracts/index.js +10 -0
  59. package/dist/contracts/index.js.map +1 -0
  60. package/dist/contracts/oauth.d.ts +38 -0
  61. package/dist/contracts/oauth.d.ts.map +1 -0
  62. package/dist/contracts/oauth.js +130 -0
  63. package/dist/contracts/oauth.js.map +1 -0
  64. package/dist/contracts/sync.d.ts +10 -0
  65. package/dist/contracts/sync.d.ts.map +1 -0
  66. package/dist/contracts/sync.js +34 -0
  67. package/dist/contracts/sync.js.map +1 -0
  68. package/dist/errors/catalog.d.ts +9 -0
  69. package/dist/errors/catalog.d.ts.map +1 -1
  70. package/dist/errors/catalog.js +15 -0
  71. package/dist/errors/catalog.js.map +1 -1
  72. package/dist/grants/index.d.ts +2 -4
  73. package/dist/grants/index.d.ts.map +1 -1
  74. package/dist/grants/index.js +1 -2
  75. package/dist/grants/index.js.map +1 -1
  76. package/dist/keys/index.d.ts +1 -2
  77. package/dist/keys/index.d.ts.map +1 -1
  78. package/dist/keys/index.js +1 -2
  79. package/dist/keys/index.js.map +1 -1
  80. package/dist/keys/server-account.d.ts +5 -9
  81. package/dist/keys/server-account.d.ts.map +1 -1
  82. package/dist/keys/server-account.js +1 -47
  83. package/dist/keys/server-account.js.map +1 -1
  84. package/dist/logger/index.d.ts +6 -2
  85. package/dist/logger/index.d.ts.map +1 -1
  86. package/dist/logger/index.js +2 -6
  87. package/dist/logger/index.js.map +1 -1
  88. package/dist/logging/access-log.d.ts +0 -1
  89. package/dist/logging/access-log.d.ts.map +1 -1
  90. package/dist/logging/access-log.js +1 -24
  91. package/dist/logging/access-log.js.map +1 -1
  92. package/dist/logging/access-reader.d.ts +0 -5
  93. package/dist/logging/access-reader.d.ts.map +1 -1
  94. package/dist/logging/access-reader.js +1 -49
  95. package/dist/logging/access-reader.js.map +1 -1
  96. package/dist/mcp/activity.d.ts +68 -0
  97. package/dist/mcp/activity.d.ts.map +1 -0
  98. package/dist/mcp/activity.js +111 -0
  99. package/dist/mcp/activity.js.map +1 -0
  100. package/dist/mcp/builder-registration.d.ts +24 -0
  101. package/dist/mcp/builder-registration.d.ts.map +1 -0
  102. package/dist/mcp/builder-registration.js +89 -0
  103. package/dist/mcp/builder-registration.js.map +1 -0
  104. package/dist/mcp/connection-api.d.ts +170 -0
  105. package/dist/mcp/connection-api.d.ts.map +1 -0
  106. package/dist/mcp/connection-api.js +379 -0
  107. package/dist/mcp/connection-api.js.map +1 -0
  108. package/dist/mcp/grantee.d.ts +52 -0
  109. package/dist/mcp/grantee.d.ts.map +1 -0
  110. package/dist/mcp/grantee.js +91 -0
  111. package/dist/mcp/grantee.js.map +1 -0
  112. package/dist/mcp/index.d.ts +10 -0
  113. package/dist/mcp/index.d.ts.map +1 -0
  114. package/dist/mcp/index.js +10 -0
  115. package/dist/mcp/index.js.map +1 -0
  116. package/dist/mcp/read-client.d.ts +136 -0
  117. package/dist/mcp/read-client.d.ts.map +1 -0
  118. package/dist/mcp/read-client.js +306 -0
  119. package/dist/mcp/read-client.js.map +1 -0
  120. package/dist/mcp/resources.d.ts +37 -0
  121. package/dist/mcp/resources.d.ts.map +1 -0
  122. package/dist/mcp/resources.js +114 -0
  123. package/dist/mcp/resources.js.map +1 -0
  124. package/dist/mcp/search/index.d.ts +34 -0
  125. package/dist/mcp/search/index.d.ts.map +1 -0
  126. package/dist/mcp/search/index.js +69 -0
  127. package/dist/mcp/search/index.js.map +1 -0
  128. package/dist/mcp/server.d.ts +53 -0
  129. package/dist/mcp/server.d.ts.map +1 -0
  130. package/dist/mcp/server.js +308 -0
  131. package/dist/mcp/server.js.map +1 -0
  132. package/dist/mcp/store.d.ts +13 -0
  133. package/dist/mcp/store.d.ts.map +1 -0
  134. package/dist/mcp/store.js +98 -0
  135. package/dist/mcp/store.js.map +1 -0
  136. package/dist/mcp/tools.d.ts +60 -0
  137. package/dist/mcp/tools.d.ts.map +1 -0
  138. package/dist/mcp/tools.js +1058 -0
  139. package/dist/mcp/tools.js.map +1 -0
  140. package/dist/mcp/types.d.ts +97 -0
  141. package/dist/mcp/types.d.ts.map +1 -0
  142. package/dist/mcp/types.js +24 -0
  143. package/dist/mcp/types.js.map +1 -0
  144. package/dist/payment/index.d.ts +2 -0
  145. package/dist/payment/index.d.ts.map +1 -0
  146. package/dist/payment/index.js +2 -0
  147. package/dist/payment/index.js.map +1 -0
  148. package/dist/payment/x402.d.ts +155 -0
  149. package/dist/payment/x402.d.ts.map +1 -0
  150. package/dist/payment/x402.js +402 -0
  151. package/dist/payment/x402.js.map +1 -0
  152. package/dist/policy/data-read.d.ts +15 -0
  153. package/dist/policy/data-read.d.ts.map +1 -0
  154. package/dist/policy/data-read.js +84 -0
  155. package/dist/policy/data-read.js.map +1 -0
  156. package/dist/policy/index.d.ts +2 -0
  157. package/dist/policy/index.d.ts.map +1 -0
  158. package/dist/policy/index.js +2 -0
  159. package/dist/policy/index.js.map +1 -0
  160. package/dist/ports/index.d.ts +95 -0
  161. package/dist/ports/index.d.ts.map +1 -0
  162. package/dist/ports/index.js +7 -0
  163. package/dist/ports/index.js.map +1 -0
  164. package/dist/schemas/server-config.d.ts +12 -0
  165. package/dist/schemas/server-config.d.ts.map +1 -1
  166. package/dist/schemas/server-config.js +34 -4
  167. package/dist/schemas/server-config.js.map +1 -1
  168. package/dist/signing/index.d.ts +0 -1
  169. package/dist/signing/index.d.ts.map +1 -1
  170. package/dist/signing/index.js +0 -1
  171. package/dist/signing/index.js.map +1 -1
  172. package/dist/signing/request-signer.d.ts +8 -2
  173. package/dist/signing/request-signer.d.ts.map +1 -1
  174. package/dist/signing/request-signer.js +5 -31
  175. package/dist/signing/request-signer.js.map +1 -1
  176. package/dist/signing/signer.d.ts +20 -2
  177. package/dist/signing/signer.d.ts.map +1 -1
  178. package/dist/signing/signer.js +23 -13
  179. package/dist/signing/signer.js.map +1 -1
  180. package/dist/storage/adapters/index.d.ts +2 -1
  181. package/dist/storage/adapters/index.d.ts.map +1 -1
  182. package/dist/storage/adapters/index.js +2 -1
  183. package/dist/storage/adapters/index.js.map +1 -1
  184. package/dist/storage/adapters/interface.d.ts +10 -0
  185. package/dist/storage/adapters/interface.d.ts.map +1 -1
  186. package/dist/storage/adapters/sdk.d.ts +23 -0
  187. package/dist/storage/adapters/sdk.d.ts.map +1 -0
  188. package/dist/storage/adapters/sdk.js +73 -0
  189. package/dist/storage/adapters/sdk.js.map +1 -0
  190. package/dist/storage/adapters/vana.d.ts +7 -30
  191. package/dist/storage/adapters/vana.d.ts.map +1 -1
  192. package/dist/storage/adapters/vana.js +37 -92
  193. package/dist/storage/adapters/vana.js.map +1 -1
  194. package/dist/storage/blocks/build.d.ts +20 -0
  195. package/dist/storage/blocks/build.d.ts.map +1 -0
  196. package/dist/storage/blocks/build.js +378 -0
  197. package/dist/storage/blocks/build.js.map +1 -0
  198. package/dist/storage/blocks/cursor.d.ts +33 -0
  199. package/dist/storage/blocks/cursor.d.ts.map +1 -0
  200. package/dist/storage/blocks/cursor.js +142 -0
  201. package/dist/storage/blocks/cursor.js.map +1 -0
  202. package/dist/storage/blocks/errors.d.ts +6 -0
  203. package/dist/storage/blocks/errors.d.ts.map +1 -0
  204. package/dist/storage/blocks/errors.js +9 -0
  205. package/dist/storage/blocks/errors.js.map +1 -0
  206. package/dist/storage/blocks/index.d.ts +5 -0
  207. package/dist/storage/blocks/index.d.ts.map +1 -0
  208. package/dist/storage/blocks/index.js +4 -0
  209. package/dist/storage/blocks/index.js.map +1 -0
  210. package/dist/storage/blocks/types.d.ts +49 -0
  211. package/dist/storage/blocks/types.d.ts.map +1 -0
  212. package/dist/storage/blocks/types.js +2 -0
  213. package/dist/{grants → storage/blocks}/types.js.map +1 -1
  214. package/dist/storage/hierarchy/index.d.ts +0 -1
  215. package/dist/storage/hierarchy/index.d.ts.map +1 -1
  216. package/dist/storage/hierarchy/index.js +0 -1
  217. package/dist/storage/hierarchy/index.js.map +1 -1
  218. package/dist/storage/hierarchy/manager.d.ts +0 -14
  219. package/dist/storage/hierarchy/manager.d.ts.map +1 -1
  220. package/dist/storage/hierarchy/manager.js +1 -59
  221. package/dist/storage/hierarchy/manager.js.map +1 -1
  222. package/dist/storage/hierarchy/paths.d.ts.map +1 -1
  223. package/dist/storage/hierarchy/paths.js +11 -4
  224. package/dist/storage/hierarchy/paths.js.map +1 -1
  225. package/dist/storage/index/index.d.ts +2 -3
  226. package/dist/storage/index/index.d.ts.map +1 -1
  227. package/dist/storage/index/index.js +1 -2
  228. package/dist/storage/index/index.js.map +1 -1
  229. package/dist/storage/index/manager.d.ts +26 -6
  230. package/dist/storage/index/manager.d.ts.map +1 -1
  231. package/dist/storage/index/manager.js +1 -131
  232. package/dist/storage/index/manager.js.map +1 -1
  233. package/dist/storage/index/schema.d.ts +1 -3
  234. package/dist/storage/index/schema.d.ts.map +1 -1
  235. package/dist/storage/index/schema.js +1 -26
  236. package/dist/storage/index/schema.js.map +1 -1
  237. package/dist/storage/index/types.d.ts +16 -0
  238. package/dist/storage/index/types.d.ts.map +1 -1
  239. package/dist/storage/preview.d.ts +12 -0
  240. package/dist/storage/preview.d.ts.map +1 -0
  241. package/dist/storage/preview.js +239 -0
  242. package/dist/storage/preview.js.map +1 -0
  243. package/dist/sync/cursor.d.ts +5 -7
  244. package/dist/sync/cursor.d.ts.map +1 -1
  245. package/dist/sync/cursor.js +1 -18
  246. package/dist/sync/cursor.js.map +1 -1
  247. package/dist/sync/engine/sync-manager.d.ts +17 -0
  248. package/dist/sync/engine/sync-manager.d.ts.map +1 -1
  249. package/dist/sync/engine/sync-manager.js +104 -43
  250. package/dist/sync/engine/sync-manager.js.map +1 -1
  251. package/dist/sync/index.d.ts +4 -2
  252. package/dist/sync/index.d.ts.map +1 -1
  253. package/dist/sync/index.js +1 -1
  254. package/dist/sync/index.js.map +1 -1
  255. package/dist/sync/issues.d.ts +55 -0
  256. package/dist/sync/issues.d.ts.map +1 -0
  257. package/dist/sync/issues.js +168 -0
  258. package/dist/sync/issues.js.map +1 -0
  259. package/dist/sync/retry-memory.d.ts +33 -0
  260. package/dist/sync/retry-memory.d.ts.map +1 -0
  261. package/dist/sync/retry-memory.js +68 -0
  262. package/dist/sync/retry-memory.js.map +1 -0
  263. package/dist/sync/types.d.ts +9 -24
  264. package/dist/sync/types.d.ts.map +1 -1
  265. package/dist/sync/workers/delete.d.ts +42 -0
  266. package/dist/sync/workers/delete.d.ts.map +1 -0
  267. package/dist/sync/workers/delete.js +40 -0
  268. package/dist/sync/workers/delete.js.map +1 -0
  269. package/dist/sync/workers/download.d.ts +64 -18
  270. package/dist/sync/workers/download.d.ts.map +1 -1
  271. package/dist/sync/workers/download.js +396 -54
  272. package/dist/sync/workers/download.js.map +1 -1
  273. package/dist/sync/workers/upload.d.ts +29 -18
  274. package/dist/sync/workers/upload.d.ts.map +1 -1
  275. package/dist/sync/workers/upload.js +163 -46
  276. package/dist/sync/workers/upload.js.map +1 -1
  277. package/dist/test-utils/wallet.d.ts +1 -0
  278. package/dist/test-utils/wallet.d.ts.map +1 -1
  279. package/dist/test-utils/wallet.js +9 -31
  280. package/dist/test-utils/wallet.js.map +1 -1
  281. package/package.json +51 -27
  282. package/dist/auth/web3-signed.d.ts +0 -48
  283. package/dist/auth/web3-signed.d.ts.map +0 -1
  284. package/dist/auth/web3-signed.js +0 -110
  285. package/dist/auth/web3-signed.js.map +0 -1
  286. package/dist/config/loader.d.ts +0 -8
  287. package/dist/config/loader.d.ts.map +0 -1
  288. package/dist/config/loader.js +0 -38
  289. package/dist/config/loader.js.map +0 -1
  290. package/dist/gateway/client.d.ts +0 -98
  291. package/dist/gateway/client.d.ts.map +0 -1
  292. package/dist/gateway/client.js +0 -171
  293. package/dist/gateway/client.js.map +0 -1
  294. package/dist/grants/eip712.d.ts +0 -28
  295. package/dist/grants/eip712.d.ts.map +0 -1
  296. package/dist/grants/eip712.js +0 -30
  297. package/dist/grants/eip712.js.map +0 -1
  298. package/dist/grants/types.d.ts +0 -29
  299. package/dist/grants/types.d.ts.map +0 -1
  300. package/dist/grants/types.js +0 -6
  301. package/dist/grants/verify.d.ts +0 -24
  302. package/dist/grants/verify.d.ts.map +0 -1
  303. package/dist/grants/verify.js +0 -71
  304. package/dist/grants/verify.js.map +0 -1
  305. package/dist/keys/derive.d.ts +0 -18
  306. package/dist/keys/derive.d.ts.map +0 -1
  307. package/dist/keys/derive.js +0 -43
  308. package/dist/keys/derive.js.map +0 -1
  309. package/dist/schemas/data-file.d.ts +0 -20
  310. package/dist/schemas/data-file.d.ts.map +0 -1
  311. package/dist/schemas/data-file.js +0 -23
  312. package/dist/schemas/data-file.js.map +0 -1
  313. package/dist/scopes/index.d.ts +0 -3
  314. package/dist/scopes/index.d.ts.map +0 -1
  315. package/dist/scopes/index.js +0 -3
  316. package/dist/scopes/index.js.map +0 -1
  317. package/dist/scopes/match.d.ts +0 -13
  318. package/dist/scopes/match.d.ts.map +0 -1
  319. package/dist/scopes/match.js +0 -23
  320. package/dist/scopes/match.js.map +0 -1
  321. package/dist/scopes/parse.d.ts +0 -12
  322. package/dist/scopes/parse.d.ts.map +0 -1
  323. package/dist/scopes/parse.js +0 -29
  324. package/dist/scopes/parse.js.map +0 -1
  325. package/dist/signing/eip712.d.ts +0 -69
  326. package/dist/signing/eip712.d.ts.map +0 -1
  327. package/dist/signing/eip712.js +0 -68
  328. package/dist/signing/eip712.js.map +0 -1
  329. package/dist/storage/encryption/decrypt.d.ts +0 -10
  330. package/dist/storage/encryption/decrypt.d.ts.map +0 -1
  331. package/dist/storage/encryption/decrypt.js +0 -19
  332. package/dist/storage/encryption/decrypt.js.map +0 -1
  333. package/dist/storage/encryption/encrypt.d.ts +0 -10
  334. package/dist/storage/encryption/encrypt.d.ts.map +0 -1
  335. package/dist/storage/encryption/encrypt.js +0 -19
  336. package/dist/storage/encryption/encrypt.js.map +0 -1
  337. package/dist/storage/encryption/index.d.ts +0 -3
  338. package/dist/storage/encryption/index.d.ts.map +0 -1
  339. package/dist/storage/encryption/index.js +0 -3
  340. package/dist/storage/encryption/index.js.map +0 -1
@@ -1,110 +0,0 @@
1
- /**
2
- * Web3Signed Authorization header parsing and verification.
3
- *
4
- * Header format: "Web3Signed {base64url(payload)}.{signature}"
5
- * Payload is JSON with fields: aud, method, uri, bodyHash, iat, exp, grantId?
6
- * Signature is EIP-191 over the base64url-encoded payload string.
7
- */
8
- import { recoverMessageAddress } from "viem";
9
- import { MissingAuthError, InvalidSignatureError, ExpiredTokenError, } from "../errors/catalog.js";
10
- const WEB3_SIGNED_PREFIX = "Web3Signed ";
11
- const CLOCK_SKEW_SECONDS = 60;
12
- /** Decode a base64url string (no padding) to UTF-8. */
13
- function base64urlDecode(input) {
14
- let base64 = input.replace(/-/g, "+").replace(/_/g, "/");
15
- const padLength = (4 - (base64.length % 4)) % 4;
16
- base64 += "=".repeat(padLength);
17
- return Buffer.from(base64, "base64").toString("utf-8");
18
- }
19
- /**
20
- * Parse "Web3Signed <base64url>.<signature>" header value.
21
- * Throws MissingAuthError if header is missing/empty.
22
- * Throws InvalidSignatureError if format is invalid.
23
- */
24
- export function parseWeb3SignedHeader(headerValue) {
25
- if (!headerValue) {
26
- throw new MissingAuthError();
27
- }
28
- if (!headerValue.startsWith(WEB3_SIGNED_PREFIX)) {
29
- throw new InvalidSignatureError({ reason: "Missing Web3Signed prefix" });
30
- }
31
- const value = headerValue.slice(WEB3_SIGNED_PREFIX.length);
32
- const dotIndex = value.indexOf(".");
33
- if (dotIndex === -1 || dotIndex === 0 || dotIndex === value.length - 1) {
34
- throw new InvalidSignatureError({ reason: "Invalid header format" });
35
- }
36
- const payloadBase64 = value.slice(0, dotIndex);
37
- const signatureStr = value.slice(dotIndex + 1);
38
- if (!signatureStr.startsWith("0x")) {
39
- throw new InvalidSignatureError({ reason: "Invalid signature format" });
40
- }
41
- let payload;
42
- try {
43
- const decoded = base64urlDecode(payloadBase64);
44
- payload = JSON.parse(decoded);
45
- }
46
- catch {
47
- throw new InvalidSignatureError({ reason: "Invalid payload encoding" });
48
- }
49
- return {
50
- payloadBase64,
51
- payload,
52
- signature: signatureStr,
53
- };
54
- }
55
- /**
56
- * Full verification: parse header, recover signer via EIP-191, check claims.
57
- *
58
- * Steps:
59
- * 1. Parse header -> base64url + signature
60
- * 2. Recover signer via recoverMessageAddress (EIP-191) over the base64url string
61
- * 3. Check aud === expectedOrigin, method === expectedMethod, uri === expectedPath
62
- * 4. Check iat/exp within clock skew (60s)
63
- * 5. Return { signer, payload }
64
- */
65
- export async function verifyWeb3Signed(params) {
66
- const { payloadBase64, payload, signature } = parseWeb3SignedHeader(params.headerValue);
67
- // Recover signer from EIP-191 signature over the base64url payload string
68
- let signer;
69
- try {
70
- signer = await recoverMessageAddress({
71
- message: payloadBase64,
72
- signature,
73
- });
74
- }
75
- catch {
76
- throw new InvalidSignatureError({ reason: "Signature recovery failed" });
77
- }
78
- // Verify claims
79
- if (payload.aud !== params.expectedOrigin) {
80
- throw new InvalidSignatureError({
81
- reason: "Audience mismatch",
82
- expected: params.expectedOrigin,
83
- actual: payload.aud,
84
- });
85
- }
86
- if (payload.method !== params.expectedMethod) {
87
- throw new InvalidSignatureError({
88
- reason: "Method mismatch",
89
- expected: params.expectedMethod,
90
- actual: payload.method,
91
- });
92
- }
93
- if (payload.uri !== params.expectedPath) {
94
- throw new InvalidSignatureError({
95
- reason: "URI mismatch",
96
- expected: params.expectedPath,
97
- actual: payload.uri,
98
- });
99
- }
100
- // Time checks
101
- const now = params.now ?? Math.floor(Date.now() / 1000);
102
- if (payload.exp < now - CLOCK_SKEW_SECONDS) {
103
- throw new ExpiredTokenError({ reason: "Token expired" });
104
- }
105
- if (payload.iat > now + CLOCK_SKEW_SECONDS) {
106
- throw new ExpiredTokenError({ reason: "Token issued in the future" });
107
- }
108
- return { signer, payload };
109
- }
110
- //# sourceMappingURL=web3-signed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web3-signed.js","sourceRoot":"","sources":["../../src/auth/web3-signed.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { type ServerConfig } from "../schemas/server-config.js";
2
- export interface LoadConfigOptions {
3
- configPath?: string;
4
- rootPath?: string;
5
- }
6
- export declare function loadConfig(options?: LoadConfigOptions): Promise<ServerConfig>;
7
- export declare function saveConfig(config: ServerConfig, options?: LoadConfigOptions): Promise<void>;
8
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,UAAU,CAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,YAAY,CAAC,CA+BvB;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAMf"}
@@ -1,38 +0,0 @@
1
- import { readFile, writeFile, mkdir } from "node:fs/promises";
2
- import { dirname, join } from "node:path";
3
- import { ServerConfigSchema, } from "../schemas/server-config.js";
4
- import { resolveRootPath } from "./paths.js";
5
- export async function loadConfig(options) {
6
- const configPath = options?.configPath ??
7
- join(resolveRootPath(options?.rootPath), "config.json");
8
- let raw;
9
- try {
10
- raw = await readFile(configPath, "utf-8");
11
- }
12
- catch (err) {
13
- if (err instanceof Error &&
14
- "code" in err &&
15
- err.code === "ENOENT") {
16
- // File doesn't exist — will use empty object for defaults
17
- }
18
- else {
19
- throw err;
20
- }
21
- }
22
- const parsed = raw !== undefined ? JSON.parse(raw) : {};
23
- const config = ServerConfigSchema.parse(parsed);
24
- // Write back so that defaults are visible and editable in config.json
25
- const serialized = JSON.stringify(config, null, 2) + "\n";
26
- if (serialized !== raw) {
27
- await mkdir(dirname(configPath), { recursive: true });
28
- await writeFile(configPath, serialized);
29
- }
30
- return config;
31
- }
32
- export async function saveConfig(config, options) {
33
- const configPath = options?.configPath ??
34
- join(resolveRootPath(options?.rootPath), "config.json");
35
- await mkdir(dirname(configPath), { recursive: true });
36
- await writeFile(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
37
- }
38
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,kBAAkB,GAEnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAO7C,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAA2B;IAE3B,MAAM,UAAU,GACd,OAAO,EAAE,UAAU;QACnB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;IAE1D,IAAI,GAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IACE,GAAG,YAAY,KAAK;YACpB,MAAM,IAAI,GAAG;YACZ,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAChD,CAAC;YACD,0DAA0D;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEhD,sEAAsE;IACtE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAC1D,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAoB,EACpB,OAA2B;IAE3B,MAAM,UAAU,GACd,OAAO,EAAE,UAAU;QACnB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;IAC1D,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/E,CAAC"}
@@ -1,98 +0,0 @@
1
- /**
2
- * Gateway client for communicating with the Vana Gateway API.
3
- * Provides builder registration checks and grant lookups.
4
- *
5
- * All Gateway GET endpoints return responses wrapped in:
6
- * { data: T, proof: GatewayProof }
7
- * This client unwraps the envelope and returns just the data.
8
- */
9
- import type { GatewayGrantResponse } from "../grants/types.js";
10
- import type { FileRecord, FileListResult } from "../sync/types.js";
11
- /** Gateway response envelope wrapping all GET responses */
12
- export interface GatewayEnvelope<T> {
13
- data: T;
14
- proof: GatewayProof;
15
- }
16
- export interface GatewayProof {
17
- signature: string;
18
- timestamp: string;
19
- gatewayAddress: string;
20
- requestHash: string;
21
- responseHash: string;
22
- userSignature: string;
23
- status: string;
24
- chainBlockHeight: number;
25
- }
26
- export interface Builder {
27
- id: string;
28
- ownerAddress: string;
29
- granteeAddress: string;
30
- publicKey: string;
31
- appUrl: string;
32
- addedAt: string;
33
- }
34
- export interface Schema {
35
- id: string;
36
- ownerAddress: string;
37
- name: string;
38
- definitionUrl: string;
39
- scope: string;
40
- addedAt: string;
41
- }
42
- export interface ServerInfo {
43
- id: string;
44
- ownerAddress: string;
45
- serverAddress: string;
46
- publicKey: string;
47
- serverUrl: string;
48
- addedAt: string;
49
- }
50
- export interface GrantListItem {
51
- id: string;
52
- grantorAddress: string;
53
- granteeId: string;
54
- grant: string;
55
- fileIds: string[];
56
- status: "pending" | "confirmed";
57
- addedAt: string;
58
- revokedAt: string | null;
59
- revocationSignature: string | null;
60
- }
61
- export interface RegisterFileParams {
62
- ownerAddress: string;
63
- url: string;
64
- schemaId: string;
65
- signature: string;
66
- }
67
- export interface CreateGrantParams {
68
- grantorAddress: string;
69
- granteeId: string;
70
- grant: string;
71
- fileIds: string[];
72
- signature: string;
73
- }
74
- export interface RevokeGrantParams {
75
- grantId: string;
76
- grantorAddress: string;
77
- signature: string;
78
- }
79
- export interface GatewayClient {
80
- isRegisteredBuilder(address: string): Promise<boolean>;
81
- getBuilder(address: string): Promise<Builder | null>;
82
- getGrant(grantId: string): Promise<GatewayGrantResponse | null>;
83
- listGrantsByUser(userAddress: string): Promise<GrantListItem[]>;
84
- getSchemaForScope(scope: string): Promise<Schema | null>;
85
- getServer(address: string): Promise<ServerInfo | null>;
86
- getFile(fileId: string): Promise<FileRecord | null>;
87
- listFilesSince(owner: string, cursor: string | null): Promise<FileListResult>;
88
- getSchema(schemaId: string): Promise<Schema | null>;
89
- registerFile(params: RegisterFileParams): Promise<{
90
- fileId?: string;
91
- }>;
92
- createGrant(params: CreateGrantParams): Promise<{
93
- grantId?: string;
94
- }>;
95
- revokeGrant(params: RevokeGrantParams): Promise<void>;
96
- }
97
- export declare function createGatewayClient(baseUrl: string): GatewayClient;
98
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/gateway/client.ts"],"names":[],"mappings":"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"}
@@ -1,171 +0,0 @@
1
- /**
2
- * Gateway client for communicating with the Vana Gateway API.
3
- * Provides builder registration checks and grant lookups.
4
- *
5
- * All Gateway GET endpoints return responses wrapped in:
6
- * { data: T, proof: GatewayProof }
7
- * This client unwraps the envelope and returns just the data.
8
- */
9
- export function createGatewayClient(baseUrl) {
10
- const base = baseUrl.replace(/\/+$/, "");
11
- async function unwrapEnvelope(res) {
12
- const envelope = (await res.json());
13
- return envelope.data;
14
- }
15
- return {
16
- async isRegisteredBuilder(address) {
17
- const builder = await this.getBuilder(address);
18
- // Gateway returns 200 with builder data if registered, 404 if not.
19
- // Existence IS registration — no separate `registered` field.
20
- return builder !== null;
21
- },
22
- async getBuilder(address) {
23
- const res = await fetch(`${base}/v1/builders/${address}`);
24
- if (res.status === 404)
25
- return null;
26
- if (!res.ok) {
27
- throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
28
- }
29
- return unwrapEnvelope(res);
30
- },
31
- async getGrant(grantId) {
32
- const res = await fetch(`${base}/v1/grants/${grantId}`);
33
- if (res.status === 404)
34
- return null;
35
- if (!res.ok) {
36
- throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
37
- }
38
- return unwrapEnvelope(res);
39
- },
40
- async listGrantsByUser(userAddress) {
41
- const res = await fetch(`${base}/v1/grants?user=${userAddress}`);
42
- if (res.status === 404)
43
- return [];
44
- if (!res.ok) {
45
- throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
46
- }
47
- return unwrapEnvelope(res);
48
- },
49
- async getSchemaForScope(scope) {
50
- const res = await fetch(`${base}/v1/schemas?scope=${scope}`);
51
- if (res.status === 404)
52
- return null;
53
- if (!res.ok) {
54
- throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
55
- }
56
- return unwrapEnvelope(res);
57
- },
58
- async getServer(address) {
59
- const res = await fetch(`${base}/v1/servers/${address}`);
60
- if (res.status === 404)
61
- return null;
62
- if (!res.ok) {
63
- throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
64
- }
65
- return unwrapEnvelope(res);
66
- },
67
- async getFile(fileId) {
68
- const res = await fetch(`${base}/v1/files/${fileId}`);
69
- if (res.status === 404)
70
- return null;
71
- if (!res.ok) {
72
- throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
73
- }
74
- return unwrapEnvelope(res);
75
- },
76
- async listFilesSince(owner, cursor) {
77
- const params = new URLSearchParams({ owner });
78
- if (cursor !== null) {
79
- params.set("since", cursor);
80
- }
81
- const res = await fetch(`${base}/v1/files?${params.toString()}`);
82
- if (!res.ok) {
83
- throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
84
- }
85
- return unwrapEnvelope(res);
86
- },
87
- async getSchema(schemaId) {
88
- const res = await fetch(`${base}/v1/schemas/${schemaId}`);
89
- if (res.status === 404)
90
- return null;
91
- if (!res.ok) {
92
- throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
93
- }
94
- return unwrapEnvelope(res);
95
- },
96
- async registerFile(params) {
97
- const res = await fetch(`${base}/v1/files`, {
98
- method: "POST",
99
- headers: {
100
- "Content-Type": "application/json",
101
- Authorization: `Web3Signed ${params.signature}`,
102
- },
103
- body: JSON.stringify({
104
- ownerAddress: params.ownerAddress,
105
- url: params.url,
106
- schemaId: params.schemaId,
107
- }),
108
- });
109
- // 409 = already registered, treat as success (idempotent)
110
- if (res.status === 409) {
111
- const body = await res.json().catch(() => ({}));
112
- return {
113
- fileId: body.fileId,
114
- };
115
- }
116
- if (!res.ok) {
117
- throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
118
- }
119
- const body = await res.json();
120
- return {
121
- fileId: body.fileId,
122
- };
123
- },
124
- async createGrant(params) {
125
- const res = await fetch(`${base}/v1/grants`, {
126
- method: "POST",
127
- headers: {
128
- "Content-Type": "application/json",
129
- Authorization: `Web3Signed ${params.signature}`,
130
- },
131
- body: JSON.stringify({
132
- grantorAddress: params.grantorAddress,
133
- granteeId: params.granteeId,
134
- grant: params.grant,
135
- fileIds: params.fileIds,
136
- }),
137
- });
138
- if (res.status === 409) {
139
- const body = await res.json().catch(() => ({}));
140
- return {
141
- grantId: body.grantId,
142
- };
143
- }
144
- if (!res.ok) {
145
- throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
146
- }
147
- const body = await res.json();
148
- return {
149
- grantId: body.grantId,
150
- };
151
- },
152
- async revokeGrant(params) {
153
- const res = await fetch(`${base}/v1/grants/${params.grantId}`, {
154
- method: "DELETE",
155
- headers: {
156
- "Content-Type": "application/json",
157
- Authorization: `Web3Signed ${params.signature}`,
158
- },
159
- body: JSON.stringify({
160
- grantorAddress: params.grantorAddress,
161
- }),
162
- });
163
- if (res.status === 409)
164
- return; // already revoked
165
- if (!res.ok) {
166
- throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
167
- }
168
- },
169
- };
170
- }
171
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/gateway/client.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * EIP-712 domain and type definitions for grant signatures.
3
- * See protocol spec §4.1.9 for typed data structure.
4
- */
5
- import type { TypedDataDomain } from "viem";
6
- import type { GrantPayload } from "./types.js";
7
- export declare const GRANT_DOMAIN: TypedDataDomain;
8
- export declare const GRANT_TYPES: {
9
- readonly Grant: readonly [{
10
- readonly name: "user";
11
- readonly type: "address";
12
- }, {
13
- readonly name: "builder";
14
- readonly type: "address";
15
- }, {
16
- readonly name: "scopes";
17
- readonly type: "string[]";
18
- }, {
19
- readonly name: "expiresAt";
20
- readonly type: "uint256";
21
- }, {
22
- readonly name: "nonce";
23
- readonly type: "uint256";
24
- }];
25
- };
26
- /** Convert a GrantPayload to the message object expected by EIP-712 signTypedData. */
27
- export declare function grantToEip712Message(payload: GrantPayload): Record<string, unknown>;
28
- //# sourceMappingURL=eip712.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eip712.d.ts","sourceRoot":"","sources":["../../src/grants/eip712.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,YAAY,EAAE,eAMjB,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;CAQd,CAAC;AAEX,sFAAsF;AACtF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB"}
@@ -1,30 +0,0 @@
1
- /**
2
- * EIP-712 domain and type definitions for grant signatures.
3
- * See protocol spec §4.1.9 for typed data structure.
4
- */
5
- export const GRANT_DOMAIN = {
6
- name: "Vana Data Portability",
7
- version: "1",
8
- chainId: 14800,
9
- verifyingContract: "0x0000000000000000000000000000000000000000",
10
- };
11
- export const GRANT_TYPES = {
12
- Grant: [
13
- { name: "user", type: "address" },
14
- { name: "builder", type: "address" },
15
- { name: "scopes", type: "string[]" },
16
- { name: "expiresAt", type: "uint256" },
17
- { name: "nonce", type: "uint256" },
18
- ],
19
- };
20
- /** Convert a GrantPayload to the message object expected by EIP-712 signTypedData. */
21
- export function grantToEip712Message(payload) {
22
- return {
23
- user: payload.user,
24
- builder: payload.builder,
25
- scopes: payload.scopes,
26
- expiresAt: payload.expiresAt,
27
- nonce: payload.nonce,
28
- };
29
- }
30
- //# sourceMappingURL=eip712.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eip712.js","sourceRoot":"","sources":["../../src/grants/eip712.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,IAAI,EAAE,uBAAuB;IAC7B,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;IACd,iBAAiB,EACf,4CAA6D;CACvD,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE;QACL,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;QACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE;QACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;KACnC;CACO,CAAC;AAEX,sFAAsF;AACtF,MAAM,UAAU,oBAAoB,CAClC,OAAqB;IAErB,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Grant types for the Vana Data Portability Protocol.
3
- * See protocol spec §5.3 for grant structure.
4
- */
5
- export interface GrantPayload {
6
- user: `0x${string}`;
7
- builder: `0x${string}`;
8
- scopes: string[];
9
- expiresAt: bigint;
10
- nonce: bigint;
11
- }
12
- export interface GrantWithSignature {
13
- grantId: string;
14
- payload: GrantPayload;
15
- signature: `0x${string}`;
16
- }
17
- /** Gateway response for GET /v1/grants/{grantId} (unwrapped from envelope) */
18
- export interface GatewayGrantResponse {
19
- id: string;
20
- grantorAddress: string;
21
- granteeId: string;
22
- grant: string;
23
- fileIds: string[];
24
- status: "pending" | "confirmed";
25
- addedAt: string;
26
- revokedAt: string | null;
27
- revocationSignature: string | null;
28
- }
29
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/grants/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;CAC1B;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Grant types for the Vana Data Portability Protocol.
3
- * See protocol spec §5.3 for grant structure.
4
- */
5
- export {};
6
- //# sourceMappingURL=types.js.map
@@ -1,24 +0,0 @@
1
- /**
2
- * Local grant verification — EIP-712 signature recovery + expiry/scope/grantee checks.
3
- * No network calls; operates entirely on the provided GrantWithSignature.
4
- */
5
- import type { GrantPayload, GrantWithSignature } from "./types.js";
6
- export interface GrantVerificationResult {
7
- valid: true;
8
- grant: GrantPayload;
9
- }
10
- /**
11
- * Local-only grant verification (no network):
12
- * 1. Recover signer from EIP-712 signature, verify === expectedOwner
13
- * 2. Check expiresAt (0 = no expiry, else > now)
14
- * 3. Check requestedScope ⊆ grantedScopes
15
- * 4. Check requestSigner === grant.builder
16
- */
17
- export declare function verifyGrantLocal(params: {
18
- grant: GrantWithSignature;
19
- expectedOwner: `0x${string}`;
20
- requestSigner: `0x${string}`;
21
- requestedScope: string;
22
- now?: number;
23
- }): Promise<GrantVerificationResult>;
24
- //# sourceMappingURL=verify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/grants/verify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,KAAK,EAAE,kBAAkB,CAAC;IAC1B,aAAa,EAAE,KAAK,MAAM,EAAE,CAAC;IAC7B,aAAa,EAAE,KAAK,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA2DnC"}