@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,28 @@
1
+ import type { CreateResult, UpdateEntityParams } from '../typesv2.js';
2
+ /**
3
+ * Updates an entity with the given name, description, cover and properties.
4
+ * All IDs passed to this function (cover, property IDs) are validated.
5
+ * If any invalid ID is provided, the function will throw an error.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const { id, ops } = updateEntity({
10
+ * id: entityId,
11
+ * name: 'name of the entity',
12
+ * description: 'description of the entity',
13
+ * cover: imageEntityId,
14
+ * values: {
15
+ * // value property like text, number, url, time, point, checkbox
16
+ * [propertyId]: {
17
+ * type: 'TEXT', // TEXT | NUMBER | URL | TIME | POINT | CHECKBOX,
18
+ * value: 'value of the property',
19
+ * }
20
+ * },
21
+ * });
22
+ * ```
23
+ * @param params – {@link UpdateEntityParams}
24
+ * @returns – {@link CreateResult}
25
+ * @throws Will throw an error if any provided ID is invalid
26
+ */
27
+ export declare const updateEntity: ({ id, name, description, cover, values }: UpdateEntityParams) => CreateResult;
28
+ //# sourceMappingURL=update-entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-entity.d.ts","sourceRoot":"","sources":["../../../src/graphv2/update-entity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAsB,kBAAkB,EAAS,MAAM,eAAe,CAAC;AAEjG;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,YAAY,GAAI,0CAA0C,kBAAkB,KAAG,YAgD3F,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { COVER_PROPERTY, DESCRIPTION_PROPERTY, NAME_PROPERTY } from '../core/idsv2/system.js';
2
+ import { Id, assertValid, generate, toBase64 } from '../idv2.js';
3
+ /**
4
+ * Updates an entity with the given name, description, cover and properties.
5
+ * All IDs passed to this function (cover, property IDs) are validated.
6
+ * If any invalid ID is provided, the function will throw an error.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const { id, ops } = updateEntity({
11
+ * id: entityId,
12
+ * name: 'name of the entity',
13
+ * description: 'description of the entity',
14
+ * cover: imageEntityId,
15
+ * values: {
16
+ * // value property like text, number, url, time, point, checkbox
17
+ * [propertyId]: {
18
+ * type: 'TEXT', // TEXT | NUMBER | URL | TIME | POINT | CHECKBOX,
19
+ * value: 'value of the property',
20
+ * }
21
+ * },
22
+ * });
23
+ * ```
24
+ * @param params – {@link UpdateEntityParams}
25
+ * @returns – {@link CreateResult}
26
+ * @throws Will throw an error if any provided ID is invalid
27
+ */
28
+ export const updateEntity = ({ id, name, description, cover, values }) => {
29
+ assertValid(id, '`id` in `updateEntity`');
30
+ const ops = [];
31
+ const newValues = [];
32
+ if (name) {
33
+ newValues.push({
34
+ propertyId: toBase64(NAME_PROPERTY),
35
+ value: name,
36
+ });
37
+ }
38
+ if (description) {
39
+ newValues.push({
40
+ propertyId: toBase64(DESCRIPTION_PROPERTY),
41
+ value: description,
42
+ });
43
+ }
44
+ for (const [key, value] of Object.entries(values ?? {})) {
45
+ newValues.push({
46
+ propertyId: toBase64(Id(key)),
47
+ value: value.value,
48
+ });
49
+ }
50
+ const op = {
51
+ type: 'UPDATE_ENTITY',
52
+ entity: {
53
+ id: toBase64(Id(id)),
54
+ values: newValues,
55
+ },
56
+ };
57
+ ops.push(op);
58
+ if (cover) {
59
+ assertValid(cover);
60
+ ops.push({
61
+ type: 'CREATE_RELATION',
62
+ relation: {
63
+ id: toBase64(generate()),
64
+ entity: toBase64(generate()),
65
+ fromEntity: toBase64(Id(id)),
66
+ toEntity: toBase64(Id(cover)),
67
+ type: toBase64(COVER_PROPERTY),
68
+ },
69
+ });
70
+ }
71
+ return { id, ops };
72
+ };
73
+ //# sourceMappingURL=update-entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-entity.js","sourceRoot":"","sources":["../../../src/graphv2/update-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGjE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAsB,EAAgB,EAAE;IACzG,WAAW,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAc,EAAE,CAAC;IAE1B,MAAM,SAAS,GAAiB,EAAE,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC;QACT,SAAS,CAAC,IAAI,CAAC;YACb,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC;YACnC,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,SAAS,CAAC,IAAI,CAAC;YACb,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC;YAC1C,KAAK,EAAE,WAAW;SACnB,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QACxD,SAAS,CAAC,IAAI,CAAC;YACb,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAC7B,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,GAAmB;QACzB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpB,MAAM,EAAE,SAAS;SAClB;KACF,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,IAAI,KAAK,EAAE,CAAC;QACV,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE;gBACR,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACxB,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC5B,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5B,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC;aAC/B;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=update-entity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-entity.test.d.ts","sourceRoot":"","sources":["../../../src/graphv2/update-entity.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,116 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { COVER_PROPERTY, DESCRIPTION_PROPERTY, NAME_PROPERTY } from '../core/idsv2/system.js';
3
+ import { Id, toBase64 } from '../idv2.js';
4
+ import { updateEntity } from './update-entity.js';
5
+ describe('updateEntity', () => {
6
+ const entityId = Id('b1dc6e5c-63e1-43ba-b3d4-755b251a4ea1');
7
+ const coverId = Id('30145d36-d5a5-4244-be59-3d111d879ba5');
8
+ it('updates an entity with name and description', async () => {
9
+ const result = updateEntity({
10
+ id: entityId,
11
+ name: 'Updated Entity',
12
+ description: 'Updated Description',
13
+ });
14
+ expect(result).toBeDefined();
15
+ expect(result.id).toBe(entityId);
16
+ expect(result.ops).toHaveLength(1);
17
+ expect(result.ops[0]).toMatchObject({
18
+ type: 'UPDATE_ENTITY',
19
+ entity: {
20
+ id: toBase64(entityId),
21
+ values: [
22
+ {
23
+ propertyId: toBase64(NAME_PROPERTY),
24
+ value: 'Updated Entity',
25
+ },
26
+ {
27
+ propertyId: toBase64(DESCRIPTION_PROPERTY),
28
+ value: 'Updated Description',
29
+ },
30
+ ],
31
+ },
32
+ });
33
+ });
34
+ it('updates an entity with only name', async () => {
35
+ const result = updateEntity({
36
+ id: entityId,
37
+ name: 'Updated Entity',
38
+ });
39
+ expect(result).toBeDefined();
40
+ expect(result.id).toBe(entityId);
41
+ expect(result.ops).toHaveLength(1);
42
+ expect(result.ops[0]).toMatchObject({
43
+ type: 'UPDATE_ENTITY',
44
+ entity: {
45
+ id: toBase64(entityId),
46
+ values: [
47
+ {
48
+ propertyId: toBase64(NAME_PROPERTY),
49
+ value: 'Updated Entity',
50
+ },
51
+ ],
52
+ },
53
+ });
54
+ });
55
+ it('updates an entity with cover', async () => {
56
+ const result = updateEntity({
57
+ id: entityId,
58
+ cover: coverId,
59
+ });
60
+ expect(result).toBeDefined();
61
+ expect(result.id).toBe(entityId);
62
+ expect(result.ops).toHaveLength(2);
63
+ // Check UPDATE_ENTITY op
64
+ expect(result.ops[0]).toMatchObject({
65
+ type: 'UPDATE_ENTITY',
66
+ entity: {
67
+ id: toBase64(entityId),
68
+ values: [],
69
+ },
70
+ });
71
+ // Check cover relation
72
+ expect(result.ops[1]).toMatchObject({
73
+ type: 'CREATE_RELATION',
74
+ relation: {
75
+ fromEntity: toBase64(entityId),
76
+ toEntity: toBase64(coverId),
77
+ type: toBase64(COVER_PROPERTY),
78
+ },
79
+ });
80
+ });
81
+ it('updates an entity with custom values', async () => {
82
+ const customPropertyId = Id('fa269fd3-de98-49cf-90c4-4235d905a67c');
83
+ const result = updateEntity({
84
+ id: entityId,
85
+ values: {
86
+ [customPropertyId]: {
87
+ value: 'updated custom value',
88
+ },
89
+ },
90
+ });
91
+ expect(result).toBeDefined();
92
+ expect(result.id).toBe(entityId);
93
+ expect(result.ops).toHaveLength(1);
94
+ expect(result.ops[0]).toMatchObject({
95
+ type: 'UPDATE_ENTITY',
96
+ entity: {
97
+ id: toBase64(entityId),
98
+ values: [
99
+ {
100
+ propertyId: toBase64(customPropertyId),
101
+ value: 'updated custom value',
102
+ },
103
+ ],
104
+ },
105
+ });
106
+ });
107
+ it('throws an error if the provided id is invalid', () => {
108
+ // @ts-expect-error - invalid id type
109
+ expect(() => updateEntity({ id: 'invalid' })).toThrow('Invalid id: "invalid" for `id` in `updateEntity`');
110
+ });
111
+ it('throws an error if the provided cover id is invalid', () => {
112
+ // @ts-expect-error - invalid cover id type
113
+ expect(() => updateEntity({ id: entityId, cover: 'invalid' })).toThrow('Invalid id: "invalid"');
114
+ });
115
+ });
116
+ //# sourceMappingURL=update-entity.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-entity.test.js","sourceRoot":"","sources":["../../../src/graphv2/update-entity.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { CreateResult, UpdateRelationParams } from '../typesv2.js';
2
+ /**
3
+ * Updates a relation.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * const { id, ops } = updateRelation({
8
+ * id: relationId,
9
+ * position: 'position of the relation',
10
+ * toSpace: 'id of the to space',
11
+ * fromVersion: 'id of the from version',
12
+ * toVersion: 'id of the to version',
13
+ * verified: true,
14
+ * });
15
+ * ```
16
+ * @param params – {@link UpdateRelationParams}
17
+ * @returns – {@link CreateResult}
18
+ * @throws Will throw an error if any provided ID is invalid
19
+ */
20
+ export declare const updateRelation: ({ id, position, fromSpace, toSpace, fromVersion, toVersion, verified, }: UpdateRelationParams) => CreateResult;
21
+ //# sourceMappingURL=update-relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-relation.d.ts","sourceRoot":"","sources":["../../../src/graphv2/update-relation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAM,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE5E;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc,GAAI,yEAQ5B,oBAAoB,KAAG,YAmBzB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { assertValid, toBase64 } from '../idv2.js';
2
+ /**
3
+ * Updates a relation.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * const { id, ops } = updateRelation({
8
+ * id: relationId,
9
+ * position: 'position of the relation',
10
+ * toSpace: 'id of the to space',
11
+ * fromVersion: 'id of the from version',
12
+ * toVersion: 'id of the to version',
13
+ * verified: true,
14
+ * });
15
+ * ```
16
+ * @param params – {@link UpdateRelationParams}
17
+ * @returns – {@link CreateResult}
18
+ * @throws Will throw an error if any provided ID is invalid
19
+ */
20
+ export const updateRelation = ({ id, position, fromSpace, toSpace, fromVersion, toVersion, verified, }) => {
21
+ assertValid(id, '`id` in `updateRelation`');
22
+ const ops = [];
23
+ ops.push({
24
+ type: 'UPDATE_RELATION',
25
+ relation: {
26
+ id: toBase64(id),
27
+ position,
28
+ fromSpace: fromSpace ? toBase64(fromSpace) : undefined,
29
+ toSpace: toSpace ? toBase64(toSpace) : undefined,
30
+ fromVersion: fromVersion ? toBase64(fromVersion) : undefined,
31
+ toVersion: toVersion ? toBase64(toVersion) : undefined,
32
+ verified,
33
+ },
34
+ });
35
+ return { id, ops };
36
+ };
37
+ //# sourceMappingURL=update-relation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-relation.js","sourceRoot":"","sources":["../../../src/graphv2/update-relation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGnD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,EAAE,EACF,QAAQ,EACR,SAAS,EACT,OAAO,EACP,WAAW,EACX,SAAS,EACT,QAAQ,GACa,EAAgB,EAAE;IACvC,WAAW,CAAC,EAAE,EAAE,0BAA0B,CAAC,CAAC;IAE5C,MAAM,GAAG,GAAc,EAAE,CAAC;IAE1B,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE;YACR,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;YAChB,QAAQ;YACR,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YACtD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YAChD,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5D,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YACtD,QAAQ;SACT;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Brand } from 'effect';
2
+ export type Id = string & Brand.Brand<'Id'>;
3
+ export type IdBase64 = string & Brand.Brand<'IdBase64'>;
4
+ export declare const Id: Brand.Brand.Constructor<Id>;
5
+ export declare const IdBase64: Brand.Brand.Constructor<IdBase64>;
6
+ /**
7
+ * Generates a globally unique knowledge graph identifier.
8
+ *
9
+ * @example
10
+ * ```
11
+ * import { ID } from '@graphprotocol/grc-20'
12
+ *
13
+ * const id = ID.generate();
14
+ * console.log(id)
15
+ * ```
16
+ *
17
+ * @returns v4 UUID
18
+ */
19
+ export declare function generate(): Id;
20
+ export declare function isValid(id: string): boolean;
21
+ export declare function isValidBase64(id: string): boolean;
22
+ export declare function assertValid(id: string, sourceHint?: string): void;
23
+ export declare function toBytes(id: Id): Uint8Array;
24
+ export declare function fromBytes(bytes: Uint8Array): Id;
25
+ export declare function toBase64(id: Id): IdBase64;
26
+ export declare function fromBase64(id: IdBase64): Id;
27
+ //# sourceMappingURL=idv2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idv2.d.ts","sourceRoot":"","sources":["../../src/idv2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAS/B,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAExD,eAAO,MAAM,EAAE,6BAGd,CAAC;AAEF,eAAO,MAAM,QAAQ,mCAGpB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,IAAI,EAAE,CAG7B;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE3C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAQjD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,QAI1D;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,CAE1C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,EAAE,CAE/C;AAID,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,QAAQ,CAoBzC;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,EAAE,CAqB3C"}
@@ -0,0 +1,88 @@
1
+ import { Brand } from 'effect';
2
+ /**
3
+ * This module provides utility functions for working knowledge graph
4
+ * identifiers in TypeScript.
5
+ */
6
+ import { parse as uuidParse, stringify as uuidStringify, validate as uuidValidate, v4 as uuidv4 } from 'uuid';
7
+ export const Id = Brand.refined(id => isValid(id), id => Brand.error(`Expected ${id} to be a valid Id`));
8
+ export const IdBase64 = Brand.refined(id => isValidBase64(id), id => Brand.error(`Expected ${id} to be a valid IdBase64`));
9
+ /**
10
+ * Generates a globally unique knowledge graph identifier.
11
+ *
12
+ * @example
13
+ * ```
14
+ * import { ID } from '@graphprotocol/grc-20'
15
+ *
16
+ * const id = ID.generate();
17
+ * console.log(id)
18
+ * ```
19
+ *
20
+ * @returns v4 UUID
21
+ */
22
+ export function generate() {
23
+ const uuid = uuidv4();
24
+ return Id(uuid);
25
+ }
26
+ export function isValid(id) {
27
+ return uuidValidate(id);
28
+ }
29
+ export function isValidBase64(id) {
30
+ try {
31
+ // @ts-expect-error
32
+ const uuid = fromBase64(id);
33
+ return isValid(uuid);
34
+ }
35
+ catch (error) {
36
+ return false;
37
+ }
38
+ }
39
+ export function assertValid(id, sourceHint) {
40
+ if (!isValid(id)) {
41
+ throw new Error(`Invalid id: "${id}"${sourceHint ? ` for ${sourceHint}` : ''}`);
42
+ }
43
+ }
44
+ export function toBytes(id) {
45
+ return uuidParse(id);
46
+ }
47
+ export function fromBytes(bytes) {
48
+ return Id(uuidStringify(bytes));
49
+ }
50
+ const base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
51
+ export function toBase64(id) {
52
+ const bytes = toBytes(id);
53
+ let result = '';
54
+ let i;
55
+ for (i = 0; i < bytes.length; i += 3) {
56
+ const a = bytes[i];
57
+ const b = bytes[i + 1] ?? 0;
58
+ const c = bytes[i + 2] ?? 0;
59
+ // @ts-expect-error
60
+ const triple = (a << 16) | (b << 8) | c;
61
+ result += base64Chars[(triple >> 18) & 0x3f];
62
+ result += base64Chars[(triple >> 12) & 0x3f];
63
+ result += i + 1 < bytes.length ? base64Chars[(triple >> 6) & 0x3f] : '=';
64
+ result += i + 2 < bytes.length ? base64Chars[triple & 0x3f] : '=';
65
+ }
66
+ return IdBase64(result);
67
+ }
68
+ export function fromBase64(id) {
69
+ const bytes = [];
70
+ for (let i = 0; i < id.length; i += 4) {
71
+ // @ts-expect-error
72
+ const c1 = base64Chars.indexOf(id[i]);
73
+ // @ts-expect-error
74
+ const c2 = base64Chars.indexOf(id[i + 1]);
75
+ // @ts-expect-error
76
+ const c3 = base64Chars.indexOf(id[i + 2]);
77
+ // @ts-expect-error
78
+ const c4 = base64Chars.indexOf(id[i + 3]);
79
+ const triple = (c1 << 18) | (c2 << 12) | ((c3 & 63) << 6) | (c4 & 63);
80
+ bytes.push((triple >> 16) & 0xff);
81
+ if (c3 !== -1 && c3 !== 64)
82
+ bytes.push((triple >> 8) & 0xff);
83
+ if (c4 !== -1 && c4 !== 64)
84
+ bytes.push(triple & 0xff);
85
+ }
86
+ return fromBytes(new Uint8Array(bytes));
87
+ }
88
+ //# sourceMappingURL=idv2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idv2.js","sourceRoot":"","sources":["../../src/idv2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=idv2.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idv2.test.d.ts","sourceRoot":"","sources":["../../src/idv2.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { expect, it } from 'vitest';
2
+ import { Id, generate, isValid, toBase64 } from './idv2.js';
3
+ it('should generate valid uuid', () => {
4
+ const id = generate();
5
+ expect(id).toBeTypeOf('string');
6
+ expect(id.length).toBe(36);
7
+ expect(id).toMatch(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/);
8
+ });
9
+ it('should validate uuid', () => {
10
+ expect(isValid(generate())).toBe(true);
11
+ expect(isValid(generate())).toBe(true);
12
+ expect(isValid(generate())).toBe(true);
13
+ expect(isValid('3af3e22d-2169-4a07-8681-516710b7ecf1')).toBe(true);
14
+ });
15
+ it('should not validate invalid id', () => {
16
+ expect(isValid('invalid-id')).toBe(false);
17
+ expect(isValid('0123456789012345678901')).toBe(false);
18
+ });
19
+ it('should convert id to base64', () => {
20
+ const id = Id('3af3e22d-2169-4a07-8681-516710b7ecf1');
21
+ const base64 = toBase64(id);
22
+ expect(base64).toBeTypeOf('string');
23
+ expect(base64).toBe('OvPiLSFpSgeGgVFnELfs8Q==');
24
+ expect(toBase64(Id('1d501a3a-d6ce-4693-bc90-d25286f21c7e'))).toBe('HVAaOtbORpO8kNJShvIcfg==');
25
+ });
26
+ //# sourceMappingURL=idv2.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idv2.test.js","sourceRoot":"","sources":["../../src/idv2.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE5D,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACpC,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,+EAA+E,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAC9B,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;IACxC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACrC,MAAM,EAAE,GAAG,EAAE,CAAC,sCAAsC,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAChD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This module provides utility functions for working with knowledge graph
3
+ * images in TypeScript.
4
+ *
5
+ * @since 0.0.6
6
+ */
7
+ export * as Image from './core/image.js';
8
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/image.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This module provides utility functions for working with knowledge graph
3
+ * images in TypeScript.
4
+ *
5
+ * @since 0.0.6
6
+ */
7
+ export * as Image from './core/image.js';
8
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/image.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * This module provides utility functions for interacting with the default
3
+ * IPFS gateway in TypeScript.
4
+ *
5
+ * @since 0.1.1
6
+ */
7
+ import { type Id } from './idv2.js';
8
+ import type { Op } from './typesv2.js';
9
+ type PublishEditProposalParams = {
10
+ name: string;
11
+ ops: Op[];
12
+ author: string;
13
+ };
14
+ type PublishEditResult = {
15
+ cid: string;
16
+ editId: Id;
17
+ };
18
+ /**
19
+ * Generates correct protobuf encoding for an Edit and uploads it to IPFS.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { IPFS } from '@graphprotocol/grc-20';
24
+ *
25
+ * const { cid, editId } = await IPFS.publishEdit({
26
+ * name: 'Edit name',
27
+ * ops: ops,
28
+ * author: '0x000000000000000000000000000000000000',
29
+ * });
30
+ * ```
31
+ *
32
+ * @param args arguments for publishing an edit to IPFS {@link PublishEditProposalParams}
33
+ * @returns - {@link PublishEditResult}
34
+ */
35
+ export declare function publishEdit(args: PublishEditProposalParams): Promise<PublishEditResult>;
36
+ type PublishImageParams = {
37
+ blob: Blob;
38
+ } | {
39
+ url: string;
40
+ };
41
+ export declare function uploadImage(params: PublishImageParams): Promise<{
42
+ cid: `ipfs://${string}`;
43
+ dimensions: {
44
+ width: number;
45
+ height: number;
46
+ };
47
+ } | {
48
+ cid: `ipfs://${string}`;
49
+ dimensions?: undefined;
50
+ }>;
51
+ /**
52
+ * Uploads a CSV file to IPFS and returns the CID. This CSV
53
+ * file will be compressed using gzip before being uploaded.
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * const file = Bun.file('cities.csv');
58
+ * const fileText = await file.text();
59
+ *
60
+ * const cid = await Ipfs.uploadCSV(fileText);
61
+ * ```
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * import { Csv } from '@graphprotocol/grc-20';
66
+ *
67
+ * const csvString = Csv.stringify({
68
+ * data: Array.from({ length: 151_000 }, (_, i: number) => [i.toString(), (i * 2).toString(), (i * 3).toString()]),
69
+ * metadata: {
70
+ * filetype: 'CSV',
71
+ * columns: [
72
+ * {
73
+ * id: 'foo',
74
+ * type: 'TEXT',
75
+ * },
76
+ * {
77
+ * id: 'bar',
78
+ * type: 'NUMBER',
79
+ * },
80
+ * {
81
+ * id: 'baz',
82
+ * type: 'TEXT',
83
+ * },
84
+ * ],
85
+ * },
86
+ * })
87
+ *
88
+ * const cid = await Ipfs.uploadCSV(csvString);
89
+ * ```
90
+ *
91
+ * @param csvString The CSV to upload as a string
92
+ * @returns IPFS CID representing the uploaded file prefixed with `ipfs://`
93
+ */
94
+ export declare function uploadCSV(csvString: string): Promise<`ipfs://${string}`>;
95
+ export {};
96
+ //# sourceMappingURL=ipfsv2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipfsv2.d.ts","sourceRoot":"","sources":["../../src/ipfsv2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,KAAK,EAAE,EAAa,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAMvC,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,EAAE,EAAE,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IAEvB,GAAG,EAAE,MAAM,CAAC;IAEZ,MAAM,EAAE,EAAE,CAAC;CACZ,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAa7F;AAED,KAAK,kBAAkB,GACnB;IACE,IAAI,EAAE,IAAI,CAAC;CACZ,GACD;IACE,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEN,wBAAsB,WAAW,CAAC,MAAM,EAAE,kBAAkB;;;;;;;;;GAkC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,MAAM,EAAE,CAAC,CAS9E"}