@dxos/echo 0.8.4-main.937b3ca → 0.8.4-main.9735255

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 (225) hide show
  1. package/dist/lib/{browser → neutral}/Annotation.mjs +4 -5
  2. package/dist/lib/neutral/Database.mjs +17 -0
  3. package/dist/lib/{browser → neutral}/Entity.mjs +8 -9
  4. package/dist/lib/{browser → neutral}/Err.mjs +2 -3
  5. package/dist/lib/{browser → neutral}/Filter.mjs +9 -10
  6. package/dist/lib/{browser → neutral}/Format.mjs +4 -5
  7. package/dist/lib/neutral/JsonSchema.mjs +19 -0
  8. package/dist/lib/{browser → neutral}/Key.mjs +2 -3
  9. package/dist/lib/{browser → neutral}/Obj.mjs +9 -10
  10. package/dist/lib/{browser → neutral}/Order.mjs +2 -3
  11. package/dist/lib/neutral/Query.mjs +26 -0
  12. package/dist/lib/neutral/QueryResult.mjs +2 -0
  13. package/dist/lib/neutral/Ref.mjs +22 -0
  14. package/dist/lib/{browser → neutral}/Relation.mjs +9 -10
  15. package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
  16. package/dist/lib/neutral/Tag.mjs +25 -0
  17. package/dist/lib/{browser → neutral}/Type.mjs +8 -9
  18. package/dist/lib/{browser/chunk-NOPVNWPT.mjs → neutral/chunk-2MTHJ5UW.mjs} +6 -7
  19. package/dist/lib/{node-esm/chunk-ILMLLM4R.mjs.map → neutral/chunk-2MTHJ5UW.mjs.map} +2 -2
  20. package/dist/lib/{browser/chunk-22JMFST2.mjs → neutral/chunk-3ZEAZF7T.mjs} +3 -4
  21. package/dist/lib/{browser/chunk-22JMFST2.mjs.map → neutral/chunk-3ZEAZF7T.mjs.map} +1 -1
  22. package/dist/lib/{browser/chunk-ZHXZGIXD.mjs → neutral/chunk-4L6DOFXP.mjs} +1 -3
  23. package/dist/lib/{browser/chunk-ZHXZGIXD.mjs.map → neutral/chunk-4L6DOFXP.mjs.map} +1 -1
  24. package/dist/lib/{browser/chunk-PQZW3S6L.mjs → neutral/chunk-4TT624YA.mjs} +3 -4
  25. package/dist/lib/{node-esm/chunk-Y75VU7LB.mjs.map → neutral/chunk-4TT624YA.mjs.map} +1 -1
  26. package/dist/lib/{browser/chunk-FRDT7RA4.mjs → neutral/chunk-62DWJ6CE.mjs} +3 -4
  27. package/dist/lib/{node-esm/chunk-W6QIEBTQ.mjs.map → neutral/chunk-62DWJ6CE.mjs.map} +3 -3
  28. package/dist/lib/{browser/chunk-W5D2GWAW.mjs → neutral/chunk-6QPSGMEF.mjs} +5 -6
  29. package/dist/lib/{browser/chunk-W5D2GWAW.mjs.map → neutral/chunk-6QPSGMEF.mjs.map} +1 -1
  30. package/dist/lib/{browser/chunk-INHXFXY5.mjs → neutral/chunk-ANHVGJI4.mjs} +2 -3
  31. package/dist/lib/{node-esm/chunk-AJEMYSIR.mjs.map → neutral/chunk-ANHVGJI4.mjs.map} +1 -1
  32. package/dist/lib/{browser/chunk-RK4Z4JUZ.mjs → neutral/chunk-CUDIBUM4.mjs} +2 -3
  33. package/dist/lib/{node-esm/chunk-YOLH5KS4.mjs.map → neutral/chunk-CUDIBUM4.mjs.map} +1 -1
  34. package/dist/lib/{browser/chunk-XDIUHAAX.mjs → neutral/chunk-HMOXCO27.mjs} +3 -4
  35. package/dist/lib/{node-esm/chunk-QLI2EIJ2.mjs.map → neutral/chunk-HMOXCO27.mjs.map} +1 -1
  36. package/dist/lib/{browser/chunk-U2J7TA7K.mjs → neutral/chunk-IP2GHXWA.mjs} +5 -6
  37. package/dist/lib/{node-esm/chunk-DMR7OAFK.mjs.map → neutral/chunk-IP2GHXWA.mjs.map} +1 -1
  38. package/dist/lib/{browser/chunk-CGS2ULMK.mjs → neutral/chunk-J5LGTIGS.mjs} +1 -2
  39. package/dist/lib/{browser/chunk-7STIBCP7.mjs → neutral/chunk-KRHDMXSU.mjs} +4 -5
  40. package/dist/lib/{browser/chunk-7STIBCP7.mjs.map → neutral/chunk-KRHDMXSU.mjs.map} +1 -1
  41. package/dist/lib/{browser/chunk-FPOISFQK.mjs → neutral/chunk-NWUO5FKZ.mjs} +3 -4
  42. package/dist/lib/{node-esm/chunk-NBWL7UCZ.mjs.map → neutral/chunk-NWUO5FKZ.mjs.map} +1 -1
  43. package/dist/lib/{browser/chunk-IXVWLTG7.mjs → neutral/chunk-OMUPQMLR.mjs} +1 -3
  44. package/dist/lib/{browser/chunk-IXVWLTG7.mjs.map → neutral/chunk-OMUPQMLR.mjs.map} +1 -1
  45. package/dist/lib/{browser/chunk-JMKVF2YQ.mjs → neutral/chunk-ROKO4RKJ.mjs} +2 -3
  46. package/dist/lib/{node-esm/chunk-K37NA7PO.mjs.map → neutral/chunk-ROKO4RKJ.mjs.map} +1 -1
  47. package/dist/lib/{browser/chunk-CJ5YELTO.mjs → neutral/chunk-RPB6V4BE.mjs} +2 -3
  48. package/dist/lib/{browser/chunk-CJ5YELTO.mjs.map → neutral/chunk-RPB6V4BE.mjs.map} +1 -1
  49. package/dist/lib/{browser/chunk-BJPE6CIC.mjs → neutral/chunk-SU2LVM7J.mjs} +47 -48
  50. package/dist/lib/neutral/chunk-SU2LVM7J.mjs.map +7 -0
  51. package/dist/lib/{browser/chunk-ZAGAOZVY.mjs → neutral/chunk-VB5HVDCA.mjs} +4 -5
  52. package/dist/lib/{node-esm/chunk-QYR67VBV.mjs.map → neutral/chunk-VB5HVDCA.mjs.map} +1 -1
  53. package/dist/lib/{browser/chunk-2SBB7OWV.mjs → neutral/chunk-VR4A4WGG.mjs} +5 -6
  54. package/dist/lib/{browser/chunk-2SBB7OWV.mjs.map → neutral/chunk-VR4A4WGG.mjs.map} +2 -2
  55. package/dist/lib/{browser/chunk-MYCCGG2T.mjs → neutral/chunk-X2MPMYYN.mjs} +1 -3
  56. package/dist/lib/{node-esm/chunk-MOWUEW5P.mjs.map → neutral/chunk-X2MPMYYN.mjs.map} +1 -1
  57. package/dist/lib/{browser/chunk-6L5HHUVU.mjs → neutral/chunk-XK5OUUBY.mjs} +4 -5
  58. package/dist/lib/{node-esm/chunk-5OBN7GZW.mjs.map → neutral/chunk-XK5OUUBY.mjs.map} +1 -1
  59. package/dist/lib/{browser/chunk-KQQGVHFN.mjs → neutral/chunk-XMIDBDE6.mjs} +5 -6
  60. package/dist/lib/{node-esm/chunk-NRN3ZW2T.mjs.map → neutral/chunk-XMIDBDE6.mjs.map} +1 -1
  61. package/dist/lib/{browser/chunk-YKTSSMDS.mjs → neutral/chunk-YQYMWZAD.mjs} +1 -3
  62. package/dist/lib/{node-esm/chunk-XHJRMQZD.mjs.map → neutral/chunk-YQYMWZAD.mjs.map} +1 -1
  63. package/dist/lib/{browser → neutral}/index.mjs +23 -24
  64. package/dist/lib/{browser → neutral}/internal/index.mjs +7 -8
  65. package/dist/lib/neutral/meta.json +1 -0
  66. package/dist/lib/{browser → neutral}/testing/index.mjs +23 -24
  67. package/dist/lib/{node-esm → neutral}/testing/index.mjs.map +1 -1
  68. package/dist/types/src/Obj.d.ts +2 -2
  69. package/dist/types/src/Obj.d.ts.map +1 -1
  70. package/dist/types/src/Relation.d.ts +1 -1
  71. package/dist/types/src/Relation.d.ts.map +1 -1
  72. package/dist/types/src/internal/api/meta.d.ts +2 -2
  73. package/dist/types/src/internal/api/meta.d.ts.map +1 -1
  74. package/dist/types/src/internal/entities/object.d.ts.map +1 -1
  75. package/dist/types/src/internal/entities/relation.d.ts.map +1 -1
  76. package/dist/types/src/internal/formats/select.d.ts +2 -2
  77. package/dist/types/src/internal/formats/select.d.ts.map +1 -1
  78. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -1
  79. package/dist/types/src/internal/json-schema/json-schema-type.d.ts +130 -29
  80. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -1
  81. package/dist/types/src/internal/json-schema/json-schema.d.ts +2 -1
  82. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -1
  83. package/dist/types/src/internal/ref/ref.d.ts +2 -1
  84. package/dist/types/src/internal/ref/ref.d.ts.map +1 -1
  85. package/dist/types/src/internal/schema/compose.d.ts +2 -1
  86. package/dist/types/src/internal/schema/compose.d.ts.map +1 -1
  87. package/dist/types/src/internal/types/meta.d.ts +5 -5
  88. package/dist/types/src/internal/types/meta.d.ts.map +1 -1
  89. package/dist/types/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +33 -112
  91. package/src/Obj.ts +3 -3
  92. package/src/Relation.ts +2 -2
  93. package/src/internal/api/meta.ts +3 -3
  94. package/src/internal/entities/object.ts +1 -3
  95. package/src/internal/entities/relation.ts +1 -3
  96. package/src/internal/formats/format.test.ts +1 -1
  97. package/src/internal/formats/select.ts +1 -1
  98. package/src/internal/json-schema/json-schema-normalize.ts +4 -2
  99. package/src/internal/json-schema/json-schema-type.ts +30 -31
  100. package/src/internal/json-schema/json-schema.ts +10 -6
  101. package/src/internal/object/json-serializer.test.ts +3 -2
  102. package/src/internal/object/schema-validator.test.ts +3 -7
  103. package/src/internal/object/set-value.test.ts +9 -9
  104. package/src/internal/proxy/typed-handler.test.ts +8 -12
  105. package/src/internal/proxy/typed-object.test.ts +11 -11
  106. package/src/internal/ref/ref.test.ts +1 -1
  107. package/src/internal/ref/ref.ts +2 -1
  108. package/src/internal/schema/compose.ts +13 -8
  109. package/src/internal/types/meta.ts +12 -13
  110. package/dist/lib/browser/Database.mjs +0 -18
  111. package/dist/lib/browser/JsonSchema.mjs +0 -20
  112. package/dist/lib/browser/Query.mjs +0 -27
  113. package/dist/lib/browser/QueryResult.mjs +0 -3
  114. package/dist/lib/browser/Ref.mjs +0 -23
  115. package/dist/lib/browser/SchemaRegistry.mjs +0 -3
  116. package/dist/lib/browser/Tag.mjs +0 -26
  117. package/dist/lib/browser/chunk-6L5HHUVU.mjs.map +0 -7
  118. package/dist/lib/browser/chunk-BJPE6CIC.mjs.map +0 -7
  119. package/dist/lib/browser/chunk-FPOISFQK.mjs.map +0 -7
  120. package/dist/lib/browser/chunk-FRDT7RA4.mjs.map +0 -7
  121. package/dist/lib/browser/chunk-INHXFXY5.mjs.map +0 -7
  122. package/dist/lib/browser/chunk-JMKVF2YQ.mjs.map +0 -7
  123. package/dist/lib/browser/chunk-KQQGVHFN.mjs.map +0 -7
  124. package/dist/lib/browser/chunk-MYCCGG2T.mjs.map +0 -7
  125. package/dist/lib/browser/chunk-NOPVNWPT.mjs.map +0 -7
  126. package/dist/lib/browser/chunk-PQZW3S6L.mjs.map +0 -7
  127. package/dist/lib/browser/chunk-RK4Z4JUZ.mjs.map +0 -7
  128. package/dist/lib/browser/chunk-U2J7TA7K.mjs.map +0 -7
  129. package/dist/lib/browser/chunk-XDIUHAAX.mjs.map +0 -7
  130. package/dist/lib/browser/chunk-YKTSSMDS.mjs.map +0 -7
  131. package/dist/lib/browser/chunk-ZAGAOZVY.mjs.map +0 -7
  132. package/dist/lib/browser/meta.json +0 -1
  133. package/dist/lib/browser/testing/index.mjs.map +0 -7
  134. package/dist/lib/node-esm/Annotation.mjs +0 -33
  135. package/dist/lib/node-esm/Annotation.mjs.map +0 -7
  136. package/dist/lib/node-esm/Database.mjs +0 -18
  137. package/dist/lib/node-esm/Database.mjs.map +0 -7
  138. package/dist/lib/node-esm/Entity.mjs +0 -52
  139. package/dist/lib/node-esm/Entity.mjs.map +0 -7
  140. package/dist/lib/node-esm/Err.mjs +0 -11
  141. package/dist/lib/node-esm/Err.mjs.map +0 -7
  142. package/dist/lib/node-esm/Filter.mjs +0 -62
  143. package/dist/lib/node-esm/Filter.mjs.map +0 -7
  144. package/dist/lib/node-esm/Format.mjs +0 -67
  145. package/dist/lib/node-esm/Format.mjs.map +0 -7
  146. package/dist/lib/node-esm/JsonSchema.mjs +0 -20
  147. package/dist/lib/node-esm/JsonSchema.mjs.map +0 -7
  148. package/dist/lib/node-esm/Key.mjs +0 -13
  149. package/dist/lib/node-esm/Key.mjs.map +0 -7
  150. package/dist/lib/node-esm/Obj.mjs +0 -91
  151. package/dist/lib/node-esm/Obj.mjs.map +0 -7
  152. package/dist/lib/node-esm/Order.mjs +0 -13
  153. package/dist/lib/node-esm/Order.mjs.map +0 -7
  154. package/dist/lib/node-esm/Query.mjs +0 -27
  155. package/dist/lib/node-esm/Query.mjs.map +0 -7
  156. package/dist/lib/node-esm/QueryResult.mjs +0 -3
  157. package/dist/lib/node-esm/QueryResult.mjs.map +0 -7
  158. package/dist/lib/node-esm/Ref.mjs +0 -23
  159. package/dist/lib/node-esm/Ref.mjs.map +0 -7
  160. package/dist/lib/node-esm/Relation.mjs +0 -85
  161. package/dist/lib/node-esm/Relation.mjs.map +0 -7
  162. package/dist/lib/node-esm/SchemaRegistry.mjs +0 -3
  163. package/dist/lib/node-esm/SchemaRegistry.mjs.map +0 -7
  164. package/dist/lib/node-esm/Tag.mjs +0 -26
  165. package/dist/lib/node-esm/Tag.mjs.map +0 -7
  166. package/dist/lib/node-esm/Type.mjs +0 -48
  167. package/dist/lib/node-esm/Type.mjs.map +0 -7
  168. package/dist/lib/node-esm/chunk-4PNXQA64.mjs +0 -250
  169. package/dist/lib/node-esm/chunk-4PNXQA64.mjs.map +0 -7
  170. package/dist/lib/node-esm/chunk-5OBN7GZW.mjs +0 -158
  171. package/dist/lib/node-esm/chunk-AJEMYSIR.mjs +0 -22
  172. package/dist/lib/node-esm/chunk-ANLVLWME.mjs +0 -98
  173. package/dist/lib/node-esm/chunk-ANLVLWME.mjs.map +0 -7
  174. package/dist/lib/node-esm/chunk-DMR7OAFK.mjs +0 -57
  175. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs +0 -133
  176. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs.map +0 -7
  177. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  178. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
  179. package/dist/lib/node-esm/chunk-ILMLLM4R.mjs +0 -204
  180. package/dist/lib/node-esm/chunk-K37NA7PO.mjs +0 -43
  181. package/dist/lib/node-esm/chunk-LT3H4JOX.mjs +0 -3847
  182. package/dist/lib/node-esm/chunk-LT3H4JOX.mjs.map +0 -7
  183. package/dist/lib/node-esm/chunk-MOLNWFNL.mjs +0 -9
  184. package/dist/lib/node-esm/chunk-MOLNWFNL.mjs.map +0 -7
  185. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs +0 -15
  186. package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs +0 -40
  187. package/dist/lib/node-esm/chunk-NRN3ZW2T.mjs +0 -143
  188. package/dist/lib/node-esm/chunk-QLI2EIJ2.mjs +0 -41
  189. package/dist/lib/node-esm/chunk-QYR67VBV.mjs +0 -288
  190. package/dist/lib/node-esm/chunk-UKGVOINP.mjs +0 -9
  191. package/dist/lib/node-esm/chunk-UKGVOINP.mjs.map +0 -7
  192. package/dist/lib/node-esm/chunk-W6QIEBTQ.mjs +0 -403
  193. package/dist/lib/node-esm/chunk-XHJRMQZD.mjs +0 -69
  194. package/dist/lib/node-esm/chunk-Y75VU7LB.mjs +0 -74
  195. package/dist/lib/node-esm/chunk-YOLH5KS4.mjs +0 -283
  196. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs +0 -39
  197. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs.map +0 -7
  198. package/dist/lib/node-esm/chunk-ZBB67AKD.mjs +0 -24
  199. package/dist/lib/node-esm/chunk-ZBB67AKD.mjs.map +0 -7
  200. package/dist/lib/node-esm/index.mjs +0 -85
  201. package/dist/lib/node-esm/index.mjs.map +0 -7
  202. package/dist/lib/node-esm/internal/index.mjs +0 -457
  203. package/dist/lib/node-esm/internal/index.mjs.map +0 -7
  204. package/dist/lib/node-esm/meta.json +0 -1
  205. package/dist/lib/node-esm/testing/index.mjs +0 -367
  206. /package/dist/lib/{browser → neutral}/Annotation.mjs.map +0 -0
  207. /package/dist/lib/{browser → neutral}/Database.mjs.map +0 -0
  208. /package/dist/lib/{browser → neutral}/Entity.mjs.map +0 -0
  209. /package/dist/lib/{browser → neutral}/Err.mjs.map +0 -0
  210. /package/dist/lib/{browser → neutral}/Filter.mjs.map +0 -0
  211. /package/dist/lib/{browser → neutral}/Format.mjs.map +0 -0
  212. /package/dist/lib/{browser → neutral}/JsonSchema.mjs.map +0 -0
  213. /package/dist/lib/{browser → neutral}/Key.mjs.map +0 -0
  214. /package/dist/lib/{browser → neutral}/Obj.mjs.map +0 -0
  215. /package/dist/lib/{browser → neutral}/Order.mjs.map +0 -0
  216. /package/dist/lib/{browser → neutral}/Query.mjs.map +0 -0
  217. /package/dist/lib/{browser → neutral}/QueryResult.mjs.map +0 -0
  218. /package/dist/lib/{browser → neutral}/Ref.mjs.map +0 -0
  219. /package/dist/lib/{browser → neutral}/Relation.mjs.map +0 -0
  220. /package/dist/lib/{browser → neutral}/SchemaRegistry.mjs.map +0 -0
  221. /package/dist/lib/{browser → neutral}/Tag.mjs.map +0 -0
  222. /package/dist/lib/{browser → neutral}/Type.mjs.map +0 -0
  223. /package/dist/lib/{browser/chunk-CGS2ULMK.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  224. /package/dist/lib/{browser → neutral}/index.mjs.map +0 -0
  225. /package/dist/lib/{browser → neutral}/internal/index.mjs.map +0 -0
@@ -55,11 +55,11 @@ describe('Obj.setValue', () => {
55
55
  test('sets multiple nested array elements', ({ expect }) => {
56
56
  const Item = Schema.Struct({
57
57
  value: Schema.optional(Schema.Number),
58
- }).pipe(Schema.mutable);
58
+ });
59
59
 
60
60
  const Container = Schema.Struct({
61
61
  name: Schema.String,
62
- items: Schema.optional(Schema.mutable(Schema.Array(Item))),
62
+ items: Schema.optional(Schema.Array(Item)),
63
63
  }).pipe(
64
64
  Type.object({
65
65
  typename: 'test.com/Container',
@@ -150,7 +150,7 @@ describe('Obj.setValue', () => {
150
150
 
151
151
  test('handles two-dimensional arrays', ({ expect }) => {
152
152
  const Matrix = Schema.Struct({
153
- values: Schema.optional(Schema.mutable(Schema.Array(Schema.mutable(Schema.Array(Schema.Number))))),
153
+ values: Schema.optional(Schema.Array(Schema.Array(Schema.Number))),
154
154
  }).pipe(
155
155
  Type.object({
156
156
  typename: 'test.com/Matrix',
@@ -200,11 +200,11 @@ describe('Obj.setValue', () => {
200
200
  test('handles numeric keys as strings', ({ expect }) => {
201
201
  const Item = Schema.Struct({
202
202
  value: Schema.optional(Schema.Number),
203
- }).pipe(Schema.mutable);
203
+ });
204
204
 
205
205
  const Container = Schema.Struct({
206
206
  name: Schema.String,
207
- items: Schema.optional(Schema.mutable(Schema.Array(Item))),
207
+ items: Schema.optional(Schema.Array(Item)),
208
208
  }).pipe(
209
209
  Type.object({
210
210
  typename: 'test.com/Container',
@@ -227,11 +227,11 @@ describe('Obj.setValue', () => {
227
227
  id: Schema.String, // Required field.
228
228
  title: Schema.optional(Schema.String),
229
229
  completed: Schema.optional(Schema.Boolean),
230
- }).pipe(Schema.mutable);
230
+ });
231
231
 
232
232
  const TodoList = Schema.Struct({
233
233
  name: Schema.String,
234
- tasks: Schema.optional(Schema.mutable(Schema.Array(Task))),
234
+ tasks: Schema.optional(Schema.Array(Task)),
235
235
  }).pipe(
236
236
  Type.object({
237
237
  typename: 'test.com/TodoList',
@@ -256,11 +256,11 @@ describe('Obj.setValue', () => {
256
256
  count: Schema.Number, // Required - should default to 0
257
257
  active: Schema.Boolean, // Required - should default to false
258
258
  label: Schema.optional(Schema.String), // Optional - should not be initialized
259
- }).pipe(Schema.mutable);
259
+ });
260
260
 
261
261
  const Container = Schema.Struct({
262
262
  name: Schema.String,
263
- items: Schema.optional(Schema.mutable(Schema.Array(Item))),
263
+ items: Schema.optional(Schema.Array(Item)),
264
264
  }).pipe(
265
265
  Type.object({
266
266
  typename: 'test.com/Container',
@@ -94,7 +94,7 @@ describe('complex schema validations', () => {
94
94
  });
95
95
 
96
96
  test('subscribe', () => {
97
- const TestSchema = Schema.mutable(Schema.Struct({ field: Schema.String })).pipe(
97
+ const TestSchema = Schema.Struct({ field: Schema.String }).pipe(
98
98
  EchoObjectSchema({ typename: 'Test', version: '0.1.0' }),
99
99
  );
100
100
  const object = makeObject(TestSchema, { field: 'value' });
@@ -117,12 +117,10 @@ describe('complex schema validations', () => {
117
117
  });
118
118
 
119
119
  describe('object structure restrictions', () => {
120
- const NestedSchema = Schema.mutable(
121
- Schema.Struct({
122
- data: Schema.optional(Schema.Any),
123
- nested: Schema.optional(Schema.Any),
124
- }),
125
- );
120
+ const NestedSchema = Schema.Struct({
121
+ data: Schema.optional(Schema.Any),
122
+ nested: Schema.optional(Schema.Any),
123
+ });
126
124
 
127
125
  test('prevents direct cycles', () => {
128
126
  const obj = makeObject(NestedSchema, { data: null });
@@ -226,11 +224,9 @@ describe('object structure restrictions', () => {
226
224
  });
227
225
 
228
226
  test('array elements are owned by root ECHO object', () => {
229
- const ArraySchema = Schema.mutable(
230
- Schema.Struct({
231
- items: Schema.mutable(Schema.Array(Schema.Any)),
232
- }),
233
- );
227
+ const ArraySchema = Schema.Struct({
228
+ items: Schema.Array(Schema.Any),
229
+ });
234
230
 
235
231
  const obj1 = makeObject(ArraySchema, {
236
232
  items: [{ id: 1 }, { id: 2 }, { id: 3 }],
@@ -3,6 +3,7 @@
3
3
  //
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
+ import type * as Types from 'effect/Types';
6
7
  import { describe, expect, test } from 'vitest';
7
8
 
8
9
  import { EchoObjectSchema } from '../entities';
@@ -61,15 +62,13 @@ describe('EchoObjectSchema class DSL', () => {
61
62
  });
62
63
 
63
64
  test('record', () => {
64
- const schema = Schema.mutable(
65
- Schema.Struct({
66
- meta: Schema.optional(Schema.mutable(Schema.Any)),
67
- // NOTE: Schema.Record only supports shallow values.
68
- // https://www.npmjs.com/package/@effect/schema#mutable-records
69
- // meta: Schema.optional(Schema.mutable(Schema.Record({ key: Schema.String, value: Schema.Any }))),
70
- // meta: Schema.optional(Schema.mutable(Schema.object)),
71
- }),
72
- );
65
+ const schema = Schema.Struct({
66
+ meta: Schema.optional(Schema.Any),
67
+ // NOTE: Schema.Record only supports shallow values.
68
+ // https://www.npmjs.com/package/@effect/schema#mutable-records
69
+ // meta: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
70
+ // meta: Schema.optional(Schema.object),
71
+ });
73
72
 
74
73
  {
75
74
  const object = makeObject(schema, {});
@@ -89,7 +88,8 @@ describe('EchoObjectSchema class DSL', () => {
89
88
 
90
89
  {
91
90
  // Plain object (not a reactive proxy) - doesn't need Obj.change.
92
- type Test1 = Schema.Schema.Type<typeof schema>;
91
+ // Note: Schema.Schema.Type generates readonly types, so we cast to mutable for plain objects.
92
+ type Test1 = Types.Mutable<Schema.Schema.Type<typeof schema>>;
93
93
 
94
94
  const object: Test1 = {};
95
95
  (object.meta ??= {}).test = 100;
@@ -98,7 +98,7 @@ describe('EchoObjectSchema class DSL', () => {
98
98
 
99
99
  {
100
100
  const Test2 = Schema.Struct({
101
- meta: Schema.optional(Schema.mutable(Schema.Record({ key: Schema.String, value: Schema.Any }))),
101
+ meta: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
102
102
  }).pipe(
103
103
  EchoObjectSchema({
104
104
  typename: 'dxos.org/type/FunctionTrigger',
@@ -26,7 +26,7 @@ type Task = Schema.Schema.Type<typeof Task>;
26
26
  const Contact = Schema.Struct({
27
27
  name: Schema.String,
28
28
  email: Schema.optional(Schema.String),
29
- tasks: Schema.mutable(Schema.Array(Ref(Task))),
29
+ tasks: Schema.Array(Ref(Task)),
30
30
  }).pipe(
31
31
  EchoObjectSchema({
32
32
  typename: 'example.com/type/Person',
@@ -7,6 +7,7 @@ import * as Option from 'effect/Option';
7
7
  import * as ParseResult from 'effect/ParseResult';
8
8
  import * as Schema from 'effect/Schema';
9
9
  import * as SchemaAST from 'effect/SchemaAST';
10
+ import type * as Types from 'effect/Types';
10
11
 
11
12
  import { Event } from '@dxos/async';
12
13
  import { type CustomInspectFunction, inspectCustom } from '@dxos/debug';
@@ -31,7 +32,7 @@ export const getSchemaReference = (property: JsonSchemaType): { typename: string
31
32
  }
32
33
  };
33
34
 
34
- export const createSchemaReference = (typename: string): JsonSchemaType => {
35
+ export const createSchemaReference = (typename: string): Types.DeepMutable<JsonSchemaType> => {
35
36
  return {
36
37
  $id: JSON_SCHEMA_ECHO_REF_ID,
37
38
  reference: {
@@ -2,18 +2,22 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ import type * as Types from 'effect/Types';
6
+
5
7
  import { invariant } from '@dxos/invariant';
6
8
 
7
9
  import { type JsonSchemaType } from '../json-schema';
8
- import { getSnapshot } from '../object';
9
10
 
10
11
  /**
11
12
  * Creates a composite schema from the source and projection schemas.
12
13
  */
13
14
  // TODO(burdon): Use effect schema projections.
14
15
  // TODO(burdon): Can avoid having to call this every time we modify any property on the view?
15
- export const composeSchema = (source: JsonSchemaType, target: JsonSchemaType): JsonSchemaType => {
16
- const result: JsonSchemaType = getSnapshot(target);
16
+ export const composeSchema = (
17
+ source: Types.Mutable<JsonSchemaType>,
18
+ target: Types.Mutable<JsonSchemaType>,
19
+ ): Types.Mutable<JsonSchemaType> => {
20
+ const result = structuredClone(target);
17
21
  invariant('type' in result && result.type === 'object', 'source schema must be an object');
18
22
  invariant('type' in source && source.type === 'object', 'target schema must be an object');
19
23
 
@@ -21,12 +25,13 @@ export const composeSchema = (source: JsonSchemaType, target: JsonSchemaType): J
21
25
  const propSchema = source.properties![prop]; // TODO(dmaretskyi): Find by json-path instead.
22
26
  const annotations = (propSchema as JsonSchemaType)?.annotations?.meta;
23
27
  if (annotations) {
24
- (result.properties[prop] as JsonSchemaType).annotations ??= {};
25
- (result.properties[prop] as JsonSchemaType).annotations!.meta ??= {};
28
+ const resultProp = result.properties[prop] as Record<string, any>;
29
+ resultProp.annotations ??= {};
30
+ resultProp.annotations.meta ??= {};
26
31
  for (const key in annotations) {
27
- (result.properties[prop] as JsonSchemaType).annotations!.meta![key] ??= {};
28
- Object.assign((result.properties[prop] as JsonSchemaType).annotations!.meta![key], annotations[key], {
29
- ...(result.properties[prop] as JsonSchemaType).annotations!.meta![key],
32
+ resultProp.annotations.meta[key] ??= {};
33
+ Object.assign(resultProp.annotations.meta[key], annotations[key], {
34
+ ...resultProp.annotations.meta[key],
30
35
  });
31
36
  }
32
37
  }
@@ -25,20 +25,19 @@ export const MetaId = Symbol.for('@dxos/echo/Meta');
25
25
  //
26
26
 
27
27
  // TODO(dmaretskyi): Rename to ObjectMeta
28
- export const ObjectMetaSchema = Schema.mutable(
29
- Schema.Struct({
30
- keys: Schema.mutable(Schema.Array(ForeignKey)),
28
+ export const ObjectMetaSchema = Schema.Struct({
29
+ keys: Schema.Array(ForeignKey),
30
+
31
+ /**
32
+ * A set of tags.
33
+ * Tags are arbitrary application-defined strings.
34
+ * ECHO makes no assumptions about the tag structure.
35
+ */
36
+ // TODO(dmaretskyi): Has to be optional for compatibility with old data.
37
+ // Defaulting to an empty array is possible but requires a bit more work.
38
+ tags: Schema.optional(Schema.Array(Schema.String)),
39
+ });
31
40
 
32
- /**
33
- * A set of tags.
34
- * Tags are arbitrary application-defined strings.
35
- * ECHO makes no assumptions about the tag structure.
36
- */
37
- // TODO(dmaretskyi): Has to be optional for compatibility with old data.
38
- // Defaulting to an empty array is possible but requires a bit more work.
39
- tags: Schema.optional(Schema.mutable(Schema.Array(Schema.String))),
40
- }),
41
- );
42
41
  export type ObjectMeta = Schema.Schema.Type<typeof ObjectMetaSchema>;
43
42
 
44
43
  /*
@@ -1,18 +0,0 @@
1
- import "@dxos/node-std/globals";
2
- import {
3
- Database,
4
- Service,
5
- TypeId,
6
- isDatabase
7
- } from "./chunk-7STIBCP7.mjs";
8
- import "./chunk-RK4Z4JUZ.mjs";
9
- import "./chunk-YKTSSMDS.mjs";
10
- import "./chunk-CJ5YELTO.mjs";
11
- import "./chunk-CGS2ULMK.mjs";
12
- export {
13
- Database,
14
- Service,
15
- TypeId,
16
- isDatabase
17
- };
18
- //# sourceMappingURL=Database.mjs.map
@@ -1,20 +0,0 @@
1
- import "@dxos/node-std/globals";
2
- import {
3
- JsonSchema
4
- } from "./chunk-22JMFST2.mjs";
5
- import {
6
- toEffectSchema,
7
- toJsonSchema
8
- } from "./chunk-BJPE6CIC.mjs";
9
- import "./chunk-FRDT7RA4.mjs";
10
- import "./chunk-7STIBCP7.mjs";
11
- import "./chunk-RK4Z4JUZ.mjs";
12
- import "./chunk-YKTSSMDS.mjs";
13
- import "./chunk-CJ5YELTO.mjs";
14
- import "./chunk-CGS2ULMK.mjs";
15
- export {
16
- JsonSchema,
17
- toEffectSchema,
18
- toJsonSchema
19
- };
20
- //# sourceMappingURL=JsonSchema.mjs.map
@@ -1,27 +0,0 @@
1
- import "@dxos/node-std/globals";
2
- import {
3
- all,
4
- fromAst,
5
- is,
6
- select,
7
- type,
8
- without
9
- } from "./chunk-6L5HHUVU.mjs";
10
- import "./chunk-ZAGAOZVY.mjs";
11
- import "./chunk-XDIUHAAX.mjs";
12
- import "./chunk-BJPE6CIC.mjs";
13
- import "./chunk-FRDT7RA4.mjs";
14
- import "./chunk-7STIBCP7.mjs";
15
- import "./chunk-RK4Z4JUZ.mjs";
16
- import "./chunk-YKTSSMDS.mjs";
17
- import "./chunk-CJ5YELTO.mjs";
18
- import "./chunk-CGS2ULMK.mjs";
19
- export {
20
- all,
21
- fromAst,
22
- is,
23
- select,
24
- type,
25
- without
26
- };
27
- //# sourceMappingURL=Query.mjs.map
@@ -1,3 +0,0 @@
1
- import "@dxos/node-std/globals";
2
- import "./chunk-IXVWLTG7.mjs";
3
- //# sourceMappingURL=QueryResult.mjs.map
@@ -1,23 +0,0 @@
1
- import "@dxos/node-std/globals";
2
- import {
3
- Array,
4
- fromDXN,
5
- isRef,
6
- isRefType,
7
- make
8
- } from "./chunk-XDIUHAAX.mjs";
9
- import "./chunk-BJPE6CIC.mjs";
10
- import "./chunk-FRDT7RA4.mjs";
11
- import "./chunk-7STIBCP7.mjs";
12
- import "./chunk-RK4Z4JUZ.mjs";
13
- import "./chunk-YKTSSMDS.mjs";
14
- import "./chunk-CJ5YELTO.mjs";
15
- import "./chunk-CGS2ULMK.mjs";
16
- export {
17
- Array,
18
- fromDXN,
19
- isRef,
20
- isRefType,
21
- make
22
- };
23
- //# sourceMappingURL=Ref.mjs.map
@@ -1,3 +0,0 @@
1
- import "@dxos/node-std/globals";
2
- import "./chunk-ZHXZGIXD.mjs";
3
- //# sourceMappingURL=SchemaRegistry.mjs.map
@@ -1,26 +0,0 @@
1
- import "@dxos/node-std/globals";
2
- import {
3
- Tag,
4
- createTagList,
5
- findTagByLabel,
6
- make,
7
- sortTags
8
- } from "./chunk-U2J7TA7K.mjs";
9
- import "./chunk-KQQGVHFN.mjs";
10
- import "./chunk-NOPVNWPT.mjs";
11
- import "./chunk-W5D2GWAW.mjs";
12
- import "./chunk-BJPE6CIC.mjs";
13
- import "./chunk-FRDT7RA4.mjs";
14
- import "./chunk-7STIBCP7.mjs";
15
- import "./chunk-RK4Z4JUZ.mjs";
16
- import "./chunk-YKTSSMDS.mjs";
17
- import "./chunk-CJ5YELTO.mjs";
18
- import "./chunk-CGS2ULMK.mjs";
19
- export {
20
- Tag,
21
- createTagList,
22
- findTagByLabel,
23
- make,
24
- sortTags
25
- };
26
- //# sourceMappingURL=Tag.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/Query.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as EffectArray from 'effect/Array';\nimport type * as Schema from 'effect/Schema';\n\nimport { type QueryAST } from '@dxos/echo-protocol';\n\nimport * as Filter from './Filter';\nimport { getTypeDXNFromSpecifier } from './internal';\nimport type * as Order from './Order';\nimport type * as Ref from './Ref';\nimport type * as Type$ from './Type';\n\n// TODO(dmaretskyi): Split up into interfaces for objects and relations so they can have separate verbs.\n// TODO(dmaretskyi): Undirected relation traversals.\n// TODO(wittjosiah): Make Filter & Query pipeable.\n\n/**\n * All property paths inside T that are references.\n */\n// TODO(dmaretskyi): Filter only properties that are references (or optional references, or unions that include references).\ntype RefPropKey<T> = keyof T & string;\n\n// TODO(burdon): Narrow T to Entity.Unknown?\nexport interface Query<T> {\n // TODO(dmaretskyi): See new effect-schema approach to variance.\n '~Query': { value: T };\n\n ast: QueryAST.Query;\n\n /**\n * Filter the current selection based on a filter.\n * @param filter - Filter to select the objects.\n * @returns Query for the selected objects.\n */\n select(filter: Filter.Filter<T>): Query<T>;\n select(props: Filter.Props<T>): Query<T>;\n\n /**\n * Traverse an outgoing reference.\n * @param key - Property path inside T that is a reference or optional reference.\n * @returns Query for the target of the reference.\n */\n reference<K extends RefPropKey<T>>(\n key: K,\n ): Query<\n T[K] extends Ref.Unknown\n ? Ref.Target<T[K]>\n : T[K] extends Ref.Unknown | undefined\n ? Ref.Target<Exclude<T[K], undefined>>\n : never\n >;\n\n /**\n * Find objects referencing this object.\n * @param target - Schema of the referencing object. If not provided, matches any type.\n * @param key - Property path inside the referencing object that is a reference. If not provided, matches any property.\n * @returns Query for the referencing objects.\n */\n // TODO(dmaretskyi): any way to enforce `Ref.Target<Schema.Schema.Type<S>[key]> == T`?\n // TODO(dmaretskyi): Ability to go through arrays of references.\n referencedBy<S extends Schema.Schema.All>(\n target: S | string,\n key: RefPropKey<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n referencedBy<S extends Schema.Schema.All>(target: S | string): Query<Schema.Schema.Type<S>>;\n referencedBy(): Query<any>;\n\n /**\n * Find relations where this object is the source.\n * @returns Query for the relation objects.\n * @param relation - Schema of the relation.\n * @param predicates - Predicates to filter the relation objects.\n */\n sourceOf<S extends Schema.Schema.All>(\n relation: S | string,\n predicates?: Filter.Props<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n\n /**\n * Find relations where this object is the target.\n * @returns Query for the relation objects.\n * @param relation - Schema of the relation.\n * @param predicates - Predicates to filter the relation objects.\n */\n targetOf<S extends Schema.Schema.All>(\n relation: S | string,\n predicates?: Filter.Props<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n\n /**\n * For a query for relations, get the source objects.\n * @returns Query for the source objects.\n */\n source(): Query<Type$.Relation.Source<T>>;\n\n /**\n * For a query for relations, get the target objects.\n * @returns Query for the target objects.\n */\n target(): Query<Type$.Relation.Target<T>>;\n\n /**\n * Order the query results.\n * Orders are specified in priority order. The first order will be applied first, etc.\n * @param order - Order to sort the results.\n * @returns Query for the ordered results.\n */\n orderBy(...order: EffectArray.NonEmptyArray<Order.Order<T>>): Query<T>;\n\n /**\n * Limit the number of results.\n * @param limit - Maximum number of results to return.\n * @returns Query for the limited results.\n */\n limit(limit: number): Query<T>;\n\n /**\n * Add options to a query.\n */\n options(options: QueryAST.QueryOptions): Query<T>;\n}\n\nexport type Any = Query<any>;\n\nexport type Type<Q extends Any> = Q extends Query<infer T> ? T : never;\n\nclass QueryClass implements Any {\n private static variance: Any['~Query'] = {} as Any['~Query'];\n\n constructor(public readonly ast: QueryAST.Query) {}\n\n '~Query' = QueryClass.variance;\n\n select(filter: Filter.Any | Filter.Props<any>): Any {\n if (Filter.is(filter)) {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: filter.ast,\n });\n } else {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: Filter.props(filter).ast,\n });\n }\n }\n\n reference(key: string): Any {\n return new QueryClass({\n type: 'reference-traversal',\n anchor: this.ast,\n property: key,\n });\n }\n\n referencedBy(target?: Schema.Schema.All | string, key?: string): Any {\n const dxn = target !== undefined ? getTypeDXNFromSpecifier(target) : null;\n return new QueryClass({\n type: 'incoming-references',\n anchor: this.ast,\n property: key ?? null,\n typename: dxn?.toString() ?? null,\n });\n }\n\n sourceOf(relation: Schema.Schema.All | string, predicates?: Filter.Props<unknown> | undefined): Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'outgoing',\n filter: Filter.type(relation, predicates).ast,\n });\n }\n\n targetOf(relation: Schema.Schema.All | string, predicates?: Filter.Props<unknown> | undefined): Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'incoming',\n filter: Filter.type(relation, predicates).ast,\n });\n }\n\n source(): Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'source',\n });\n }\n\n target(): Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'target',\n });\n }\n\n orderBy(...order: Order.Order<any>[]): Any {\n return new QueryClass({\n type: 'order',\n query: this.ast,\n order: order.map((o) => o.ast),\n });\n }\n\n limit(limit: number): Any {\n return new QueryClass({\n type: 'limit',\n query: this.ast,\n limit,\n });\n }\n\n options(options: QueryAST.QueryOptions): Any {\n return new QueryClass({\n type: 'options',\n query: this.ast,\n options,\n });\n }\n}\n\nexport const is = (value: unknown): value is Any => {\n return typeof value === 'object' && value !== null && '~Query' in value;\n};\n\n/** Construct a query from an ast. */\nexport const fromAst = (ast: QueryAST.Query): Any => {\n return new QueryClass(ast);\n};\n\n/**\n * Select objects based on a filter.\n * @param filter - Filter to select the objects.\n * @returns Query for the selected objects.\n */\nexport const select = <F extends Filter.Any>(filter: F): Query<Filter.Type<F>> => {\n return new QueryClass({\n type: 'select',\n filter: filter.ast,\n });\n};\n\n/**\n * Query for objects of a given schema.\n * @param schema - Schema of the objects.\n * @param predicates - Predicates to filter the objects.\n * @returns Query for the objects.\n *\n * Shorthand for: `Query.select(Filter.type(schema, predicates))`.\n */\nexport const type = (schema: Schema.Schema.All | string, predicates?: Filter.Props<unknown>): Any => {\n return new QueryClass({\n type: 'select',\n filter: Filter.type(schema, predicates).ast,\n });\n};\n\n/**\n * Combine results of multiple queries.\n * @param queries - Queries to combine.\n * @returns Query for the combined results.\n */\n// TODO(dmaretskyi): Rename to `combine` or `union`.\nexport const all = (...queries: Any[]): Any => {\n if (queries.length === 0) {\n throw new TypeError(\n 'Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())',\n );\n }\n return new QueryClass({\n type: 'union',\n queries: queries.map((q) => q.ast),\n });\n};\n\n/**\n * Subtract one query from another.\n * @param source - Query to subtract from.\n * @param exclude - Query to subtract.\n * @returns Query for the results of the source query minus the results of the exclude query.\n */\nexport const without = <T>(source: Query<T>, exclude: Query<T>): Query<T> => {\n return new QueryClass({\n type: 'set-difference',\n source: source.ast,\n exclude: exclude.ast,\n });\n};\n"],
5
- "mappings": "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",
6
- "names": ["is", "type", "QueryClass", "variance", "ast", "select", "filter", "is", "type", "selection", "props", "reference", "key", "anchor", "property", "referencedBy", "target", "dxn", "undefined", "getTypeDXNFromSpecifier", "typename", "toString", "sourceOf", "relation", "predicates", "direction", "targetOf", "source", "orderBy", "order", "query", "map", "o", "limit", "options", "value", "fromAst", "schema", "all", "queries", "length", "TypeError", "q", "without", "exclude"]
7
- }