@geoprotocol/geo-sdk 0.18.2 → 0.19.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 (352) 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 +7 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +7 -0
  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-v2.test.d.ts +2 -0
  15. package/dist/src/abis/dao-space-v2.test.d.ts.map +1 -0
  16. package/dist/src/abis/dao-space-v2.test.js +67 -0
  17. package/dist/src/abis/dao-space-v2.test.js.map +1 -0
  18. package/dist/src/client/api.d.ts +86 -0
  19. package/dist/src/client/api.d.ts.map +1 -0
  20. package/dist/src/client/api.js +169 -0
  21. package/dist/src/client/api.js.map +1 -0
  22. package/dist/src/client/comments.d.ts +59 -0
  23. package/dist/src/client/comments.d.ts.map +1 -0
  24. package/dist/src/client/comments.js +96 -0
  25. package/dist/src/client/comments.js.map +1 -0
  26. package/dist/src/client/context.d.ts +20 -0
  27. package/dist/src/client/context.d.ts.map +1 -0
  28. package/dist/src/client/context.js +20 -0
  29. package/dist/src/client/context.js.map +1 -0
  30. package/dist/src/client/dao-spaces.d.ts +348 -0
  31. package/dist/src/client/dao-spaces.d.ts.map +1 -0
  32. package/dist/src/client/dao-spaces.js +494 -0
  33. package/dist/src/client/dao-spaces.js.map +1 -0
  34. package/dist/src/client/dao-spaces.test.d.ts +2 -0
  35. package/dist/src/client/dao-spaces.test.d.ts.map +1 -0
  36. package/dist/src/client/dao-spaces.test.js +263 -0
  37. package/dist/src/client/dao-spaces.test.js.map +1 -0
  38. package/dist/src/client/edits.d.ts +100 -0
  39. package/dist/src/client/edits.d.ts.map +1 -0
  40. package/dist/src/client/edits.js +131 -0
  41. package/dist/src/client/edits.js.map +1 -0
  42. package/dist/src/client/edits.test.d.ts +2 -0
  43. package/dist/src/client/edits.test.d.ts.map +1 -0
  44. package/dist/src/client/edits.test.js +98 -0
  45. package/dist/src/client/edits.test.js.map +1 -0
  46. package/dist/src/client/entities.d.ts +23 -0
  47. package/dist/src/client/entities.d.ts.map +1 -0
  48. package/dist/src/client/entities.js +88 -0
  49. package/dist/src/client/entities.js.map +1 -0
  50. package/dist/src/client/entity-votes.d.ts +141 -0
  51. package/dist/src/client/entity-votes.d.ts.map +1 -0
  52. package/dist/src/client/entity-votes.js +168 -0
  53. package/dist/src/client/entity-votes.js.map +1 -0
  54. package/dist/src/client/entity-votes.test.d.ts +2 -0
  55. package/dist/src/client/entity-votes.test.d.ts.map +1 -0
  56. package/dist/src/client/entity-votes.test.js +93 -0
  57. package/dist/src/client/entity-votes.test.js.map +1 -0
  58. package/dist/src/client/graph-workflows.test.d.ts +2 -0
  59. package/dist/src/client/graph-workflows.test.d.ts.map +1 -0
  60. package/dist/src/client/graph-workflows.test.js +83 -0
  61. package/dist/src/client/graph-workflows.test.js.map +1 -0
  62. package/dist/src/client/images-storage.test.d.ts +2 -0
  63. package/dist/src/client/images-storage.test.d.ts.map +1 -0
  64. package/dist/src/client/images-storage.test.js +52 -0
  65. package/dist/src/client/images-storage.test.js.map +1 -0
  66. package/dist/src/client/images.d.ts +35 -0
  67. package/dist/src/client/images.d.ts.map +1 -0
  68. package/dist/src/client/images.js +90 -0
  69. package/dist/src/client/images.js.map +1 -0
  70. package/dist/src/client/personal-spaces.d.ts +155 -0
  71. package/dist/src/client/personal-spaces.d.ts.map +1 -0
  72. package/dist/src/client/personal-spaces.js +198 -0
  73. package/dist/src/client/personal-spaces.js.map +1 -0
  74. package/dist/src/client/proposals.d.ts +185 -0
  75. package/dist/src/client/proposals.d.ts.map +1 -0
  76. package/dist/src/client/proposals.js +294 -0
  77. package/dist/src/client/proposals.js.map +1 -0
  78. package/dist/src/client/proposals.test.d.ts +2 -0
  79. package/dist/src/client/proposals.test.d.ts.map +1 -0
  80. package/dist/src/client/proposals.test.js +243 -0
  81. package/dist/src/client/proposals.test.js.map +1 -0
  82. package/dist/src/client/spaces.test.d.ts +2 -0
  83. package/dist/src/client/spaces.test.d.ts.map +1 -0
  84. package/dist/src/client/spaces.test.js +155 -0
  85. package/dist/src/client/spaces.test.js.map +1 -0
  86. package/dist/src/client/storage.d.ts +52 -0
  87. package/dist/src/client/storage.d.ts.map +1 -0
  88. package/dist/src/client/storage.js +53 -0
  89. package/dist/src/client/storage.js.map +1 -0
  90. package/dist/src/client.d.ts +325 -0
  91. package/dist/src/client.d.ts.map +1 -0
  92. package/dist/src/client.js +452 -0
  93. package/dist/src/client.js.map +1 -0
  94. package/dist/src/client.test.d.ts +2 -0
  95. package/dist/src/client.test.d.ts.map +1 -0
  96. package/dist/src/client.test.js +120 -0
  97. package/dist/src/client.test.js.map +1 -0
  98. package/dist/src/contracts-v2/abis.d.ts +196 -0
  99. package/dist/src/contracts-v2/abis.d.ts.map +1 -0
  100. package/dist/src/contracts-v2/abis.js +110 -0
  101. package/dist/src/contracts-v2/abis.js.map +1 -0
  102. package/dist/src/contracts-v2/actions.d.ts +56 -0
  103. package/dist/src/contracts-v2/actions.d.ts.map +1 -0
  104. package/dist/src/contracts-v2/actions.js +83 -0
  105. package/dist/src/contracts-v2/actions.js.map +1 -0
  106. package/dist/src/contracts-v2/encoding.d.ts +80 -0
  107. package/dist/src/contracts-v2/encoding.d.ts.map +1 -0
  108. package/dist/src/contracts-v2/encoding.js +193 -0
  109. package/dist/src/contracts-v2/encoding.js.map +1 -0
  110. package/dist/src/contracts-v2/encoding.test.d.ts +2 -0
  111. package/dist/src/contracts-v2/encoding.test.d.ts.map +1 -0
  112. package/dist/src/contracts-v2/encoding.test.js +93 -0
  113. package/dist/src/contracts-v2/encoding.test.js.map +1 -0
  114. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts +2 -0
  115. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts.map +1 -0
  116. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js +239 -0
  117. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js.map +1 -0
  118. package/dist/src/contracts-v2/voting-settings.d.ts +48 -0
  119. package/dist/src/contracts-v2/voting-settings.d.ts.map +1 -0
  120. package/dist/src/contracts-v2/voting-settings.js +69 -0
  121. package/dist/src/contracts-v2/voting-settings.js.map +1 -0
  122. package/dist/src/dao-space/constants.d.ts +6 -3
  123. package/dist/src/dao-space/constants.d.ts.map +1 -1
  124. package/dist/src/dao-space/constants.js +6 -5
  125. package/dist/src/dao-space/constants.js.map +1 -1
  126. package/dist/src/dao-space/create-space.d.ts +1 -31
  127. package/dist/src/dao-space/create-space.d.ts.map +1 -1
  128. package/dist/src/dao-space/create-space.js +5 -70
  129. package/dist/src/dao-space/create-space.js.map +1 -1
  130. package/dist/src/dao-space/execute-proposal.d.ts +1 -22
  131. package/dist/src/dao-space/execute-proposal.d.ts.map +1 -1
  132. package/dist/src/dao-space/execute-proposal.js +12 -59
  133. package/dist/src/dao-space/execute-proposal.js.map +1 -1
  134. package/dist/src/dao-space/propose-add-editor.test.js +1 -1
  135. package/dist/src/dao-space/propose-add-editor.test.js.map +1 -1
  136. package/dist/src/dao-space/propose-edit.d.ts +1 -30
  137. package/dist/src/dao-space/propose-edit.d.ts.map +1 -1
  138. package/dist/src/dao-space/propose-edit.js +12 -108
  139. package/dist/src/dao-space/propose-edit.js.map +1 -1
  140. package/dist/src/dao-space/propose-edit.test.js +8 -1
  141. package/dist/src/dao-space/propose-edit.test.js.map +1 -1
  142. package/dist/src/dao-space/propose-remove-editor.d.ts.map +1 -1
  143. package/dist/src/dao-space/propose-remove-editor.js +5 -5
  144. package/dist/src/dao-space/propose-remove-editor.js.map +1 -1
  145. package/dist/src/dao-space/propose-remove-editor.test.js +3 -8
  146. package/dist/src/dao-space/propose-remove-editor.test.js.map +1 -1
  147. package/dist/src/dao-space/propose-remove-member.d.ts.map +1 -1
  148. package/dist/src/dao-space/propose-remove-member.js +5 -5
  149. package/dist/src/dao-space/propose-remove-member.js.map +1 -1
  150. package/dist/src/dao-space/propose-request-membership.d.ts.map +1 -1
  151. package/dist/src/dao-space/propose-request-membership.js +4 -4
  152. package/dist/src/dao-space/propose-request-membership.js.map +1 -1
  153. package/dist/src/dao-space/propose-update-voting-settings.d.ts +8 -0
  154. package/dist/src/dao-space/propose-update-voting-settings.d.ts.map +1 -0
  155. package/dist/src/dao-space/propose-update-voting-settings.js +19 -0
  156. package/dist/src/dao-space/propose-update-voting-settings.js.map +1 -0
  157. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts +2 -0
  158. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts.map +1 -0
  159. package/dist/src/dao-space/propose-update-voting-settings.test.js +118 -0
  160. package/dist/src/dao-space/propose-update-voting-settings.test.js.map +1 -0
  161. package/dist/src/dao-space/vote-proposal.d.ts +1 -24
  162. package/dist/src/dao-space/vote-proposal.d.ts.map +1 -1
  163. package/dist/src/dao-space/vote-proposal.js +12 -64
  164. package/dist/src/dao-space/vote-proposal.js.map +1 -1
  165. package/dist/src/e2e/local-geobrowser.d.ts +9 -0
  166. package/dist/src/e2e/local-geobrowser.d.ts.map +1 -0
  167. package/dist/src/e2e/local-geobrowser.js +35 -0
  168. package/dist/src/e2e/local-geobrowser.js.map +1 -0
  169. package/dist/src/e2e/v2-contracts.test.d.ts +2 -0
  170. package/dist/src/e2e/v2-contracts.test.d.ts.map +1 -0
  171. package/dist/src/e2e/v2-contracts.test.js +25 -0
  172. package/dist/src/e2e/v2-contracts.test.js.map +1 -0
  173. package/dist/src/e2e-api-surface.test.d.ts +2 -0
  174. package/dist/src/e2e-api-surface.test.d.ts.map +1 -0
  175. package/dist/src/e2e-api-surface.test.js +1021 -0
  176. package/dist/src/e2e-api-surface.test.js.map +1 -0
  177. package/dist/src/e2e-flows.test.d.ts +2 -0
  178. package/dist/src/e2e-flows.test.d.ts.map +1 -0
  179. package/dist/src/e2e-flows.test.js +445 -0
  180. package/dist/src/e2e-flows.test.js.map +1 -0
  181. package/dist/src/e2e-legacy-api-surface.test.d.ts +2 -0
  182. package/dist/src/e2e-legacy-api-surface.test.d.ts.map +1 -0
  183. package/dist/src/e2e-legacy-api-surface.test.js +840 -0
  184. package/dist/src/e2e-legacy-api-surface.test.js.map +1 -0
  185. package/dist/src/encoding.d.ts +3 -0
  186. package/dist/src/encoding.d.ts.map +1 -1
  187. package/dist/src/encoding.js +3 -0
  188. package/dist/src/encoding.js.map +1 -1
  189. package/dist/src/encodings/get-create-dao-space-calldata.d.ts +3 -89
  190. package/dist/src/encodings/get-create-dao-space-calldata.d.ts.map +1 -1
  191. package/dist/src/encodings/get-create-dao-space-calldata.js +5 -95
  192. package/dist/src/encodings/get-create-dao-space-calldata.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/graph/comment-utils.d.ts +4 -0
  198. package/dist/src/graph/comment-utils.d.ts.map +1 -1
  199. package/dist/src/graph/comment-utils.js +4 -0
  200. package/dist/src/graph/comment-utils.js.map +1 -1
  201. package/dist/src/graph/constants.d.ts +12 -3
  202. package/dist/src/graph/constants.d.ts.map +1 -1
  203. package/dist/src/graph/constants.js +11 -5
  204. package/dist/src/graph/constants.js.map +1 -1
  205. package/dist/src/graph/create-comment.d.ts +3 -22
  206. package/dist/src/graph/create-comment.d.ts.map +1 -1
  207. package/dist/src/graph/create-comment.js +6 -136
  208. package/dist/src/graph/create-comment.js.map +1 -1
  209. package/dist/src/graph/create-comment.test.js +19 -8
  210. package/dist/src/graph/create-comment.test.js.map +1 -1
  211. package/dist/src/graph/create-entity.d.ts +2 -0
  212. package/dist/src/graph/create-entity.d.ts.map +1 -1
  213. package/dist/src/graph/create-entity.js +2 -0
  214. package/dist/src/graph/create-entity.js.map +1 -1
  215. package/dist/src/graph/create-image.d.ts +2 -21
  216. package/dist/src/graph/create-image.d.ts.map +1 -1
  217. package/dist/src/graph/create-image.js +7 -69
  218. package/dist/src/graph/create-image.js.map +1 -1
  219. package/dist/src/graph/create-property.d.ts +2 -0
  220. package/dist/src/graph/create-property.d.ts.map +1 -1
  221. package/dist/src/graph/create-property.js +2 -0
  222. package/dist/src/graph/create-property.js.map +1 -1
  223. package/dist/src/graph/create-proposal-review.d.ts +1 -27
  224. package/dist/src/graph/create-proposal-review.d.ts.map +1 -1
  225. package/dist/src/graph/create-proposal-review.js +4 -61
  226. package/dist/src/graph/create-proposal-review.js.map +1 -1
  227. package/dist/src/graph/create-relation.d.ts +2 -0
  228. package/dist/src/graph/create-relation.d.ts.map +1 -1
  229. package/dist/src/graph/create-relation.js +2 -0
  230. package/dist/src/graph/create-relation.js.map +1 -1
  231. package/dist/src/graph/create-type.d.ts +2 -0
  232. package/dist/src/graph/create-type.d.ts.map +1 -1
  233. package/dist/src/graph/create-type.js +2 -0
  234. package/dist/src/graph/create-type.js.map +1 -1
  235. package/dist/src/graph/delete-entity.d.ts +2 -14
  236. package/dist/src/graph/delete-entity.d.ts.map +1 -1
  237. package/dist/src/graph/delete-entity.js +5 -78
  238. package/dist/src/graph/delete-entity.js.map +1 -1
  239. package/dist/src/graph/delete-entity.test.js +7 -0
  240. package/dist/src/graph/delete-entity.test.js.map +1 -1
  241. package/dist/src/graph/delete-relation.d.ts +2 -0
  242. package/dist/src/graph/delete-relation.d.ts.map +1 -1
  243. package/dist/src/graph/delete-relation.js +2 -0
  244. package/dist/src/graph/delete-relation.js.map +1 -1
  245. package/dist/src/graph/entity-vote.d.ts +37 -0
  246. package/dist/src/graph/entity-vote.d.ts.map +1 -0
  247. package/dist/src/graph/entity-vote.js +44 -0
  248. package/dist/src/graph/entity-vote.js.map +1 -0
  249. package/dist/src/graph/entity-vote.test.d.ts +2 -0
  250. package/dist/src/graph/entity-vote.test.d.ts.map +1 -0
  251. package/dist/src/graph/entity-vote.test.js +123 -0
  252. package/dist/src/graph/entity-vote.test.js.map +1 -0
  253. package/dist/src/graph/index.d.ts +1 -0
  254. package/dist/src/graph/index.d.ts.map +1 -1
  255. package/dist/src/graph/index.js +1 -0
  256. package/dist/src/graph/index.js.map +1 -1
  257. package/dist/src/graph/update-comment.d.ts +3 -0
  258. package/dist/src/graph/update-comment.d.ts.map +1 -1
  259. package/dist/src/graph/update-comment.js +3 -0
  260. package/dist/src/graph/update-comment.js.map +1 -1
  261. package/dist/src/graph/update-entity.d.ts +2 -0
  262. package/dist/src/graph/update-entity.d.ts.map +1 -1
  263. package/dist/src/graph/update-entity.js +2 -0
  264. package/dist/src/graph/update-entity.js.map +1 -1
  265. package/dist/src/graph/update-proposal-review.d.ts +2 -27
  266. package/dist/src/graph/update-proposal-review.d.ts.map +1 -1
  267. package/dist/src/graph/update-proposal-review.js +4 -50
  268. package/dist/src/graph/update-proposal-review.js.map +1 -1
  269. package/dist/src/graph/update-relation.d.ts +2 -0
  270. package/dist/src/graph/update-relation.d.ts.map +1 -1
  271. package/dist/src/graph/update-relation.js +2 -0
  272. package/dist/src/graph/update-relation.js.map +1 -1
  273. package/dist/src/ipfs-core.d.ts +42 -0
  274. package/dist/src/ipfs-core.d.ts.map +1 -0
  275. package/dist/src/ipfs-core.js +165 -0
  276. package/dist/src/ipfs-core.js.map +1 -0
  277. package/dist/src/ipfs-core.test.d.ts +2 -0
  278. package/dist/src/ipfs-core.test.d.ts.map +1 -0
  279. package/dist/src/ipfs-core.test.js +56 -0
  280. package/dist/src/ipfs-core.test.js.map +1 -0
  281. package/dist/src/ipfs.d.ts +7 -52
  282. package/dist/src/ipfs.d.ts.map +1 -1
  283. package/dist/src/ipfs.js +27 -170
  284. package/dist/src/ipfs.js.map +1 -1
  285. package/dist/src/networks.d.ts +46 -0
  286. package/dist/src/networks.d.ts.map +1 -0
  287. package/dist/src/networks.js +90 -0
  288. package/dist/src/networks.js.map +1 -0
  289. package/dist/src/ops/comments.d.ts +80 -0
  290. package/dist/src/ops/comments.d.ts.map +1 -0
  291. package/dist/src/ops/comments.js +142 -0
  292. package/dist/src/ops/comments.js.map +1 -0
  293. package/dist/src/ops/entities.d.ts +50 -0
  294. package/dist/src/ops/entities.d.ts.map +1 -0
  295. package/dist/src/ops/entities.js +51 -0
  296. package/dist/src/ops/entities.js.map +1 -0
  297. package/dist/src/ops/images.d.ts +37 -0
  298. package/dist/src/ops/images.d.ts.map +1 -0
  299. package/dist/src/ops/images.js +69 -0
  300. package/dist/src/ops/images.js.map +1 -0
  301. package/dist/src/ops/index.d.ts +7 -0
  302. package/dist/src/ops/index.d.ts.map +1 -0
  303. package/dist/src/ops/index.js +7 -0
  304. package/dist/src/ops/index.js.map +1 -0
  305. package/dist/src/ops/index.test.d.ts +2 -0
  306. package/dist/src/ops/index.test.d.ts.map +1 -0
  307. package/dist/src/ops/index.test.js +115 -0
  308. package/dist/src/ops/index.test.js.map +1 -0
  309. package/dist/src/ops/properties.d.ts +20 -0
  310. package/dist/src/ops/properties.d.ts.map +1 -0
  311. package/dist/src/ops/properties.js +20 -0
  312. package/dist/src/ops/properties.js.map +1 -0
  313. package/dist/src/ops/proposal-reviews.d.ts +43 -0
  314. package/dist/src/ops/proposal-reviews.d.ts.map +1 -0
  315. package/dist/src/ops/proposal-reviews.js +103 -0
  316. package/dist/src/ops/proposal-reviews.js.map +1 -0
  317. package/dist/src/ops/relations.d.ts +57 -0
  318. package/dist/src/ops/relations.d.ts.map +1 -0
  319. package/dist/src/ops/relations.js +59 -0
  320. package/dist/src/ops/relations.js.map +1 -0
  321. package/dist/src/ops/types.d.ts +20 -0
  322. package/dist/src/ops/types.d.ts.map +1 -0
  323. package/dist/src/ops/types.js +20 -0
  324. package/dist/src/ops/types.js.map +1 -0
  325. package/dist/src/personal-space/constants.d.ts +1 -0
  326. package/dist/src/personal-space/constants.d.ts.map +1 -1
  327. package/dist/src/personal-space/constants.js +1 -0
  328. package/dist/src/personal-space/constants.js.map +1 -1
  329. package/dist/src/personal-space/create-space.d.ts +1 -18
  330. package/dist/src/personal-space/create-space.d.ts.map +1 -1
  331. package/dist/src/personal-space/create-space.js +1 -18
  332. package/dist/src/personal-space/create-space.js.map +1 -1
  333. package/dist/src/personal-space/has-space.d.ts +9 -2
  334. package/dist/src/personal-space/has-space.d.ts.map +1 -1
  335. package/dist/src/personal-space/has-space.js +9 -13
  336. package/dist/src/personal-space/has-space.js.map +1 -1
  337. package/dist/src/personal-space/has-space.test.d.ts +2 -0
  338. package/dist/src/personal-space/has-space.test.d.ts.map +1 -0
  339. package/dist/src/personal-space/has-space.test.js +30 -0
  340. package/dist/src/personal-space/has-space.test.js.map +1 -0
  341. package/dist/src/personal-space/publish-edit.d.ts +1 -22
  342. package/dist/src/personal-space/publish-edit.d.ts.map +1 -1
  343. package/dist/src/personal-space/publish-edit.js +10 -64
  344. package/dist/src/personal-space/publish-edit.js.map +1 -1
  345. package/dist/src/smart-wallet.d.ts +2 -4
  346. package/dist/src/smart-wallet.d.ts.map +1 -1
  347. package/dist/src/smart-wallet.js +6 -9
  348. package/dist/src/smart-wallet.js.map +1 -1
  349. package/dist/src/types.d.ts +25 -0
  350. package/dist/src/types.d.ts.map +1 -1
  351. package/dist/src/types.js.map +1 -1
  352. package/package.json +14 -1
