@graphprotocol/grc-20 0.31.0 → 0.32.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 (363) hide show
  1. package/README.md +4 -0
  2. package/dist/constants.d.ts +7 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/constants.js +8 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/convert-ids.d.ts +2 -0
  7. package/dist/convert-ids.d.ts.map +1 -0
  8. package/dist/convert-ids.js +42 -0
  9. package/dist/convert-ids.js.map +1 -0
  10. package/dist/examples/ranks/create-ordinal-rank.js +4 -4
  11. package/dist/examples/ranks/create-ordinal-rank.js.map +1 -1
  12. package/dist/examples/ranks/create-weighted-rank.js +4 -4
  13. package/dist/examples/ranks/create-weighted-rank.js.map +1 -1
  14. package/dist/proto.d.ts +4 -8
  15. package/dist/proto.d.ts.map +1 -1
  16. package/dist/proto.js +4 -8
  17. package/dist/proto.js.map +1 -1
  18. package/dist/protov2.d.ts +11 -0
  19. package/dist/protov2.d.ts.map +1 -0
  20. package/dist/protov2.js +11 -0
  21. package/dist/protov2.js.map +1 -0
  22. package/dist/scripts/setup-rank-types.d.ts +2 -2
  23. package/dist/scripts/setup-rank-types.d.ts.map +1 -1
  24. package/dist/scripts/setup-rank-types.js.map +1 -1
  25. package/dist/src/codec/convert.d.ts +18 -0
  26. package/dist/src/codec/convert.d.ts.map +1 -0
  27. package/dist/src/codec/convert.js +188 -0
  28. package/dist/src/codec/convert.js.map +1 -0
  29. package/dist/src/core/account.d.ts +2 -2
  30. package/dist/src/core/account.d.ts.map +1 -1
  31. package/dist/src/core/account.js +2 -0
  32. package/dist/src/core/account.js.map +1 -1
  33. package/dist/src/core/account.test.js +69 -22
  34. package/dist/src/core/account.test.js.map +1 -1
  35. package/dist/src/core/blocks/data.d.ts +3 -3
  36. package/dist/src/core/blocks/data.d.ts.map +1 -1
  37. package/dist/src/core/blocks/data.js +2 -1
  38. package/dist/src/core/blocks/data.js.map +1 -1
  39. package/dist/src/core/blocks/data.test.js +74 -36
  40. package/dist/src/core/blocks/data.test.js.map +1 -1
  41. package/dist/src/core/blocks/image.d.ts +15 -0
  42. package/dist/src/core/blocks/image.d.ts.map +1 -0
  43. package/dist/src/core/blocks/image.js +15 -0
  44. package/dist/src/core/blocks/image.js.map +1 -0
  45. package/dist/src/core/blocks/text.d.ts +3 -3
  46. package/dist/src/core/blocks/text.d.ts.map +1 -1
  47. package/dist/src/core/blocks/text.js +2 -1
  48. package/dist/src/core/blocks/text.js.map +1 -1
  49. package/dist/src/core/blocks/text.test.js +79 -15
  50. package/dist/src/core/blocks/text.test.js.map +1 -1
  51. package/dist/src/core/idsv2/content.d.ts +59 -0
  52. package/dist/src/core/idsv2/content.d.ts.map +1 -0
  53. package/dist/src/core/idsv2/content.js +59 -0
  54. package/dist/src/core/idsv2/content.js.map +1 -0
  55. package/dist/src/core/idsv2/network.d.ts +5 -0
  56. package/dist/src/core/idsv2/network.d.ts.map +1 -0
  57. package/dist/src/core/idsv2/network.js +5 -0
  58. package/dist/src/core/idsv2/network.js.map +1 -0
  59. package/dist/src/core/idsv2/system.d.ts +222 -0
  60. package/dist/src/core/idsv2/system.d.ts.map +1 -0
  61. package/dist/src/core/idsv2/system.js +230 -0
  62. package/dist/src/core/idsv2/system.js.map +1 -0
  63. package/dist/src/core/image.d.ts +40 -0
  64. package/dist/src/core/image.d.ts.map +1 -0
  65. package/dist/src/core/image.js +76 -0
  66. package/dist/src/core/image.js.map +1 -0
  67. package/dist/src/core/image.test.d.ts +2 -0
  68. package/dist/src/core/image.test.d.ts.map +1 -0
  69. package/dist/src/core/image.test.js +52 -0
  70. package/dist/src/core/image.test.js.map +1 -0
  71. package/dist/src/core/relation.d.ts +88 -0
  72. package/dist/src/core/relation.d.ts.map +1 -0
  73. package/dist/src/core/relation.js +89 -0
  74. package/dist/src/core/relation.js.map +1 -0
  75. package/dist/src/core/relation.test.d.ts +2 -0
  76. package/dist/src/core/relation.test.d.ts.map +1 -0
  77. package/dist/src/core/relation.test.js +45 -0
  78. package/dist/src/core/relation.test.js.map +1 -0
  79. package/dist/src/core/triple.d.ts +50 -0
  80. package/dist/src/core/triple.d.ts.map +1 -0
  81. package/dist/src/core/triple.js +56 -0
  82. package/dist/src/core/triple.js.map +1 -0
  83. package/dist/src/core/triple.test.d.ts +2 -0
  84. package/dist/src/core/triple.test.d.ts.map +1 -0
  85. package/dist/src/core/triple.test.js +37 -0
  86. package/dist/src/core/triple.test.js.map +1 -0
  87. package/dist/src/encoding.d.ts +2 -1
  88. package/dist/src/encoding.d.ts.map +1 -1
  89. package/dist/src/encoding.js +2 -2
  90. package/dist/src/encoding.js.map +1 -1
  91. package/dist/src/encoding.test.d.ts +2 -0
  92. package/dist/src/encoding.test.d.ts.map +1 -0
  93. package/dist/src/encoding.test.js +644 -0
  94. package/dist/src/encoding.test.js.map +1 -0
  95. package/dist/src/encodings/get-register-space-calldata.d.ts +32 -0
  96. package/dist/src/encodings/get-register-space-calldata.d.ts.map +1 -0
  97. package/dist/src/encodings/get-register-space-calldata.js +39 -0
  98. package/dist/src/encodings/get-register-space-calldata.js.map +1 -0
  99. package/dist/src/encodings/get-register-space-calldata.test.d.ts +2 -0
  100. package/dist/src/encodings/get-register-space-calldata.test.d.ts.map +1 -0
  101. package/dist/src/encodings/get-register-space-calldata.test.js +15 -0
  102. package/dist/src/encodings/get-register-space-calldata.test.js.map +1 -0
  103. package/dist/src/full-flow-test.test.js +125 -37
  104. package/dist/src/full-flow-test.test.js.map +1 -1
  105. package/dist/src/graph/constants.d.ts +4 -0
  106. package/dist/src/graph/constants.d.ts.map +1 -1
  107. package/dist/src/graph/constants.js +14 -0
  108. package/dist/src/graph/constants.js.map +1 -1
  109. package/dist/src/graph/create-entity.d.ts +0 -1
  110. package/dist/src/graph/create-entity.d.ts.map +1 -1
  111. package/dist/src/graph/create-entity.js +155 -111
  112. package/dist/src/graph/create-entity.js.map +1 -1
  113. package/dist/src/graph/create-entity.test.js +339 -206
  114. package/dist/src/graph/create-entity.test.js.map +1 -1
  115. package/dist/src/graph/create-image.d.ts.map +1 -1
  116. package/dist/src/graph/create-image.js +15 -14
  117. package/dist/src/graph/create-image.js.map +1 -1
  118. package/dist/src/graph/create-image.test.js +109 -50
  119. package/dist/src/graph/create-image.test.js.map +1 -1
  120. package/dist/src/graph/create-property.d.ts.map +1 -1
  121. package/dist/src/graph/create-property.js +10 -19
  122. package/dist/src/graph/create-property.js.map +1 -1
  123. package/dist/src/graph/create-property.test.js +129 -19
  124. package/dist/src/graph/create-property.test.js.map +1 -1
  125. package/dist/src/graph/create-relation.d.ts +1 -3
  126. package/dist/src/graph/create-relation.d.ts.map +1 -1
  127. package/dist/src/graph/create-relation.js +21 -37
  128. package/dist/src/graph/create-relation.js.map +1 -1
  129. package/dist/src/graph/create-relation.test.js +186 -200
  130. package/dist/src/graph/create-relation.test.js.map +1 -1
  131. package/dist/src/graph/create-space.d.ts +4 -3
  132. package/dist/src/graph/create-space.d.ts.map +1 -1
  133. package/dist/src/graph/create-space.js +2 -2
  134. package/dist/src/graph/create-space.js.map +1 -1
  135. package/dist/src/graph/create-type.d.ts.map +1 -1
  136. package/dist/src/graph/create-type.js +16 -21
  137. package/dist/src/graph/create-type.js.map +1 -1
  138. package/dist/src/graph/create-type.test.js +76 -67
  139. package/dist/src/graph/create-type.test.js.map +1 -1
  140. package/dist/src/graph/delete-entity.d.ts +14 -0
  141. package/dist/src/graph/delete-entity.d.ts.map +1 -0
  142. package/dist/src/graph/delete-entity.js +21 -0
  143. package/dist/src/graph/delete-entity.js.map +1 -0
  144. package/dist/src/graph/delete-entity.test.d.ts +2 -0
  145. package/dist/src/graph/delete-entity.test.d.ts.map +1 -0
  146. package/dist/src/graph/delete-entity.test.js +23 -0
  147. package/dist/src/graph/delete-entity.test.js.map +1 -0
  148. package/dist/src/graph/delete-relation.d.ts.map +1 -1
  149. package/dist/src/graph/delete-relation.js +3 -6
  150. package/dist/src/graph/delete-relation.js.map +1 -1
  151. package/dist/src/graph/delete-relation.test.js +6 -8
  152. package/dist/src/graph/delete-relation.test.js.map +1 -1
  153. package/dist/src/graph/graph.test.d.ts +2 -0
  154. package/dist/src/graph/graph.test.d.ts.map +1 -0
  155. package/dist/src/graph/graph.test.js +46 -0
  156. package/dist/src/graph/graph.test.js.map +1 -0
  157. package/dist/src/graph/helpers/create-default-properties.d.ts +5 -0
  158. package/dist/src/graph/helpers/create-default-properties.d.ts.map +1 -0
  159. package/dist/src/graph/helpers/create-default-properties.js +44 -0
  160. package/dist/src/graph/helpers/create-default-properties.js.map +1 -0
  161. package/dist/src/graph/helpers/create-properties.d.ts +8 -0
  162. package/dist/src/graph/helpers/create-properties.d.ts.map +1 -0
  163. package/dist/src/graph/helpers/create-properties.js +53 -0
  164. package/dist/src/graph/helpers/create-properties.js.map +1 -0
  165. package/dist/src/graph/index.d.ts +1 -4
  166. package/dist/src/graph/index.d.ts.map +1 -1
  167. package/dist/src/graph/index.js +1 -4
  168. package/dist/src/graph/index.js.map +1 -1
  169. package/dist/src/graph/update-entity.d.ts.map +1 -1
  170. package/dist/src/graph/update-entity.js +109 -57
  171. package/dist/src/graph/update-entity.js.map +1 -1
  172. package/dist/src/graph/update-entity.test.js +167 -40
  173. package/dist/src/graph/update-entity.test.js.map +1 -1
  174. package/dist/src/graph/update-relation.d.ts +1 -2
  175. package/dist/src/graph/update-relation.d.ts.map +1 -1
  176. package/dist/src/graph/update-relation.js +12 -16
  177. package/dist/src/graph/update-relation.js.map +1 -1
  178. package/dist/src/graph/update-relation.test.js +75 -109
  179. package/dist/src/graph/update-relation.test.js.map +1 -1
  180. package/dist/src/graphv2/constants.d.ts +2 -0
  181. package/dist/src/graphv2/constants.d.ts.map +1 -0
  182. package/dist/src/graphv2/constants.js +2 -0
  183. package/dist/src/graphv2/constants.js.map +1 -0
  184. package/dist/src/graphv2/create-entity.d.ts +52 -0
  185. package/dist/src/graphv2/create-entity.d.ts.map +1 -0
  186. package/dist/src/graphv2/create-entity.js +140 -0
  187. package/dist/src/graphv2/create-entity.js.map +1 -0
  188. package/dist/src/graphv2/create-entity.test.d.ts +2 -0
  189. package/dist/src/graphv2/create-entity.test.d.ts.map +1 -0
  190. package/dist/src/graphv2/create-entity.test.js +158 -0
  191. package/dist/src/graphv2/create-entity.test.js.map +1 -0
  192. package/dist/src/graphv2/create-image.d.ts +28 -0
  193. package/dist/src/graphv2/create-image.d.ts.map +1 -0
  194. package/dist/src/graphv2/create-image.js +71 -0
  195. package/dist/src/graphv2/create-image.js.map +1 -0
  196. package/dist/src/graphv2/create-image.test.d.ts +2 -0
  197. package/dist/src/graphv2/create-image.test.d.ts.map +1 -0
  198. package/dist/src/graphv2/create-image.test.js +142 -0
  199. package/dist/src/graphv2/create-image.test.js.map +1 -0
  200. package/dist/src/graphv2/create-property.d.ts +22 -0
  201. package/dist/src/graphv2/create-property.d.ts.map +1 -0
  202. package/dist/src/graphv2/create-property.js +129 -0
  203. package/dist/src/graphv2/create-property.js.map +1 -0
  204. package/dist/src/graphv2/create-property.test.d.ts +2 -0
  205. package/dist/src/graphv2/create-property.test.d.ts.map +1 -0
  206. package/dist/src/graphv2/create-property.test.js +82 -0
  207. package/dist/src/graphv2/create-property.test.js.map +1 -0
  208. package/dist/src/graphv2/create-relation.d.ts +33 -0
  209. package/dist/src/graphv2/create-relation.d.ts.map +1 -0
  210. package/dist/src/graphv2/create-relation.js +66 -0
  211. package/dist/src/graphv2/create-relation.js.map +1 -0
  212. package/dist/src/graphv2/create-relation.test.d.ts +2 -0
  213. package/dist/src/graphv2/create-relation.test.d.ts.map +1 -0
  214. package/dist/src/graphv2/create-relation.test.js +208 -0
  215. package/dist/src/graphv2/create-relation.test.js.map +1 -0
  216. package/dist/src/graphv2/create-space.d.ts +13 -0
  217. package/dist/src/graphv2/create-space.d.ts.map +1 -0
  218. package/dist/src/graphv2/create-space.js +21 -0
  219. package/dist/src/graphv2/create-space.js.map +1 -0
  220. package/dist/src/graphv2/create-type.d.ts +22 -0
  221. package/dist/src/graphv2/create-type.d.ts.map +1 -0
  222. package/dist/src/graphv2/create-type.js +64 -0
  223. package/dist/src/graphv2/create-type.js.map +1 -0
  224. package/dist/src/graphv2/create-type.test.d.ts +2 -0
  225. package/dist/src/graphv2/create-type.test.d.ts.map +1 -0
  226. package/dist/src/graphv2/create-type.test.js +109 -0
  227. package/dist/src/graphv2/create-type.test.js.map +1 -0
  228. package/dist/src/graphv2/delete-entity.d.ts +14 -0
  229. package/dist/src/graphv2/delete-entity.d.ts.map +1 -0
  230. package/dist/src/graphv2/delete-entity.js +21 -0
  231. package/dist/src/graphv2/delete-entity.js.map +1 -0
  232. package/dist/src/graphv2/delete-entity.test.d.ts +2 -0
  233. package/dist/src/graphv2/delete-entity.test.d.ts.map +1 -0
  234. package/dist/src/graphv2/delete-entity.test.js +24 -0
  235. package/dist/src/graphv2/delete-entity.test.js.map +1 -0
  236. package/dist/src/graphv2/delete-relation.d.ts +14 -0
  237. package/dist/src/graphv2/delete-relation.d.ts.map +1 -0
  238. package/dist/src/graphv2/delete-relation.js +21 -0
  239. package/dist/src/graphv2/delete-relation.js.map +1 -0
  240. package/dist/src/graphv2/delete-relation.test.d.ts +2 -0
  241. package/dist/src/graphv2/delete-relation.test.d.ts.map +1 -0
  242. package/dist/src/graphv2/delete-relation.test.js +24 -0
  243. package/dist/src/graphv2/delete-relation.test.js.map +1 -0
  244. package/dist/src/graphv2/index.d.ts +12 -0
  245. package/dist/src/graphv2/index.d.ts.map +1 -0
  246. package/dist/src/graphv2/index.js +12 -0
  247. package/dist/src/graphv2/index.js.map +1 -0
  248. package/dist/src/graphv2/remove-entity-properties.d.ts +25 -0
  249. package/dist/src/graphv2/remove-entity-properties.d.ts.map +1 -0
  250. package/dist/src/graphv2/remove-entity-properties.js +24 -0
  251. package/dist/src/graphv2/remove-entity-properties.js.map +1 -0
  252. package/dist/src/graphv2/unset-entity-values.d.ts +21 -0
  253. package/dist/src/graphv2/unset-entity-values.d.ts.map +1 -0
  254. package/dist/src/graphv2/unset-entity-values.js +26 -0
  255. package/dist/src/graphv2/unset-entity-values.js.map +1 -0
  256. package/dist/src/graphv2/unset-entity-values.test.d.ts +2 -0
  257. package/dist/src/graphv2/unset-entity-values.test.d.ts.map +1 -0
  258. package/dist/src/graphv2/unset-entity-values.test.js +40 -0
  259. package/dist/src/graphv2/unset-entity-values.test.js.map +1 -0
  260. package/dist/src/graphv2/unset-relation-fields.d.ts +25 -0
  261. package/dist/src/graphv2/unset-relation-fields.d.ts.map +1 -0
  262. package/dist/src/graphv2/unset-relation-fields.js +34 -0
  263. package/dist/src/graphv2/unset-relation-fields.js.map +1 -0
  264. package/dist/src/graphv2/unset-relation-fields.test.d.ts +2 -0
  265. package/dist/src/graphv2/unset-relation-fields.test.d.ts.map +1 -0
  266. package/dist/src/graphv2/unset-relation-fields.test.js +64 -0
  267. package/dist/src/graphv2/unset-relation-fields.test.js.map +1 -0
  268. package/dist/src/graphv2/update-entity.d.ts +28 -0
  269. package/dist/src/graphv2/update-entity.d.ts.map +1 -0
  270. package/dist/src/graphv2/update-entity.js +73 -0
  271. package/dist/src/graphv2/update-entity.js.map +1 -0
  272. package/dist/src/graphv2/update-entity.test.d.ts +2 -0
  273. package/dist/src/graphv2/update-entity.test.d.ts.map +1 -0
  274. package/dist/src/graphv2/update-entity.test.js +116 -0
  275. package/dist/src/graphv2/update-entity.test.js.map +1 -0
  276. package/dist/src/graphv2/update-relation.d.ts +21 -0
  277. package/dist/src/graphv2/update-relation.d.ts.map +1 -0
  278. package/dist/src/graphv2/update-relation.js +37 -0
  279. package/dist/src/graphv2/update-relation.js.map +1 -0
  280. package/dist/src/id-utils.d.ts +6 -0
  281. package/dist/src/id-utils.d.ts.map +1 -1
  282. package/dist/src/id-utils.js +13 -0
  283. package/dist/src/id-utils.js.map +1 -1
  284. package/dist/src/idv2.d.ts +27 -0
  285. package/dist/src/idv2.d.ts.map +1 -0
  286. package/dist/src/idv2.js +88 -0
  287. package/dist/src/idv2.js.map +1 -0
  288. package/dist/src/idv2.test.d.ts +2 -0
  289. package/dist/src/idv2.test.d.ts.map +1 -0
  290. package/dist/src/idv2.test.js +26 -0
  291. package/dist/src/idv2.test.js.map +1 -0
  292. package/dist/src/image.d.ts +8 -0
  293. package/dist/src/image.d.ts.map +1 -0
  294. package/dist/src/image.js +8 -0
  295. package/dist/src/image.js.map +1 -0
  296. package/dist/src/ipfs.d.ts +7 -6
  297. package/dist/src/ipfs.d.ts.map +1 -1
  298. package/dist/src/ipfs.js +31 -11
  299. package/dist/src/ipfs.js.map +1 -1
  300. package/dist/src/ipfs.test.js +130 -17
  301. package/dist/src/ipfs.test.js.map +1 -1
  302. package/dist/src/ipfsv2.d.ts +96 -0
  303. package/dist/src/ipfsv2.d.ts.map +1 -0
  304. package/dist/src/ipfsv2.js +163 -0
  305. package/dist/src/ipfsv2.js.map +1 -0
  306. package/dist/src/ipfsv2.test.d.ts +2 -0
  307. package/dist/src/ipfsv2.test.d.ts.map +1 -0
  308. package/dist/src/ipfsv2.test.js +22 -0
  309. package/dist/src/ipfsv2.test.js.map +1 -0
  310. package/dist/src/proto/editv2.d.ts +11 -0
  311. package/dist/src/proto/editv2.d.ts.map +1 -0
  312. package/dist/src/proto/editv2.js +81 -0
  313. package/dist/src/proto/editv2.js.map +1 -0
  314. package/dist/src/proto/editv2.test.d.ts +2 -0
  315. package/dist/src/proto/editv2.test.d.ts.map +1 -0
  316. package/dist/src/proto/editv2.test.js +211 -0
  317. package/dist/src/proto/editv2.test.js.map +1 -0
  318. package/dist/src/proto/gen/src/proto/ipfsv2_pb.d.ts +410 -0
  319. package/dist/src/proto/gen/src/proto/ipfsv2_pb.d.ts.map +1 -0
  320. package/dist/src/proto/gen/src/proto/ipfsv2_pb.js +536 -0
  321. package/dist/src/proto/gen/src/proto/ipfsv2_pb.js.map +1 -0
  322. package/dist/src/proto/index.d.ts +7 -1
  323. package/dist/src/proto/index.d.ts.map +1 -1
  324. package/dist/src/proto/index.js +6 -1
  325. package/dist/src/proto/index.js.map +1 -1
  326. package/dist/src/ranks/create-rank.d.ts.map +1 -1
  327. package/dist/src/ranks/create-rank.js +54 -47
  328. package/dist/src/ranks/create-rank.js.map +1 -1
  329. package/dist/src/ranks/create-rank.test.js +181 -94
  330. package/dist/src/ranks/create-rank.test.js.map +1 -1
  331. package/dist/src/relation.d.ts +7 -0
  332. package/dist/src/relation.d.ts.map +1 -0
  333. package/dist/src/relation.js +7 -0
  334. package/dist/src/relation.js.map +1 -0
  335. package/dist/src/smart-wallet-2.test-invalid.d.ts +2 -0
  336. package/dist/src/smart-wallet-2.test-invalid.d.ts.map +1 -0
  337. package/dist/src/smart-wallet-2.test-invalid.js +49 -0
  338. package/dist/src/smart-wallet-2.test-invalid.js.map +1 -0
  339. package/dist/src/smart-wallet-2.test.d.ts +2 -0
  340. package/dist/src/smart-wallet-2.test.d.ts.map +1 -0
  341. package/dist/src/smart-wallet-2.test.js +49 -0
  342. package/dist/src/smart-wallet-2.test.js.map +1 -0
  343. package/dist/src/system-ids-v2.d.ts +7 -0
  344. package/dist/src/system-ids-v2.d.ts.map +1 -0
  345. package/dist/src/system-ids-v2.js +7 -0
  346. package/dist/src/system-ids-v2.js.map +1 -0
  347. package/dist/src/triple.d.ts +7 -0
  348. package/dist/src/triple.d.ts.map +1 -0
  349. package/dist/src/triple.js +7 -0
  350. package/dist/src/triple.js.map +1 -0
  351. package/dist/src/types-backup.d.ts +134 -0
  352. package/dist/src/types-backup.d.ts.map +1 -0
  353. package/dist/src/types-backup.js +13 -0
  354. package/dist/src/types-backup.js.map +1 -0
  355. package/dist/src/types.d.ts +52 -89
  356. package/dist/src/types.d.ts.map +1 -1
  357. package/dist/src/types.js.map +1 -1
  358. package/dist/src/typesv2.d.ts +173 -0
  359. package/dist/src/typesv2.d.ts.map +1 -0
  360. package/dist/src/typesv2.js +8 -0
  361. package/dist/src/typesv2.js.map +1 -0
  362. package/dist/tsconfig.tsbuildinfo +1 -0
  363. package/package.json +2 -5
