@dxos/echo 0.8.4-main.ead640a → 0.8.4-main.f466a3d56e

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