@dxos/echo 0.8.4-main.406dc2a → 0.8.4-main.40e3dcdf1b

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 (655) 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 +286 -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 +419 -101
  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 -2
  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 +587 -268
  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/{query/tag.ts → Tag.ts} +13 -9
  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 +98 -94
  369. package/src/internal/{json → JsonSchema}/json-schema.ts +30 -15
  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 +1 -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-HKFCK2GL.mjs +0 -175
  434. package/dist/lib/browser/chunk-HKFCK2GL.mjs.map +0 -7
  435. package/dist/lib/browser/chunk-MAAYELT7.mjs +0 -830
  436. package/dist/lib/browser/chunk-MAAYELT7.mjs.map +0 -7
  437. package/dist/lib/browser/chunk-MB6MMNFP.mjs +0 -3857
  438. package/dist/lib/browser/chunk-MB6MMNFP.mjs.map +0 -7
  439. package/dist/lib/browser/index.mjs +0 -35
  440. package/dist/lib/browser/internal/index.mjs +0 -332
  441. package/dist/lib/browser/meta.json +0 -1
  442. package/dist/lib/browser/query/index.mjs +0 -15
  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-5NWDGIBT.mjs +0 -830
  446. package/dist/lib/node-esm/chunk-5NWDGIBT.mjs.map +0 -7
  447. package/dist/lib/node-esm/chunk-AUAH4E2J.mjs +0 -175
  448. package/dist/lib/node-esm/chunk-AUAH4E2J.mjs.map +0 -7
  449. package/dist/lib/node-esm/chunk-BQRA4VLX.mjs +0 -3857
  450. package/dist/lib/node-esm/chunk-BQRA4VLX.mjs.map +0 -7
  451. package/dist/lib/node-esm/index.mjs +0 -35
  452. package/dist/lib/node-esm/meta.json +0 -1
  453. package/dist/lib/node-esm/query/index.mjs +0 -15
  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 -125
  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 -37
  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 -33
  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 -16
  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/typename.d.ts +0 -15
  519. package/dist/types/src/internal/object/typename.d.ts.map +0 -1
  520. package/dist/types/src/internal/object/version.d.ts +0 -14
  521. package/dist/types/src/internal/object/version.d.ts.map +0 -1
  522. package/dist/types/src/internal/projection/compose.d.ts +0 -6
  523. package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
  524. package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
  525. package/dist/types/src/internal/projection/index.d.ts +0 -2
  526. package/dist/types/src/internal/projection/index.d.ts.map +0 -1
  527. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  528. package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
  529. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
  530. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  531. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  532. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  533. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  534. package/dist/types/src/internal/query/index.d.ts +0 -2
  535. package/dist/types/src/internal/query/index.d.ts.map +0 -1
  536. package/dist/types/src/internal/query/query.d.ts +0 -17
  537. package/dist/types/src/internal/query/query.d.ts.map +0 -1
  538. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  539. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  540. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  541. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  542. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  543. package/dist/types/src/internal/schema/index.d.ts +0 -7
  544. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  545. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  546. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +0 -18
  547. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
  548. package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
  549. package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
  550. package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
  551. package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
  552. package/dist/types/src/internal/testing/index.d.ts +0 -3
  553. package/dist/types/src/internal/testing/index.d.ts.map +0 -1
  554. package/dist/types/src/internal/testing/types.d.ts +0 -455
  555. package/dist/types/src/internal/testing/types.d.ts.map +0 -1
  556. package/dist/types/src/internal/testing/utils.d.ts +0 -10
  557. package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
  558. package/dist/types/src/internal/types/index.d.ts +0 -3
  559. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  560. package/dist/types/src/internal/types/types.d.ts +0 -79
  561. package/dist/types/src/internal/types/types.d.ts.map +0 -1
  562. package/dist/types/src/internal/types/types.test.d.ts +0 -2
  563. package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
  564. package/dist/types/src/internal/types/util.d.ts +0 -5
  565. package/dist/types/src/internal/types/util.d.ts.map +0 -1
  566. package/dist/types/src/query/index.d.ts +0 -3
  567. package/dist/types/src/query/index.d.ts.map +0 -1
  568. package/dist/types/src/query/query.d.ts +0 -248
  569. package/dist/types/src/query/query.d.ts.map +0 -1
  570. package/dist/types/src/query/query.test.d.ts +0 -2
  571. package/dist/types/src/query/query.test.d.ts.map +0 -1
  572. package/dist/types/src/query/tag.d.ts +0 -17
  573. package/dist/types/src/query/tag.d.ts.map +0 -1
  574. package/dist/types/src/testing/echo-schema.d.ts +0 -7
  575. package/dist/types/src/testing/echo-schema.d.ts.map +0 -1
  576. package/dist/types/src/testing/types.d.ts +0 -113
  577. package/dist/types/src/testing/types.d.ts.map +0 -1
  578. package/src/errors.ts +0 -18
  579. package/src/internal/ast/annotation-helper.ts +0 -22
  580. package/src/internal/ast/annotations.ts +0 -219
  581. package/src/internal/ast/entity-kind.ts +0 -15
  582. package/src/internal/ast/index.ts +0 -8
  583. package/src/internal/ast/types.ts +0 -17
  584. package/src/internal/json/index.ts +0 -5
  585. package/src/internal/object/accessors.ts +0 -153
  586. package/src/internal/object/deleted.ts +0 -19
  587. package/src/internal/object/entity.ts +0 -248
  588. package/src/internal/object/expando.ts +0 -21
  589. package/src/internal/object/index.ts +0 -19
  590. package/src/internal/object/json-serializer.test.ts +0 -99
  591. package/src/internal/object/meta.ts +0 -61
  592. package/src/internal/object/model.ts +0 -170
  593. package/src/internal/object/relation.ts +0 -24
  594. package/src/internal/object/typed-object.ts +0 -88
  595. package/src/internal/object/typename.ts +0 -61
  596. package/src/internal/object/version.ts +0 -22
  597. package/src/internal/projection/index.ts +0 -5
  598. package/src/internal/proxy/handler.test.ts +0 -163
  599. package/src/internal/proxy/reactive-object.ts +0 -108
  600. package/src/internal/proxy/typed-handler.test.ts +0 -102
  601. package/src/internal/proxy/typed-handler.ts +0 -228
  602. package/src/internal/proxy/typed-object.test.ts +0 -100
  603. package/src/internal/query/index.ts +0 -5
  604. package/src/internal/query/query.ts +0 -23
  605. package/src/internal/schema/index.ts +0 -10
  606. package/src/internal/schema/runtime-schema-registry.ts +0 -78
  607. package/src/internal/schema/snapshot.ts +0 -25
  608. package/src/internal/schema/stored-schema.ts +0 -26
  609. package/src/internal/testing/types.ts +0 -211
  610. package/src/internal/testing/utils.ts +0 -54
  611. package/src/internal/types/index.ts +0 -6
  612. package/src/internal/types/types.test.ts +0 -48
  613. package/src/internal/types/types.ts +0 -176
  614. package/src/internal/types/util.ts +0 -9
  615. package/src/query/index.ts +0 -6
  616. package/src/query/query.test.ts +0 -401
  617. package/src/query/query.ts +0 -789
  618. package/src/test/api.test.ts +0 -180
  619. package/src/testing/echo-schema.ts +0 -39
  620. package/src/testing/types.ts +0 -91
  621. /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
  622. /package/dist/lib/{browser/internal/index.mjs.map → neutral/Database.mjs.map} +0 -0
  623. /package/dist/lib/{browser/query/index.mjs.map → neutral/Entity.mjs.map} +0 -0
  624. /package/dist/lib/{node-esm/index.mjs.map → neutral/Err.mjs.map} +0 -0
  625. /package/dist/lib/{node-esm/internal/index.mjs.map → neutral/Feed.mjs.map} +0 -0
  626. /package/dist/lib/{node-esm/query/index.mjs.map → neutral/Filter.mjs.map} +0 -0
  627. /package/dist/types/src/internal/{ast → Annotation}/annotations.test.d.ts +0 -0
  628. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  629. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  630. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  631. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  632. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  633. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  634. /package/dist/types/src/internal/{json → JsonSchema}/effect-schema.test.d.ts +0 -0
  635. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  636. /package/dist/types/src/internal/{json → JsonSchema}/json-schema.test.d.ts +0 -0
  637. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  638. /package/dist/types/src/internal/{object → Obj}/ids.d.ts +0 -0
  639. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  640. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  641. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  642. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  643. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  644. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  645. /package/dist/types/src/internal/{projection → Type}/compose.test.d.ts +0 -0
  646. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  647. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  648. /package/dist/types/src/internal/{object → common/proxy}/schema-validator.d.ts +0 -0
  649. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  650. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  651. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  652. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
  653. /package/src/internal/{formats → Format}/index.ts +0 -0
  654. /package/src/internal/{json → JsonSchema}/effect-schema.test.ts +0 -0
  655. /package/src/internal/{ref → Ref}/index.ts +0 -0