@@ -1,33 +1,80 @@
1
1
  import { expect, it } from 'vitest';
2
- import { Id } from '../id.js';
3
- import { NetworkIds, SystemIds } from '../system-ids.js';
2
+ import { toGrcId } from '../id-utils.js';
4
3
  import { make } from './account.js';
4
+ import { ETHEREUM } from './ids/network.js';
5
+ import { ACCOUNT_TYPE, ADDRESS_PROPERTY, NAME_PROPERTY, NETWORK_PROPERTY, TYPES_PROPERTY } from './ids/system.js';
5
6
  const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
6
7
  it('should generate ops for an account entity', () => {
7
8
  const { accountId, ops } = make(ZERO_ADDRESS);
8
9
  const [entityOp, accountTypeOp, networkOp] = ops;
9
- expect(entityOp?.type).toBe('UPDATE_ENTITY');
10
- if (entityOp?.type === 'UPDATE_ENTITY' && entityOp?.entity.values?.[0]) {
11
- expect(entityOp.entity.values[0].property).toBe(SystemIds.ADDRESS_PROPERTY);
12
- expect(entityOp.entity.values[0].value).toBe(ZERO_ADDRESS);
13
- expect(entityOp.entity.id).toBe(Id(accountId));
10
+ // Verify we have the expected number of ops
11
+ expect(ops.length).toBe(3);
12
+ // Check createEntity op for the account
13
+ expect(entityOp?.type).toBe('createEntity');
14
+ const createEntityOp = entityOp;
15
+ expect(createEntityOp.id).toEqual(toGrcId(accountId));
16
+ // Verify ADDRESS_PROPERTY value
17
+ const addressValue = createEntityOp.values.find(v => {
18
+ const propBytes = v.property;
19
+ return propBytes.every((b, i) => b === toGrcId(ADDRESS_PROPERTY)[i]);
20
+ });
21
+ expect(addressValue).toBeDefined();
22
+ expect(addressValue?.value.type).toBe('text');
23
+ if (addressValue?.value.type === 'text') {
24
+ expect(addressValue.value.value).toBe(ZERO_ADDRESS);
14
25
  }
15
- if (entityOp?.type === 'UPDATE_ENTITY' && entityOp?.entity.values?.[1]) {
16
- expect(entityOp.entity.values[1].property).toBe(SystemIds.NAME_PROPERTY);
17
- expect(entityOp.entity.values[1].value).toBe(ZERO_ADDRESS);
18
- expect(entityOp.entity.id).toBe(Id(accountId));
26
+ // Verify NAME_PROPERTY value
27
+ const nameValue = createEntityOp.values.find(v => {
28
+ const propBytes = v.property;
29
+ return propBytes.every((b, i) => b === toGrcId(NAME_PROPERTY)[i]);
30
+ });
31
+ expect(nameValue).toBeDefined();
32
+ expect(nameValue?.value.type).toBe('text');
33
+ if (nameValue?.value.type === 'text') {
34
+ expect(nameValue.value.value).toBe(ZERO_ADDRESS);
19
35
  }
20
- expect(accountTypeOp?.type).toBe('CREATE_RELATION');
21
- if (accountTypeOp?.type === 'CREATE_RELATION') {
22
- expect(accountTypeOp.relation.type).toBe(SystemIds.TYPES_PROPERTY);
23
- expect(accountTypeOp.relation.toEntity).toBe(SystemIds.ACCOUNT_TYPE);
24
- expect(accountTypeOp.relation.fromEntity).toBe(Id(accountId));
25
- }
26
- expect(networkOp?.type).toBe('CREATE_RELATION');
27
- if (networkOp?.type === 'CREATE_RELATION') {
28
- expect(networkOp.relation.type).toBe(SystemIds.NETWORK_PROPERTY);
29
- expect(networkOp.relation.toEntity).toBe(NetworkIds.ETHEREUM);
30
- expect(networkOp.relation.fromEntity).toBe(Id(accountId));
36
+ // Check types relation to ACCOUNT_TYPE
37
+ expect(accountTypeOp?.type).toBe('createRelation');
38
+ const accountTypeRelOp = accountTypeOp;
39
+ expect(accountTypeRelOp.from).toEqual(toGrcId(accountId));
40
+ expect(accountTypeRelOp.to).toEqual(toGrcId(ACCOUNT_TYPE));
41
+ expect(accountTypeRelOp.relationType).toEqual(toGrcId(TYPES_PROPERTY));
42
+ // Check network relation to ETHEREUM
43
+ expect(networkOp?.type).toBe('createRelation');
44
+ const networkRelOp = networkOp;
45
+ expect(networkRelOp.from).toEqual(toGrcId(accountId));
46
+ expect(networkRelOp.to).toEqual(toGrcId(ETHEREUM));
47
+ expect(networkRelOp.relationType).toEqual(toGrcId(NETWORK_PROPERTY));
48
+ });
49
+ it('should use checksum address format', () => {
50
+ // Lowercase address should be converted to checksum format
51
+ const lowercaseAddress = '0xabcd1234567890abcdef1234567890abcdef1234';
52
+ const { ops } = make(lowercaseAddress);
53
+ const entityOp = ops[0];
54
+ const addressValue = entityOp.values.find(v => {
55
+ const propBytes = v.property;
56
+ return propBytes.every((b, i) => b === toGrcId(ADDRESS_PROPERTY)[i]);
57
+ });
58
+ expect(addressValue).toBeDefined();
59
+ expect(addressValue?.value.type).toBe('text');
60
+ if (addressValue?.value.type === 'text') {
61
+ // Should be checksum formatted (mixed case)
62
+ expect(addressValue.value.value).not.toBe(lowercaseAddress);
63
+ expect(addressValue.value.value.toLowerCase()).toBe(lowercaseAddress.toLowerCase());
31
64
  }
32
65
  });
66
+ it('should generate unique account IDs for different calls', () => {
67
+ const { accountId: id1 } = make(ZERO_ADDRESS);
68
+ const { accountId: id2 } = make(ZERO_ADDRESS);
69
+ expect(id1).not.toBe(id2);
70
+ });
71
+ it('should generate correct number of ops for account creation', () => {
72
+ const { ops } = make(ZERO_ADDRESS);
73
+ // 1 createEntity + 1 createRelation (type) + 1 createRelation (network)
74
+ expect(ops.length).toBe(3);
75
+ // Verify op types in correct order
76
+ expect(ops[0]?.type).toBe('createEntity');
77
+ expect(ops[1]?.type).toBe('createRelation');
78
+ expect(ops[2]?.type).toBe('createRelation');
79
+ });
33
80
  //# sourceMappingURL=account.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.test.js","sourceRoot":"","sources":["../../../src/core/account.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account.test.js","sourceRoot":"","sources":["../../../src/core/account.test.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * @since 0.0.6
6
6
  */
7
- import type { Op } from '../../types.js';
7
+ import type { Op as GrcOp } from '@geoprotocol/grc-20';
8
8
  type DataBlockSourceType = 'QUERY' | 'COLLECTION' | 'GEO';
9
9
  type DataBlockParams = {
10
10
  fromId: string;
@@ -27,8 +27,8 @@ type DataBlockParams = {
27
27
  * ```
28
28
  *
29
29
  * @param param args {@link TextBlockParams}
30
- * @returns ops – The ops for the Data Block entity: {@link Op}[]
30
+ * @returns ops – The ops for the Data Block entity: {@link GrcOp}[]
31
31
  */
32
- export declare function make({ fromId, sourceType, position, name }: DataBlockParams): Op[];
32
+ export declare function make({ fromId, sourceType, position, name }: DataBlockParams): GrcOp[];
33
33
  export {};
34
34
  //# sourceMappingURL=data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/core/blocks/data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAGzC,KAAK,mBAAmB,GAAG,OAAO,GAAG,YAAY,GAAG,KAAK,CAAC;AAa1D,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,eAAe,GAAG,EAAE,EAAE,CAwClF"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/core/blocks/data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAQvD,KAAK,mBAAmB,GAAG,OAAO,GAAG,YAAY,GAAG,KAAK,CAAC;AAa1D,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,eAAe,GAAG,KAAK,EAAE,CAyCrF"}
@@ -35,7 +35,7 @@ function getSourceTypeId(sourceType) {
35
35
  * ```
36
36
  *
37
37
  * @param param args {@link TextBlockParams}
38
- * @returns ops – The ops for the Data Block entity: {@link Op}[]
38
+ * @returns ops – The ops for the Data Block entity: {@link GrcOp}[]
39
39
  */
40
40
  export function make({ fromId, sourceType, position, name }) {
41
41
  const newBlockId = generate();
@@ -65,6 +65,7 @@ export function make({ fromId, sourceType, position, name }) {
65
65
  values: [
66
66
  {
67
67
  property: NAME_PROPERTY,
68
+ type: 'text',
68
69
  value: name,
69
70
  },
70
71
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../src/core/blocks/data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIrH,SAAS,eAAe,CAAC,UAA+B;IACtD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,YAAY;YACf,OAAO,SAAS,CAAC,sBAAsB,CAAC;QAC1C,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,sBAAsB,CAAC;QAC1C,KAAK,OAAO;YACV,OAAO,SAAS,CAAC,iBAAiB,CAAC;IACvC,CAAC;AACH,CAAC;AASD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAmB;IAC1E,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;IAE9B,MAAM,GAAG,GAAS,EAAE,CAAC;IACrB,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC;QAC/C,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAE9B,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG,cAAc,CAAC;QACrD,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC;KACtC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAEpC,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAC;QACnD,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC;QACxB,QAAQ;KACT,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAElC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;YACpC,EAAE,EAAE,UAAU;YACd,MAAM,EAAE;gBACN;oBACE,QAAQ,EAAE,aAAa;oBACvB,KAAK,EAAE,IAAI;iBACZ;aACF;SACF,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../src/core/blocks/data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIrH,SAAS,eAAe,CAAC,UAA+B;IACtD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,YAAY;YACf,OAAO,SAAS,CAAC,sBAAsB,CAAC;QAC1C,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,sBAAsB,CAAC;QAC1C,KAAK,OAAO;YACV,OAAO,SAAS,CAAC,iBAAiB,CAAC;IACvC,CAAC;AACH,CAAC;AASD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAmB;IAC1E,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;IAE9B,MAAM,GAAG,GAAY,EAAE,CAAC;IACxB,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC;QAC/C,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAE9B,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG,cAAc,CAAC;QACrD,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC;KACtC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAEpC,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAC;QACnD,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC;QACxB,QAAQ;KACT,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAElC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;YACpC,EAAE,EAAE,UAAU;YACd,MAAM,EAAE;gBACN;oBACE,QAAQ,EAAE,aAAa;oBACvB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,IAAI;iBACZ;aACF;SACF,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,58 +1,96 @@
1
1
  import { expect, it } from 'vitest';
2
2
  import { Id } from '../../id.js';
3
+ import { toGrcId } from '../../id-utils.js';
3
4
  import { SystemIds } from '../../system-ids.js';
5
+ import { BLOCKS, DATA_BLOCK, DATA_SOURCE_TYPE_RELATION_TYPE, NAME_PROPERTY, QUERY_DATA_SOURCE, TYPES_PROPERTY, } from '../ids/system.js';
4
6
  import { make } from './data.js';
5
7
  it('should generate ops for a data block entity', () => {
8
+ const fromId = Id('5871e8f7b71948979c4dcf7c518d32ef');
6
9
  const ops = make({
7
- fromId: '5871e8f7b71948979c4dcf7c518d32ef',
10
+ fromId,
8
11
  sourceType: 'QUERY',
9
12
  position: 'test-position',
10
13
  });
11
14
  const [blockTypeOp, blockSourceTypeOp, blockRelationOp] = ops;
12
- expect(blockTypeOp?.type).toBe('CREATE_RELATION');
13
- if (blockTypeOp?.type === 'CREATE_RELATION') {
14
- expect(blockTypeOp?.relation.type).toBe(SystemIds.TYPES_PROPERTY);
15
- expect(blockTypeOp?.relation.toEntity).toBe(SystemIds.DATA_BLOCK);
16
- }
17
- expect(blockSourceTypeOp?.type).toBe('CREATE_RELATION');
18
- if (blockSourceTypeOp?.type === 'CREATE_RELATION') {
19
- expect(blockSourceTypeOp?.relation.type).toBe(SystemIds.DATA_SOURCE_TYPE_RELATION_TYPE);
20
- expect(blockSourceTypeOp?.relation.toEntity).toBe(SystemIds.QUERY_DATA_SOURCE);
21
- }
22
- expect(blockRelationOp?.type).toBe('CREATE_RELATION');
23
- if (blockRelationOp?.type === 'CREATE_RELATION') {
24
- expect(blockRelationOp?.relation.type).toBe(SystemIds.BLOCKS);
25
- expect(blockRelationOp?.relation.fromEntity).toBe(Id('5871e8f7b71948979c4dcf7c518d32ef'));
26
- }
27
15
  expect(ops.length).toBe(3);
16
+ // Check types relation for data block
17
+ expect(blockTypeOp?.type).toBe('createRelation');
18
+ const typeRelOp = blockTypeOp;
19
+ expect(typeRelOp.to).toEqual(toGrcId(DATA_BLOCK));
20
+ expect(typeRelOp.relationType).toEqual(toGrcId(TYPES_PROPERTY));
21
+ // Check data source type relation
22
+ expect(blockSourceTypeOp?.type).toBe('createRelation');
23
+ const sourceTypeRelOp = blockSourceTypeOp;
24
+ expect(sourceTypeRelOp.to).toEqual(toGrcId(QUERY_DATA_SOURCE));
25
+ expect(sourceTypeRelOp.relationType).toEqual(toGrcId(DATA_SOURCE_TYPE_RELATION_TYPE));
26
+ // Check blocks relation
27
+ expect(blockRelationOp?.type).toBe('createRelation');
28
+ const blocksRelOp = blockRelationOp;
29
+ expect(blocksRelOp.from).toEqual(toGrcId(fromId));
30
+ expect(blocksRelOp.relationType).toEqual(toGrcId(BLOCKS));
31
+ expect(blocksRelOp.position).toBe('test-position');
28
32
  });
29
33
  it('should generate ops for a data block entity with a name', () => {
34
+ const fromId = Id('5871e8f7b71948979c4dcf7c518d32ef');
30
35
  const ops = make({
31
- fromId: '5871e8f7b71948979c4dcf7c518d32ef',
36
+ fromId,
32
37
  sourceType: 'QUERY',
33
38
  position: 'test-position',
34
39
  name: 'test-name',
35
40
  });
36
41
  const [blockTypeOp, blockSourceTypeOp, blockRelationOp, blockNameOp] = ops;
37
- expect(blockTypeOp?.type).toBe('CREATE_RELATION');
38
- if (blockTypeOp?.type === 'CREATE_RELATION') {
39
- expect(blockTypeOp?.relation.type).toBe(SystemIds.TYPES_PROPERTY);
40
- expect(blockTypeOp?.relation.toEntity).toBe(SystemIds.DATA_BLOCK);
41
- }
42
- expect(blockSourceTypeOp?.type).toBe('CREATE_RELATION');
43
- if (blockSourceTypeOp?.type === 'CREATE_RELATION') {
44
- expect(blockSourceTypeOp?.relation.type).toBe(SystemIds.DATA_SOURCE_TYPE_RELATION_TYPE);
45
- expect(blockSourceTypeOp?.relation.toEntity).toBe(SystemIds.QUERY_DATA_SOURCE);
46
- }
47
- expect(blockRelationOp?.type).toBe('CREATE_RELATION');
48
- if (blockRelationOp?.type === 'CREATE_RELATION') {
49
- expect(blockRelationOp?.relation.type).toBe(SystemIds.BLOCKS);
50
- expect(blockRelationOp?.relation.fromEntity).toBe(Id('5871e8f7b71948979c4dcf7c518d32ef'));
51
- }
52
- expect(blockNameOp?.type).toBe('UPDATE_ENTITY');
53
- if (blockNameOp?.type === 'UPDATE_ENTITY' && blockNameOp?.entity.values?.[0]) {
54
- expect(blockNameOp.entity.values[0].property).toBe(SystemIds.NAME_PROPERTY);
55
- expect(blockNameOp.entity.values[0].value).toBe('test-name');
42
+ expect(ops.length).toBe(4);
43
+ // Check types relation for data block
44
+ expect(blockTypeOp?.type).toBe('createRelation');
45
+ const typeRelOp = blockTypeOp;
46
+ expect(typeRelOp.to).toEqual(toGrcId(DATA_BLOCK));
47
+ expect(typeRelOp.relationType).toEqual(toGrcId(TYPES_PROPERTY));
48
+ // Check data source type relation
49
+ expect(blockSourceTypeOp?.type).toBe('createRelation');
50
+ const sourceTypeRelOp = blockSourceTypeOp;
51
+ expect(sourceTypeRelOp.to).toEqual(toGrcId(QUERY_DATA_SOURCE));
52
+ expect(sourceTypeRelOp.relationType).toEqual(toGrcId(DATA_SOURCE_TYPE_RELATION_TYPE));
53
+ // Check blocks relation
54
+ expect(blockRelationOp?.type).toBe('createRelation');
55
+ const blocksRelOp = blockRelationOp;
56
+ expect(blocksRelOp.from).toEqual(toGrcId(fromId));
57
+ expect(blocksRelOp.relationType).toEqual(toGrcId(BLOCKS));
58
+ // Check name entity update
59
+ expect(blockNameOp?.type).toBe('createEntity');
60
+ const nameEntityOp = blockNameOp;
61
+ // Verify name value
62
+ const nameValue = nameEntityOp.values.find(v => {
63
+ const propBytes = v.property;
64
+ return propBytes.every((b, i) => b === toGrcId(NAME_PROPERTY)[i]);
65
+ });
66
+ expect(nameValue).toBeDefined();
67
+ expect(nameValue?.value.type).toBe('text');
68
+ if (nameValue?.value.type === 'text') {
69
+ expect(nameValue.value.value).toBe('test-name');
56
70
  }
57
71
  });
72
+ it('should generate ops for a COLLECTION data source type', () => {
73
+ const fromId = Id('5871e8f7b71948979c4dcf7c518d32ef');
74
+ const ops = make({
75
+ fromId,
76
+ sourceType: 'COLLECTION',
77
+ position: 'a',
78
+ });
79
+ const sourceTypeRelOp = ops[1];
80
+ expect(sourceTypeRelOp.type).toBe('createRelation');
81
+ expect(sourceTypeRelOp.to).toEqual(toGrcId(SystemIds.COLLECTION_DATA_SOURCE));
82
+ expect(sourceTypeRelOp.relationType).toEqual(toGrcId(DATA_SOURCE_TYPE_RELATION_TYPE));
83
+ });
84
+ it('should generate ops for a GEO data source type', () => {
85
+ const fromId = Id('5871e8f7b71948979c4dcf7c518d32ef');
86
+ const ops = make({
87
+ fromId,
88
+ sourceType: 'GEO',
89
+ position: 'a',
90
+ });
91
+ const sourceTypeRelOp = ops[1];
92
+ expect(sourceTypeRelOp.type).toBe('createRelation');
93
+ expect(sourceTypeRelOp.to).toEqual(toGrcId(SystemIds.ALL_OF_GEO_DATA_SOURCE));
94
+ expect(sourceTypeRelOp.relationType).toEqual(toGrcId(DATA_SOURCE_TYPE_RELATION_TYPE));
95
+ });
58
96
  //# sourceMappingURL=data.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.test.js","sourceRoot":"","sources":["../../../../src/core/blocks/data.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.test.js","sourceRoot":"","sources":["../../../../src/core/blocks/data.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * This module provides utility functions for working with image blocks
3
+ * in TypeScript.
4
+ *
5
+ * @since 0.0.6
6
+ */
7
+ /**
8
+ * Image entities and Image Blocks are functionally the same thing. The
9
+ * relation consuming the entity is what gives it contextual meaning. e.g.,
10
+ * if the Image is consumed by an Avatar relation, then we know the image
11
+ * is an avatar. If it's consumed by a Block relation, then we know the
12
+ * image is a block.
13
+ */
14
+ export { make } from '../image.js';
15
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../../src/core/blocks/image.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * This module provides utility functions for working with image blocks
3
+ * in TypeScript.
4
+ *
5
+ * @since 0.0.6
6
+ */
7
+ /**
8
+ * Image entities and Image Blocks are functionally the same thing. The
9
+ * relation consuming the entity is what gives it contextual meaning. e.g.,
10
+ * if the Image is consumed by an Avatar relation, then we know the image
11
+ * is an avatar. If it's consumed by a Block relation, then we know the
12
+ * image is a block.
13
+ */
14
+ export { make } from '../image.js';
15
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../src/core/blocks/image.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * @since 0.0.6
6
6
  */
7
- import type { Op } from '../../types.js';
7
+ import type { Op as GrcOp } from '@geoprotocol/grc-20';
8
8
  type TextBlockParams = {
9
9
  fromId: string;
10
10
  text: string;
@@ -24,8 +24,8 @@ type TextBlockParams = {
24
24
  * ```
25
25
  *
26
26
  * @param param args {@link TextBlockParams}
27
- * @returns ops – The ops for the Text Block entity: {@link Op}[]
27
+ * @returns ops – The ops for the Text Block entity: {@link GrcOp}[]
28
28
  */
29
- export declare function make({ fromId, text, position }: TextBlockParams): Op[];
29
+ export declare function make({ fromId, text, position }: TextBlockParams): GrcOp[];
30
30
  export {};
31
31
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/core/blocks/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAGzC,KAAK,eAAe,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,EAAE,EAAE,CAgCtE"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/core/blocks/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAOvD,KAAK,eAAe,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,KAAK,EAAE,CAiCzE"}
@@ -23,7 +23,7 @@ import { BLOCKS, MARKDOWN_CONTENT, TEXT_BLOCK, TYPES_PROPERTY } from '../ids/sys
23
23
  * ```
24
24
  *
25
25
  * @param param args {@link TextBlockParams}
26
- * @returns ops – The ops for the Text Block entity: {@link Op}[]
26
+ * @returns ops – The ops for the Text Block entity: {@link GrcOp}[]
27
27
  */
28
28
  export function make({ fromId, text, position }) {
29
29
  const newBlockId = generate();
@@ -39,6 +39,7 @@ export function make({ fromId, text, position }) {
39
39
  values: [
40
40
  {
41
41
  property: MARKDOWN_CONTENT,
42
+ type: 'text',
42
43
  value: text,
43
44
  },
44
45
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/core/blocks/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIxF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAmB;IAC9D,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;IAE9B,MAAM,GAAG,GAAS,EAAE,CAAC;IAErB,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC;QAC/C,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAE9B,MAAM,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,YAAY,CAAC;QACrD,EAAE,EAAE,UAAU;QACd,MAAM,EAAE;YACN;gBACE,QAAQ,EAAE,gBAAgB;gBAC1B,KAAK,EAAE,IAAI;aACZ;SACF;KACF,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,CAAC;IAEtC,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAC;QACnD,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,UAAU;QACpB,QAAQ;KACT,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAElC,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/core/blocks/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIxF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAmB;IAC9D,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;IAE9B,MAAM,GAAG,GAAY,EAAE,CAAC;IAExB,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC;QAC/C,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAE9B,MAAM,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,YAAY,CAAC;QACrD,EAAE,EAAE,UAAU;QACd,MAAM,EAAE;YACN;gBACE,QAAQ,EAAE,gBAAgB;gBAC1B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;SACF;KACF,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,CAAC;IAEtC,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAC;QACnD,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,UAAU;QACpB,QAAQ;KACT,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAElC,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,29 +1,93 @@
1
1
  import { expect, it } from 'vitest';
2
2
  import { Id } from '../../id.js';
3
- import { SystemIds } from '../../system-ids.js';
3
+ import { toGrcId } from '../../id-utils.js';
4
+ import { BLOCKS, MARKDOWN_CONTENT, TEXT_BLOCK, TYPES_PROPERTY } from '../ids/system.js';
4
5
  import { make } from './text.js';
5
6
  it('should generate ops for a text block entity', () => {
7
+ const fromId = Id('5871e8f7b71948979c4dcf7c518d32ef');
6
8
  const ops = make({
7
- fromId: '5871e8f7b71948979c4dcf7c518d32ef',
9
+ fromId,
8
10
  text: 'test-text',
9
11
  position: 'test-position',
10
12
  });
11
13
  const [blockTypeOp, blockMarkdownTextOp, blockRelationOp] = ops;
12
- expect(blockTypeOp?.type).toBe('CREATE_RELATION');
13
- if (blockTypeOp?.type === 'CREATE_RELATION') {
14
- expect(blockTypeOp?.relation.type).toBe(SystemIds.TYPES_PROPERTY);
15
- expect(blockTypeOp?.relation.toEntity).toBe(SystemIds.TEXT_BLOCK);
14
+ expect(ops.length).toBe(3);
15
+ // Check types relation for text block
16
+ expect(blockTypeOp?.type).toBe('createRelation');
17
+ const typeRelOp = blockTypeOp;
18
+ expect(typeRelOp.to).toEqual(toGrcId(TEXT_BLOCK));
19
+ expect(typeRelOp.relationType).toEqual(toGrcId(TYPES_PROPERTY));
20
+ // Check entity update with markdown text
21
+ expect(blockMarkdownTextOp?.type).toBe('createEntity');
22
+ const markdownEntityOp = blockMarkdownTextOp;
23
+ // Verify markdown content value
24
+ const markdownValue = markdownEntityOp.values.find(v => {
25
+ const propBytes = v.property;
26
+ return propBytes.every((b, i) => b === toGrcId(MARKDOWN_CONTENT)[i]);
27
+ });
28
+ expect(markdownValue).toBeDefined();
29
+ expect(markdownValue?.value.type).toBe('text');
30
+ if (markdownValue?.value.type === 'text') {
31
+ expect(markdownValue.value.value).toBe('test-text');
16
32
  }
17
- expect(blockMarkdownTextOp?.type).toBe('UPDATE_ENTITY');
18
- if (blockMarkdownTextOp?.type === 'UPDATE_ENTITY' && blockMarkdownTextOp?.entity.values?.[0]) {
19
- expect(blockMarkdownTextOp.entity.values[0].property).toBe(SystemIds.MARKDOWN_CONTENT);
20
- expect(blockMarkdownTextOp.entity.values[0].value).toBe('test-text');
33
+ // Check blocks relation
34
+ expect(blockRelationOp?.type).toBe('createRelation');
35
+ const blocksRelOp = blockRelationOp;
36
+ expect(blocksRelOp.from).toEqual(toGrcId(fromId));
37
+ expect(blocksRelOp.relationType).toEqual(toGrcId(BLOCKS));
38
+ expect(blocksRelOp.position).toBe('test-position');
39
+ });
40
+ it('should generate ops for a text block without position', () => {
41
+ const fromId = Id('5871e8f7b71948979c4dcf7c518d32ef');
42
+ const ops = make({
43
+ fromId,
44
+ text: 'markdown content here',
45
+ });
46
+ expect(ops.length).toBe(3);
47
+ // Check blocks relation has no position
48
+ const blocksRelOp = ops[2];
49
+ expect(blocksRelOp.type).toBe('createRelation');
50
+ expect(blocksRelOp.position).toBeUndefined();
51
+ });
52
+ it('should handle empty text', () => {
53
+ const fromId = Id('5871e8f7b71948979c4dcf7c518d32ef');
54
+ const ops = make({
55
+ fromId,
56
+ text: '',
57
+ position: 'a',
58
+ });
59
+ expect(ops.length).toBe(3);
60
+ const markdownEntityOp = ops[1];
61
+ const markdownValue = markdownEntityOp.values.find(v => {
62
+ const propBytes = v.property;
63
+ return propBytes.every((b, i) => b === toGrcId(MARKDOWN_CONTENT)[i]);
64
+ });
65
+ expect(markdownValue?.value.type).toBe('text');
66
+ if (markdownValue?.value.type === 'text') {
67
+ expect(markdownValue.value.value).toBe('');
21
68
  }
22
- expect(blockRelationOp?.type).toBe('CREATE_RELATION');
23
- if (blockRelationOp?.type === 'CREATE_RELATION') {
24
- expect(blockRelationOp?.relation.type).toBe(SystemIds.BLOCKS);
25
- expect(blockRelationOp?.relation.fromEntity).toBe(Id('5871e8f7b71948979c4dcf7c518d32ef'));
69
+ });
70
+ it('should handle multiline text content', () => {
71
+ const fromId = Id('5871e8f7b71948979c4dcf7c518d32ef');
72
+ const multilineText = `# Heading
73
+
74
+ This is a paragraph.
75
+
76
+ - Item 1
77
+ - Item 2`;
78
+ const ops = make({
79
+ fromId,
80
+ text: multilineText,
81
+ position: 'b',
82
+ });
83
+ const markdownEntityOp = ops[1];
84
+ const markdownValue = markdownEntityOp.values.find(v => {
85
+ const propBytes = v.property;
86
+ return propBytes.every((b, i) => b === toGrcId(MARKDOWN_CONTENT)[i]);
87
+ });
88
+ expect(markdownValue?.value.type).toBe('text');
89
+ if (markdownValue?.value.type === 'text') {
90
+ expect(markdownValue.value.value).toBe(multilineText);
26
91
  }
27
- expect(ops.length).toBe(3);
28
92
  });
29
93
  //# sourceMappingURL=text.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.test.js","sourceRoot":"","sources":["../../../../src/core/blocks/text.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC;QACf,MAAM,EAAE,kCAAkC;QAC1C,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IAEH,MAAM,CAAC,WAAW,EAAE,mBAAmB,EAAE,eAAe,CAAC,GAAG,GAAG,CAAC;IAEhE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,WAAW,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC5C,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,mBAAmB,EAAE,IAAI,KAAK,eAAe,IAAI,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACvF,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,eAAe,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAChD,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"text.test.js","sourceRoot":"","sources":["../../../../src/core/blocks/text.test.ts"],"names":[],"mappings":"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"}