@graphprotocol/grc-20 0.12.2 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +23 -20
  2. package/dist/src/core/account.js +2 -2
  3. package/dist/src/core/account.js.map +1 -1
  4. package/dist/src/core/account.test.js +11 -11
  5. package/dist/src/core/account.test.js.map +1 -1
  6. package/dist/src/core/blocks/data.js +1 -1
  7. package/dist/src/core/blocks/data.js.map +1 -1
  8. package/dist/src/core/blocks/data.test.js +14 -14
  9. package/dist/src/core/blocks/data.test.js.map +1 -1
  10. package/dist/src/core/blocks/text.js +1 -1
  11. package/dist/src/core/blocks/text.js.map +1 -1
  12. package/dist/src/core/blocks/text.test.js +6 -6
  13. package/dist/src/core/blocks/text.test.js.map +1 -1
  14. package/dist/src/graph/create-entity.d.ts +8 -8
  15. package/dist/src/graph/create-entity.d.ts.map +1 -1
  16. package/dist/src/graph/create-entity.js +70 -31
  17. package/dist/src/graph/create-entity.js.map +1 -1
  18. package/dist/src/graph/create-entity.test.js +92 -35
  19. package/dist/src/graph/create-entity.test.js.map +1 -1
  20. package/dist/src/graph/create-image.d.ts.map +1 -1
  21. package/dist/src/graph/create-image.js +11 -18
  22. package/dist/src/graph/create-image.js.map +1 -1
  23. package/dist/src/graph/create-image.test.js +5 -6
  24. package/dist/src/graph/create-image.test.js.map +1 -1
  25. package/dist/src/graph/create-property.d.ts.map +1 -1
  26. package/dist/src/graph/create-property.js +27 -17
  27. package/dist/src/graph/create-property.js.map +1 -1
  28. package/dist/src/graph/create-relation.d.ts.map +1 -1
  29. package/dist/src/graph/create-relation.js +30 -10
  30. package/dist/src/graph/create-relation.js.map +1 -1
  31. package/dist/src/graph/create-relation.test.js +30 -31
  32. package/dist/src/graph/create-relation.test.js.map +1 -1
  33. package/dist/src/graph/create-type.d.ts.map +1 -1
  34. package/dist/src/graph/create-type.js +16 -14
  35. package/dist/src/graph/create-type.js.map +1 -1
  36. package/dist/src/graph/create-type.test.js +17 -18
  37. package/dist/src/graph/create-type.test.js.map +1 -1
  38. package/dist/src/graph/delete-entity.js +4 -4
  39. package/dist/src/graph/delete-entity.js.map +1 -1
  40. package/dist/src/graph/delete-entity.test.js +2 -3
  41. package/dist/src/graph/delete-entity.test.js.map +1 -1
  42. package/dist/src/graph/delete-relation.js +4 -4
  43. package/dist/src/graph/delete-relation.js.map +1 -1
  44. package/dist/src/graph/delete-relation.test.js +2 -3
  45. package/dist/src/graph/delete-relation.test.js.map +1 -1
  46. package/dist/src/graph/index.d.ts +1 -0
  47. package/dist/src/graph/index.d.ts.map +1 -1
  48. package/dist/src/graph/index.js +1 -0
  49. package/dist/src/graph/index.js.map +1 -1
  50. package/dist/src/graph/serialize.d.ts +5 -0
  51. package/dist/src/graph/serialize.d.ts.map +1 -0
  52. package/dist/src/graph/serialize.js +13 -0
  53. package/dist/src/graph/serialize.js.map +1 -0
  54. package/dist/src/graph/serialize.test.d.ts +2 -0
  55. package/dist/src/graph/serialize.test.d.ts.map +1 -0
  56. package/dist/src/graph/serialize.test.js +49 -0
  57. package/dist/src/graph/serialize.test.js.map +1 -0
  58. package/dist/src/graph/unset-entity-values.d.ts.map +1 -1
  59. package/dist/src/graph/unset-entity-values.js +8 -4
  60. package/dist/src/graph/unset-entity-values.js.map +1 -1
  61. package/dist/src/graph/unset-entity-values.test.js +4 -4
  62. package/dist/src/graph/unset-entity-values.test.js.map +1 -1
  63. package/dist/src/graph/unset-relation-fields.d.ts +1 -1
  64. package/dist/src/graph/unset-relation-fields.d.ts.map +1 -1
  65. package/dist/src/graph/unset-relation-fields.js +3 -2
  66. package/dist/src/graph/unset-relation-fields.js.map +1 -1
  67. package/dist/src/graph/unset-relation-fields.test.js +3 -3
  68. package/dist/src/graph/unset-relation-fields.test.js.map +1 -1
  69. package/dist/src/graph/update-entity.d.ts.map +1 -1
  70. package/dist/src/graph/update-entity.js +17 -13
  71. package/dist/src/graph/update-entity.js.map +1 -1
  72. package/dist/src/graph/update-entity.test.js +13 -17
  73. package/dist/src/graph/update-entity.test.js.map +1 -1
  74. package/dist/src/graph/update-relation.d.ts.map +1 -1
  75. package/dist/src/graph/update-relation.js +15 -7
  76. package/dist/src/graph/update-relation.js.map +1 -1
  77. package/dist/src/ipfs.test.js +1 -3
  78. package/dist/src/ipfs.test.js.map +1 -1
  79. package/dist/src/proto/edit.d.ts.map +1 -1
  80. package/dist/src/proto/edit.js +100 -9
  81. package/dist/src/proto/edit.js.map +1 -1
  82. package/dist/src/proto/edit.test.js +14 -17
  83. package/dist/src/proto/edit.test.js.map +1 -1
  84. package/dist/src/types.d.ts +48 -47
  85. package/dist/src/types.d.ts.map +1 -1
  86. package/dist/src/types.js.map +1 -1
  87. package/package.json +1 -1
