@graphprotocol/grc-20 0.26.0 → 0.27.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 (286) hide show
  1. package/README.md +2 -2
  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/protov2.d.ts +11 -0
  11. package/dist/protov2.d.ts.map +1 -0
  12. package/dist/protov2.js +11 -0
  13. package/dist/protov2.js.map +1 -0
  14. package/dist/src/core/blocks/data.test.js +4 -4
  15. package/dist/src/core/blocks/data.test.js.map +1 -1
  16. package/dist/src/core/blocks/image.d.ts +15 -0
  17. package/dist/src/core/blocks/image.d.ts.map +1 -0
  18. package/dist/src/core/blocks/image.js +15 -0
  19. package/dist/src/core/blocks/image.js.map +1 -0
  20. package/dist/src/core/blocks/text.test.js +2 -2
  21. package/dist/src/core/blocks/text.test.js.map +1 -1
  22. package/dist/src/core/ids/content.d.ts.map +1 -1
  23. package/dist/src/core/ids/content.js +55 -55
  24. package/dist/src/core/ids/content.js.map +1 -1
  25. package/dist/src/core/ids/network.d.ts.map +1 -1
  26. package/dist/src/core/ids/network.js +3 -3
  27. package/dist/src/core/ids/network.js.map +1 -1
  28. package/dist/src/core/ids/system.d.ts.map +1 -1
  29. package/dist/src/core/ids/system.js +140 -140
  30. package/dist/src/core/ids/system.js.map +1 -1
  31. package/dist/src/core/idsv2/content.d.ts +59 -0
  32. package/dist/src/core/idsv2/content.d.ts.map +1 -0
  33. package/dist/src/core/idsv2/content.js +59 -0
  34. package/dist/src/core/idsv2/content.js.map +1 -0
  35. package/dist/src/core/idsv2/network.d.ts +5 -0
  36. package/dist/src/core/idsv2/network.d.ts.map +1 -0
  37. package/dist/src/core/idsv2/network.js +5 -0
  38. package/dist/src/core/idsv2/network.js.map +1 -0
  39. package/dist/src/core/idsv2/system.d.ts +222 -0
  40. package/dist/src/core/idsv2/system.d.ts.map +1 -0
  41. package/dist/src/core/idsv2/system.js +230 -0
  42. package/dist/src/core/idsv2/system.js.map +1 -0
  43. package/dist/src/core/image.d.ts +40 -0
  44. package/dist/src/core/image.d.ts.map +1 -0
  45. package/dist/src/core/image.js +76 -0
  46. package/dist/src/core/image.js.map +1 -0
  47. package/dist/src/core/image.test.d.ts +2 -0
  48. package/dist/src/core/image.test.d.ts.map +1 -0
  49. package/dist/src/core/image.test.js +52 -0
  50. package/dist/src/core/image.test.js.map +1 -0
  51. package/dist/src/core/relation.d.ts +88 -0
  52. package/dist/src/core/relation.d.ts.map +1 -0
  53. package/dist/src/core/relation.js +89 -0
  54. package/dist/src/core/relation.js.map +1 -0
  55. package/dist/src/core/relation.test.d.ts +2 -0
  56. package/dist/src/core/relation.test.d.ts.map +1 -0
  57. package/dist/src/core/relation.test.js +45 -0
  58. package/dist/src/core/relation.test.js.map +1 -0
  59. package/dist/src/core/triple.d.ts +50 -0
  60. package/dist/src/core/triple.d.ts.map +1 -0
  61. package/dist/src/core/triple.js +56 -0
  62. package/dist/src/core/triple.js.map +1 -0
  63. package/dist/src/core/triple.test.d.ts +2 -0
  64. package/dist/src/core/triple.test.d.ts.map +1 -0
  65. package/dist/src/core/triple.test.js +37 -0
  66. package/dist/src/core/triple.test.js.map +1 -0
  67. package/dist/src/graph/create-entity.test.js +25 -25
  68. package/dist/src/graph/create-entity.test.js.map +1 -1
  69. package/dist/src/graph/create-image.test.js +2 -2
  70. package/dist/src/graph/create-image.test.js.map +1 -1
  71. package/dist/src/graph/create-property.test.js +2 -2
  72. package/dist/src/graph/create-property.test.js.map +1 -1
  73. package/dist/src/graph/create-relation.test.js +11 -11
  74. package/dist/src/graph/create-relation.test.js.map +1 -1
  75. package/dist/src/graph/create-type.test.js +2 -2
  76. package/dist/src/graph/create-type.test.js.map +1 -1
  77. package/dist/src/graph/delete-entity.d.ts +14 -0
  78. package/dist/src/graph/delete-entity.d.ts.map +1 -0
  79. package/dist/src/graph/delete-entity.js +21 -0
  80. package/dist/src/graph/delete-entity.js.map +1 -0
  81. package/dist/src/graph/delete-entity.test.d.ts +2 -0
  82. package/dist/src/graph/delete-entity.test.d.ts.map +1 -0
  83. package/dist/src/graph/delete-entity.test.js +23 -0
  84. package/dist/src/graph/delete-entity.test.js.map +1 -0
  85. package/dist/src/graph/delete-relation.test.js +1 -1
  86. package/dist/src/graph/delete-relation.test.js.map +1 -1
  87. package/dist/src/graph/graph.test.d.ts +2 -0
  88. package/dist/src/graph/graph.test.d.ts.map +1 -0
  89. package/dist/src/graph/graph.test.js +46 -0
  90. package/dist/src/graph/graph.test.js.map +1 -0
  91. package/dist/src/graph/helpers/create-default-properties.d.ts +5 -0
  92. package/dist/src/graph/helpers/create-default-properties.d.ts.map +1 -0
  93. package/dist/src/graph/helpers/create-default-properties.js +44 -0
  94. package/dist/src/graph/helpers/create-default-properties.js.map +1 -0
  95. package/dist/src/graph/helpers/create-properties.d.ts +8 -0
  96. package/dist/src/graph/helpers/create-properties.d.ts.map +1 -0
  97. package/dist/src/graph/helpers/create-properties.js +53 -0
  98. package/dist/src/graph/helpers/create-properties.js.map +1 -0
  99. package/dist/src/graph/unset-entity-values.test.js +3 -3
  100. package/dist/src/graph/unset-entity-values.test.js.map +1 -1
  101. package/dist/src/graph/unset-relation-fields.test.js +2 -2
  102. package/dist/src/graph/unset-relation-fields.test.js.map +1 -1
  103. package/dist/src/graph/update-entity.test.js +3 -3
  104. package/dist/src/graph/update-entity.test.js.map +1 -1
  105. package/dist/src/graph/update-relation.test.js +5 -5
  106. package/dist/src/graph/update-relation.test.js.map +1 -1
  107. package/dist/src/graphv2/constants.d.ts +2 -0
  108. package/dist/src/graphv2/constants.d.ts.map +1 -0
  109. package/dist/src/graphv2/constants.js +2 -0
  110. package/dist/src/graphv2/constants.js.map +1 -0
  111. package/dist/src/graphv2/create-entity.d.ts +52 -0
  112. package/dist/src/graphv2/create-entity.d.ts.map +1 -0
  113. package/dist/src/graphv2/create-entity.js +140 -0
  114. package/dist/src/graphv2/create-entity.js.map +1 -0
  115. package/dist/src/graphv2/create-entity.test.d.ts +2 -0
  116. package/dist/src/graphv2/create-entity.test.d.ts.map +1 -0
  117. package/dist/src/graphv2/create-entity.test.js +158 -0
  118. package/dist/src/graphv2/create-entity.test.js.map +1 -0
  119. package/dist/src/graphv2/create-image.d.ts +28 -0
  120. package/dist/src/graphv2/create-image.d.ts.map +1 -0
  121. package/dist/src/graphv2/create-image.js +71 -0
  122. package/dist/src/graphv2/create-image.js.map +1 -0
  123. package/dist/src/graphv2/create-image.test.d.ts +2 -0
  124. package/dist/src/graphv2/create-image.test.d.ts.map +1 -0
  125. package/dist/src/graphv2/create-image.test.js +142 -0
  126. package/dist/src/graphv2/create-image.test.js.map +1 -0
  127. package/dist/src/graphv2/create-property.d.ts +22 -0
  128. package/dist/src/graphv2/create-property.d.ts.map +1 -0
  129. package/dist/src/graphv2/create-property.js +129 -0
  130. package/dist/src/graphv2/create-property.js.map +1 -0
  131. package/dist/src/graphv2/create-property.test.d.ts +2 -0
  132. package/dist/src/graphv2/create-property.test.d.ts.map +1 -0
  133. package/dist/src/graphv2/create-property.test.js +82 -0
  134. package/dist/src/graphv2/create-property.test.js.map +1 -0
  135. package/dist/src/graphv2/create-relation.d.ts +33 -0
  136. package/dist/src/graphv2/create-relation.d.ts.map +1 -0
  137. package/dist/src/graphv2/create-relation.js +66 -0
  138. package/dist/src/graphv2/create-relation.js.map +1 -0
  139. package/dist/src/graphv2/create-relation.test.d.ts +2 -0
  140. package/dist/src/graphv2/create-relation.test.d.ts.map +1 -0
  141. package/dist/src/graphv2/create-relation.test.js +208 -0
  142. package/dist/src/graphv2/create-relation.test.js.map +1 -0
  143. package/dist/src/graphv2/create-space.d.ts +13 -0
  144. package/dist/src/graphv2/create-space.d.ts.map +1 -0
  145. package/dist/src/graphv2/create-space.js +21 -0
  146. package/dist/src/graphv2/create-space.js.map +1 -0
  147. package/dist/src/graphv2/create-type.d.ts +22 -0
  148. package/dist/src/graphv2/create-type.d.ts.map +1 -0
  149. package/dist/src/graphv2/create-type.js +64 -0
  150. package/dist/src/graphv2/create-type.js.map +1 -0
  151. package/dist/src/graphv2/create-type.test.d.ts +2 -0
  152. package/dist/src/graphv2/create-type.test.d.ts.map +1 -0
  153. package/dist/src/graphv2/create-type.test.js +109 -0
  154. package/dist/src/graphv2/create-type.test.js.map +1 -0
  155. package/dist/src/graphv2/delete-entity.d.ts +14 -0
  156. package/dist/src/graphv2/delete-entity.d.ts.map +1 -0
  157. package/dist/src/graphv2/delete-entity.js +21 -0
  158. package/dist/src/graphv2/delete-entity.js.map +1 -0
  159. package/dist/src/graphv2/delete-entity.test.d.ts +2 -0
  160. package/dist/src/graphv2/delete-entity.test.d.ts.map +1 -0
  161. package/dist/src/graphv2/delete-entity.test.js +24 -0
  162. package/dist/src/graphv2/delete-entity.test.js.map +1 -0
  163. package/dist/src/graphv2/delete-relation.d.ts +14 -0
  164. package/dist/src/graphv2/delete-relation.d.ts.map +1 -0
  165. package/dist/src/graphv2/delete-relation.js +21 -0
  166. package/dist/src/graphv2/delete-relation.js.map +1 -0
  167. package/dist/src/graphv2/delete-relation.test.d.ts +2 -0
  168. package/dist/src/graphv2/delete-relation.test.d.ts.map +1 -0
  169. package/dist/src/graphv2/delete-relation.test.js +24 -0
  170. package/dist/src/graphv2/delete-relation.test.js.map +1 -0
  171. package/dist/src/graphv2/index.d.ts +12 -0
  172. package/dist/src/graphv2/index.d.ts.map +1 -0
  173. package/dist/src/graphv2/index.js +12 -0
  174. package/dist/src/graphv2/index.js.map +1 -0
  175. package/dist/src/graphv2/remove-entity-properties.d.ts +25 -0
  176. package/dist/src/graphv2/remove-entity-properties.d.ts.map +1 -0
  177. package/dist/src/graphv2/remove-entity-properties.js +24 -0
  178. package/dist/src/graphv2/remove-entity-properties.js.map +1 -0
  179. package/dist/src/graphv2/unset-entity-values.d.ts +21 -0
  180. package/dist/src/graphv2/unset-entity-values.d.ts.map +1 -0
  181. package/dist/src/graphv2/unset-entity-values.js +26 -0
  182. package/dist/src/graphv2/unset-entity-values.js.map +1 -0
  183. package/dist/src/graphv2/unset-entity-values.test.d.ts +2 -0
  184. package/dist/src/graphv2/unset-entity-values.test.d.ts.map +1 -0
  185. package/dist/src/graphv2/unset-entity-values.test.js +40 -0
  186. package/dist/src/graphv2/unset-entity-values.test.js.map +1 -0
  187. package/dist/src/graphv2/unset-relation-fields.d.ts +25 -0
  188. package/dist/src/graphv2/unset-relation-fields.d.ts.map +1 -0
  189. package/dist/src/graphv2/unset-relation-fields.js +34 -0
  190. package/dist/src/graphv2/unset-relation-fields.js.map +1 -0
  191. package/dist/src/graphv2/unset-relation-fields.test.d.ts +2 -0
  192. package/dist/src/graphv2/unset-relation-fields.test.d.ts.map +1 -0
  193. package/dist/src/graphv2/unset-relation-fields.test.js +64 -0
  194. package/dist/src/graphv2/unset-relation-fields.test.js.map +1 -0
  195. package/dist/src/graphv2/update-entity.d.ts +28 -0
  196. package/dist/src/graphv2/update-entity.d.ts.map +1 -0
  197. package/dist/src/graphv2/update-entity.js +73 -0
  198. package/dist/src/graphv2/update-entity.js.map +1 -0
  199. package/dist/src/graphv2/update-entity.test.d.ts +2 -0
  200. package/dist/src/graphv2/update-entity.test.d.ts.map +1 -0
  201. package/dist/src/graphv2/update-entity.test.js +116 -0
  202. package/dist/src/graphv2/update-entity.test.js.map +1 -0
  203. package/dist/src/graphv2/update-relation.d.ts +21 -0
  204. package/dist/src/graphv2/update-relation.d.ts.map +1 -0
  205. package/dist/src/graphv2/update-relation.js +37 -0
  206. package/dist/src/graphv2/update-relation.js.map +1 -0
  207. package/dist/src/id-utils.d.ts +2 -2
  208. package/dist/src/id-utils.d.ts.map +1 -1
  209. package/dist/src/id-utils.js +5 -4
  210. package/dist/src/id-utils.js.map +1 -1
  211. package/dist/src/id-utils.test.js +19 -3
  212. package/dist/src/id-utils.test.js.map +1 -1
  213. package/dist/src/id.d.ts +6 -0
  214. package/dist/src/id.d.ts.map +1 -1
  215. package/dist/src/id.js +7 -1
  216. package/dist/src/id.js.map +1 -1
  217. package/dist/src/id.test.js +1 -0
  218. package/dist/src/id.test.js.map +1 -1
  219. package/dist/src/idv2.d.ts +27 -0
  220. package/dist/src/idv2.d.ts.map +1 -0
  221. package/dist/src/idv2.js +88 -0
  222. package/dist/src/idv2.js.map +1 -0
  223. package/dist/src/idv2.test.d.ts +2 -0
  224. package/dist/src/idv2.test.d.ts.map +1 -0
  225. package/dist/src/idv2.test.js +26 -0
  226. package/dist/src/idv2.test.js.map +1 -0
  227. package/dist/src/image.d.ts +8 -0
  228. package/dist/src/image.d.ts.map +1 -0
  229. package/dist/src/image.js +8 -0
  230. package/dist/src/image.js.map +1 -0
  231. package/dist/src/internal/uuid.d.ts +11 -0
  232. package/dist/src/internal/uuid.d.ts.map +1 -0
  233. package/dist/src/internal/uuid.js +18 -0
  234. package/dist/src/internal/uuid.js.map +1 -0
  235. package/dist/src/ipfsv2.d.ts +96 -0
  236. package/dist/src/ipfsv2.d.ts.map +1 -0
  237. package/dist/src/ipfsv2.js +163 -0
  238. package/dist/src/ipfsv2.js.map +1 -0
  239. package/dist/src/ipfsv2.test.d.ts +2 -0
  240. package/dist/src/ipfsv2.test.d.ts.map +1 -0
  241. package/dist/src/ipfsv2.test.js +22 -0
  242. package/dist/src/ipfsv2.test.js.map +1 -0
  243. package/dist/src/proto/edit.test.js +38 -41
  244. package/dist/src/proto/edit.test.js.map +1 -1
  245. package/dist/src/proto/editv2.d.ts +11 -0
  246. package/dist/src/proto/editv2.d.ts.map +1 -0
  247. package/dist/src/proto/editv2.js +81 -0
  248. package/dist/src/proto/editv2.js.map +1 -0
  249. package/dist/src/proto/editv2.test.d.ts +2 -0
  250. package/dist/src/proto/editv2.test.d.ts.map +1 -0
  251. package/dist/src/proto/editv2.test.js +211 -0
  252. package/dist/src/proto/editv2.test.js.map +1 -0
  253. package/dist/src/proto/gen/src/proto/ipfsv2_pb.d.ts +410 -0
  254. package/dist/src/proto/gen/src/proto/ipfsv2_pb.d.ts.map +1 -0
  255. package/dist/src/proto/gen/src/proto/ipfsv2_pb.js +536 -0
  256. package/dist/src/proto/gen/src/proto/ipfsv2_pb.js.map +1 -0
  257. package/dist/src/relation.d.ts +7 -0
  258. package/dist/src/relation.d.ts.map +1 -0
  259. package/dist/src/relation.js +7 -0
  260. package/dist/src/relation.js.map +1 -0
  261. package/dist/src/smart-wallet-2.test-invalid.d.ts +2 -0
  262. package/dist/src/smart-wallet-2.test-invalid.d.ts.map +1 -0
  263. package/dist/src/smart-wallet-2.test-invalid.js +49 -0
  264. package/dist/src/smart-wallet-2.test-invalid.js.map +1 -0
  265. package/dist/src/smart-wallet-2.test.d.ts +2 -0
  266. package/dist/src/smart-wallet-2.test.d.ts.map +1 -0
  267. package/dist/src/smart-wallet-2.test.js +49 -0
  268. package/dist/src/smart-wallet-2.test.js.map +1 -0
  269. package/dist/src/system-ids-v2.d.ts +7 -0
  270. package/dist/src/system-ids-v2.d.ts.map +1 -0
  271. package/dist/src/system-ids-v2.js +7 -0
  272. package/dist/src/system-ids-v2.js.map +1 -0
  273. package/dist/src/triple.d.ts +7 -0
  274. package/dist/src/triple.d.ts.map +1 -0
  275. package/dist/src/triple.js +7 -0
  276. package/dist/src/triple.js.map +1 -0
  277. package/dist/src/types-backup.d.ts +134 -0
  278. package/dist/src/types-backup.d.ts.map +1 -0
  279. package/dist/src/types-backup.js +13 -0
  280. package/dist/src/types-backup.js.map +1 -0
  281. package/dist/src/typesv2.d.ts +173 -0
  282. package/dist/src/typesv2.d.ts.map +1 -0
  283. package/dist/src/typesv2.js +8 -0
  284. package/dist/src/typesv2.js.map +1 -0
  285. package/dist/tsconfig.tsbuildinfo +1 -0
  286. package/package.json +1 -1
