@dxos/echo 0.8.4-main.72ec0f3 → 0.8.4-main.7996785055

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 (667) 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/Extension.mjs +18 -0
  7. package/dist/lib/neutral/Feed.mjs +45 -0
  8. package/dist/lib/neutral/Filter.mjs +68 -0
  9. package/dist/lib/neutral/Filter.mjs.map +7 -0
  10. package/dist/lib/neutral/Format.mjs +66 -0
  11. package/dist/lib/neutral/Format.mjs.map +7 -0
  12. package/dist/lib/neutral/JsonSchema.mjs +19 -0
  13. package/dist/lib/neutral/JsonSchema.mjs.map +7 -0
  14. package/dist/lib/neutral/Key.mjs +12 -0
  15. package/dist/lib/neutral/Key.mjs.map +7 -0
  16. package/dist/lib/neutral/Obj.mjs +110 -0
  17. package/dist/lib/neutral/Obj.mjs.map +7 -0
  18. package/dist/lib/neutral/Order.mjs +12 -0
  19. package/dist/lib/neutral/Order.mjs.map +7 -0
  20. package/dist/lib/neutral/Query.mjs +36 -0
  21. package/dist/lib/neutral/Query.mjs.map +7 -0
  22. package/dist/lib/neutral/QueryResult.mjs +2 -0
  23. package/dist/lib/neutral/QueryResult.mjs.map +7 -0
  24. package/dist/lib/neutral/Ref.mjs +24 -0
  25. package/dist/lib/neutral/Ref.mjs.map +7 -0
  26. package/dist/lib/neutral/Relation.mjs +93 -0
  27. package/dist/lib/neutral/Relation.mjs.map +7 -0
  28. package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
  29. package/dist/lib/neutral/SchemaRegistry.mjs.map +7 -0
  30. package/dist/lib/neutral/Tag.mjs +28 -0
  31. package/dist/lib/neutral/Tag.mjs.map +7 -0
  32. package/dist/lib/neutral/Type.mjs +37 -0
  33. package/dist/lib/neutral/Type.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-35O3JYTV.mjs +45 -0
  35. package/dist/lib/neutral/chunk-35O3JYTV.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-4BT7QVIT.mjs +34 -0
  37. package/dist/lib/neutral/chunk-4BT7QVIT.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-4O4AV6CL.mjs +787 -0
  39. package/dist/lib/neutral/chunk-4O4AV6CL.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-ANHVGJI4.mjs +21 -0
  41. package/dist/lib/neutral/chunk-ANHVGJI4.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-B5OXLWZL.mjs +402 -0
  43. package/dist/lib/neutral/chunk-B5OXLWZL.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-B7HTUIZA.mjs +45 -0
  45. package/dist/lib/neutral/chunk-B7HTUIZA.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-BNCCGLJN.mjs +7 -0
  47. package/dist/lib/neutral/chunk-BNCCGLJN.mjs.map +7 -0
  48. package/dist/lib/neutral/chunk-EIX4KLES.mjs +27 -0
  49. package/dist/lib/neutral/chunk-EIX4KLES.mjs.map +7 -0
  50. package/dist/lib/neutral/chunk-FLSFS6UB.mjs +117 -0
  51. package/dist/lib/neutral/chunk-FLSFS6UB.mjs.map +7 -0
  52. package/dist/lib/neutral/chunk-FXQ52LDX.mjs +298 -0
  53. package/dist/lib/neutral/chunk-FXQ52LDX.mjs.map +7 -0
  54. package/dist/lib/neutral/chunk-FZO7LQO7.mjs +73 -0
  55. package/dist/lib/neutral/chunk-FZO7LQO7.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-HIMJ3MXL.mjs +283 -0
  57. package/dist/lib/neutral/chunk-HIMJ3MXL.mjs.map +7 -0
  58. package/dist/lib/neutral/chunk-HITCYIP2.mjs +329 -0
  59. package/dist/lib/neutral/chunk-HITCYIP2.mjs.map +7 -0
  60. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  61. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  62. package/dist/lib/neutral/chunk-JJTRVYRD.mjs +2712 -0
  63. package/dist/lib/neutral/chunk-JJTRVYRD.mjs.map +7 -0
  64. package/dist/lib/neutral/chunk-JX5K6AY3.mjs +121 -0
  65. package/dist/lib/neutral/chunk-JX5K6AY3.mjs.map +7 -0
  66. package/dist/lib/neutral/chunk-OMUPQMLR.mjs +7 -0
  67. package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +7 -0
  68. package/dist/lib/neutral/chunk-PRQVBGFG.mjs +56 -0
  69. package/dist/lib/neutral/chunk-PRQVBGFG.mjs.map +7 -0
  70. package/dist/lib/neutral/chunk-RUYH5REG.mjs +130 -0
  71. package/dist/lib/neutral/chunk-RUYH5REG.mjs.map +7 -0
  72. package/dist/lib/neutral/chunk-T74ABBRN.mjs +313 -0
  73. package/dist/lib/neutral/chunk-T74ABBRN.mjs.map +7 -0
  74. package/dist/lib/neutral/chunk-TJRQTGXR.mjs +97 -0
  75. package/dist/lib/neutral/chunk-TJRQTGXR.mjs.map +7 -0
  76. package/dist/lib/neutral/chunk-UBEZSGXY.mjs +51 -0
  77. package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +7 -0
  78. package/dist/lib/neutral/chunk-UI6MWK5W.mjs +42 -0
  79. package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +7 -0
  80. package/dist/lib/neutral/chunk-VF2IHN6I.mjs +396 -0
  81. package/dist/lib/neutral/chunk-VF2IHN6I.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-XEBKJROJ.mjs +361 -0
  85. package/dist/lib/neutral/chunk-XEBKJROJ.mjs.map +7 -0
  86. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs +50 -0
  87. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs.map +7 -0
  88. package/dist/lib/neutral/chunk-ZZEIMPNC.mjs +159 -0
  89. package/dist/lib/neutral/chunk-ZZEIMPNC.mjs.map +7 -0
  90. package/dist/lib/neutral/index.mjs +101 -0
  91. package/dist/lib/neutral/index.mjs.map +7 -0
  92. package/dist/lib/{node-esm → neutral}/internal/index.mjs +286 -152
  93. package/dist/lib/neutral/internal/index.mjs.map +7 -0
  94. package/dist/lib/neutral/meta.json +1 -0
  95. package/dist/lib/neutral/testing/index.mjs +374 -0
  96. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  97. package/dist/types/src/Annotation.d.ts +24 -0
  98. package/dist/types/src/Annotation.d.ts.map +1 -0
  99. package/dist/types/src/Collection.d.ts +16 -0
  100. package/dist/types/src/Collection.d.ts.map +1 -0
  101. package/dist/types/src/Database.d.ts +189 -0
  102. package/dist/types/src/Database.d.ts.map +1 -0
  103. package/dist/types/src/Dataset.d.ts +19 -0
  104. package/dist/types/src/Dataset.d.ts.map +1 -0
  105. package/dist/types/src/Entity.d.ts +168 -0
  106. package/dist/types/src/Entity.d.ts.map +1 -0
  107. package/dist/types/src/Entity.test.d.ts +2 -0
  108. package/dist/types/src/Entity.test.d.ts.map +1 -0
  109. package/dist/types/src/Err.d.ts +107 -0
  110. package/dist/types/src/Err.d.ts.map +1 -0
  111. package/dist/types/src/Extension.d.ts +80 -0
  112. package/dist/types/src/Extension.d.ts.map +1 -0
  113. package/dist/types/src/Extension.test.d.ts +2 -0
  114. package/dist/types/src/Extension.test.d.ts.map +1 -0
  115. package/dist/types/src/Feed.d.ts +163 -0
  116. package/dist/types/src/Feed.d.ts.map +1 -0
  117. package/dist/types/src/Filter.d.ts +132 -0
  118. package/dist/types/src/Filter.d.ts.map +1 -0
  119. package/dist/types/src/Filter.test.d.ts +2 -0
  120. package/dist/types/src/Filter.test.d.ts.map +1 -0
  121. package/dist/types/src/Format.d.ts +4 -0
  122. package/dist/types/src/Format.d.ts.map +1 -0
  123. package/dist/types/src/Hypergraph.d.ts +65 -0
  124. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  125. package/dist/types/src/JsonSchema.d.ts +16 -0
  126. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  127. package/dist/types/src/Key.d.ts +1 -0
  128. package/dist/types/src/Key.d.ts.map +1 -1
  129. package/dist/types/src/Obj.d.ts +419 -103
  130. package/dist/types/src/Obj.d.ts.map +1 -1
  131. package/dist/types/src/Obj.test.d.ts +2 -0
  132. package/dist/types/src/Obj.test.d.ts.map +1 -0
  133. package/dist/types/src/Order.d.ts +16 -0
  134. package/dist/types/src/Order.d.ts.map +1 -0
  135. package/dist/types/src/Query.d.ts +202 -0
  136. package/dist/types/src/Query.d.ts.map +1 -0
  137. package/dist/types/src/Query.test.d.ts +2 -0
  138. package/dist/types/src/Query.test.d.ts.map +1 -0
  139. package/dist/types/src/QueryResult.d.ts +80 -0
  140. package/dist/types/src/QueryResult.d.ts.map +1 -0
  141. package/dist/types/src/Ref.d.ts +61 -11
  142. package/dist/types/src/Ref.d.ts.map +1 -1
  143. package/dist/types/src/Relation.d.ts +288 -21
  144. package/dist/types/src/Relation.d.ts.map +1 -1
  145. package/dist/types/src/Relation.test.d.ts +2 -0
  146. package/dist/types/src/Relation.test.d.ts.map +1 -0
  147. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  148. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  149. package/dist/types/src/Tag.d.ts +8 -7
  150. package/dist/types/src/Tag.d.ts.map +1 -1
  151. package/dist/types/src/Type.d.ts +123 -99
  152. package/dist/types/src/Type.d.ts.map +1 -1
  153. package/dist/types/src/Type.test.d.ts +2 -0
  154. package/dist/types/src/Type.test.d.ts.map +1 -0
  155. package/dist/types/src/View.d.ts +68 -0
  156. package/dist/types/src/View.d.ts.map +1 -0
  157. package/dist/types/src/hierarchy.test.d.ts +2 -0
  158. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  159. package/dist/types/src/index.d.ts +19 -5
  160. package/dist/types/src/index.d.ts.map +1 -1
  161. package/dist/types/src/internal/Annotation/annotations.d.ts +231 -0
  162. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  163. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  164. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  165. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  166. package/dist/types/src/internal/Annotation/sorting.d.ts +24 -0
  167. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  168. package/dist/types/src/internal/Annotation/util.d.ts +39 -0
  169. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  170. package/dist/types/src/internal/Entity/api.d.ts +13 -0
  171. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  172. package/dist/types/src/internal/Entity/entity.d.ts +20 -0
  173. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  174. package/dist/types/src/internal/Entity/index.d.ts +8 -0
  175. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  176. package/dist/types/src/internal/Entity/model.d.ts +55 -0
  177. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  178. package/dist/types/src/internal/Entity/object.d.ts +18 -0
  179. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  180. package/dist/types/src/internal/Entity/relation.d.ts +35 -0
  181. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  182. package/dist/types/src/internal/Entity/util.d.ts +2 -0
  183. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  184. package/dist/types/src/internal/Entity/version.d.ts +42 -0
  185. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  186. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  187. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  188. package/dist/types/src/internal/{formats → Format}/format.d.ts +4 -2
  189. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  190. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  191. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  192. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  193. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  194. package/dist/types/src/internal/{formats → Format}/select.d.ts +6 -4
  195. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  196. package/dist/types/src/internal/{formats → Format}/string.d.ts +4 -0
  197. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  198. package/dist/types/src/internal/{formats → Format}/types.d.ts +14 -10
  199. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  200. package/dist/types/src/internal/{json → JsonSchema}/annotations.d.ts +1 -1
  201. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  202. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  203. package/dist/types/src/internal/JsonSchema/index.d.ts +5 -0
  204. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  205. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  206. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +131 -30
  207. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  208. package/dist/types/src/internal/{json → JsonSchema}/json-schema.d.ts +4 -2
  209. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  210. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  211. package/dist/types/src/internal/Obj/clone.d.ts +8 -0
  212. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  213. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  214. package/dist/types/src/internal/{object/create.d.ts → Obj/create-object.d.ts} +10 -11
  215. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  216. package/dist/types/src/internal/Obj/create-object.test.d.ts +2 -0
  217. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  218. package/dist/types/src/internal/Obj/deleted.d.ts +6 -0
  219. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  220. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  221. package/dist/types/src/internal/Obj/index.d.ts +11 -0
  222. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  223. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  224. package/dist/types/src/internal/Obj/json-serializer.d.ts +44 -0
  225. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  226. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  227. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  228. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  229. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  230. package/dist/types/src/internal/Obj/set-value.d.ts +7 -0
  231. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  232. package/dist/types/src/internal/Obj/set-value.test.d.ts +2 -0
  233. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  234. package/dist/types/src/internal/Obj/snapshot.d.ts +6 -0
  235. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  236. package/dist/types/src/internal/Obj/typed-object.d.ts +25 -0
  237. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  238. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  239. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  240. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +4 -4
  241. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  242. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +44 -19
  243. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  244. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  245. package/dist/types/src/internal/Type/compose.d.ts +7 -0
  246. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  247. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  248. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +27 -14
  249. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  250. package/dist/types/src/internal/Type/index.d.ts +4 -0
  251. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  252. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  253. package/dist/types/src/internal/Type/persistent-schema.d.ts +20 -0
  254. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  255. package/dist/types/src/internal/common/api/index.d.ts +11 -0
  256. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  257. package/dist/types/src/internal/common/api/meta.d.ts +42 -0
  258. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  259. package/dist/types/src/internal/common/index.d.ts +4 -0
  260. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  261. package/dist/types/src/internal/common/proxy/change-context.d.ts +55 -0
  262. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  263. package/dist/types/src/internal/common/proxy/change.test.d.ts +2 -0
  264. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  265. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts +5 -0
  266. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  267. package/dist/types/src/internal/common/proxy/errors.d.ts +19 -0
  268. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  269. package/dist/types/src/internal/common/proxy/event-batch.d.ts +10 -0
  270. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  271. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  272. package/dist/types/src/internal/common/proxy/index.d.ts +14 -0
  273. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  274. package/dist/types/src/internal/common/proxy/json-serializer.d.ts +6 -0
  275. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  276. package/dist/types/src/internal/common/proxy/make-object.d.ts +14 -0
  277. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  278. package/dist/types/src/internal/common/proxy/ownership.d.ts +57 -0
  279. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  280. package/dist/types/src/internal/common/proxy/proxy-types.d.ts +18 -0
  281. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  282. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts +47 -0
  283. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  284. package/dist/types/src/internal/common/proxy/reactive-array.d.ts +8 -0
  285. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  286. package/dist/types/src/internal/common/proxy/reactive.d.ts +39 -0
  287. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
  288. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  289. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  290. package/dist/types/src/internal/common/proxy/symbols.d.ts +3 -0
  291. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  292. package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +16 -12
  293. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  294. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  295. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  296. package/dist/types/src/internal/common/types/base.d.ts +27 -0
  297. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  298. package/dist/types/src/internal/common/types/entity.d.ts +37 -0
  299. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  300. package/dist/types/src/internal/common/types/index.d.ts +7 -0
  301. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  302. package/dist/types/src/internal/{object → common/types}/meta.d.ts +18 -16
  303. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  304. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  305. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  306. package/dist/types/src/internal/common/types/typename.d.ts +21 -0
  307. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  308. package/dist/types/src/internal/common/types/version.d.ts +15 -0
  309. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  310. package/dist/types/src/internal/index.d.ts +9 -14
  311. package/dist/types/src/internal/index.d.ts.map +1 -1
  312. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  313. package/dist/types/src/testing/index.d.ts +3 -3
  314. package/dist/types/src/testing/index.d.ts.map +1 -1
  315. package/dist/types/src/testing/test-data.d.ts +18 -0
  316. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  317. package/dist/types/src/testing/test-schema.d.ts +304 -0
  318. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  319. package/dist/types/src/testing/util.d.ts +21 -0
  320. package/dist/types/src/testing/util.d.ts.map +1 -0
  321. package/dist/types/tsconfig.tsbuildinfo +1 -1
  322. package/package.json +111 -65
  323. package/src/Annotation.ts +48 -0
  324. package/src/Collection.ts +37 -0
  325. package/src/Database.ts +317 -0
  326. package/src/Dataset.ts +26 -0
  327. package/src/Entity.test.ts +22 -0
  328. package/src/Entity.ts +236 -0
  329. package/src/Err.ts +40 -0
  330. package/src/Extension.test.ts +235 -0
  331. package/src/Extension.ts +122 -0
  332. package/src/Feed.ts +267 -0
  333. package/src/Filter.test.ts +90 -0
  334. package/src/Filter.ts +419 -0
  335. package/src/Format.ts +9 -0
  336. package/src/Hypergraph.ts +79 -0
  337. package/src/JsonSchema.ts +26 -0
  338. package/src/Key.ts +3 -0
  339. package/src/Obj.test.ts +447 -0
  340. package/src/Obj.ts +586 -286
  341. package/src/Order.ts +46 -0
  342. package/src/Query.test.ts +640 -0
  343. package/src/Query.ts +522 -0
  344. package/src/QueryResult.ts +106 -0
  345. package/src/Ref.ts +79 -9
  346. package/src/Relation.test.ts +88 -0
  347. package/src/Relation.ts +443 -58
  348. package/src/SchemaRegistry.ts +106 -0
  349. package/src/Tag.ts +7 -5
  350. package/src/Type.test.ts +52 -0
  351. package/src/Type.ts +167 -153
  352. package/src/View.ts +107 -0
  353. package/src/hierarchy.test.ts +33 -0
  354. package/src/index.ts +20 -6
  355. package/src/internal/Annotation/annotations.test.ts +146 -0
  356. package/src/internal/Annotation/annotations.ts +578 -0
  357. package/src/internal/Annotation/index.ts +7 -0
  358. package/src/internal/Annotation/sorting.ts +52 -0
  359. package/src/internal/Annotation/util.ts +85 -0
  360. package/src/internal/Entity/api.ts +31 -0
  361. package/src/internal/Entity/entity.ts +128 -0
  362. package/src/internal/Entity/index.ts +11 -0
  363. package/src/internal/Entity/model.ts +109 -0
  364. package/src/internal/Entity/object.ts +58 -0
  365. package/src/internal/Entity/relation.ts +154 -0
  366. package/src/internal/Entity/util.ts +33 -0
  367. package/src/internal/Entity/version.ts +97 -0
  368. package/src/internal/{formats → Format}/date.test.ts +1 -1
  369. package/src/internal/{formats → Format}/date.ts +5 -5
  370. package/src/internal/{formats → Format}/format.test.ts +6 -6
  371. package/src/internal/{formats → Format}/format.ts +8 -6
  372. package/src/internal/{formats → Format}/number.ts +5 -5
  373. package/src/internal/{formats → Format}/object.ts +4 -4
  374. package/src/internal/{formats → Format}/select.ts +6 -4
  375. package/src/internal/{formats → Format}/string.ts +14 -9
  376. package/src/internal/{formats → Format}/types.ts +54 -43
  377. package/src/internal/{json → JsonSchema}/annotations.ts +3 -3
  378. package/src/internal/{json-schema → JsonSchema}/index.ts +2 -0
  379. package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +4 -2
  380. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +36 -36
  381. package/src/internal/{json → JsonSchema}/json-schema.test.ts +106 -94
  382. package/src/internal/{json → JsonSchema}/json-schema.ts +30 -15
  383. package/src/internal/Obj/clone.ts +48 -0
  384. package/src/internal/{object → Obj}/common.ts +3 -4
  385. package/src/internal/{object/create.test.ts → Obj/create-object.test.ts} +31 -33
  386. package/src/internal/{object/create.ts → Obj/create-object.ts} +36 -37
  387. package/src/internal/Obj/deleted.ts +19 -0
  388. package/src/internal/{object → Obj}/ids.ts +1 -1
  389. package/src/internal/Obj/index.ts +14 -0
  390. package/src/internal/{object → Obj}/inspect.ts +5 -7
  391. package/src/internal/Obj/json-serializer.test.ts +121 -0
  392. package/src/internal/{object → Obj}/json-serializer.ts +99 -109
  393. package/src/internal/{object → Obj}/schema-validator.test.ts +3 -7
  394. package/src/internal/Obj/schema-validator.ts +6 -0
  395. package/src/internal/Obj/set-value.test.ts +281 -0
  396. package/src/internal/Obj/set-value.ts +165 -0
  397. package/src/internal/Obj/snapshot.ts +105 -0
  398. package/src/internal/{object → Obj}/typed-object.test.ts +12 -12
  399. package/src/internal/Obj/typed-object.ts +30 -0
  400. package/src/internal/{ref → Ref}/ref-array.ts +4 -4
  401. package/src/internal/{ref → Ref}/ref.test.ts +11 -10
  402. package/src/internal/{ref → Ref}/ref.ts +108 -57
  403. package/src/internal/{projection → Type}/compose.test.ts +8 -9
  404. package/src/internal/{projection → Type}/compose.ts +14 -9
  405. package/src/internal/{schema → Type}/echo-schema.ts +74 -33
  406. package/src/internal/Type/index.ts +7 -0
  407. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  408. package/src/internal/Type/persistent-schema.ts +33 -0
  409. package/src/internal/common/README.md +102 -0
  410. package/src/internal/common/api/index.ts +15 -0
  411. package/src/internal/common/api/meta.ts +88 -0
  412. package/src/internal/{testing → common}/index.ts +2 -1
  413. package/src/internal/common/proxy/change-context.ts +138 -0
  414. package/src/internal/common/proxy/change.test.ts +519 -0
  415. package/src/internal/common/proxy/define-hidden-property.ts +14 -0
  416. package/src/internal/common/proxy/errors.ts +42 -0
  417. package/src/internal/common/proxy/event-batch.ts +44 -0
  418. package/src/internal/common/proxy/handler.test.ts +123 -0
  419. package/src/internal/common/proxy/index.ts +17 -0
  420. package/src/internal/common/proxy/json-serializer.ts +90 -0
  421. package/src/internal/common/proxy/make-object.ts +106 -0
  422. package/src/internal/common/proxy/ownership.ts +253 -0
  423. package/src/internal/common/proxy/proxy-types.ts +23 -0
  424. package/src/internal/common/proxy/proxy-utils.ts +150 -0
  425. package/src/internal/common/proxy/reactive-array.ts +71 -0
  426. package/src/internal/common/proxy/reactive.ts +69 -0
  427. package/src/internal/{object → common/proxy}/schema-validator.ts +6 -3
  428. package/src/internal/{proxy → common/proxy}/schema.test.ts +31 -22
  429. package/src/internal/common/proxy/symbols.ts +7 -0
  430. package/src/internal/common/proxy/typed-handler.test.ts +314 -0
  431. package/src/internal/common/proxy/typed-handler.ts +449 -0
  432. package/src/internal/common/proxy/typed-object.test.ts +116 -0
  433. package/src/internal/common/types/base.ts +43 -0
  434. package/src/internal/common/types/entity.ts +54 -0
  435. package/src/internal/common/types/index.ts +10 -0
  436. package/src/internal/common/types/meta.ts +68 -0
  437. package/src/internal/common/types/model-symbols.ts +69 -0
  438. package/src/internal/common/types/typename.ts +55 -0
  439. package/src/internal/common/types/version.ts +19 -0
  440. package/src/internal/index.ts +11 -17
  441. package/src/testing/api.test.ts +126 -0
  442. package/src/testing/index.ts +3 -3
  443. package/src/testing/test-data.ts +130 -0
  444. package/src/testing/test-schema.ts +240 -0
  445. package/src/testing/util.ts +85 -0
  446. package/dist/lib/browser/chunk-BIDAASFK.mjs +0 -3727
  447. package/dist/lib/browser/chunk-BIDAASFK.mjs.map +0 -7
  448. package/dist/lib/browser/chunk-ZDLCWGEW.mjs +0 -410
  449. package/dist/lib/browser/chunk-ZDLCWGEW.mjs.map +0 -7
  450. package/dist/lib/browser/chunk-ZFRJKT4A.mjs +0 -585
  451. package/dist/lib/browser/chunk-ZFRJKT4A.mjs.map +0 -7
  452. package/dist/lib/browser/index.mjs +0 -35
  453. package/dist/lib/browser/internal/index.mjs +0 -336
  454. package/dist/lib/browser/meta.json +0 -1
  455. package/dist/lib/browser/query/index.mjs +0 -13
  456. package/dist/lib/browser/testing/index.mjs +0 -267
  457. package/dist/lib/browser/testing/index.mjs.map +0 -7
  458. package/dist/lib/node-esm/chunk-3SVRRCUU.mjs +0 -3727
  459. package/dist/lib/node-esm/chunk-3SVRRCUU.mjs.map +0 -7
  460. package/dist/lib/node-esm/chunk-CGDHRZWH.mjs +0 -585
  461. package/dist/lib/node-esm/chunk-CGDHRZWH.mjs.map +0 -7
  462. package/dist/lib/node-esm/chunk-HWS6VBQC.mjs +0 -410
  463. package/dist/lib/node-esm/chunk-HWS6VBQC.mjs.map +0 -7
  464. package/dist/lib/node-esm/index.mjs +0 -35
  465. package/dist/lib/node-esm/meta.json +0 -1
  466. package/dist/lib/node-esm/query/index.mjs +0 -13
  467. package/dist/lib/node-esm/testing/index.mjs +0 -267
  468. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  469. package/dist/types/src/errors.d.ts +0 -68
  470. package/dist/types/src/errors.d.ts.map +0 -1
  471. package/dist/types/src/internal/ast/annotation-helper.d.ts +0 -8
  472. package/dist/types/src/internal/ast/annotation-helper.d.ts.map +0 -1
  473. package/dist/types/src/internal/ast/annotations.d.ts +0 -131
  474. package/dist/types/src/internal/ast/annotations.d.ts.map +0 -1
  475. package/dist/types/src/internal/ast/annotations.test.d.ts.map +0 -1
  476. package/dist/types/src/internal/ast/entity-kind.d.ts +0 -10
  477. package/dist/types/src/internal/ast/entity-kind.d.ts.map +0 -1
  478. package/dist/types/src/internal/ast/index.d.ts +0 -5
  479. package/dist/types/src/internal/ast/index.d.ts.map +0 -1
  480. package/dist/types/src/internal/ast/types.d.ts +0 -6
  481. package/dist/types/src/internal/ast/types.d.ts.map +0 -1
  482. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  483. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  484. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  485. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  486. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  487. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  488. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  489. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  490. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  491. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  492. package/dist/types/src/internal/json/annotations.d.ts.map +0 -1
  493. package/dist/types/src/internal/json/effect-schema.test.d.ts.map +0 -1
  494. package/dist/types/src/internal/json/index.d.ts +0 -2
  495. package/dist/types/src/internal/json/index.d.ts.map +0 -1
  496. package/dist/types/src/internal/json/json-schema.d.ts.map +0 -1
  497. package/dist/types/src/internal/json/json-schema.test.d.ts.map +0 -1
  498. package/dist/types/src/internal/json-schema/index.d.ts +0 -3
  499. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  500. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  501. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  502. package/dist/types/src/internal/object/accessors.d.ts +0 -37
  503. package/dist/types/src/internal/object/accessors.d.ts.map +0 -1
  504. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  505. package/dist/types/src/internal/object/create.d.ts.map +0 -1
  506. package/dist/types/src/internal/object/create.test.d.ts +0 -2
  507. package/dist/types/src/internal/object/create.test.d.ts.map +0 -1
  508. package/dist/types/src/internal/object/deleted.d.ts +0 -6
  509. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  510. package/dist/types/src/internal/object/entity.d.ts +0 -33
  511. package/dist/types/src/internal/object/entity.d.ts.map +0 -1
  512. package/dist/types/src/internal/object/expando.d.ts +0 -14
  513. package/dist/types/src/internal/object/expando.d.ts.map +0 -1
  514. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  515. package/dist/types/src/internal/object/index.d.ts +0 -16
  516. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  517. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  518. package/dist/types/src/internal/object/json-serializer.d.ts +0 -32
  519. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  520. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  521. package/dist/types/src/internal/object/meta.d.ts.map +0 -1
  522. package/dist/types/src/internal/object/model.d.ts +0 -117
  523. package/dist/types/src/internal/object/model.d.ts.map +0 -1
  524. package/dist/types/src/internal/object/relation.d.ts +0 -17
  525. package/dist/types/src/internal/object/relation.d.ts.map +0 -1
  526. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  527. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  528. package/dist/types/src/internal/object/typed-object.d.ts +0 -31
  529. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  530. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  531. package/dist/types/src/internal/object/typename.d.ts +0 -15
  532. package/dist/types/src/internal/object/typename.d.ts.map +0 -1
  533. package/dist/types/src/internal/object/version.d.ts +0 -14
  534. package/dist/types/src/internal/object/version.d.ts.map +0 -1
  535. package/dist/types/src/internal/projection/compose.d.ts +0 -6
  536. package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
  537. package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
  538. package/dist/types/src/internal/projection/index.d.ts +0 -2
  539. package/dist/types/src/internal/projection/index.d.ts.map +0 -1
  540. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  541. package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
  542. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
  543. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  544. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  545. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  546. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  547. package/dist/types/src/internal/query/index.d.ts +0 -2
  548. package/dist/types/src/internal/query/index.d.ts.map +0 -1
  549. package/dist/types/src/internal/query/query.d.ts +0 -17
  550. package/dist/types/src/internal/query/query.d.ts.map +0 -1
  551. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  552. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  553. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  554. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  555. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  556. package/dist/types/src/internal/schema/index.d.ts +0 -7
  557. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  558. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  559. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +0 -18
  560. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
  561. package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
  562. package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
  563. package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
  564. package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
  565. package/dist/types/src/internal/testing/index.d.ts +0 -3
  566. package/dist/types/src/internal/testing/index.d.ts.map +0 -1
  567. package/dist/types/src/internal/testing/types.d.ts +0 -381
  568. package/dist/types/src/internal/testing/types.d.ts.map +0 -1
  569. package/dist/types/src/internal/testing/utils.d.ts +0 -10
  570. package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
  571. package/dist/types/src/internal/types/index.d.ts +0 -3
  572. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  573. package/dist/types/src/internal/types/types.d.ts +0 -79
  574. package/dist/types/src/internal/types/types.d.ts.map +0 -1
  575. package/dist/types/src/internal/types/types.test.d.ts +0 -2
  576. package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
  577. package/dist/types/src/internal/types/util.d.ts +0 -5
  578. package/dist/types/src/internal/types/util.d.ts.map +0 -1
  579. package/dist/types/src/query/index.d.ts +0 -2
  580. package/dist/types/src/query/index.d.ts.map +0 -1
  581. package/dist/types/src/query/query.d.ts +0 -248
  582. package/dist/types/src/query/query.d.ts.map +0 -1
  583. package/dist/types/src/query/query.test.d.ts +0 -2
  584. package/dist/types/src/query/query.test.d.ts.map +0 -1
  585. package/dist/types/src/testing/echo-schema.d.ts +0 -7
  586. package/dist/types/src/testing/echo-schema.d.ts.map +0 -1
  587. package/dist/types/src/testing/types.d.ts +0 -228
  588. package/dist/types/src/testing/types.d.ts.map +0 -1
  589. package/src/errors.ts +0 -18
  590. package/src/internal/ast/annotation-helper.ts +0 -22
  591. package/src/internal/ast/annotations.test.ts +0 -98
  592. package/src/internal/ast/annotations.ts +0 -226
  593. package/src/internal/ast/entity-kind.ts +0 -15
  594. package/src/internal/ast/index.ts +0 -8
  595. package/src/internal/ast/types.ts +0 -17
  596. package/src/internal/json/index.ts +0 -5
  597. package/src/internal/object/accessors.ts +0 -153
  598. package/src/internal/object/deleted.ts +0 -19
  599. package/src/internal/object/entity.ts +0 -248
  600. package/src/internal/object/expando.ts +0 -21
  601. package/src/internal/object/index.ts +0 -19
  602. package/src/internal/object/json-serializer.test.ts +0 -99
  603. package/src/internal/object/meta.ts +0 -61
  604. package/src/internal/object/model.ts +0 -170
  605. package/src/internal/object/relation.ts +0 -24
  606. package/src/internal/object/typed-object.ts +0 -88
  607. package/src/internal/object/typename.ts +0 -61
  608. package/src/internal/object/version.ts +0 -22
  609. package/src/internal/projection/index.ts +0 -5
  610. package/src/internal/proxy/handler.test.ts +0 -163
  611. package/src/internal/proxy/reactive-object.ts +0 -108
  612. package/src/internal/proxy/typed-handler.test.ts +0 -102
  613. package/src/internal/proxy/typed-handler.ts +0 -228
  614. package/src/internal/proxy/typed-object.test.ts +0 -100
  615. package/src/internal/query/index.ts +0 -5
  616. package/src/internal/query/query.ts +0 -23
  617. package/src/internal/schema/index.ts +0 -10
  618. package/src/internal/schema/runtime-schema-registry.ts +0 -78
  619. package/src/internal/schema/snapshot.ts +0 -25
  620. package/src/internal/schema/stored-schema.ts +0 -26
  621. package/src/internal/testing/types.ts +0 -144
  622. package/src/internal/testing/utils.ts +0 -54
  623. package/src/internal/types/index.ts +0 -6
  624. package/src/internal/types/types.test.ts +0 -48
  625. package/src/internal/types/types.ts +0 -176
  626. package/src/internal/types/util.ts +0 -9
  627. package/src/query/index.ts +0 -6
  628. package/src/query/query.test.ts +0 -401
  629. package/src/query/query.ts +0 -789
  630. package/src/test/api.test.ts +0 -180
  631. package/src/testing/echo-schema.ts +0 -39
  632. package/src/testing/types.ts +0 -108
  633. /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
  634. /package/dist/lib/{browser/internal/index.mjs.map → neutral/Database.mjs.map} +0 -0
  635. /package/dist/lib/{browser/query/index.mjs.map → neutral/Entity.mjs.map} +0 -0
  636. /package/dist/lib/{node-esm/index.mjs.map → neutral/Err.mjs.map} +0 -0
  637. /package/dist/lib/{node-esm/internal/index.mjs.map → neutral/Extension.mjs.map} +0 -0
  638. /package/dist/lib/{node-esm/query/index.mjs.map → neutral/Feed.mjs.map} +0 -0
  639. /package/dist/types/src/internal/{ast → Annotation}/annotations.test.d.ts +0 -0
  640. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  641. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  642. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  643. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  644. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  645. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  646. /package/dist/types/src/internal/{json → JsonSchema}/effect-schema.test.d.ts +0 -0
  647. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  648. /package/dist/types/src/internal/{json → JsonSchema}/json-schema.test.d.ts +0 -0
  649. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  650. /package/dist/types/src/internal/{object → Obj}/ids.d.ts +0 -0
  651. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  652. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  653. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  654. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  655. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  656. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  657. /package/dist/types/src/internal/{projection → Type}/compose.test.d.ts +0 -0
  658. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  659. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  660. /package/dist/types/src/internal/{object → common/proxy}/schema-validator.d.ts +0 -0
  661. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  662. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  663. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  664. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
  665. /package/src/internal/{formats → Format}/index.ts +0 -0
  666. /package/src/internal/{json → JsonSchema}/effect-schema.test.ts +0 -0
  667. /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 '../..';
