@dxos/echo 0.8.4-main.c4373fc → 0.8.4-main.d05673bc65

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 (659) hide show
  1. package/README.md +3 -4
  2. package/dist/lib/neutral/Annotation.mjs +37 -0
  3. package/dist/lib/neutral/Database.mjs +45 -0
  4. package/dist/lib/neutral/Entity.mjs +59 -0
  5. package/dist/lib/neutral/Err.mjs +12 -0
  6. package/dist/lib/neutral/Feed.mjs +46 -0
  7. package/dist/lib/neutral/Filter.mjs +64 -0
  8. package/dist/lib/neutral/Format.mjs +66 -0
  9. package/dist/lib/neutral/Format.mjs.map +7 -0
  10. package/dist/lib/neutral/JsonSchema.mjs +19 -0
  11. package/dist/lib/neutral/JsonSchema.mjs.map +7 -0
  12. package/dist/lib/neutral/Key.mjs +12 -0
  13. package/dist/lib/neutral/Key.mjs.map +7 -0
  14. package/dist/lib/neutral/Obj.mjs +110 -0
  15. package/dist/lib/neutral/Obj.mjs.map +7 -0
  16. package/dist/lib/neutral/Order.mjs +12 -0
  17. package/dist/lib/neutral/Order.mjs.map +7 -0
  18. package/dist/lib/neutral/Query.mjs +35 -0
  19. package/dist/lib/neutral/Query.mjs.map +7 -0
  20. package/dist/lib/neutral/QueryResult.mjs +2 -0
  21. package/dist/lib/neutral/QueryResult.mjs.map +7 -0
  22. package/dist/lib/neutral/Ref.mjs +24 -0
  23. package/dist/lib/neutral/Ref.mjs.map +7 -0
  24. package/dist/lib/neutral/Relation.mjs +93 -0
  25. package/dist/lib/neutral/Relation.mjs.map +7 -0
  26. package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
  27. package/dist/lib/neutral/SchemaRegistry.mjs.map +7 -0
  28. package/dist/lib/neutral/Tag.mjs +28 -0
  29. package/dist/lib/neutral/Tag.mjs.map +7 -0
  30. package/dist/lib/neutral/Type.mjs +37 -0
  31. package/dist/lib/neutral/Type.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-43Y5DOS6.mjs +396 -0
  33. package/dist/lib/neutral/chunk-43Y5DOS6.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-724GQYEN.mjs +56 -0
  35. package/dist/lib/neutral/chunk-724GQYEN.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-ANHVGJI4.mjs +21 -0
  37. package/dist/lib/neutral/chunk-ANHVGJI4.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-B5OXLWZL.mjs +402 -0
  39. package/dist/lib/neutral/chunk-B5OXLWZL.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-BNCCGLJN.mjs +7 -0
  41. package/dist/lib/neutral/chunk-BNCCGLJN.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-BOZZPUXE.mjs +787 -0
  43. package/dist/lib/neutral/chunk-BOZZPUXE.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-CIRHIEMW.mjs +298 -0
  45. package/dist/lib/neutral/chunk-CIRHIEMW.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-DYDJBZEG.mjs +102 -0
  47. package/dist/lib/neutral/chunk-DYDJBZEG.mjs.map +7 -0
  48. package/dist/lib/neutral/chunk-FXEG7EOK.mjs +45 -0
  49. package/dist/lib/neutral/chunk-FXEG7EOK.mjs.map +7 -0
  50. package/dist/lib/neutral/chunk-FZO7LQO7.mjs +73 -0
  51. package/dist/lib/neutral/chunk-FZO7LQO7.mjs.map +7 -0
  52. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  53. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  54. package/dist/lib/neutral/chunk-KTAWP7GI.mjs +283 -0
  55. package/dist/lib/neutral/chunk-KTAWP7GI.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-NEGC54NE.mjs +130 -0
  57. package/dist/lib/neutral/chunk-NEGC54NE.mjs.map +7 -0
  58. package/dist/lib/neutral/chunk-NQRLRYJM.mjs +313 -0
  59. package/dist/lib/neutral/chunk-NQRLRYJM.mjs.map +7 -0
  60. package/dist/lib/neutral/chunk-NXMFBIT5.mjs +299 -0
  61. package/dist/lib/neutral/chunk-NXMFBIT5.mjs.map +7 -0
  62. package/dist/lib/neutral/chunk-OENWMTE6.mjs +45 -0
  63. package/dist/lib/neutral/chunk-OENWMTE6.mjs.map +7 -0
  64. package/dist/lib/neutral/chunk-OMUPQMLR.mjs +7 -0
  65. package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +7 -0
  66. package/dist/lib/neutral/chunk-RMLF7JOZ.mjs +97 -0
  67. package/dist/lib/neutral/chunk-RMLF7JOZ.mjs.map +7 -0
  68. package/dist/lib/neutral/chunk-SEMVAGBM.mjs +355 -0
  69. package/dist/lib/neutral/chunk-SEMVAGBM.mjs.map +7 -0
  70. package/dist/lib/neutral/chunk-TQQZLKB7.mjs +2712 -0
  71. package/dist/lib/neutral/chunk-TQQZLKB7.mjs.map +7 -0
  72. package/dist/lib/neutral/chunk-UBEZSGXY.mjs +51 -0
  73. package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +7 -0
  74. package/dist/lib/neutral/chunk-UFDK26FO.mjs +121 -0
  75. package/dist/lib/neutral/chunk-UFDK26FO.mjs.map +7 -0
  76. package/dist/lib/neutral/chunk-UI6MWK5W.mjs +42 -0
  77. package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +7 -0
  78. package/dist/lib/neutral/chunk-UTBRYVQC.mjs +27 -0
  79. package/dist/lib/neutral/chunk-UTBRYVQC.mjs.map +7 -0
  80. package/dist/lib/neutral/chunk-VA2F47ZC.mjs +152 -0
  81. package/dist/lib/neutral/chunk-VA2F47ZC.mjs.map +7 -0
  82. package/dist/lib/neutral/chunk-WYOKA6AE.mjs +67 -0
  83. package/dist/lib/neutral/chunk-WYOKA6AE.mjs.map +7 -0
  84. package/dist/lib/neutral/chunk-YWXWXIE5.mjs +34 -0
  85. package/dist/lib/neutral/chunk-YWXWXIE5.mjs.map +7 -0
  86. package/dist/lib/neutral/index.mjs +97 -0
  87. package/dist/lib/neutral/index.mjs.map +7 -0
  88. package/dist/lib/{node-esm → neutral}/internal/index.mjs +292 -148
  89. package/dist/lib/neutral/internal/index.mjs.map +7 -0
  90. package/dist/lib/neutral/meta.json +1 -0
  91. package/dist/lib/neutral/testing/index.mjs +373 -0
  92. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  93. package/dist/types/src/Annotation.d.ts +24 -0
  94. package/dist/types/src/Annotation.d.ts.map +1 -0
  95. package/dist/types/src/Collection.d.ts +16 -0
  96. package/dist/types/src/Collection.d.ts.map +1 -0
  97. package/dist/types/src/Database.d.ts +189 -0
  98. package/dist/types/src/Database.d.ts.map +1 -0
  99. package/dist/types/src/Dataset.d.ts +18 -0
  100. package/dist/types/src/Dataset.d.ts.map +1 -0
  101. package/dist/types/src/Entity.d.ts +168 -0
  102. package/dist/types/src/Entity.d.ts.map +1 -0
  103. package/dist/types/src/Entity.test.d.ts +2 -0
  104. package/dist/types/src/Entity.test.d.ts.map +1 -0
  105. package/dist/types/src/Err.d.ts +107 -0
  106. package/dist/types/src/Err.d.ts.map +1 -0
  107. package/dist/types/src/Feed.d.ts +165 -0
  108. package/dist/types/src/Feed.d.ts.map +1 -0
  109. package/dist/types/src/Filter.d.ts +120 -0
  110. package/dist/types/src/Filter.d.ts.map +1 -0
  111. package/dist/types/src/Format.d.ts +4 -0
  112. package/dist/types/src/Format.d.ts.map +1 -0
  113. package/dist/types/src/Hypergraph.d.ts +65 -0
  114. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  115. package/dist/types/src/JsonSchema.d.ts +16 -0
  116. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  117. package/dist/types/src/Key.d.ts +1 -0
  118. package/dist/types/src/Key.d.ts.map +1 -1
  119. package/dist/types/src/Obj.d.ts +425 -95
  120. package/dist/types/src/Obj.d.ts.map +1 -1
  121. package/dist/types/src/Obj.test.d.ts +2 -0
  122. package/dist/types/src/Obj.test.d.ts.map +1 -0
  123. package/dist/types/src/Order.d.ts +16 -0
  124. package/dist/types/src/Order.d.ts.map +1 -0
  125. package/dist/types/src/Query.d.ts +202 -0
  126. package/dist/types/src/Query.d.ts.map +1 -0
  127. package/dist/types/src/Query.test.d.ts +2 -0
  128. package/dist/types/src/Query.test.d.ts.map +1 -0
  129. package/dist/types/src/QueryResult.d.ts +80 -0
  130. package/dist/types/src/QueryResult.d.ts.map +1 -0
  131. package/dist/types/src/Ref.d.ts +61 -11
  132. package/dist/types/src/Ref.d.ts.map +1 -1
  133. package/dist/types/src/Relation.d.ts +288 -21
  134. package/dist/types/src/Relation.d.ts.map +1 -1
  135. package/dist/types/src/Relation.test.d.ts +2 -0
  136. package/dist/types/src/Relation.test.d.ts.map +1 -0
  137. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  138. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  139. package/dist/types/src/Tag.d.ts +18 -0
  140. package/dist/types/src/Tag.d.ts.map +1 -0
  141. package/dist/types/src/Type.d.ts +123 -99
  142. package/dist/types/src/Type.d.ts.map +1 -1
  143. package/dist/types/src/Type.test.d.ts +2 -0
  144. package/dist/types/src/Type.test.d.ts.map +1 -0
  145. package/dist/types/src/View.d.ts +68 -0
  146. package/dist/types/src/View.d.ts.map +1 -0
  147. package/dist/types/src/hierarchy.test.d.ts +2 -0
  148. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  149. package/dist/types/src/index.d.ts +19 -5
  150. package/dist/types/src/index.d.ts.map +1 -1
  151. package/dist/types/src/internal/Annotation/annotations.d.ts +230 -0
  152. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  153. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  154. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  155. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  156. package/dist/types/src/internal/Annotation/sorting.d.ts +24 -0
  157. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  158. package/dist/types/src/internal/Annotation/util.d.ts +39 -0
  159. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  160. package/dist/types/src/internal/Entity/api.d.ts +13 -0
  161. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  162. package/dist/types/src/internal/Entity/entity.d.ts +20 -0
  163. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  164. package/dist/types/src/internal/Entity/index.d.ts +8 -0
  165. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  166. package/dist/types/src/internal/Entity/model.d.ts +55 -0
  167. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  168. package/dist/types/src/internal/Entity/object.d.ts +18 -0
  169. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  170. package/dist/types/src/internal/Entity/relation.d.ts +35 -0
  171. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  172. package/dist/types/src/internal/Entity/util.d.ts +2 -0
  173. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  174. package/dist/types/src/internal/Entity/version.d.ts +42 -0
  175. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  176. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  177. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  178. package/dist/types/src/internal/{formats → Format}/format.d.ts +4 -2
  179. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  180. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  181. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  182. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  183. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  184. package/dist/types/src/internal/{formats → Format}/select.d.ts +6 -4
  185. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  186. package/dist/types/src/internal/{formats → Format}/string.d.ts +4 -0
  187. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  188. package/dist/types/src/internal/{formats → Format}/types.d.ts +14 -10
  189. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  190. package/dist/types/src/internal/{json → JsonSchema}/annotations.d.ts +1 -1
  191. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  192. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  193. package/dist/types/src/internal/JsonSchema/index.d.ts +5 -0
  194. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  195. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  196. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +131 -30
  197. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  198. package/dist/types/src/internal/{json → JsonSchema}/json-schema.d.ts +4 -6
  199. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  200. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  201. package/dist/types/src/internal/Obj/clone.d.ts +8 -0
  202. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  203. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  204. package/dist/types/src/internal/{object/create.d.ts → Obj/create-object.d.ts} +10 -11
  205. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  206. package/dist/types/src/internal/Obj/create-object.test.d.ts +2 -0
  207. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  208. package/dist/types/src/internal/Obj/deleted.d.ts +6 -0
  209. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  210. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  211. package/dist/types/src/internal/Obj/index.d.ts +11 -0
  212. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  213. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  214. package/dist/types/src/internal/Obj/json-serializer.d.ts +44 -0
  215. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  216. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  217. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  218. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  219. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  220. package/dist/types/src/internal/Obj/set-value.d.ts +7 -0
  221. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  222. package/dist/types/src/internal/Obj/set-value.test.d.ts +2 -0
  223. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  224. package/dist/types/src/internal/Obj/snapshot.d.ts +6 -0
  225. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  226. package/dist/types/src/internal/Obj/typed-object.d.ts +25 -0
  227. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  228. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  229. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  230. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +4 -4
  231. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  232. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +44 -19
  233. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  234. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  235. package/dist/types/src/internal/Type/compose.d.ts +7 -0
  236. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  237. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  238. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +27 -14
  239. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  240. package/dist/types/src/internal/Type/index.d.ts +4 -0
  241. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  242. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  243. package/dist/types/src/internal/Type/persistent-schema.d.ts +20 -0
  244. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  245. package/dist/types/src/internal/common/api/index.d.ts +11 -0
  246. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  247. package/dist/types/src/internal/common/api/meta.d.ts +42 -0
  248. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  249. package/dist/types/src/internal/common/index.d.ts +4 -0
  250. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  251. package/dist/types/src/internal/common/proxy/change-context.d.ts +55 -0
  252. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  253. package/dist/types/src/internal/common/proxy/change.test.d.ts +2 -0
  254. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  255. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts +5 -0
  256. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  257. package/dist/types/src/internal/common/proxy/errors.d.ts +19 -0
  258. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  259. package/dist/types/src/internal/common/proxy/event-batch.d.ts +10 -0
  260. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  261. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  262. package/dist/types/src/internal/common/proxy/index.d.ts +14 -0
  263. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  264. package/dist/types/src/internal/common/proxy/json-serializer.d.ts +6 -0
  265. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  266. package/dist/types/src/internal/common/proxy/make-object.d.ts +14 -0
  267. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  268. package/dist/types/src/internal/common/proxy/ownership.d.ts +57 -0
  269. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  270. package/dist/types/src/internal/common/proxy/proxy-types.d.ts +18 -0
  271. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  272. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts +47 -0
  273. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  274. package/dist/types/src/internal/common/proxy/reactive-array.d.ts +8 -0
  275. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  276. package/dist/types/src/internal/common/proxy/reactive.d.ts +39 -0
  277. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
  278. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  279. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  280. package/dist/types/src/internal/common/proxy/symbols.d.ts +3 -0
  281. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  282. package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +16 -12
  283. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  284. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  285. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  286. package/dist/types/src/internal/common/types/base.d.ts +27 -0
  287. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  288. package/dist/types/src/internal/common/types/entity.d.ts +37 -0
  289. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  290. package/dist/types/src/internal/common/types/index.d.ts +7 -0
  291. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  292. package/dist/types/src/internal/{object → common/types}/meta.d.ts +18 -16
  293. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  294. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  295. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  296. package/dist/types/src/internal/common/types/typename.d.ts +21 -0
  297. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  298. package/dist/types/src/internal/common/types/version.d.ts +15 -0
  299. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  300. package/dist/types/src/internal/index.d.ts +9 -14
  301. package/dist/types/src/internal/index.d.ts.map +1 -1
  302. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  303. package/dist/types/src/testing/index.d.ts +3 -3
  304. package/dist/types/src/testing/index.d.ts.map +1 -1
  305. package/dist/types/src/testing/test-data.d.ts +18 -0
  306. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  307. package/dist/types/src/testing/test-schema.d.ts +304 -0
  308. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  309. package/dist/types/src/testing/util.d.ts +21 -0
  310. package/dist/types/src/testing/util.d.ts.map +1 -0
  311. package/dist/types/tsconfig.tsbuildinfo +1 -1
  312. package/package.json +106 -65
  313. package/src/Annotation.ts +48 -0
  314. package/src/Collection.ts +32 -0
  315. package/src/Database.ts +317 -0
  316. package/src/Dataset.ts +26 -0
  317. package/src/Entity.test.ts +22 -0
  318. package/src/Entity.ts +237 -0
  319. package/src/Err.ts +40 -0
  320. package/src/Feed.ts +257 -0
  321. package/src/Filter.ts +391 -0
  322. package/src/Format.ts +9 -0
  323. package/src/Hypergraph.ts +79 -0
  324. package/src/JsonSchema.ts +26 -0
  325. package/src/Key.ts +3 -0
  326. package/src/Obj.test.ts +447 -0
  327. package/src/Obj.ts +595 -249
  328. package/src/Order.ts +46 -0
  329. package/src/Query.test.ts +632 -0
  330. package/src/Query.ts +522 -0
  331. package/src/QueryResult.ts +106 -0
  332. package/src/Ref.ts +79 -9
  333. package/src/Relation.test.ts +88 -0
  334. package/src/Relation.ts +443 -58
  335. package/src/SchemaRegistry.ts +106 -0
  336. package/src/Tag.ts +41 -0
  337. package/src/Type.test.ts +52 -0
  338. package/src/Type.ts +167 -153
  339. package/src/View.ts +102 -0
  340. package/src/hierarchy.test.ts +33 -0
  341. package/src/index.ts +20 -6
  342. package/src/internal/{ast → Annotation}/annotations.test.ts +20 -22
  343. package/src/internal/Annotation/annotations.ts +571 -0
  344. package/src/internal/Annotation/index.ts +7 -0
  345. package/src/internal/Annotation/sorting.ts +52 -0
  346. package/src/internal/Annotation/util.ts +85 -0
  347. package/src/internal/Entity/api.ts +31 -0
  348. package/src/internal/Entity/entity.ts +128 -0
  349. package/src/internal/Entity/index.ts +11 -0
  350. package/src/internal/Entity/model.ts +109 -0
  351. package/src/internal/Entity/object.ts +58 -0
  352. package/src/internal/Entity/relation.ts +154 -0
  353. package/src/internal/Entity/util.ts +33 -0
  354. package/src/internal/Entity/version.ts +97 -0
  355. package/src/internal/{formats → Format}/date.test.ts +1 -1
  356. package/src/internal/{formats → Format}/date.ts +5 -5
  357. package/src/internal/{formats → Format}/format.test.ts +6 -6
  358. package/src/internal/{formats → Format}/format.ts +8 -6
  359. package/src/internal/{formats → Format}/number.ts +5 -5
  360. package/src/internal/{formats → Format}/object.ts +4 -4
  361. package/src/internal/{formats → Format}/select.ts +6 -4
  362. package/src/internal/{formats → Format}/string.ts +14 -9
  363. package/src/internal/{formats → Format}/types.ts +54 -43
  364. package/src/internal/{json → JsonSchema}/annotations.ts +3 -3
  365. package/src/internal/{json-schema → JsonSchema}/index.ts +2 -0
  366. package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +4 -2
  367. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +36 -36
  368. package/src/internal/{json → JsonSchema}/json-schema.test.ts +243 -108
  369. package/src/internal/{json → JsonSchema}/json-schema.ts +79 -93
  370. package/src/internal/Obj/clone.ts +48 -0
  371. package/src/internal/{object → Obj}/common.ts +3 -4
  372. package/src/internal/{object/create.test.ts → Obj/create-object.test.ts} +31 -33
  373. package/src/internal/{object/create.ts → Obj/create-object.ts} +36 -37
  374. package/src/internal/Obj/deleted.ts +19 -0
  375. package/src/internal/{object → Obj}/ids.ts +1 -1
  376. package/src/internal/Obj/index.ts +14 -0
  377. package/src/internal/{object → Obj}/inspect.ts +5 -7
  378. package/src/internal/Obj/json-serializer.test.ts +121 -0
  379. package/src/internal/{object → Obj}/json-serializer.ts +99 -109
  380. package/src/internal/{object → Obj}/schema-validator.test.ts +3 -7
  381. package/src/internal/Obj/schema-validator.ts +6 -0
  382. package/src/internal/Obj/set-value.test.ts +281 -0
  383. package/src/internal/Obj/set-value.ts +165 -0
  384. package/src/internal/Obj/snapshot.ts +105 -0
  385. package/src/internal/{object → Obj}/typed-object.test.ts +12 -12
  386. package/src/internal/Obj/typed-object.ts +30 -0
  387. package/src/internal/{ref → Ref}/ref-array.ts +4 -4
  388. package/src/internal/{ref → Ref}/ref.test.ts +11 -10
  389. package/src/internal/{ref → Ref}/ref.ts +108 -57
  390. package/src/internal/{projection → Type}/compose.test.ts +8 -9
  391. package/src/internal/{projection → Type}/compose.ts +14 -9
  392. package/src/internal/{schema → Type}/echo-schema.ts +74 -33
  393. package/src/internal/Type/index.ts +7 -0
  394. package/src/internal/{schema → Type}/manipulation.ts +7 -1
  395. package/src/internal/Type/persistent-schema.ts +33 -0
  396. package/src/internal/common/README.md +102 -0
  397. package/src/internal/common/api/index.ts +15 -0
  398. package/src/internal/common/api/meta.ts +88 -0
  399. package/src/internal/{testing → common}/index.ts +2 -1
  400. package/src/internal/common/proxy/change-context.ts +138 -0
  401. package/src/internal/common/proxy/change.test.ts +519 -0
  402. package/src/internal/common/proxy/define-hidden-property.ts +14 -0
  403. package/src/internal/common/proxy/errors.ts +42 -0
  404. package/src/internal/common/proxy/event-batch.ts +44 -0
  405. package/src/internal/common/proxy/handler.test.ts +123 -0
  406. package/src/internal/common/proxy/index.ts +17 -0
  407. package/src/internal/common/proxy/json-serializer.ts +90 -0
  408. package/src/internal/common/proxy/make-object.ts +106 -0
  409. package/src/internal/common/proxy/ownership.ts +253 -0
  410. package/src/internal/common/proxy/proxy-types.ts +23 -0
  411. package/src/internal/common/proxy/proxy-utils.ts +150 -0
  412. package/src/internal/common/proxy/reactive-array.ts +71 -0
  413. package/src/internal/common/proxy/reactive.ts +69 -0
  414. package/src/internal/{object → common/proxy}/schema-validator.ts +6 -3
  415. package/src/internal/{proxy → common/proxy}/schema.test.ts +31 -22
  416. package/src/internal/common/proxy/symbols.ts +7 -0
  417. package/src/internal/common/proxy/typed-handler.test.ts +314 -0
  418. package/src/internal/common/proxy/typed-handler.ts +449 -0
  419. package/src/internal/common/proxy/typed-object.test.ts +116 -0
  420. package/src/internal/common/types/base.ts +43 -0
  421. package/src/internal/common/types/entity.ts +54 -0
  422. package/src/internal/common/types/index.ts +10 -0
  423. package/src/internal/common/types/meta.ts +68 -0
  424. package/src/internal/common/types/model-symbols.ts +69 -0
  425. package/src/internal/common/types/typename.ts +55 -0
  426. package/src/internal/common/types/version.ts +19 -0
  427. package/src/internal/index.ts +11 -17
  428. package/src/testing/api.test.ts +126 -0
  429. package/src/testing/index.ts +3 -3
  430. package/src/testing/test-data.ts +130 -0
  431. package/src/testing/test-schema.ts +240 -0
  432. package/src/testing/util.ts +85 -0
  433. package/dist/lib/browser/chunk-MWLA34S5.mjs +0 -3843
  434. package/dist/lib/browser/chunk-MWLA34S5.mjs.map +0 -7
  435. package/dist/lib/browser/chunk-OAZJQHVO.mjs +0 -453
  436. package/dist/lib/browser/chunk-OAZJQHVO.mjs.map +0 -7
  437. package/dist/lib/browser/chunk-ORIE2FMS.mjs +0 -514
  438. package/dist/lib/browser/chunk-ORIE2FMS.mjs.map +0 -7
  439. package/dist/lib/browser/index.mjs +0 -43
  440. package/dist/lib/browser/internal/index.mjs +0 -326
  441. package/dist/lib/browser/meta.json +0 -1
  442. package/dist/lib/browser/query/index.mjs +0 -23
  443. package/dist/lib/browser/testing/index.mjs +0 -298
  444. package/dist/lib/browser/testing/index.mjs.map +0 -7
  445. package/dist/lib/node-esm/chunk-AXWVDOP7.mjs +0 -453
  446. package/dist/lib/node-esm/chunk-AXWVDOP7.mjs.map +0 -7
  447. package/dist/lib/node-esm/chunk-L4PBAJDP.mjs +0 -514
  448. package/dist/lib/node-esm/chunk-L4PBAJDP.mjs.map +0 -7
  449. package/dist/lib/node-esm/chunk-YTNLFBIK.mjs +0 -3843
  450. package/dist/lib/node-esm/chunk-YTNLFBIK.mjs.map +0 -7
  451. package/dist/lib/node-esm/index.mjs +0 -43
  452. package/dist/lib/node-esm/meta.json +0 -1
  453. package/dist/lib/node-esm/query/index.mjs +0 -23
  454. package/dist/lib/node-esm/testing/index.mjs +0 -298
  455. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  456. package/dist/types/src/errors.d.ts +0 -72
  457. package/dist/types/src/errors.d.ts.map +0 -1
  458. package/dist/types/src/internal/ast/annotation-helper.d.ts +0 -8
  459. package/dist/types/src/internal/ast/annotation-helper.d.ts.map +0 -1
  460. package/dist/types/src/internal/ast/annotations.d.ts +0 -119
  461. package/dist/types/src/internal/ast/annotations.d.ts.map +0 -1
  462. package/dist/types/src/internal/ast/annotations.test.d.ts.map +0 -1
  463. package/dist/types/src/internal/ast/entity-kind.d.ts +0 -10
  464. package/dist/types/src/internal/ast/entity-kind.d.ts.map +0 -1
  465. package/dist/types/src/internal/ast/index.d.ts +0 -5
  466. package/dist/types/src/internal/ast/index.d.ts.map +0 -1
  467. package/dist/types/src/internal/ast/types.d.ts +0 -6
  468. package/dist/types/src/internal/ast/types.d.ts.map +0 -1
  469. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  470. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  471. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  472. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  473. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  474. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  475. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  476. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  477. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  478. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  479. package/dist/types/src/internal/json/annotations.d.ts.map +0 -1
  480. package/dist/types/src/internal/json/effect-schema.test.d.ts.map +0 -1
  481. package/dist/types/src/internal/json/index.d.ts +0 -2
  482. package/dist/types/src/internal/json/index.d.ts.map +0 -1
  483. package/dist/types/src/internal/json/json-schema.d.ts.map +0 -1
  484. package/dist/types/src/internal/json/json-schema.test.d.ts.map +0 -1
  485. package/dist/types/src/internal/json-schema/index.d.ts +0 -3
  486. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  487. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  488. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  489. package/dist/types/src/internal/object/accessors.d.ts +0 -29
  490. package/dist/types/src/internal/object/accessors.d.ts.map +0 -1
  491. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  492. package/dist/types/src/internal/object/create.d.ts.map +0 -1
  493. package/dist/types/src/internal/object/create.test.d.ts +0 -2
  494. package/dist/types/src/internal/object/create.test.d.ts.map +0 -1
  495. package/dist/types/src/internal/object/deleted.d.ts +0 -6
  496. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  497. package/dist/types/src/internal/object/entity.d.ts +0 -22
  498. package/dist/types/src/internal/object/entity.d.ts.map +0 -1
  499. package/dist/types/src/internal/object/expando.d.ts +0 -14
  500. package/dist/types/src/internal/object/expando.d.ts.map +0 -1
  501. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  502. package/dist/types/src/internal/object/index.d.ts +0 -17
  503. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  504. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  505. package/dist/types/src/internal/object/json-serializer.d.ts +0 -32
  506. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  507. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  508. package/dist/types/src/internal/object/meta.d.ts.map +0 -1
  509. package/dist/types/src/internal/object/model.d.ts +0 -117
  510. package/dist/types/src/internal/object/model.d.ts.map +0 -1
  511. package/dist/types/src/internal/object/relation.d.ts +0 -17
  512. package/dist/types/src/internal/object/relation.d.ts.map +0 -1
  513. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  514. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  515. package/dist/types/src/internal/object/typed-object.d.ts +0 -31
  516. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  517. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  518. package/dist/types/src/internal/object/typed-relation.d.ts +0 -32
  519. package/dist/types/src/internal/object/typed-relation.d.ts.map +0 -1
  520. package/dist/types/src/internal/object/typename.d.ts +0 -15
  521. package/dist/types/src/internal/object/typename.d.ts.map +0 -1
  522. package/dist/types/src/internal/object/version.d.ts +0 -14
  523. package/dist/types/src/internal/object/version.d.ts.map +0 -1
  524. package/dist/types/src/internal/projection/compose.d.ts +0 -6
  525. package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
  526. package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
  527. package/dist/types/src/internal/projection/index.d.ts +0 -2
  528. package/dist/types/src/internal/projection/index.d.ts.map +0 -1
  529. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  530. package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
  531. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
  532. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  533. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  534. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  535. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  536. package/dist/types/src/internal/query/index.d.ts +0 -2
  537. package/dist/types/src/internal/query/index.d.ts.map +0 -1
  538. package/dist/types/src/internal/query/query.d.ts +0 -17
  539. package/dist/types/src/internal/query/query.d.ts.map +0 -1
  540. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  541. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  542. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  543. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  544. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  545. package/dist/types/src/internal/schema/index.d.ts +0 -7
  546. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  547. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  548. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +0 -18
  549. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
  550. package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
  551. package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
  552. package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
  553. package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
  554. package/dist/types/src/internal/testing/index.d.ts +0 -3
  555. package/dist/types/src/internal/testing/index.d.ts.map +0 -1
  556. package/dist/types/src/internal/testing/types.d.ts +0 -455
  557. package/dist/types/src/internal/testing/types.d.ts.map +0 -1
  558. package/dist/types/src/internal/testing/utils.d.ts +0 -10
  559. package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
  560. package/dist/types/src/internal/types/index.d.ts +0 -3
  561. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  562. package/dist/types/src/internal/types/types.d.ts +0 -79
  563. package/dist/types/src/internal/types/types.d.ts.map +0 -1
  564. package/dist/types/src/internal/types/types.test.d.ts +0 -2
  565. package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
  566. package/dist/types/src/internal/types/util.d.ts +0 -5
  567. package/dist/types/src/internal/types/util.d.ts.map +0 -1
  568. package/dist/types/src/query/index.d.ts +0 -3
  569. package/dist/types/src/query/index.d.ts.map +0 -1
  570. package/dist/types/src/query/query.d.ts +0 -247
  571. package/dist/types/src/query/query.d.ts.map +0 -1
  572. package/dist/types/src/query/query.test.d.ts +0 -2
  573. package/dist/types/src/query/query.test.d.ts.map +0 -1
  574. package/dist/types/src/query/tag.d.ts +0 -18
  575. package/dist/types/src/query/tag.d.ts.map +0 -1
  576. package/dist/types/src/testing/echo-schema.d.ts +0 -7
  577. package/dist/types/src/testing/echo-schema.d.ts.map +0 -1
  578. package/dist/types/src/testing/types.d.ts +0 -113
  579. package/dist/types/src/testing/types.d.ts.map +0 -1
  580. package/src/errors.ts +0 -18
  581. package/src/internal/ast/annotation-helper.ts +0 -22
  582. package/src/internal/ast/annotations.ts +0 -212
  583. package/src/internal/ast/entity-kind.ts +0 -15
  584. package/src/internal/ast/index.ts +0 -8
  585. package/src/internal/ast/types.ts +0 -17
  586. package/src/internal/json/index.ts +0 -5
  587. package/src/internal/object/accessors.ts +0 -115
  588. package/src/internal/object/deleted.ts +0 -19
  589. package/src/internal/object/entity.ts +0 -204
  590. package/src/internal/object/expando.ts +0 -21
  591. package/src/internal/object/index.ts +0 -20
  592. package/src/internal/object/json-serializer.test.ts +0 -99
  593. package/src/internal/object/meta.ts +0 -62
  594. package/src/internal/object/model.ts +0 -170
  595. package/src/internal/object/relation.ts +0 -24
  596. package/src/internal/object/typed-object.ts +0 -81
  597. package/src/internal/object/typed-relation.ts +0 -85
  598. package/src/internal/object/typename.ts +0 -61
  599. package/src/internal/object/version.ts +0 -22
  600. package/src/internal/projection/index.ts +0 -5
  601. package/src/internal/proxy/handler.test.ts +0 -163
  602. package/src/internal/proxy/reactive-object.ts +0 -108
  603. package/src/internal/proxy/typed-handler.test.ts +0 -102
  604. package/src/internal/proxy/typed-handler.ts +0 -228
  605. package/src/internal/proxy/typed-object.test.ts +0 -100
  606. package/src/internal/query/index.ts +0 -5
  607. package/src/internal/query/query.ts +0 -23
  608. package/src/internal/schema/index.ts +0 -10
  609. package/src/internal/schema/runtime-schema-registry.ts +0 -78
  610. package/src/internal/schema/snapshot.ts +0 -25
  611. package/src/internal/schema/stored-schema.ts +0 -26
  612. package/src/internal/testing/types.ts +0 -211
  613. package/src/internal/testing/utils.ts +0 -54
  614. package/src/internal/types/index.ts +0 -6
  615. package/src/internal/types/types.test.ts +0 -48
  616. package/src/internal/types/types.ts +0 -176
  617. package/src/internal/types/util.ts +0 -9
  618. package/src/query/index.ts +0 -6
  619. package/src/query/query.test.ts +0 -362
  620. package/src/query/query.ts +0 -784
  621. package/src/query/tag.ts +0 -35
  622. package/src/test/api.test.ts +0 -180
  623. package/src/testing/echo-schema.ts +0 -39
  624. package/src/testing/types.ts +0 -91
  625. /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
  626. /package/dist/lib/{browser/internal/index.mjs.map → neutral/Database.mjs.map} +0 -0
  627. /package/dist/lib/{browser/query/index.mjs.map → neutral/Entity.mjs.map} +0 -0
  628. /package/dist/lib/{node-esm/index.mjs.map → neutral/Err.mjs.map} +0 -0
  629. /package/dist/lib/{node-esm/internal/index.mjs.map → neutral/Feed.mjs.map} +0 -0
  630. /package/dist/lib/{node-esm/query/index.mjs.map → neutral/Filter.mjs.map} +0 -0
  631. /package/dist/types/src/internal/{ast → Annotation}/annotations.test.d.ts +0 -0
  632. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  633. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  634. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  635. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  636. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  637. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  638. /package/dist/types/src/internal/{json → JsonSchema}/effect-schema.test.d.ts +0 -0
  639. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  640. /package/dist/types/src/internal/{json → JsonSchema}/json-schema.test.d.ts +0 -0
  641. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  642. /package/dist/types/src/internal/{object → Obj}/ids.d.ts +0 -0
  643. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  644. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  645. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  646. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  647. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  648. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  649. /package/dist/types/src/internal/{projection → Type}/compose.test.d.ts +0 -0
  650. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  651. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  652. /package/dist/types/src/internal/{object → common/proxy}/schema-validator.d.ts +0 -0
  653. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  654. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  655. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  656. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
  657. /package/src/internal/{formats → Format}/index.ts +0 -0
  658. /package/src/internal/{json → JsonSchema}/effect-schema.test.ts +0 -0
  659. /package/src/internal/{ref → Ref}/index.ts +0 -0
