@geoprotocol/geo-sdk 0.18.3 → 0.19.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 (360) hide show
  1. package/README.md +995 -372
  2. package/dist/contracts.d.ts +0 -11
  3. package/dist/contracts.d.ts.map +1 -1
  4. package/dist/contracts.js +0 -11
  5. package/dist/contracts.js.map +1 -1
  6. package/dist/index.d.ts +8 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +8 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/lite.d.ts +2 -0
  11. package/dist/lite.d.ts.map +1 -1
  12. package/dist/lite.js +2 -0
  13. package/dist/lite.js.map +1 -1
  14. package/dist/src/abis/dao-space-factory.d.ts +43 -6
  15. package/dist/src/abis/dao-space-factory.d.ts.map +1 -1
  16. package/dist/src/abis/dao-space-factory.js +38 -27
  17. package/dist/src/abis/dao-space-factory.js.map +1 -1
  18. package/dist/src/abis/dao-space-v2.test.d.ts +2 -0
  19. package/dist/src/abis/dao-space-v2.test.d.ts.map +1 -0
  20. package/dist/src/abis/dao-space-v2.test.js +67 -0
  21. package/dist/src/abis/dao-space-v2.test.js.map +1 -0
  22. package/dist/src/abis/dao-space.d.ts +98 -7
  23. package/dist/src/abis/dao-space.d.ts.map +1 -1
  24. package/dist/src/abis/dao-space.js +61 -99
  25. package/dist/src/abis/dao-space.js.map +1 -1
  26. package/dist/src/abis/index.d.ts +2 -2
  27. package/dist/src/abis/index.d.ts.map +1 -1
  28. package/dist/src/abis/index.js +2 -2
  29. package/dist/src/abis/index.js.map +1 -1
  30. package/dist/src/abis/space-registry.d.ts +26 -0
  31. package/dist/src/abis/space-registry.d.ts.map +1 -1
  32. package/dist/src/abis/space-registry.js +33 -0
  33. package/dist/src/abis/space-registry.js.map +1 -1
  34. package/dist/src/api-surface.e2e.test.d.ts +2 -0
  35. package/dist/src/api-surface.e2e.test.d.ts.map +1 -0
  36. package/dist/src/api-surface.e2e.test.js +1206 -0
  37. package/dist/src/api-surface.e2e.test.js.map +1 -0
  38. package/dist/src/client/api.d.ts +86 -0
  39. package/dist/src/client/api.d.ts.map +1 -0
  40. package/dist/src/client/api.js +169 -0
  41. package/dist/src/client/api.js.map +1 -0
  42. package/dist/src/client/comments.d.ts +59 -0
  43. package/dist/src/client/comments.d.ts.map +1 -0
  44. package/dist/src/client/comments.js +96 -0
  45. package/dist/src/client/comments.js.map +1 -0
  46. package/dist/src/client/context.d.ts +20 -0
  47. package/dist/src/client/context.d.ts.map +1 -0
  48. package/dist/src/client/context.js +20 -0
  49. package/dist/src/client/context.js.map +1 -0
  50. package/dist/src/client/dao-spaces.d.ts +408 -0
  51. package/dist/src/client/dao-spaces.d.ts.map +1 -0
  52. package/dist/src/client/dao-spaces.js +626 -0
  53. package/dist/src/client/dao-spaces.js.map +1 -0
  54. package/dist/src/client/dao-spaces.test.d.ts +2 -0
  55. package/dist/src/client/dao-spaces.test.d.ts.map +1 -0
  56. package/dist/src/client/dao-spaces.test.js +497 -0
  57. package/dist/src/client/dao-spaces.test.js.map +1 -0
  58. package/dist/src/client/edits.d.ts +100 -0
  59. package/dist/src/client/edits.d.ts.map +1 -0
  60. package/dist/src/client/edits.js +131 -0
  61. package/dist/src/client/edits.js.map +1 -0
  62. package/dist/src/client/edits.test.d.ts +2 -0
  63. package/dist/src/client/edits.test.d.ts.map +1 -0
  64. package/dist/src/client/edits.test.js +98 -0
  65. package/dist/src/client/edits.test.js.map +1 -0
  66. package/dist/src/client/entities.d.ts +23 -0
  67. package/dist/src/client/entities.d.ts.map +1 -0
  68. package/dist/src/client/entities.js +88 -0
  69. package/dist/src/client/entities.js.map +1 -0
  70. package/dist/src/client/entity-votes.d.ts +141 -0
  71. package/dist/src/client/entity-votes.d.ts.map +1 -0
  72. package/dist/src/client/entity-votes.js +168 -0
  73. package/dist/src/client/entity-votes.js.map +1 -0
  74. package/dist/src/client/entity-votes.test.d.ts +2 -0
  75. package/dist/src/client/entity-votes.test.d.ts.map +1 -0
  76. package/dist/src/client/entity-votes.test.js +93 -0
  77. package/dist/src/client/entity-votes.test.js.map +1 -0
  78. package/dist/src/client/graph-workflows.test.d.ts +2 -0
  79. package/dist/src/client/graph-workflows.test.d.ts.map +1 -0
  80. package/dist/src/client/graph-workflows.test.js +83 -0
  81. package/dist/src/client/graph-workflows.test.js.map +1 -0
  82. package/dist/src/client/images-storage.test.d.ts +2 -0
  83. package/dist/src/client/images-storage.test.d.ts.map +1 -0
  84. package/dist/src/client/images-storage.test.js +52 -0
  85. package/dist/src/client/images-storage.test.js.map +1 -0
  86. package/dist/src/client/images.d.ts +35 -0
  87. package/dist/src/client/images.d.ts.map +1 -0
  88. package/dist/src/client/images.js +90 -0
  89. package/dist/src/client/images.js.map +1 -0
  90. package/dist/src/client/personal-spaces.d.ts +229 -0
  91. package/dist/src/client/personal-spaces.d.ts.map +1 -0
  92. package/dist/src/client/personal-spaces.js +278 -0
  93. package/dist/src/client/personal-spaces.js.map +1 -0
  94. package/dist/src/client/spaces.test.d.ts +2 -0
  95. package/dist/src/client/spaces.test.d.ts.map +1 -0
  96. package/dist/src/client/spaces.test.js +175 -0
  97. package/dist/src/client/spaces.test.js.map +1 -0
  98. package/dist/src/client/storage.d.ts +52 -0
  99. package/dist/src/client/storage.d.ts.map +1 -0
  100. package/dist/src/client/storage.js +53 -0
  101. package/dist/src/client/storage.js.map +1 -0
  102. package/dist/src/client.d.ts +338 -0
  103. package/dist/src/client.d.ts.map +1 -0
  104. package/dist/src/client.js +494 -0
  105. package/dist/src/client.js.map +1 -0
  106. package/dist/src/client.test.d.ts +2 -0
  107. package/dist/src/client.test.d.ts.map +1 -0
  108. package/dist/src/client.test.js +125 -0
  109. package/dist/src/client.test.js.map +1 -0
  110. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts +2 -0
  111. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts.map +1 -0
  112. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js +239 -0
  113. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js.map +1 -0
  114. package/dist/src/dao-space/constants.d.ts +16 -3
  115. package/dist/src/dao-space/constants.d.ts.map +1 -1
  116. package/dist/src/dao-space/constants.js +16 -5
  117. package/dist/src/dao-space/constants.js.map +1 -1
  118. package/dist/src/dao-space/create-space.d.ts +1 -31
  119. package/dist/src/dao-space/create-space.d.ts.map +1 -1
  120. package/dist/src/dao-space/create-space.js +5 -70
  121. package/dist/src/dao-space/create-space.js.map +1 -1
  122. package/dist/src/dao-space/execute-proposal.d.ts +1 -22
  123. package/dist/src/dao-space/execute-proposal.d.ts.map +1 -1
  124. package/dist/src/dao-space/execute-proposal.js +12 -59
  125. package/dist/src/dao-space/execute-proposal.js.map +1 -1
  126. package/dist/src/dao-space/index.d.ts +2 -1
  127. package/dist/src/dao-space/index.d.ts.map +1 -1
  128. package/dist/src/dao-space/index.js +1 -0
  129. package/dist/src/dao-space/index.js.map +1 -1
  130. package/dist/src/dao-space/propose-add-editor.d.ts +1 -20
  131. package/dist/src/dao-space/propose-add-editor.d.ts.map +1 -1
  132. package/dist/src/dao-space/propose-add-editor.js +12 -87
  133. package/dist/src/dao-space/propose-add-editor.js.map +1 -1
  134. package/dist/src/dao-space/propose-add-editor.test.js +16 -4
  135. package/dist/src/dao-space/propose-add-editor.test.js.map +1 -1
  136. package/dist/src/dao-space/propose-add-member.d.ts +1 -20
  137. package/dist/src/dao-space/propose-add-member.d.ts.map +1 -1
  138. package/dist/src/dao-space/propose-add-member.js +12 -87
  139. package/dist/src/dao-space/propose-add-member.js.map +1 -1
  140. package/dist/src/dao-space/propose-add-member.test.js +13 -0
  141. package/dist/src/dao-space/propose-add-member.test.js.map +1 -1
  142. package/dist/src/dao-space/propose-edit.d.ts +1 -30
  143. package/dist/src/dao-space/propose-edit.d.ts.map +1 -1
  144. package/dist/src/dao-space/propose-edit.js +12 -108
  145. package/dist/src/dao-space/propose-edit.js.map +1 -1
  146. package/dist/src/dao-space/propose-edit.test.js +53 -1
  147. package/dist/src/dao-space/propose-edit.test.js.map +1 -1
  148. package/dist/src/dao-space/propose-remove-editor.d.ts +1 -22
  149. package/dist/src/dao-space/propose-remove-editor.d.ts.map +1 -1
  150. package/dist/src/dao-space/propose-remove-editor.js +12 -94
  151. package/dist/src/dao-space/propose-remove-editor.js.map +1 -1
  152. package/dist/src/dao-space/propose-remove-editor.test.js +24 -11
  153. package/dist/src/dao-space/propose-remove-editor.test.js.map +1 -1
  154. package/dist/src/dao-space/propose-remove-member.d.ts +1 -22
  155. package/dist/src/dao-space/propose-remove-member.d.ts.map +1 -1
  156. package/dist/src/dao-space/propose-remove-member.js +12 -94
  157. package/dist/src/dao-space/propose-remove-member.js.map +1 -1
  158. package/dist/src/dao-space/propose-remove-member.test.js +19 -0
  159. package/dist/src/dao-space/propose-remove-member.test.js.map +1 -1
  160. package/dist/src/dao-space/propose-request-membership.d.ts.map +1 -1
  161. package/dist/src/dao-space/propose-request-membership.js +4 -4
  162. package/dist/src/dao-space/propose-request-membership.js.map +1 -1
  163. package/dist/src/dao-space/propose-update-voting-settings.d.ts +8 -0
  164. package/dist/src/dao-space/propose-update-voting-settings.d.ts.map +1 -0
  165. package/dist/src/dao-space/propose-update-voting-settings.js +19 -0
  166. package/dist/src/dao-space/propose-update-voting-settings.js.map +1 -0
  167. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts +2 -0
  168. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts.map +1 -0
  169. package/dist/src/dao-space/propose-update-voting-settings.test.js +118 -0
  170. package/dist/src/dao-space/propose-update-voting-settings.test.js.map +1 -0
  171. package/dist/src/dao-space/types.d.ts +72 -11
  172. package/dist/src/dao-space/types.d.ts.map +1 -1
  173. package/dist/src/dao-space/vote-proposal.d.ts +1 -24
  174. package/dist/src/dao-space/vote-proposal.d.ts.map +1 -1
  175. package/dist/src/dao-space/vote-proposal.js +12 -64
  176. package/dist/src/dao-space/vote-proposal.js.map +1 -1
  177. package/dist/src/dao-space/vote-proposal.test.js +54 -0
  178. package/dist/src/dao-space/vote-proposal.test.js.map +1 -1
  179. package/dist/src/e2e-test-environment.d.ts +26 -0
  180. package/dist/src/e2e-test-environment.d.ts.map +1 -0
  181. package/dist/src/e2e-test-environment.js +150 -0
  182. package/dist/src/e2e-test-environment.js.map +1 -0
  183. package/dist/src/encoding.d.ts +3 -0
  184. package/dist/src/encoding.d.ts.map +1 -1
  185. package/dist/src/encoding.js +3 -0
  186. package/dist/src/encoding.js.map +1 -1
  187. package/dist/src/encodings/get-create-dao-space-calldata.d.ts +34 -97
  188. package/dist/src/encodings/get-create-dao-space-calldata.d.ts.map +1 -1
  189. package/dist/src/encodings/get-create-dao-space-calldata.js +66 -109
  190. package/dist/src/encodings/get-create-dao-space-calldata.js.map +1 -1
  191. package/dist/src/encodings/get-create-dao-space-calldata.test.js +90 -23
  192. package/dist/src/encodings/get-create-dao-space-calldata.test.js.map +1 -1
  193. package/dist/src/encodings/get-create-personal-space-calldata.d.ts +2 -0
  194. package/dist/src/encodings/get-create-personal-space-calldata.d.ts.map +1 -1
  195. package/dist/src/encodings/get-create-personal-space-calldata.js +2 -0
  196. package/dist/src/encodings/get-create-personal-space-calldata.js.map +1 -1
  197. package/dist/src/full-flow-test.test.js +5 -2
  198. package/dist/src/full-flow-test.test.js.map +1 -1
  199. package/dist/src/graph/comment-utils.d.ts +4 -0
  200. package/dist/src/graph/comment-utils.d.ts.map +1 -1
  201. package/dist/src/graph/comment-utils.js +4 -0
  202. package/dist/src/graph/comment-utils.js.map +1 -1
  203. package/dist/src/graph/constants.d.ts +12 -3
  204. package/dist/src/graph/constants.d.ts.map +1 -1
  205. package/dist/src/graph/constants.js +11 -5
  206. package/dist/src/graph/constants.js.map +1 -1
  207. package/dist/src/graph/create-comment.d.ts +3 -22
  208. package/dist/src/graph/create-comment.d.ts.map +1 -1
  209. package/dist/src/graph/create-comment.js +6 -136
  210. package/dist/src/graph/create-comment.js.map +1 -1
  211. package/dist/src/graph/create-comment.test.js +19 -8
  212. package/dist/src/graph/create-comment.test.js.map +1 -1
  213. package/dist/src/graph/create-entity.d.ts +2 -0
  214. package/dist/src/graph/create-entity.d.ts.map +1 -1
  215. package/dist/src/graph/create-entity.js +2 -0
  216. package/dist/src/graph/create-entity.js.map +1 -1
  217. package/dist/src/graph/create-image.d.ts +2 -21
  218. package/dist/src/graph/create-image.d.ts.map +1 -1
  219. package/dist/src/graph/create-image.js +7 -69
  220. package/dist/src/graph/create-image.js.map +1 -1
  221. package/dist/src/graph/create-property.d.ts +2 -0
  222. package/dist/src/graph/create-property.d.ts.map +1 -1
  223. package/dist/src/graph/create-property.js +2 -0
  224. package/dist/src/graph/create-property.js.map +1 -1
  225. package/dist/src/graph/create-proposal-review.d.ts +1 -27
  226. package/dist/src/graph/create-proposal-review.d.ts.map +1 -1
  227. package/dist/src/graph/create-proposal-review.js +4 -61
  228. package/dist/src/graph/create-proposal-review.js.map +1 -1
  229. package/dist/src/graph/create-relation.d.ts +2 -0
  230. package/dist/src/graph/create-relation.d.ts.map +1 -1
  231. package/dist/src/graph/create-relation.js +2 -0
  232. package/dist/src/graph/create-relation.js.map +1 -1
  233. package/dist/src/graph/create-type.d.ts +2 -0
  234. package/dist/src/graph/create-type.d.ts.map +1 -1
  235. package/dist/src/graph/create-type.js +2 -0
  236. package/dist/src/graph/create-type.js.map +1 -1
  237. package/dist/src/graph/delete-entity.d.ts +2 -14
  238. package/dist/src/graph/delete-entity.d.ts.map +1 -1
  239. package/dist/src/graph/delete-entity.js +5 -78
  240. package/dist/src/graph/delete-entity.js.map +1 -1
  241. package/dist/src/graph/delete-entity.test.js +7 -0
  242. package/dist/src/graph/delete-entity.test.js.map +1 -1
  243. package/dist/src/graph/delete-relation.d.ts +2 -0
  244. package/dist/src/graph/delete-relation.d.ts.map +1 -1
  245. package/dist/src/graph/delete-relation.js +2 -0
  246. package/dist/src/graph/delete-relation.js.map +1 -1
  247. package/dist/src/graph/entity-vote.d.ts +3 -3
  248. package/dist/src/graph/entity-vote.d.ts.map +1 -1
  249. package/dist/src/graph/entity-vote.js +21 -46
  250. package/dist/src/graph/entity-vote.js.map +1 -1
  251. package/dist/src/graph/update-comment.d.ts +3 -0
  252. package/dist/src/graph/update-comment.d.ts.map +1 -1
  253. package/dist/src/graph/update-comment.js +3 -0
  254. package/dist/src/graph/update-comment.js.map +1 -1
  255. package/dist/src/graph/update-entity.d.ts +2 -0
  256. package/dist/src/graph/update-entity.d.ts.map +1 -1
  257. package/dist/src/graph/update-entity.js +2 -0
  258. package/dist/src/graph/update-entity.js.map +1 -1
  259. package/dist/src/graph/update-proposal-review.d.ts +2 -27
  260. package/dist/src/graph/update-proposal-review.d.ts.map +1 -1
  261. package/dist/src/graph/update-proposal-review.js +4 -50
  262. package/dist/src/graph/update-proposal-review.js.map +1 -1
  263. package/dist/src/graph/update-relation.d.ts +2 -0
  264. package/dist/src/graph/update-relation.d.ts.map +1 -1
  265. package/dist/src/graph/update-relation.js +2 -0
  266. package/dist/src/graph/update-relation.js.map +1 -1
  267. package/dist/src/ipfs-core.d.ts +42 -0
  268. package/dist/src/ipfs-core.d.ts.map +1 -0
  269. package/dist/src/ipfs-core.js +165 -0
  270. package/dist/src/ipfs-core.js.map +1 -0
  271. package/dist/src/ipfs-core.test.d.ts +2 -0
  272. package/dist/src/ipfs-core.test.d.ts.map +1 -0
  273. package/dist/src/ipfs-core.test.js +56 -0
  274. package/dist/src/ipfs-core.test.js.map +1 -0
  275. package/dist/src/ipfs.d.ts +7 -52
  276. package/dist/src/ipfs.d.ts.map +1 -1
  277. package/dist/src/ipfs.js +27 -170
  278. package/dist/src/ipfs.js.map +1 -1
  279. package/dist/src/legacy-api-surface.e2e.test.d.ts +2 -0
  280. package/dist/src/legacy-api-surface.e2e.test.d.ts.map +1 -0
  281. package/dist/src/legacy-api-surface.e2e.test.js +860 -0
  282. package/dist/src/legacy-api-surface.e2e.test.js.map +1 -0
  283. package/dist/src/networks.d.ts +46 -0
  284. package/dist/src/networks.d.ts.map +1 -0
  285. package/dist/src/networks.js +90 -0
  286. package/dist/src/networks.js.map +1 -0
  287. package/dist/src/ops/comments.d.ts +80 -0
  288. package/dist/src/ops/comments.d.ts.map +1 -0
  289. package/dist/src/ops/comments.js +142 -0
  290. package/dist/src/ops/comments.js.map +1 -0
  291. package/dist/src/ops/entities.d.ts +50 -0
  292. package/dist/src/ops/entities.d.ts.map +1 -0
  293. package/dist/src/ops/entities.js +51 -0
  294. package/dist/src/ops/entities.js.map +1 -0
  295. package/dist/src/ops/index.d.ts +7 -0
  296. package/dist/src/ops/index.d.ts.map +1 -0
  297. package/dist/src/ops/index.js +7 -0
  298. package/dist/src/ops/index.js.map +1 -0
  299. package/dist/src/ops/index.test.d.ts +2 -0
  300. package/dist/src/ops/index.test.d.ts.map +1 -0
  301. package/dist/src/ops/index.test.js +115 -0
  302. package/dist/src/ops/index.test.js.map +1 -0
  303. package/dist/src/ops/properties.d.ts +20 -0
  304. package/dist/src/ops/properties.d.ts.map +1 -0
  305. package/dist/src/ops/properties.js +20 -0
  306. package/dist/src/ops/properties.js.map +1 -0
  307. package/dist/src/ops/proposal-reviews.d.ts +43 -0
  308. package/dist/src/ops/proposal-reviews.d.ts.map +1 -0
  309. package/dist/src/ops/proposal-reviews.js +103 -0
  310. package/dist/src/ops/proposal-reviews.js.map +1 -0
  311. package/dist/src/ops/relations.d.ts +57 -0
  312. package/dist/src/ops/relations.d.ts.map +1 -0
  313. package/dist/src/ops/relations.js +59 -0
  314. package/dist/src/ops/relations.js.map +1 -0
  315. package/dist/src/ops/types.d.ts +20 -0
  316. package/dist/src/ops/types.d.ts.map +1 -0
  317. package/dist/src/ops/types.js +20 -0
  318. package/dist/src/ops/types.js.map +1 -0
  319. package/dist/src/personal-space/constants.d.ts +1 -0
  320. package/dist/src/personal-space/constants.d.ts.map +1 -1
  321. package/dist/src/personal-space/constants.js +1 -0
  322. package/dist/src/personal-space/constants.js.map +1 -1
  323. package/dist/src/personal-space/create-space.d.ts +3 -20
  324. package/dist/src/personal-space/create-space.d.ts.map +1 -1
  325. package/dist/src/personal-space/create-space.js +5 -21
  326. package/dist/src/personal-space/create-space.js.map +1 -1
  327. package/dist/src/personal-space/has-space.d.ts +9 -2
  328. package/dist/src/personal-space/has-space.d.ts.map +1 -1
  329. package/dist/src/personal-space/has-space.js +9 -13
  330. package/dist/src/personal-space/has-space.js.map +1 -1
  331. package/dist/src/personal-space/has-space.test.d.ts +2 -0
  332. package/dist/src/personal-space/has-space.test.d.ts.map +1 -0
  333. package/dist/src/personal-space/has-space.test.js +30 -0
  334. package/dist/src/personal-space/has-space.test.js.map +1 -0
  335. package/dist/src/personal-space/publish-edit.d.ts +1 -22
  336. package/dist/src/personal-space/publish-edit.d.ts.map +1 -1
  337. package/dist/src/personal-space/publish-edit.js +10 -64
  338. package/dist/src/personal-space/publish-edit.js.map +1 -1
  339. package/dist/src/personal-space/types.d.ts +4 -1
  340. package/dist/src/personal-space/types.d.ts.map +1 -1
  341. package/dist/src/smart-wallet.d.ts +2 -4
  342. package/dist/src/smart-wallet.d.ts.map +1 -1
  343. package/dist/src/smart-wallet.js +6 -9
  344. package/dist/src/smart-wallet.js.map +1 -1
  345. package/dist/src/types.d.ts +25 -0
  346. package/dist/src/types.d.ts.map +1 -1
  347. package/dist/src/types.js.map +1 -1
  348. package/package.json +14 -1
  349. package/dist/proto.d.ts +0 -5
  350. package/dist/proto.d.ts.map +0 -1
  351. package/dist/proto.js +0 -5
  352. package/dist/proto.js.map +0 -1
  353. package/dist/src/graph/create-space.d.ts +0 -37
  354. package/dist/src/graph/create-space.d.ts.map +0 -1
  355. package/dist/src/graph/create-space.js +0 -67
  356. package/dist/src/graph/create-space.js.map +0 -1
  357. package/dist/src/proto/index.d.ts +0 -7
  358. package/dist/src/proto/index.d.ts.map +0 -1
  359. package/dist/src/proto/index.js +0 -7
  360. package/dist/src/proto/index.js.map +0 -1