15
- import { Testing, prepareAstForCompare } from '../../testing';
14
+ import { TestSchema, prepareAstForCompare } from '../../testing';
15
+ import * as Type from '../../Type';
16
16
  import {
17
- EntityKind,
18
17
  FieldLookupAnnotationId,
19
18
  GeneratorAnnotation,
20
19
  LabelAnnotation,
21
20
  PropertyMeta,
22
21
  getTypeAnnotation,
23
22
  getTypeIdentifierAnnotation,
24
- } from '../ast';
25
- import { Email, FormatAnnotation, FormatEnum } from '../formats';
26
- import { JsonSchemaType, getNormalizedEchoAnnotations, getSchemaProperty, setSchemaProperty } from '../json-schema';
27
- import { EchoObject } from '../object';
28
- import { Ref, createSchemaReference, getReferenceAst, getSchemaReference } from '../ref';
29
- import { StoredSchema } from '../schema';
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/Person',
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/Person',
177
+ $id: 'dxn:type:com.example.type.person',
177
178
 
178
179
  entityKind: EntityKind.Object,
179
- typename: 'example.com/type/Person',
180
+ typename: 'com.example.type.person',
180
181
  version: '0.1.0',
181
182
 
182
183
  type: 'object',
@@ -197,16 +198,26 @@ describe('effect-to-json', () => {
197
198
  });