package/README.md CHANGED
@@ -84,28 +84,39 @@ const { id: restaurantId, ops: createRestaurantOps } = Graph.createEntity({
84
84
  cover: imageId,
85
85
  values: {
86
86
  // value property like text, number, url, time, point, checkbox
87
- [propertyId]: {
88
- type: 'TEXT', // TEXT | NUMBER | URL | TIME | POINT | CHECKBOX,
89
- value: 'value of the property',
90
- },
87
+ [propertyId]: 'value of the property',
91
88
  },
92
89
  relations: {
93
90
  // relation property
94
91
  [propertyId]: {
95
- to: 'id of the entity',
92
+ toEntity: 'id of the entity',
96
93
  id: 'id of the relation', // optional
97
94
  position: positionString, // optional
98
95
  values: {
99
- [propertyId]: {
100
- type: 'TEXT', // TEXT | NUMBER | URL | TIME | POINT | CHECKBOX,
101
- value: 'value of the property',
102
- },
96
+ [propertyId]: 'value of the property',
103
97
  },
104
98
  },
105
99
  },
106
100
  });
107
101
  ```
108
102
 
103
+ #### Serializing values
104
+
105
+ All values are serialized to a string. The SDK provides helper functions for serializing values to the correct format.
106
+
107
+ ```ts
108
+ import { Graph } from '@graphprotocol/grc-20';
109
+
110
+ const { id: personId, ops: createPersonOps } = Graph.createEntity({
111
+ values: {
112
+ [someNumberPropertyId]: Graph.serializeNumber(42),
113
+ [someCheckboxPropertyId]: Graph.serializeCheckbox(true),
114
+ [someDatePropertyId]: Graph.serializeDate(new Date()),
115
+ [somePointPropertyId]: Graph.serializePoint([1, 2]),
116
+ },
117
+ });
118
+ ```
119
+
109
120
  #### Example Flow
110
121
 
111
122
  ```ts
@@ -149,10 +160,7 @@ const { id: restaurantId, ops: createRestaurantOps } = Graph.createEntity({
149
160
  cover: restaurantCoverId,
150
161
  types: [restaurantTypeId],
151
162
  values: {
152
- [WEBSITE_PROPERTY]: {
153
- type: 'URL',
154
- value: 'https://example.com',
155
- },
163
+ [WEBSITE_PROPERTY]: 'https://example.com',
156
164
  },
157
165
  });
158
166
  ops.push(...createRestaurantOps);
@@ -169,13 +177,8 @@ const { id: personId, ops: createPersonOps } = Graph.createEntity({
169
177
  types: [personTypeId],
170
178
  cover: personCoverId,
171
179
  values: {
172
- [agePropertyId]: {
173
- type: 'NUMBER',
174
- value: 42,
175
- },
176
- [likesPropertyId]: {
177
- to: restaurantId,
178
- },
180
+ [agePropertyId]: serializeNumber(42),
181
+ [likesPropertyId]: restaurantId,
179
182
  },
180
183
  });
181
184
  ops.push(...createPersonOps);