@@ -0,0 +1,452 @@
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
+ * Checks whether an address already has a personal space.
230
+ *
231
+ * @example
232
+ * ```ts
233
+ * const hasExistingSpace = await geo.personalSpaces.hasSpace({
234
+ * address: account.address,
235
+ * });
236
+ * ```
237
+ */
238
+ hasSpace: (params) => PersonalSpaces.hasSpace(context, params),
239
+ /**
240
+ * Publishes an edit and returns calldata for submitting it to a personal space.
241
+ *
242
+ * @example
243
+ * ```ts
244
+ * const tx = await geo.personalSpaces.publishEdit({
245
+ * name: 'Create entity',
246
+ * spaceId,
247
+ * author: spaceId,
248
+ * ops,
249
+ * });
250
+ * ```
251
+ */
252
+ publishEdit: (params) => PersonalSpaces.publishEdit(context, params),
253
+ },
254
+ /** DAO-space transaction helpers. */
255
+ daoSpaces: {
256
+ /**
257
+ * Publishes the initial DAO edit and returns calldata for creating a DAO space.
258
+ *
259
+ * @example
260
+ * ```ts
261
+ * const tx = await geo.daoSpaces.create({
262
+ * name: 'Research DAO',
263
+ * author: authorSpaceId,
264
+ * initialEditorSpaceIds: [authorSpaceId],
265
+ * votingSettings: {
266
+ * slowPathPercentageThreshold: 50,
267
+ * fastPathFlatThreshold: 1,
268
+ * quorum: 1,
269
+ * durationInDays: 2,
270
+ * },
271
+ * });
272
+ * ```
273
+ */
274
+ create: (params) => DaoSpaces.create(context, params),
275
+ /**
276
+ * Publishes an edit and wraps it in a DAO-space proposal action.
277
+ *
278
+ * @example
279
+ * ```ts
280
+ * const proposal = await geo.daoSpaces.proposeEdit({
281
+ * name: 'Publish edit',
282
+ * ops,
283
+ * author: authorSpaceId,
284
+ * daoSpaceAddress,
285
+ * callerSpaceId: authorSpaceId,
286
+ * daoSpaceId,
287
+ * });
288
+ * ```
289
+ */
290
+ proposeEdit: (params) => DaoSpaces.proposeEdit(context, params),
291
+ /**
292
+ * Builds calldata for a DAO proposal that adds a member.
293
+ *
294
+ * @example
295
+ * ```ts
296
+ * const tx = geo.daoSpaces.proposeAddMember({
297
+ * authorSpaceId,
298
+ * spaceId: daoSpaceId,
299
+ * daoSpaceAddress,
300
+ * newMemberSpaceId: memberSpaceId,
301
+ * });
302
+ * ```
303
+ */
304
+ proposeAddMember: (params) => DaoSpaces.proposeAddMember(context, params),
305
+ /**
306
+ * Builds calldata for a DAO proposal that removes a member.
307
+ *
308
+ * @example
309
+ * ```ts
310
+ * const tx = geo.daoSpaces.proposeRemoveMember({
311
+ * authorSpaceId,
312
+ * spaceId: daoSpaceId,
313
+ * daoSpaceAddress,
314
+ * memberToRemoveSpaceId,
315
+ * });
316
+ * ```
317
+ */
318
+ proposeRemoveMember: (params) => DaoSpaces.proposeRemoveMember(context, params),
319
+ /**
320
+ * Builds calldata for a DAO proposal that adds an editor.
321
+ *
322
+ * @example
323
+ * ```ts
324
+ * const tx = geo.daoSpaces.proposeAddEditor({
325
+ * authorSpaceId,
326
+ * spaceId: daoSpaceId,
327
+ * daoSpaceAddress,
328
+ * newEditorSpaceId: editorSpaceId,
329
+ * });
330
+ * ```
331
+ */
332
+ proposeAddEditor: (params) => DaoSpaces.proposeAddEditor(context, params),
333
+ /**
334
+ * Builds calldata for a DAO proposal that removes an editor.
335
+ *
336
+ * @example
337
+ * ```ts
338
+ * const tx = geo.daoSpaces.proposeRemoveEditor({
339
+ * authorSpaceId,
340
+ * spaceId: daoSpaceId,
341
+ * daoSpaceAddress,
342
+ * editorToRemoveSpaceId,
343
+ * });
344
+ * ```
345
+ */
346
+ proposeRemoveEditor: (params) => DaoSpaces.proposeRemoveEditor(context, params),
347
+ /**
348
+ * Builds calldata for requesting membership in a DAO space.
349
+ *
350
+ * @example
351
+ * ```ts
352
+ * const tx = geo.daoSpaces.proposeRequestMembership({
353
+ * authorSpaceId: requesterSpaceId,
354
+ * spaceId: daoSpaceId,
355
+ * });
356
+ * ```
357
+ */
358
+ proposeRequestMembership: (params) => DaoSpaces.proposeRequestMembership(context, params),
359
+ /** DAO-scoped low-level proposal helpers. */
360
+ proposals: {
361
+ /**
362
+ * Builds calldata for creating a DAO proposal from prebuilt actions.
363
+ *
364
+ * @example
365
+ * ```ts
366
+ * const action = geo.daoSpaces.proposals.actions.addMember(daoSpaceAddress, memberSpaceId);
367
+ * const tx = geo.daoSpaces.proposals.create({
368
+ * fromSpaceId: authorSpaceId,
369
+ * daoSpaceId,
370
+ * actions: [action],
371
+ * });
372
+ * ```
373
+ */
374
+ create: (params) => DaoSpaces.createProposal(context, params),
375
+ /**
376
+ * Builds calldata for voting on a DAO proposal.
377
+ *
378
+ * @example
379
+ * ```ts
380
+ * const tx = geo.daoSpaces.proposals.vote({
381
+ * authorSpaceId,
382
+ * spaceId: daoSpaceId,
383
+ * proposalId,
384
+ * vote: 'YES',
385
+ * });
386
+ * ```
387
+ */
388
+ vote: (params) => DaoSpaces.voteProposal(context, params),
389
+ /**
390
+ * Builds calldata for executing a passed DAO proposal.
391
+ *
392
+ * @example
393
+ * ```ts
394
+ * const tx = geo.daoSpaces.proposals.execute({
395
+ * authorSpaceId,
396
+ * spaceId: daoSpaceId,
397
+ * proposalId,
398
+ * });
399
+ * ```
400
+ */
401
+ execute: (params) => DaoSpaces.executeProposal(context, params),
402
+ /**
403
+ * Helpers for constructing DAO proposal actions.
404
+ *
405
+ * @example
406
+ * ```ts
407
+ * const actions = [
408
+ * geo.daoSpaces.proposals.actions.addEditor(daoSpaceAddress, editorSpaceId),
409
+ * geo.daoSpaces.proposals.actions.updateVotingSettings(daoSpaceAddress, votingSettings),
410
+ * ];
411
+ * ```
412
+ */
413
+ actions: DaoSpaces.actions,
414
+ },
415
+ },
416
+ /** Entity vote transaction helpers. */
417
+ entityVotes: {
418
+ /**
419
+ * Builds calldata for upvoting an entity.
420
+ *
421
+ * @example
422
+ * ```ts
423
+ * const tx = geo.entityVotes.upvote({
424
+ * authorSpaceId,
425
+ * spaceId,
426
+ * entityId,
427
+ * });
428
+ * ```
429
+ */
430
+ upvote: (params) => EntityVotes.upvote(context, params),
431
+ /**
432
+ * Builds calldata for downvoting an entity.
433
+ *
434
+ * @example
435
+ * ```ts
436
+ * const tx = geo.entityVotes.downvote({ authorSpaceId, spaceId, entityId });
437
+ * ```
438
+ */
439
+ downvote: (params) => EntityVotes.downvote(context, params),
440
+ /**
441
+ * Builds calldata for withdrawing an entity vote.
442
+ *
443
+ * @example
444
+ * ```ts
445
+ * const tx = geo.entityVotes.withdraw({ authorSpaceId, spaceId, entityId });
446
+ * ```
447
+ */
448
+ withdraw: (params) => EntityVotes.withdraw(context, params),
449
+ },
450
+ };
451
+ }
452
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -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,120 @@
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
+ 'proposeRequestMembership',
43
+ 'proposals',
44
+ ]);
45
+ });
46
+ it('requires an explicit network config', () => {
47
+ expect(() => createGeoClient(undefined)).toThrow('requires a Geo network config');
48
+ });
49
+ it('rejects string network IDs', () => {
50
+ expect(() => createGeoClient({ network: 'TESTNET' })).toThrow('requires a full Geo network config');
51
+ });
52
+ it('allows sync calldata helpers without global fetch', () => {
53
+ const originalFetch = globalThis.fetch;
54
+ vi.stubGlobal('fetch', undefined);
55
+ try {
56
+ const geo = createGeoClient({ network: GeoTestnetConfig });
57
+ const result = geo.personalSpaces.create({
58
+ name: 'Test Space',
59
+ accountAddress: '0x1234567890123456789012345678901234567890',
60
+ });
61
+ expect(result.calldata).toMatch(/^0x/);
62
+ }
63
+ finally {
64
+ vi.stubGlobal('fetch', originalFetch);
65
+ }
66
+ });
67
+ it('validates required contracts before upload-backed workflows', async () => {
68
+ const fetch = vi.fn();
69
+ const geo = createGeoClient({
70
+ network: defineGeoNetworkConfig({
71
+ id: 'LOCAL',
72
+ name: 'Local Geo',
73
+ apiOrigin: 'http://localhost:3000',
74
+ contracts: {
75
+ SPACE_REGISTRY_ADDRESS: '0x0000000000000000000000000000000000000001',
76
+ },
77
+ }),
78
+ fetch,
79
+ });
80
+ await expect(geo.daoSpaces.create({
81
+ name: 'Test DAO',
82
+ author: '5cade5757ecd41ae83481b22ffc2f94e',
83
+ votingSettings: {
84
+ slowPathPercentageThreshold: 50,
85
+ fastPathFlatThreshold: 1,
86
+ quorum: 1,
87
+ durationInDays: 2,
88
+ },
89
+ initialEditorSpaceIds: ['0x11111111111111111111111111111111'],
90
+ })).rejects.toThrow('DAO_SPACE_FACTORY_ADDRESS');
91
+ expect(fetch).not.toHaveBeenCalled();
92
+ });
93
+ it('uses configured fetch and registry address for personal space edit publishing', async () => {
94
+ const fetch = vi
95
+ .fn()
96
+ .mockResolvedValue(new Response(JSON.stringify({ cid: 'ipfs://bafkreigwfjixq5cm3s4youhshorkpqh3ykpviyv76c2ei6gaalujtlqz5i' })));
97
+ const geo = createGeoClient({ network: customNetwork(), fetch });
98
+ const { ops } = Ops.entities.create({ name: 'Test Entity' });
99
+ const result = await geo.personalSpaces.publishEdit({
100
+ name: 'Test Edit',
101
+ spaceId: '0eed5491b917cf58b33ac81255fe7ae9',
102
+ ops,
103
+ author: '5cade5757ecd41ae83481b22ffc2f94e',
104
+ });
105
+ expect(result.to).toBe('0x0000000000000000000000000000000000000001');
106
+ expect(result.cid).toBe('ipfs://bafkreigwfjixq5cm3s4youhshorkpqh3ykpviyv76c2ei6gaalujtlqz5i');
107
+ expect(fetch).toHaveBeenCalledWith('http://localhost:3000/ipfs/upload-edit', expect.objectContaining({ method: 'POST' }));
108
+ });
109
+ it('uses configured registry address for entity votes without fetch', () => {
110
+ const geo = createGeoClient({ network: customNetwork() });
111
+ const result = geo.entityVotes.upvote({
112
+ authorSpaceId: '0eed5491b917cf58b33ac81255fe7ae9',
113
+ spaceId: 'abcdef12345678901234567890abcdef',
114
+ entityId: '11111111111111111111111111111111',
115
+ });
116
+ expect(result.to).toBe('0x0000000000000000000000000000000000000001');
117
+ expect(result.calldata).toMatch(/^0x/);
118
+ });
119
+ });
120
+ //# 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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"}