@graphprotocol/grc-20 0.28.0 → 0.29.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 (278) hide show
  1. package/dist/constants.d.ts +7 -0
  2. package/dist/constants.d.ts.map +1 -0
  3. package/dist/constants.js +8 -0
  4. package/dist/constants.js.map +1 -0
  5. package/dist/convert-ids.d.ts +2 -0
  6. package/dist/convert-ids.d.ts.map +1 -0
  7. package/dist/convert-ids.js +42 -0
  8. package/dist/convert-ids.js.map +1 -0
  9. package/dist/examples/ranks/create-ordinal-rank.d.ts +8 -0
  10. package/dist/examples/ranks/create-ordinal-rank.d.ts.map +1 -0
  11. package/dist/examples/ranks/create-ordinal-rank.js +42 -0
  12. package/dist/examples/ranks/create-ordinal-rank.js.map +1 -0
  13. package/dist/examples/ranks/create-weighted-rank.d.ts +8 -0
  14. package/dist/examples/ranks/create-weighted-rank.d.ts.map +1 -0
  15. package/dist/examples/ranks/create-weighted-rank.js +42 -0
  16. package/dist/examples/ranks/create-weighted-rank.js.map +1 -0
  17. package/dist/index.d.ts +5 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +5 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/protov2.d.ts +11 -0
  22. package/dist/protov2.d.ts.map +1 -0
  23. package/dist/protov2.js +11 -0
  24. package/dist/protov2.js.map +1 -0
  25. package/dist/scripts/setup-rank-types.d.ts +15 -0
  26. package/dist/scripts/setup-rank-types.d.ts.map +1 -0
  27. package/dist/scripts/setup-rank-types.js +62 -0
  28. package/dist/scripts/setup-rank-types.js.map +1 -0
  29. package/dist/src/core/blocks/image.d.ts +15 -0
  30. package/dist/src/core/blocks/image.d.ts.map +1 -0
  31. package/dist/src/core/blocks/image.js +15 -0
  32. package/dist/src/core/blocks/image.js.map +1 -0
  33. package/dist/src/core/ids/system.d.ts +6 -0
  34. package/dist/src/core/ids/system.d.ts.map +1 -1
  35. package/dist/src/core/ids/system.js +6 -0
  36. package/dist/src/core/ids/system.js.map +1 -1
  37. package/dist/src/core/idsv2/content.d.ts +59 -0
  38. package/dist/src/core/idsv2/content.d.ts.map +1 -0
  39. package/dist/src/core/idsv2/content.js +59 -0
  40. package/dist/src/core/idsv2/content.js.map +1 -0
  41. package/dist/src/core/idsv2/network.d.ts +5 -0
  42. package/dist/src/core/idsv2/network.d.ts.map +1 -0
  43. package/dist/src/core/idsv2/network.js +5 -0
  44. package/dist/src/core/idsv2/network.js.map +1 -0
  45. package/dist/src/core/idsv2/system.d.ts +222 -0
  46. package/dist/src/core/idsv2/system.d.ts.map +1 -0
  47. package/dist/src/core/idsv2/system.js +230 -0
  48. package/dist/src/core/idsv2/system.js.map +1 -0
  49. package/dist/src/core/image.d.ts +40 -0
  50. package/dist/src/core/image.d.ts.map +1 -0
  51. package/dist/src/core/image.js +76 -0
  52. package/dist/src/core/image.js.map +1 -0
  53. package/dist/src/core/image.test.d.ts +2 -0
  54. package/dist/src/core/image.test.d.ts.map +1 -0
  55. package/dist/src/core/image.test.js +52 -0
  56. package/dist/src/core/image.test.js.map +1 -0
  57. package/dist/src/core/relation.d.ts +88 -0
  58. package/dist/src/core/relation.d.ts.map +1 -0
  59. package/dist/src/core/relation.js +89 -0
  60. package/dist/src/core/relation.js.map +1 -0
  61. package/dist/src/core/relation.test.d.ts +2 -0
  62. package/dist/src/core/relation.test.d.ts.map +1 -0
  63. package/dist/src/core/relation.test.js +45 -0
  64. package/dist/src/core/relation.test.js.map +1 -0
  65. package/dist/src/core/triple.d.ts +50 -0
  66. package/dist/src/core/triple.d.ts.map +1 -0
  67. package/dist/src/core/triple.js +56 -0
  68. package/dist/src/core/triple.js.map +1 -0
  69. package/dist/src/core/triple.test.d.ts +2 -0
  70. package/dist/src/core/triple.test.d.ts.map +1 -0
  71. package/dist/src/core/triple.test.js +37 -0
  72. package/dist/src/core/triple.test.js.map +1 -0
  73. package/dist/src/encodings/get-register-space-calldata.d.ts +32 -0
  74. package/dist/src/encodings/get-register-space-calldata.d.ts.map +1 -0
  75. package/dist/src/encodings/get-register-space-calldata.js +39 -0
  76. package/dist/src/encodings/get-register-space-calldata.js.map +1 -0
  77. package/dist/src/encodings/get-register-space-calldata.test.d.ts +2 -0
  78. package/dist/src/encodings/get-register-space-calldata.test.d.ts.map +1 -0
  79. package/dist/src/encodings/get-register-space-calldata.test.js +15 -0
  80. package/dist/src/encodings/get-register-space-calldata.test.js.map +1 -0
  81. package/dist/src/graph/delete-entity.d.ts +14 -0
  82. package/dist/src/graph/delete-entity.d.ts.map +1 -0
  83. package/dist/src/graph/delete-entity.js +21 -0
  84. package/dist/src/graph/delete-entity.js.map +1 -0
  85. package/dist/src/graph/delete-entity.test.d.ts +2 -0
  86. package/dist/src/graph/delete-entity.test.d.ts.map +1 -0
  87. package/dist/src/graph/delete-entity.test.js +23 -0
  88. package/dist/src/graph/delete-entity.test.js.map +1 -0
  89. package/dist/src/graph/graph.test.d.ts +2 -0
  90. package/dist/src/graph/graph.test.d.ts.map +1 -0
  91. package/dist/src/graph/graph.test.js +46 -0
  92. package/dist/src/graph/graph.test.js.map +1 -0
  93. package/dist/src/graph/helpers/create-default-properties.d.ts +5 -0
  94. package/dist/src/graph/helpers/create-default-properties.d.ts.map +1 -0
  95. package/dist/src/graph/helpers/create-default-properties.js +44 -0
  96. package/dist/src/graph/helpers/create-default-properties.js.map +1 -0
  97. package/dist/src/graph/helpers/create-properties.d.ts +8 -0
  98. package/dist/src/graph/helpers/create-properties.d.ts.map +1 -0
  99. package/dist/src/graph/helpers/create-properties.js +53 -0
  100. package/dist/src/graph/helpers/create-properties.js.map +1 -0
  101. package/dist/src/graphv2/constants.d.ts +2 -0
  102. package/dist/src/graphv2/constants.d.ts.map +1 -0
  103. package/dist/src/graphv2/constants.js +2 -0
  104. package/dist/src/graphv2/constants.js.map +1 -0
  105. package/dist/src/graphv2/create-entity.d.ts +52 -0
  106. package/dist/src/graphv2/create-entity.d.ts.map +1 -0
  107. package/dist/src/graphv2/create-entity.js +140 -0
  108. package/dist/src/graphv2/create-entity.js.map +1 -0
  109. package/dist/src/graphv2/create-entity.test.d.ts +2 -0
  110. package/dist/src/graphv2/create-entity.test.d.ts.map +1 -0
  111. package/dist/src/graphv2/create-entity.test.js +158 -0
  112. package/dist/src/graphv2/create-entity.test.js.map +1 -0
  113. package/dist/src/graphv2/create-image.d.ts +28 -0
  114. package/dist/src/graphv2/create-image.d.ts.map +1 -0
  115. package/dist/src/graphv2/create-image.js +71 -0
  116. package/dist/src/graphv2/create-image.js.map +1 -0
  117. package/dist/src/graphv2/create-image.test.d.ts +2 -0
  118. package/dist/src/graphv2/create-image.test.d.ts.map +1 -0
  119. package/dist/src/graphv2/create-image.test.js +142 -0
  120. package/dist/src/graphv2/create-image.test.js.map +1 -0
  121. package/dist/src/graphv2/create-property.d.ts +22 -0
  122. package/dist/src/graphv2/create-property.d.ts.map +1 -0
  123. package/dist/src/graphv2/create-property.js +129 -0
  124. package/dist/src/graphv2/create-property.js.map +1 -0
  125. package/dist/src/graphv2/create-property.test.d.ts +2 -0
  126. package/dist/src/graphv2/create-property.test.d.ts.map +1 -0
  127. package/dist/src/graphv2/create-property.test.js +82 -0
  128. package/dist/src/graphv2/create-property.test.js.map +1 -0
  129. package/dist/src/graphv2/create-relation.d.ts +33 -0
  130. package/dist/src/graphv2/create-relation.d.ts.map +1 -0
  131. package/dist/src/graphv2/create-relation.js +66 -0
  132. package/dist/src/graphv2/create-relation.js.map +1 -0
  133. package/dist/src/graphv2/create-relation.test.d.ts +2 -0
  134. package/dist/src/graphv2/create-relation.test.d.ts.map +1 -0
  135. package/dist/src/graphv2/create-relation.test.js +208 -0
  136. package/dist/src/graphv2/create-relation.test.js.map +1 -0
  137. package/dist/src/graphv2/create-space.d.ts +13 -0
  138. package/dist/src/graphv2/create-space.d.ts.map +1 -0
  139. package/dist/src/graphv2/create-space.js +21 -0
  140. package/dist/src/graphv2/create-space.js.map +1 -0
  141. package/dist/src/graphv2/create-type.d.ts +22 -0
  142. package/dist/src/graphv2/create-type.d.ts.map +1 -0
  143. package/dist/src/graphv2/create-type.js +64 -0
  144. package/dist/src/graphv2/create-type.js.map +1 -0
  145. package/dist/src/graphv2/create-type.test.d.ts +2 -0
  146. package/dist/src/graphv2/create-type.test.d.ts.map +1 -0
  147. package/dist/src/graphv2/create-type.test.js +109 -0
  148. package/dist/src/graphv2/create-type.test.js.map +1 -0
  149. package/dist/src/graphv2/delete-entity.d.ts +14 -0
  150. package/dist/src/graphv2/delete-entity.d.ts.map +1 -0
  151. package/dist/src/graphv2/delete-entity.js +21 -0
  152. package/dist/src/graphv2/delete-entity.js.map +1 -0
  153. package/dist/src/graphv2/delete-entity.test.d.ts +2 -0
  154. package/dist/src/graphv2/delete-entity.test.d.ts.map +1 -0
  155. package/dist/src/graphv2/delete-entity.test.js +24 -0
  156. package/dist/src/graphv2/delete-entity.test.js.map +1 -0
  157. package/dist/src/graphv2/delete-relation.d.ts +14 -0
  158. package/dist/src/graphv2/delete-relation.d.ts.map +1 -0
  159. package/dist/src/graphv2/delete-relation.js +21 -0
  160. package/dist/src/graphv2/delete-relation.js.map +1 -0
  161. package/dist/src/graphv2/delete-relation.test.d.ts +2 -0
  162. package/dist/src/graphv2/delete-relation.test.d.ts.map +1 -0
  163. package/dist/src/graphv2/delete-relation.test.js +24 -0
  164. package/dist/src/graphv2/delete-relation.test.js.map +1 -0
  165. package/dist/src/graphv2/index.d.ts +12 -0
  166. package/dist/src/graphv2/index.d.ts.map +1 -0
  167. package/dist/src/graphv2/index.js +12 -0
  168. package/dist/src/graphv2/index.js.map +1 -0
  169. package/dist/src/graphv2/remove-entity-properties.d.ts +25 -0
  170. package/dist/src/graphv2/remove-entity-properties.d.ts.map +1 -0
  171. package/dist/src/graphv2/remove-entity-properties.js +24 -0
  172. package/dist/src/graphv2/remove-entity-properties.js.map +1 -0
  173. package/dist/src/graphv2/unset-entity-values.d.ts +21 -0
  174. package/dist/src/graphv2/unset-entity-values.d.ts.map +1 -0
  175. package/dist/src/graphv2/unset-entity-values.js +26 -0
  176. package/dist/src/graphv2/unset-entity-values.js.map +1 -0
  177. package/dist/src/graphv2/unset-entity-values.test.d.ts +2 -0
  178. package/dist/src/graphv2/unset-entity-values.test.d.ts.map +1 -0
  179. package/dist/src/graphv2/unset-entity-values.test.js +40 -0
  180. package/dist/src/graphv2/unset-entity-values.test.js.map +1 -0
  181. package/dist/src/graphv2/unset-relation-fields.d.ts +25 -0
  182. package/dist/src/graphv2/unset-relation-fields.d.ts.map +1 -0
  183. package/dist/src/graphv2/unset-relation-fields.js +34 -0
  184. package/dist/src/graphv2/unset-relation-fields.js.map +1 -0
  185. package/dist/src/graphv2/unset-relation-fields.test.d.ts +2 -0
  186. package/dist/src/graphv2/unset-relation-fields.test.d.ts.map +1 -0
  187. package/dist/src/graphv2/unset-relation-fields.test.js +64 -0
  188. package/dist/src/graphv2/unset-relation-fields.test.js.map +1 -0
  189. package/dist/src/graphv2/update-entity.d.ts +28 -0
  190. package/dist/src/graphv2/update-entity.d.ts.map +1 -0
  191. package/dist/src/graphv2/update-entity.js +73 -0
  192. package/dist/src/graphv2/update-entity.js.map +1 -0
  193. package/dist/src/graphv2/update-entity.test.d.ts +2 -0
  194. package/dist/src/graphv2/update-entity.test.d.ts.map +1 -0
  195. package/dist/src/graphv2/update-entity.test.js +116 -0
  196. package/dist/src/graphv2/update-entity.test.js.map +1 -0
  197. package/dist/src/graphv2/update-relation.d.ts +21 -0
  198. package/dist/src/graphv2/update-relation.d.ts.map +1 -0
  199. package/dist/src/graphv2/update-relation.js +37 -0
  200. package/dist/src/graphv2/update-relation.js.map +1 -0
  201. package/dist/src/idv2.d.ts +27 -0
  202. package/dist/src/idv2.d.ts.map +1 -0
  203. package/dist/src/idv2.js +88 -0
  204. package/dist/src/idv2.js.map +1 -0
  205. package/dist/src/idv2.test.d.ts +2 -0
  206. package/dist/src/idv2.test.d.ts.map +1 -0
  207. package/dist/src/idv2.test.js +26 -0
  208. package/dist/src/idv2.test.js.map +1 -0
  209. package/dist/src/image.d.ts +8 -0
  210. package/dist/src/image.d.ts.map +1 -0
  211. package/dist/src/image.js +8 -0
  212. package/dist/src/image.js.map +1 -0
  213. package/dist/src/ipfsv2.d.ts +96 -0
  214. package/dist/src/ipfsv2.d.ts.map +1 -0
  215. package/dist/src/ipfsv2.js +163 -0
  216. package/dist/src/ipfsv2.js.map +1 -0
  217. package/dist/src/ipfsv2.test.d.ts +2 -0
  218. package/dist/src/ipfsv2.test.d.ts.map +1 -0
  219. package/dist/src/ipfsv2.test.js +22 -0
  220. package/dist/src/ipfsv2.test.js.map +1 -0
  221. package/dist/src/proto/editv2.d.ts +11 -0
  222. package/dist/src/proto/editv2.d.ts.map +1 -0
  223. package/dist/src/proto/editv2.js +81 -0
  224. package/dist/src/proto/editv2.js.map +1 -0
  225. package/dist/src/proto/editv2.test.d.ts +2 -0
  226. package/dist/src/proto/editv2.test.d.ts.map +1 -0
  227. package/dist/src/proto/editv2.test.js +211 -0
  228. package/dist/src/proto/editv2.test.js.map +1 -0
  229. package/dist/src/proto/gen/src/proto/ipfsv2_pb.d.ts +410 -0
  230. package/dist/src/proto/gen/src/proto/ipfsv2_pb.d.ts.map +1 -0
  231. package/dist/src/proto/gen/src/proto/ipfsv2_pb.js +536 -0
  232. package/dist/src/proto/gen/src/proto/ipfsv2_pb.js.map +1 -0
  233. package/dist/src/ranks/create-rank.d.ts +42 -0
  234. package/dist/src/ranks/create-rank.d.ts.map +1 -0
  235. package/dist/src/ranks/create-rank.js +139 -0
  236. package/dist/src/ranks/create-rank.js.map +1 -0
  237. package/dist/src/ranks/create-rank.test.d.ts +2 -0
  238. package/dist/src/ranks/create-rank.test.d.ts.map +1 -0
  239. package/dist/src/ranks/create-rank.test.js +246 -0
  240. package/dist/src/ranks/create-rank.test.js.map +1 -0
  241. package/dist/src/ranks/index.d.ts +3 -0
  242. package/dist/src/ranks/index.d.ts.map +1 -0
  243. package/dist/src/ranks/index.js +3 -0
  244. package/dist/src/ranks/index.js.map +1 -0
  245. package/dist/src/ranks/types.d.ts +30 -0
  246. package/dist/src/ranks/types.d.ts.map +1 -0
  247. package/dist/src/ranks/types.js +2 -0
  248. package/dist/src/ranks/types.js.map +1 -0
  249. package/dist/src/relation.d.ts +7 -0
  250. package/dist/src/relation.d.ts.map +1 -0
  251. package/dist/src/relation.js +7 -0
  252. package/dist/src/relation.js.map +1 -0
  253. package/dist/src/smart-wallet-2.test-invalid.d.ts +2 -0
  254. package/dist/src/smart-wallet-2.test-invalid.d.ts.map +1 -0
  255. package/dist/src/smart-wallet-2.test-invalid.js +49 -0
  256. package/dist/src/smart-wallet-2.test-invalid.js.map +1 -0
  257. package/dist/src/smart-wallet-2.test.d.ts +2 -0
  258. package/dist/src/smart-wallet-2.test.d.ts.map +1 -0
  259. package/dist/src/smart-wallet-2.test.js +49 -0
  260. package/dist/src/smart-wallet-2.test.js.map +1 -0
  261. package/dist/src/system-ids-v2.d.ts +7 -0
  262. package/dist/src/system-ids-v2.d.ts.map +1 -0
  263. package/dist/src/system-ids-v2.js +7 -0
  264. package/dist/src/system-ids-v2.js.map +1 -0
  265. package/dist/src/triple.d.ts +7 -0
  266. package/dist/src/triple.d.ts.map +1 -0
  267. package/dist/src/triple.js +7 -0
  268. package/dist/src/triple.js.map +1 -0
  269. package/dist/src/types-backup.d.ts +134 -0
  270. package/dist/src/types-backup.d.ts.map +1 -0
  271. package/dist/src/types-backup.js +13 -0
  272. package/dist/src/types-backup.js.map +1 -0
  273. package/dist/src/typesv2.d.ts +173 -0
  274. package/dist/src/typesv2.d.ts.map +1 -0
  275. package/dist/src/typesv2.js +8 -0
  276. package/dist/src/typesv2.js.map +1 -0
  277. package/dist/tsconfig.tsbuildinfo +1 -0
  278. package/package.json +1 -1
