@ixo/openhands-sdk 0.3.0 → 0.4.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 (487) hide show
  1. package/dist/cjs/campaign/campaign.js +3 -2
  2. package/dist/cjs/campaign/campaign.js.map +1 -1
  3. package/dist/cjs/campaign/funding.d.ts.map +1 -1
  4. package/dist/cjs/campaign/funding.js +4 -1
  5. package/dist/cjs/campaign/funding.js.map +1 -1
  6. package/dist/cjs/campaign/pool.d.ts.map +1 -1
  7. package/dist/cjs/campaign/pool.js +4 -3
  8. package/dist/cjs/campaign/pool.js.map +1 -1
  9. package/dist/cjs/campaign/record.d.ts.map +1 -1
  10. package/dist/cjs/campaign/record.js +1 -1
  11. package/dist/cjs/campaign/record.js.map +1 -1
  12. package/dist/cjs/campaign/spots.d.ts.map +1 -1
  13. package/dist/cjs/campaign/spots.js +10 -8
  14. package/dist/cjs/campaign/spots.js.map +1 -1
  15. package/dist/cjs/campaign/treasurySends.d.ts.map +1 -1
  16. package/dist/cjs/campaign/treasurySends.js +3 -3
  17. package/dist/cjs/campaign/treasurySends.js.map +1 -1
  18. package/dist/cjs/chain/ask.d.ts +104 -14
  19. package/dist/cjs/chain/ask.d.ts.map +1 -1
  20. package/dist/cjs/chain/ask.js +151 -78
  21. package/dist/cjs/chain/ask.js.map +1 -1
  22. package/dist/cjs/chain/askImage.d.ts +19 -0
  23. package/dist/cjs/chain/askImage.d.ts.map +1 -0
  24. package/dist/cjs/chain/askImage.js +56 -0
  25. package/dist/cjs/chain/askImage.js.map +1 -0
  26. package/dist/cjs/chain/bridge.d.ts +7 -33
  27. package/dist/cjs/chain/bridge.d.ts.map +1 -1
  28. package/dist/cjs/chain/bridge.js +10 -25
  29. package/dist/cjs/chain/bridge.js.map +1 -1
  30. package/dist/cjs/chain/claimSubmit.d.ts +15 -0
  31. package/dist/cjs/chain/claimSubmit.d.ts.map +1 -0
  32. package/dist/cjs/chain/claimSubmit.js +14 -0
  33. package/dist/cjs/chain/claimSubmit.js.map +1 -0
  34. package/dist/cjs/chain/delegate.d.ts +52 -7
  35. package/dist/cjs/chain/delegate.d.ts.map +1 -1
  36. package/dist/cjs/chain/delegate.js +66 -14
  37. package/dist/cjs/chain/delegate.js.map +1 -1
  38. package/dist/cjs/chain/domainIndexer.d.ts +26 -0
  39. package/dist/cjs/chain/domainIndexer.d.ts.map +1 -0
  40. package/dist/cjs/chain/domainIndexer.js +51 -0
  41. package/dist/cjs/chain/domainIndexer.js.map +1 -0
  42. package/dist/cjs/chain/entityShape.d.ts +31 -2
  43. package/dist/cjs/chain/entityShape.d.ts.map +1 -1
  44. package/dist/cjs/chain/entityShape.js +71 -8
  45. package/dist/cjs/chain/entityShape.js.map +1 -1
  46. package/dist/cjs/chain/env.d.ts +33 -3
  47. package/dist/cjs/chain/env.d.ts.map +1 -1
  48. package/dist/cjs/chain/env.js +38 -6
  49. package/dist/cjs/chain/env.js.map +1 -1
  50. package/dist/cjs/chain/guest.d.ts +14 -0
  51. package/dist/cjs/chain/guest.d.ts.map +1 -1
  52. package/dist/cjs/chain/guest.js +9 -9
  53. package/dist/cjs/chain/guest.js.map +1 -1
  54. package/dist/cjs/chain/money.d.ts +53 -2
  55. package/dist/cjs/chain/money.d.ts.map +1 -1
  56. package/dist/cjs/chain/money.js +73 -6
  57. package/dist/cjs/chain/money.js.map +1 -1
  58. package/dist/cjs/chain/orgReviewBilling.d.ts +124 -0
  59. package/dist/cjs/chain/orgReviewBilling.d.ts.map +1 -0
  60. package/dist/cjs/chain/orgReviewBilling.js +290 -0
  61. package/dist/cjs/chain/orgReviewBilling.js.map +1 -0
  62. package/dist/cjs/chain/orgReviewBillingSign.d.ts +63 -0
  63. package/dist/cjs/chain/orgReviewBillingSign.d.ts.map +1 -0
  64. package/dist/cjs/chain/orgReviewBillingSign.js +166 -0
  65. package/dist/cjs/chain/orgReviewBillingSign.js.map +1 -0
  66. package/dist/cjs/chain/payoutSettings.d.ts +97 -0
  67. package/dist/cjs/chain/payoutSettings.d.ts.map +1 -0
  68. package/dist/cjs/chain/payoutSettings.js +123 -0
  69. package/dist/cjs/chain/payoutSettings.js.map +1 -0
  70. package/dist/cjs/chain/payoutTerms.d.ts +72 -0
  71. package/dist/cjs/chain/payoutTerms.d.ts.map +1 -0
  72. package/dist/cjs/chain/payoutTerms.js +141 -0
  73. package/dist/cjs/chain/payoutTerms.js.map +1 -0
  74. package/dist/cjs/chain/query.d.ts +14 -0
  75. package/dist/cjs/chain/query.d.ts.map +1 -1
  76. package/dist/cjs/chain/query.js +27 -0
  77. package/dist/cjs/chain/query.js.map +1 -1
  78. package/dist/cjs/chain/reviewBilling.d.ts +86 -0
  79. package/dist/cjs/chain/reviewBilling.d.ts.map +1 -0
  80. package/dist/cjs/chain/reviewBilling.js +265 -0
  81. package/dist/cjs/chain/reviewBilling.js.map +1 -0
  82. package/dist/cjs/chain/store.d.ts +7 -6
  83. package/dist/cjs/chain/store.d.ts.map +1 -1
  84. package/dist/cjs/chain/store.js +7 -6
  85. package/dist/cjs/chain/store.js.map +1 -1
  86. package/dist/cjs/chain/subscription.d.ts +0 -7
  87. package/dist/cjs/chain/subscription.d.ts.map +1 -1
  88. package/dist/cjs/chain/subscription.js +4 -47
  89. package/dist/cjs/chain/subscription.js.map +1 -1
  90. package/dist/cjs/chain/takeBack.d.ts +12 -0
  91. package/dist/cjs/chain/takeBack.d.ts.map +1 -1
  92. package/dist/cjs/chain/takeBack.js +24 -10
  93. package/dist/cjs/chain/takeBack.js.map +1 -1
  94. package/dist/cjs/chain/why.d.ts +44 -0
  95. package/dist/cjs/chain/why.d.ts.map +1 -0
  96. package/dist/cjs/chain/why.js +153 -0
  97. package/dist/cjs/chain/why.js.map +1 -0
  98. package/dist/cjs/chain/whyMint.d.ts +8 -0
  99. package/dist/cjs/chain/whyMint.d.ts.map +1 -0
  100. package/dist/cjs/chain/whyMint.js +53 -0
  101. package/dist/cjs/chain/whyMint.js.map +1 -0
  102. package/dist/cjs/chain.d.ts +8 -4
  103. package/dist/cjs/chain.d.ts.map +1 -1
  104. package/dist/cjs/chain.js +21 -9
  105. package/dist/cjs/chain.js.map +1 -1
  106. package/dist/cjs/config.d.ts +11 -5
  107. package/dist/cjs/config.d.ts.map +1 -1
  108. package/dist/cjs/config.js +2 -0
  109. package/dist/cjs/config.js.map +1 -1
  110. package/dist/cjs/data/askEntity.d.ts +40 -0
  111. package/dist/cjs/data/askEntity.d.ts.map +1 -0
  112. package/dist/cjs/data/askEntity.js +48 -0
  113. package/dist/cjs/data/askEntity.js.map +1 -0
  114. package/dist/cjs/data/askLinks.d.ts +6 -0
  115. package/dist/cjs/data/askLinks.d.ts.map +1 -0
  116. package/dist/cjs/data/askLinks.js +21 -0
  117. package/dist/cjs/data/askLinks.js.map +1 -0
  118. package/dist/cjs/data/board/assemble.d.ts.map +1 -1
  119. package/dist/cjs/data/board/assemble.js +15 -2
  120. package/dist/cjs/data/board/assemble.js.map +1 -1
  121. package/dist/cjs/data/board/facts.d.ts +11 -0
  122. package/dist/cjs/data/board/facts.d.ts.map +1 -1
  123. package/dist/cjs/data/board/facts.js +16 -0
  124. package/dist/cjs/data/board/facts.js.map +1 -1
  125. package/dist/cjs/data/board/read.d.ts.map +1 -1
  126. package/dist/cjs/data/board/read.js +2 -1
  127. package/dist/cjs/data/board/read.js.map +1 -1
  128. package/dist/cjs/data/board/types.d.ts +9 -0
  129. package/dist/cjs/data/board/types.d.ts.map +1 -1
  130. package/dist/cjs/data/board/types.js.map +1 -1
  131. package/dist/cjs/data/docs.d.ts +10 -2
  132. package/dist/cjs/data/docs.d.ts.map +1 -1
  133. package/dist/cjs/data/docs.js +43 -3
  134. package/dist/cjs/data/docs.js.map +1 -1
  135. package/dist/cjs/data/format.js +1 -1
  136. package/dist/cjs/data/format.js.map +1 -1
  137. package/dist/cjs/data/install.d.ts +43 -2
  138. package/dist/cjs/data/install.d.ts.map +1 -1
  139. package/dist/cjs/data/install.js +60 -10
  140. package/dist/cjs/data/install.js.map +1 -1
  141. package/dist/cjs/data/oracleInfo.d.ts +6 -1
  142. package/dist/cjs/data/oracleInfo.d.ts.map +1 -1
  143. package/dist/cjs/data/oracleInfo.js +22 -3
  144. package/dist/cjs/data/oracleInfo.js.map +1 -1
  145. package/dist/cjs/data/oracles.d.ts +62 -5
  146. package/dist/cjs/data/oracles.d.ts.map +1 -1
  147. package/dist/cjs/data/oracles.js +90 -11
  148. package/dist/cjs/data/oracles.js.map +1 -1
  149. package/dist/cjs/data/orgPayouts.d.ts +87 -0
  150. package/dist/cjs/data/orgPayouts.d.ts.map +1 -0
  151. package/dist/cjs/data/orgPayouts.js +183 -0
  152. package/dist/cjs/data/orgPayouts.js.map +1 -0
  153. package/dist/cjs/data/plans.d.ts +8 -0
  154. package/dist/cjs/data/plans.d.ts.map +1 -0
  155. package/dist/cjs/data/plans.js +12 -0
  156. package/dist/cjs/data/plans.js.map +1 -0
  157. package/dist/cjs/data/profiles.d.ts +20 -0
  158. package/dist/cjs/data/profiles.d.ts.map +1 -1
  159. package/dist/cjs/data/profiles.js +63 -4
  160. package/dist/cjs/data/profiles.js.map +1 -1
  161. package/dist/cjs/data/receipt.d.ts +7 -0
  162. package/dist/cjs/data/receipt.d.ts.map +1 -1
  163. package/dist/cjs/data/receipt.js +19 -4
  164. package/dist/cjs/data/receipt.js.map +1 -1
  165. package/dist/cjs/data/resources.d.ts +3 -0
  166. package/dist/cjs/data/resources.d.ts.map +1 -1
  167. package/dist/cjs/data/resources.js +4 -1
  168. package/dist/cjs/data/resources.js.map +1 -1
  169. package/dist/cjs/data/threads.d.ts +14 -0
  170. package/dist/cjs/data/threads.d.ts.map +1 -1
  171. package/dist/cjs/data/threads.js +32 -20
  172. package/dist/cjs/data/threads.js.map +1 -1
  173. package/dist/cjs/data/trace.d.ts +8 -0
  174. package/dist/cjs/data/trace.d.ts.map +1 -1
  175. package/dist/cjs/data/trace.js +1 -1
  176. package/dist/cjs/data/trace.js.map +1 -1
  177. package/dist/cjs/data/traceWords.d.ts +4 -1
  178. package/dist/cjs/data/traceWords.d.ts.map +1 -1
  179. package/dist/cjs/data/traceWords.js +8 -2
  180. package/dist/cjs/data/traceWords.js.map +1 -1
  181. package/dist/cjs/data/why.d.ts +38 -0
  182. package/dist/cjs/data/why.d.ts.map +1 -0
  183. package/dist/cjs/data/why.js +86 -0
  184. package/dist/cjs/data/why.js.map +1 -0
  185. package/dist/cjs/data/whyReceipt.d.ts +33 -0
  186. package/dist/cjs/data/whyReceipt.d.ts.map +1 -0
  187. package/dist/cjs/data/whyReceipt.js +291 -0
  188. package/dist/cjs/data/whyReceipt.js.map +1 -0
  189. package/dist/cjs/geo/exifcarry.d.ts +9 -0
  190. package/dist/cjs/geo/exifcarry.d.ts.map +1 -1
  191. package/dist/cjs/geo/exifcarry.js +35 -0
  192. package/dist/cjs/geo/exifcarry.js.map +1 -1
  193. package/dist/cjs/geo/geohash.d.ts +11 -0
  194. package/dist/cjs/geo/geohash.d.ts.map +1 -1
  195. package/dist/cjs/geo/geohash.js +53 -3
  196. package/dist/cjs/geo/geohash.js.map +1 -1
  197. package/dist/cjs/geo/provenance.d.ts +41 -0
  198. package/dist/cjs/geo/provenance.d.ts.map +1 -0
  199. package/dist/cjs/geo/provenance.js +134 -0
  200. package/dist/cjs/geo/provenance.js.map +1 -0
  201. package/dist/cjs/rubric/bridge.d.ts +98 -2
  202. package/dist/cjs/rubric/bridge.d.ts.map +1 -1
  203. package/dist/cjs/rubric/bridge.js +132 -15
  204. package/dist/cjs/rubric/bridge.js.map +1 -1
  205. package/dist/cjs/rubric/card.d.ts +28 -14
  206. package/dist/cjs/rubric/card.d.ts.map +1 -1
  207. package/dist/cjs/rubric/card.js +28 -7
  208. package/dist/cjs/rubric/card.js.map +1 -1
  209. package/dist/cjs/rubric/claimForm.d.ts +116 -0
  210. package/dist/cjs/rubric/claimForm.d.ts.map +1 -1
  211. package/dist/cjs/rubric/claimForm.js +12 -1
  212. package/dist/cjs/rubric/claimForm.js.map +1 -1
  213. package/dist/cjs/rubric/compose.d.ts +5 -0
  214. package/dist/cjs/rubric/compose.d.ts.map +1 -1
  215. package/dist/cjs/rubric/compose.js +9 -3
  216. package/dist/cjs/rubric/compose.js.map +1 -1
  217. package/dist/cjs/rubric/gateMet.d.ts.map +1 -1
  218. package/dist/cjs/rubric/gateMet.js +4 -2
  219. package/dist/cjs/rubric/gateMet.js.map +1 -1
  220. package/dist/cjs/rubric/leg.d.ts +2 -2
  221. package/dist/cjs/rubric/leg.d.ts.map +1 -1
  222. package/dist/cjs/rubric/leg.js +7 -5
  223. package/dist/cjs/rubric/leg.js.map +1 -1
  224. package/dist/cjs/rubric/marketPlan.d.ts +41 -3
  225. package/dist/cjs/rubric/marketPlan.d.ts.map +1 -1
  226. package/dist/cjs/rubric/marketPlan.js +110 -10
  227. package/dist/cjs/rubric/marketPlan.js.map +1 -1
  228. package/dist/cjs/rubric/observation.d.ts +56 -14
  229. package/dist/cjs/rubric/observation.d.ts.map +1 -1
  230. package/dist/cjs/rubric/observation.js +61 -11
  231. package/dist/cjs/rubric/observation.js.map +1 -1
  232. package/dist/cjs/rubric/survey.d.ts +65 -0
  233. package/dist/cjs/rubric/survey.d.ts.map +1 -0
  234. package/dist/cjs/rubric/survey.js +101 -0
  235. package/dist/cjs/rubric/survey.js.map +1 -0
  236. package/dist/cjs/rubric/terms.d.ts +7 -0
  237. package/dist/cjs/rubric/terms.d.ts.map +1 -1
  238. package/dist/cjs/rubric/terms.js +12 -1
  239. package/dist/cjs/rubric/terms.js.map +1 -1
  240. package/dist/cjs/rubric.d.ts +1 -1
  241. package/dist/cjs/rubric.d.ts.map +1 -1
  242. package/dist/cjs/rubric.js +4 -2
  243. package/dist/cjs/rubric.js.map +1 -1
  244. package/dist/esm/campaign/campaign.js +4 -3
  245. package/dist/esm/campaign/campaign.js.map +1 -1
  246. package/dist/esm/campaign/funding.d.ts.map +1 -1
  247. package/dist/esm/campaign/funding.js +5 -2
  248. package/dist/esm/campaign/funding.js.map +1 -1
  249. package/dist/esm/campaign/pool.d.ts.map +1 -1
  250. package/dist/esm/campaign/pool.js +4 -3
  251. package/dist/esm/campaign/pool.js.map +1 -1
  252. package/dist/esm/campaign/record.d.ts.map +1 -1
  253. package/dist/esm/campaign/record.js +2 -2
  254. package/dist/esm/campaign/record.js.map +1 -1
  255. package/dist/esm/campaign/spots.d.ts.map +1 -1
  256. package/dist/esm/campaign/spots.js +10 -8
  257. package/dist/esm/campaign/spots.js.map +1 -1
  258. package/dist/esm/campaign/treasurySends.d.ts.map +1 -1
  259. package/dist/esm/campaign/treasurySends.js +4 -4
  260. package/dist/esm/campaign/treasurySends.js.map +1 -1
  261. package/dist/esm/chain/ask.d.ts +104 -14
  262. package/dist/esm/chain/ask.d.ts.map +1 -1
  263. package/dist/esm/chain/ask.js +152 -80
  264. package/dist/esm/chain/ask.js.map +1 -1
  265. package/dist/esm/chain/askImage.d.ts +19 -0
  266. package/dist/esm/chain/askImage.d.ts.map +1 -0
  267. package/dist/esm/chain/askImage.js +50 -0
  268. package/dist/esm/chain/askImage.js.map +1 -0
  269. package/dist/esm/chain/bridge.d.ts +7 -33
  270. package/dist/esm/chain/bridge.d.ts.map +1 -1
  271. package/dist/esm/chain/bridge.js +10 -24
  272. package/dist/esm/chain/bridge.js.map +1 -1
  273. package/dist/esm/chain/claimSubmit.d.ts +15 -0
  274. package/dist/esm/chain/claimSubmit.d.ts.map +1 -0
  275. package/dist/esm/chain/claimSubmit.js +10 -0
  276. package/dist/esm/chain/claimSubmit.js.map +1 -0
  277. package/dist/esm/chain/delegate.d.ts +52 -7
  278. package/dist/esm/chain/delegate.d.ts.map +1 -1
  279. package/dist/esm/chain/delegate.js +64 -13
  280. package/dist/esm/chain/delegate.js.map +1 -1
  281. package/dist/esm/chain/domainIndexer.d.ts +26 -0
  282. package/dist/esm/chain/domainIndexer.d.ts.map +1 -0
  283. package/dist/esm/chain/domainIndexer.js +48 -0
  284. package/dist/esm/chain/domainIndexer.js.map +1 -0
  285. package/dist/esm/chain/entityShape.d.ts +31 -2
  286. package/dist/esm/chain/entityShape.d.ts.map +1 -1
  287. package/dist/esm/chain/entityShape.js +65 -7
  288. package/dist/esm/chain/entityShape.js.map +1 -1
  289. package/dist/esm/chain/env.d.ts +33 -3
  290. package/dist/esm/chain/env.d.ts.map +1 -1
  291. package/dist/esm/chain/env.js +33 -5
  292. package/dist/esm/chain/env.js.map +1 -1
  293. package/dist/esm/chain/guest.d.ts +14 -0
  294. package/dist/esm/chain/guest.d.ts.map +1 -1
  295. package/dist/esm/chain/guest.js +7 -8
  296. package/dist/esm/chain/guest.js.map +1 -1
  297. package/dist/esm/chain/money.d.ts +53 -2
  298. package/dist/esm/chain/money.d.ts.map +1 -1
  299. package/dist/esm/chain/money.js +63 -4
  300. package/dist/esm/chain/money.js.map +1 -1
  301. package/dist/esm/chain/orgReviewBilling.d.ts +124 -0
  302. package/dist/esm/chain/orgReviewBilling.d.ts.map +1 -0
  303. package/dist/esm/chain/orgReviewBilling.js +241 -0
  304. package/dist/esm/chain/orgReviewBilling.js.map +1 -0
  305. package/dist/esm/chain/orgReviewBillingSign.d.ts +63 -0
  306. package/dist/esm/chain/orgReviewBillingSign.d.ts.map +1 -0
  307. package/dist/esm/chain/orgReviewBillingSign.js +124 -0
  308. package/dist/esm/chain/orgReviewBillingSign.js.map +1 -0
  309. package/dist/esm/chain/payoutSettings.d.ts +97 -0
  310. package/dist/esm/chain/payoutSettings.d.ts.map +1 -0
  311. package/dist/esm/chain/payoutSettings.js +111 -0
  312. package/dist/esm/chain/payoutSettings.js.map +1 -0
  313. package/dist/esm/chain/payoutTerms.d.ts +72 -0
  314. package/dist/esm/chain/payoutTerms.d.ts.map +1 -0
  315. package/dist/esm/chain/payoutTerms.js +127 -0
  316. package/dist/esm/chain/payoutTerms.js.map +1 -0
  317. package/dist/esm/chain/query.d.ts +14 -0
  318. package/dist/esm/chain/query.d.ts.map +1 -1
  319. package/dist/esm/chain/query.js +25 -0
  320. package/dist/esm/chain/query.js.map +1 -1
  321. package/dist/esm/chain/reviewBilling.d.ts +86 -0
  322. package/dist/esm/chain/reviewBilling.d.ts.map +1 -0
  323. package/dist/esm/chain/reviewBilling.js +215 -0
  324. package/dist/esm/chain/reviewBilling.js.map +1 -0
  325. package/dist/esm/chain/store.d.ts +7 -6
  326. package/dist/esm/chain/store.d.ts.map +1 -1
  327. package/dist/esm/chain/store.js +7 -6
  328. package/dist/esm/chain/store.js.map +1 -1
  329. package/dist/esm/chain/subscription.d.ts +0 -7
  330. package/dist/esm/chain/subscription.d.ts.map +1 -1
  331. package/dist/esm/chain/subscription.js +4 -13
  332. package/dist/esm/chain/subscription.js.map +1 -1
  333. package/dist/esm/chain/takeBack.d.ts +12 -0
  334. package/dist/esm/chain/takeBack.d.ts.map +1 -1
  335. package/dist/esm/chain/takeBack.js +22 -9
  336. package/dist/esm/chain/takeBack.js.map +1 -1
  337. package/dist/esm/chain/why.d.ts +44 -0
  338. package/dist/esm/chain/why.d.ts.map +1 -0
  339. package/dist/esm/chain/why.js +111 -0
  340. package/dist/esm/chain/why.js.map +1 -0
  341. package/dist/esm/chain/whyMint.d.ts +8 -0
  342. package/dist/esm/chain/whyMint.d.ts.map +1 -0
  343. package/dist/esm/chain/whyMint.js +17 -0
  344. package/dist/esm/chain/whyMint.js.map +1 -0
  345. package/dist/esm/chain.d.ts +8 -4
  346. package/dist/esm/chain.d.ts.map +1 -1
  347. package/dist/esm/chain.js +9 -4
  348. package/dist/esm/chain.js.map +1 -1
  349. package/dist/esm/config.d.ts +11 -5
  350. package/dist/esm/config.d.ts.map +1 -1
  351. package/dist/esm/config.js +3 -1
  352. package/dist/esm/config.js.map +1 -1
  353. package/dist/esm/data/askEntity.d.ts +40 -0
  354. package/dist/esm/data/askEntity.d.ts.map +1 -0
  355. package/dist/esm/data/askEntity.js +41 -0
  356. package/dist/esm/data/askEntity.js.map +1 -0
  357. package/dist/esm/data/askLinks.d.ts +6 -0
  358. package/dist/esm/data/askLinks.d.ts.map +1 -0
  359. package/dist/esm/data/askLinks.js +16 -0
  360. package/dist/esm/data/askLinks.js.map +1 -0
  361. package/dist/esm/data/board/assemble.d.ts.map +1 -1
  362. package/dist/esm/data/board/assemble.js +15 -2
  363. package/dist/esm/data/board/assemble.js.map +1 -1
  364. package/dist/esm/data/board/facts.d.ts +11 -0
  365. package/dist/esm/data/board/facts.d.ts.map +1 -1
  366. package/dist/esm/data/board/facts.js +15 -0
  367. package/dist/esm/data/board/facts.js.map +1 -1
  368. package/dist/esm/data/board/read.d.ts.map +1 -1
  369. package/dist/esm/data/board/read.js +2 -1
  370. package/dist/esm/data/board/read.js.map +1 -1
  371. package/dist/esm/data/board/types.d.ts +9 -0
  372. package/dist/esm/data/board/types.d.ts.map +1 -1
  373. package/dist/esm/data/board/types.js.map +1 -1
  374. package/dist/esm/data/docs.d.ts +10 -2
  375. package/dist/esm/data/docs.d.ts.map +1 -1
  376. package/dist/esm/data/docs.js +43 -4
  377. package/dist/esm/data/docs.js.map +1 -1
  378. package/dist/esm/data/format.js +1 -1
  379. package/dist/esm/data/format.js.map +1 -1
  380. package/dist/esm/data/install.d.ts +43 -2
  381. package/dist/esm/data/install.d.ts.map +1 -1
  382. package/dist/esm/data/install.js +56 -9
  383. package/dist/esm/data/install.js.map +1 -1
  384. package/dist/esm/data/oracleInfo.d.ts +6 -1
  385. package/dist/esm/data/oracleInfo.d.ts.map +1 -1
  386. package/dist/esm/data/oracleInfo.js +22 -3
  387. package/dist/esm/data/oracleInfo.js.map +1 -1
  388. package/dist/esm/data/oracles.d.ts +62 -5
  389. package/dist/esm/data/oracles.d.ts.map +1 -1
  390. package/dist/esm/data/oracles.js +87 -12
  391. package/dist/esm/data/oracles.js.map +1 -1
  392. package/dist/esm/data/orgPayouts.d.ts +87 -0
  393. package/dist/esm/data/orgPayouts.d.ts.map +1 -0
  394. package/dist/esm/data/orgPayouts.js +170 -0
  395. package/dist/esm/data/orgPayouts.js.map +1 -0
  396. package/dist/esm/data/plans.d.ts +8 -0
  397. package/dist/esm/data/plans.d.ts.map +1 -0
  398. package/dist/esm/data/plans.js +8 -0
  399. package/dist/esm/data/plans.js.map +1 -0
  400. package/dist/esm/data/profiles.d.ts +20 -0
  401. package/dist/esm/data/profiles.d.ts.map +1 -1
  402. package/dist/esm/data/profiles.js +60 -4
  403. package/dist/esm/data/profiles.js.map +1 -1
  404. package/dist/esm/data/receipt.d.ts +7 -0
  405. package/dist/esm/data/receipt.d.ts.map +1 -1
  406. package/dist/esm/data/receipt.js +20 -5
  407. package/dist/esm/data/receipt.js.map +1 -1
  408. package/dist/esm/data/resources.d.ts +3 -0
  409. package/dist/esm/data/resources.d.ts.map +1 -1
  410. package/dist/esm/data/resources.js +2 -0
  411. package/dist/esm/data/resources.js.map +1 -1
  412. package/dist/esm/data/threads.d.ts +14 -0
  413. package/dist/esm/data/threads.d.ts.map +1 -1
  414. package/dist/esm/data/threads.js +32 -21
  415. package/dist/esm/data/threads.js.map +1 -1
  416. package/dist/esm/data/trace.d.ts +8 -0
  417. package/dist/esm/data/trace.d.ts.map +1 -1
  418. package/dist/esm/data/trace.js +1 -1
  419. package/dist/esm/data/trace.js.map +1 -1
  420. package/dist/esm/data/traceWords.d.ts +4 -1
  421. package/dist/esm/data/traceWords.d.ts.map +1 -1
  422. package/dist/esm/data/traceWords.js +8 -2
  423. package/dist/esm/data/traceWords.js.map +1 -1
  424. package/dist/esm/data/why.d.ts +38 -0
  425. package/dist/esm/data/why.d.ts.map +1 -0
  426. package/dist/esm/data/why.js +78 -0
  427. package/dist/esm/data/why.js.map +1 -0
  428. package/dist/esm/data/whyReceipt.d.ts +33 -0
  429. package/dist/esm/data/whyReceipt.d.ts.map +1 -0
  430. package/dist/esm/data/whyReceipt.js +284 -0
  431. package/dist/esm/data/whyReceipt.js.map +1 -0
  432. package/dist/esm/geo/exifcarry.d.ts +9 -0
  433. package/dist/esm/geo/exifcarry.d.ts.map +1 -1
  434. package/dist/esm/geo/exifcarry.js +34 -0
  435. package/dist/esm/geo/exifcarry.js.map +1 -1
  436. package/dist/esm/geo/geohash.d.ts +11 -0
  437. package/dist/esm/geo/geohash.d.ts.map +1 -1
  438. package/dist/esm/geo/geohash.js +52 -3
  439. package/dist/esm/geo/geohash.js.map +1 -1
  440. package/dist/esm/geo/provenance.d.ts +41 -0
  441. package/dist/esm/geo/provenance.d.ts.map +1 -0
  442. package/dist/esm/geo/provenance.js +129 -0
  443. package/dist/esm/geo/provenance.js.map +1 -0
  444. package/dist/esm/rubric/bridge.d.ts +98 -2
  445. package/dist/esm/rubric/bridge.d.ts.map +1 -1
  446. package/dist/esm/rubric/bridge.js +130 -14
  447. package/dist/esm/rubric/bridge.js.map +1 -1
  448. package/dist/esm/rubric/card.d.ts +28 -14
  449. package/dist/esm/rubric/card.d.ts.map +1 -1
  450. package/dist/esm/rubric/card.js +24 -5
  451. package/dist/esm/rubric/card.js.map +1 -1
  452. package/dist/esm/rubric/claimForm.d.ts +116 -0
  453. package/dist/esm/rubric/claimForm.d.ts.map +1 -1
  454. package/dist/esm/rubric/claimForm.js +11 -0
  455. package/dist/esm/rubric/claimForm.js.map +1 -1
  456. package/dist/esm/rubric/compose.d.ts +5 -0
  457. package/dist/esm/rubric/compose.d.ts.map +1 -1
  458. package/dist/esm/rubric/compose.js +7 -2
  459. package/dist/esm/rubric/compose.js.map +1 -1
  460. package/dist/esm/rubric/gateMet.d.ts.map +1 -1
  461. package/dist/esm/rubric/gateMet.js +4 -2
  462. package/dist/esm/rubric/gateMet.js.map +1 -1
  463. package/dist/esm/rubric/leg.d.ts +2 -2
  464. package/dist/esm/rubric/leg.d.ts.map +1 -1
  465. package/dist/esm/rubric/leg.js +7 -5
  466. package/dist/esm/rubric/leg.js.map +1 -1
  467. package/dist/esm/rubric/marketPlan.d.ts +41 -3
  468. package/dist/esm/rubric/marketPlan.d.ts.map +1 -1
  469. package/dist/esm/rubric/marketPlan.js +107 -9
  470. package/dist/esm/rubric/marketPlan.js.map +1 -1
  471. package/dist/esm/rubric/observation.d.ts +56 -14
  472. package/dist/esm/rubric/observation.d.ts.map +1 -1
  473. package/dist/esm/rubric/observation.js +61 -12
  474. package/dist/esm/rubric/observation.js.map +1 -1
  475. package/dist/esm/rubric/survey.d.ts +65 -0
  476. package/dist/esm/rubric/survey.d.ts.map +1 -0
  477. package/dist/esm/rubric/survey.js +94 -0
  478. package/dist/esm/rubric/survey.js.map +1 -0
  479. package/dist/esm/rubric/terms.d.ts +7 -0
  480. package/dist/esm/rubric/terms.d.ts.map +1 -1
  481. package/dist/esm/rubric/terms.js +12 -2
  482. package/dist/esm/rubric/terms.js.map +1 -1
  483. package/dist/esm/rubric.d.ts +1 -1
  484. package/dist/esm/rubric.d.ts.map +1 -1
  485. package/dist/esm/rubric.js +1 -1
  486. package/dist/esm/rubric.js.map +1 -1
  487. package/package.json +8 -2
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Reading a claim's "why" from the oracle that decided it, as the claimant (`data/why.ts` holds the
3
+ * shape). The route answers one person: a UCAN invocation `{ can: "claims/why", with:
4
+ * "ixo:claim:<id>" }` self-issued by the claim's on-chain agent DID, addressed to the oracle's
5
+ * did:web. Anyone else reads the same 404 as a claim it never saw.
6
+ */
7
+ import { type EngineReadOptions } from "../data/engine.ts";
8
+ import { type Why } from "../data/why.ts";
9
+ export { whyMint, type WhyMint } from "./whyMint.ts";
10
+ /** `did:web:host[%3Aport]` → `https://host[:port]`; null for anything else. */
11
+ export declare function didWebOrigin(did: string | null | undefined): string | null;
12
+ /**
13
+ * Which oracle to ask, and the audience it signs for. The engine receipt on chain names the oracle
14
+ * that acted (its did:web); a claim not yet decided has none, so the deployment's oracle is asked.
15
+ * shortcut: an undecided claim on another oracle's ask reads that oracle's 404, so "Couldn't load
16
+ * the reason" until it is decided; upgrade by reading the ask's checker entity's `#eval` endpoint.
17
+ */
18
+ export declare function whyOracle(proof: string | null | undefined, options?: EngineReadOptions): Promise<{
19
+ url: string;
20
+ audience: string;
21
+ } | null>;
22
+ /** GETs the why with `token`; the parsed body, or null on any refusal, failure or unknown shape. */
23
+ export declare function fetchWhy(url: string, claimId: string, token: string, send?: typeof fetch): Promise<Why | null>;
24
+ /**
25
+ * The protocol's `#rub` as the engine resolved it, only when its bytes hash to `rubricId` (the
26
+ * oracle's `verifiedRubric`); null otherwise, and the receipt's codes speak alone.
27
+ * shortcut: any https host may serve the bytes (they are hash-checked, and the Matrix media host
28
+ * is not in our store list); restrict to known media hosts if a server-side fetch must be pinned.
29
+ */
30
+ export declare function verifiedRubric(protocolDid: string, rubricId: string, send?: typeof fetch): Promise<{
31
+ id: string;
32
+ doc: unknown;
33
+ } | null>;
34
+ /**
35
+ * Why a claim was decided, from its public engine receipt: no key needed, so it answers a passkey or
36
+ * guest claimant, an agent acting for a person, the hosted MCP. No proof yet is `pending`; a proof
37
+ * that is not an engine receipt, or a receipt that cannot be read, is null (`WHY_UNREADABLE`).
38
+ */
39
+ export declare function receiptWhy(proof: string | null | undefined, options?: {
40
+ baseUrl?: string;
41
+ fetchJson?: (url: string) => Promise<unknown>;
42
+ send?: typeof fetch;
43
+ }): Promise<Why | null>;
44
+ //# sourceMappingURL=why.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"why.d.ts","sourceRoot":"","sources":["../../../src/chain/why.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAoE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7H,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAKpD,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAErD,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAG1E;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAQpJ;AAED,oGAAoG;AACpG,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAU3H;AAOD;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,CAyBpJ;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GACrG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAerB"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Reading a claim's "why" from the oracle that decided it, as the claimant (`data/why.ts` holds the
3
+ * shape). The route answers one person: a UCAN invocation `{ can: "claims/why", with:
4
+ * "ixo:claim:<id>" }` self-issued by the claim's on-chain agent DID, addressed to the oracle's
5
+ * did:web. Anyone else reads the same 404 as a claim it never saw.
6
+ */
7
+ import { engineConfigured, engineDecisionFor, engineReceiptUrl, engineUrl } from "../data/engine.js";
8
+ import { proofRef } from "../data/proof.js";
9
+ import { parseWhy } from "../data/why.js";
10
+ import { PENDING_WHY, receiptRubric, whyFromReceipt } from "../data/whyReceipt.js";
11
+ import { oracleUrl } from "./oracle.js";
12
+ import { oracleDid } from "./reviewBilling.js";
13
+ export { whyMint } from "./whyMint.js";
14
+ /** `did:web:host[%3Aport]` → `https://host[:port]`; null for anything else. */
15
+ export function didWebOrigin(did) {
16
+ const host = did?.startsWith("did:web:") ? did.slice(8).replace(/%3A/gi, ":") : "";
17
+ return /^[a-z0-9.-]+\.[a-z]{2,}(:\d{1,5})?$/i.test(host) ? `https://${host}` : null;
18
+ }
19
+ /**
20
+ * Which oracle to ask, and the audience it signs for. The engine receipt on chain names the oracle
21
+ * that acted (its did:web); a claim not yet decided has none, so the deployment's oracle is asked.
22
+ * shortcut: an undecided claim on another oracle's ask reads that oracle's 404, so "Couldn't load
23
+ * the reason" until it is decided; upgrade by reading the ask's checker entity's `#eval` endpoint.
24
+ */
25
+ export async function whyOracle(proof, options = {}) {
26
+ const decision = await engineDecisionFor(proof, options).catch(() => null);
27
+ const named = didWebOrigin(decision?.oracle?.did);
28
+ if (named)
29
+ return { url: named, audience: decision.oracle.did };
30
+ const url = oracleUrl();
31
+ if (!/^https?:\/\//.test(url))
32
+ return null;
33
+ const audience = await oracleDid(url);
34
+ return audience ? { url, audience } : null;
35
+ }
36
+ /** GETs the why with `token`; the parsed body, or null on any refusal, failure or unknown shape. */
37
+ export async function fetchWhy(url, claimId, token, send = fetch) {
38
+ try {
39
+ const response = await send(`${url.replace(/\/$/, "")}/openhands/claims/${encodeURIComponent(claimId)}/why`, {
40
+ headers: { accept: "application/json", authorization: `Bearer ${token}`, "x-auth-type": "ucan" },
41
+ signal: AbortSignal.timeout(10_000)
42
+ });
43
+ return response.ok ? parseWhy(await response.json()) : null;
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
49
+ /* ---- the public fallback: the engine receipt, read by anyone ---- */
50
+ const RUBRIC_MAX_BYTES = 1_000_000;
51
+ const rubrics = new Map();
52
+ /**
53
+ * The protocol's `#rub` as the engine resolved it, only when its bytes hash to `rubricId` (the
54
+ * oracle's `verifiedRubric`); null otherwise, and the receipt's codes speak alone.
55
+ * shortcut: any https host may serve the bytes (they are hash-checked, and the Matrix media host
56
+ * is not in our store list); restrict to known media hosts if a server-side fetch must be pinned.
57
+ */
58
+ export async function verifiedRubric(protocolDid, rubricId, send = fetch) {
59
+ const id = rubricId.toLowerCase();
60
+ if (!/^[0-9a-f]{64}$/.test(id) || !/^did:ixo:entity:[0-9a-f]+$/.test(protocolDid))
61
+ return null;
62
+ if (rubrics.has(id))
63
+ return { id, doc: rubrics.get(id) };
64
+ try {
65
+ const { gql } = await import("../data/gql.js");
66
+ const data = await gql(`query { iid(id: ${JSON.stringify(protocolDid)}) { linkedResource } }`, 3600);
67
+ const anchor = (data.iid?.linkedResource ?? []).find((r) => r?.type === "rubric" && r.id?.endsWith("#rub") && r.proof?.toLowerCase() === id);
68
+ const url = anchor?.serviceEndpoint ?? "";
69
+ if (!url.startsWith("https://"))
70
+ return null;
71
+ const response = await send(url, { signal: AbortSignal.timeout(10_000) });
72
+ const bytes = response.ok ? new Uint8Array(await response.arrayBuffer()) : null;
73
+ if (!bytes || bytes.byteLength > RUBRIC_MAX_BYTES)
74
+ return null;
75
+ const digest = [...new Uint8Array(await crypto.subtle.digest("SHA-256", bytes))].map((b) => b.toString(16).padStart(2, "0")).join("");
76
+ if (digest !== id)
77
+ return null;
78
+ const doc = JSON.parse(new TextDecoder().decode(bytes));
79
+ if (rubrics.size >= 200)
80
+ rubrics.delete(rubrics.keys().next().value);
81
+ rubrics.set(id, doc);
82
+ return { id, doc };
83
+ }
84
+ catch {
85
+ return null;
86
+ }
87
+ }
88
+ /**
89
+ * Why a claim was decided, from its public engine receipt: no key needed, so it answers a passkey or
90
+ * guest claimant, an agent acting for a person, the hosted MCP. No proof yet is `pending`; a proof
91
+ * that is not an engine receipt, or a receipt that cannot be read, is null (`WHY_UNREADABLE`).
92
+ */
93
+ export async function receiptWhy(proof, options = {}) {
94
+ if (!proof)
95
+ return PENDING_WHY;
96
+ const cid = proofRef(proof).cid;
97
+ const base = options.baseUrl ?? engineUrl();
98
+ if (!cid || !engineConfigured(base))
99
+ return null;
100
+ const send = options.send ?? fetch;
101
+ const read = options.fetchJson ?? (async (url) => {
102
+ const response = await send(url, { signal: AbortSignal.timeout(8_000) });
103
+ return response.ok ? response.json() : null;
104
+ });
105
+ const doc = await read(engineReceiptUrl(cid, "json", base)).catch(() => null);
106
+ const anchor = receiptRubric(doc);
107
+ const rubric = anchor ? await verifiedRubric(anchor.protocolDid, anchor.rubricId, send) : null;
108
+ const why = whyFromReceipt(doc, rubric);
109
+ return why && { ...why, receiptCid: why.receiptCid ?? cid };
110
+ }
111
+ //# sourceMappingURL=why.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"why.js","sourceRoot":"","sources":["../../../src/chain/why.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** Signs one `claims/why` invocation for `claimId`, addressed to `audience`. */
2
+ export type WhyMint = (audience: string, claimId: string) => Promise<string>;
3
+ /** The claimant's own invocation, from their ed25519 key (as `ownerMint`): no proof chain, five minutes, a nonce. */
4
+ export declare function whyMint(claimant: {
5
+ address: string;
6
+ mnemonic: string;
7
+ }): WhyMint;
8
+ //# sourceMappingURL=whyMint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whyMint.d.ts","sourceRoot":"","sources":["../../../src/chain/whyMint.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7E,qHAAqH;AACrH,wBAAgB,OAAO,CAAC,QAAQ,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAahF"}
@@ -0,0 +1,17 @@
1
+ /* A leaf, so the browser that signs for its own claim does not carry the engine reader. */
2
+ /** The claimant's own invocation, from their ed25519 key (as `ownerMint`): no proof chain, five minutes, a nonce. */
3
+ export function whyMint(claimant) {
4
+ return async (audience, claimId) => {
5
+ const { signerFromMnemonic, createInvocation, serializeInvocation } = await import("@ixo/ucan");
6
+ const { signer } = await signerFromMnemonic(claimant.mnemonic, `did:ixo:${claimant.address}`);
7
+ const invocation = await createInvocation({
8
+ issuer: signer,
9
+ audience,
10
+ capability: { can: "claims/why", with: `ixo:claim:${claimId}` },
11
+ expiration: Math.floor(Date.now() / 1000) + 300,
12
+ facts: [{ nonce: crypto.randomUUID() }]
13
+ });
14
+ return serializeInvocation(invocation);
15
+ };
16
+ }
17
+ //# sourceMappingURL=whyMint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whyMint.js","sourceRoot":"","sources":["../../../src/chain/whyMint.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAK3F,qHAAqH;AACrH,MAAM,UAAU,OAAO,CAAC,QAA+C;IACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QACjC,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAChG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,QAAQ,CAAC,OAAO,EAAW,CAAC,CAAC;QACvG,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC;YACxC,MAAM,EAAE,MAAM;YACd,QAAQ;YACR,UAAU,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,OAAO,EAAE,EAAE;YAC/D,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG;YAC/C,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;SACE,CAAC,CAAC;QAC7C,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC"}
@@ -16,10 +16,12 @@
16
16
  */
17
17
  export { createAccount, settleNewAccount, signIn, type CreatedAccount } from "./chain/account.ts";
18
18
  export { grantAllowance, readAllowance, revokeAllowance, type Allowance } from "./chain/allowance.ts";
19
- export { AmbiguousDelegation, connectAgent, delegatesOf, disconnectAgent, readDelegation, readDelegationFor, resolveDelegation, DEFAULT_DAYS as CONNECT_DAYS, GAS_LOAN_UIXO, type Delegation } from "./chain/delegate.ts";
20
- export { bridgeMsgs, bridgeToKey, type DeedBalance, type DeedSearch } from "./chain/bridge.ts";
21
- export { drawableSubscriptions, drawCredit, drawMsgs, type Subscription } from "./chain/subscription.ts";
22
- export { askAdminAccount, AskPending, claimFormRef, createAskCollection, createAskEntity, didOf, evaluateClaim, isBroadcastTimeout, postAsk, prepareAsk, resolveAsk, submitOwnClaim, type AskMarker, type AskPosting, type AskTerms, type ClaimFormRef, type PostAskOptions, type PreparedAsk } from "./chain/ask.ts";
19
+ export { AmbiguousDelegation, connectAgent, delegatesOf, disconnectAgent, readDelegation, readDelegationFor, resolveDelegation, DEFAULT_DAYS as CONNECT_DAYS, GAS_LEND_MIN_UIXO, GAS_LOAN_UIXO, type Delegation } from "./chain/delegate.ts";
20
+ export { bridgeMsgs } from "./chain/bridge.ts";
21
+ export { drawableSubscriptions, drawMsgs, type Subscription } from "./chain/subscription.ts";
22
+ export { askAdminAccount, AskPending, claimFormRef, claimProtocolClassDid, createAskCollection, createAskEntities, didOf, evaluateClaim, isBroadcastTimeout, postAsk, prepareAsk, resolveAsk, submitOwnClaim, type AskEntities, type AskEntitiesInput, type AskMarker, type AskPosting, type AskShapeExtras, type AskTerms, type ClaimFormRef, type PostAskOptions, type PreparedAsk } from "./chain/ask.ts";
23
+ export { askShape, type AskShape } from "./chain/env.ts";
24
+ export { buildDomainCard, buildProfile, rulesName, shortName, type DocRef } from "./chain/entityShape.ts";
23
25
  export { answerArrived, putBack, readTakeBack, takeBack, type Coin, type TakeBackPlan } from "./chain/takeBack.ts";
24
26
  export { ensureIidDocument, hasIidDocument } from "./chain/iid.ts";
25
27
  export { claimWithPasskey, guestFunnelAvailable, guestSubmit, loadGuestKey } from "./chain/guest.ts";
@@ -29,6 +31,8 @@ export { clearSession, loadSession, saveSession, subscribeSession, type QiSessio
29
31
  export { getFeegrantGranter, getQueryClient, getUixoBalance, ensureGas } from "./chain/query.ts";
30
32
  export { faucetUrl, network, rpcUrl } from "./chain/env.ts";
31
33
  export { oracleUrl, notifyOracle, type OracleEvent } from "./chain/oracle.ts";
34
+ export { domainIndexerUrl } from "./chain/env.ts";
35
+ export { nudgeDomainIndexer, type NudgeOptions } from "./chain/domainIndexer.ts";
32
36
  export { proveWithGuestKey } from "./chain/guest.ts";
33
37
  export { proveWithPasskey } from "./chain/account.ts";
34
38
  export { kindOf, speaksForItself, type SessionKind } from "./chain/session.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,IAAI,YAAY,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC1N,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EACL,eAAe,EACf,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,UAAU,EACV,UAAU,EACV,cAAc,EACd,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAOjG,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,IAAI,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7O,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EACL,eAAe,EACf,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,UAAU,EACV,UAAU,EACV,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAG1G,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAOjG,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/esm/chain.js CHANGED
@@ -16,10 +16,13 @@
16
16
  */
17
17
  export { createAccount, settleNewAccount, signIn } from "./chain/account.js";
18
18
  export { grantAllowance, readAllowance, revokeAllowance } from "./chain/allowance.js";
19
- export { AmbiguousDelegation, connectAgent, delegatesOf, disconnectAgent, readDelegation, readDelegationFor, resolveDelegation, DEFAULT_DAYS as CONNECT_DAYS, GAS_LOAN_UIXO } from "./chain/delegate.js";
20
- export { bridgeMsgs, bridgeToKey } from "./chain/bridge.js";
21
- export { drawableSubscriptions, drawCredit, drawMsgs } from "./chain/subscription.js";
22
- export { askAdminAccount, AskPending, claimFormRef, createAskCollection, createAskEntity, didOf, evaluateClaim, isBroadcastTimeout, postAsk, prepareAsk, resolveAsk, submitOwnClaim } from "./chain/ask.js";
19
+ export { AmbiguousDelegation, connectAgent, delegatesOf, disconnectAgent, readDelegation, readDelegationFor, resolveDelegation, DEFAULT_DAYS as CONNECT_DAYS, GAS_LEND_MIN_UIXO, GAS_LOAN_UIXO } from "./chain/delegate.js";
20
+ export { bridgeMsgs } from "./chain/bridge.js";
21
+ export { drawableSubscriptions, drawMsgs } from "./chain/subscription.js";
22
+ export { askAdminAccount, AskPending, claimFormRef, claimProtocolClassDid, createAskCollection, createAskEntities, didOf, evaluateClaim, isBroadcastTimeout, postAsk, prepareAsk, resolveAsk, submitOwnClaim } from "./chain/ask.js";
23
+ /* The shape switch and the document builders ride with the poster's controls too. */
24
+ export { askShape } from "./chain/env.js";
25
+ export { buildDomainCard, buildProfile, rulesName, shortName } from "./chain/entityShape.js";
23
26
  /* Reached only through `await import("@ixo/openhands-sdk/chain")` from the poster's
24
27
  own controls, like `evaluateClaim` beside it, so no page loads it up front. */
25
28
  export { answerArrived, putBack, readTakeBack, takeBack } from "./chain/takeBack.js";
@@ -36,6 +39,8 @@ export { getFeegrantGranter, getQueryClient, getUixoBalance, ensureGas } from ".
36
39
  MCP imports the file directly. */
37
40
  export { faucetUrl, network, rpcUrl } from "./chain/env.js";
38
41
  export { oracleUrl, notifyOracle } from "./chain/oracle.js";
42
+ export { domainIndexerUrl } from "./chain/env.js";
43
+ export { nudgeDomainIndexer } from "./chain/domainIndexer.js";
39
44
  export { proveWithGuestKey } from "./chain/guest.js";
40
45
  export { proveWithPasskey } from "./chain/account.js";
41
46
  /* `signx` is deliberately NOT re-exported here. It reaches node:crypto, and
@@ -1 +1 @@
1
- {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAuB,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAkB,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,IAAI,YAAY,EAAE,aAAa,EAAmB,MAAM,qBAAqB,CAAC;AAC1N,OAAO,EAAE,UAAU,EAAE,WAAW,EAAqC,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,QAAQ,EAAqB,MAAM,yBAAyB,CAAC;AACzG,OAAO,EACL,eAAe,EACf,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,UAAU,EACV,UAAU,EACV,cAAc,EAOf,MAAM,gBAAgB,CAAC;AACxB;iFACiF;AACjF,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAgC,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAkB,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEjG;;;;oCAIoC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;+EAG+E;AAC/E,OAAO,EAAE,MAAM,EAAE,eAAe,EAAoB,MAAM,oBAAoB,CAAC;AAE/E;;;gCAGgC"}
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAuB,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAkB,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,IAAI,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAmB,MAAM,qBAAqB,CAAC;AAC7O,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAqB,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EACL,eAAe,EACf,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,UAAU,EACV,UAAU,EACV,cAAc,EAUf,MAAM,gBAAgB,CAAC;AACxB,qFAAqF;AACrF,OAAO,EAAE,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAe,MAAM,wBAAwB,CAAC;AAC1G;iFACiF;AACjF,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAgC,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAkB,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEjG;;;;oCAIoC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAqB,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;+EAG+E;AAC/E,OAAO,EAAE,MAAM,EAAE,eAAe,EAAoB,MAAM,oBAAoB,CAAC;AAE/E;;;gCAGgC"}
@@ -33,7 +33,8 @@ import { DEFAULT_RATES_URL } from "./data/rates.ts";
33
33
  import { DEFAULT_ORACLE_RECEIPT_HOSTS, parseHosts } from "./data/accept.ts";
34
34
  import { DEFAULT_CHECK_REWARD_BASE } from "./campaign/funding.ts";
35
35
  export { chainNetwork, NETWORKS, type Network, RELAYER_NAMES, type RelayerName, type RelayerChoice, strictBase, parseHosts, DEFAULT_IPFS_GATEWAY_URL, DEFAULT_RATES_URL, DEFAULT_ORACLE_RECEIPT_HOSTS, DEFAULT_CHECK_REWARD_BASE };
36
- export type AskDenom = "uixo" | "upay";
36
+ /** What an ask may be posted in: IXO, PAY (legacy deployments), or Noble USDC on mainnet (`chain/money.ts` USDC_MAINNET). */
37
+ export type AskDenom = "uixo" | "upay" | "ibc/6BBE9BD4246F8E04948D5A4EEE7164B2630263B9EBB5E7DC5F0A46C62A2FF97B";
37
38
  export interface OpenhandsConfig {
38
39
  /** `NEXT_PUBLIC_CHAIN_NETWORK`; unset/empty → testnet; any other value throws. */
39
40
  network: Network;
@@ -81,15 +82,19 @@ export interface OpenhandsConfig {
81
82
  * `chain/env` `relayerNode()` throws instead of minting on the wrong node.
82
83
  */
83
84
  relayerNodeDid: string | null;
84
- /** `NEXT_PUBLIC_DEED_CLASS_DID` || per-network: the `protocol/deed` class an ask deed is created under. */
85
+ /** `NEXT_PUBLIC_DEED_CLASS_DID` || per-network: the `protocol/deed` root; what an ask deed is classed under when no Ask protocol is named. */
85
86
  deedClassDid: string;
86
- /** `NEXT_PUBLIC_VC_CLASS_DID` || per-network: the `protocol/verifiableClaim` class a claim protocol is created under; `null` where unconfirmed (devnet). */
87
+ /** `NEXT_PUBLIC_ASK_PROTOCOL_DID` || `null`: the Openhands Ask protocol (`scripts/publish-protocols.ts`) a new ask deed is classed under when named; a non-DID throws. */
88
+ askProtocolDid: string | null;
89
+ /** `NEXT_PUBLIC_VC_CLASS_DID` || per-network: the `protocol/verifiableClaim` class a claim protocol is created under (every network names one since 2026-10-14). */
87
90
  verifiableClaimClassDid: string | null;
88
- /** `NEXT_PUBLIC_MATRIX_HOMESERVER` || per-network; no trailing slash. Where every linked document is uploaded. A Worker's `MATRIX_HOMESERVER` binding is passed through `configure()`, never read here (barrels.test.ts). */
91
+ /** `NEXT_PUBLIC_MATRIX_HOMESERVER` || per-network; no trailing slash. The homeserver an entity names in its `#matrix` service (documents live on the public store, never here). A Worker's `MATRIX_HOMESERVER` binding is passed through `configure()`, never read here (barrels.test.ts). */
89
92
  matrixHomeserver: string;
93
+ /** `NEXT_PUBLIC_DOMAIN_INDEXER_URL` || per-network; no trailing slash. The IXO domain indexer nudged after a `#dmn` is anchored; `configure({ domainIndexerUrl: "" })` silences the nudge. */
94
+ domainIndexerUrl: string;
90
95
  /** `NEXT_PUBLIC_AUTHN_RP_ID` || undefined (the browser's own hostname). */
91
96
  authnRpId: string | undefined;
92
- /** `NEXT_PUBLIC_ASK_DENOM` === "upay" ? "upay" : "uixo". */
97
+ /** The default reward coin: `NEXT_PUBLIC_ASK_DENOM` when it is USDC_MAINNET, else "uixo" (PAY is never a reward, owner ruling 2026-10-16). */
93
98
  askDenom: AskDenom;
94
99
  /** `NEXT_PUBLIC_BASE_PATH` (trailing slashes stripped) || "". */
95
100
  basePath: string;
@@ -125,6 +130,7 @@ export interface NetworkDefaults {
125
130
  deedClassDid: string;
126
131
  verifiableClaimClassDid: string | null;
127
132
  matrixHomeserver: string;
133
+ domainIndexerUrl: string;
128
134
  faucetUrl: string | null;
129
135
  }
130
136
  /** The endpoints a network uses when nothing overrides them. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAE,YAAY,EAAE,KAAK,OAAO,EAAW,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAwG,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAA8D,MAAM,gBAAgB,CAAC;AAIvP,OAAO,EAAE,wBAAwB,EAAqC,MAAM,mBAAmB,CAAC;AAIhG,OAAO,EAAE,iBAAiB,EAAY,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAsB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAIhG,OAAO,EAAmB,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAInF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,CAAC;AACnO,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,cAAc,EAAE,MAAM,CAAC;IACvB,8FAA8F;IAC9F,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,iGAAiG;IACjG,eAAe,EAAE,MAAM,CAAC;IACxB,8FAA8F;IAC9F,cAAc,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,OAAO,EAAE,aAAa,CAAC;IACvB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2GAA2G;IAC3G,YAAY,EAAE,MAAM,CAAC;IACrB,4JAA4J;IAC5J,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,6NAA6N;IAC7N,gBAAgB,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,4DAA4D;IAC5D,QAAQ,EAAE,QAAQ,CAAC;IACnB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,yEAAyE;IACzE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kHAAkH;IAClH,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,8EAA8E;IAC9E,eAAe,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,eAAe,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,8GAA8G;AAC9G,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IACvD,qEAAqE;IACrE,cAAc,EAAE,WAAW,CAAC;IAC5B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,CAEnE;AAKD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAQjE;AAED,qFAAqF;AACrF,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED,iHAAiH;AACjH,wBAAgB,MAAM,IAAI,QAAQ,CAAC,eAAe,CAAC,CAqClD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@
28
28
  import { givenConfig, givenVersion, setGivenConfig } from "./given.js";
29
29
  import { chainNetwork, network, NETWORKS } from "./network.js";
30
30
  import { strictBase } from "./envRead.js";
31
- import { chainEndpointsFor, deedClassDid, faucetUrl, matrixHomeserver, relayerChoice, relayerNodeIfConfigured, RELAYER_NAMES, restUrl, rpcUrl, rpId, verifiableClaimClassDidIfConfigured } from "./chain/env.js";
31
+ import { askProtocolDidIfConfigured, chainEndpointsFor, deedClassDid, domainIndexerUrl, faucetUrl, matrixHomeserver, relayerChoice, relayerNodeIfConfigured, RELAYER_NAMES, restUrl, rpcUrl, rpId, verifiableClaimClassDidIfConfigured } from "./chain/env.js";
32
32
  import { askDenom } from "./chain/money.js";
33
33
  import { granterBotUrl } from "./chain/guest.js";
34
34
  import { oracleUrl } from "./chain/oracle.js";
@@ -98,8 +98,10 @@ export function config() {
98
98
  relayer: relayerChoice(),
99
99
  relayerNodeDid: relayerNodeIfConfigured(),
100
100
  deedClassDid: deedClassDid(),
101
+ askProtocolDid: askProtocolDidIfConfigured(),
101
102
  verifiableClaimClassDid: verifiableClaimClassDidIfConfigured(),
102
103
  matrixHomeserver: matrixHomeserver(),
104
+ domainIndexerUrl: domainIndexerUrl(),
103
105
  authnRpId: rpId(),
104
106
  askDenom: askDenom(),
105
107
  basePath: basePath(),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * The entity an ask's own documents hang on (`#done`, `#payoutTerms`, its owner).
3
+ *
4
+ * Every ask OpenHands posted before organisations has `entity === protocol`.
5
+ * An ask posted for an organisation has `entity` = the org, whose facilitator
6
+ * pays it, and `protocol` = the ask's own entity. So: the collection's entity
7
+ * when it carries terms, else the protocol when that is a different entity.
8
+ */
9
+ export declare function askEntityOf(collection: {
10
+ entity?: string | null;
11
+ protocol?: string | null;
12
+ }, entityCarriesTerms: boolean): string | null;
13
+ /** An entity's `linkedEntity` list, as the index or the chain gives it. */
14
+ export type Links = readonly ({
15
+ id?: string | null;
16
+ relationship?: string | null;
17
+ } | null | undefined)[] | null | undefined;
18
+ /** The orgs a deed names `requestedBy` (IXO shape, OpenHands HQ). */
19
+ export declare const requestedByOf: (links: Links) => string[];
20
+ /**
21
+ * The org that backs an ask's off-chain pay, or null — the one rule every
22
+ * reader (board walk, threads, receipt, Get paid) applies before it shows it.
23
+ *
24
+ * The deed (`collection.entity`) names the org `requestedBy` AND the org's IID
25
+ * lists the deed as `request`. Matched on id + relationship. Either side alone
26
+ * is unlinked: each side is written only by its own keys, so only the pair
27
+ * cannot be forged. A legacy org ask (collection.entity = the org) is never
28
+ * backed: the facilitator refuses it (NOT_DEED_ASK, owner ruling 2026-10-14),
29
+ * so no reader may promise its pay. It still reads for history (`askEntityOf`).
30
+ *
31
+ * `links` holds the collection entity's links and, for every org it names
32
+ * `requestedBy`, that org's (see `withOrgLinks`).
33
+ */
34
+ export declare function backingOrgOf(collection: {
35
+ entity?: string | null;
36
+ protocol?: string | null;
37
+ }, links: ReadonlyMap<string, Links>): string | null;
38
+ /** `first` (the collection entities' links) plus the links of every org they name `requestedBy`, read with `read` in one more round trip when there are any. */
39
+ export declare function withOrgLinks(first: ReadonlyMap<string, Links>, read: (ids: string[]) => Promise<ReadonlyMap<string, Links>>): Promise<Map<string, Links>>;
40
+ //# sourceMappingURL=askEntity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askEntity.d.ts","sourceRoot":"","sources":["../../../src/data/askEntity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,kBAAkB,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGxI;AAED,2EAA2E;AAC3E,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC;IAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AAE5H,qEAAqE;AACrE,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,KAAG,MAAM,EAAqG,CAAC;AAEzJ;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,IAAI,CAI/I;AAED,gKAAgK;AAChK,wBAAsB,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAG/J"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The entity an ask's own documents hang on (`#done`, `#payoutTerms`, its owner).
3
+ *
4
+ * Every ask OpenHands posted before organisations has `entity === protocol`.
5
+ * An ask posted for an organisation has `entity` = the org, whose facilitator
6
+ * pays it, and `protocol` = the ask's own entity. So: the collection's entity
7
+ * when it carries terms, else the protocol when that is a different entity.
8
+ */
9
+ export function askEntityOf(collection, entityCarriesTerms) {
10
+ if (entityCarriesTerms || !collection.protocol || collection.protocol === collection.entity)
11
+ return collection.entity ?? null;
12
+ return collection.protocol;
13
+ }
14
+ /** The orgs a deed names `requestedBy` (IXO shape, OpenHands HQ). */
15
+ export const requestedByOf = (links) => (links ?? []).flatMap((one) => (one?.relationship === "requestedBy" && one.id ? [one.id] : []));
16
+ /**
17
+ * The org that backs an ask's off-chain pay, or null — the one rule every
18
+ * reader (board walk, threads, receipt, Get paid) applies before it shows it.
19
+ *
20
+ * The deed (`collection.entity`) names the org `requestedBy` AND the org's IID
21
+ * lists the deed as `request`. Matched on id + relationship. Either side alone
22
+ * is unlinked: each side is written only by its own keys, so only the pair
23
+ * cannot be forged. A legacy org ask (collection.entity = the org) is never
24
+ * backed: the facilitator refuses it (NOT_DEED_ASK, owner ruling 2026-10-14),
25
+ * so no reader may promise its pay. It still reads for history (`askEntityOf`).
26
+ *
27
+ * `links` holds the collection entity's links and, for every org it names
28
+ * `requestedBy`, that org's (see `withOrgLinks`).
29
+ */
30
+ export function backingOrgOf(collection, links) {
31
+ const { entity, protocol } = collection;
32
+ if (!entity || !protocol || entity === protocol)
33
+ return null;
34
+ return requestedByOf(links.get(entity)).find((org) => (links.get(org) ?? []).some((one) => one?.id === entity && one?.relationship === "request")) ?? null;
35
+ }
36
+ /** `first` (the collection entities' links) plus the links of every org they name `requestedBy`, read with `read` in one more round trip when there are any. */
37
+ export async function withOrgLinks(first, read) {
38
+ const orgs = [...new Set([...first.values()].flatMap(requestedByOf))].filter((org) => !first.has(org));
39
+ return new Map([...first, ...(orgs.length > 0 ? await read(orgs) : [])]);
40
+ }
41
+ //# sourceMappingURL=askEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askEntity.js","sourceRoot":"","sources":["../../../src/data/askEntity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,UAAgE,EAAE,kBAA2B;IACvH,IAAI,kBAAkB,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,KAAK,UAAU,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC;IAC9H,OAAO,UAAU,CAAC,QAAQ,CAAC;AAC7B,CAAC;AAKD,qEAAqE;AACrE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,KAAK,aAAa,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEzJ;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,UAAgE,EAAE,KAAiC;IAC9H,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;IACxC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC;AAC7J,CAAC;AAED,gKAAgK;AAChK,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAiC,EAAE,IAA4D;IAChI,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvG,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type Links } from "./askEntity.ts";
2
+ /** These entities' `linkedEntity` lists, from the index. */
3
+ export declare function entityLinks(ids: string[]): Promise<Map<string, Links>>;
4
+ /** What `backingOrgOf` needs for these collection entities: their links and their `requestedBy` orgs' links. */
5
+ export declare const askLinks: (entityDids: string[]) => Promise<Map<string, Links>>;
6
+ //# sourceMappingURL=askLinks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askLinks.d.ts","sourceRoot":"","sources":["../../../src/data/askLinks.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE1D,4DAA4D;AAC5D,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAO5E;AAED,gHAAgH;AAChH,eAAO,MAAM,QAAQ,GAAU,YAAY,MAAM,EAAE,KAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAA6D,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { gql } from "./gql.js";
2
+ import { withOrgLinks } from "./askEntity.js";
3
+ /** These entities' `linkedEntity` lists, from the index. */
4
+ export async function entityLinks(ids) {
5
+ const out = new Map();
6
+ const unique = [...new Set(ids.filter(Boolean))];
7
+ if (unique.length === 0)
8
+ return out;
9
+ const data = await gql(`query { entities(filter: {id: {in: ${JSON.stringify(unique)}}}) { nodes { id linkedEntity } } }`, 30);
10
+ for (const node of data.entities?.nodes ?? [])
11
+ out.set(node.id, node.linkedEntity ?? []);
12
+ return out;
13
+ }
14
+ /** What `backingOrgOf` needs for these collection entities: their links and their `requestedBy` orgs' links. */
15
+ export const askLinks = async (entityDids) => withOrgLinks(await entityLinks(entityDids), entityLinks);
16
+ //# sourceMappingURL=askLinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askLinks.js","sourceRoot":"","sources":["../../../src/data/askLinks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAE1D,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAa;IAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAiB,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAkE,sCAAsC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;IAC/L,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACzF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gHAAgH;AAChH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,UAAoB,EAA+B,EAAE,CAAC,YAAY,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"assemble.d.ts","sourceRoot":"","sources":["../../../../src/data/board/assemble.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assemble.d.ts","sourceRoot":"","sources":["../../../../src/data/board/assemble.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,7 @@ export function askRow(ask, trust, km) {
55
55
  kind: ask.kind,
56
56
  does: activityOf(ask),
57
57
  ...(ask.via ? { via: ask.via } : {}),
58
+ ...(ask.payout ? { payout: ask.payout } : {}),
58
59
  ...(ask.holds ? { holds: ask.holds } : {}),
59
60
  ...(km !== undefined ? { km } : {}),
60
61
  trust
@@ -229,7 +230,7 @@ function tripCard(members, trust, near) {
229
230
  return { ...keys, row, poster: `trip:${lead.id}` };
230
231
  }
231
232
  function emptyFacets() {
232
- return { open: 0, near: null, kinds: zeroKinds(), does: zeroActivities(), pay: { "1": 0, "5": 0 } };
233
+ return { open: 0, near: null, kinds: zeroKinds(), does: zeroActivities(), doesNear: null, pay: { "1": 0, "5": 0 } };
233
234
  }
234
235
  /** Whether an ask is one of the things the query asks to do: its activities, widened by any old kinds. */
235
236
  const doesWanted = (query) => {
@@ -258,8 +259,20 @@ export function facetsOf(open, query) {
258
259
  if (payOk(ask) && kindOk(ask))
259
260
  facets.open += 1;
260
261
  }
262
+ /* Within reach, each kind counted the way `does` counts it, so the rail
263
+ beside "5 open within 20 km" never says 1,205 for one of its kinds. */
261
264
  if (query.near) {
262
- facets.near = open.filter((ask) => payOk(ask) && kindOk(ask) && ask.place && distanceKm(query.near, ask.place) <= query.km).length;
265
+ const doesNear = zeroActivities();
266
+ let near = 0;
267
+ for (const ask of open) {
268
+ if (!payOk(ask) || !ask.place || distanceKm(query.near, ask.place) > query.km)
269
+ continue;
270
+ doesNear[activityOf(ask)] += 1;
271
+ if (kindOk(ask))
272
+ near += 1;
273
+ }
274
+ facets.near = near;
275
+ facets.doesNear = doesNear;
263
276
  }
264
277
  return facets;
265
278
  }