@dxos/echo 0.8.4-main.fffef41 → 0.8.4-staging.ac66bdf99f

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