@opendatalabs/personal-server-ts-core 0.0.1-canary.0d0705b

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 (185) hide show
  1. package/dist/auth/web3-signed.d.ts +48 -0
  2. package/dist/auth/web3-signed.d.ts.map +1 -0
  3. package/dist/auth/web3-signed.js +110 -0
  4. package/dist/auth/web3-signed.js.map +1 -0
  5. package/dist/config/defaults.d.ts +5 -0
  6. package/dist/config/defaults.d.ts.map +1 -0
  7. package/dist/config/defaults.js +7 -0
  8. package/dist/config/defaults.js.map +1 -0
  9. package/dist/config/index.d.ts +3 -0
  10. package/dist/config/index.d.ts.map +1 -0
  11. package/dist/config/index.js +3 -0
  12. package/dist/config/index.js.map +1 -0
  13. package/dist/config/loader.d.ts +9 -0
  14. package/dist/config/loader.d.ts.map +1 -0
  15. package/dist/config/loader.js +36 -0
  16. package/dist/config/loader.js.map +1 -0
  17. package/dist/errors/catalog.d.ts +41 -0
  18. package/dist/errors/catalog.d.ts.map +1 -0
  19. package/dist/errors/catalog.js +79 -0
  20. package/dist/errors/catalog.js.map +1 -0
  21. package/dist/gateway/client.d.ts +98 -0
  22. package/dist/gateway/client.d.ts.map +1 -0
  23. package/dist/gateway/client.js +171 -0
  24. package/dist/gateway/client.js.map +1 -0
  25. package/dist/grants/eip712.d.ts +28 -0
  26. package/dist/grants/eip712.d.ts.map +1 -0
  27. package/dist/grants/eip712.js +30 -0
  28. package/dist/grants/eip712.js.map +1 -0
  29. package/dist/grants/index.d.ts +5 -0
  30. package/dist/grants/index.d.ts.map +1 -0
  31. package/dist/grants/index.js +3 -0
  32. package/dist/grants/index.js.map +1 -0
  33. package/dist/grants/types.d.ts +29 -0
  34. package/dist/grants/types.d.ts.map +1 -0
  35. package/dist/grants/types.js +6 -0
  36. package/dist/grants/types.js.map +1 -0
  37. package/dist/grants/verify.d.ts +24 -0
  38. package/dist/grants/verify.d.ts.map +1 -0
  39. package/dist/grants/verify.js +71 -0
  40. package/dist/grants/verify.js.map +1 -0
  41. package/dist/keys/derive.d.ts +18 -0
  42. package/dist/keys/derive.d.ts.map +1 -0
  43. package/dist/keys/derive.js +43 -0
  44. package/dist/keys/derive.js.map +1 -0
  45. package/dist/keys/index.d.ts +3 -0
  46. package/dist/keys/index.d.ts.map +1 -0
  47. package/dist/keys/index.js +3 -0
  48. package/dist/keys/index.js.map +1 -0
  49. package/dist/keys/server-account.d.ts +28 -0
  50. package/dist/keys/server-account.d.ts.map +1 -0
  51. package/dist/keys/server-account.js +48 -0
  52. package/dist/keys/server-account.js.map +1 -0
  53. package/dist/logger/index.d.ts +5 -0
  54. package/dist/logger/index.d.ts.map +1 -0
  55. package/dist/logger/index.js +9 -0
  56. package/dist/logger/index.js.map +1 -0
  57. package/dist/logging/access-log.d.ts +15 -0
  58. package/dist/logging/access-log.d.ts.map +1 -0
  59. package/dist/logging/access-log.js +25 -0
  60. package/dist/logging/access-log.js.map +1 -0
  61. package/dist/logging/access-reader.d.ts +19 -0
  62. package/dist/logging/access-reader.d.ts.map +1 -0
  63. package/dist/logging/access-reader.js +50 -0
  64. package/dist/logging/access-reader.js.map +1 -0
  65. package/dist/schemas/data-file.d.ts +20 -0
  66. package/dist/schemas/data-file.d.ts.map +1 -0
  67. package/dist/schemas/data-file.js +23 -0
  68. package/dist/schemas/data-file.js.map +1 -0
  69. package/dist/schemas/server-config.d.ts +103 -0
  70. package/dist/schemas/server-config.d.ts.map +1 -0
  71. package/dist/schemas/server-config.js +109 -0
  72. package/dist/schemas/server-config.js.map +1 -0
  73. package/dist/scopes/index.d.ts +3 -0
  74. package/dist/scopes/index.d.ts.map +1 -0
  75. package/dist/scopes/index.js +3 -0
  76. package/dist/scopes/index.js.map +1 -0
  77. package/dist/scopes/match.d.ts +13 -0
  78. package/dist/scopes/match.d.ts.map +1 -0
  79. package/dist/scopes/match.js +23 -0
  80. package/dist/scopes/match.js.map +1 -0
  81. package/dist/scopes/parse.d.ts +12 -0
  82. package/dist/scopes/parse.d.ts.map +1 -0
  83. package/dist/scopes/parse.js +29 -0
  84. package/dist/scopes/parse.js.map +1 -0
  85. package/dist/signing/eip712.d.ts +56 -0
  86. package/dist/signing/eip712.d.ts.map +1 -0
  87. package/dist/signing/eip712.js +57 -0
  88. package/dist/signing/eip712.js.map +1 -0
  89. package/dist/signing/index.d.ts +4 -0
  90. package/dist/signing/index.d.ts.map +1 -0
  91. package/dist/signing/index.js +4 -0
  92. package/dist/signing/index.js.map +1 -0
  93. package/dist/signing/request-signer.d.ts +12 -0
  94. package/dist/signing/request-signer.d.ts.map +1 -0
  95. package/dist/signing/request-signer.js +47 -0
  96. package/dist/signing/request-signer.js.map +1 -0
  97. package/dist/signing/signer.d.ts +14 -0
  98. package/dist/signing/signer.d.ts.map +1 -0
  99. package/dist/signing/signer.js +37 -0
  100. package/dist/signing/signer.js.map +1 -0
  101. package/dist/storage/adapters/index.d.ts +3 -0
  102. package/dist/storage/adapters/index.d.ts.map +1 -0
  103. package/dist/storage/adapters/index.js +2 -0
  104. package/dist/storage/adapters/index.js.map +1 -0
  105. package/dist/storage/adapters/interface.d.ts +47 -0
  106. package/dist/storage/adapters/interface.d.ts.map +1 -0
  107. package/dist/storage/adapters/interface.js +2 -0
  108. package/dist/storage/adapters/interface.js.map +1 -0
  109. package/dist/storage/adapters/vana.d.ts +32 -0
  110. package/dist/storage/adapters/vana.d.ts.map +1 -0
  111. package/dist/storage/adapters/vana.js +96 -0
  112. package/dist/storage/adapters/vana.js.map +1 -0
  113. package/dist/storage/encryption/decrypt.d.ts +10 -0
  114. package/dist/storage/encryption/decrypt.d.ts.map +1 -0
  115. package/dist/storage/encryption/decrypt.js +19 -0
  116. package/dist/storage/encryption/decrypt.js.map +1 -0
  117. package/dist/storage/encryption/encrypt.d.ts +10 -0
  118. package/dist/storage/encryption/encrypt.d.ts.map +1 -0
  119. package/dist/storage/encryption/encrypt.js +19 -0
  120. package/dist/storage/encryption/encrypt.js.map +1 -0
  121. package/dist/storage/encryption/index.d.ts +3 -0
  122. package/dist/storage/encryption/index.d.ts.map +1 -0
  123. package/dist/storage/encryption/index.js +3 -0
  124. package/dist/storage/encryption/index.js.map +1 -0
  125. package/dist/storage/hierarchy/index.d.ts +4 -0
  126. package/dist/storage/hierarchy/index.d.ts.map +1 -0
  127. package/dist/storage/hierarchy/index.js +3 -0
  128. package/dist/storage/hierarchy/index.js.map +1 -0
  129. package/dist/storage/hierarchy/manager.d.ts +23 -0
  130. package/dist/storage/hierarchy/manager.d.ts.map +1 -0
  131. package/dist/storage/hierarchy/manager.js +60 -0
  132. package/dist/storage/hierarchy/manager.js.map +1 -0
  133. package/dist/storage/hierarchy/paths.d.ts +11 -0
  134. package/dist/storage/hierarchy/paths.d.ts.map +1 -0
  135. package/dist/storage/hierarchy/paths.js +36 -0
  136. package/dist/storage/hierarchy/paths.js.map +1 -0
  137. package/dist/storage/index/index.d.ts +4 -0
  138. package/dist/storage/index/index.d.ts.map +1 -0
  139. package/dist/storage/index/index.js +3 -0
  140. package/dist/storage/index/index.js.map +1 -0
  141. package/dist/storage/index/manager.d.ts +37 -0
  142. package/dist/storage/index/manager.d.ts.map +1 -0
  143. package/dist/storage/index/manager.js +132 -0
  144. package/dist/storage/index/manager.js.map +1 -0
  145. package/dist/storage/index/schema.d.ts +4 -0
  146. package/dist/storage/index/schema.d.ts.map +1 -0
  147. package/dist/storage/index/schema.js +27 -0
  148. package/dist/storage/index/schema.js.map +1 -0
  149. package/dist/storage/index/types.d.ts +20 -0
  150. package/dist/storage/index/types.d.ts.map +1 -0
  151. package/dist/storage/index/types.js +2 -0
  152. package/dist/storage/index/types.js.map +1 -0
  153. package/dist/sync/cursor.d.ts +12 -0
  154. package/dist/sync/cursor.d.ts.map +1 -0
  155. package/dist/sync/cursor.js +19 -0
  156. package/dist/sync/cursor.js.map +1 -0
  157. package/dist/sync/engine/sync-manager.d.ts +25 -0
  158. package/dist/sync/engine/sync-manager.d.ts.map +1 -0
  159. package/dist/sync/engine/sync-manager.js +136 -0
  160. package/dist/sync/engine/sync-manager.js.map +1 -0
  161. package/dist/sync/index.d.ts +4 -0
  162. package/dist/sync/index.d.ts.map +1 -0
  163. package/dist/sync/index.js +3 -0
  164. package/dist/sync/index.js.map +1 -0
  165. package/dist/sync/types.d.ts +40 -0
  166. package/dist/sync/types.d.ts.map +1 -0
  167. package/dist/sync/types.js +2 -0
  168. package/dist/sync/types.js.map +1 -0
  169. package/dist/sync/workers/download.d.ts +41 -0
  170. package/dist/sync/workers/download.d.ts.map +1 -0
  171. package/dist/sync/workers/download.js +90 -0
  172. package/dist/sync/workers/download.js.map +1 -0
  173. package/dist/sync/workers/upload.d.ts +43 -0
  174. package/dist/sync/workers/upload.d.ts.map +1 -0
  175. package/dist/sync/workers/upload.js +75 -0
  176. package/dist/sync/workers/upload.js.map +1 -0
  177. package/dist/test-utils/index.d.ts +2 -0
  178. package/dist/test-utils/index.d.ts.map +1 -0
  179. package/dist/test-utils/index.js +2 -0
  180. package/dist/test-utils/index.js.map +1 -0
  181. package/dist/test-utils/wallet.d.ts +40 -0
  182. package/dist/test-utils/wallet.d.ts.map +1 -0
  183. package/dist/test-utils/wallet.js +72 -0
  184. package/dist/test-utils/wallet.js.map +1 -0
  185. package/package.json +115 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-log.d.ts","sourceRoot":"","sources":["../../src/logging/access-log.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAUD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAiBtE"}