@@ -11,22 +11,22 @@ import { type JsonProp, findAnnotation } from '@dxos/effect';
11
11
  import { ObjectId } from '@dxos/keys';
12
12
  import { log } from '@dxos/log';
13
13
 
14
- import { Type } from '../..';
14
+ import { TestSchema, prepareAstForCompare } from '../../testing';
15
+ import * as Type from '../../Type';
15
16
  import {
16
- EntityKind,
17
17
  FieldLookupAnnotationId,
18
18
  GeneratorAnnotation,
19
19
  LabelAnnotation,
20
20
  PropertyMeta,
21
21
  getTypeAnnotation,
22
22
  getTypeIdentifierAnnotation,
23
- } from '../ast';
24
- import { Email, FormatAnnotation, FormatEnum } from '../formats';
25
- import { JsonSchemaType, getNormalizedEchoAnnotations, getSchemaProperty, setSchemaProperty } from '../json-schema';
26
- import { EchoObject } from '../object';
27
- import { Ref, createSchemaReference, getReferenceAst, getSchemaReference } from '../ref';
28
- import { StoredSchema } from '../schema';
29
- import { Testing, prepareAstForCompare } from '../testing';
23
+ } from '../Annotation';
24
+ import { EchoObjectSchema } from '../Entity';
25
+ import { Email, FormatAnnotation, TypeFormat } from '../Format';
26
+ import { JsonSchemaType, getNormalizedEchoAnnotations, getSchemaProperty, setSchemaProperty } from '../JsonSchema';
27
+ import { Ref, createSchemaReference, getReferenceAst, getSchemaReference } from '../Ref';
28
+ import { PersistentSchema } from '../Type';
29
+ import { EntityKind } from '../common/types';
30
30
 
