@dxos/echo 0.8.4-main.406dc2a → 0.8.4-main.422d1c7879

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 (688) 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-4P3IXBLT.mjs +45 -0
  39. package/dist/lib/neutral/chunk-4P3IXBLT.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-6ASBHRDG.mjs +299 -0
  41. package/dist/lib/neutral/chunk-6ASBHRDG.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-7I3YIAT2.mjs +27 -0
  43. package/dist/lib/neutral/chunk-7I3YIAT2.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-A2WIDONZ.mjs +97 -0
  45. package/dist/lib/neutral/chunk-A2WIDONZ.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-ANHVGJI4.mjs +21 -0
  47. package/dist/lib/neutral/chunk-ANHVGJI4.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-BQN7EDPH.mjs +2838 -0
  51. package/dist/lib/neutral/chunk-BQN7EDPH.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-EJJFH3XB.mjs +206 -0
  55. package/dist/lib/neutral/chunk-EJJFH3XB.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-EULNZHTP.mjs +354 -0
  57. package/dist/lib/neutral/chunk-EULNZHTP.mjs.map +7 -0
  58. package/dist/lib/neutral/chunk-GMYNDEMT.mjs +286 -0
  59. package/dist/lib/neutral/chunk-GMYNDEMT.mjs.map +7 -0
  60. package/dist/lib/neutral/chunk-GZQTCRJB.mjs +73 -0
  61. package/dist/lib/neutral/chunk-GZQTCRJB.mjs.map +7 -0
  62. package/dist/lib/neutral/chunk-H5F7C2UO.mjs +45 -0
  63. package/dist/lib/neutral/chunk-H5F7C2UO.mjs.map +7 -0
  64. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  65. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  66. package/dist/lib/neutral/chunk-JIN4EVUK.mjs +56 -0
  67. package/dist/lib/neutral/chunk-JIN4EVUK.mjs.map +7 -0
  68. package/dist/lib/neutral/chunk-JPWH3QJD.mjs +402 -0
  69. package/dist/lib/neutral/chunk-JPWH3QJD.mjs.map +7 -0
  70. package/dist/lib/neutral/chunk-O26EPPBW.mjs +428 -0
  71. package/dist/lib/neutral/chunk-O26EPPBW.mjs.map +7 -0
  72. package/dist/lib/neutral/chunk-OMUPQMLR.mjs +7 -0
  73. package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +7 -0
  74. package/dist/lib/neutral/chunk-PHU22NLC.mjs +136 -0
  75. package/dist/lib/neutral/chunk-PHU22NLC.mjs.map +7 -0
  76. package/dist/lib/neutral/chunk-QW7YUKSA.mjs +787 -0
  77. package/dist/lib/neutral/chunk-QW7YUKSA.mjs.map +7 -0
  78. package/dist/lib/neutral/chunk-RP37BQF7.mjs +132 -0
  79. package/dist/lib/neutral/chunk-RP37BQF7.mjs.map +7 -0
  80. package/dist/lib/neutral/chunk-TBKX6JQO.mjs +67 -0
  81. package/dist/lib/neutral/chunk-TBKX6JQO.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-WAK4DMFV.mjs +36 -0
  87. package/dist/lib/neutral/chunk-WAK4DMFV.mjs.map +7 -0
  88. package/dist/lib/neutral/chunk-XEU2Q5CI.mjs +34 -0
  89. package/dist/lib/neutral/chunk-XEU2Q5CI.mjs.map +7 -0
  90. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs +50 -0
  91. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs.map +7 -0
  92. package/dist/lib/neutral/chunk-ZUGFUCUK.mjs +125 -0
  93. package/dist/lib/neutral/chunk-ZUGFUCUK.mjs.map +7 -0
  94. package/dist/lib/neutral/index.mjs +107 -0
  95. package/dist/lib/neutral/index.mjs.map +7 -0
  96. package/dist/lib/{node-esm → neutral}/internal/index.mjs +290 -148
  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/Json.d.ts +33 -0
  130. package/dist/types/src/Json.d.ts.map +1 -0
  131. package/dist/types/src/Json.test.d.ts +2 -0
  132. package/dist/types/src/Json.test.d.ts.map +1 -0
  133. package/dist/types/src/JsonSchema.d.ts +16 -0
  134. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  135. package/dist/types/src/Key.d.ts +1 -0
  136. package/dist/types/src/Key.d.ts.map +1 -1
  137. package/dist/types/src/Migration.d.ts +57 -0
  138. package/dist/types/src/Migration.d.ts.map +1 -0
  139. package/dist/types/src/Obj.d.ts +434 -102
  140. package/dist/types/src/Obj.d.ts.map +1 -1
  141. package/dist/types/src/Obj.test.d.ts +2 -0
  142. package/dist/types/src/Obj.test.d.ts.map +1 -0
  143. package/dist/types/src/Order.d.ts +16 -0
  144. package/dist/types/src/Order.d.ts.map +1 -0
  145. package/dist/types/src/Query.d.ts +209 -0
  146. package/dist/types/src/Query.d.ts.map +1 -0
  147. package/dist/types/src/Query.test.d.ts +2 -0
  148. package/dist/types/src/Query.test.d.ts.map +1 -0
  149. package/dist/types/src/QueryResult.d.ts +80 -0
  150. package/dist/types/src/QueryResult.d.ts.map +1 -0
  151. package/dist/types/src/Ref.d.ts +61 -11
  152. package/dist/types/src/Ref.d.ts.map +1 -1
  153. package/dist/types/src/Relation.d.ts +287 -21
  154. package/dist/types/src/Relation.d.ts.map +1 -1
  155. package/dist/types/src/Relation.test.d.ts +2 -0
  156. package/dist/types/src/Relation.test.d.ts.map +1 -0
  157. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  158. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  159. package/dist/types/src/Tag.d.ts +18 -0
  160. package/dist/types/src/Tag.d.ts.map +1 -0
  161. package/dist/types/src/Type.d.ts +123 -99
  162. package/dist/types/src/Type.d.ts.map +1 -1
  163. package/dist/types/src/Type.test.d.ts +2 -0
  164. package/dist/types/src/Type.test.d.ts.map +1 -0
  165. package/dist/types/src/View.d.ts +68 -0
  166. package/dist/types/src/View.d.ts.map +1 -0
  167. package/dist/types/src/hierarchy.test.d.ts +2 -0
  168. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  169. package/dist/types/src/index.d.ts +22 -5
  170. package/dist/types/src/index.d.ts.map +1 -1
  171. package/dist/types/src/internal/Annotation/annotations.d.ts +231 -0
  172. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  173. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  174. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  175. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  176. package/dist/types/src/internal/Annotation/sorting.d.ts +24 -0
  177. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  178. package/dist/types/src/internal/Annotation/util.d.ts +39 -0
  179. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  180. package/dist/types/src/internal/Entity/api.d.ts +13 -0
  181. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  182. package/dist/types/src/internal/Entity/entity.d.ts +20 -0
  183. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  184. package/dist/types/src/internal/Entity/index.d.ts +8 -0
  185. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  186. package/dist/types/src/internal/Entity/model.d.ts +55 -0
  187. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  188. package/dist/types/src/internal/Entity/object.d.ts +18 -0
  189. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  190. package/dist/types/src/internal/Entity/relation.d.ts +35 -0
  191. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  192. package/dist/types/src/internal/Entity/util.d.ts +2 -0
  193. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  194. package/dist/types/src/internal/Entity/version.d.ts +42 -0
  195. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  196. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  197. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  198. package/dist/types/src/internal/{formats → Format}/format.d.ts +4 -2
  199. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  200. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  201. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  202. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  203. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  204. package/dist/types/src/internal/{formats → Format}/select.d.ts +6 -4
  205. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  206. package/dist/types/src/internal/{formats → Format}/string.d.ts +4 -0
  207. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  208. package/dist/types/src/internal/{formats → Format}/types.d.ts +14 -10
  209. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  210. package/dist/types/src/internal/{json → JsonSchema}/annotations.d.ts +1 -1
  211. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  212. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  213. package/dist/types/src/internal/JsonSchema/index.d.ts +5 -0
  214. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  215. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  216. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +131 -30
  217. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  218. package/dist/types/src/internal/{json → JsonSchema}/json-schema.d.ts +4 -2
  219. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  220. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  221. package/dist/types/src/internal/Obj/clone.d.ts +8 -0
  222. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  223. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  224. package/dist/types/src/internal/{object/create.d.ts → Obj/create-object.d.ts} +10 -11
  225. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  226. package/dist/types/src/internal/Obj/create-object.test.d.ts +2 -0
  227. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  228. package/dist/types/src/internal/Obj/deleted.d.ts +6 -0
  229. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  230. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  231. package/dist/types/src/internal/Obj/index.d.ts +11 -0
  232. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  233. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  234. package/dist/types/src/internal/Obj/json-serializer.d.ts +45 -0
  235. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  236. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  237. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  238. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  239. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  240. package/dist/types/src/internal/Obj/set-value.d.ts +7 -0
  241. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  242. package/dist/types/src/internal/Obj/set-value.test.d.ts +2 -0
  243. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  244. package/dist/types/src/internal/Obj/snapshot.d.ts +6 -0
  245. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  246. package/dist/types/src/internal/Obj/typed-object.d.ts +25 -0
  247. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  248. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  249. package/dist/types/src/internal/Query.d.ts +10 -0
  250. package/dist/types/src/internal/Query.d.ts.map +1 -0
  251. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  252. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +4 -4
  253. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  254. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +57 -19
  255. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  256. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  257. package/dist/types/src/internal/Type/compose.d.ts +7 -0
  258. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  259. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  260. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +27 -14
  261. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  262. package/dist/types/src/internal/Type/index.d.ts +4 -0
  263. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  264. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  265. package/dist/types/src/internal/Type/persistent-schema.d.ts +20 -0
  266. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  267. package/dist/types/src/internal/common/api/index.d.ts +11 -0
  268. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  269. package/dist/types/src/internal/common/api/meta.d.ts +42 -0
  270. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  271. package/dist/types/src/internal/common/index.d.ts +4 -0
  272. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  273. package/dist/types/src/internal/common/proxy/change-context.d.ts +55 -0
  274. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  275. package/dist/types/src/internal/common/proxy/change.test.d.ts +2 -0
  276. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  277. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts +5 -0
  278. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  279. package/dist/types/src/internal/common/proxy/errors.d.ts +19 -0
  280. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  281. package/dist/types/src/internal/common/proxy/event-batch.d.ts +10 -0
  282. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  283. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  284. package/dist/types/src/internal/common/proxy/index.d.ts +14 -0
  285. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  286. package/dist/types/src/internal/common/proxy/json-serializer.d.ts +6 -0
  287. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  288. package/dist/types/src/internal/common/proxy/make-object.d.ts +14 -0
  289. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  290. package/dist/types/src/internal/common/proxy/ownership.d.ts +57 -0
  291. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  292. package/dist/types/src/internal/common/proxy/proxy-types.d.ts +18 -0
  293. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  294. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts +47 -0
  295. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  296. package/dist/types/src/internal/common/proxy/reactive-array.d.ts +8 -0
  297. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  298. package/dist/types/src/internal/common/proxy/reactive.d.ts +39 -0
  299. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
  300. package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
  301. package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
  302. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  303. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  304. package/dist/types/src/internal/common/proxy/symbols.d.ts +3 -0
  305. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  306. package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +16 -12
  307. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  308. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  309. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  310. package/dist/types/src/internal/common/types/base.d.ts +27 -0
  311. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  312. package/dist/types/src/internal/common/types/entity.d.ts +37 -0
  313. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  314. package/dist/types/src/internal/common/types/index.d.ts +7 -0
  315. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  316. package/dist/types/src/internal/{object → common/types}/meta.d.ts +18 -16
  317. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  318. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  319. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  320. package/dist/types/src/internal/common/types/typename.d.ts +21 -0
  321. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  322. package/dist/types/src/internal/common/types/version.d.ts +15 -0
  323. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  324. package/dist/types/src/internal/index.d.ts +10 -14
  325. package/dist/types/src/internal/index.d.ts.map +1 -1
  326. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  327. package/dist/types/src/testing/index.d.ts +3 -3
  328. package/dist/types/src/testing/index.d.ts.map +1 -1
  329. package/dist/types/src/testing/test-data.d.ts +18 -0
  330. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  331. package/dist/types/src/testing/test-schema.d.ts +304 -0
  332. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  333. package/dist/types/src/testing/util.d.ts +21 -0
  334. package/dist/types/src/testing/util.d.ts.map +1 -0
  335. package/dist/types/tsconfig.tsbuildinfo +1 -1
  336. package/package.json +116 -65
  337. package/src/Annotation.ts +48 -0
  338. package/src/Collection.ts +37 -0
  339. package/src/Database.ts +352 -0
  340. package/src/Dataset.ts +26 -0
  341. package/src/Entity.test.ts +22 -0
  342. package/src/Entity.ts +243 -0
  343. package/src/Err.ts +40 -0
  344. package/src/Extension.test.ts +235 -0
  345. package/src/Extension.ts +122 -0
  346. package/src/Feed.ts +304 -0
  347. package/src/Filter.test.ts +90 -0
  348. package/src/Filter.ts +454 -0
  349. package/src/Format.ts +9 -0
  350. package/src/Hypergraph.ts +79 -0
  351. package/src/Json.test.ts +175 -0
  352. package/src/Json.ts +102 -0
  353. package/src/JsonSchema.ts +26 -0
  354. package/src/Key.ts +3 -0
  355. package/src/Migration.ts +94 -0
  356. package/src/Obj.test.ts +539 -0
  357. package/src/Obj.ts +701 -262
  358. package/src/Order.ts +46 -0
  359. package/src/Query.test.ts +806 -0
  360. package/src/Query.ts +547 -0
  361. package/src/QueryResult.ts +106 -0
  362. package/src/Ref.ts +79 -9
  363. package/src/Relation.test.ts +88 -0
  364. package/src/Relation.ts +449 -60
  365. package/src/SchemaRegistry.ts +106 -0
  366. package/src/{query/tag.ts → Tag.ts} +13 -9
  367. package/src/Type.test.ts +52 -0
  368. package/src/Type.ts +167 -153
  369. package/src/View.ts +107 -0
  370. package/src/hierarchy.test.ts +33 -0
  371. package/src/index.ts +24 -6
  372. package/src/internal/Annotation/annotations.test.ts +145 -0
  373. package/src/internal/Annotation/annotations.ts +577 -0
  374. package/src/internal/Annotation/index.ts +7 -0
  375. package/src/internal/Annotation/sorting.ts +51 -0
  376. package/src/internal/Annotation/util.ts +85 -0
  377. package/src/internal/Entity/api.ts +30 -0
  378. package/src/internal/Entity/entity.ts +128 -0
  379. package/src/internal/Entity/index.ts +11 -0
  380. package/src/internal/Entity/model.ts +109 -0
  381. package/src/internal/Entity/object.ts +57 -0
  382. package/src/internal/Entity/relation.ts +154 -0
  383. package/src/internal/Entity/util.ts +33 -0
  384. package/src/internal/Entity/version.ts +96 -0
  385. package/src/internal/{formats → Format}/date.test.ts +1 -2
  386. package/src/internal/{formats → Format}/date.ts +5 -5
  387. package/src/internal/{formats → Format}/format.test.ts +6 -7
  388. package/src/internal/{formats → Format}/format.ts +8 -6
  389. package/src/internal/{formats → Format}/number.ts +5 -5
  390. package/src/internal/{formats → Format}/object.ts +4 -4
  391. package/src/internal/{formats → Format}/select.ts +6 -4
  392. package/src/internal/{formats → Format}/string.ts +14 -9
  393. package/src/internal/{formats → Format}/types.ts +54 -43
  394. package/src/internal/{json → JsonSchema}/annotations.ts +3 -3
  395. package/src/internal/{json-schema → JsonSchema}/index.ts +2 -0
  396. package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +4 -2
  397. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +36 -36
  398. package/src/internal/{json → JsonSchema}/json-schema.test.ts +98 -95
  399. package/src/internal/{json → JsonSchema}/json-schema.ts +29 -15
  400. package/src/internal/Obj/clone.ts +48 -0
  401. package/src/internal/{object → Obj}/common.ts +3 -4
  402. package/src/internal/{object/create.test.ts → Obj/create-object.test.ts} +32 -36
  403. package/src/internal/{object/create.ts → Obj/create-object.ts} +35 -37
  404. package/src/internal/Obj/deleted.ts +19 -0
  405. package/src/internal/{object → Obj}/ids.ts +1 -1
  406. package/src/internal/Obj/index.ts +14 -0
  407. package/src/internal/{object → Obj}/inspect.ts +5 -7
  408. package/src/internal/Obj/json-serializer.test.ts +120 -0
  409. package/src/internal/{object → Obj}/json-serializer.ts +106 -109
  410. package/src/internal/{object → Obj}/schema-validator.test.ts +3 -7
  411. package/src/internal/Obj/schema-validator.ts +6 -0
  412. package/src/internal/Obj/set-value.test.ts +281 -0
  413. package/src/internal/Obj/set-value.ts +165 -0
  414. package/src/internal/Obj/snapshot.ts +105 -0
  415. package/src/internal/{object → Obj}/typed-object.test.ts +12 -12
  416. package/src/internal/Obj/typed-object.ts +30 -0
  417. package/src/internal/Query.ts +134 -0
  418. package/src/internal/{ref → Ref}/ref-array.ts +4 -5
  419. package/src/internal/{ref → Ref}/ref.test.ts +11 -11
  420. package/src/internal/{ref → Ref}/ref.ts +125 -57
  421. package/src/internal/{projection → Type}/compose.test.ts +8 -10
  422. package/src/internal/{projection → Type}/compose.ts +14 -9
  423. package/src/internal/{schema → Type}/echo-schema.ts +74 -34
  424. package/src/internal/Type/index.ts +7 -0
  425. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  426. package/src/internal/Type/persistent-schema.ts +33 -0
  427. package/src/internal/common/README.md +102 -0
  428. package/src/internal/common/api/index.ts +15 -0
  429. package/src/internal/common/api/meta.ts +88 -0
  430. package/src/internal/{testing → common}/index.ts +2 -1
  431. package/src/internal/common/proxy/change-context.ts +138 -0
  432. package/src/internal/common/proxy/change.test.ts +519 -0
  433. package/src/internal/common/proxy/define-hidden-property.ts +14 -0
  434. package/src/internal/common/proxy/errors.ts +42 -0
  435. package/src/internal/common/proxy/event-batch.ts +44 -0
  436. package/src/internal/common/proxy/handler.test.ts +121 -0
  437. package/src/internal/common/proxy/index.ts +17 -0
  438. package/src/internal/common/proxy/json-serializer.ts +90 -0
  439. package/src/internal/common/proxy/make-object.ts +105 -0
  440. package/src/internal/common/proxy/ownership.ts +252 -0
  441. package/src/internal/common/proxy/proxy-types.ts +23 -0
  442. package/src/internal/common/proxy/proxy-utils.ts +150 -0
  443. package/src/internal/common/proxy/reactive-array.ts +71 -0
  444. package/src/internal/common/proxy/reactive.test.ts +54 -0
  445. package/src/internal/common/proxy/reactive.ts +77 -0
  446. package/src/internal/{object → common/proxy}/schema-validator.ts +6 -3
  447. package/src/internal/{proxy → common/proxy}/schema.test.ts +31 -22
  448. package/src/internal/common/proxy/symbols.ts +7 -0
  449. package/src/internal/common/proxy/typed-handler.test.ts +313 -0
  450. package/src/internal/common/proxy/typed-handler.ts +447 -0
  451. package/src/internal/common/proxy/typed-object.test.ts +115 -0
  452. package/src/internal/common/types/base.ts +43 -0
  453. package/src/internal/common/types/entity.ts +54 -0
  454. package/src/internal/common/types/index.ts +10 -0
  455. package/src/internal/common/types/meta.ts +67 -0
  456. package/src/internal/common/types/model-symbols.ts +69 -0
  457. package/src/internal/common/types/typename.ts +55 -0
  458. package/src/internal/common/types/version.ts +19 -0
  459. package/src/internal/index.ts +12 -17
  460. package/src/testing/api.test.ts +125 -0
  461. package/src/testing/index.ts +3 -3
  462. package/src/testing/test-data.ts +129 -0
  463. package/src/testing/test-schema.ts +240 -0
  464. package/src/testing/util.ts +85 -0
  465. package/dist/lib/browser/chunk-HKFCK2GL.mjs +0 -175
  466. package/dist/lib/browser/chunk-HKFCK2GL.mjs.map +0 -7
  467. package/dist/lib/browser/chunk-MAAYELT7.mjs +0 -830
  468. package/dist/lib/browser/chunk-MAAYELT7.mjs.map +0 -7
  469. package/dist/lib/browser/chunk-MB6MMNFP.mjs +0 -3857
  470. package/dist/lib/browser/chunk-MB6MMNFP.mjs.map +0 -7
  471. package/dist/lib/browser/index.mjs +0 -35
  472. package/dist/lib/browser/internal/index.mjs +0 -332
  473. package/dist/lib/browser/meta.json +0 -1
  474. package/dist/lib/browser/query/index.mjs +0 -15
  475. package/dist/lib/browser/testing/index.mjs +0 -298
  476. package/dist/lib/browser/testing/index.mjs.map +0 -7
  477. package/dist/lib/node-esm/chunk-5NWDGIBT.mjs +0 -830
  478. package/dist/lib/node-esm/chunk-5NWDGIBT.mjs.map +0 -7
  479. package/dist/lib/node-esm/chunk-AUAH4E2J.mjs +0 -175
  480. package/dist/lib/node-esm/chunk-AUAH4E2J.mjs.map +0 -7
  481. package/dist/lib/node-esm/chunk-BQRA4VLX.mjs +0 -3857
  482. package/dist/lib/node-esm/chunk-BQRA4VLX.mjs.map +0 -7
  483. package/dist/lib/node-esm/index.mjs +0 -35
  484. package/dist/lib/node-esm/meta.json +0 -1
  485. package/dist/lib/node-esm/query/index.mjs +0 -15
  486. package/dist/lib/node-esm/testing/index.mjs +0 -298
  487. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  488. package/dist/types/src/errors.d.ts +0 -72
  489. package/dist/types/src/errors.d.ts.map +0 -1
  490. package/dist/types/src/internal/ast/annotation-helper.d.ts +0 -8
  491. package/dist/types/src/internal/ast/annotation-helper.d.ts.map +0 -1
  492. package/dist/types/src/internal/ast/annotations.d.ts +0 -125
  493. package/dist/types/src/internal/ast/annotations.d.ts.map +0 -1
  494. package/dist/types/src/internal/ast/annotations.test.d.ts.map +0 -1
  495. package/dist/types/src/internal/ast/entity-kind.d.ts +0 -10
  496. package/dist/types/src/internal/ast/entity-kind.d.ts.map +0 -1
  497. package/dist/types/src/internal/ast/index.d.ts +0 -5
  498. package/dist/types/src/internal/ast/index.d.ts.map +0 -1
  499. package/dist/types/src/internal/ast/types.d.ts +0 -6
  500. package/dist/types/src/internal/ast/types.d.ts.map +0 -1
  501. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  502. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  503. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  504. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  505. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  506. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  507. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  508. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  509. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  510. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  511. package/dist/types/src/internal/json/annotations.d.ts.map +0 -1
  512. package/dist/types/src/internal/json/effect-schema.test.d.ts.map +0 -1
  513. package/dist/types/src/internal/json/index.d.ts +0 -2
  514. package/dist/types/src/internal/json/index.d.ts.map +0 -1
  515. package/dist/types/src/internal/json/json-schema.d.ts.map +0 -1
  516. package/dist/types/src/internal/json/json-schema.test.d.ts.map +0 -1
  517. package/dist/types/src/internal/json-schema/index.d.ts +0 -3
  518. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  519. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  520. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  521. package/dist/types/src/internal/object/accessors.d.ts +0 -37
  522. package/dist/types/src/internal/object/accessors.d.ts.map +0 -1
  523. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  524. package/dist/types/src/internal/object/create.d.ts.map +0 -1
  525. package/dist/types/src/internal/object/create.test.d.ts +0 -2
  526. package/dist/types/src/internal/object/create.test.d.ts.map +0 -1
  527. package/dist/types/src/internal/object/deleted.d.ts +0 -6
  528. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  529. package/dist/types/src/internal/object/entity.d.ts +0 -33
  530. package/dist/types/src/internal/object/entity.d.ts.map +0 -1
  531. package/dist/types/src/internal/object/expando.d.ts +0 -14
  532. package/dist/types/src/internal/object/expando.d.ts.map +0 -1
  533. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  534. package/dist/types/src/internal/object/index.d.ts +0 -16
  535. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  536. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  537. package/dist/types/src/internal/object/json-serializer.d.ts +0 -32
  538. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  539. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  540. package/dist/types/src/internal/object/meta.d.ts.map +0 -1
  541. package/dist/types/src/internal/object/model.d.ts +0 -117
  542. package/dist/types/src/internal/object/model.d.ts.map +0 -1
  543. package/dist/types/src/internal/object/relation.d.ts +0 -17
  544. package/dist/types/src/internal/object/relation.d.ts.map +0 -1
  545. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  546. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  547. package/dist/types/src/internal/object/typed-object.d.ts +0 -31
  548. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  549. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  550. package/dist/types/src/internal/object/typename.d.ts +0 -15
  551. package/dist/types/src/internal/object/typename.d.ts.map +0 -1
  552. package/dist/types/src/internal/object/version.d.ts +0 -14
  553. package/dist/types/src/internal/object/version.d.ts.map +0 -1
  554. package/dist/types/src/internal/projection/compose.d.ts +0 -6
  555. package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
  556. package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
  557. package/dist/types/src/internal/projection/index.d.ts +0 -2
  558. package/dist/types/src/internal/projection/index.d.ts.map +0 -1
  559. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  560. package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
  561. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
  562. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  563. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  564. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  565. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  566. package/dist/types/src/internal/query/index.d.ts +0 -2
  567. package/dist/types/src/internal/query/index.d.ts.map +0 -1
  568. package/dist/types/src/internal/query/query.d.ts +0 -17
  569. package/dist/types/src/internal/query/query.d.ts.map +0 -1
  570. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  571. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  572. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  573. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  574. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  575. package/dist/types/src/internal/schema/index.d.ts +0 -7
  576. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  577. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  578. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +0 -18
  579. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
  580. package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
  581. package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
  582. package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
  583. package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
  584. package/dist/types/src/internal/testing/index.d.ts +0 -3
  585. package/dist/types/src/internal/testing/index.d.ts.map +0 -1
  586. package/dist/types/src/internal/testing/types.d.ts +0 -455
  587. package/dist/types/src/internal/testing/types.d.ts.map +0 -1
  588. package/dist/types/src/internal/testing/utils.d.ts +0 -10
  589. package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
  590. package/dist/types/src/internal/types/index.d.ts +0 -3
  591. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  592. package/dist/types/src/internal/types/types.d.ts +0 -79
  593. package/dist/types/src/internal/types/types.d.ts.map +0 -1
  594. package/dist/types/src/internal/types/types.test.d.ts +0 -2
  595. package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
  596. package/dist/types/src/internal/types/util.d.ts +0 -5
  597. package/dist/types/src/internal/types/util.d.ts.map +0 -1
  598. package/dist/types/src/query/index.d.ts +0 -3
  599. package/dist/types/src/query/index.d.ts.map +0 -1
  600. package/dist/types/src/query/query.d.ts +0 -248
  601. package/dist/types/src/query/query.d.ts.map +0 -1
  602. package/dist/types/src/query/query.test.d.ts +0 -2
  603. package/dist/types/src/query/query.test.d.ts.map +0 -1
  604. package/dist/types/src/query/tag.d.ts +0 -17
  605. package/dist/types/src/query/tag.d.ts.map +0 -1
  606. package/dist/types/src/testing/echo-schema.d.ts +0 -7
  607. package/dist/types/src/testing/echo-schema.d.ts.map +0 -1
  608. package/dist/types/src/testing/types.d.ts +0 -113
  609. package/dist/types/src/testing/types.d.ts.map +0 -1
  610. package/src/errors.ts +0 -18
  611. package/src/internal/ast/annotation-helper.ts +0 -22
  612. package/src/internal/ast/annotations.test.ts +0 -98
  613. package/src/internal/ast/annotations.ts +0 -219
  614. package/src/internal/ast/entity-kind.ts +0 -15
  615. package/src/internal/ast/index.ts +0 -8
  616. package/src/internal/ast/types.ts +0 -17
  617. package/src/internal/json/index.ts +0 -5
  618. package/src/internal/object/accessors.ts +0 -153
  619. package/src/internal/object/deleted.ts +0 -19
  620. package/src/internal/object/entity.ts +0 -248
  621. package/src/internal/object/expando.ts +0 -21
  622. package/src/internal/object/index.ts +0 -19
  623. package/src/internal/object/json-serializer.test.ts +0 -99
  624. package/src/internal/object/meta.ts +0 -61
  625. package/src/internal/object/model.ts +0 -170
  626. package/src/internal/object/relation.ts +0 -24
  627. package/src/internal/object/typed-object.ts +0 -88
  628. package/src/internal/object/typename.ts +0 -61
  629. package/src/internal/object/version.ts +0 -22
  630. package/src/internal/projection/index.ts +0 -5
  631. package/src/internal/proxy/handler.test.ts +0 -163
  632. package/src/internal/proxy/reactive-object.ts +0 -108
  633. package/src/internal/proxy/typed-handler.test.ts +0 -102
  634. package/src/internal/proxy/typed-handler.ts +0 -228
  635. package/src/internal/proxy/typed-object.test.ts +0 -100
  636. package/src/internal/query/index.ts +0 -5
  637. package/src/internal/query/query.ts +0 -23
  638. package/src/internal/schema/index.ts +0 -10
  639. package/src/internal/schema/runtime-schema-registry.ts +0 -78
  640. package/src/internal/schema/snapshot.ts +0 -25
  641. package/src/internal/schema/stored-schema.ts +0 -26
  642. package/src/internal/testing/types.ts +0 -211
  643. package/src/internal/testing/utils.ts +0 -54
  644. package/src/internal/types/index.ts +0 -6
  645. package/src/internal/types/types.test.ts +0 -48
  646. package/src/internal/types/types.ts +0 -176
  647. package/src/internal/types/util.ts +0 -9
  648. package/src/query/index.ts +0 -6
  649. package/src/query/query.test.ts +0 -401
  650. package/src/query/query.ts +0 -789
  651. package/src/test/api.test.ts +0 -180
  652. package/src/testing/echo-schema.ts +0 -39
  653. package/src/testing/types.ts +0 -91
  654. /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
  655. /package/dist/lib/{browser/internal/index.mjs.map → neutral/Database.mjs.map} +0 -0
  656. /package/dist/lib/{browser/query/index.mjs.map → neutral/Entity.mjs.map} +0 -0
  657. /package/dist/lib/{node-esm/index.mjs.map → neutral/Err.mjs.map} +0 -0
  658. /package/dist/lib/{node-esm/internal/index.mjs.map → neutral/Extension.mjs.map} +0 -0
  659. /package/dist/lib/{node-esm/query/index.mjs.map → neutral/Feed.mjs.map} +0 -0
  660. /package/dist/types/src/internal/{ast → Annotation}/annotations.test.d.ts +0 -0
  661. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  662. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  663. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  664. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  665. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  666. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  667. /package/dist/types/src/internal/{json → JsonSchema}/effect-schema.test.d.ts +0 -0
  668. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  669. /package/dist/types/src/internal/{json → JsonSchema}/json-schema.test.d.ts +0 -0
  670. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  671. /package/dist/types/src/internal/{object → Obj}/ids.d.ts +0 -0
  672. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  673. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  674. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  675. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  676. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  677. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  678. /package/dist/types/src/internal/{projection → Type}/compose.test.d.ts +0 -0
  679. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  680. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  681. /package/dist/types/src/internal/{object → common/proxy}/schema-validator.d.ts +0 -0
  682. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  683. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  684. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  685. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
  686. /package/src/internal/{formats → Format}/index.ts +0 -0
  687. /package/src/internal/{json → JsonSchema}/effect-schema.test.ts +0 -0
  688. /package/src/internal/{ref → Ref}/index.ts +0 -0