198
199
 
199
200
  test('handles suspend -- Contact schema serialization', () => {
200
- const schema = toJsonSchema(Testing.Person);
201
- expect(Object.keys(schema.properties!)).toEqual(['id', 'name', 'username', 'email', 'tasks', 'address']);
201
+ const schema = toJsonSchema(TestSchema.Person);
202
+ expect(Object.keys(schema.properties!)).toEqual([
203
+ 'id',
204
+ 'name',
205
+ 'username',
206
+ 'email',
207
+ 'age',
208
+ 'tasks',
209
+ 'employer',
210
+ 'address',
211
+ 'fields',
212
+ ]);
202
213
  });
203
214
 
204
215
  test('reference property by ref', () => {
205
216
  const Organization = Schema.Struct({
206
217
  field: Schema.String,
207
218
  }).pipe(
208
- Type.Obj({
209
- typename: 'example.com/type/Organization',
219
+ Type.object({
220
+ typename: 'com.example.type.organization',
210
221
  version: '0.1.0',
211
222
  }),
212
223
  );
@@ -215,8 +226,8 @@ describe('effect-to-json', () => {
215
226
  name: Schema.String,
216
227
  organization: Ref(Organization).annotations({ description: 'Contact organization' }),
217
228
  }).pipe(
218
- Type.Obj({
219
- typename: 'example.com/type/Person',
229
+ Type.object({
230
+ typename: 'com.example.type.person',
220
231
  version: '0.1.0',
221
232
  }),
222
233
  );
@@ -226,10 +237,10 @@ describe('effect-to-json', () => {
226
237
  const jsonSchema = toJsonSchema(Contact);
227
238
  expect(jsonSchema).toEqual({
228
239
  $schema: 'http://json-schema.org/draft-07/schema#',
229
- $id: 'dxn:type:example.com/type/Person',
240
+ $id: 'dxn:type:com.example.type.person',
230
241
 
231
242
  entityKind: EntityKind.Object,
232
- typename: 'example.com/type/Person',
243
+ typename: 'com.example.type.person',
233
244
  version: '0.1.0',
234
245
 
235
246
  type: 'object',
@@ -249,7 +260,7 @@ describe('effect-to-json', () => {
249
260
  $ref: '/schemas/echo/ref',
250
261
  reference: {
251
262
  schema: {
252
- $ref: 'dxn:type:example.com/type/Organization',
263
+ $ref: 'dxn:type:com.example.type.organization',
253
264
  },
254
265
  schemaVersion: '0.1.0',
255
266
  },
@@ -267,8 +278,8 @@ describe('effect-to-json', () => {
267
278
  const Organization = Schema.Struct({
268
279
  field: Schema.String,
269
280
  }).pipe(
270
- Type.Obj({
271
- typename: 'example.com/type/Organization',
281
+ Type.object({
282
+ typename: 'com.example.type.organization',
272
283
  version: '0.1.0',
273
284
  }),
274
285
  );
@@ -277,8 +288,8 @@ describe('effect-to-json', () => {
277
288
  name: Schema.String,
278
289
  organization: Ref(Organization).annotations({ description: 'Contact organization' }),
279
290
  }).pipe(
280
- Type.Obj({
281
- typename: 'example.com/type/Person',
291
+ Type.object({
292
+ typename: 'com.example.type.person',
282
293
  version: '0.1.0',
283
294
  }),
284
295
  );
@@ -289,8 +300,8 @@ describe('effect-to-json', () => {
289
300
  expect(typename).to.eq(Organization.typename);
290
301
  });
291
302
 
292
- test('serialize circular schema (StoredSchema)', () => {
293
- const jsonSchema = toJsonSchema(StoredSchema);
303
+ test('serialize circular schema (PersistentSchema)', () => {
304
+ const jsonSchema = toJsonSchema(PersistentSchema);
294
305
  expect(Object.keys(jsonSchema.properties!).length).toBeGreaterThan(0);
295
306
 
296
307
  // TODO(dmaretskyi): Currently unable to deserialize.
@@ -313,7 +324,7 @@ describe('effect-to-json', () => {
313
324
 
314
325
  test('reference with title annotation', () => {
315
326
  const schema = Schema.Struct({
316
- contact: Ref(Testing.Person).annotations({ title: 'Custom Title' }),
327
+ contact: Ref(TestSchema.Person).annotations({ title: 'Custom Title' }),
317
328
  });
318
329
 
319
330
  // log.info('schema before', { ast: schema.ast });
@@ -336,33 +347,36 @@ describe('effect-to-json', () => {
336
347
  });
337
348
 
338
349
  test('relation schema', () => {
339
- const schema = Testing.HasManager;
350
+ const schema = TestSchema.EmployedBy;
340
351
  const jsonSchema = toJsonSchema(schema);
341
352
  expect(jsonSchema).toEqual({
342
- $id: 'dxn:type:example.com/type/HasManager',
353
+ $id: 'dxn:type:com.example.type.employed-by',
343
354
  $schema: 'http://json-schema.org/draft-07/schema#',
344
355
  entityKind: 'relation',
345
- typename: 'example.com/type/HasManager',
356
+ typename: 'com.example.type.employed-by',
346
357
  version: '0.1.0',
347
358
  relationSource: {
348
359
  // TODO(dmaretskyi): Should those point to specific schema version?
349
- $ref: 'dxn:type:example.com/type/Person',
360
+ $ref: 'dxn:type:com.example.type.person',
350
361
  },
351
362
  relationTarget: {
352
363
  // TODO(dmaretskyi): Should those point to specific schema version?
353
- $ref: 'dxn:type:example.com/type/Person',
364
+ $ref: 'dxn:type:com.example.type.organization',
354
365
  },
355
366
  type: 'object',
356
367
  properties: {
357
368
  id: {
358
369
  type: 'string',
359
370
  },
371
+ role: {
372
+ type: 'string',
373
+ },
360
374
  since: {
361
375
  type: 'string',
362
376
  },
363
377
  },
364
- propertyOrder: ['since', 'id'],
365
- required: ['id'],
378
+ propertyOrder: ['role', 'since', 'id'],
379
+ required: ['role', 'id'],
366
380
  additionalProperties: false,
367
381
  });
368
382
  });
@@ -372,8 +386,8 @@ describe('effect-to-json', () => {
372
386
  id: ObjectId,
373
387
  name: Schema.String,
374
388
  }).pipe(
375
- EchoObject({
376
- typename: 'example.com/type/Organization',
389
+ EchoObjectSchema({
390
+ typename: 'com.example.type.organization',
377
391
  version: '0.1.0',
378
392
  }),
379
393
  LabelAnnotation.set(['name']),
@@ -381,9 +395,9 @@ describe('effect-to-json', () => {
381
395
 
382
396
  const jsonSchema = toJsonSchema(Organization);
383
397
  expect(jsonSchema).toEqual({
384
- $id: 'dxn:type:example.com/type/Organization',
398
+ $id: 'dxn:type:com.example.type.organization',
385
399
  $schema: 'http://json-schema.org/draft-07/schema#',
386
- typename: 'example.com/type/Organization',
400
+ typename: 'com.example.type.organization',
387
401
  version: '0.1.0',
388
402
  entityKind: 'object',
389
403
  type: 'object',
@@ -454,7 +468,7 @@ describe('effect-to-json', () => {
454
468
  const expectReferenceAnnotation = (object: JsonSchemaType) => {
455
469
  expect(object.reference).to.deep.eq({
456
470
  schema: {
457
- $ref: 'dxn:type:example.com/type/TestNested',
471
+ $ref: 'dxn:type:com.example.type.testNested',
458
472
  },
459
473
  schemaVersion: '0.1.0',
460
474
  });
@@ -482,8 +496,8 @@ describe('json-to-effect', () => {
482
496
  const Organization = Schema.Struct({
483
497
  field: Schema.String,
484
498
  }).pipe(
485
- Type.Obj({
486
- typename: 'example.com/type/Organization',
499
+ Type.object({
500
+ typename: 'com.example.type.organization',
487
501
  version: '0.1.0',
488
502
  }),
489
503
  );
@@ -498,13 +512,13 @@ describe('json-to-effect', () => {
498
512
  object: Schema.Struct({ id: Schema.String, field: Ref(Organization) }),
499
513
  echoObject: Ref(Organization),
500
514
  echoObjectArray: Schema.Array(Ref(Organization)),
501
- email: Schema.String.pipe(FormatAnnotation.set(FormatEnum.Email)),
515
+ email: Schema.String.pipe(FormatAnnotation.set(TypeFormat.Email)),
502
516
  null: Schema.Null,
503
517
  } as const;
504
518
 
505
519
  const Test = (partial ? Schema.partial(Schema.Struct(fields)) : Schema.Struct(fields)).pipe(
506
- Type.Obj({
507
- typename: 'example.com/type/Test',
520
+ Type.object({
521
+ typename: 'com.example.type.test',
508
522
  version: '0.1.0',
509
523
  }),
510
524
  );
@@ -531,13 +545,13 @@ describe('json-to-effect', () => {
531
545
 
532
546
  test('legacy schema with dxn:type $id gets decoded', () => {
533
547
  const jsonSchema: JsonSchemaType = {
534
- $id: 'dxn:type:example.com/type/Project',
548
+ $id: 'dxn:type:com.example.type.project',
535
549
  $schema: 'http://json-schema.org/draft-07/schema#',
536
550
  additionalProperties: false,
537
551
  echo: {
538
552
  type: {
539
553
  schemaId: '01JERV1HQCQZDQ4NVCJ42QB38F',
540
- typename: 'example.com/type/Project',
554
+ typename: 'com.example.type.project',
541
555
  version: '0.1.0',
542
556
  },
543
557
  },
@@ -563,15 +577,15 @@ describe('json-to-effect', () => {
563
577
  const schema = toEffectSchema(jsonSchema);
564
578
  expect(getTypeAnnotation(schema)).to.deep.eq({
565
579
  kind: EntityKind.Object,
566
- typename: 'example.com/type/Project',
580
+ typename: 'com.example.type.project',
567
581
  version: '0.1.0',
568
582
  });
569
583
  expect(getTypeIdentifierAnnotation(schema)).to.deep.eq('dxn:echo:@:01JERV1HQCQZDQ4NVCJ42QB38F');
570
584
  });
571
585
 
572
586
  test('symbol annotations get compared', () => {
573
- const schema1 = Schema.String.pipe(FormatAnnotation.set(FormatEnum.Email));
574
- 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));
575
589
  expect(prepareAstForCompare(schema1.ast)).not.to.deep.eq(prepareAstForCompare(schema2.ast));
576
590
  });
577
591
 
@@ -586,7 +600,7 @@ describe('json-to-effect', () => {
586
600
  });
587
601
 
588
602
  test('relation schema roundtrip', () => {
589
- const schema = Testing.HasManager;
603
+ const schema = TestSchema.HasManager;
590
604
  const jsonSchema = toJsonSchema(schema);
591
605
  const effectSchema = toEffectSchema(jsonSchema);
592
606
  expect(prepareAstForCompare(effectSchema.ast)).to.deep.eq(prepareAstForCompare(schema.ast));
@@ -689,10 +703,8 @@ describe('json-to-effect', () => {
689
703
  });
690
704
 
691
705
  test('schema with optional referece', () => {
692
- const TestSchema = Schema.Struct({
693
- contact: Schema.optional(Ref(Testing.Person)),
694
- });
695
- const jsonSchema = toJsonSchema(TestSchema);
706
+ const TempSchema = Schema.Struct({ contact: Schema.optional(Ref(TestSchema.Person)) });
707
+ const jsonSchema = toJsonSchema(TempSchema);
696
708
  expect(jsonSchema).toMatchInlineSnapshot(`
697
709
  {
698
710
  "$schema": "http://json-schema.org/draft-07/schema#",
@@ -703,7 +715,7 @@ describe('json-to-effect', () => {
703
715
  "$ref": "/schemas/echo/ref",
704
716
  "reference": {
705
717
  "schema": {
706
- "$ref": "dxn:type:example.com/type/Person",
718
+ "$ref": "dxn:type:com.example.type.person",
707
719
  },
708
720
  "schemaVersion": "0.1.0",
709
721
  },
@@ -718,13 +730,13 @@ describe('json-to-effect', () => {
718
730
  `);
719
731
 
720
732
  const effectSchema = toEffectSchema(jsonSchema);
721
- expect(prepareAstForCompare(effectSchema.ast)).to.deep.eq(prepareAstForCompare(TestSchema.ast));
733
+ expect(prepareAstForCompare(effectSchema.ast)).to.deep.eq(prepareAstForCompare(TempSchema.ast));
722
734
  });
723
735
 
724
736
  test('object nested inside another struct', () => {
725
737
  const Contact = Schema.Struct({
726
738
  name: Schema.String,
727
- }).pipe(EchoObject({ typename: 'example.com/type/Person', version: '0.1.0' }));
739
+ }).pipe(EchoObjectSchema({ typename: 'com.example.type.person', version: '0.1.0' }));
728
740
  const input = Schema.Struct({
729
741
  contact: Contact,
730
742
  });
@@ -735,7 +747,7 @@ describe('json-to-effect', () => {
735
747
  "additionalProperties": false,
736
748
  "properties": {
737
749
  "contact": {
738
- "$id": "dxn:type:example.com/type/Person",
750
+ "$id": "dxn:type:com.example.type.person",
739
751
  "additionalProperties": false,
740
752
  "entityKind": "object",
741
753
  "properties": {
@@ -755,7 +767,7 @@ describe('json-to-effect', () => {
755
767
  "id",
756
768
  ],
757
769
  "type": "object",
758
- "typename": "example.com/type/Person",
770
+ "typename": "com.example.type.person",
759
771
  "version": "0.1.0",
760
772
  },
761
773
  },
@@ -776,7 +788,7 @@ describe('json-to-effect', () => {
776
788
 
777
789
  describe('reference', () => {
778
790
  test('reference annotation', () => {
779
- const schema = Ref(Testing.Person);
791
+ const schema = Ref(TestSchema.Person);
780
792
  const jsonSchema = toJsonSchema(schema);
781
793
  expect(jsonSchema).toEqual({
782
794
  $id: '/schemas/echo/ref',
@@ -784,7 +796,7 @@ describe('reference', () => {
784
796
  $schema: 'http://json-schema.org/draft-07/schema#',
785
797
  reference: {
786
798
  schema: {
787
- $ref: 'dxn:type:example.com/type/Person',
799
+ $ref: 'dxn:type:com.example.type.person',
788
800
  },
789
801
  schemaVersion: '0.1.0',
790
802
  },
@@ -792,7 +804,7 @@ describe('reference', () => {
792
804
  });
793
805
 
794
806
  test('title annotation', () => {
795
- const schema = Ref(Testing.Person).annotations({ title: 'My custom title' });
807
+ const schema = Ref(TestSchema.Person).annotations({ title: 'My custom title' });
796
808
  const jsonSchema = toJsonSchema(schema);
797
809
  expect(jsonSchema).toEqual({
798
810
  $schema: 'http://json-schema.org/draft-07/schema#',
@@ -802,7 +814,7 @@ describe('reference', () => {
802
814
  $ref: '/schemas/echo/ref',
803
815
  reference: {
804
816
  schema: {
805
- $ref: 'dxn:type:example.com/type/Person',
817
+ $ref: 'dxn:type:com.example.type.person',
806
818
  },
807
819
  schemaVersion: '0.1.0',
808
820
  },
@@ -813,7 +825,7 @@ describe('reference', () => {
813
825
  });
814
826
 
815
827
  test('description annotation', () => {
816
- const schema = Ref(Testing.Person).annotations({ description: 'My custom description' });
828
+ const schema = Ref(TestSchema.Person).annotations({ description: 'My custom description' });
817
829
  const jsonSchema = toJsonSchema(schema);
818
830
  expect(jsonSchema).toEqual({
819
831
  $schema: 'http://json-schema.org/draft-07/schema#',
@@ -823,7 +835,7 @@ describe('reference', () => {
823
835
  $ref: '/schemas/echo/ref',
824
836
  reference: {
825
837
  schema: {
826
- $ref: 'dxn:type:example.com/type/Person',
838
+ $ref: 'dxn:type:com.example.type.person',
827
839
  },
828
840
  schemaVersion: '0.1.0',
829
841
  },
@@ -837,13 +849,13 @@ describe('reference', () => {
837
849
  });
838
850
 
839
851
  test('serialize and deserialize', () => {
840
- const schema = Ref(Testing.Person);
852
+ const schema = Ref(TestSchema.Person);
841
853
  const jsonSchema = toJsonSchema(schema);
842
854
  const deserializedSchema = toEffectSchema(jsonSchema);
843
855
  const refAst = getReferenceAst(deserializedSchema.ast);
844
856
  expect(refAst).toEqual({
845
- typename: Testing.Person.typename,
846
- version: Testing.Person.version,
857
+ typename: TestSchema.Person.typename,
858
+ version: TestSchema.Person.version,
847
859
  });
848
860
  });
849
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
  }