@@ -0,0 +1,25 @@
1
+ import { mkdir, appendFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ function formatDateForFilename(isoTimestamp) {
4
+ const date = new Date(isoTimestamp);
5
+ const yyyy = date.getUTCFullYear();
6
+ const mm = String(date.getUTCMonth() + 1).padStart(2, "0");
7
+ const dd = String(date.getUTCDate()).padStart(2, "0");
8
+ return `${yyyy}-${mm}-${dd}`;
9
+ }
10
+ export function createAccessLogWriter(logsDir) {
11
+ let dirCreated = false;
12
+ return {
13
+ async write(entry) {
14
+ if (!dirCreated) {
15
+ await mkdir(logsDir, { recursive: true });
16
+ dirCreated = true;
17
+ }
18
+ const dateStr = formatDateForFilename(entry.timestamp);
19
+ const filename = `access-${dateStr}.log`;
20
+ const filepath = join(logsDir, filename);
21
+ await appendFile(filepath, JSON.stringify(entry) + "\n", "utf-8");
22
+ },
23
+ };
24
+ }
25
+ //# sourceMappingURL=access-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-log.js","sourceRoot":"","sources":["../../src/logging/access-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAiBjC,SAAS,qBAAqB,CAAC,YAAoB;IACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,KAAqB;YAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1C,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;YAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,UAAU,OAAO,MAAM,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEzC,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { AccessLogEntry } from "./access-log.js";
2
+ export interface AccessLogReadResult {
3
+ logs: AccessLogEntry[];
4
+ total: number;
5
+ limit: number;
6
+ offset: number;
7
+ }
8
+ export interface AccessLogReader {
9
+ read(options?: {
10
+ limit?: number;
11
+ offset?: number;
12
+ }): Promise<AccessLogReadResult>;
13
+ }
14
+ /**
15
+ * Reads all access-*.log files from logsDir, merges entries,
16
+ * sorts by timestamp DESC, and paginates.
17
+ */
18
+ export declare function createAccessLogReader(logsDir: string): AccessLogReader;
19
+ //# sourceMappingURL=access-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-reader.d.ts","sourceRoot":"","sources":["../../src/logging/access-reader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,CAAC,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAqDtE"}
@@ -0,0 +1,50 @@
1
+ import { readdir, readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ /**
4
+ * Reads all access-*.log files from logsDir, merges entries,
5
+ * sorts by timestamp DESC, and paginates.
6
+ */
7
+ export function createAccessLogReader(logsDir) {
8
+ return {
9
+ async read(options) {
10
+ const limit = options?.limit ?? 50;
11
+ const offset = options?.offset ?? 0;
12
+ let filenames;
13
+ try {
14
+ filenames = await readdir(logsDir);
15
+ }
16
+ catch {
17
+ // Directory doesn't exist — return empty result
18
+ return { logs: [], total: 0, limit, offset };
19
+ }
20
+ const logFiles = filenames.filter((f) => f.startsWith("access-") && f.endsWith(".log"));
21
+ const allEntries = [];
22
+ for (const filename of logFiles) {
23
+ const filepath = join(logsDir, filename);
24
+ const content = await readFile(filepath, "utf-8");
25
+ const lines = content
26
+ .split("\n")
27
+ .filter((line) => line.trim().length > 0);
28
+ for (const line of lines) {
29
+ try {
30
+ const entry = JSON.parse(line);
31
+ allEntries.push(entry);
32
+ }
33
+ catch {
34
+ // Skip malformed lines
35
+ }
36
+ }
37
+ }
38
+ // Sort by timestamp DESC (newest first)
39
+ allEntries.sort((a, b) => {
40
+ const ta = new Date(a.timestamp).getTime();
41
+ const tb = new Date(b.timestamp).getTime();
42
+ return tb - ta;
43
+ });
44
+ const total = allEntries.length;
45
+ const paginated = allEntries.slice(offset, offset + limit);
46
+ return { logs: paginated, total, limit, offset };
47
+ },
48
+ };
49
+ }
50
+ //# sourceMappingURL=access-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-reader.js","sourceRoot":"","sources":["../../src/logging/access-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAiBjC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,OAGV;YACC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;YAEpC,IAAI,SAAmB,CAAC;YACxB,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;gBAChD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAC/C,CAAC;YAED,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CACrD,CAAC;YAEF,MAAM,UAAU,GAAqB,EAAE,CAAC;YAExC,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,OAAO;qBAClB,KAAK,CAAC,IAAI,CAAC;qBACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;wBACjD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;oBAAC,MAAM,CAAC;wBACP,uBAAuB;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,wCAAwC;YACxC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvB,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC3C,OAAO,EAAE,GAAG,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC;YAChC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;YAE3D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { z } from "zod";
2
+ export declare const DataFileEnvelopeSchema: z.ZodObject<{
3
+ $schema: z.ZodOptional<z.ZodString>;
4
+ version: z.ZodLiteral<"1.0">;
5
+ scope: z.ZodString;
6
+ collectedAt: z.ZodString;
7
+ data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
8
+ }, z.core.$strip>;
9
+ export type DataFileEnvelope = z.infer<typeof DataFileEnvelopeSchema>;
10
+ export declare function createDataFileEnvelope(scope: string, collectedAt: string, data: Record<string, unknown>, schemaUrl?: string): DataFileEnvelope;
11
+ export declare const IngestResponseSchema: z.ZodObject<{
12
+ scope: z.ZodString;
13
+ collectedAt: z.ZodString;
14
+ status: z.ZodEnum<{
15
+ stored: "stored";
16
+ syncing: "syncing";
17
+ }>;
18
+ }, z.core.$strip>;
19
+ export type IngestResponse = z.infer<typeof IngestResponseSchema>;
20
+ //# sourceMappingURL=data-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-file.d.ts","sourceRoot":"","sources":["../../src/schemas/data-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;;;;iBAMjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,GACjB,gBAAgB,CAQlB;AAED,eAAO,MAAM,oBAAoB;;;;;;;iBAI/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ export const DataFileEnvelopeSchema = z.object({
3
+ $schema: z.string().url().optional(),
4
+ version: z.literal("1.0"),
5
+ scope: z.string(),
6
+ collectedAt: z.string().datetime(),
7
+ data: z.record(z.string(), z.unknown()),
8
+ });
9
+ export function createDataFileEnvelope(scope, collectedAt, data, schemaUrl) {
10
+ return {
11
+ ...(schemaUrl !== undefined && { $schema: schemaUrl }),
12
+ version: "1.0",
13
+ scope,
14
+ collectedAt,
15
+ data,
16
+ };
17
+ }
18
+ export const IngestResponseSchema = z.object({
19
+ scope: z.string(),
20
+ collectedAt: z.string().datetime(),
21
+ status: z.enum(["stored", "syncing"]),
22
+ });
23
+ //# sourceMappingURL=data-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-file.js","sourceRoot":"","sources":["../../src/schemas/data-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;CACxC,CAAC,CAAC;AAIH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,WAAmB,EACnB,IAA6B,EAC7B,SAAkB;IAElB,OAAO;QACL,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QACtD,OAAO,EAAE,KAAK;QACd,KAAK;QACL,WAAW;QACX,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;CACtC,CAAC,CAAC"}
@@ -0,0 +1,103 @@
1
+ import { z } from "zod";
2
+ export declare const DEFAULTS: {
3
+ server: {
4
+ port: number;
5
+ origin: string;
6
+ };
7
+ logging: {
8
+ level: "info";
9
+ pretty: boolean;
10
+ };
11
+ storage: {
12
+ backend: "local";
13
+ config: {
14
+ vana: {
15
+ apiUrl: string;
16
+ };
17
+ };
18
+ };
19
+ gateway: {
20
+ url: string;
21
+ chainId: number;
22
+ contracts: {
23
+ dataRegistry: string;
24
+ dataPortabilityPermissions: string;
25
+ dataPortabilityServer: string;
26
+ };
27
+ };
28
+ devUi: {
29
+ enabled: boolean;
30
+ };
31
+ sync: {
32
+ enabled: boolean;
33
+ lastProcessedTimestamp: null;
34
+ };
35
+ };
36
+ export declare const StorageBackend: z.ZodEnum<{
37
+ local: "local";
38
+ vana: "vana";
39
+ ipfs: "ipfs";
40
+ gdrive: "gdrive";
41
+ dropbox: "dropbox";
42
+ }>;
43
+ export declare const VanaStorageConfigSchema: z.ZodObject<{
44
+ apiUrl: z.ZodDefault<z.ZodURL>;
45
+ }, z.core.$strip>;
46
+ export declare const ServerConfigSchema: z.ZodObject<{
47
+ server: z.ZodDefault<z.ZodObject<{
48
+ port: z.ZodDefault<z.ZodNumber>;
49
+ origin: z.ZodDefault<z.ZodURL>;
50
+ }, z.core.$strip>>;
51
+ logging: z.ZodDefault<z.ZodObject<{
52
+ level: z.ZodDefault<z.ZodEnum<{
53
+ error: "error";
54
+ info: "info";
55
+ fatal: "fatal";
56
+ warn: "warn";
57
+ debug: "debug";
58
+ }>>;
59
+ pretty: z.ZodDefault<z.ZodBoolean>;
60
+ }, z.core.$strip>>;
61
+ storage: z.ZodDefault<z.ZodObject<{
62
+ backend: z.ZodDefault<z.ZodEnum<{
63
+ local: "local";
64
+ vana: "vana";
65
+ ipfs: "ipfs";
66
+ gdrive: "gdrive";
67
+ dropbox: "dropbox";
68
+ }>>;
69
+ config: z.ZodDefault<z.ZodObject<{
70
+ vana: z.ZodOptional<z.ZodObject<{
71
+ apiUrl: z.ZodDefault<z.ZodURL>;
72
+ }, z.core.$strip>>;
73
+ }, z.core.$strip>>;
74
+ }, z.core.$strip>>;
75
+ gateway: z.ZodDefault<z.ZodObject<{
76
+ url: z.ZodDefault<z.ZodURL>;
77
+ chainId: z.ZodDefault<z.ZodNumber>;
78
+ contracts: z.ZodDefault<z.ZodObject<{
79
+ dataRegistry: z.ZodDefault<z.ZodString>;
80
+ dataPortabilityPermissions: z.ZodDefault<z.ZodString>;
81
+ dataPortabilityServer: z.ZodDefault<z.ZodString>;
82
+ }, z.core.$strip>>;
83
+ }, z.core.$strip>>;
84
+ devUi: z.ZodDefault<z.ZodObject<{
85
+ enabled: z.ZodDefault<z.ZodBoolean>;
86
+ }, z.core.$strip>>;
87
+ sync: z.ZodDefault<z.ZodObject<{
88
+ enabled: z.ZodDefault<z.ZodBoolean>;
89
+ lastProcessedTimestamp: z.ZodDefault<z.ZodNullable<z.ZodString>>;
90
+ }, z.core.$strip>>;
91
+ }, z.core.$strip>;
92
+ export type ServerConfig = z.infer<typeof ServerConfigSchema>;
93
+ export type LoggingConfig = ServerConfig["logging"];
94
+ /** Chain + contract config needed for EIP-712 signing. */
95
+ export type GatewayConfig = {
96
+ chainId: number;
97
+ contracts: {
98
+ dataRegistry: string;
99
+ dataPortabilityPermissions: string;
100
+ dataPortabilityServer: string;
101
+ };
102
+ };
103
+ //# sourceMappingURL=server-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-config.d.ts","sourceRoot":"","sources":["../../src/schemas/server-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCpB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;EAMzB,CAAC;AAEH,eAAO,MAAM,uBAAuB;;iBAElC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8D7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAEpD,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,YAAY,EAAE,MAAM,CAAC;QACrB,0BAA0B,EAAE,MAAM,CAAC;QACnC,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { z } from "zod";
2
+ export const DEFAULTS = {
3
+ server: {
4
+ port: 8080,
5
+ origin: "http://localhost:8080",
6
+ },
7
+ logging: {
8
+ level: "info",
9
+ pretty: false,
10
+ },
11
+ storage: {
12
+ backend: "local",
13
+ config: {
14
+ vana: {
15
+ apiUrl: "https://storage.vana.com",
16
+ },
17
+ },
18
+ },
19
+ gateway: {
20
+ url: "https://data-gateway-env-dev-opendatalabs.vercel.app",
21
+ chainId: 14800,
22
+ contracts: {
23
+ dataRegistry: "0x8C8788f98385F6ba1adD4234e551ABba0f82Cb7C",
24
+ dataPortabilityPermissions: "0xD54523048AdD05b4d734aFaE7C68324Ebb7373eF",
25
+ dataPortabilityServer: "0x1483B1F634DBA75AeaE60da7f01A679aabd5ee2c",
26
+ },
27
+ },
28
+ devUi: {
29
+ enabled: true,
30
+ },
31
+ sync: {
32
+ enabled: false,
33
+ lastProcessedTimestamp: null,
34
+ },
35
+ };
36
+ export const StorageBackend = z.enum([
37
+ "local",
38
+ "vana",
39
+ "ipfs",
40
+ "gdrive",
41
+ "dropbox",
42
+ ]);
43
+ export const VanaStorageConfigSchema = z.object({
44
+ apiUrl: z.url().default(DEFAULTS.storage.config.vana.apiUrl),
45
+ });
46
+ export const ServerConfigSchema = z.object({
47
+ server: z
48
+ .object({
49
+ port: z.number().int().min(1).max(65535).default(DEFAULTS.server.port),
50
+ origin: z.url().default(DEFAULTS.server.origin),
51
+ })
52
+ .default(DEFAULTS.server),
53
+ logging: z
54
+ .object({
55
+ level: z
56
+ .enum(["fatal", "error", "warn", "info", "debug"])
57
+ .default(DEFAULTS.logging.level),
58
+ pretty: z.boolean().default(DEFAULTS.logging.pretty),
59
+ })
60
+ .default(DEFAULTS.logging),
61
+ storage: z
62
+ .object({
63
+ backend: StorageBackend.default(DEFAULTS.storage.backend),
64
+ config: z
65
+ .object({
66
+ vana: VanaStorageConfigSchema.optional(),
67
+ })
68
+ .default({}),
69
+ })
70
+ .default(DEFAULTS.storage),
71
+ gateway: z
72
+ .object({
73
+ url: z.url().default(DEFAULTS.gateway.url),
74
+ chainId: z.number().int().positive().default(DEFAULTS.gateway.chainId),
75
+ contracts: z
76
+ .object({
77
+ dataRegistry: z
78
+ .string()
79
+ .startsWith("0x")
80
+ .default(DEFAULTS.gateway.contracts.dataRegistry),
81
+ dataPortabilityPermissions: z
82
+ .string()
83
+ .startsWith("0x")
84
+ .default(DEFAULTS.gateway.contracts.dataPortabilityPermissions),
85
+ dataPortabilityServer: z
86
+ .string()
87
+ .startsWith("0x")
88
+ .default(DEFAULTS.gateway.contracts.dataPortabilityServer),
89
+ })
90
+ .default(DEFAULTS.gateway.contracts),
91
+ })
92
+ .default(DEFAULTS.gateway),
93
+ devUi: z
94
+ .object({
95
+ enabled: z.boolean().default(DEFAULTS.devUi.enabled),
96
+ })
97
+ .default(DEFAULTS.devUi),
98
+ sync: z
99
+ .object({
100
+ enabled: z.boolean().default(DEFAULTS.sync.enabled),
101
+ lastProcessedTimestamp: z
102
+ .string()
103
+ .datetime()
104
+ .nullable()
105
+ .default(DEFAULTS.sync.lastProcessedTimestamp),
106
+ })
107
+ .default(DEFAULTS.sync),
108
+ });
109
+ //# sourceMappingURL=server-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../src/schemas/server-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { ScopeSchema, parseScope, scopeToPathSegments, type Scope, type ParsedScope, } from "./parse.js";
2
+ export { scopeMatchesPattern, scopeCoveredByGrant } from "./match.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,KAAK,KAAK,EACV,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ScopeSchema, parseScope, scopeToPathSegments, } from "./parse.js";
2
+ export { scopeMatchesPattern, scopeCoveredByGrant } from "./match.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,UAAU,EACV,mBAAmB,GAGpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Check if a requested concrete scope is covered by a single grant scope pattern.
3
+ * Patterns:
4
+ * "*" -> matches any scope
5
+ * "instagram.*" -> matches any scope starting with "instagram."
6
+ * "instagram.profile" -> exact match only
7
+ */
8
+ export declare function scopeMatchesPattern(requestedScope: string, grantPattern: string): boolean;
9
+ /**
10
+ * Check if a requested scope is covered by ANY of the granted scope patterns.
11
+ */
12
+ export declare function scopeCoveredByGrant(requestedScope: string, grantedScopes: string[]): boolean;
13
+ //# sourceMappingURL=match.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../src/scopes/match.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,GACnB,OAAO,CAST;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAIT"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Check if a requested concrete scope is covered by a single grant scope pattern.
3
+ * Patterns:
4
+ * "*" -> matches any scope
5
+ * "instagram.*" -> matches any scope starting with "instagram."
6
+ * "instagram.profile" -> exact match only
7
+ */
8
+ export function scopeMatchesPattern(requestedScope, grantPattern) {
9
+ if (grantPattern === "*")
10
+ return true;
11
+ if (grantPattern.endsWith(".*")) {
12
+ const prefix = grantPattern.slice(0, -1); // "instagram." from "instagram.*"
13
+ return requestedScope.startsWith(prefix);
14
+ }
15
+ return requestedScope === grantPattern;
16
+ }
17
+ /**
18
+ * Check if a requested scope is covered by ANY of the granted scope patterns.
19
+ */
20
+ export function scopeCoveredByGrant(requestedScope, grantedScopes) {
21
+ return grantedScopes.some((pattern) => scopeMatchesPattern(requestedScope, pattern));
22
+ }
23
+ //# sourceMappingURL=match.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/scopes/match.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,cAAsB,EACtB,YAAoB;IAEpB,IAAI,YAAY,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;QAC5E,OAAO,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,cAAc,KAAK,YAAY,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,cAAsB,EACtB,aAAuB;IAEvB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACpC,mBAAmB,CAAC,cAAc,EAAE,OAAO,CAAC,CAC7C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ export declare const ScopeSchema: z.ZodString;
3
+ export type Scope = z.infer<typeof ScopeSchema>;
4
+ export interface ParsedScope {
5
+ source: string;
6
+ category: string;
7
+ subcategory?: string;
8
+ raw: string;
9
+ }
10
+ export declare function parseScope(scope: string): ParsedScope;
11
+ export declare function scopeToPathSegments(scope: string): string[];
12
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/scopes/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,WAAW,aAavB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CASrD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAO3D"}
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ const SEGMENT_RE = /^[a-z0-9][a-z0-9_]*$/;
3
+ export const ScopeSchema = z.string().refine((s) => {
4
+ const parts = s.split(".");
5
+ return (parts.length >= 2 &&
6
+ parts.length <= 3 &&
7
+ parts.every((p) => SEGMENT_RE.test(p)));
8
+ }, {
9
+ message: "Scope must be {source}.{category}[.{subcategory}] with lowercase alphanumeric segments (may start with a letter or digit)",
10
+ });
11
+ export function parseScope(scope) {
12
+ const validated = ScopeSchema.parse(scope);
13
+ const parts = validated.split(".");
14
+ return {
15
+ source: parts[0],
16
+ category: parts[1],
17
+ subcategory: parts[2],
18
+ raw: validated,
19
+ };
20
+ }
21
+ export function scopeToPathSegments(scope) {
22
+ const parsed = parseScope(scope);
23
+ const segments = [parsed.source, parsed.category];
24
+ if (parsed.subcategory) {
25
+ segments.push(parsed.subcategory);
26
+ }
27
+ return segments;
28
+ }
29
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/scopes/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAE1C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CACL,KAAK,CAAC,MAAM,IAAI,CAAC;QACjB,KAAK,CAAC,MAAM,IAAI,CAAC;QACjB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;AACJ,CAAC,EACD;IACE,OAAO,EACL,2HAA2H;CAC9H,CACF,CAAC;AAWF,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAChB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QACrB,GAAG,EAAE,SAAS;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * EIP-712 domain and type definitions for gateway write operations.
3
+ * Must match the gateway's lib/eip712.ts exactly.
4
+ */
5
+ import type { TypedDataDomain } from "viem";
6
+ import type { GatewayConfig } from "../schemas/server-config.js";
7
+ export declare function fileRegistrationDomain(config: GatewayConfig): TypedDataDomain;
8
+ export declare function grantRegistrationDomain(config: GatewayConfig): TypedDataDomain;
9
+ export declare function grantRevocationDomain(config: GatewayConfig): TypedDataDomain;
10
+ export declare const FILE_REGISTRATION_TYPES: {
11
+ FileRegistration: {
12
+ name: string;
13
+ type: string;
14
+ }[];
15
+ };
16
+ export declare const GRANT_REGISTRATION_TYPES: {
17
+ GrantRegistration: {
18
+ name: string;
19
+ type: string;
20
+ }[];
21
+ };
22
+ export declare const GRANT_REVOCATION_TYPES: {
23
+ GrantRevocation: {
24
+ name: string;
25
+ type: string;
26
+ }[];
27
+ };
28
+ export interface FileRegistrationMessage {
29
+ ownerAddress: `0x${string}`;
30
+ url: string;
31
+ schemaId: `0x${string}`;
32
+ }
33
+ export interface GrantRegistrationMessage {
34
+ grantorAddress: `0x${string}`;
35
+ granteeId: `0x${string}`;
36
+ grant: string;
37
+ fileIds: bigint[];
38
+ }
39
+ export interface GrantRevocationMessage {
40
+ grantorAddress: `0x${string}`;
41
+ grantId: `0x${string}`;
42
+ }
43
+ export declare function serverRegistrationDomain(config: GatewayConfig): TypedDataDomain;
44
+ export declare const SERVER_REGISTRATION_TYPES: {
45
+ ServerRegistration: {
46
+ name: string;
47
+ type: string;
48
+ }[];
49
+ };
50
+ export interface ServerRegistrationMessage {
51
+ ownerAddress: `0x${string}`;
52
+ serverAddress: `0x${string}`;
53
+ publicKey: `0x${string}`;
54
+ serverUrl: string;
55
+ }
56
+ //# sourceMappingURL=eip712.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip712.d.ts","sourceRoot":"","sources":["../../src/signing/eip712.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAkBjE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAK7E;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,GACpB,eAAe,CAKjB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAK5E;AAED,eAAO,MAAM,uBAAuB;;;;;CAMnC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;CAOpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;CAKlC,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,GACpB,eAAe,CAKjB;AAED,eAAO,MAAM,yBAAyB;;;;;CAOrC,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,KAAK,MAAM,EAAE,CAAC;IAC7B,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * EIP-712 domain and type definitions for gateway write operations.
3
+ * Must match the gateway's lib/eip712.ts exactly.
4
+ */
5
+ const DOMAIN_NAME = "Vana Data Portability";
6
+ const DOMAIN_VERSION = "1";
7
+ /** Build a domain for a specific verifying contract. */
8
+ function buildDomain(chainId, verifyingContract) {
9
+ return {
10
+ name: DOMAIN_NAME,
11
+ version: DOMAIN_VERSION,
12
+ chainId,
13
+ verifyingContract,
14
+ };
15
+ }
16
+ export function fileRegistrationDomain(config) {
17
+ return buildDomain(config.chainId, config.contracts.dataRegistry);
18
+ }
19
+ export function grantRegistrationDomain(config) {
20
+ return buildDomain(config.chainId, config.contracts.dataPortabilityPermissions);
21
+ }
22
+ export function grantRevocationDomain(config) {
23
+ return buildDomain(config.chainId, config.contracts.dataPortabilityPermissions);
24
+ }
25
+ export const FILE_REGISTRATION_TYPES = {
26
+ FileRegistration: [
27
+ { name: "ownerAddress", type: "address" },
28
+ { name: "url", type: "string" },
29
+ { name: "schemaId", type: "bytes32" },
30
+ ],
31
+ };
32
+ export const GRANT_REGISTRATION_TYPES = {
33
+ GrantRegistration: [
34
+ { name: "grantorAddress", type: "address" },
35
+ { name: "granteeId", type: "bytes32" },
36
+ { name: "grant", type: "string" },
37
+ { name: "fileIds", type: "uint256[]" },
38
+ ],
39
+ };
40
+ export const GRANT_REVOCATION_TYPES = {
41
+ GrantRevocation: [
42
+ { name: "grantorAddress", type: "address" },
43
+ { name: "grantId", type: "bytes32" },
44
+ ],
45
+ };
46
+ export function serverRegistrationDomain(config) {
47
+ return buildDomain(config.chainId, config.contracts.dataPortabilityServer);
48
+ }
49
+ export const SERVER_REGISTRATION_TYPES = {
50
+ ServerRegistration: [
51
+ { name: "ownerAddress", type: "address" },
52
+ { name: "serverAddress", type: "address" },
53
+ { name: "publicKey", type: "string" },
54
+ { name: "serverUrl", type: "string" },
55
+ ],
56
+ };
57
+ //# sourceMappingURL=eip712.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip712.js","sourceRoot":"","sources":["../../src/signing/eip712.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAC5C,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,wDAAwD;AACxD,SAAS,WAAW,CAClB,OAAe,EACf,iBAAgC;IAEhC,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;QACvB,OAAO;QACP,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAqB;IAC1D,OAAO,WAAW,CAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,CAAC,YAA6B,CAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAqB;IAErB,OAAO,WAAW,CAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,CAAC,0BAA2C,CAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IACzD,OAAO,WAAW,CAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,CAAC,0BAA2C,CAC7D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,gBAAgB,EAAE;QAChB,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;QACzC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;KACtC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,iBAAiB,EAAE;QACjB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;KACvC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,eAAe,EAAE;QACf,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;KACrC;CACF,CAAC;AAoBF,MAAM,UAAU,wBAAwB,CACtC,MAAqB;IAErB,OAAO,WAAW,CAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,CAAC,qBAAsC,CACxD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,kBAAkB,EAAE;QAClB,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;QACzC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;QAC1C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;KACtC;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { fileRegistrationDomain, grantRegistrationDomain, grantRevocationDomain, serverRegistrationDomain, FILE_REGISTRATION_TYPES, GRANT_REGISTRATION_TYPES, GRANT_REVOCATION_TYPES, SERVER_REGISTRATION_TYPES, type FileRegistrationMessage, type GrantRegistrationMessage, type GrantRevocationMessage, type ServerRegistrationMessage, } from "./eip712.js";
2
+ export { createServerSigner, type ServerSigner } from "./signer.js";
3
+ export { createRequestSigner } from "./request-signer.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}