@@ -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"}
@@ -5,7 +5,7 @@ import { Id } from '../id.js';
5
5
  import { createEntity } from './create-entity.js';
6
6
  import { serializeNumber } from './serialize.js';
7
7
  describe('createEntity', () => {
8
- const coverId = Id('30145d36-d5a5-4244-be59-3d111d879ba5');
8
+ const coverId = Id('30145d36d5a54244be593d111d879ba5');
9
9
  it('creates a basic entity without properties', () => {
10
10
  const entity = createEntity({});
11
11
  expect(entity).toBeDefined();
@@ -105,7 +105,7 @@ describe('createEntity', () => {
105
105
  });
106
106
  });
107
107
  it('creates an entity with custom values', () => {
108
- const customPropertyId = Id('fa269fd3-de98-49cf-90c4-4235d905a67c');
108
+ const customPropertyId = Id('fa269fd3de9849cf90c44235d905a67c');
109
109
  const entity = createEntity({
110
110
  values: [{ property: customPropertyId, value: 'custom value' }],
111
111
  });
@@ -129,9 +129,9 @@ describe('createEntity', () => {
129
129
  const entity = createEntity({
130
130
  values: [
131
131
  {
132
- property: '295c8bc6-1ae3-42cb-b2a6-5b61080906ff',
132
+ property: '295c8bc61ae342cbb2a65b61080906ff',
133
133
  value: 'test',
134
- options: { type: 'text', language: Id('0a4e9810-f78f-429e-a4ce-b1904a43251d') },
134
+ options: { type: 'text', language: Id('0a4e9810f78f429ea4ceb1904a43251d') },
135
135
  },
136
136
  ],
137
137
  });
@@ -144,11 +144,11 @@ describe('createEntity', () => {
144
144
  id: entity.id,
145
145
  values: [
146
146
  {
147
- property: '295c8bc6-1ae3-42cb-b2a6-5b61080906ff',
147
+ property: '295c8bc61ae342cbb2a65b61080906ff',
148
148
  value: 'test',
149
149
  options: {
150
150
  text: {
151
- language: '0a4e9810-f78f-429e-a4ce-b1904a43251d',
151
+ language: '0a4e9810f78f429ea4ceb1904a43251d',
152
152
  },
153
153
  },
154
154
  },
@@ -160,14 +160,14 @@ describe('createEntity', () => {
160
160
  const entity = createEntity({
161
161
  values: [
162
162
  {
163
- property: '295c8bc6-1ae3-42cb-b2a6-5b61080906ff',
163
+ property: '295c8bc61ae342cbb2a65b61080906ff',
164
164
  value: 'test',
165
- options: { type: 'text', language: Id('0a4e9810-f78f-429e-a4ce-b1904a43251d') },
165
+ options: { type: 'text', language: Id('0a4e9810f78f429ea4ceb1904a43251d') },
166
166
  },
167
167
  {
168
- property: '295c8bc6-1ae3-42cb-b2a6-5b61080906ff',
168
+ property: '295c8bc61ae342cbb2a65b61080906ff',
169
169
  value: 'prueba',
170
- options: { type: 'text', language: Id('dad6e52a-5e94-4e55-9411-cfe3a3c3ea64') },
170
+ options: { type: 'text', language: Id('dad6e52a5e944e559411cfe3a3c3ea64') },
171
171
  },
172
172
  ],
173
173
  });
@@ -180,20 +180,20 @@ describe('createEntity', () => {
180
180
  id: entity.id,
181
181
  values: [
182
182
  {
183
- property: '295c8bc6-1ae3-42cb-b2a6-5b61080906ff',
183
+ property: '295c8bc61ae342cbb2a65b61080906ff',
184
184
  value: 'test',
185
185
  options: {
186
186
  text: {
187
- language: '0a4e9810-f78f-429e-a4ce-b1904a43251d',
187
+ language: '0a4e9810f78f429ea4ceb1904a43251d',
188
188
  },
189
189
  },
190
190
  },
191
191
  {
192
- property: '295c8bc6-1ae3-42cb-b2a6-5b61080906ff',
192
+ property: '295c8bc61ae342cbb2a65b61080906ff',
193
193
  value: 'prueba',
194
194
  options: {
195
195
  text: {
196
- language: 'dad6e52a-5e94-4e55-9411-cfe3a3c3ea64',
196
+ language: 'dad6e52a5e944e559411cfe3a3c3ea64',
197
197
  },
198
198
  },
199
199
  },
@@ -205,7 +205,7 @@ describe('createEntity', () => {
205
205
  const entity = createEntity({
206
206
  values: [
207
207
  {
208
- property: '295c8bc6-1ae3-42cb-b2a6-5b61080906ff',
208
+ property: '295c8bc61ae342cbb2a65b61080906ff',
209
209
  value: serializeNumber(42),
210
210
  },
211
211
  ],
@@ -219,7 +219,7 @@ describe('createEntity', () => {
219
219
  id: entity.id,
220
220
  values: [
221
221
  {
222
- property: '295c8bc6-1ae3-42cb-b2a6-5b61080906ff',
222
+ property: '295c8bc61ae342cbb2a65b61080906ff',
223
223
  value: '42',
224
224
  },
225
225
  ],
@@ -230,11 +230,11 @@ describe('createEntity', () => {
230
230
  const entity = createEntity({
231
231
  values: [
232
232
  {
233
- property: '295c8bc6-1ae3-42cb-b2a6-5b61080906ff',
233
+ property: '295c8bc61ae342cbb2a65b61080906ff',
234
234
  value: serializeNumber(42),
235
235
  options: {
236
236
  type: 'number',
237
- unit: '016c9b1c-d8a8-4e4d-9e84-4e40878bb235',
237
+ unit: '016c9b1cd8a84e4d9e844e40878bb235',
238
238
  },
239
239
  },
240
240
  ],
@@ -248,11 +248,11 @@ describe('createEntity', () => {
248
248
  id: entity.id,
249
249
  values: [
250
250
  {
251
- property: '295c8bc6-1ae3-42cb-b2a6-5b61080906ff',
251
+ property: '295c8bc61ae342cbb2a65b61080906ff',
252
252
  value: '42',
253
253
  options: {
254
254
  number: {
255
- unit: '016c9b1c-d8a8-4e4d-9e84-4e40878bb235',
255
+ unit: '016c9b1cd8a84e4d9e844e40878bb235',
256
256
  },
257
257
  },
258
258
  },
@@ -261,12 +261,12 @@ describe('createEntity', () => {
261
261
  });
262
262
  });
263
263
  it('creates an entity with relations', () => {
264
- const providedId = Id('b1dc6e5c-63e1-43ba-b3d4-755b251a4ea1');
264
+ const providedId = Id('b1dc6e5c63e143bab3d4755b251a4ea1');
265
265
  const entity = createEntity({
266
266
  id: providedId,
267
267
  relations: {
268
- '295c8bc6-1ae3-42cb-b2a6-5b61080906ff': {
269
- toEntity: 'd8fd9b48-e090-430d-b52c-6b33d897d0f3',
268
+ '295c8bc61ae342cbb2a65b61080906ff': {
269
+ toEntity: 'd8fd9b48e090430db52c6b33d897d0f3',
270
270
  },
271
271
  },
272
272
  });
@@ -280,8 +280,8 @@ describe('createEntity', () => {
280
280
  type: 'CREATE_RELATION',
281
281
  relation: {
282
282
  fromEntity: entity.id,
283
- type: '295c8bc6-1ae3-42cb-b2a6-5b61080906ff',
284
- toEntity: 'd8fd9b48-e090-430d-b52c-6b33d897d0f3',
283
+ type: '295c8bc61ae342cbb2a65b61080906ff',
284
+ toEntity: 'd8fd9b48e090430db52c6b33d897d0f3',
285
285
  },
286
286
  });
287
287
  });