31
31
  import { toEffectSchema, toJsonSchema } from './json-schema';
32
32
 
@@ -35,13 +35,13 @@ const EXAMPLE_NAMESPACE = '@example';
35
35
  describe('effect-to-json', () => {
36
36
  test('type annotation', () => {
37
37
  const Test = Schema.Struct({ name: Schema.String }).pipe(
38
- Type.Obj({
39
- typename: 'example.com/type/Test',
38
+ Type.object({
39
+ typename: 'com.example.type.test',
40
40
  version: '0.1.0',
41
41
  }),
42
42
  );
43
43
  const jsonSchema = toJsonSchema(Test);
44
- expect((jsonSchema as any).$id).toEqual('dxn:type:example.com/type/Test');
44
+ expect((jsonSchema as any).$id).toEqual('dxn:type:com.example.type.test');
45
45
  expect((jsonSchema as any).version).toEqual('0.1.0');
46
46
  });
47
47
 
@@ -50,8 +50,8 @@ describe('effect-to-json', () => {
50
50
  const Test = Schema.Struct({
51
51
  name: Schema.String.pipe(PropertyMeta(EXAMPLE_NAMESPACE, meta)),
52
52
  }).pipe(
53
- Type.Obj({
54
- typename: 'example.com/type/Test',
53
+ Type.object({
54
+ typename: 'com.example.type.test',
55
55
  version: '0.1.0',
56
56
  }),
57
57
  );
@@ -63,16 +63,16 @@ describe('effect-to-json', () => {
63
63
  const Nested = Schema.Struct({
64
64
  name: Schema.String,
65
65
  }).pipe(
66
- Type.Obj({
67
- typename: 'example.com/type/TestNested',
66
+ Type.object({
67
+ typename: 'com.example.type.testNested',
68
68
  version: '0.1.0',
69
69
  }),
70
70
  );
71
71
  const Test = Schema.Struct({
72
72
  name: Ref(Nested),
73
73
  }).pipe(
74
- Type.Obj({
75
- typename: 'example.com/type/Test',
74
+ Type.object({
75
+ typename: 'com.example.type.test',
76
76
  version: '0.1.0',
77
77
  }),
78
78
  );
@@ -88,16 +88,16 @@ describe('effect-to-json', () => {
88
88
  const Nested = Schema.Struct({
89
89
  name: Schema.String,
90
90
  }).pipe(
91
- Type.Obj({
92
- typename: 'example.com/type/TestNested',
91
+ Type.object({
92
+ typename: 'com.example.type.testNested',
93
93
  version: '0.1.0',
94
94
  }),
95
95
  );
96
96
  const Test = Schema.Struct({
97
97
  name: Ref(Nested).annotations({ [FieldLookupAnnotationId]: 'name' }),
98
98
  }).pipe(
99
- Type.Obj({
100
- typename: 'example.com/type/Test',
99
+ Type.object({
100
+ typename: 'com.example.type.test',
101
101
  version: '0.1.0',
102
102
  }),
103
103
  );
@@ -112,16 +112,16 @@ describe('effect-to-json', () => {
112
112
  const Nested = Schema.Struct({
113
113
  name: Schema.String,
114
114
  }).pipe(
115
- Type.Obj({
116
- typename: 'example.com/type/TestNested',
115
+ Type.object({
116
+ typename: 'com.example.type.testNested',
117
117
  version: '0.1.0',
118
118
  }),
119
119
  );
120
120
  const Test = Schema.Struct({
121
121
  name: Schema.Array(Ref(Nested)),
122
122
  }).pipe(
123
- Type.Obj({
124
- typename: 'example.com/type/Test',
123
+ Type.object({
124
+ typename: 'com.example.type.test',
125
125
  version: '0.1.0',
126
126
  }),
127
127
  );
@@ -134,16 +134,16 @@ describe('effect-to-json', () => {
134
134
  const Nested = Schema.Struct({
135
135
  name: Schema.String,
136
136
  }).pipe(
137
- Type.Obj({
138
- typename: 'example.com/type/TestNested',
137
+ Type.object({
138
+ typename: 'com.example.type.testNested',
139
139
  version: '0.1.0',
140
140
  }),
141
141
  );
142
142
  const Test = Schema.Struct({
143
143
  name: Schema.optional(Ref(Nested)),
144
144
  }).pipe(
145
- Type.Obj({
146
- typename: 'example.com/type/Test',
145
+ Type.object({
146
+ typename: 'com.example.type.test',
147
147
  version: '0.1.0',
148
148
  }),
149
149
  );
@@ -159,24 +159,25 @@ describe('effect-to-json', () => {
159
159
  });
160
160
 
161
161
  test('annotations', () => {
162
- const TestSchema = Schema.Struct({
162
+ const TempSchema = Schema.Struct({
163
163
  name: Schema.String.annotations({ description: 'Person name', title: 'Name' }),
164
- email: Schema.String.pipe(FormatAnnotation.set(FormatEnum.Email)).annotations({
164
+ email: Schema.String.pipe(FormatAnnotation.set(TypeFormat.Email)).annotations({
165
165
  description: 'Email address',
166
166
  }),
167
167
  }).pipe(
168
- Type.Obj({
169
- typename: 'example.com/type/Contact',
168
+ Type.object({
169
+ typename: 'com.example.type.person',
170
170
  version: '0.1.0',
171
171
  }),
172
172
  );
173
- const jsonSchema = toJsonSchema(TestSchema);
173
+
174
+ const jsonSchema = toJsonSchema(TempSchema);
174
175
  expect(jsonSchema).to.deep.eq({
175
176
  $schema: 'http://json-schema.org/draft-07/schema#',
176
- $id: 'dxn:type:example.com/type/Contact',
177
+ $id: 'dxn:type:com.example.type.person',
177
178
 
178
179
  entityKind: EntityKind.Object,
179
- typename: 'example.com/type/Contact',
180
+ typename: 'com.example.type.person',
180
181
  version: '0.1.0',
181
182
 
182
183
  type: 'object',
@@ -197,15 +198,17 @@ describe('effect-to-json', () => {
197
198
  });
198
199
 
199
200
  test('handles suspend -- Contact schema serialization', () => {
200
- const schema = toJsonSchema(Testing.Contact);
201
+ const schema = toJsonSchema(TestSchema.Person);
201
202
  expect(Object.keys(schema.properties!)).toEqual([
202
203
  'id',
203
204
  'name',
204
205
  'username',
205
206
  'email',
206
- 'phoneNumbers',
207
+ 'age',
207
208
  'tasks',
209
+ 'employer',
208
210
  'address',
211
+ 'fields',
209
212
  ]);
210
213
  });
211
214
 
@@ -213,8 +216,8 @@ describe('effect-to-json', () => {
213
216
  const Organization = Schema.Struct({
214
217
  field: Schema.String,
215
218
  }).pipe(
216
- Type.Obj({
217
- typename: 'example.com/type/Organization',
219
+ Type.object({
220
+ typename: 'com.example.type.organization',
218
221
  version: '0.1.0',
219
222
  }),
220
223
  );
@@ -223,8 +226,8 @@ describe('effect-to-json', () => {
223
226
  name: Schema.String,
224
227
  organization: Ref(Organization).annotations({ description: 'Contact organization' }),
225
228
  }).pipe(
226
- Type.Obj({
227
- typename: 'example.com/type/Contact',
229
+ Type.object({
230
+ typename: 'com.example.type.person',
228
231
  version: '0.1.0',
229
232
  }),
230
233
  );
@@ -234,10 +237,10 @@ describe('effect-to-json', () => {
234
237
  const jsonSchema = toJsonSchema(Contact);
235
238
  expect(jsonSchema).toEqual({
236
239
  $schema: 'http://json-schema.org/draft-07/schema#',
237
- $id: 'dxn:type:example.com/type/Contact',
240
+ $id: 'dxn:type:com.example.type.person',
238
241
 
239
242
  entityKind: EntityKind.Object,
240
- typename: 'example.com/type/Contact',
243
+ typename: 'com.example.type.person',
241
244
  version: '0.1.0',
242
245
 
243
246
  type: 'object',
@@ -257,7 +260,7 @@ describe('effect-to-json', () => {
257
260
  $ref: '/schemas/echo/ref',
258
261
  reference: {
259
262
  schema: {
260
- $ref: 'dxn:type:example.com/type/Organization',
263
+ $ref: 'dxn:type:com.example.type.organization',
261
264
  },
262
265
  schemaVersion: '0.1.0',
263
266
  },
@@ -275,8 +278,8 @@ describe('effect-to-json', () => {
275
278
  const Organization = Schema.Struct({
276
279
  field: Schema.String,
277
280
  }).pipe(
278
- Type.Obj({
279
- typename: 'example.com/type/Organization',
281
+ Type.object({
282
+ typename: 'com.example.type.organization',
280
283
  version: '0.1.0',
281
284
  }),
282
285
  );
@@ -285,8 +288,8 @@ describe('effect-to-json', () => {
285
288
  name: Schema.String,
286
289
  organization: Ref(Organization).annotations({ description: 'Contact organization' }),
287
290
  }).pipe(
288
- Type.Obj({
289
- typename: 'example.com/type/Contact',
291
+ Type.object({
292
+ typename: 'com.example.type.person',
290
293
  version: '0.1.0',
291
294
  }),
292
295
  );
@@ -297,8 +300,8 @@ describe('effect-to-json', () => {
297
300
  expect(typename).to.eq(Organization.typename);
298
301
  });
299
302
 
300
- test('serialize circular schema (StoredSchema)', () => {
301
- const jsonSchema = toJsonSchema(StoredSchema);
303
+ test('serialize circular schema (PersistentSchema)', () => {
304
+ const jsonSchema = toJsonSchema(PersistentSchema);
302
305
  expect(Object.keys(jsonSchema.properties!).length).toBeGreaterThan(0);
303
306
 
304
307
  // TODO(dmaretskyi): Currently unable to deserialize.
@@ -321,7 +324,7 @@ describe('effect-to-json', () => {
321
324
 
322
325
  test('reference with title annotation', () => {
323
326
  const schema = Schema.Struct({
324
- contact: Ref(Testing.Contact).annotations({ title: 'Custom Title' }),
327
+ contact: Ref(TestSchema.Person).annotations({ title: 'Custom Title' }),
325
328
  });
326
329
 
327
330
  // log.info('schema before', { ast: schema.ast });
@@ -344,33 +347,36 @@ describe('effect-to-json', () => {
344
347
  });
345
348
 
346
349
  test('relation schema', () => {
347
- const schema = Testing.HasManager;
350
+ const schema = TestSchema.EmployedBy;
348
351
  const jsonSchema = toJsonSchema(schema);
349
352
  expect(jsonSchema).toEqual({
350
- $id: 'dxn:type:example.com/type/HasManager',
353
+ $id: 'dxn:type:com.example.type.employed-by',
351
354
  $schema: 'http://json-schema.org/draft-07/schema#',
352
355
  entityKind: 'relation',
353
- typename: 'example.com/type/HasManager',
356
+ typename: 'com.example.type.employed-by',
354
357
  version: '0.1.0',
355
358
  relationSource: {
356
359
  // TODO(dmaretskyi): Should those point to specific schema version?
357
- $ref: 'dxn:type:example.com/type/Contact',
360
+ $ref: 'dxn:type:com.example.type.person',
358
361
  },
359
362
  relationTarget: {
360
363
  // TODO(dmaretskyi): Should those point to specific schema version?
361
- $ref: 'dxn:type:example.com/type/Contact',
364
+ $ref: 'dxn:type:com.example.type.organization',
362
365
  },
363
366
  type: 'object',
364
367
  properties: {
365
368
  id: {
366
369
  type: 'string',
367
370
  },
371
+ role: {
372
+ type: 'string',
373
+ },
368
374
  since: {
369
375
  type: 'string',
370
376
  },
371
377
  },
372
- propertyOrder: ['since', 'id'],
373
- required: ['id'],
378
+ propertyOrder: ['role', 'since', 'id'],
379
+ required: ['role', 'id'],
374
380
  additionalProperties: false,
375
381
  });
376
382
  });
@@ -380,8 +386,8 @@ describe('effect-to-json', () => {
380
386
  id: ObjectId,
381
387
  name: Schema.String,
382
388
  }).pipe(
383
- EchoObject({
384
- typename: 'example.com/type/Organization',
389
+ EchoObjectSchema({
390
+ typename: 'com.example.type.organization',
385
391
  version: '0.1.0',
386
392
  }),
387
393
  LabelAnnotation.set(['name']),
@@ -389,9 +395,9 @@ describe('effect-to-json', () => {
389
395
 
390
396
  const jsonSchema = toJsonSchema(Organization);
391
397
  expect(jsonSchema).toEqual({
392
- $id: 'dxn:type:example.com/type/Organization',
398
+ $id: 'dxn:type:com.example.type.organization',
393
399
  $schema: 'http://json-schema.org/draft-07/schema#',
394
- typename: 'example.com/type/Organization',
400
+ typename: 'com.example.type.organization',
395
401
  version: '0.1.0',
396
402
  entityKind: 'object',
397
403
  type: 'object',
@@ -462,7 +468,7 @@ describe('effect-to-json', () => {
462
468
  const expectReferenceAnnotation = (object: JsonSchemaType) => {
463
469
  expect(object.reference).to.deep.eq({
464
470
  schema: {
465
- $ref: 'dxn:type:example.com/type/TestNested',
471
+ $ref: 'dxn:type:com.example.type.testNested',
466
472
  },
467
473
  schemaVersion: '0.1.0',
468
474
  });
@@ -490,8 +496,8 @@ describe('json-to-effect', () => {
490
496
  const Organization = Schema.Struct({
491
497
  field: Schema.String,
492
498
  }).pipe(
493
- Type.Obj({
494
- typename: 'example.com/type/Organization',
499
+ Type.object({
500
+ typename: 'com.example.type.organization',
495
501
  version: '0.1.0',
496
502
  }),
497
503
  );
@@ -506,13 +512,13 @@ describe('json-to-effect', () => {
506
512
  object: Schema.Struct({ id: Schema.String, field: Ref(Organization) }),
507
513
  echoObject: Ref(Organization),
508
514
  echoObjectArray: Schema.Array(Ref(Organization)),
509
- email: Schema.String.pipe(FormatAnnotation.set(FormatEnum.Email)),
515
+ email: Schema.String.pipe(FormatAnnotation.set(TypeFormat.Email)),
510
516
  null: Schema.Null,
511
517
  } as const;
512
518
 
513
519
  const Test = (partial ? Schema.partial(Schema.Struct(fields)) : Schema.Struct(fields)).pipe(
514
- Type.Obj({
515
- typename: 'example.com/type/Test',
520
+ Type.object({
521
+ typename: 'com.example.type.test',
516
522
  version: '0.1.0',
517
523
  }),
518
524
  );
@@ -539,13 +545,13 @@ describe('json-to-effect', () => {
539
545
 
540
546
  test('legacy schema with dxn:type $id gets decoded', () => {
541
547
  const jsonSchema: JsonSchemaType = {
542
- $id: 'dxn:type:example.com/type/Project',
548
+ $id: 'dxn:type:com.example.type.project',
543
549
  $schema: 'http://json-schema.org/draft-07/schema#',
544
550
  additionalProperties: false,
545
551
  echo: {
546
552
  type: {
547
553
  schemaId: '01JERV1HQCQZDQ4NVCJ42QB38F',
548
- typename: 'example.com/type/Project',
554
+ typename: 'com.example.type.project',
549
555
  version: '0.1.0',
550
556
  },
551
557
  },
@@ -571,15 +577,15 @@ describe('json-to-effect', () => {
571
577
  const schema = toEffectSchema(jsonSchema);
572
578
  expect(getTypeAnnotation(schema)).to.deep.eq({
573
579
  kind: EntityKind.Object,
574
- typename: 'example.com/type/Project',
580
+ typename: 'com.example.type.project',
575
581
  version: '0.1.0',
576
582
  });
577
583
  expect(getTypeIdentifierAnnotation(schema)).to.deep.eq('dxn:echo:@:01JERV1HQCQZDQ4NVCJ42QB38F');
578
584
  });
579
585
 
580
586
  test('symbol annotations get compared', () => {
581
- const schema1 = Schema.String.pipe(FormatAnnotation.set(FormatEnum.Email));
582
- const schema2 = Schema.String.pipe(FormatAnnotation.set(FormatEnum.Currency));
587
+ const schema1 = Schema.String.pipe(FormatAnnotation.set(TypeFormat.Email));
588
+ const schema2 = Schema.String.pipe(FormatAnnotation.set(TypeFormat.Currency));
583
589
  expect(prepareAstForCompare(schema1.ast)).not.to.deep.eq(prepareAstForCompare(schema2.ast));
584
590
  });
585
591
 
@@ -594,7 +600,7 @@ describe('json-to-effect', () => {
594
600
  });
595
601
 
596
602
  test('relation schema roundtrip', () => {
597
- const schema = Testing.HasManager;
603
+ const schema = TestSchema.HasManager;
598
604
  const jsonSchema = toJsonSchema(schema);
599
605
  const effectSchema = toEffectSchema(jsonSchema);
600
606
  expect(prepareAstForCompare(effectSchema.ast)).to.deep.eq(prepareAstForCompare(schema.ast));
@@ -697,10 +703,8 @@ describe('json-to-effect', () => {
697
703
  });
698
704
 
699
705
  test('schema with optional referece', () => {
700
- const TestSchema = Schema.Struct({
701
- contact: Schema.optional(Ref(Testing.Contact)),
702
- });
703
- const jsonSchema = toJsonSchema(TestSchema);
706
+ const TempSchema = Schema.Struct({ contact: Schema.optional(Ref(TestSchema.Person)) });
707
+ const jsonSchema = toJsonSchema(TempSchema);
704
708
  expect(jsonSchema).toMatchInlineSnapshot(`
705
709
  {
706
710
  "$schema": "http://json-schema.org/draft-07/schema#",
@@ -711,7 +715,7 @@ describe('json-to-effect', () => {
711
715
  "$ref": "/schemas/echo/ref",
712
716
  "reference": {
713
717
  "schema": {
714
- "$ref": "dxn:type:example.com/type/Contact",
718
+ "$ref": "dxn:type:com.example.type.person",
715
719
  },
716
720
  "schemaVersion": "0.1.0",
717
721
  },
@@ -726,13 +730,13 @@ describe('json-to-effect', () => {
726
730
  `);
727
731
 
728
732
  const effectSchema = toEffectSchema(jsonSchema);
729
- expect(prepareAstForCompare(effectSchema.ast)).to.deep.eq(prepareAstForCompare(TestSchema.ast));
733
+ expect(prepareAstForCompare(effectSchema.ast)).to.deep.eq(prepareAstForCompare(TempSchema.ast));
730
734
  });
731
735
 
732
736
  test('object nested inside another struct', () => {
733
737
  const Contact = Schema.Struct({
734
738
  name: Schema.String,
735
- }).pipe(EchoObject({ typename: 'example.com/type/Contact', version: '0.1.0' }));
739
+ }).pipe(EchoObjectSchema({ typename: 'com.example.type.person', version: '0.1.0' }));
736
740
  const input = Schema.Struct({
737
741
  contact: Contact,
738
742
  });
@@ -743,7 +747,7 @@ describe('json-to-effect', () => {
743
747
  "additionalProperties": false,
744
748
  "properties": {
745
749
  "contact": {
746
- "$id": "dxn:type:example.com/type/Contact",
750
+ "$id": "dxn:type:com.example.type.person",
747
751
  "additionalProperties": false,
748
752
  "entityKind": "object",
749
753
  "properties": {
@@ -763,7 +767,7 @@ describe('json-to-effect', () => {
763
767
  "id",
764
768
  ],
765
769
  "type": "object",
766
- "typename": "example.com/type/Contact",
770
+ "typename": "com.example.type.person",
767
771
  "version": "0.1.0",
768
772
  },
769
773
  },
@@ -784,7 +788,7 @@ describe('json-to-effect', () => {
784
788
 
785
789
  describe('reference', () => {
786
790
  test('reference annotation', () => {
787
- const schema = Ref(Testing.Contact);
791
+ const schema = Ref(TestSchema.Person);
788
792
  const jsonSchema = toJsonSchema(schema);
789
793
  expect(jsonSchema).toEqual({
790
794
  $id: '/schemas/echo/ref',
@@ -792,7 +796,7 @@ describe('reference', () => {
792
796
  $schema: 'http://json-schema.org/draft-07/schema#',
793
797
  reference: {
794
798
  schema: {
795
- $ref: 'dxn:type:example.com/type/Contact',
799
+ $ref: 'dxn:type:com.example.type.person',
796
800
  },
797
801
  schemaVersion: '0.1.0',
798
802
  },
@@ -800,7 +804,7 @@ describe('reference', () => {
800
804
  });
801
805
 
802
806
  test('title annotation', () => {
803
- const schema = Ref(Testing.Contact).annotations({ title: 'My custom title' });
807
+ const schema = Ref(TestSchema.Person).annotations({ title: 'My custom title' });
804
808
  const jsonSchema = toJsonSchema(schema);
805
809
  expect(jsonSchema).toEqual({
806
810
  $schema: 'http://json-schema.org/draft-07/schema#',
@@ -810,7 +814,7 @@ describe('reference', () => {
810
814
  $ref: '/schemas/echo/ref',
811
815
  reference: {
812
816
  schema: {
813
- $ref: 'dxn:type:example.com/type/Contact',
817
+ $ref: 'dxn:type:com.example.type.person',
814
818
  },
815
819
  schemaVersion: '0.1.0',
816
820
  },
@@ -821,7 +825,7 @@ describe('reference', () => {
821
825
  });
822
826
 
823
827
  test('description annotation', () => {
824
- const schema = Ref(Testing.Contact).annotations({ description: 'My custom description' });
828
+ const schema = Ref(TestSchema.Person).annotations({ description: 'My custom description' });
825
829
  const jsonSchema = toJsonSchema(schema);
826
830
  expect(jsonSchema).toEqual({
827
831
  $schema: 'http://json-schema.org/draft-07/schema#',
@@ -831,7 +835,7 @@ describe('reference', () => {
831
835
  $ref: '/schemas/echo/ref',
832
836
  reference: {
833
837
  schema: {
834
- $ref: 'dxn:type:example.com/type/Contact',
838
+ $ref: 'dxn:type:com.example.type.person',
835
839
  },
836
840
  schemaVersion: '0.1.0',
837
841
  },
@@ -845,13 +849,13 @@ describe('reference', () => {
845
849
  });
846
850
 
847
851
  test('serialize and deserialize', () => {
848
- const schema = Ref(Testing.Contact);
852
+ const schema = Ref(TestSchema.Person);
849
853
  const jsonSchema = toJsonSchema(schema);
850
854
  const deserializedSchema = toEffectSchema(jsonSchema);
851
855
  const refAst = getReferenceAst(deserializedSchema.ast);
852
856
  expect(refAst).toEqual({
853
- typename: Testing.Contact.typename,
854
- version: Testing.Contact.version,
857
+ typename: TestSchema.Person.typename,
858
+ version: TestSchema.Person.version,
855
859
  });
856
860
  });
857
861
  });
@@ -17,19 +17,23 @@ import { DXN, ObjectId } from '@dxos/keys';
17
17
  import { log } from '@dxos/log';
18
18
  import { clearUndefined, orderKeys, removeProperties } from '@dxos/util';
19
19
 
20
- import { type TypeAnnotation, TypeAnnotationId, TypeIdentifierAnnotationId } from '../ast';
21
- import { EntityKind, EntityKindSchema } from '../ast';
20
+ import {
21
+ type TypeAnnotation,
22
+ TypeAnnotationId,
23
+ TypeIdentifierAnnotationId,
24
+ makeTypeJsonSchemaAnnotation,
25
+ } from '../Annotation';
26
+ import { type JsonSchemaReferenceInfo, createEchoReferenceSchema } from '../Ref';
27
+ import { ANY_OBJECT_TYPENAME, ANY_OBJECT_VERSION, EntityKind, EntityKindSchema } from '../common/types';
28
+
29
+ import { CustomAnnotations, DecodedAnnotations, EchoAnnotations } from './annotations';
22
30
  import {
23
31
  ECHO_ANNOTATIONS_NS_DEPRECATED_KEY,
24
32
  ECHO_ANNOTATIONS_NS_KEY,
25
33
  type JsonSchemaEchoAnnotations,
26
34
  type JsonSchemaType,
27
35
  getNormalizedEchoAnnotations,
28
- } from '../json-schema';
29
- import { Expando, makeTypeJsonSchemaAnnotation } from '../object';
30
- import { type JsonSchemaReferenceInfo, Ref, createEchoReferenceSchema } from '../ref';
31
-
32
- import { CustomAnnotations, DecodedAnnotations, EchoAnnotations } from './annotations';
36
+ } from './json-schema-type';
33
37
 
34
38
  // TODO(burdon): Are these values stored (can they be changed?)
35
39
  export enum PropType {
@@ -71,9 +75,16 @@ export type JsonSchemaOptions = {
71
75
 
72
76
  /**
73
77
  * Convert effect schema to JSON Schema.
78
+ * NOTE: This handles custom annotations.
74
79
  * @param schema
75
80
  */
76
- export const toJsonSchema = (schema: Schema.Schema.All, options: JsonSchemaOptions = {}): JsonSchemaType => {
81
+ // TODO(burdon): Reconcile with possibly extending @effect/Schema/JSONSchema
82
+ // We add additional propertyOrder (but the object properties ARE ordered); and type "string" for literals.
83
+ // TODO(wittjosiah): This is mutable because its a pojo, perhaps should be left as readonly at type level though?
84
+ export const toJsonSchema = (
85
+ schema: Schema.Schema.All,
86
+ options: JsonSchemaOptions = {},
87
+ ): Types.DeepMutable<JsonSchemaType> => {
77
88
  assertArgument(Schema.isSchema(schema), 'schema');
78
89
  let jsonSchema = _toJsonSchemaAST(schema.ast);
79
90
  if (options.strict) {
@@ -96,11 +107,11 @@ export const toJsonSchema = (schema: Schema.Schema.All, options: JsonSchemaOptio
96
107
  return jsonSchema;
97
108
  };
98
109
 
99
- const _toJsonSchemaAST = (ast: SchemaAST.AST): JsonSchemaType => {
110
+ const _toJsonSchemaAST = (ast: SchemaAST.AST): Types.DeepMutable<JsonSchemaType> => {
100
111
  const withRefinements = withEchoRefinements(ast, '#');
101
112
  const jsonSchema = JSONSchema.fromAST(withRefinements, {
102
113
  definitions: {},
103
- }) as JsonSchemaType;
114
+ }) as Types.DeepMutable<JsonSchemaType>;
104
115
 
105
116
  return normalizeJsonSchema(jsonSchema);
106
117
  };
@@ -319,7 +330,7 @@ const objectToEffectSchema = (root: JsonSchemaType, defs: JsonSchemaType['$defs'
319
330
  }
320
331
 
321
332
  if (immutableIdField) {
322
- schema = Schema.extend(Schema.mutable(schema), Schema.Struct({ id: immutableIdField }));
333
+ schema = Schema.extend(schema, Schema.Struct({ id: immutableIdField }));
323
334
  }
324
335
 
325
336
  const annotations = jsonSchemaFieldsToAnnotations(root);
@@ -344,8 +355,10 @@ const anyToEffectSchema = (root: JSONSchema.JsonSchema7Any): Schema.Schema.AnyNo
344
355
  // TODO(dmaretskyi): Types.
345
356
  const refToEffectSchema = (root: any): Schema.Schema.AnyNoContext => {
346
357
  if (!('reference' in root)) {
347
- return Ref(Expando);
358
+ // Fallback to generic object ref when no reference info is provided.
359
+ return createEchoReferenceSchema(undefined, ANY_OBJECT_TYPENAME, ANY_OBJECT_VERSION);
348
360
  }
361
+
349
362
  const reference: JsonSchemaReferenceInfo = root.reference;
350
363
  if (typeof reference !== 'object') {
351
364
  throw new Error('Invalid reference field in ref schema');
@@ -368,7 +381,7 @@ const refToEffectSchema = (root: any): Schema.Schema.AnyNoContext => {
368
381
  const annotations_toJsonSchemaFields = (annotations: SchemaAST.Annotations): Record<symbol, any> => {
369
382
  const schemaFields: Record<string, any> = {};
370
383
 
371
- const echoAnnotations: JsonSchemaEchoAnnotations = {};
384
+ const echoAnnotations: Types.Mutable<JsonSchemaEchoAnnotations> = {};
372
385
  for (const [key, annotationId] of Object.entries(EchoAnnotations)) {
373
386
  if (annotations[annotationId] != null) {
374
387
  echoAnnotations[key as keyof JsonSchemaEchoAnnotations] = annotations[annotationId] as any;
@@ -452,11 +465,13 @@ const jsonSchemaFieldsToAnnotations = (schema: JsonSchemaType): SchemaAST.Annota
452
465
  }
453
466
  }
454
467
 
455
- annotations[TypeIdentifierAnnotationId] = decodeTypeIdentifierAnnotation(schema);
468
+ const typeIdentifier = decodeTypeIdentifierAnnotation(schema);
469
+ annotations[TypeIdentifierAnnotationId] = typeIdentifier;
456
470
  const typeAnnotation = decodeTypeAnnotation(schema);
457
471
  if (typeAnnotation) {
458
472
  annotations[TypeAnnotationId] = typeAnnotation;
459
473
  annotations[SchemaAST.JSONSchemaAnnotationId] = makeTypeJsonSchemaAnnotation({
474
+ identifier: typeIdentifier,
460
475
  kind: typeAnnotation.kind,
461
476
  typename: typeAnnotation.typename,
462
477
  version: typeAnnotation.version,
@@ -486,7 +501,7 @@ const addJsonSchemaFields = (ast: SchemaAST.AST, schema: JsonSchemaType): Schema
486
501
  * Fixes field order.
487
502
  * Sets `$schema` prop.
488
503
  */
489
- const normalizeJsonSchema = (jsonSchema: JsonSchemaType): JsonSchemaType => {
504
+ const normalizeJsonSchema = (jsonSchema: Types.DeepMutable<JsonSchemaType>): Types.DeepMutable<JsonSchemaType> => {
490
505
  if (jsonSchema.properties && 'id' in jsonSchema.properties) {
491
506
  jsonSchema.properties = orderKeys(jsonSchema.properties, ['id']); // Put id first.
492
507
  }