@@ -31,8 +31,8 @@ export function make(address) {
31
31
  const { ops: entityOps } = createEntity({
32
32
  id: accountId,
33
33
  values: {
34
- [ADDRESS_PROPERTY]: { value: checkedAddress },
35
- [NAME_PROPERTY]: { value: checkedAddress },
34
+ [ADDRESS_PROPERTY]: checkedAddress,
35
+ [NAME_PROPERTY]: checkedAddress,
36
36
  },
37
37
  });
38
38
  ops.push(...entityOps);
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/core/account.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOlH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAW,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,GAAG,GAAS,EAAE,CAAC;IAErB,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;QACtC,EAAE,EAAE,SAAS;QACb,MAAM,EAAE;YACN,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;YAC7C,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;SAC3C;KACF,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAEvB,mBAAmB;IACnB,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;QACzC,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAExB,sBAAsB;IACtB,gEAAgE;IAChE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;QACzC,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAExB,OAAO;QACL,SAAS;QACT,GAAG;KACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/core/account.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOlH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAW,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,GAAG,GAAS,EAAE,CAAC;IAErB,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;QACtC,EAAE,EAAE,SAAS;QACb,MAAM,EAAE;YACN,CAAC,gBAAgB,CAAC,EAAE,cAAc;YAClC,CAAC,aAAa,CAAC,EAAE,cAAc;SAChC;KACF,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAEvB,mBAAmB;IACnB,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;QACzC,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAExB,sBAAsB;IACtB,gEAAgE;IAChE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;QACzC,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAExB,OAAO;QACL,SAAS;QACT,GAAG;KACJ,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { expect, it } from 'vitest';
2
- import { Id, toBase64 } from '../id.js';
2
+ import { Id } from '../id.js';
3
3
  import { NetworkIds, SystemIds } from '../system-ids.js';
4
4
  import { make } from './account.js';
5
5
  const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
@@ -8,26 +8,26 @@ it('should generate ops for an account entity', () => {
8
8
  const [entityOp, accountTypeOp, networkOp] = ops;
9
9
  expect(entityOp?.type).toBe('UPDATE_ENTITY');
10
10
  if (entityOp?.type === 'UPDATE_ENTITY' && entityOp?.entity.values?.[0]) {
11
- expect(entityOp.entity.values[0].propertyId).toBe(toBase64(SystemIds.ADDRESS_PROPERTY));
11
+ expect(entityOp.entity.values[0].propertyId).toBe(SystemIds.ADDRESS_PROPERTY);
12
12
  expect(entityOp.entity.values[0].value).toBe(ZERO_ADDRESS);
13
- expect(entityOp.entity.id).toBe(toBase64(Id(accountId)));
13
+ expect(entityOp.entity.id).toBe(Id(accountId));
14
14
  }
15
15
  if (entityOp?.type === 'UPDATE_ENTITY' && entityOp?.entity.values?.[1]) {
16
- expect(entityOp.entity.values[1].propertyId).toBe(toBase64(SystemIds.NAME_PROPERTY));
16
+ expect(entityOp.entity.values[1].propertyId).toBe(SystemIds.NAME_PROPERTY);
17
17
  expect(entityOp.entity.values[1].value).toBe(ZERO_ADDRESS);
18
- expect(entityOp.entity.id).toBe(toBase64(Id(accountId)));
18
+ expect(entityOp.entity.id).toBe(Id(accountId));
19
19
  }
20
20
  expect(accountTypeOp?.type).toBe('CREATE_RELATION');
21
21
  if (accountTypeOp?.type === 'CREATE_RELATION') {
22
- expect(accountTypeOp.relation.type).toBe(toBase64(SystemIds.TYPES_PROPERTY));
23
- expect(accountTypeOp.relation.toEntity).toBe(toBase64(SystemIds.ACCOUNT_TYPE));
24
- expect(accountTypeOp.relation.fromEntity).toBe(toBase64(Id(accountId)));
22
+ expect(accountTypeOp.relation.type).toBe(SystemIds.TYPES_PROPERTY);
23
+ expect(accountTypeOp.relation.toEntity).toBe(SystemIds.ACCOUNT_TYPE);
24
+ expect(accountTypeOp.relation.fromEntity).toBe(Id(accountId));
25
25
  }
26
26
  expect(networkOp?.type).toBe('CREATE_RELATION');
27
27
  if (networkOp?.type === 'CREATE_RELATION') {
28
- expect(networkOp.relation.type).toBe(toBase64(SystemIds.NETWORK_PROPERTY));
29
- expect(networkOp.relation.toEntity).toBe(toBase64(NetworkIds.ETHEREUM));
30
- expect(networkOp.relation.fromEntity).toBe(toBase64(Id(accountId)));
28
+ expect(networkOp.relation.type).toBe(SystemIds.NETWORK_PROPERTY);
29
+ expect(networkOp.relation.toEntity).toBe(NetworkIds.ETHEREUM);
30
+ expect(networkOp.relation.fromEntity).toBe(Id(accountId));
31
31
  }
32
32
  });
33
33
  //# sourceMappingURL=account.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.test.js","sourceRoot":"","sources":["../../../src/core/account.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account.test.js","sourceRoot":"","sources":["../../../src/core/account.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,YAAY,GAAG,4CAA4C,CAAC;AAElE,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACnD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC;IAEjD,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAI,QAAQ,EAAE,IAAI,KAAK,eAAe,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9E,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,QAAQ,EAAE,IAAI,KAAK,eAAe,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC3E,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpD,IAAI,aAAa,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC9C,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACnE,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACrE,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,IAAI,SAAS,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC1C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -62,7 +62,7 @@ export function make({ fromId, sourceType, position, name }) {
62
62
  const { ops: nameOps } = updateEntity({
63
63
  id: newBlockId,
64
64
  values: {
65
- [NAME_PROPERTY]: { value: name },
65
+ [NAME_PROPERTY]: name,
66
66
  },
67
67
  });
68
68
  ops.push(...nameOps);
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../src/core/blocks/data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIrH,SAAS,eAAe,CAAC,UAA+B;IACtD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,YAAY;YACf,OAAO,SAAS,CAAC,sBAAsB,CAAC;QAC1C,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,sBAAsB,CAAC;QAC1C,KAAK,OAAO;YACV,OAAO,SAAS,CAAC,iBAAiB,CAAC;IACvC,CAAC;AACH,CAAC;AASD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAmB;IAC1E,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;IAE9B,MAAM,GAAG,GAAS,EAAE,CAAC;IACrB,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC;QAC/C,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAE9B,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG,cAAc,CAAC;QACrD,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC;KACtC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAEpC,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAC;QACnD,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC;QACxB,QAAQ;KACT,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAElC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;YACpC,EAAE,EAAE,UAAU;YACd,MAAM,EAAE;gBACN,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;aACjC;SACF,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../src/core/blocks/data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIrH,SAAS,eAAe,CAAC,UAA+B;IACtD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,YAAY;YACf,OAAO,SAAS,CAAC,sBAAsB,CAAC;QAC1C,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,sBAAsB,CAAC;QAC1C,KAAK,OAAO;YACV,OAAO,SAAS,CAAC,iBAAiB,CAAC;IACvC,CAAC;AACH,CAAC;AASD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAmB;IAC1E,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;IAE9B,MAAM,GAAG,GAAS,EAAE,CAAC;IACrB,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC;QAC/C,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAE9B,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG,cAAc,CAAC;QACrD,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC;KACtC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAEpC,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAC;QACnD,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC;QACxB,QAAQ;KACT,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAElC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;YACpC,EAAE,EAAE,UAAU;YACd,MAAM,EAAE;gBACN,CAAC,aAAa,CAAC,EAAE,IAAI;aACtB;SACF,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { expect, it } from 'vitest';
2
- import { Id, toBase64 } from '../../id.js';
2
+ import { Id } from '../../id.js';
3
3
  import { SystemIds } from '../../system-ids.js';
4
4
  import { make } from './data.js';
5
5
  it('should generate ops for a data block entity', () => {
@@ -11,18 +11,18 @@ it('should generate ops for a data block entity', () => {
11
11
  const [blockTypeOp, blockSourceTypeOp, blockRelationOp] = ops;
12
12
  expect(blockTypeOp?.type).toBe('CREATE_RELATION');
13
13
  if (blockTypeOp?.type === 'CREATE_RELATION') {
14
- expect(blockTypeOp?.relation.type).toBe(toBase64(SystemIds.TYPES_PROPERTY));
15
- expect(blockTypeOp?.relation.toEntity).toBe(toBase64(SystemIds.DATA_BLOCK));
14
+ expect(blockTypeOp?.relation.type).toBe(SystemIds.TYPES_PROPERTY);
15
+ expect(blockTypeOp?.relation.toEntity).toBe(SystemIds.DATA_BLOCK);
16
16
  }
17
17
  expect(blockSourceTypeOp?.type).toBe('CREATE_RELATION');
18
18
  if (blockSourceTypeOp?.type === 'CREATE_RELATION') {
19
- expect(blockSourceTypeOp?.relation.type).toBe(toBase64(SystemIds.DATA_SOURCE_TYPE_RELATION_TYPE));
20
- expect(blockSourceTypeOp?.relation.toEntity).toBe(toBase64(SystemIds.QUERY_DATA_SOURCE));
19
+ expect(blockSourceTypeOp?.relation.type).toBe(SystemIds.DATA_SOURCE_TYPE_RELATION_TYPE);
20
+ expect(blockSourceTypeOp?.relation.toEntity).toBe(SystemIds.QUERY_DATA_SOURCE);
21
21
  }
22
22
  expect(blockRelationOp?.type).toBe('CREATE_RELATION');
23
23
  if (blockRelationOp?.type === 'CREATE_RELATION') {
24
- expect(blockRelationOp?.relation.type).toBe(toBase64(SystemIds.BLOCKS));
25
- expect(blockRelationOp?.relation.fromEntity).toBe(toBase64(Id('5871e8f7-b719-4897-9c4d-cf7c518d32ef')));
24
+ expect(blockRelationOp?.relation.type).toBe(SystemIds.BLOCKS);
25
+ expect(blockRelationOp?.relation.fromEntity).toBe(Id('5871e8f7-b719-4897-9c4d-cf7c518d32ef'));
26
26
  }
27
27
  expect(ops.length).toBe(3);
28
28
  });
@@ -36,22 +36,22 @@ it('should generate ops for a data block entity with a name', () => {
36
36
  const [blockTypeOp, blockSourceTypeOp, blockRelationOp, blockNameOp] = ops;
37
37
  expect(blockTypeOp?.type).toBe('CREATE_RELATION');
38
38
  if (blockTypeOp?.type === 'CREATE_RELATION') {
39
- expect(blockTypeOp?.relation.type).toBe(toBase64(SystemIds.TYPES_PROPERTY));
40
- expect(blockTypeOp?.relation.toEntity).toBe(toBase64(SystemIds.DATA_BLOCK));
39
+ expect(blockTypeOp?.relation.type).toBe(SystemIds.TYPES_PROPERTY);
40
+ expect(blockTypeOp?.relation.toEntity).toBe(SystemIds.DATA_BLOCK);
41
41
  }
42
42
  expect(blockSourceTypeOp?.type).toBe('CREATE_RELATION');
43
43
  if (blockSourceTypeOp?.type === 'CREATE_RELATION') {
44
- expect(blockSourceTypeOp?.relation.type).toBe(toBase64(SystemIds.DATA_SOURCE_TYPE_RELATION_TYPE));
45
- expect(blockSourceTypeOp?.relation.toEntity).toBe(toBase64(SystemIds.QUERY_DATA_SOURCE));
44
+ expect(blockSourceTypeOp?.relation.type).toBe(SystemIds.DATA_SOURCE_TYPE_RELATION_TYPE);
45
+ expect(blockSourceTypeOp?.relation.toEntity).toBe(SystemIds.QUERY_DATA_SOURCE);
46
46
  }
47
47
  expect(blockRelationOp?.type).toBe('CREATE_RELATION');
48
48
  if (blockRelationOp?.type === 'CREATE_RELATION') {
49
- expect(blockRelationOp?.relation.type).toBe(toBase64(SystemIds.BLOCKS));
50
- expect(blockRelationOp?.relation.fromEntity).toBe(toBase64(Id('5871e8f7-b719-4897-9c4d-cf7c518d32ef')));
49
+ expect(blockRelationOp?.relation.type).toBe(SystemIds.BLOCKS);
50
+ expect(blockRelationOp?.relation.fromEntity).toBe(Id('5871e8f7-b719-4897-9c4d-cf7c518d32ef'));
51
51
  }
52
52
  expect(blockNameOp?.type).toBe('UPDATE_ENTITY');
53
53
  if (blockNameOp?.type === 'UPDATE_ENTITY' && blockNameOp?.entity.values?.[0]) {
54
- expect(blockNameOp.entity.values[0].propertyId).toBe(toBase64(SystemIds.NAME_PROPERTY));
54
+ expect(blockNameOp.entity.values[0].propertyId).toBe(SystemIds.NAME_PROPERTY);
55
55
  expect(blockNameOp.entity.values[0].value).toBe('test-name');
56
56
  }
57
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"data.test.js","sourceRoot":"","sources":["../../../../src/core/blocks/data.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.test.js","sourceRoot":"","sources":["../../../../src/core/blocks/data.test.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ export function make({ fromId, text, position }) {
36
36
  const { ops: textBlockMarkdownTextOps } = updateEntity({
37
37
  id: newBlockId,
38
38
  values: {
39
- [MARKDOWN_CONTENT]: { value: text },
39
+ [MARKDOWN_CONTENT]: text,
40
40
  },
41
41
  });
42
42
  ops.push(...textBlockMarkdownTextOps);
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/core/blocks/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIxF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAmB;IAC9D,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;IAE9B,MAAM,GAAG,GAAS,EAAE,CAAC;IAErB,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC;QAC/C,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAE9B,MAAM,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,YAAY,CAAC;QACrD,EAAE,EAAE,UAAU;QACd,MAAM,EAAE;YACN,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;SACpC;KACF,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,CAAC;IAEtC,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAC;QACnD,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,UAAU;QACpB,QAAQ;KACT,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAElC,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/core/blocks/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIxF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAmB;IAC9D,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;IAE9B,MAAM,GAAG,GAAS,EAAE,CAAC;IAErB,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC;QAC/C,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAE9B,MAAM,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,YAAY,CAAC;QACrD,EAAE,EAAE,UAAU;QACd,MAAM,EAAE;YACN,CAAC,gBAAgB,CAAC,EAAE,IAAI;SACzB;KACF,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,CAAC;IAEtC,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAC;QACnD,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,UAAU;QACpB,QAAQ;KACT,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAElC,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { expect, it } from 'vitest';
2
- import { Id, toBase64 } from '../../id.js';
2
+ import { Id } from '../../id.js';
3
3
  import { SystemIds } from '../../system-ids.js';
4
4
  import { make } from './text.js';
5
5
  it('should generate ops for a text block entity', () => {
@@ -11,18 +11,18 @@ it('should generate ops for a text block entity', () => {
11
11
  const [blockTypeOp, blockMarkdownTextOp, blockRelationOp] = ops;
12
12
  expect(blockTypeOp?.type).toBe('CREATE_RELATION');
13
13
  if (blockTypeOp?.type === 'CREATE_RELATION') {
14
- expect(blockTypeOp?.relation.type).toBe(toBase64(SystemIds.TYPES_PROPERTY));
15
- expect(blockTypeOp?.relation.toEntity).toBe(toBase64(SystemIds.TEXT_BLOCK));
14
+ expect(blockTypeOp?.relation.type).toBe(SystemIds.TYPES_PROPERTY);
15
+ expect(blockTypeOp?.relation.toEntity).toBe(SystemIds.TEXT_BLOCK);
16
16
  }
17
17
  expect(blockMarkdownTextOp?.type).toBe('UPDATE_ENTITY');
18
18
  if (blockMarkdownTextOp?.type === 'UPDATE_ENTITY' && blockMarkdownTextOp?.entity.values?.[0]) {
19
- expect(blockMarkdownTextOp.entity.values[0].propertyId).toBe(toBase64(SystemIds.MARKDOWN_CONTENT));
19
+ expect(blockMarkdownTextOp.entity.values[0].propertyId).toBe(SystemIds.MARKDOWN_CONTENT);
20
20
  expect(blockMarkdownTextOp.entity.values[0].value).toBe('test-text');
21
21
  }
22
22
  expect(blockRelationOp?.type).toBe('CREATE_RELATION');
23
23
  if (blockRelationOp?.type === 'CREATE_RELATION') {
24
- expect(blockRelationOp?.relation.type).toBe(toBase64(SystemIds.BLOCKS));
25
- expect(blockRelationOp?.relation.fromEntity).toBe(toBase64(Id('5871e8f7-b719-4897-9c4d-cf7c518d32ef')));
24
+ expect(blockRelationOp?.relation.type).toBe(SystemIds.BLOCKS);
25
+ expect(blockRelationOp?.relation.fromEntity).toBe(Id('5871e8f7-b719-4897-9c4d-cf7c518d32ef'));
26
26
  }
27
27
  expect(ops.length).toBe(3);
28
28
  });
@@ -1 +1 @@
1
- {"version":3,"file":"text.test.js","sourceRoot":"","sources":["../../../../src/core/blocks/text.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC;QACf,MAAM,EAAE,sCAAsC;QAC9C,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IAEH,MAAM,CAAC,WAAW,EAAE,mBAAmB,EAAE,eAAe,CAAC,GAAG,GAAG,CAAC;IAEhE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,WAAW,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC5C,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,mBAAmB,EAAE,IAAI,KAAK,eAAe,IAAI,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACnG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,eAAe,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAChD,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"text.test.js","sourceRoot":"","sources":["../../../../src/core/blocks/text.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC;QACf,MAAM,EAAE,sCAAsC;QAC9C,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IAEH,MAAM,CAAC,WAAW,EAAE,mBAAmB,EAAE,eAAe,CAAC,GAAG,GAAG,CAAC;IAEhE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,WAAW,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC5C,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,mBAAmB,EAAE,IAAI,KAAK,eAAe,IAAI,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACzF,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,eAAe,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAChD,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC"}
@@ -14,27 +14,27 @@ import type { CreateResult, EntityParams } from '../types.js';
14
14
  * types: [typeEntityId1, typeEntityId2],
15
15
  * values: {
16
16
  * // value property like text, number, url, time, point, checkbox
17
- * [propertyId]: {
18
- * value: 'value of the property',
19
- * }
17
+ * [propertyId]: 'value of the property'
20
18
  * },
21
19
  * relations: {
22
- * [relationId]: {
20
+ * [relationPropertyId]: {
23
21
  * to: 'id of the entity',
24
22
  * id: 'id of the relation', // optional
25
23
  * toSpace: 'id of the to space', // optional
24
+ * fromSpace: 'id of the from space', // optional
25
+ * fromVersion: 'id of the from version', // optional
26
+ * toVersion: 'id of the to version', // optional
27
+ * verified: true, // optional
26
28
  * position: positionString, // optional
27
29
  * entityId: 'id of the relation entity', // optional and will be generated if not provided
28
30
  * entityName: 'name of the relation entity', // optional
29
31
  * entityDescription: 'description of the relation entity', // optional
30
32
  * entityCover: 'id of the cover', // optional
31
33
  * entityValues: { // optional values for the relation entity
32
- * [propertyId]: {
33
- * value: 'value of the property',
34
- * },
34
+ * [propertyId]: 'value of the property',
35
35
  * },
36
36
  * entityRelations: {
37
- * [relationId]: {
37
+ * [relationPropertyId]: {
38
38
  * to: 'id of the entity',
39
39
  * id: 'id of the relation', // optional
40
40
  * position: positionString, // optional
@@ -1 +1 @@
1
- {"version":3,"file":"create-entity.d.ts","sourceRoot":"","sources":["../../../src/graph/create-entity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAA6B,MAAM,aAAa,CAAC;AAGzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,YAAY,GAAI,yEAQ1B,YAAY,KAAG,YA4FjB,CAAC"}
1
+ {"version":3,"file":"create-entity.d.ts","sourceRoot":"","sources":["../../../src/graph/create-entity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAA6B,MAAM,aAAa,CAAC;AAGzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,YAAY,GAAI,yEAQ1B,YAAY,KAAG,YAuHjB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { COVER_PROPERTY, DESCRIPTION_PROPERTY, NAME_PROPERTY, TYPES_PROPERTY } from '../core/ids/system.js';
2
- import { Id, assertValid, generate, toBase64 } from '../id.js';
2
+ import { Id, assertValid, generate } from '../id.js';
3
3
  import { createRelation } from './create-relation.js';
4
4
  /**
5
5
  * Creates an entity with the given name, description, cover, properties, and types.
@@ -16,27 +16,27 @@ import { createRelation } from './create-relation.js';
16
16
  * types: [typeEntityId1, typeEntityId2],
17
17
  * values: {
18
18
  * // value property like text, number, url, time, point, checkbox
19
- * [propertyId]: {
20
- * value: 'value of the property',
21
- * }
19
+ * [propertyId]: 'value of the property'
22
20
  * },
23
21
  * relations: {
24
- * [relationId]: {
22
+ * [relationPropertyId]: {
25
23
  * to: 'id of the entity',
26
24
  * id: 'id of the relation', // optional
27
25
  * toSpace: 'id of the to space', // optional
26
+ * fromSpace: 'id of the from space', // optional
27
+ * fromVersion: 'id of the from version', // optional
28
+ * toVersion: 'id of the to version', // optional
29
+ * verified: true, // optional
28
30
  * position: positionString, // optional
29
31
  * entityId: 'id of the relation entity', // optional and will be generated if not provided
30
32
  * entityName: 'name of the relation entity', // optional
31
33
  * entityDescription: 'description of the relation entity', // optional
32
34
  * entityCover: 'id of the cover', // optional
33
35
  * entityValues: { // optional values for the relation entity
34
- * [propertyId]: {
35
- * value: 'value of the property',
36
- * },
36
+ * [propertyId]: 'value of the property',
37
37
  * },
38
38
  * entityRelations: {
39
- * [relationId]: {
39
+ * [relationPropertyId]: {
40
40
  * to: 'id of the entity',
41
41
  * id: 'id of the relation', // optional
42
42
  * position: positionString, // optional
@@ -51,62 +51,104 @@ import { createRelation } from './create-relation.js';
51
51
  * @throws Will throw an error if any provided ID is invalid
52
52
  */
53
53
  export const createEntity = ({ id: providedId, name, description, cover, values, relations, types, }) => {
54
- if (providedId) {
54
+ if (providedId)
55
55
  assertValid(providedId, '`id` in `createEntity`');
56
+ if (cover)
57
+ assertValid(cover, '`cover` in `createEntity`');
58
+ for (const [key] of Object.entries(values ?? {})) {
59
+ assertValid(key, '`values` in `createEntity`');
60
+ }
61
+ // we only assert Ids one level deep for a better experience here, but multiple levels deep are
62
+ // asserted since we use createRelation and createEntity internally
63
+ for (const [key, relationEntry] of Object.entries(relations ?? {})) {
64
+ assertValid(key, '`relations` in `createEntity`');
65
+ if (Array.isArray(relationEntry)) {
66
+ for (const relation of relationEntry) {
67
+ assertValid(relation.toEntity, '`toEntity` in `relations` in `createEntity`');
68
+ if (relation.toSpace)
69
+ assertValid(relation.toSpace, '`toSpace` in `relations` in `createEntity`');
70
+ if (relation.fromSpace)
71
+ assertValid(relation.fromSpace, '`fromSpace` in `relations` in `createEntity`');
72
+ if (relation.fromVersion)
73
+ assertValid(relation.fromVersion, '`fromVersion` in `relations` in `createEntity`');
74
+ if (relation.toVersion)
75
+ assertValid(relation.toVersion, '`toVersion` in `relations` in `createEntity`');
76
+ if (relation.entityId)
77
+ assertValid(relation.entityId, '`entityId` in `relations` in `createEntity`');
78
+ if (relation.entityCover)
79
+ assertValid(relation.entityCover, '`entityCover` in `relations` in `createEntity`');
80
+ }
81
+ }
82
+ else {
83
+ assertValid(relationEntry.toEntity, '`toEntity` in `relations` in `createEntity`');
84
+ if (relationEntry.toSpace)
85
+ assertValid(relationEntry.toSpace, '`toSpace` in `relations` in `createEntity`');
86
+ if (relationEntry.fromSpace)
87
+ assertValid(relationEntry.fromSpace, '`fromSpace` in `relations` in `createEntity`');
88
+ if (relationEntry.fromVersion)
89
+ assertValid(relationEntry.fromVersion, '`fromVersion` in `relations` in `createEntity`');
90
+ if (relationEntry.toVersion)
91
+ assertValid(relationEntry.toVersion, '`toVersion` in `relations` in `createEntity`');
92
+ if (relationEntry.entityId)
93
+ assertValid(relationEntry.entityId, '`entityId` in `relations` in `createEntity`');
94
+ if (relationEntry.entityCover)
95
+ assertValid(relationEntry.entityCover, '`entityCover` in `relations` in `createEntity`');
96
+ }
97
+ }
98
+ for (const typeId of types ?? []) {
99
+ assertValid(typeId, '`types` in `createEntity`');
56
100
  }
57
101
  const id = providedId ?? generate();
58
102
  let ops = [];
59
103
  const newValues = [];
60
104
  if (name) {
61
105
  newValues.push({
62
- propertyId: toBase64(NAME_PROPERTY),
106
+ propertyId: NAME_PROPERTY,
63
107
  value: name,
64
108
  });
65
109
  }
66
110
  if (description) {
67
111
  newValues.push({
68
- propertyId: toBase64(DESCRIPTION_PROPERTY),
112
+ propertyId: DESCRIPTION_PROPERTY,
69
113
  value: description,
70
114
  });
71
115
  }
72
116
  for (const [key, value] of Object.entries(values ?? {})) {
73
117
  newValues.push({
74
- propertyId: toBase64(Id(key)),
75
- value: value.value,
118
+ propertyId: Id(key),
119
+ value,
76
120
  });
77
121
  }
78
122
  const op = {
79
123
  type: 'UPDATE_ENTITY',
80
124
  entity: {
81
- id: toBase64(id),
125
+ id: Id(id),
82
126
  values: newValues,
83
127
  },
84
128
  };
85
129
  ops.push(op);
86
130
  if (cover) {
87
- assertValid(cover);
88
131
  ops.push({
89
132
  type: 'CREATE_RELATION',
90
133
  relation: {
91
- id: toBase64(generate()),
92
- entity: toBase64(generate()),
93
- fromEntity: toBase64(id),
94
- toEntity: toBase64(cover),
95
- type: toBase64(COVER_PROPERTY),
134
+ id: generate(),
135
+ entity: generate(),
136
+ fromEntity: Id(id),
137
+ toEntity: Id(cover),
138
+ type: COVER_PROPERTY,
96
139
  },
97
140
  });
98
141
  }
99
142
  if (types) {
100
143
  for (const typeId of types) {
101
- assertValid(typeId);
102
144
  ops.push({
103
145
  type: 'CREATE_RELATION',
104
146
  relation: {
105
- id: toBase64(generate()),
106
- entity: toBase64(generate()),
107
- fromEntity: toBase64(id),
108
- toEntity: toBase64(typeId),
109
- type: toBase64(TYPES_PROPERTY),
147
+ id: generate(),
148
+ entity: generate(),
149
+ fromEntity: Id(id),
150
+ toEntity: Id(typeId),
151
+ type: TYPES_PROPERTY,
110
152
  },
111
153
  });
112
154
  }
@@ -114,10 +156,7 @@ export const createEntity = ({ id: providedId, name, description, cover, values,
114
156
  for (const [typeId, value] of Object.entries(relations ?? {})) {
115
157
  const relationsEntries = Array.isArray(value) ? value : [value];
116
158
  for (const relation of relationsEntries) {
117
- const relationId = relation.relationId ?? generate();
118
- assertValid(relationId);
119
159
  const relationEntityId = relation.id ?? generate();
120
- assertValid(relationEntityId);
121
160
  const { ops: relationOps } = createRelation({
122
161
  fromEntity: id,
123
162
  toEntity: relation.toEntity,
@@ -135,6 +174,6 @@ export const createEntity = ({ id: providedId, name, description, cover, values,
135
174
  ops = ops.concat(relationOps);
136
175
  }
137
176
  }
138
- return { id, ops };
177
+ return { id: Id(id), ops };
139
178
  };
140
179
  //# sourceMappingURL=create-entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-entity.js","sourceRoot":"","sources":["../../../src/graph/create-entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-entity.js","sourceRoot":"","sources":["../../../src/graph/create-entity.ts"],"names":[],"mappings":"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"}