@@ -1,108 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import type * as Schema from 'effect/Schema';
6
-
7
- import { ObjectId } from '@dxos/keys';
8
- import {
9
- type Live,
10
- UntypedReactiveHandler,
11
- createProxy,
12
- defineHiddenProperty,
13
- isValidProxyTarget,
14
- } from '@dxos/live-object';
15
-
16
- import { getTypeAnnotation } from '../ast';
17
- import { EntityKindId, Expando, MetaId, type ObjectMeta, ObjectMetaSchema, attachTypedJsonSerializer } from '../object';
18
- import type { BaseObject, CreationProps } from '../types';
19
-
20
- import { TypedReactiveHandler, prepareTypedTarget } from './typed-handler';
21
-
22
- /**
23
- * Creates a reactive object from a plain Javascript object.
24
- * Optionally provides a TS-effect schema.
25
- *
26
- * @depreacted Use `Obj.make`.
27
- */
28
- // TODO(dmaretskyi): Deep mutability.
29
- // TODO(dmaretskyi): Invert generics (generic over schema) to have better error messages.
30
- // TODO(dmaretskyi): Could mutate original object making it unusable.
31
- // TODO(burdon): Use Schema.make() to handle defaults?
32
- export const live: {
33
- <T extends BaseObject>(obj: T): Live<T>;
34
- <T extends BaseObject>(
35
- schema: Schema.Schema<T, any, never>,
36
- obj: NoInfer<CreationProps<T>>,
37
- meta?: ObjectMeta,
38
- ): Live<T>;
39
- } = <T extends BaseObject>(
40
- objOrSchema: Schema.Schema<T, any> | T,
41
- obj?: CreationProps<T>,
42
- meta?: ObjectMeta,
43
- ): Live<T> => {
44
- // TODO(dmaretskyi): Remove Expando special case.
45
- if (obj && (objOrSchema as any) !== Expando) {
46
- return createReactiveObject<T>({ ...obj } as T, meta, objOrSchema as Schema.Schema<T, any>);
47
- } else if (obj && (objOrSchema as any) === Expando) {
48
- return createReactiveObject<T>({ ...obj } as T, meta, undefined, { expando: true });
49
- } else {
50
- return createReactiveObject<T>(objOrSchema as T, meta);
51
- }
52
- };
53
-
54
- const createReactiveObject = <T extends BaseObject>(
55
- obj: T,
56
- meta?: ObjectMeta,
57
- schema?: Schema.Schema<T>,
58
- options?: { expando?: boolean },
59
- ): Live<T> => {
60
- if (!isValidProxyTarget(obj)) {
61
- throw new Error('Value cannot be made into a reactive object.');
62
- }
63
-
64
- if (schema) {
65
- const annotation = getTypeAnnotation(schema);
66
- const shouldGenerateId = options?.expando || !!annotation;
67
- if (shouldGenerateId) {
68
- setIdOnTarget(obj);
69
- }
70
- if (annotation) {
71
- defineHiddenProperty(obj, EntityKindId, annotation.kind);
72
- }
73
- initMeta(obj, meta);
74
- prepareTypedTarget(obj, schema);
75
- attachTypedJsonSerializer(obj);
76
- return createProxy<T>(obj, TypedReactiveHandler.instance);
77
- } else {
78
- if (options?.expando) {
79
- setIdOnTarget(obj);
80
- }
81
- initMeta(obj, meta);
82
- return createProxy<T>(obj, UntypedReactiveHandler.instance);
83
- }
84
- };
85
-
86
- /**
87
- * Set ID on ECHO object targets during creation.
88
- * Used for objects with schema and the ones explicitly marked as Expando.
89
- */
90
- const setIdOnTarget = (target: any) => {
91
- // invariant(!('id' in target), 'Object already has an `id` field, which is reserved.');
92
- if ('id' in target && target.id !== undefined && target.id !== null) {
93
- if (!ObjectId.isValid(target.id)) {
94
- throw new Error('Invalid object id format.');
95
- }
96
- } else {
97
- target.id = ObjectId.random();
98
- }
99
- };
100
-
101
- /**
102
- * Set metadata on object.
103
- */
104
- // TODO(dmaretskyi): Move to echo-schema.
105
- const initMeta = <T>(obj: T, meta: ObjectMeta = { keys: [] }) => {
106
- prepareTypedTarget(meta, ObjectMetaSchema);
107
- defineHiddenProperty(obj, MetaId, createProxy(meta, TypedReactiveHandler.instance as any));
108
- };
@@ -1,102 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import * as Schema from 'effect/Schema';
6
- import { describe, expect, test } from 'vitest';
7
-
8
- import { Ref, TypedObject, create, foreignKey, getMeta, getSchema, isInstanceOf } from '..';
9
- import { Testing } from '../testing';
10
-
11
- import { live } from './reactive-object';
12
-
13
- describe('complex schema validations', () => {
14
- const setValue = (target: any, prop: string, value: any) => {
15
- target[prop] = value;
16
- };
17
-
18
- test('any', () => {
19
- const schema = Schema.Struct({ field: Schema.Any });
20
- const object = live(schema, { field: { nested: { value: 100 } } });
21
- expect(() => setValue(object, 'field', { any: 'value' })).not.to.throw();
22
- });
23
-
24
- test('meta', () => {
25
- const source = 'test';
26
- const schema = Schema.Struct({ field: Schema.Number });
27
- const object = live(schema, { field: 42 }, { keys: [foreignKey(source, '123')] });
28
- expect(getMeta(object).keys).to.deep.eq([foreignKey(source, '123')]);
29
- });
30
-
31
- test('object', () => {
32
- const schema = Schema.Struct({ field: Schema.optional(Schema.Object) });
33
- const object = live(schema, { field: { nested: { value: 100 } } });
34
- expect(() => setValue(object, 'field', { any: 'value' })).not.to.throw();
35
- });
36
-
37
- test('references', () => {
38
- class Foo extends TypedObject({ typename: 'example.com/type/Foo', version: '0.1.0' })({ field: Schema.String }) {}
39
- class Bar extends TypedObject({ typename: 'example.com/type/Bar', version: '0.1.0' })({ fooRef: Ref(Foo) }) {}
40
- const field = 'hello';
41
- expect(() => live(Bar, { fooRef: { id: '1', field } as any })).to.throw();
42
- expect(() => live(Bar, { fooRef: undefined as any })).to.throw(); // Unresolved reference.
43
- const bar = live(Bar, { fooRef: Ref.make(live(Foo, { field })) });
44
- expect(bar.fooRef.target?.field).to.eq(field);
45
- });
46
-
47
- test('index signatures', () => {
48
- const schema = Schema.Struct({}, { key: Schema.String, value: Schema.Number });
49
- const object = live(schema, { unknownField: 1 });
50
- expect(() => setValue(object, 'field', '42')).to.throw();
51
- expect(() => setValue(object, 'unknown_field', 42)).not.to.throw();
52
- });
53
-
54
- test('suspend', () => {
55
- const schema = Schema.Struct({
56
- array: Schema.optional(Schema.suspend(() => Schema.Array(Schema.Union(Schema.Null, Schema.Number)))),
57
- object: Schema.optional(Schema.suspend(() => Schema.Union(Schema.Null, Schema.Struct({ field: Schema.Number })))),
58
- });
59
-
60
- const object = live(schema, { array: [1, 2, null], object: { field: 3 } });
61
- expect(() => setValue(object, 'object', { field: 4 })).not.to.throw();
62
- expect(() => setValue(object.object, 'field', 4)).not.to.throw();
63
- expect(() => setValue(object.array, '0', 4)).not.to.throw();
64
- expect(() => setValue(object.array, '0', '4')).to.throw();
65
- });
66
-
67
- test('nesting static objects with schema in the live object', () => {
68
- const contact1 = create(Testing.Contact, {
69
- name: 'Robert Smith',
70
- email: 'robert@example.com',
71
- } as any);
72
- const contact2 = create(Testing.Contact, {
73
- name: 'Katy Perry',
74
- email: 'katy@example.com',
75
- } as any);
76
-
77
- const contactBook = live({
78
- contacts: [contact1],
79
- });
80
-
81
- expect(isInstanceOf(Testing.Contact, contactBook.contacts[0])).to.eq(true);
82
- expect(getSchema(contactBook.contacts[0])).to.eq(Testing.Contact);
83
-
84
- contactBook.contacts.push(contact2);
85
- expect(isInstanceOf(Testing.Contact, contactBook.contacts[1])).to.eq(true);
86
- expect(getSchema(contactBook.contacts[1])).to.eq(Testing.Contact);
87
- });
88
-
89
- test('creating an object with data from another object', () => {
90
- const contact = live(Testing.Contact, {
91
- name: 'Robert Smith',
92
- email: 'robert@example.com',
93
- });
94
- const TestSchema = Schema.Struct({
95
- value: Schema.Unknown,
96
- });
97
- const data = live(TestSchema, {
98
- value: contact,
99
- });
100
- expect((data.value as any).name).to.eq('Robert Smith');
101
- });
102
- });
@@ -1,228 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { type InspectOptionsStylized } from 'node:util';
6
-
7
- import * as Schema from 'effect/Schema';
8
- import * as SchemaAST from 'effect/SchemaAST';
9
-
10
- import { inspectCustom } from '@dxos/debug';
11
- import { type GenericSignal, compositeRuntime } from '@dxos/echo-signals/runtime';
12
- import { invariant } from '@dxos/invariant';
13
- import {
14
- ReactiveArray,
15
- type ReactiveHandler,
16
- createProxy,
17
- defineHiddenProperty,
18
- isValidProxyTarget,
19
- objectData,
20
- symbolIsProxy,
21
- } from '@dxos/live-object';
22
-
23
- import { getSchemaDXN } from '../ast';
24
- import { DeletedId, SchemaId, SchemaValidator, TypeId } from '../object';
25
-
26
- const symbolSignal = Symbol('signal');
27
- const symbolPropertySignal = Symbol('property-signal');
28
-
29
- type ProxyTarget = {
30
- /**
31
- * Typename or type DXN.
32
- */
33
- [TypeId]: string;
34
-
35
- /**
36
- * Schema for the root.
37
- */
38
- [SchemaId]: Schema.Schema.AnyNoContext;
39
-
40
- /**
41
- * For get and set operations on value properties.
42
- */
43
- // TODO(dmaretskyi): Turn into a map of signals per-field.
44
- [symbolSignal]: GenericSignal;
45
-
46
- /**
47
- * For modifying the structure of the object.
48
- */
49
- [symbolPropertySignal]: GenericSignal;
50
- } & ({ [key: keyof any]: any } | any[]);
51
-
52
- /**
53
- * Typed in-memory reactive store (with Schema).
54
- */
55
- export class TypedReactiveHandler implements ReactiveHandler<ProxyTarget> {
56
- public static readonly instance: ReactiveHandler<any> = new TypedReactiveHandler();
57
-
58
- readonly _proxyMap = new WeakMap<object, any>();
59
-
60
- private constructor() {}
61
-
62
- init(target: ProxyTarget): void {
63
- invariant(typeof target === 'object' && target !== null);
64
- invariant(SchemaId in target, 'Schema is not defined for the target');
65
-
66
- if (!(symbolSignal in target)) {
67
- defineHiddenProperty(target, symbolSignal, compositeRuntime.createSignal());
68
- defineHiddenProperty(target, symbolPropertySignal, compositeRuntime.createSignal());
69
- }
70
-
71
- defineHiddenProperty(target, DeletedId, false);
72
-
73
- for (const key of Object.getOwnPropertyNames(target)) {
74
- const descriptor = Object.getOwnPropertyDescriptor(target, key)!;
75
- if (descriptor.get) {
76
- // Ignore getters.
77
- continue;
78
- }
79
-
80
- // Array reactivity is already handled by the schema validator.
81
- }
82
-
83
- // Maybe have been set by `create`.
84
- Object.defineProperty(target, inspectCustom, {
85
- enumerable: false,
86
- configurable: true,
87
- value: this._inspect.bind(target),
88
- });
89
- }
90
-
91
- get(target: ProxyTarget, prop: string | symbol, receiver: any): any {
92
- switch (prop) {
93
- case objectData: {
94
- target[symbolSignal].notifyRead();
95
- return toJSON(target);
96
- }
97
- }
98
-
99
- // Handle getter properties. Will not subscribe the value signal.
100
- if (Object.getOwnPropertyDescriptor(target, prop)?.get) {
101
- target[symbolPropertySignal].notifyRead();
102
-
103
- // TODO(dmaretskyi): Turn getters into computed fields.
104
- return Reflect.get(target, prop, receiver);
105
- }
106
-
107
- target[symbolSignal].notifyRead();
108
- target[symbolPropertySignal].notifyRead();
109
-
110
- const value = Reflect.get(target, prop, receiver);
111
- if (isValidProxyTarget(value)) {
112
- return createProxy(value, this);
113
- }
114
-
115
- return value;
116
- }
117
-
118
- set(target: ProxyTarget, prop: string | symbol, value: any, receiver: any): boolean {
119
- // Convert arrays to reactive arrays on write.
120
- if (Array.isArray(value)) {
121
- value = ReactiveArray.from(value);
122
- }
123
-
124
- let result: boolean = false;
125
- compositeRuntime.batch(() => {
126
- const validatedValue = this._validateValue(target, prop, value);
127
- result = Reflect.set(target, prop, validatedValue, receiver);
128
- target[symbolSignal].notifyWrite();
129
- });
130
- return result;
131
- }
132
-
133
- ownKeys(target: ProxyTarget): ArrayLike<string | symbol> {
134
- // Touch both signals since `set` and `delete` operations may create or remove properties.
135
- target[symbolSignal].notifyRead();
136
- target[symbolPropertySignal].notifyRead();
137
- return Reflect.ownKeys(target);
138
- }
139
-
140
- defineProperty(target: ProxyTarget, property: string | symbol, attributes: PropertyDescriptor): boolean {
141
- const validatedValue = this._validateValue(target, property, attributes.value);
142
- const result = Reflect.defineProperty(target, property, {
143
- ...attributes,
144
- value: validatedValue,
145
- });
146
- target[symbolPropertySignal].notifyWrite();
147
- return result;
148
- }
149
-
150
- private _validateValue(target: any, prop: string | symbol, value: any) {
151
- const schema = SchemaValidator.getTargetPropertySchema(target, prop);
152
- const _ = Schema.asserts(schema)(value);
153
- if (Array.isArray(value)) {
154
- value = new ReactiveArray(...value);
155
- }
156
- if (isValidProxyTarget(value)) {
157
- setSchemaProperties(value, schema);
158
- }
159
-
160
- return value;
161
- }
162
-
163
- private _inspect(
164
- _: number,
165
- options: InspectOptionsStylized,
166
- inspectFn: (value: any, options?: InspectOptionsStylized) => string,
167
- ): string {
168
- return `Typed ${inspectFn(this, {
169
- ...options,
170
- compact: true,
171
- showHidden: false,
172
- customInspect: false,
173
- })}`;
174
- }
175
- }
176
-
177
- /**
178
- * @deprecated Use `Obj.toJSON` instead.
179
- */
180
- const toJSON = (target: ProxyTarget): any => {
181
- return { '@type': 'TypedReactiveObject', ...target };
182
- };
183
-
184
- /**
185
- * Recursively set AST on all potential proxy targets.
186
- */
187
- const setSchemaProperties = (obj: any, schema: Schema.Schema.AnyNoContext) => {
188
- const schemaType = getSchemaDXN(schema);
189
- if (schemaType != null) {
190
- defineHiddenProperty(obj, TypeId, schemaType);
191
- }
192
-
193
- defineHiddenProperty(obj, SchemaId, schema);
194
- for (const key in obj) {
195
- if (isValidProxyTarget(obj[key])) {
196
- const elementSchema = SchemaValidator.getTargetPropertySchema(obj, key);
197
- if (elementSchema != null) {
198
- setSchemaProperties(obj[key], elementSchema);
199
- }
200
- }
201
- }
202
- };
203
-
204
- export const prepareTypedTarget = <T>(target: T, schema: Schema.Schema<T>) => {
205
- // log.info('prepareTypedTarget', { target, schema });
206
- if (!SchemaAST.isTypeLiteral(schema.ast)) {
207
- throw new Error('schema has to describe an object type');
208
- }
209
-
210
- SchemaValidator.validateSchema(schema);
211
- const _ = Schema.asserts(schema)(target);
212
- makeArraysReactive(target);
213
- setSchemaProperties(target, schema);
214
- };
215
-
216
- const makeArraysReactive = (target: any) => {
217
- for (const key in target) {
218
- if (target[symbolIsProxy]) {
219
- continue;
220
- }
221
- if (Array.isArray(target[key])) {
222
- target[key] = ReactiveArray.from(target[key]);
223
- }
224
- if (typeof target[key] === 'object') {
225
- makeArraysReactive(target[key]);
226
- }
227
- }
228
- };
@@ -1,100 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import * as Schema from 'effect/Schema';
6
- import { describe, expect, test } from 'vitest';
7
-
8
- import { EchoObject, TypedObject, getSchema } from '..';
9
-
10
- import { live } from './reactive-object';
11
-
12
- const Organization = Schema.Struct({
13
- name: Schema.String,
14
- }).pipe(
15
- EchoObject({
16
- typename: 'example.com/type/Organization',
17
- version: '0.1.0',
18
- }),
19
- );
20
-
21
- interface Organization extends Schema.Schema.Type<typeof Organization> {}
22
-
23
- const Contact = Schema.Struct(
24
- {
25
- name: Schema.String,
26
- },
27
- { key: Schema.String, value: Schema.Any },
28
- ).pipe(
29
- Schema.partial,
30
- EchoObject({
31
- typename: 'example.com/type/Contact',
32
- version: '0.1.0',
33
- }),
34
- );
35
-
36
- interface Contact extends Schema.Schema.Type<typeof Contact> {}
37
-
38
- const TEST_ORG: Omit<Organization, 'id'> = { name: 'Test' };
39
-
40
- describe('EchoObject class DSL', () => {
41
- test('can get object schema', async () => {
42
- const obj = live(Organization, TEST_ORG);
43
- expect(getSchema(obj)).to.deep.eq(Organization);
44
- });
45
-
46
- describe('class options', () => {
47
- test('can assign undefined to partial fields', async () => {
48
- const person = live(Contact, { name: 'John' });
49
- person.name = undefined;
50
- person.recordField = 'hello';
51
- expect(person.name).to.be.undefined;
52
- expect(person.recordField).to.eq('hello');
53
- });
54
- });
55
-
56
- test('record', () => {
57
- const schema = Schema.mutable(
58
- Schema.Struct({
59
- meta: Schema.optional(Schema.mutable(Schema.Any)),
60
- // NOTE: Schema.Record only supports shallow values.
61
- // https://www.npmjs.com/package/@effect/schema#mutable-records
62
- // meta: Schema.optional(Schema.mutable(Schema.Record({ key: Schema.String, value: Schema.Any }))),
63
- // meta: Schema.optional(Schema.mutable(Schema.object)),
64
- }),
65
- );
66
-
67
- {
68
- const object = live(schema, {});
69
- (object.meta ??= {}).test = 100;
70
- expect(object.meta.test).to.eq(100);
71
- }
72
-
73
- {
74
- const object = live(schema, {});
75
- object.meta = { test: { value: 300 } };
76
- expect(object.meta.test.value).to.eq(300);
77
- }
78
-
79
- {
80
- type Test1 = Schema.Schema.Type<typeof schema>;
81
-
82
- const object: Test1 = {};
83
- (object.meta ??= {}).test = 100;
84
- expect(object.meta.test).to.eq(100);
85
- }
86
-
87
- {
88
- class Test2 extends TypedObject({
89
- typename: 'dxos.org/type/FunctionTrigger',
90
- version: '0.1.0',
91
- })({
92
- meta: Schema.optional(Schema.mutable(Schema.Record({ key: Schema.String, value: Schema.Any }))),
93
- }) {}
94
-
95
- const object = live(Test2, {});
96
- (object.meta ??= {}).test = 100;
97
- expect(object.meta.test).to.eq(100);
98
- }
99
- });
100
- });
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './query';
@@ -1,23 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import * as Schema from 'effect/Schema';
6
-
7
- // TODO(wittjosiah): Remove. Use ordering in queries instead.
8
-
9
- /** @deprecated */
10
- const SortDirection = Schema.Union(Schema.Literal('asc'), Schema.Literal('desc'));
11
- /** @deprecated */
12
- export type SortDirectionType = Schema.Schema.Type<typeof SortDirection>;
13
-
14
- /** @deprecated */
15
- const FieldSort = Schema.Struct({
16
- fieldId: Schema.String,
17
- direction: SortDirection,
18
- }).pipe(Schema.mutable);
19
-
20
- /** @deprecated */
21
- export interface FieldSortType extends Schema.Schema.Type<typeof FieldSort> {}
22
- /** @deprecated */
23
- export const FieldSortType: Schema.Schema<FieldSortType> = FieldSort;
@@ -1,10 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- export * from './echo-schema';
6
- export * from './snapshot';
7
- export * from './stored-schema';
8
- export * from './runtime-schema-registry';
9
- export * from './manipulation';
10
- export * from './echo-schema';
@@ -1,78 +0,0 @@
1
- //
2
- // Copyright 2022 DXOS.org
3
- //
4
-
5
- import type * as Schema from 'effect/Schema';
6
-
7
- import { raise } from '@dxos/debug';
8
- import { invariant } from '@dxos/invariant';
9
- import { type DXN } from '@dxos/keys';
10
- import { defaultMap } from '@dxos/util';
11
-
12
- import { getSchemaTypename, getSchemaVersion } from '../ast';
13
-
14
- import { StoredSchema } from './stored-schema';
15
-
16
- /**
17
- * Runtime registry of static schema objects (i.e., not Dynamic .
18
- */
19
- // TODO(burdon): Reconcile with EchoSchemaRegistry.
20
- export class RuntimeSchemaRegistry {
21
- private readonly _registry = new Map<string, Schema.Schema.AnyNoContext[]>();
22
-
23
- constructor() {
24
- this._registry.set(StoredSchema.typename, [StoredSchema]);
25
- }
26
-
27
- get schemas(): Schema.Schema.AnyNoContext[] {
28
- return Array.from(this._registry.values()).flat();
29
- }
30
-
31
- hasSchema<S extends Schema.Schema.AnyNoContext>(schema: S): boolean {
32
- const typename = getSchemaTypename(schema);
33
- const version = getSchemaVersion(schema);
34
- invariant(typename, 'Invalid schema');
35
-
36
- const schemas = this._registry.get(typename);
37
- return schemas?.some((schema) => getSchemaVersion(schema) === version) ?? false;
38
- }
39
-
40
- getSchemaByDXN(dxn: DXN): Schema.Schema.AnyNoContext | undefined {
41
- const components = dxn.asTypeDXN();
42
- if (!components) {
43
- return undefined;
44
- }
45
-
46
- const { type, version } = components;
47
- const allSchemas = this._registry.get(type) ?? [];
48
- if (version) {
49
- return allSchemas.find((s) => getSchemaVersion(s) === version);
50
- } else {
51
- // If no version is specified, return the earliest version for backwards compatibility.
52
- // TODO(dmaretskyi): Probably not correct to compare lexicographically, but it's good enough for now.
53
- return allSchemas.sort((a, b) =>
54
- (getSchemaVersion(a) ?? '0.0.0').localeCompare(getSchemaVersion(b) ?? '0.0.0'),
55
- )[0];
56
- }
57
- }
58
-
59
- /**
60
- * @deprecated Use getSchemaByDXN.
61
- */
62
- getSchema(typename: string): Schema.Schema.AnyNoContext | undefined {
63
- return this._registry.get(typename)?.[0];
64
- }
65
-
66
- addSchema(types: Schema.Schema.AnyNoContext[]): void {
67
- types.forEach((schema) => {
68
- const typename = getSchemaTypename(schema) ?? raise(new TypeError('Schema has no typename'));
69
- const version = getSchemaVersion(schema) ?? raise(new TypeError('Schema has no version'));
70
- const versions = defaultMap(this._registry, typename, () => []);
71
- if (versions.some((schema) => getSchemaVersion(schema) === version)) {
72
- throw new Error(`Schema version already registered: ${typename}:${version}`);
73
- }
74
-
75
- versions.push(schema);
76
- });
77
- }
78
- }
@@ -1,25 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- /**
6
- * Returns a non-reactive snapshot of the given live object.
7
- * @deprecated Use `getSnapshot` from `@dxos/live-object` instead.
8
- */
9
- // TODO(wittjosiah): Types.
10
- export const getSnapshot = (object: any): any => {
11
- if (typeof object !== 'object') {
12
- return object;
13
- }
14
-
15
- if (Array.isArray(object)) {
16
- return object.map(getSnapshot);
17
- }
18
-
19
- const result: any = {};
20
- for (const key in object) {
21
- result[key] = getSnapshot(object[key]);
22
- }
23
-
24
- return result;
25
- };