@@ -0,0 +1,494 @@
1
+ import * as Api from './client/api.js';
2
+ import * as Comments from './client/comments.js';
3
+ import * as DaoSpaces from './client/dao-spaces.js';
4
+ import { deleteEntity } from './client/entities.js';
5
+ import * as EntityVotes from './client/entity-votes.js';
6
+ import * as PersonalSpaces from './client/personal-spaces.js';
7
+ import { defineGeoNetworkConfig } from './networks.js';
8
+ /**
9
+ * Creates a configured Geo SDK client.
10
+ *
11
+ * The client groups the SDK into namespaces by workflow:
12
+ * - `api`, `storage`, `images`, `comments`, and delete helpers use the
13
+ * configured API origin and fetch implementation.
14
+ * - transaction/calldata helpers use contract addresses from the configured
15
+ * network.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import { createGeoClient, GeoTestnetConfig } from '@geoprotocol/geo-sdk';
20
+ * import * as Ops from '@geoprotocol/geo-sdk/ops';
21
+ *
22
+ * const geo = createGeoClient({ network: GeoTestnetConfig });
23
+ * const { ops } = Ops.entities.create({ name: 'Geo entity' });
24
+ * const edit = await geo.personalSpaces.publishEdit({
25
+ * name: 'Create entity',
26
+ * spaceId,
27
+ * author,
28
+ * ops,
29
+ * });
30
+ * ```
31
+ *
32
+ * @example
33
+ * Create a client for a custom deployment.
34
+ *
35
+ * ```ts
36
+ * import { createGeoClient, defineGeoNetworkConfig } from '@geoprotocol/geo-sdk';
37
+ *
38
+ * const local = defineGeoNetworkConfig({
39
+ * id: 'LOCAL',
40
+ * name: 'Local Geo',
41
+ * apiOrigin: 'http://localhost:3000',
42
+ * chain: { id: 31337, name: 'Anvil', rpcUrl: 'http://localhost:8545' },
43
+ * contracts: {
44
+ * SPACE_REGISTRY_ADDRESS: '0x...',
45
+ * DAO_SPACE_FACTORY_ADDRESS: '0x...',
46
+ * },
47
+ * });
48
+ *
49
+ * const geo = createGeoClient({ network: local });
50
+ * ```
51
+ *
52
+ * @param params Network and fetch configuration for context-aware helpers.
53
+ * @returns A configured client with API helpers and transaction workflows.
54
+ */
55
+ export function createGeoClient(params) {
56
+ if (!params?.network) {
57
+ throw new Error('createGeoClient requires a Geo network config. Pass GeoTestnetConfig or defineGeoNetworkConfig().');
58
+ }
59
+ if (typeof params.network === 'string') {
60
+ throw new Error('createGeoClient requires a full Geo network config. Pass GeoTestnetConfig or defineGeoNetworkConfig().');
61
+ }
62
+ const fetchFn = params.fetch ?? globalThis.fetch;
63
+ const context = {
64
+ network: defineGeoNetworkConfig(params.network),
65
+ fetch: fetchFn,
66
+ };
67
+ return {
68
+ /** The resolved network configuration used by this client. */
69
+ network: context.network,
70
+ /** Low-level API helpers that use the configured API origin. */
71
+ api: {
72
+ /**
73
+ * Sends a GraphQL request to the configured Geo API.
74
+ *
75
+ * This returns the raw GraphQL envelope so callers can inspect `errors`
76
+ * when they want custom error handling.
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * const response = await geo.api.graphql<{
81
+ * entity: { id: string } | null;
82
+ * }>(`
83
+ * query {
84
+ * entity(id: "3af3e22d21694a078681516710b7ecf1") {
85
+ * id
86
+ * }
87
+ * }
88
+ * `);
89
+ * ```
90
+ */
91
+ async graphql(query) {
92
+ return Api.graphqlRequest(context, query);
93
+ },
94
+ /**
95
+ * Requests edit calldata from the configured Geo API for a published edit CID.
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * const { to, data } = await geo.api.getEditCalldata({
100
+ * spaceId,
101
+ * cid: 'ipfs://baf...',
102
+ * });
103
+ * ```
104
+ */
105
+ async getEditCalldata(params) {
106
+ return Api.getEditCalldata(context, params);
107
+ },
108
+ },
109
+ /** IPFS upload helpers for files and CSV data. */
110
+ storage: {
111
+ /**
112
+ * Uploads an image file or URL and returns the uploaded CID plus image dimensions when detected.
113
+ *
114
+ * @example
115
+ * ```ts
116
+ * const uploaded = await geo.storage.uploadImage({
117
+ * url: 'https://example.com/photo.png',
118
+ * });
119
+ *
120
+ * console.log(uploaded.cid, uploaded.dimensions);
121
+ * ```
122
+ */
123
+ async uploadImage(params) {
124
+ const { uploadImage } = await import('./client/storage.js');
125
+ return uploadImage(context, params);
126
+ },
127
+ /**
128
+ * Compresses and uploads CSV content, returning the uploaded IPFS URI.
129
+ *
130
+ * @example
131
+ * ```ts
132
+ * const cid = await geo.storage.uploadCSV('name,score\nAlice,10');
133
+ * ```
134
+ */
135
+ async uploadCSV(csvString) {
136
+ const { uploadCSV } = await import('./client/storage.js');
137
+ return uploadCSV(context, csvString);
138
+ },
139
+ },
140
+ /** Entity helpers that need graph context from the configured API. */
141
+ entities: {
142
+ /**
143
+ * Fetches current entity values and relations from the configured API, then builds delete ops.
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * const { ops } = await geo.entities.delete({
148
+ * id: entityId,
149
+ * spaceId,
150
+ * });
151
+ * ```
152
+ */
153
+ delete: (params) => deleteEntity(context, params),
154
+ },
155
+ /** Image workflow helpers. */
156
+ images: {
157
+ /**
158
+ * Uploads an image, detects dimensions when possible, and builds image entity ops.
159
+ *
160
+ * @example
161
+ * ```ts
162
+ * const image = await geo.images.create({
163
+ * url: 'https://example.com/cover.png',
164
+ * name: 'Cover image',
165
+ * });
166
+ * ```
167
+ */
168
+ async create(params) {
169
+ const { create } = await import('./client/images.js');
170
+ return create(context, params);
171
+ },
172
+ },
173
+ /** Comment operation helpers. */
174
+ comments: {
175
+ /**
176
+ * Fetches reply-to context for the target entity and builds comment creation ops.
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * const comment = await geo.comments.create({
181
+ * content: 'Looks good to me',
182
+ * replyTo: { entityId, spaceId },
183
+ * });
184
+ * ```
185
+ */
186
+ create: (params) => Comments.create(context, params),
187
+ /**
188
+ * Builds update-comment ops.
189
+ *
190
+ * @example
191
+ * ```ts
192
+ * const { ops } = geo.comments.update({
193
+ * id: commentId,
194
+ * resolved: true,
195
+ * });
196
+ * ```
197
+ */
198
+ update: Comments.update,
199
+ },
200
+ /** Personal-space transaction helpers. */
201
+ personalSpaces: {
202
+ /**
203
+ * Returns calldata for creating a personal space with the configured registry.
204
+ *
205
+ * @example
206
+ * ```ts
207
+ * const { to, calldata, ops } = geo.personalSpaces.create({
208
+ * name: 'Alice',
209
+ * accountAddress: account.address,
210
+ * });
211
+ *
212
+ * await walletClient.sendTransaction({ to, data: calldata });
213
+ * ```
214
+ */
215
+ create: (params) => PersonalSpaces.create(context, params),
216
+ /**
217
+ * Returns calldata for setting a personal space topic.
218
+ *
219
+ * @example
220
+ * ```ts
221
+ * const topicTx = geo.personalSpaces.setTopic({
222
+ * spaceId,
223
+ * topicId: createSpace.spaceEntityId,
224
+ * });
225
+ * ```
226
+ */
227
+ setTopic: (params) => PersonalSpaces.setTopic(context, params),
228
+ /**
229
+ * Returns calldata for archiving the caller's personal space.
230
+ *
231
+ * The Space Registry determines the archived space from the transaction
232
+ * sender, so send this transaction from the account that owns the
233
+ * personal space.
234
+ *
235
+ * @example
236
+ * ```ts
237
+ * const tx = geo.personalSpaces.archiveSpace();
238
+ * await walletClient.sendTransaction({ to: tx.to, data: tx.calldata });
239
+ * ```
240
+ */
241
+ archiveSpace: () => PersonalSpaces.archiveSpace(context),
242
+ /**
243
+ * Returns calldata for recovering the caller's archived personal space.
244
+ *
245
+ * @example
246
+ * ```ts
247
+ * const tx = geo.personalSpaces.recoverSpace();
248
+ * await walletClient.sendTransaction({ to: tx.to, data: tx.calldata });
249
+ * ```
250
+ */
251
+ recoverSpace: () => PersonalSpaces.recoverSpace(context),
252
+ /**
253
+ * Returns calldata for clearing the caller's archived personal space.
254
+ *
255
+ * `clearSpaceId()` permanently unregisters the caller's archived space
256
+ * ID, so only send this after intentionally archiving that space.
257
+ *
258
+ * @example
259
+ * ```ts
260
+ * const tx = geo.personalSpaces.clearSpace();
261
+ * await walletClient.sendTransaction({ to: tx.to, data: tx.calldata });
262
+ * ```
263
+ */
264
+ clearSpace: () => PersonalSpaces.clearSpace(context),
265
+ /**
266
+ * Checks whether an address already has a personal space.
267
+ *
268
+ * @example
269
+ * ```ts
270
+ * const hasExistingSpace = await geo.personalSpaces.hasSpace({
271
+ * address: account.address,
272
+ * });
273
+ * ```
274
+ */
275
+ hasSpace: (params) => PersonalSpaces.hasSpace(context, params),
276
+ /**
277
+ * Publishes an edit and returns calldata for submitting it to a personal space.
278
+ *
279
+ * @example
280
+ * ```ts
281
+ * const tx = await geo.personalSpaces.publishEdit({
282
+ * name: 'Create entity',
283
+ * spaceId,
284
+ * author: spaceId,
285
+ * ops,
286
+ * });
287
+ * ```
288
+ */
289
+ publishEdit: (params) => PersonalSpaces.publishEdit(context, params),
290
+ },
291
+ /** DAO-space transaction helpers. */
292
+ daoSpaces: {
293
+ /**
294
+ * Publishes the initial DAO edit and returns calldata for creating a DAO space.
295
+ *
296
+ * @example
297
+ * ```ts
298
+ * const tx = await geo.daoSpaces.create({
299
+ * name: 'Research DAO',
300
+ * author: authorSpaceId,
301
+ * initialEditorSpaceIds: [authorSpaceId],
302
+ * votingSettings: {
303
+ * partialPercentageSupportThreshold: 50,
304
+ * universalPercentageSupportThreshold: 90,
305
+ * flatSupportThreshold: 1,
306
+ * quorum: 1,
307
+ * durationInDays: 2,
308
+ * disableFastPathAccessForNewMembers: true,
309
+ * executionGracePeriodInDays: 14,
310
+ * },
311
+ * });
312
+ * ```
313
+ */
314
+ create: (params) => DaoSpaces.create(context, params),
315
+ /**
316
+ * Publishes an edit and wraps it in a DAO-space ping proposal action.
317
+ *
318
+ * @example
319
+ * ```ts
320
+ * const proposal = await geo.daoSpaces.proposeEdit({
321
+ * name: 'Publish edit',
322
+ * ops,
323
+ * author: authorSpaceId,
324
+ * daoSpaceAddress,
325
+ * callerSpaceId: authorSpaceId,
326
+ * daoSpaceId,
327
+ * });
328
+ * ```
329
+ */
330
+ proposeEdit: (params) => DaoSpaces.proposeEdit(context, params),
331
+ /**
332
+ * Builds calldata for a DAO proposal that adds a member.
333
+ *
334
+ * @example
335
+ * ```ts
336
+ * const tx = geo.daoSpaces.proposeAddMember({
337
+ * authorSpaceId,
338
+ * spaceId: daoSpaceId,
339
+ * daoSpaceAddress,
340
+ * newMemberSpaceId: memberSpaceId,
341
+ * });
342
+ * ```
343
+ */
344
+ proposeAddMember: (params) => DaoSpaces.proposeAddMember(context, params),
345
+ /**
346
+ * Builds calldata for a DAO proposal that removes a member.
347
+ *
348
+ * @example
349
+ * ```ts
350
+ * const tx = geo.daoSpaces.proposeRemoveMember({
351
+ * authorSpaceId,
352
+ * spaceId: daoSpaceId,
353
+ * daoSpaceAddress,
354
+ * memberToRemoveSpaceId,
355
+ * });
356
+ * ```
357
+ */
358
+ proposeRemoveMember: (params) => DaoSpaces.proposeRemoveMember(context, params),
359
+ /**
360
+ * Builds calldata for a DAO proposal that adds an editor.
361
+ *
362
+ * @example
363
+ * ```ts
364
+ * const tx = geo.daoSpaces.proposeAddEditor({
365
+ * authorSpaceId,
366
+ * spaceId: daoSpaceId,
367
+ * daoSpaceAddress,
368
+ * newEditorSpaceId: editorSpaceId,
369
+ * });
370
+ * ```
371
+ */
372
+ proposeAddEditor: (params) => DaoSpaces.proposeAddEditor(context, params),
373
+ /**
374
+ * Builds calldata for a DAO proposal that removes an editor.
375
+ *
376
+ * @example
377
+ * ```ts
378
+ * const tx = geo.daoSpaces.proposeRemoveEditor({
379
+ * authorSpaceId,
380
+ * spaceId: daoSpaceId,
381
+ * daoSpaceAddress,
382
+ * editorToRemoveSpaceId,
383
+ * });
384
+ * ```
385
+ */
386
+ proposeRemoveEditor: (params) => DaoSpaces.proposeRemoveEditor(context, params),
387
+ /**
388
+ * Builds calldata for a DAO proposal that updates voting settings.
389
+ *
390
+ * @example
391
+ * ```ts
392
+ * const tx = geo.daoSpaces.proposeUpdateVotingSettings({
393
+ * authorSpaceId,
394
+ * spaceId: daoSpaceId,
395
+ * daoSpaceAddress,
396
+ * votingSettings,
397
+ * });
398
+ * ```
399
+ */
400
+ proposeUpdateVotingSettings: (params) => DaoSpaces.proposeUpdateVotingSettings(context, params),
401
+ /**
402
+ * Builds calldata for requesting membership in a DAO space.
403
+ *
404
+ * @example
405
+ * ```ts
406
+ * const tx = geo.daoSpaces.proposeRequestMembership({
407
+ * authorSpaceId: requesterSpaceId,
408
+ * spaceId: daoSpaceId,
409
+ * });
410
+ * ```
411
+ */
412
+ proposeRequestMembership: (params) => DaoSpaces.proposeRequestMembership(context, params),
413
+ /**
414
+ * Builds calldata for a SLOW DAO proposal that archives the DAO space.
415
+ *
416
+ * The proposal action targets the Space Registry. When the proposal
417
+ * executes, the DAO space contract is the caller and the registry
418
+ * archives that DAO's registered space ID.
419
+ *
420
+ * @example
421
+ * ```ts
422
+ * const tx = geo.daoSpaces.proposeArchiveSpace({
423
+ * authorSpaceId,
424
+ * spaceId: daoSpaceId,
425
+ * });
426
+ * ```
427
+ */
428
+ proposeArchiveSpace: (params) => DaoSpaces.proposeArchiveSpace(context, params),
429
+ /**
430
+ * Builds calldata for voting on a DAO proposal version.
431
+ *
432
+ * @example
433
+ * ```ts
434
+ * const tx = geo.daoSpaces.voteProposal({
435
+ * authorSpaceId,
436
+ * spaceId: daoSpaceId,
437
+ * proposalId,
438
+ * versionId: 1,
439
+ * vote: 'YES',
440
+ * });
441
+ * ```
442
+ */
443
+ voteProposal: (params) => DaoSpaces.voteProposal(context, params),
444
+ /**
445
+ * Builds calldata for executing a passed DAO proposal.
446
+ *
447
+ * @example
448
+ * ```ts
449
+ * const tx = geo.daoSpaces.executeProposal({
450
+ * authorSpaceId,
451
+ * spaceId: daoSpaceId,
452
+ * proposalId,
453
+ * });
454
+ * ```
455
+ */
456
+ executeProposal: (params) => DaoSpaces.executeProposal(context, params),
457
+ },
458
+ /** Entity vote transaction helpers. */
459
+ entityVotes: {
460
+ /**
461
+ * Builds calldata for upvoting an entity.
462
+ *
463
+ * @example
464
+ * ```ts
465
+ * const tx = geo.entityVotes.upvote({
466
+ * authorSpaceId,
467
+ * spaceId,
468
+ * entityId,
469
+ * });
470
+ * ```
471
+ */
472
+ upvote: (params) => EntityVotes.upvote(context, params),
473
+ /**
474
+ * Builds calldata for downvoting an entity.
475
+ *
476
+ * @example
477
+ * ```ts
478
+ * const tx = geo.entityVotes.downvote({ authorSpaceId, spaceId, entityId });
479
+ * ```
480
+ */
481
+ downvote: (params) => EntityVotes.downvote(context, params),
482
+ /**
483
+ * Builds calldata for withdrawing an entity vote.
484
+ *
485
+ * @example
486
+ * ```ts
487
+ * const tx = geo.entityVotes.withdraw({ authorSpaceId, spaceId, entityId });
488
+ * ```
489
+ */
490
+ withdraw: (params) => EntityVotes.withdraw(context, params),
491
+ },
492
+ };
493
+ }
494
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AAEjD,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,WAAW,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAoUvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,eAAe,CAAC,MAA6B;IAC3D,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAEjD,MAAM,OAAO,GAAqB;QAChC,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/C,KAAK,EAAE,OAAO;KACf,CAAC;IAEF,OAAO;QACL,8DAA8D;QAC9D,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,gEAAgE;QAChE,GAAG,EAAE;YACH;;;;;;;;;;;;;;;;;;eAkBG;YACH,KAAK,CAAC,OAAO,CAAI,KAAa;gBAC5B,OAAO,GAAG,CAAC,cAAc,CAAI,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;YACD;;;;;;;;;;eAUG;YACH,KAAK,CAAC,eAAe,CAAC,MAAwC;gBAC5D,OAAO,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC9C,CAAC;SACF;QACD,kDAAkD;QAClD,OAAO,EAAE;YACP;;;;;;;;;;;eAWG;YACH,KAAK,CAAC,WAAW,CAAC,MAAyB;gBACzC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC5D,OAAO,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC;YACD;;;;;;;eAOG;YACH,KAAK,CAAC,SAAS,CAAC,SAAiB;gBAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC1D,OAAO,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvC,CAAC;SACF;QACD,sEAAsE;QACtE,QAAQ,EAAE;YACR;;;;;;;;;;eAUG;YACH,MAAM,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;SACtE;QACD,8BAA8B;QAC9B,MAAM,EAAE;YACN;;;;;;;;;;eAUG;YACH,KAAK,CAAC,MAAM,CAAC,MAAyB;gBACpC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBACtD,OAAO,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACjC,CAAC;SACF;QACD,iCAAiC;QACjC,QAAQ,EAAE;YACR;;;;;;;;;;eAUG;YACH,MAAM,EAAE,CAAC,MAA2B,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;YACzE;;;;;;;;;;eAUG;YACH,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB;QACD,0CAA0C;QAC1C,cAAc,EAAE;YACd;;;;;;;;;;;;eAYG;YACH,MAAM,EAAE,CAAC,MAAiC,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;YACrF;;;;;;;;;;eAUG;YACH,QAAQ,EAAE,CAAC,MAAmC,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YAC3F;;;;;;;;;;;;eAYG;YACH,YAAY,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC;YACxD;;;;;;;;eAQG;YACH,YAAY,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC;YACxD;;;;;;;;;;;eAWG;YACH,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;YACpD;;;;;;;;;eASG;YACH,QAAQ,EAAE,CAAC,MAA8B,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACtF;;;;;;;;;;;;eAYG;YACH,WAAW,EAAE,CAAC,MAAsC,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;SACrG;QACD,qCAAqC;QACrC,SAAS,EAAE;YACT;;;;;;;;;;;;;;;;;;;;eAoBG;YACH,MAAM,EAAE,CAAC,MAA4B,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;YAC3E;;;;;;;;;;;;;;eAcG;YACH,WAAW,EAAE,CAAC,MAAyB,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;YAClF;;;;;;;;;;;;eAYG;YACH,gBAAgB,EAAE,CAAC,MAA8B,EAAE,EAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC;YACjG;;;;;;;;;;;;eAYG;YACH,mBAAmB,EAAE,CAAC,MAAiC,EAAE,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1G;;;;;;;;;;;;eAYG;YACH,gBAAgB,EAAE,CAAC,MAA8B,EAAE,EAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC;YACjG;;;;;;;;;;;;eAYG;YACH,mBAAmB,EAAE,CAAC,MAAiC,EAAE,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1G;;;;;;;;;;;;eAYG;YACH,2BAA2B,EAAE,CAAC,MAAyC,EAAE,EAAE,CACzE,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,MAAM,CAAC;YACxD;;;;;;;;;;eAUG;YACH,wBAAwB,EAAE,CAAC,MAAsC,EAAE,EAAE,CACnE,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC;YACrD;;;;;;;;;;;;;;eAcG;YACH,mBAAmB,EAAE,CAAC,MAAiC,EAAE,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1G;;;;;;;;;;;;;eAaG;YACH,YAAY,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;YACrF;;;;;;;;;;;eAWG;YACH,eAAe,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC;SAC/F;QACD,uCAAuC;QACvC,WAAW,EAAE;YACX;;;;;;;;;;;eAWG;YACH,MAAM,EAAE,CAAC,MAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;YACzE;;;;;;;eAOG;YACH,QAAQ,EAAE,CAAC,MAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YAC7E;;;;;;;eAOG;YACH,QAAQ,EAAE,CAAC,MAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;SAC9E;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../../src/client.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,125 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { createGeoClient } from './client.js';
3
+ import { defineGeoNetworkConfig, GeoTestnetConfig } from './networks.js';
4
+ import * as Ops from './ops/index.js';
5
+ describe('createGeoClient', () => {
6
+ const customNetwork = () => defineGeoNetworkConfig({
7
+ id: 'LOCAL',
8
+ name: 'Local Geo',
9
+ apiOrigin: 'http://localhost:3000',
10
+ contracts: {
11
+ SPACE_REGISTRY_ADDRESS: '0x0000000000000000000000000000000000000001',
12
+ DAO_SPACE_FACTORY_ADDRESS: '0x0000000000000000000000000000000000000002',
13
+ },
14
+ });
15
+ it('accepts the built-in TESTNET config', () => {
16
+ const geo = createGeoClient({ network: GeoTestnetConfig });
17
+ expect(geo.network.id).toBe('TESTNET');
18
+ expect(geo.network.apiOrigin).toBe(GeoTestnetConfig.apiOrigin);
19
+ });
20
+ it('accepts custom network configs', () => {
21
+ const fetch = vi.fn();
22
+ const local = customNetwork();
23
+ const geo = createGeoClient({ network: local, fetch });
24
+ expect(geo.network.id).toBe('LOCAL');
25
+ expect(geo.network.contracts?.SPACE_REGISTRY_ADDRESS).toBe('0x0000000000000000000000000000000000000001');
26
+ });
27
+ it('only exposes graph-context entity helpers on the client', () => {
28
+ const geo = createGeoClient({ network: customNetwork() });
29
+ expect(Object.keys(geo.entities)).toEqual(['delete']);
30
+ });
31
+ it('scopes proposal helpers under daoSpaces', () => {
32
+ const geo = createGeoClient({ network: customNetwork() });
33
+ expect('edits' in geo).toBe(false);
34
+ expect('proposals' in geo).toBe(false);
35
+ expect(Object.keys(geo.daoSpaces)).toEqual([
36
+ 'create',
37
+ 'proposeEdit',
38
+ 'proposeAddMember',
39
+ 'proposeRemoveMember',
40
+ 'proposeAddEditor',
41
+ 'proposeRemoveEditor',
42
+ 'proposeUpdateVotingSettings',
43
+ 'proposeRequestMembership',
44
+ 'voteProposal',
45
+ 'executeProposal',
46
+ ]);
47
+ });
48
+ it('requires an explicit network config', () => {
49
+ expect(() => createGeoClient(undefined)).toThrow('requires a Geo network config');
50
+ });
51
+ it('rejects string network IDs', () => {
52
+ expect(() => createGeoClient({ network: 'TESTNET' })).toThrow('requires a full Geo network config');
53
+ });
54
+ it('allows sync calldata helpers without global fetch', () => {
55
+ const originalFetch = globalThis.fetch;
56
+ vi.stubGlobal('fetch', undefined);
57
+ try {
58
+ const geo = createGeoClient({ network: GeoTestnetConfig });
59
+ const result = geo.personalSpaces.create({
60
+ name: 'Test Space',
61
+ accountAddress: '0x1234567890123456789012345678901234567890',
62
+ });
63
+ expect(result.calldata).toMatch(/^0x/);
64
+ }
65
+ finally {
66
+ vi.stubGlobal('fetch', originalFetch);
67
+ }
68
+ });
69
+ it('validates required contracts before upload-backed workflows', async () => {
70
+ const fetch = vi.fn();
71
+ const geo = createGeoClient({
72
+ network: defineGeoNetworkConfig({
73
+ id: 'LOCAL',
74
+ name: 'Local Geo',
75
+ apiOrigin: 'http://localhost:3000',
76
+ contracts: {
77
+ SPACE_REGISTRY_ADDRESS: '0x0000000000000000000000000000000000000001',
78
+ },
79
+ }),
80
+ fetch,
81
+ });
82
+ await expect(geo.daoSpaces.create({
83
+ name: 'Test DAO',
84
+ author: '5cade5757ecd41ae83481b22ffc2f94e',
85
+ votingSettings: {
86
+ partialPercentageSupportThreshold: 50,
87
+ universalPercentageSupportThreshold: 90,
88
+ flatSupportThreshold: 1,
89
+ quorum: 1,
90
+ durationInDays: 2,
91
+ disableFastPathAccessForNewMembers: true,
92
+ executionGracePeriodInDays: 14,
93
+ },
94
+ initialEditorSpaceIds: ['0x11111111111111111111111111111111'],
95
+ })).rejects.toThrow('DAO_SPACE_FACTORY_ADDRESS');
96
+ expect(fetch).not.toHaveBeenCalled();
97
+ });
98
+ it('uses configured fetch and registry address for personal space edit publishing', async () => {
99
+ const fetch = vi
100
+ .fn()
101
+ .mockResolvedValue(new Response(JSON.stringify({ cid: 'ipfs://bafkreigwfjixq5cm3s4youhshorkpqh3ykpviyv76c2ei6gaalujtlqz5i' })));
102
+ const geo = createGeoClient({ network: customNetwork(), fetch });
103
+ const { ops } = Ops.entities.create({ name: 'Test Entity' });
104
+ const result = await geo.personalSpaces.publishEdit({
105
+ name: 'Test Edit',
106
+ spaceId: '0eed5491b917cf58b33ac81255fe7ae9',
107
+ ops,
108
+ author: '5cade5757ecd41ae83481b22ffc2f94e',
109
+ });
110
+ expect(result.to).toBe('0x0000000000000000000000000000000000000001');
111
+ expect(result.cid).toBe('ipfs://bafkreigwfjixq5cm3s4youhshorkpqh3ykpviyv76c2ei6gaalujtlqz5i');
112
+ expect(fetch).toHaveBeenCalledWith('http://localhost:3000/ipfs/upload-edit', expect.objectContaining({ method: 'POST' }));
113
+ });
114
+ it('uses configured registry address for entity votes without fetch', () => {
115
+ const geo = createGeoClient({ network: customNetwork() });
116
+ const result = geo.entityVotes.upvote({
117
+ authorSpaceId: '0eed5491b917cf58b33ac81255fe7ae9',
118
+ spaceId: 'abcdef12345678901234567890abcdef',
119
+ entityId: '11111111111111111111111111111111',
120
+ });
121
+ expect(result.to).toBe('0x0000000000000000000000000000000000000001');
122
+ expect(result.calldata).toMatch(/^0x/);
123
+ });
124
+ });
125
+ //# sourceMappingURL=client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=local-geobrowser.e2e.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-geobrowser.e2e.test.d.ts","sourceRoot":"","sources":["../../../src/contracts-v2/local-geobrowser.e2e.test.ts"],"names":[],"mappings":""}