@@ -0,0 +1,45 @@
1
+ import {
2
+ DescriptionAnnotation,
3
+ FormInputAnnotation,
4
+ GeneratorAnnotation,
5
+ IconAnnotation,
6
+ LabelAnnotation,
7
+ ReferenceAnnotation,
8
+ SystemTypeAnnotation,
9
+ TypeAnnotation,
10
+ getDescriptionWithSchema,
11
+ getLabelWithSchema,
12
+ getTypeAnnotation,
13
+ makeUserAnnotation,
14
+ setDescriptionWithSchema,
15
+ setLabelWithSchema
16
+ } from "./chunk-2KHZ36F5.mjs";
17
+ import {
18
+ __export
19
+ } from "./chunk-J5LGTIGS.mjs";
20
+
21
+ // src/Annotation.ts
22
+ var Annotation_exports = {};
23
+ __export(Annotation_exports, {
24
+ DescriptionAnnotation: () => DescriptionAnnotation,
25
+ FormInputAnnotation: () => FormInputAnnotation,
26
+ GeneratorAnnotation: () => GeneratorAnnotation,
27
+ IconAnnotation: () => IconAnnotation,
28
+ LabelAnnotation: () => LabelAnnotation,
29
+ ReferenceAnnotation: () => ReferenceAnnotation,
30
+ SystemTypeAnnotation: () => SystemTypeAnnotation,
31
+ TypeAnnotation: () => TypeAnnotation,
32
+ getDescriptionWithSchema: () => getDescriptionWithSchema,
33
+ getLabelWithSchema: () => getLabelWithSchema,
34
+ getTypeAnnotation: () => getTypeAnnotation,
35
+ make: () => make,
36
+ setDescriptionWithSchema: () => setDescriptionWithSchema,
37
+ setLabelWithSchema: () => setLabelWithSchema
38
+ });
39
+ var make = makeUserAnnotation;
40
+
41
+ export {
42
+ make,
43
+ Annotation_exports
44
+ };
45
+ //# sourceMappingURL=chunk-4P3IXBLT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Annotation.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nexport {\n DescriptionAnnotation,\n FormInputAnnotation,\n GeneratorAnnotation,\n LabelAnnotation,\n ReferenceAnnotation,\n SystemTypeAnnotation,\n TypeAnnotation,\n getDescriptionWithSchema,\n getLabelWithSchema,\n getTypeAnnotation,\n setDescriptionWithSchema,\n setLabelWithSchema,\n IconAnnotation,\n} from './internal/Annotation';\n\nimport type * as Schema from 'effect/Schema';\n\nimport * as internalAnnotations from './internal/Annotation';\n\ninterface MakeProps<T> {\n id: string;\n schema: Schema.Schema<T, any, never>;\n}\n\n/**\n * Create a new schema annotation.\n * Annotation can be assigned both to fields and to the schema itself.\n * Annotation is serialized with the schema.\n *\n * @example\n * ```ts\n * const ColorAnnotation = Annotation.make({\n * id: 'org.dxos.annotation.color',\n * schema: Schema.String,\n * });\n *\n * const schema = Schema.String.annotations(ColorAnnotation.set('red'));\n * ```\n */\nexport const make: <T>(props: MakeProps<T>) => internalAnnotations.AnnotationHelper<T> =\n internalAnnotations.makeUserAnnotation;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;AA8CO,IAAMA,OACSC;",
6
+ "names": ["make", "makeUserAnnotation"]
7
+ }
@@ -0,0 +1,299 @@
1
+ import {
2
+ Feed,
3
+ getQueueDxn
4
+ } from "./chunk-RP37BQF7.mjs";
5
+ import {
6
+ everything,
7
+ is,
8
+ props,
9
+ type
10
+ } from "./chunk-EULNZHTP.mjs";
11
+ import {
12
+ getTypename,
13
+ instanceOf
14
+ } from "./chunk-O26EPPBW.mjs";
15
+ import {
16
+ prettyQuery
17
+ } from "./chunk-BQN7EDPH.mjs";
18
+ import {
19
+ isDatabase
20
+ } from "./chunk-PHU22NLC.mjs";
21
+ import {
22
+ getTypeDXNFromSpecifier
23
+ } from "./chunk-2KHZ36F5.mjs";
24
+ import {
25
+ __export
26
+ } from "./chunk-J5LGTIGS.mjs";
27
+
28
+ // src/Query.ts
29
+ var Query_exports = {};
30
+ __export(Query_exports, {
31
+ all: () => all,
32
+ from: () => from,
33
+ fromAst: () => fromAst,
34
+ is: () => is2,
35
+ pretty: () => pretty,
36
+ select: () => select,
37
+ type: () => type2,
38
+ without: () => without
39
+ });
40
+ var QueryClass = class _QueryClass {
41
+ ast;
42
+ static "variance" = {};
43
+ constructor(ast) {
44
+ this.ast = ast;
45
+ }
46
+ "~Query" = _QueryClass.variance;
47
+ select(filter) {
48
+ if (is(filter)) {
49
+ return new _QueryClass({
50
+ type: "filter",
51
+ selection: this.ast,
52
+ filter: filter.ast
53
+ });
54
+ } else {
55
+ return new _QueryClass({
56
+ type: "filter",
57
+ selection: this.ast,
58
+ filter: props(filter).ast
59
+ });
60
+ }
61
+ }
62
+ reference(key) {
63
+ return new _QueryClass({
64
+ type: "reference-traversal",
65
+ anchor: this.ast,
66
+ property: key
67
+ });
68
+ }
69
+ referencedBy(target, key) {
70
+ const dxn = target !== void 0 ? getTypeDXNFromSpecifier(target) : null;
71
+ return new _QueryClass({
72
+ type: "incoming-references",
73
+ anchor: this.ast,
74
+ property: key ?? null,
75
+ typename: dxn?.toString() ?? null
76
+ });
77
+ }
78
+ sourceOf(relation, predicates) {
79
+ return new _QueryClass({
80
+ type: "relation",
81
+ anchor: this.ast,
82
+ direction: "outgoing",
83
+ filter: relation !== void 0 ? type(relation, predicates).ast : void 0
84
+ });
85
+ }
86
+ targetOf(relation, predicates) {
87
+ return new _QueryClass({
88
+ type: "relation",
89
+ anchor: this.ast,
90
+ direction: "incoming",
91
+ filter: relation !== void 0 ? type(relation, predicates).ast : void 0
92
+ });
93
+ }
94
+ source() {
95
+ return new _QueryClass({
96
+ type: "relation-traversal",
97
+ anchor: this.ast,
98
+ direction: "source"
99
+ });
100
+ }
101
+ target() {
102
+ return new _QueryClass({
103
+ type: "relation-traversal",
104
+ anchor: this.ast,
105
+ direction: "target"
106
+ });
107
+ }
108
+ parent() {
109
+ return new _QueryClass({
110
+ type: "hierarchy-traversal",
111
+ anchor: this.ast,
112
+ direction: "to-parent"
113
+ });
114
+ }
115
+ children() {
116
+ return new _QueryClass({
117
+ type: "hierarchy-traversal",
118
+ anchor: this.ast,
119
+ direction: "to-children"
120
+ });
121
+ }
122
+ orderBy(...order) {
123
+ return new _QueryClass({
124
+ type: "order",
125
+ query: this.ast,
126
+ order: order.map((o) => o.ast)
127
+ });
128
+ }
129
+ limit(limit) {
130
+ return new _QueryClass({
131
+ type: "limit",
132
+ query: this.ast,
133
+ limit
134
+ });
135
+ }
136
+ from(arg, options) {
137
+ if (arg == null) {
138
+ throw new TypeError('Query.from() requires a valid data source argument (database, feed, query, scope, or "all-accessible-spaces").');
139
+ }
140
+ if (is2(arg)) {
141
+ return new _QueryClass({
142
+ type: "from",
143
+ query: this.ast,
144
+ from: {
145
+ _tag: "query",
146
+ query: arg.ast
147
+ }
148
+ });
149
+ }
150
+ if (arg === "all-accessible-spaces") {
151
+ return new _QueryClass({
152
+ type: "from",
153
+ query: this.ast,
154
+ from: {
155
+ _tag: "scope",
156
+ scope: {
157
+ ...options?.includeFeeds ? {
158
+ allQueuesFromSpaces: true
159
+ } : {}
160
+ }
161
+ }
162
+ });
163
+ }
164
+ if (_isScope(arg)) {
165
+ return new _QueryClass({
166
+ type: "from",
167
+ query: this.ast,
168
+ from: {
169
+ _tag: "scope",
170
+ scope: arg
171
+ }
172
+ });
173
+ }
174
+ const items = Array.isArray(arg) ? arg : [
175
+ arg
176
+ ];
177
+ if (items.length > 0 && isDatabase(items[0])) {
178
+ const databases = items;
179
+ return new _QueryClass({
180
+ type: "from",
181
+ query: this.ast,
182
+ from: {
183
+ _tag: "scope",
184
+ scope: {
185
+ spaceIds: databases.map((db) => db.spaceId),
186
+ ...options?.includeFeeds ? {
187
+ allQueuesFromSpaces: true
188
+ } : {}
189
+ }
190
+ }
191
+ });
192
+ }
193
+ if (items.length > 0) {
194
+ const typename = getTypename(items[0]);
195
+ if (typename === "org.dxos.type.view") {
196
+ throw new Error("Query.from(view) is not yet supported.");
197
+ }
198
+ if (typename === "org.dxos.type.collection") {
199
+ throw new Error("Query.from(collection) is not yet supported.");
200
+ }
201
+ for (const item of items) {
202
+ if (!instanceOf(Feed, item)) {
203
+ throw new TypeError(`Query.from() expects Feed objects (org.dxos.type.feed), but received an object with typename '${typename ?? "unknown"}'.`);
204
+ }
205
+ }
206
+ }
207
+ const feeds = items;
208
+ const queueDxns = feeds.flatMap((feed) => {
209
+ const dxn = getQueueDxn(feed);
210
+ return dxn ? [
211
+ dxn.toString()
212
+ ] : [];
213
+ });
214
+ return new _QueryClass({
215
+ type: "from",
216
+ query: this.ast,
217
+ from: {
218
+ _tag: "scope",
219
+ scope: {
220
+ queues: queueDxns
221
+ }
222
+ }
223
+ });
224
+ }
225
+ options(options) {
226
+ return new _QueryClass({
227
+ type: "options",
228
+ query: this.ast,
229
+ options
230
+ });
231
+ }
232
+ };
233
+ var is2 = (value) => {
234
+ return typeof value === "object" && value !== null && "~Query" in value;
235
+ };
236
+ var fromAst = (ast) => {
237
+ return new QueryClass(ast);
238
+ };
239
+ var select = (filter) => {
240
+ return new QueryClass({
241
+ type: "select",
242
+ filter: filter.ast
243
+ });
244
+ };
245
+ var type2 = (schema, predicates) => {
246
+ return new QueryClass({
247
+ type: "select",
248
+ filter: type(schema, predicates).ast
249
+ });
250
+ };
251
+ var all = (...queries) => {
252
+ if (queries.length === 0) {
253
+ throw new TypeError("Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())");
254
+ }
255
+ return new QueryClass({
256
+ type: "union",
257
+ queries: queries.map((q) => q.ast)
258
+ });
259
+ };
260
+ var without = (source, exclude) => {
261
+ return new QueryClass({
262
+ type: "set-difference",
263
+ source: source.ast,
264
+ exclude: exclude.ast
265
+ });
266
+ };
267
+ var from = (source, options) => {
268
+ const baseQuery = {
269
+ type: "select",
270
+ filter: everything().ast
271
+ };
272
+ const wrapper = new QueryClass(baseQuery);
273
+ return wrapper.from(source, options);
274
+ };
275
+ var SCOPE_KEYS = /* @__PURE__ */ new Set([
276
+ "spaceIds",
277
+ "queues",
278
+ "allQueuesFromSpaces"
279
+ ]);
280
+ var _isScope = (value) => {
281
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
282
+ return false;
283
+ }
284
+ return Object.keys(value).every((key) => SCOPE_KEYS.has(key));
285
+ };
286
+ var pretty = (query) => prettyQuery(query.ast);
287
+
288
+ export {
289
+ is2 as is,
290
+ fromAst,
291
+ select,
292
+ type2 as type,
293
+ all,
294
+ without,
295
+ from,
296
+ pretty,
297
+ Query_exports
298
+ };
299
+ //# sourceMappingURL=chunk-6ASBHRDG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Query.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport type * as EffectArray from 'effect/Array';\nimport type * as Schema from 'effect/Schema';\n\nimport { type QueryAST } from '@dxos/echo-protocol';\n\nimport type * as Collection from './Collection';\nimport * as Database from './Database';\nimport type * as Dataset from './Dataset';\nimport * as Feed from './Feed';\nimport * as Filter from './Filter';\nimport * as internal from './internal';\nimport * as Obj from './Obj';\nimport type * as Order from './Order';\nimport type * as Ref from './Ref';\nimport type * as Relation from './Relation';\nimport type * as View from './View';\n\n// TODO(dmaretskyi): Split up into interfaces for objects and relations so they can have separate verbs.\n// TODO(dmaretskyi): Undirected relation traversals.\n// TODO(wittjosiah): Make Filter & Query pipeable.\n\n/**\n * All property paths inside T that are references.\n */\n// TODO(dmaretskyi): Filter only properties that are references (or optional references, or unions that include references).\ntype RefPropKey<T> = keyof T & string;\n\n// TODO(burdon): Narrow T to Entity.Unknown?\nexport interface Query<T> {\n // TODO(dmaretskyi): See new effect-schema approach to variance.\n '~Query': { value: T };\n\n ast: QueryAST.Query;\n\n /**\n * Filter the current selection based on a filter.\n * @param filter - Filter to select the objects.\n * @returns Query for the selected objects.\n */\n 'select'(filter: Filter.Filter<T>): Query<T>;\n 'select'(props: Filter.Props<T>): Query<T>;\n\n /**\n * Traverse an outgoing reference.\n * @param key - Property path inside T that is a reference or optional reference.\n * @returns Query for the target of the reference.\n */\n 'reference'<K extends RefPropKey<T>>(\n key: K,\n ): Query<\n T[K] extends Ref.Unknown\n ? Ref.Target<T[K]>\n : T[K] extends Ref.Unknown | undefined\n ? Ref.Target<Exclude<T[K], undefined>>\n : never\n >;\n\n /**\n * Find objects referencing this object.\n * @param target - Schema of the referencing object. If not provided, matches any type.\n * @param key - Property path inside the referencing object that is a reference. If not provided, matches any property.\n * @returns Query for the referencing objects.\n */\n // TODO(dmaretskyi): any way to enforce `Ref.Target<Schema.Schema.Type<S>[key]> == T`?\n // TODO(dmaretskyi): Ability to go through arrays of references.\n 'referencedBy'<S extends Schema.Schema.All>(\n target: S | string,\n key: RefPropKey<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n 'referencedBy'<S extends Schema.Schema.All>(target: S | string): Query<Schema.Schema.Type<S>>;\n 'referencedBy'(): Query<any>;\n\n /**\n * Find relations where this object is the source.\n * @returns Query for the relation objects.\n * @param relation - Schema of the relation.\n * @param predicates - Predicates to filter the relation objects.\n */\n 'sourceOf'<S extends Schema.Schema.All>(\n relation?: S | string,\n predicates?: Filter.Props<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n\n /**\n * Find relations where this object is the target.\n * @returns Query for the relation objects.\n * @param relation - Schema of the relation.\n * @param predicates - Predicates to filter the relation objects.\n */\n 'targetOf'<S extends Schema.Schema.All>(\n relation?: S | string,\n predicates?: Filter.Props<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n\n /**\n * For a query for relations, get the source objects.\n * @returns Query for the source objects.\n */\n 'source'(): Query<Relation.SourceOf<T>>;\n\n /**\n * For a query for relations, get the target objects.\n * @returns Query for the target objects.\n */\n 'target'(): Query<Relation.TargetOf<T>>;\n\n /**\n * Get the parent object of the current selection.\n * @returns Query for the parent objects.\n */\n 'parent'(): Query<any>;\n\n /**\n * Get all child objects of the current selection.\n * @returns Query for the child objects.\n */\n 'children'(): Query<any>;\n\n /**\n * Order the query results.\n * Orders are specified in priority order. The first order will be applied first, etc.\n * @param order - Order to sort the results.\n * @returns Query for the ordered results.\n */\n 'orderBy'(...order: EffectArray.NonEmptyArray<Order.Order<T>>): Query<T>;\n\n /**\n * Limit the number of results.\n * @param limit - Maximum number of results to return.\n * @returns Query for the limited results.\n */\n 'limit'(limit: number): Query<T>;\n\n /**\n * Query from selected databases only.\n *\n * Example:\n *\n * ```ts\n * Query.select(Filter.type(Person)).from(db);\n * ```\n *\n * @param options.includeFeeds [false] - Whether to include feeds in the query. Default is to query from automerge documents only.\n */\n 'from'(database: Database.Database | Database.Database[], options?: { includeFeeds?: boolean }): Query<T>;\n\n /**\n * Query from selected feeds only.\n *\n * Example:\n *\n * ```ts\n * Query.select(Filter.type(Person)).from(feed);\n * ```\n *\n */\n 'from'(feeds: Feed.Feed | Feed.Feed[]): Query<T>;\n\n /**\n * Query from all accessible spaces.\n *\n * Example:\n *\n * ```ts\n * Query.select(Filter.type(Person)).from('all-accessible-spaces');\n * ```\n *\n * @param options.includeFeeds [false] - Whether to include feeds in the query. Default is to query from automerge documents only.\n */\n 'from'(allSpaces: 'all-accessible-spaces', options?: { includeFeeds?: boolean }): Query<T>;\n\n /**\n * Query from a dataset.\n * Currently only feeds are supported.\n *\n * Example:\n *\n * ```ts\n * Query.type(Person).from(feed);\n * ```\n */\n 'from'(dataset: Dataset.Dataset): Query<T>;\n\n /**\n * Query from the results of another query.\n *\n * Example:\n *\n * ```ts\n * Query.select(Filter.props({ foo: 'foo' })).from(Query.select(Filter.type(Contact)).reference('org'));\n * ```\n */\n 'from'(query: Any): Query<T>;\n\n /**\n * Query from a raw scope specification.\n */\n 'from'(scope: QueryAST.Scope): Query<T>;\n\n /**\n * Add options to a query.\n */\n 'options'(options: QueryAST.QueryOptions): Query<T>;\n}\n\nexport type Any = Query<any>;\n\nexport type Type<Q extends Any> = Q extends Query<infer T> ? T : never;\n\nclass QueryClass implements Any {\n private static 'variance': Any['~Query'] = {} as Any['~Query'];\n\n constructor(public readonly ast: QueryAST.Query) {}\n\n '~Query' = QueryClass.variance;\n\n select(filter: Filter.Any | Filter.Props<any>): Any {\n if (Filter.is(filter)) {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: filter.ast,\n });\n } else {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: Filter.props(filter).ast,\n });\n }\n }\n\n reference(key: string): Any {\n return new QueryClass({\n type: 'reference-traversal',\n anchor: this.ast,\n property: key,\n });\n }\n\n referencedBy(target?: Schema.Schema.All | string, key?: string): Any {\n const dxn = target !== undefined ? internal.getTypeDXNFromSpecifier(target) : null;\n return new QueryClass({\n type: 'incoming-references',\n anchor: this.ast,\n property: key ?? null,\n typename: dxn?.toString() ?? null,\n });\n }\n\n sourceOf(relation?: Schema.Schema.All | string, predicates?: Filter.Props<unknown> | undefined): Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'outgoing',\n filter: relation !== undefined ? Filter.type(relation, predicates).ast : undefined,\n });\n }\n\n targetOf(relation?: Schema.Schema.All | string, predicates?: Filter.Props<unknown> | undefined): Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'incoming',\n filter: relation !== undefined ? Filter.type(relation, predicates).ast : undefined,\n });\n }\n\n source(): Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'source',\n });\n }\n\n target(): Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'target',\n });\n }\n\n parent(): Any {\n return new QueryClass({\n type: 'hierarchy-traversal',\n anchor: this.ast,\n direction: 'to-parent',\n });\n }\n\n children(): Any {\n return new QueryClass({\n type: 'hierarchy-traversal',\n anchor: this.ast,\n direction: 'to-children',\n });\n }\n\n orderBy(...order: Order.Order<any>[]): Any {\n return new QueryClass({\n type: 'order',\n query: this.ast,\n order: order.map((o) => o.ast),\n });\n }\n\n limit(limit: number): Any {\n return new QueryClass({\n type: 'limit',\n query: this.ast,\n limit,\n });\n }\n\n from(\n arg:\n | Database.Database\n | Database.Database[]\n | Feed.Feed\n | Feed.Feed[]\n | Collection.Collection\n | View.View\n | Any\n | QueryAST.Scope\n | 'all-accessible-spaces',\n options?: { includeFeeds?: boolean },\n ): Any {\n if (arg == null) {\n throw new TypeError(\n 'Query.from() requires a valid data source argument (database, feed, query, scope, or \"all-accessible-spaces\").',\n );\n }\n\n if (is(arg)) {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: { _tag: 'query', query: arg.ast },\n });\n }\n\n if (arg === 'all-accessible-spaces') {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: {\n _tag: 'scope',\n scope: {\n ...(options?.includeFeeds ? { allQueuesFromSpaces: true } : {}),\n },\n },\n });\n }\n\n if (_isScope(arg)) {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: { _tag: 'scope', scope: arg },\n });\n }\n\n const items = Array.isArray(arg) ? arg : [arg];\n\n if (items.length > 0 && Database.isDatabase(items[0])) {\n const databases = items as Database.Database[];\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: {\n _tag: 'scope',\n scope: {\n spaceIds: databases.map((db) => db.spaceId),\n ...(options?.includeFeeds ? { allQueuesFromSpaces: true } : {}),\n },\n },\n });\n }\n\n if (items.length > 0) {\n const typename = Obj.getTypename(items[0] as Obj.Unknown);\n // TODO(dmaretskyi): Support querying from views.\n if (typename === 'org.dxos.type.view') {\n throw new Error('Query.from(view) is not yet supported.');\n }\n // TODO(dmaretskyi): Support querying from collections.\n if (typename === 'org.dxos.type.collection') {\n throw new Error('Query.from(collection) is not yet supported.');\n }\n // Validate that the items are Feed.Feed instances.\n for (const item of items) {\n if (!Obj.instanceOf(Feed.Feed, item)) {\n throw new TypeError(\n `Query.from() expects Feed objects (org.dxos.type.feed), but received an object with typename '${typename ?? 'unknown'}'.`,\n );\n }\n }\n }\n\n const feeds = items as Feed.Feed[];\n const queueDxns = feeds.flatMap((feed) => {\n const dxn = Feed.getQueueDxn(feed);\n return dxn ? [dxn.toString()] : [];\n });\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: {\n _tag: 'scope',\n scope: {\n queues: queueDxns,\n },\n },\n });\n }\n\n options(options: QueryAST.QueryOptions): Any {\n return new QueryClass({\n type: 'options',\n query: this.ast,\n options,\n });\n }\n}\n\nexport const is = (value: unknown): value is Any => {\n return typeof value === 'object' && value !== null && '~Query' in value;\n};\n\n/** Construct a query from an ast. */\nexport const fromAst = (ast: QueryAST.Query): Any => {\n return new QueryClass(ast);\n};\n\n/**\n * Select objects based on a filter.\n * @param filter - Filter to select the objects.\n * @returns Query for the selected objects.\n */\nexport const select = <F extends Filter.Any>(filter: F): Query<Filter.Type<F>> => {\n return new QueryClass({\n type: 'select',\n filter: filter.ast,\n });\n};\n\n/**\n * Query for objects of a given schema.\n * @param schema - Schema of the objects.\n * @param predicates - Predicates to filter the objects.\n * @returns Query for the objects.\n *\n * Shorthand for: `Query.select(Filter.type(schema, predicates))`.\n */\nexport const type: {\n <S extends Schema.Schema.All>(\n schema: S,\n predicates?: Filter.Props<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n (schema: string, predicates?: Filter.Props<unknown>): Query<any>;\n} = (schema: Schema.Schema.All | string, predicates?: Filter.Props<unknown>): Any => {\n return new QueryClass({\n type: 'select',\n filter: Filter.type(schema, predicates).ast,\n });\n};\n\n/**\n * Combine results of multiple queries.\n * @param queries - Queries to combine.\n * @returns Query for the combined results.\n */\n// TODO(dmaretskyi): Rename to `combine` or `union`.\nexport const all = (...queries: Any[]): Any => {\n if (queries.length === 0) {\n throw new TypeError(\n 'Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())',\n );\n }\n return new QueryClass({\n type: 'union',\n queries: queries.map((q) => q.ast),\n });\n};\n\n/**\n * Subtract one query from another.\n * @param source - Query to subtract from.\n * @param exclude - Query to subtract.\n * @returns Query for the results of the source query minus the results of the exclude query.\n */\nexport const without = <T>(source: Query<T>, exclude: Query<T>): Query<T> => {\n return new QueryClass({\n type: 'set-difference',\n source: source.ast,\n exclude: exclude.ast,\n });\n};\n\n/**\n * Create a query scoped to a data source.\n * The returned query selects everything from the source; chain `.select()` to narrow results.\n *\n * @param source - Data source: database, feed, 'all-accessible-spaces', or another query.\n * @returns Query scoped to the given source.\n */\nexport const from = (\n source:\n | Database.Database\n | Database.Database[]\n | Feed.Feed\n | Feed.Feed[]\n | Any\n | QueryAST.Scope\n | 'all-accessible-spaces',\n options?: { includeFeeds?: boolean },\n): Any => {\n const baseQuery: QueryAST.Query = {\n type: 'select',\n filter: Filter.everything().ast,\n };\n const wrapper = new QueryClass(baseQuery);\n return wrapper.from(source as any, options);\n};\n\nconst SCOPE_KEYS = new Set(['spaceIds', 'queues', 'allQueuesFromSpaces']);\n\n/** Detect a raw Scope object (plain object with only Scope-valid keys). */\nconst _isScope = (value: unknown): value is QueryAST.Scope => {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n return false;\n }\n return Object.keys(value).every((key) => SCOPE_KEYS.has(key));\n};\n\n/**\n * Returns a human-readable string representation of a Query AST.\n */\nexport const pretty = (query: Any): string => internal.prettyQuery(query.ast);\n"],
5
+ "mappings": "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",
6
+ "names": ["is", "type", "QueryClass", "ast", "variance", "select", "filter", "is", "type", "selection", "props", "reference", "key", "anchor", "property", "referencedBy", "target", "dxn", "undefined", "getTypeDXNFromSpecifier", "typename", "toString", "sourceOf", "relation", "predicates", "direction", "targetOf", "source", "parent", "children", "orderBy", "order", "query", "map", "o", "limit", "from", "arg", "options", "TypeError", "_tag", "scope", "includeFeeds", "allQueuesFromSpaces", "_isScope", "items", "Array", "isArray", "length", "isDatabase", "databases", "spaceIds", "db", "spaceId", "getTypename", "Error", "item", "instanceOf", "Feed", "feeds", "queueDxns", "flatMap", "feed", "getQueueDxn", "queues", "value", "fromAst", "schema", "all", "queries", "q", "without", "exclude", "baseQuery", "everything", "wrapper", "SCOPE_KEYS", "Set", "Object", "keys", "every", "has", "pretty", "prettyQuery"]
7
+ }
@@ -0,0 +1,27 @@
1
+ import {
2
+ JsonSchemaType,
3
+ toEffectSchema,
4
+ toJsonSchema
5
+ } from "./chunk-QW7YUKSA.mjs";
6
+ import {
7
+ __export
8
+ } from "./chunk-J5LGTIGS.mjs";
9
+
10
+ // src/JsonSchema.ts
11
+ var JsonSchema_exports = {};
12
+ __export(JsonSchema_exports, {
13
+ JsonSchema: () => JsonSchema,
14
+ toEffectSchema: () => toEffectSchema2,
15
+ toJsonSchema: () => toJsonSchema2
16
+ });
17
+ var toEffectSchema2 = toEffectSchema;
18
+ var toJsonSchema2 = toJsonSchema;
19
+ var JsonSchema = JsonSchemaType;
20
+
21
+ export {
22
+ toEffectSchema2 as toEffectSchema,
23
+ toJsonSchema2 as toJsonSchema,
24
+ JsonSchema,
25
+ JsonSchema_exports
26
+ };
27
+ //# sourceMappingURL=chunk-7I3YIAT2.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/JsonSchema.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport type * as Schema from 'effect/Schema';\n\nimport * as jsonSchemaInternal from './internal/JsonSchema';\n\n/**\n * Decode JSON Schema to Effect Schema.\n */\nexport const toEffectSchema = jsonSchemaInternal.toEffectSchema;\n\n/**\n * Encode Effect Schema to JSON Schema.\n */\nexport const toJsonSchema = jsonSchemaInternal.toJsonSchema;\n\n/**\n * Serializable JsonSchema type definition.\n */\nexport type JsonSchema = jsonSchemaInternal.JsonSchemaType;\n\nexport const JsonSchema: Schema.Schema<jsonSchemaInternal.JsonSchemaType> = jsonSchemaInternal.JsonSchemaType;\n"],
5
+ "mappings": ";;;;;;;;;;AAAA;;;wBAAAA;EAAA,oBAAAC;;AAaO,IAAMC,kBAAoCA;AAK1C,IAAMC,gBAAkCA;AAOxC,IAAMC,aAAkFC;",
6
+ "names": ["toEffectSchema", "toJsonSchema", "toEffectSchema", "toJsonSchema", "JsonSchema", "JsonSchemaType"]
7
+ }
@@ -0,0 +1,97 @@
1
+ import {
2
+ EchoObjectSchema,
3
+ EchoRelationSchema,
4
+ EchoSchema,
5
+ PersistentSchema,
6
+ isMutable
7
+ } from "./chunk-BQN7EDPH.mjs";
8
+ import {
9
+ getSchemaDXN,
10
+ getSchemaTypename,
11
+ getSchemaVersion,
12
+ getTypeAnnotation
13
+ } from "./chunk-2KHZ36F5.mjs";
14
+ import {
15
+ EntityKind,
16
+ SchemaKindId
17
+ } from "./chunk-TBKX6JQO.mjs";
18
+ import {
19
+ __export
20
+ } from "./chunk-J5LGTIGS.mjs";
21
+
22
+ // src/Type.ts
23
+ var Type_exports = {};
24
+ __export(Type_exports, {
25
+ PersistentType: () => PersistentType,
26
+ RuntimeType: () => RuntimeType,
27
+ getDXN: () => getDXN,
28
+ getMeta: () => getMeta,
29
+ getTypename: () => getTypename,
30
+ getVersion: () => getVersion,
31
+ isMutable: () => isMutable2,
32
+ isObjectSchema: () => isObjectSchema,
33
+ isRelationSchema: () => isRelationSchema,
34
+ object: () => object,
35
+ relation: () => relation
36
+ });
37
+ import { invariant } from "@dxos/invariant";
38
+ var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Type.ts";
39
+ var RuntimeType = EchoSchema;
40
+ var object = EchoObjectSchema;
41
+ var PersistentType = PersistentSchema;
42
+ var relation = EchoRelationSchema;
43
+ var isObjectSchema = (schema) => {
44
+ return schema[SchemaKindId] === EntityKind.Object;
45
+ };
46
+ var isRelationSchema = (schema) => {
47
+ return schema[SchemaKindId] === EntityKind.Relation;
48
+ };
49
+ var getDXN = (schema) => {
50
+ return getSchemaDXN(schema);
51
+ };
52
+ var getTypename = (schema) => {
53
+ const typename = getSchemaTypename(schema);
54
+ invariant(typeof typename === "string" && !typename.startsWith("dxn:"), "Invalid typename", {
55
+ F: __dxlog_file,
56
+ L: 230,
57
+ S: void 0,
58
+ A: [
59
+ "typeof typename === 'string' && !typename.startsWith('dxn:')",
60
+ "'Invalid typename'"
61
+ ]
62
+ });
63
+ return typename;
64
+ };
65
+ var getVersion = (schema) => {
66
+ const version = getSchemaVersion(schema);
67
+ invariant(typeof version === "string" && version.match(/^\d+\.\d+\.\d+$/), "Invalid version", {
68
+ F: __dxlog_file,
69
+ L: 240,
70
+ S: void 0,
71
+ A: [
72
+ "typeof version === 'string' && version.match(/^\\d+\\.\\d+\\.\\d+$/)",
73
+ "'Invalid version'"
74
+ ]
75
+ });
76
+ return version;
77
+ };
78
+ var isMutable2 = isMutable;
79
+ var getMeta = (schema) => {
80
+ return getTypeAnnotation(schema);
81
+ };
82
+
83
+ export {
84
+ RuntimeType,
85
+ object,
86
+ PersistentType,
87
+ relation,
88
+ isObjectSchema,
89
+ isRelationSchema,
90
+ getDXN,
91
+ getTypename,
92
+ getVersion,
93
+ isMutable2 as isMutable,
94
+ getMeta,
95
+ Type_exports
96
+ };
97
+ //# sourceMappingURL=chunk-A2WIDONZ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Type.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport type * as Schema from 'effect/Schema';\n\nimport { type EncodedReference } from '@dxos/echo-protocol';\nimport { invariant } from '@dxos/invariant';\nimport { type DXN } from '@dxos/keys';\nimport { type ToMutable } from '@dxos/util';\n\nimport type * as Entity from './Entity';\nimport * as internal from './internal';\nimport * as typeInternal from './internal/Type';\nimport type * as ObjModule from './Obj';\nimport type * as RelationModule from './Relation';\n\n/**\n * Dynamic type that can be constructed, mutated, and persisted in the ECHO database.\n */\nexport const RuntimeType = typeInternal.EchoSchema;\n\n/**\n * Dynamic type that can be constructed, mutated, and persisted in the ECHO database.\n */\nexport type RuntimeType = typeInternal.EchoSchema;\n\n//\n// Internal types (not exported)\n//\n\n/**\n * Type that marks a schema as an ECHO schema.\n * The value indicates the entity kind (Object or Relation).\n */\ntype EchoSchemaKind<K extends internal.EntityKind = internal.EntityKind> = {\n readonly [internal.SchemaKindId]: K;\n};\n\n//\n// Obj - Runtime schema for any ECHO object\n//\n\n/**\n * TypeScript type for an ECHO object schema.\n * `T` is the instance type produced by the schema.\n * `Fields` is the optional struct fields type for introspection.\n *\n * @example\n * ```ts\n * const PersonSchema: Type.Obj<Person> = Schema.Struct({\n * name: Schema.String,\n * }).pipe(Type.object({ typename: 'Person', version: '0.1.0' }));\n *\n * // Access fields for introspection:\n * Object.keys(PersonSchema.fields); // ['name']\n * ```\n */\nexport interface Obj<T, Fields extends Schema.Struct.Fields = Schema.Struct.Fields>\n extends\n internal.TypeMeta,\n EchoSchemaKind<internal.EntityKind.Object>,\n Schema.AnnotableClass<\n Obj<T, Fields>,\n Entity.OfKind<typeof Entity.Kind.Object> & T,\n Schema.Simplify<ObjModule.BaseObjJson & ToMutable<T>>,\n never\n > {\n /**\n * The fields defined in the original struct schema.\n * Allows accessing field definitions for introspection.\n */\n readonly fields: Fields;\n}\n\n/**\n * Structural base type for any ECHO object schema.\n * Accepts both static schemas (created with Type.object()) and EchoSchema.\n * NOTE: Does not include the brand symbol to avoid TS4053 declaration portability issues.\n * Use Type.isObjectSchema() for runtime type guards.\n */\ntype ObjectSchemaBase = Schema.Schema.AnyNoContext & {\n readonly typename: string;\n readonly version: string;\n};\n\n/**\n * Type that represents any ECHO object schema.\n * Accepts both static schemas (Type.object()) and mutable schemas (EchoSchema).\n */\nexport type AnyObj = ObjectSchemaBase;\n\n/**\n * Factory function to create an ECHO object schema.\n * Adds object metadata annotations to an Effect schema.\n *\n * @example\n * ```ts\n * const Person = Schema.Struct({\n * name: Schema.String,\n * }).pipe(Type.object({ typename: 'com.example.type.person', version: '0.1.0' }));\n * ```\n */\nexport const object: {\n (opts: internal.TypeMeta): <Self extends Schema.Schema.Any>(self: Self) => Obj<Schema.Schema.Type<Self>>;\n} = internal.EchoObjectSchema as any;\n\n//\n// PersistentType (Schema stored in database)\n//\n\nexport const PersistentType: Obj<typeInternal.PersistentSchema> = typeInternal.PersistentSchema as any;\n\nexport interface PersistentType extends Schema.Schema.Type<typeof PersistentType> {}\n\n/**\n * TypeScript type for an ECHO relation schema.\n * `T` is the instance type produced by the schema (excluding source/target).\n * `Source` and `Target` are the endpoint types.\n * `Fields` is the optional struct fields type for introspection.\n */\nexport interface Relation<T, Source, Target, Fields extends Schema.Struct.Fields = Schema.Struct.Fields>\n extends\n internal.TypeMeta,\n EchoSchemaKind<internal.EntityKind.Relation>,\n Schema.AnnotableClass<\n Relation<T, Source, Target, Fields>,\n Entity.OfKind<typeof Entity.Kind.Relation> & RelationModule.Endpoints<Source, Target> & T,\n Schema.Simplify<RelationModule.BaseRelationJson & ToMutable<T>>,\n never\n > {\n /**\n * The fields defined in the original struct schema.\n * Allows accessing field definitions for introspection.\n */\n readonly fields: Fields;\n}\n\n/**\n * Structural base type for any ECHO relation schema.\n * Accepts static schemas (created with Type.relation()).\n * NOTE: Does not include the brand symbol to avoid TS4053 declaration portability issues.\n * Use Type.isRelationSchema() for runtime type guards.\n */\ntype RelationSchemaBase = Schema.Schema.AnyNoContext & {\n readonly typename: string;\n readonly version: string;\n};\n\n/**\n * Type that represents any ECHO relation schema.\n * Accepts static schemas (Type.relation()).\n */\nexport type AnyRelation = RelationSchemaBase;\n\n/**\n * Factory function to create an ECHO relation schema.\n * Adds relation metadata annotations to an Effect schema.\n *\n * @example\n * ```ts\n * const WorksFor = Schema.Struct({\n * role: Schema.String,\n * }).pipe(Type.relation({\n * typename: 'com.example.type.works-for',\n * version: '0.1.0',\n * source: Person,\n * target: Company,\n * }));\n * ```\n */\nexport const relation: {\n <SourceSchema extends Schema.Schema.AnyNoContext, TargetSchema extends Schema.Schema.AnyNoContext>(\n opts: internal.EchoRelationSchemaOptions<SourceSchema, TargetSchema>,\n ): <Self extends Schema.Schema.Any>(\n self: Self,\n ) => Relation<Schema.Schema.Type<Self>, Schema.Schema.Type<SourceSchema>, Schema.Schema.Type<TargetSchema>>;\n} = internal.EchoRelationSchema as any;\n\n/**\n * Type alias for any ECHO entity schema (object or relation).\n * Use this in type annotations for schema parameters.\n */\nexport type AnyEntity = AnyObj | AnyRelation;\n\n/**\n * Type guard to check if a schema is an object schema.\n * NOTE: This checks SCHEMAS, not instances. Use Obj.isObject for instances.\n */\nexport const isObjectSchema = (schema: AnyEntity): schema is AnyObj => {\n return (schema as any)[internal.SchemaKindId] === internal.EntityKind.Object;\n};\n\n/**\n * Type guard to check if a schema is a relation schema.\n * NOTE: This checks SCHEMAS, not instances. Use Relation.isRelation for instances.\n */\nexport const isRelationSchema = (schema: AnyEntity): schema is AnyRelation => {\n return (schema as any)[internal.SchemaKindId] === internal.EntityKind.Relation;\n};\n\n/**\n * Type that represents any Ref schema (with unknown target type).\n * This is a schema type, not an instance type.\n */\nexport type AnyRef = Schema.Schema<internal.Ref<any>, EncodedReference>;\n\n//\n// Schema utility functions\n//\n\n/**\n * Gets the full DXN of the schema.\n * Will include the version if it's a `type` DXN.\n * @example \"dxn:com.example.type.person:0.1.0\"\n * @example \"dxn:echo:SSSSSSSSSS:XXXXXXXXXXXXX\"\n */\nexport const getDXN = (schema: AnyEntity): DXN | undefined => {\n return internal.getSchemaDXN(schema);\n};\n\n/**\n * @param schema - Schema to get the typename from.\n * @returns The typename of the schema. Example: `com.example.type.person`.\n */\nexport const getTypename = (schema: AnyEntity): string => {\n const typename = internal.getSchemaTypename(schema);\n invariant(typeof typename === 'string' && !typename.startsWith('dxn:'), 'Invalid typename');\n return typename;\n};\n\n/**\n * Gets the version of the schema.\n * @example 0.1.0\n */\nexport const getVersion = (schema: AnyEntity): string => {\n const version = internal.getSchemaVersion(schema);\n invariant(typeof version === 'string' && version.match(/^\\d+\\.\\d+\\.\\d+$/), 'Invalid version');\n return version;\n};\n\n/**\n * @returns True if the schema is mutable.\n */\nexport const isMutable = typeInternal.isMutable;\n\n/**\n * ECHO type metadata.\n */\nexport type Meta = internal.TypeAnnotation;\n\n/**\n * Gets the meta data of the schema.\n */\nexport const getMeta = (schema: AnyEntity): Meta | undefined => {\n return internal.getTypeAnnotation(schema);\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;mBAAAA;EAAA;;;;;AASA,SAASC,iBAAiB;;AAanB,IAAMC,cAA2BC;AAmFjC,IAAMC,SAEAC;AAMN,IAAMC,iBAAkEC;AA4DxE,IAAMC,WAMAC;AAYN,IAAMC,iBAAiB,CAACC,WAAAA;AAC7B,SAAQA,OAAwBC,YAAY,MAAeC,WAAWC;AACxE;AAMO,IAAMC,mBAAmB,CAACJ,WAAAA;AAC/B,SAAQA,OAAwBC,YAAY,MAAeC,WAAWG;AACxE;AAkBO,IAAMC,SAAS,CAACN,WAAAA;AACrB,SAAgBO,aAAaP,MAAAA;AAC/B;AAMO,IAAMQ,cAAc,CAACR,WAAAA;AAC1B,QAAMS,WAAoBC,kBAAkBV,MAAAA;AAC5CW,YAAU,OAAOF,aAAa,YAAY,CAACA,SAASG,WAAW,MAAA,GAAS,oBAAA;;;;;;;;;AACxE,SAAOH;AACT;AAMO,IAAMI,aAAa,CAACb,WAAAA;AACzB,QAAMc,UAAmBC,iBAAiBf,MAAAA;AAC1CW,YAAU,OAAOG,YAAY,YAAYA,QAAQE,MAAM,iBAAA,GAAoB,mBAAA;;;;;;;;;AAC3E,SAAOF;AACT;AAKO,IAAMG,aAAyBA;AAU/B,IAAMC,UAAU,CAAClB,WAAAA;AACtB,SAAgBmB,kBAAkBnB,MAAAA;AACpC;",
6
+ "names": ["isMutable", "invariant", "RuntimeType", "EchoSchema", "object", "EchoObjectSchema", "PersistentType", "PersistentSchema", "relation", "EchoRelationSchema", "isObjectSchema", "schema", "SchemaKindId", "EntityKind", "Object", "isRelationSchema", "Relation", "getDXN", "getSchemaDXN", "getTypename", "typename", "getSchemaTypename", "invariant", "startsWith", "getVersion", "version", "getSchemaVersion", "match", "isMutable", "getMeta", "getTypeAnnotation"]
7
+ }
@@ -0,0 +1,21 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-J5LGTIGS.mjs";
4
+
5
+ // src/Key.ts
6
+ var Key_exports = {};
7
+ __export(Key_exports, {
8
+ ForeignKey: () => ForeignKey,
9
+ ObjectId: () => ObjectId,
10
+ SpaceId: () => SpaceId
11
+ });
12
+ import { ForeignKey } from "@dxos/echo-protocol";
13
+ import { SpaceId, ObjectId } from "@dxos/keys";
14
+
15
+ export {
16
+ Key_exports,
17
+ ForeignKey,
18
+ SpaceId,
19
+ ObjectId
20
+ };
21
+ //# sourceMappingURL=chunk-ANHVGJI4.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Key.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// TODO(wittjosiah): Should this be a subset of Type?\n\nexport { ForeignKey } from '@dxos/echo-protocol';\nexport { SpaceId, ObjectId } from '@dxos/keys';\n"],
5
+ "mappings": ";;;;;AAAA;;;;;;AAMA,SAASA,kBAAkB;AAC3B,SAASC,SAASC,gBAAgB;",
6
+ "names": ["ForeignKey", "SpaceId", "ObjectId"]
7
+ }
@@ -0,0 +1,7 @@
1
+ // src/SchemaRegistry.ts
2
+ var SchemaRegistry_exports = {};
3
+
4
+ export {
5
+ SchemaRegistry_exports
6
+ };
7
+ //# sourceMappingURL=chunk-BNCCGLJN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/SchemaRegistry.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Types from 'effect/Types';\n\nimport type * as JsonSchema from './JsonSchema';\nimport type * as Key from './Key';\nimport type * as QueryResult from './QueryResult';\nimport type * as Type from './Type';\n\n// TODO(wittjosiah): Replace w/ Query.Query.\nexport type Query = {\n /**\n * Filter by schema ID.\n * Schema id is a DXN with `echo` or `type` kind.\n */\n id?: string | string[];\n\n /**\n * Id of the backing ECHO object.\n */\n backingObjectId?: Key.ObjectId | Key.ObjectId[];\n\n /**\n * One or more typenames to filter by.\n */\n typename?: string | string[];\n\n /**\n * [Semver Range](https://docs.npmjs.com/cli/v6/using-npm/semver#ranges) for the schema version.\n */\n version?: string;\n\n /**\n * Where to look for the schema.\n *\n * Database schema are stored in the database of the current space.\n * Runtime schema are registered in the runtime.\n *\n * @default ['database']\n */\n location?: ('database' | 'runtime')[];\n\n /**\n * Include system schemas.\n * @default false\n *\n * The system schema include but are not limited to:\n * - org.dxos.type.schema\n */\n includeSystem?: boolean;\n};\n\n/**\n * Input for schema registration.\n * The typename, version and schema mutability metadata is read from the schema annotations.\n *\n * Accepts:\n * - Branded ECHO schemas created with Type.Obj() or Type.Relation()\n * - JSON schema with typename and version\n */\nexport type RegisterSchemaInput =\n | Type.AnyEntity\n | {\n typename: string;\n version: string;\n jsonSchema: JsonSchema.JsonSchema;\n /**\n * Display name of the schema.\n */\n name?: string;\n };\n\nexport type ExtractQueryResult<Query> = Query extends { location: ('database' | 'runtime')[] }\n ? Type.AnyEntity\n : Type.RuntimeType;\n\n// TODO(dmaretskyi): Rename TypeRegistry\nexport interface SchemaRegistry {\n /**\n * Checks if the provided schema is registered.\n */\n // TODO(burdon): Type?\n hasSchema(schema: Type.AnyEntity): boolean;\n\n /**\n * Registers the provided schema.\n *\n * @returns Mutable runtime instances of schemas that were registered.\n *\n * The behavior of this method depends on the state of the database.\n * The general principle is that the schema will be upserted into the space.\n * If an equivalent schema with the same name and version already exists, the method does nothing.\n * If a different schema with the same name and version exists, the method throws an error.\n * If no schema with the same name and version exists, a new schema will be inserted based on semantic versioning rules.\n */\n register(input: RegisterSchemaInput[]): Promise<Type.RuntimeType[]>;\n\n /**\n *\n */\n query<Q extends Types.NoExcessProperties<Query, Q>>(\n query?: Q & Query,\n ): QueryResult.QueryResult<ExtractQueryResult<Q>>;\n}\n"],
5
+ "mappings": ";AAAA;",
6
+ "names": []
7
+ }