@@ -0,0 +1,76 @@
1
+ /**
2
+ * This module provides utility functions for working with knowledge graph
3
+ * images in TypeScript.
4
+ *
5
+ * @since 0.0.6
6
+ */
7
+ import { generate } from '../id.js';
8
+ import { Relation } from '../relation.js';
9
+ import { SystemIds } from '../system-ids.js';
10
+ /**
11
+ * Creates an entity representing an Image.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const { id, ops } = Image.make({
16
+ * cid: 'https://example.com/image.png',
17
+ * dimensions: { width: 100, height: 100 },
18
+ * id: imageId, // optional and will be generated if not provided
19
+ * });
20
+ * console.log(id); // 'gw9uTVTnJdhtczyuzBkL3X'
21
+ * console.log(ops); // [...]
22
+ * ```
23
+ *
24
+ * @returns id – base58 encoded v4 uuid representing the image entity: {@link MakeImageReturnType}
25
+ * @returns ops – The ops for the Image entity: {@link MakeImageReturnType}
26
+ */
27
+ export function make({ cid, dimensions, id }) {
28
+ const entityId = id ?? generate();
29
+ const ops = [
30
+ Relation.make({
31
+ fromId: entityId,
32
+ toId: SystemIds.IMAGE_TYPE,
33
+ relationTypeId: SystemIds.TYPES_PROPERTY,
34
+ }),
35
+ {
36
+ type: 'SET_TRIPLE',
37
+ triple: {
38
+ entity: entityId,
39
+ attribute: SystemIds.IMAGE_URL_PROPERTY,
40
+ value: {
41
+ type: 'URL',
42
+ value: cid,
43
+ },
44
+ },
45
+ },
46
+ ];
47
+ if (dimensions) {
48
+ ops.push({
49
+ type: 'SET_TRIPLE',
50
+ triple: {
51
+ entity: entityId,
52
+ attribute: SystemIds.IMAGE_HEIGHT_PROPERTY,
53
+ value: {
54
+ type: 'NUMBER',
55
+ value: dimensions.height.toString(),
56
+ },
57
+ },
58
+ });
59
+ ops.push({
60
+ type: 'SET_TRIPLE',
61
+ triple: {
62
+ entity: entityId,
63
+ attribute: SystemIds.IMAGE_WIDTH_PROPERTY,
64
+ value: {
65
+ type: 'NUMBER',
66
+ value: dimensions.width.toString(),
67
+ },
68
+ },
69
+ });
70
+ }
71
+ return {
72
+ id: entityId,
73
+ ops,
74
+ };
75
+ }
76
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/core/image.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAiB7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAmB;IAC3D,MAAM,QAAQ,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;IAClC,MAAM,GAAG,GAAc;QACrB,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,SAAS,CAAC,UAAU;YAC1B,cAAc,EAAE,SAAS,CAAC,cAAc;SACzC,CAAC;QACF;YACE,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE;gBACN,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,SAAS,CAAC,kBAAkB;gBACvC,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,GAAG;iBACX;aACF;SACF;KACF,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE;gBACN,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,SAAS,CAAC,qBAAqB;gBAC1C,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE;iBACpC;aACF;SACF,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE;gBACN,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,SAAS,CAAC,oBAAoB;gBACzC,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE;iBACnC;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,GAAG;KACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=image.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.test.d.ts","sourceRoot":"","sources":["../../../src/core/image.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
1
+ import { expect, it } from 'vitest';
2
+ import { INITIAL_RELATION_INDEX_VALUE } from '~/constants.js';
3
+ import { SystemIds } from '../system-ids.js';
4
+ import { make } from './image.js';
5
+ it('should generate ops for an image entity', () => {
6
+ const { id, ops } = make({ cid: 'https://example.com/image.png' });
7
+ // We check each field individually since we don't know the id of the relation
8
+ expect(typeof id).toBe('string');
9
+ expect(ops.length).toBe(2);
10
+ if (ops[0]?.type === 'CREATE_RELATION') {
11
+ expect(ops[0].relation.type).toBe(SystemIds.TYPES_PROPERTY);
12
+ expect(ops[0].relation.fromEntity).toBe(id);
13
+ expect(ops[0].relation.toEntity).toBe(SystemIds.IMAGE_TYPE);
14
+ expect(ops[0].relation.index).toBe(INITIAL_RELATION_INDEX_VALUE);
15
+ }
16
+ if (ops[1]?.type === 'SET_TRIPLE') {
17
+ expect(ops[1].triple.attribute).toBe(SystemIds.IMAGE_URL_PROPERTY);
18
+ expect(ops[1].triple.entity).toBe(id);
19
+ expect(ops[1].triple.value.type).toBe('URL');
20
+ expect(ops[1].triple.value.value).toBe('https://example.com/image.png');
21
+ }
22
+ });
23
+ it('should generate ops for an image entity with dimensions', () => {
24
+ const { id, ops } = make({ cid: 'https://example.com/image.png', dimensions: { width: 200, height: 100 } });
25
+ expect(typeof id).toBe('string');
26
+ expect(ops.length).toBe(4);
27
+ if (ops[0]?.type === 'CREATE_RELATION') {
28
+ expect(ops[0].relation.type).toBe(SystemIds.TYPES_PROPERTY);
29
+ expect(ops[0].relation.fromEntity).toBe(id);
30
+ expect(ops[0].relation.toEntity).toBe(SystemIds.IMAGE_TYPE);
31
+ expect(ops[0].relation.index).toBe(INITIAL_RELATION_INDEX_VALUE);
32
+ }
33
+ if (ops[1]?.type === 'SET_TRIPLE') {
34
+ expect(ops[1].triple.attribute).toBe(SystemIds.IMAGE_URL_PROPERTY);
35
+ expect(ops[1].triple.entity).toBe(id);
36
+ expect(ops[1].triple.value.type).toBe('URL');
37
+ expect(ops[1].triple.value.value).toBe('https://example.com/image.png');
38
+ }
39
+ if (ops[2]?.type === 'SET_TRIPLE') {
40
+ expect(ops[2].triple.attribute).toBe(SystemIds.IMAGE_HEIGHT_PROPERTY);
41
+ expect(ops[2].triple.entity).toBe(id);
42
+ expect(ops[2].triple.value.type).toBe('NUMBER');
43
+ expect(ops[2].triple.value.value).toBe('100');
44
+ }
45
+ if (ops[3]?.type === 'SET_TRIPLE') {
46
+ expect(ops[3].triple.attribute).toBe(SystemIds.IMAGE_WIDTH_PROPERTY);
47
+ expect(ops[3].triple.entity).toBe(id);
48
+ expect(ops[3].triple.value.type).toBe('NUMBER');
49
+ expect(ops[3].triple.value.value).toBe('200');
50
+ }
51
+ });
52
+ //# sourceMappingURL=image.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.test.js","sourceRoot":"","sources":["../../../src/core/image.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * This module provides utility functions for working with Relations in TypeScript.
3
+ *
4
+ * @since 0.0.6
5
+ */
6
+ import { SystemIds } from '../system-ids.js';
7
+ import type { CreateRelationOp, DeleteRelationOp } from '../types.js';
8
+ /**
9
+ * Arguments for creating a new Relation.
10
+ *
11
+ * @param relationId - optional base58 encoded v4 uuid
12
+ * @param fromId - base58 encoded v4 uuid
13
+ * @param toId - base58 encoded v4 uuid
14
+ * @param relationTypeId - base58 encoded v4 uuid
15
+ * @param position - optional fractional index using position-strings
16
+ */
17
+ type CreateRelationParams = {
18
+ relationId?: string;
19
+ fromId: string;
20
+ toId: string;
21
+ relationTypeId: string;
22
+ position?: string;
23
+ };
24
+ /**
25
+ * Generates ops for a new Relation.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const ops = Relation.make({
30
+ * fromId: 'from-id',
31
+ * toId: 'to-id',
32
+ * relationTypeId: 'relation-type-id',
33
+ * // optional
34
+ * relationId: 'relation-id',
35
+ * position: 'position-string',
36
+ * });
37
+ * ```
38
+ *
39
+ * @param args {@link CreateRelationParams}
40
+ * @returns – {@link CreateRelationOp}
41
+ */
42
+ export declare function make(args: CreateRelationParams): CreateRelationOp;
43
+ /**
44
+ * Generates ops for deleting a Relation.
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const op = Relation.remove('relation-id');
49
+ * ```
50
+ *
51
+ * @param relationId – base58 encoded v4 uuid representing the relation's entity id
52
+ * @returns – {@link DeleteRelationOp}
53
+ */
54
+ export declare function remove(relationId: string): DeleteRelationOp;
55
+ type ReorderRelationParams = {
56
+ relationId: string;
57
+ beforeIndex?: string;
58
+ afterIndex?: string;
59
+ };
60
+ type ReorderRelationOp = {
61
+ type: 'SET_TRIPLE';
62
+ triple: {
63
+ attribute: typeof SystemIds.RELATION_INDEX;
64
+ entity: string;
65
+ value: {
66
+ type: 'TEXT';
67
+ value: string;
68
+ };
69
+ };
70
+ };
71
+ /**
72
+ * Generates op for reordering a Relation using position-strings
73
+ *
74
+ * @example
75
+ * ```ts
76
+ * const op = Relation.reorder({
77
+ * relationId: 'relation-id',
78
+ * beforeIndex: 'before-position',
79
+ * afterIndex: 'after-position',
80
+ * });
81
+ * ```
82
+ *
83
+ * @param args {@link ReorderRelationParams}
84
+ * @returns – {@link ReorderRelationOp}
85
+ */
86
+ export declare function reorder(args: ReorderRelationParams): ReorderRelationOp;
87
+ export {};
88
+ //# sourceMappingURL=relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../../src/core/relation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGtE;;;;;;;;GAQG;AACH,KAAK,oBAAoB,GAAG;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB,CAajE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAO3D;AAED,KAAK,qBAAqB,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE;QACN,SAAS,EAAE,OAAO,SAAS,CAAC,cAAc,CAAC;QAC3C,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,qBAAqB,GAAG,iBAAiB,CActE"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * This module provides utility functions for working with Relations in TypeScript.
3
+ *
4
+ * @since 0.0.6
5
+ */
6
+ import { INITIAL_RELATION_INDEX_VALUE } from '../../constants.js';
7
+ import { generate } from '../id.js';
8
+ import { SystemIds } from '../system-ids.js';
9
+ import { Position } from './position.js';
10
+ /**
11
+ * Generates ops for a new Relation.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const ops = Relation.make({
16
+ * fromId: 'from-id',
17
+ * toId: 'to-id',
18
+ * relationTypeId: 'relation-type-id',
19
+ * // optional
20
+ * relationId: 'relation-id',
21
+ * position: 'position-string',
22
+ * });
23
+ * ```
24
+ *
25
+ * @param args {@link CreateRelationParams}
26
+ * @returns – {@link CreateRelationOp}
27
+ */
28
+ export function make(args) {
29
+ const newEntityId = args.relationId ?? generate();
30
+ return {
31
+ type: 'CREATE_RELATION',
32
+ relation: {
33
+ id: newEntityId,
34
+ type: args.relationTypeId,
35
+ fromEntity: args.fromId,
36
+ toEntity: args.toId,
37
+ index: args.position ?? INITIAL_RELATION_INDEX_VALUE,
38
+ },
39
+ };
40
+ }
41
+ /**
42
+ * Generates ops for deleting a Relation.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * const op = Relation.remove('relation-id');
47
+ * ```
48
+ *
49
+ * @param relationId – base58 encoded v4 uuid representing the relation's entity id
50
+ * @returns – {@link DeleteRelationOp}
51
+ */
52
+ export function remove(relationId) {
53
+ return {
54
+ type: 'DELETE_RELATION',
55
+ relation: {
56
+ id: relationId,
57
+ },
58
+ };
59
+ }
60
+ /**
61
+ * Generates op for reordering a Relation using position-strings
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * const op = Relation.reorder({
66
+ * relationId: 'relation-id',
67
+ * beforeIndex: 'before-position',
68
+ * afterIndex: 'after-position',
69
+ * });
70
+ * ```
71
+ *
72
+ * @param args {@link ReorderRelationParams}
73
+ * @returns – {@link ReorderRelationOp}
74
+ */
75
+ export function reorder(args) {
76
+ const newIndex = Position.createBetween(args.beforeIndex, args.afterIndex);
77
+ return {
78
+ type: 'SET_TRIPLE',
79
+ triple: {
80
+ attribute: SystemIds.RELATION_INDEX,
81
+ entity: args.relationId,
82
+ value: {
83
+ type: 'TEXT',
84
+ value: newIndex,
85
+ },
86
+ },
87
+ };
88
+ }
89
+ //# sourceMappingURL=relation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../../src/core/relation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAmBzC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,IAAI,CAAC,IAA0B;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC;IAElD,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE;YACR,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,IAAI,CAAC,cAAc;YACzB,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,4BAA4B;SACrD;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,UAAkB;IACvC,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE;YACR,EAAE,EAAE,UAAU;SACf;KACF,CAAC;AACJ,CAAC;AAoBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,OAAO,CAAC,IAA2B;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAE3E,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,SAAS,CAAC,cAAc;YACnC,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,QAAQ;aAChB;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=relation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation.test.d.ts","sourceRoot":"","sources":["../../../src/core/relation.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ import { expect, it } from 'vitest';
2
+ import { RELATION_INDEX } from './ids/system.js';
3
+ import { Position, PositionRange } from './position.js';
4
+ import { make, remove, reorder } from './relation.js';
5
+ it('should generate CreateRelationOp for CREATE_RELATION', () => {
6
+ const op = make({
7
+ relationId: 'test-relation-id',
8
+ fromId: 'test-entity-id',
9
+ relationTypeId: 'test-relation-type-id',
10
+ toId: 'test-entity-id',
11
+ position: 'test-position',
12
+ });
13
+ expect(op).toEqual({
14
+ type: 'CREATE_RELATION',
15
+ relation: {
16
+ id: 'test-relation-id',
17
+ type: 'test-relation-type-id',
18
+ fromEntity: 'test-entity-id',
19
+ toEntity: 'test-entity-id',
20
+ index: 'test-position',
21
+ },
22
+ });
23
+ });
24
+ it('should generate DeleteRelationOp for DELETE_RELATION', () => {
25
+ const op = remove('test-relation-id');
26
+ expect(op).toEqual({
27
+ type: 'DELETE_RELATION',
28
+ relation: {
29
+ id: 'test-relation-id',
30
+ },
31
+ });
32
+ });
33
+ it('should generate Op that places the fractional indexer between the two provided values', () => {
34
+ const op = reorder({
35
+ relationId: 'test-relation-id',
36
+ beforeIndex: PositionRange.FIRST,
37
+ afterIndex: PositionRange.LAST,
38
+ });
39
+ expect(op.type).toBe('SET_TRIPLE');
40
+ expect(op.triple.attribute).toBe(RELATION_INDEX);
41
+ expect(op.triple.entity).toBe('test-relation-id');
42
+ expect(op.triple.value.type).toBe('TEXT');
43
+ // @TODO how do we test that the resulting value is in-between the two indexes?
44
+ });
45
+ //# sourceMappingURL=relation.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation.test.js","sourceRoot":"","sources":["../../../src/core/relation.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEtD,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAC9D,MAAM,EAAE,GAAG,IAAI,CAAC;QACd,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,gBAAgB;QACxB,cAAc,EAAE,uBAAuB;QACvC,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;QACjB,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE;YACR,EAAE,EAAE,kBAAkB;YACtB,IAAI,EAAE,uBAAuB;YAC7B,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,gBAAgB;YAC1B,KAAK,EAAE,eAAe;SACvB;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAC9D,MAAM,EAAE,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEtC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;QACjB,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE;YACR,EAAE,EAAE,kBAAkB;SACvB;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,uFAAuF,EAAE,GAAG,EAAE;IAC/F,MAAM,EAAE,GAAG,OAAO,CAAC;QACjB,UAAU,EAAE,kBAAkB;QAC9B,WAAW,EAAE,aAAa,CAAC,KAAK;QAChC,UAAU,EAAE,aAAa,CAAC,IAAI;KAC/B,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,+EAA+E;AACjF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * This module provides utility functions for working with Triples in TypeScript.
3
+ *
4
+ * @since 0.0.6
5
+ */
6
+ import type { DeleteTripleOp, SetTripleOp, Value } from '../types.js';
7
+ type CreateTripleParams = {
8
+ attributeId: string;
9
+ entityId: string;
10
+ value: Value;
11
+ };
12
+ /**
13
+ * Generates op for creating a new Triple.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const op = Triple.make({
18
+ * attributeId: 'attribute-id',
19
+ * entityId: 'entity-id',
20
+ * value: {
21
+ * type: 'TEXT',
22
+ * value: 'value',
23
+ * },
24
+ * });
25
+ * ```
26
+ * @param args – {@link CreateTripleParams}
27
+ * @returns – {@link SetTripleOp}
28
+ */
29
+ export declare function make(args: CreateTripleParams): SetTripleOp;
30
+ type DeleteTripleParams = {
31
+ attributeId: string;
32
+ entityId: string;
33
+ };
34
+ /**
35
+ * Generates op for deleting a Triple.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const op = Triple.remove({
40
+ * attributeId: 'attribute-id',
41
+ * entityId: 'entity-id',
42
+ * });
43
+ * ```
44
+ *
45
+ * @param args – {@link DeleteTripleParams}
46
+ * @returns – {@link DeleteTripleOp}
47
+ */
48
+ export declare function remove(args: DeleteTripleParams): DeleteTripleOp;
49
+ export {};
50
+ //# sourceMappingURL=triple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triple.d.ts","sourceRoot":"","sources":["../../../src/core/triple.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEtE,KAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,kBAAkB,GAAG,WAAW,CAS1D;AAED,KAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAQ/D"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * This module provides utility functions for working with Triples in TypeScript.
3
+ *
4
+ * @since 0.0.6
5
+ */
6
+ /**
7
+ * Generates op for creating a new Triple.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * const op = Triple.make({
12
+ * attributeId: 'attribute-id',
13
+ * entityId: 'entity-id',
14
+ * value: {
15
+ * type: 'TEXT',
16
+ * value: 'value',
17
+ * },
18
+ * });
19
+ * ```
20
+ * @param args – {@link CreateTripleParams}
21
+ * @returns – {@link SetTripleOp}
22
+ */
23
+ export function make(args) {
24
+ return {
25
+ type: 'SET_TRIPLE',
26
+ triple: {
27
+ attribute: args.attributeId,
28
+ entity: args.entityId,
29
+ value: args.value,
30
+ },
31
+ };
32
+ }
33
+ /**
34
+ * Generates op for deleting a Triple.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const op = Triple.remove({
39
+ * attributeId: 'attribute-id',
40
+ * entityId: 'entity-id',
41
+ * });
42
+ * ```
43
+ *
44
+ * @param args – {@link DeleteTripleParams}
45
+ * @returns – {@link DeleteTripleOp}
46
+ */
47
+ export function remove(args) {
48
+ return {
49
+ type: 'DELETE_TRIPLE',
50
+ triple: {
51
+ attribute: args.attributeId,
52
+ entity: args.entityId,
53
+ },
54
+ };
55
+ }
56
+ //# sourceMappingURL=triple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triple.js","sourceRoot":"","sources":["../../../src/core/triple.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,IAAI,CAAC,IAAwB;IAC3C,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,MAAM,EAAE,IAAI,CAAC,QAAQ;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB;KACF,CAAC;AACJ,CAAC;AAOD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,MAAM,CAAC,IAAwB;IAC7C,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,MAAM,EAAE,IAAI,CAAC,QAAQ;SACtB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=triple.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triple.test.d.ts","sourceRoot":"","sources":["../../../src/core/triple.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { expect, it } from 'vitest';
2
+ import { make, remove } from './triple.js';
3
+ it('should generate SetTripleOp for SET_TRIPLE', () => {
4
+ const op = make({
5
+ attributeId: 'test-attribute-id',
6
+ entityId: 'test-entity-id',
7
+ value: {
8
+ type: 'TEXT',
9
+ value: 'test value',
10
+ },
11
+ });
12
+ expect(op).toEqual({
13
+ type: 'SET_TRIPLE',
14
+ triple: {
15
+ attribute: 'test-attribute-id',
16
+ entity: 'test-entity-id',
17
+ value: {
18
+ type: 'TEXT',
19
+ value: 'test value',
20
+ },
21
+ },
22
+ });
23
+ });
24
+ it('should generate DeleteTripleOp for DELETE_TRIPLE', () => {
25
+ const op = remove({
26
+ attributeId: 'test-attribute-id',
27
+ entityId: 'test-entity-id',
28
+ });
29
+ expect(op).toEqual({
30
+ type: 'DELETE_TRIPLE',
31
+ triple: {
32
+ attribute: 'test-attribute-id',
33
+ entity: 'test-entity-id',
34
+ },
35
+ });
36
+ });
37
+ //# sourceMappingURL=triple.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triple.test.js","sourceRoot":"","sources":["../../../src/core/triple.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE3C,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACpD,MAAM,EAAE,GAAG,IAAI,CAAC;QACd,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,gBAAgB;QAC1B,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,YAAY;SACpB;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;QACjB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,mBAAmB;YAC9B,MAAM,EAAE,gBAAgB;YACxB,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,YAAY;aACpB;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAC1D,MAAM,EAAE,GAAG,MAAM,CAAC;QAChB,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,gBAAgB;KAC3B,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;QACjB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACN,SAAS,EAAE,mBAAmB;YAC9B,MAAM,EAAE,gBAAgB;SACzB;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Get the calldata for registering a space ID.
3
+ *
4
+ * This function encodes the `registerSpaceId` function call for the Space Registry contract.
5
+ * It is called by a space contract to register itself with the Space Registry.
6
+ * The space ID is deterministically derived from the caller's address and nonce.
7
+ *
8
+ * @returns Encoded calldata for the transaction
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { getRegisterSpaceCalldata, TESTNET } from '@graphprotocol/grc-20';
13
+ * import { createWalletClient, http } from 'viem';
14
+ *
15
+ * const calldata = getRegisterSpaceCalldata();
16
+ *
17
+ * // Using viem
18
+ * const hash = await walletClient.sendTransaction({
19
+ * to: TESTNET.SPACE_REGISTRY_ADDRESS,
20
+ * data: calldata,
21
+ * });
22
+ *
23
+ * // Using wagmi
24
+ * const { sendTransaction } = useSendTransaction();
25
+ * sendTransaction({
26
+ * to: TESTNET.SPACE_REGISTRY_ADDRESS,
27
+ * data: calldata,
28
+ * });
29
+ * ```
30
+ */
31
+ export declare function getRegisterSpaceCalldata(): `0x${string}`;
32
+ //# sourceMappingURL=get-register-space-calldata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-register-space-calldata.d.ts","sourceRoot":"","sources":["../../../src/encodings/get-register-space-calldata.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,wBAAwB,IAAI,KAAK,MAAM,EAAE,CAKxD"}
@@ -0,0 +1,39 @@
1
+ import { encodeFunctionData } from 'viem';
2
+ import { SpaceRegistryAbi } from '../abis/index.js';
3
+ /**
4
+ * Get the calldata for registering a space ID.
5
+ *
6
+ * This function encodes the `registerSpaceId` function call for the Space Registry contract.
7
+ * It is called by a space contract to register itself with the Space Registry.
8
+ * The space ID is deterministically derived from the caller's address and nonce.
9
+ *
10
+ * @returns Encoded calldata for the transaction
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import { getRegisterSpaceCalldata, TESTNET } from '@graphprotocol/grc-20';
15
+ * import { createWalletClient, http } from 'viem';
16
+ *
17
+ * const calldata = getRegisterSpaceCalldata();
18
+ *
19
+ * // Using viem
20
+ * const hash = await walletClient.sendTransaction({
21
+ * to: TESTNET.SPACE_REGISTRY_ADDRESS,
22
+ * data: calldata,
23
+ * });
24
+ *
25
+ * // Using wagmi
26
+ * const { sendTransaction } = useSendTransaction();
27
+ * sendTransaction({
28
+ * to: TESTNET.SPACE_REGISTRY_ADDRESS,
29
+ * data: calldata,
30
+ * });
31
+ * ```
32
+ */
33
+ export function getRegisterSpaceCalldata() {
34
+ return encodeFunctionData({
35
+ abi: SpaceRegistryAbi,
36
+ functionName: 'registerSpaceId',
37
+ });
38
+ }
39
+ //# sourceMappingURL=get-register-space-calldata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-register-space-calldata.js","sourceRoot":"","sources":["../../../src/encodings/get-register-space-calldata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,kBAAkB,CAAC;QACxB,GAAG,EAAE,gBAAgB;QACrB,YAAY,EAAE,iBAAiB;KAChC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=get-register-space-calldata.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-register-space-calldata.test.d.ts","sourceRoot":"","sources":["../../../src/encodings/get-register-space-calldata.test.ts"],"names":[],"mappings":""}