@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,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/JsonSchema/annotations.ts", "../../../src/internal/JsonSchema/json-schema-type.ts", "../../../src/internal/JsonSchema/json-schema.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { GeneratorAnnotationId, LabelAnnotationId, PropertyMetaAnnotationId } from '../Annotation';\nimport { CurrencyAnnotationId, FormatAnnotationId } from '../Format';\nimport { type JsonSchemaEchoAnnotations, type JsonSchemaType } from '../JsonSchema';\n\n//\n// This file configures annotations for JSON encoding/decoding.\n//\n\n// Go on the root level.\ntype RootJsonSchemaProperty = keyof JsonSchemaType;\n\n// Go on the namespaced `annotations` property.\ntype NamespacedJsonSchemaProperty = keyof JsonSchemaEchoAnnotations;\n\n/**\n * List of annotations for JSON encoding/decoding.\n * Omits default effect-schema annotations since they are encoded with default serializer.\n */\n// TODO(burdon): Reconcile with `EchoAnnotations`.\nexport const CustomAnnotations: Partial<Record<RootJsonSchemaProperty, symbol>> = {\n format: FormatAnnotationId,\n currency: CurrencyAnnotationId,\n};\n\n/**\n * List of annotations for JSON decoding only.\n * Includes default effect annotations.\n */\nexport const DecodedAnnotations: Partial<Record<RootJsonSchemaProperty, symbol>> = {\n title: SchemaAST.TitleAnnotationId,\n description: SchemaAST.DescriptionAnnotationId,\n};\n\n/**\n * Annotations that go into ECHO namespace in json-schema.\n */\n// TODO(dmaretskyi): Consider removing ECHO namespace and putting them at the top level.\n// TODO(dmaretskyi): Move to format.ts when circular imports are solved\nexport const EchoAnnotations: Partial<Record<NamespacedJsonSchemaProperty, symbol>> = {\n // TODO(dmaretskyi): `FieldLookupAnnotationId` might go here, but lets remove it entirely and use LabelAnnotation instead.\n meta: PropertyMetaAnnotationId,\n generator: GeneratorAnnotationId,\n labelProp: LabelAnnotationId,\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { JsonPath, type JsonProp } from '@dxos/effect';\n\nimport { type Mutable } from '../common/proxy';\nimport { EntityKindSchema } from '../common/types';\nimport { FormatAnnotation, TypeFormat } from '../Format';\n\n//\n// JSON Schema\n//\n\n// TODO(burdon): Reuse/reconcile with ScalarTypeEnum (handle arrays).\nconst SimpleTypes = Schema.Literal('array', 'boolean', 'integer', 'null', 'number', 'object', 'string');\n\nconst NonNegativeInteger = Schema.Number.pipe(Schema.greaterThanOrEqualTo(0));\n\nconst StringArray = Schema.Array(Schema.String);\n\nconst JsonSchemaOrBoolean = Schema.Union(\n Schema.suspend(() => JsonSchemaType),\n Schema.Boolean,\n);\n\n/**\n * Go under the `annotations` property.\n */\nexport const JsonSchemaEchoAnnotations = Schema.Struct({\n /**\n * Label for this schema.\n * Mapped from {@link LabelAnnotationId}.\n */\n labelProp: Schema.optional(Schema.Union(JsonPath, Schema.Array(JsonPath))),\n\n /**\n * Generator function for this schema.\n * Mapped from {@link GeneratorAnnotationId}.\n */\n generator: Schema.optional(Schema.Union(Schema.String, Schema.Tuple(Schema.String, Schema.Number))),\n\n /**\n * {@link PropertyMeta} annotations get serialized here.\n */\n meta: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.Any,\n }),\n ),\n\n /**\n * @deprecated\n */\n // TODO(dmaretskyi): We risk old schema not passing validation due to the extra fields. Remove when we are sure this is safe.\n type: Schema.optional(\n Schema.Struct({\n typename: Schema.String,\n version: Schema.String,\n\n // Not used.\n schemaId: Schema.optional(Schema.String),\n }),\n ),\n\n /**\n * @deprecated Superseded by `meta`.\n */\n annotations: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.Any,\n }),\n ),\n});\nexport type JsonSchemaEchoAnnotations = Schema.Schema.Type<typeof JsonSchemaEchoAnnotations>;\n\n/**\n * Describes a schema for the JSON-schema objects stored in ECHO.\n * Contains extensions for ECHO (e.g., references).\n * Ref: https://json-schema.org/draft-07/schema\n */\n// TODO(burdon): Integrate with Effect Serializable?\n// TODO(dmaretskyi): Update to latest draft: https://json-schema.org/draft/2020-12\nconst _JsonSchemaType = Schema.Struct({\n /**\n * Identifier for this schema.\n * This schema might be referenced by $ref clause in other schemas.\n */\n // TODO(dmaretskyi): Specify how the ids are generated.\n // TODO(dmaretskyi): For type dxns, should this include the version?\n $id: Schema.optional(Schema.String),\n\n /**\n * Schema of this schema.\n * Set to \"https://json-schema.org/draft-07/schema\".\n */\n $schema: Schema.optional(Schema.String),\n\n /**\n * Reference to another schema.\n */\n $ref: Schema.optional(Schema.String),\n\n /**\n * Comments are ignored when interpreting the schema.\n */\n $comment: Schema.optional(Schema.String),\n\n /**\n * Defines whether this schema is an object schema or a relation schema.\n */\n entityKind: Schema.optional(EntityKindSchema),\n\n /**\n * Typename of this schema.\n * Only on schema representing an ECHO object.\n *\n * @example 'com.example.type.my-type'\n */\n typename: Schema.optional(Schema.String),\n\n /**\n * Version of this schema.\n * Custom dialect for ECHO.\n */\n version: Schema.optional(Schema.String),\n\n /**\n * Target of this relation.\n * Only for relation schemas.\n * The referenced schema must be an object schema.\n */\n relationTarget: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n\n /**\n * Source of this relation.\n * Only for relation schemas.\n * The referenced schema must be an object schema.\n */\n relationSource: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n\n /**\n * Title of this schema.\n */\n title: Schema.optional(Schema.String),\n\n /**\n * Description of this schema.\n */\n description: Schema.optional(Schema.String),\n\n /**\n * Whether this schema is read-only.\n */\n readOnly: Schema.optional(Schema.Boolean),\n\n /**\n * Whether this schema is write-only.\n */\n writeOnly: Schema.optional(Schema.Boolean),\n\n /**\n * Examples of instances of this schema.\n */\n examples: Schema.optional(Schema.Array(Schema.Any)),\n\n /**\n * Default value for this schema.\n */\n default: Schema.optional(Schema.Any),\n\n /**\n * This schema only matches values that are equal to this value.\n */\n const: Schema.optional(Schema.Any),\n\n /**\n * This schema only matches one of the values in this array.\n */\n enum: Schema.optional(Schema.Array(Schema.Any)),\n\n /**\n * Base type of the schema.\n */\n type: Schema.optional(Schema.Union(SimpleTypes, Schema.Array(SimpleTypes))),\n\n //\n // Numbers.\n //\n\n multipleOf: Schema.optional(Schema.Number.pipe(Schema.greaterThan(0))),\n maximum: Schema.optional(Schema.Number),\n exclusiveMaximum: Schema.optional(Schema.Number),\n minimum: Schema.optional(Schema.Number),\n exclusiveMinimum: Schema.optional(Schema.Number),\n\n //\n // Strings.\n //\n\n maxLength: Schema.optional(NonNegativeInteger),\n\n /**\n * Regex pattern for strings.\n */\n pattern: Schema.optional(Schema.String.pipe(FormatAnnotation.set(TypeFormat.Regex))),\n\n /**\n * Serialized from {@link FormatAnnotationId}.\n */\n format: Schema.optional(Schema.String),\n\n //\n // Arrays\n //\n\n minLength: Schema.optional(NonNegativeInteger),\n items: Schema.optional(\n Schema.Union(\n Schema.suspend(() => JsonSchemaType),\n Schema.Array(Schema.suspend(() => JsonSchemaType)),\n ),\n ),\n additionalItems: Schema.optional(\n Schema.Union(\n Schema.suspend(() => JsonSchemaType),\n Schema.Boolean,\n ),\n ),\n maxItems: Schema.optional(NonNegativeInteger),\n minItems: Schema.optional(NonNegativeInteger),\n uniqueItems: Schema.optional(Schema.Boolean),\n contains: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n\n //\n // Objects\n //\n\n maxProperties: Schema.optional(NonNegativeInteger),\n minProperties: Schema.optional(NonNegativeInteger),\n required: Schema.optional(StringArray),\n\n /**\n * Non-standard JSON Schema extension.\n * Defines the order of properties in the object.\n * The unmentioned properties are placed at the end.\n *\n * Related: https://github.com/json-schema/json-schema/issues/119\n */\n propertyOrder: Schema.optional(StringArray),\n\n additionalProperties: Schema.optional(JsonSchemaOrBoolean),\n properties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.suspend(() => JsonSchemaType),\n }),\n ),\n patternProperties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.suspend(() => JsonSchemaType),\n }),\n ),\n propertyNames: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n\n definitions: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.suspend(() => JsonSchemaType),\n }),\n ),\n dependencies: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.suspend(() => Schema.Union(Schema.String, StringArray, JsonSchemaType)).annotations({\n identifier: 'dependency',\n description: 'Dependency',\n }),\n }),\n ),\n\n contentMediaType: Schema.optional(Schema.String),\n contentEncoding: Schema.optional(Schema.String),\n\n if: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n then: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n else: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n allOf: Schema.optional(Schema.Array(Schema.suspend(() => JsonSchemaType))),\n anyOf: Schema.optional(Schema.Array(Schema.suspend(() => JsonSchemaType))),\n oneOf: Schema.optional(Schema.Array(Schema.suspend(() => JsonSchemaType))),\n not: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n $defs: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.suspend(() => JsonSchemaType),\n }),\n ),\n\n //\n // ECHO extensions.\n //\n\n currency: Schema.optional(Schema.String),\n\n reference: Schema.optional(\n Schema.Struct({\n schema: Schema.suspend(() => JsonSchemaType),\n schemaVersion: Schema.optional(Schema.String),\n schemaObject: Schema.optional(Schema.String),\n }),\n ),\n\n /**\n * ECHO-specific annotations.\n */\n // TODO(dmaretskyi): Since we are adding a lot of new extensions to the JSON Schema, it is safer to namespace them here.\n annotations: Schema.optional(JsonSchemaEchoAnnotations),\n\n /**\n * @deprecated Use `annotations` instead.\n */\n echo: Schema.optional(JsonSchemaEchoAnnotations),\n}).annotations({ identifier: 'jsonSchema', description: 'JSON Schema' });\n\nexport const JsonSchemaFields = Object.keys(_JsonSchemaType.fields);\n\n/**\n * https://json-schema.org/draft-07/schema\n */\n// TODO(burdon): Reconcile with @effect/Schema/JSONSchema\nexport interface JsonSchemaType extends Schema.Schema.Type<typeof _JsonSchemaType> {}\n\nexport const JsonSchemaType: Schema.Schema<JsonSchemaType> = _JsonSchemaType;\n\n// TODO(burdon): Factor out JSON schema utils.\n\nexport const getSchemaProperty = (schema: JsonSchemaType, property: JsonProp): JsonSchemaType | undefined => {\n return schema.properties?.[property];\n};\n\n// TODO(burdon): Properties should be ordered.\nexport const setSchemaProperty = (\n schema: Mutable<JsonSchemaType>,\n property: JsonProp,\n value: Mutable<JsonSchemaType>,\n) => {\n schema.properties ??= {};\n schema.properties[property] = value;\n return schema;\n};\n\n/**\n * @internal\n */\nexport const ECHO_ANNOTATIONS_NS_DEPRECATED_KEY: keyof JsonSchemaType = 'echo';\n\n/**\n * @internal\n */\nexport const ECHO_ANNOTATIONS_NS_KEY = 'annotations';\n\n/**\n * @internal\n * @returns ECHO annotations namespace object in its normalized form.\n *\n * `meta` holds PropertyMeta annotations.\n * `annotations` holds other annotations.\n */\nexport const getNormalizedEchoAnnotations = (obj: JsonSchemaType): JsonSchemaEchoAnnotations | undefined => {\n if (obj[ECHO_ANNOTATIONS_NS_KEY] != null && obj[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY] != null) {\n return normalizeEchoAnnotations({\n ...obj[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY],\n ...obj[ECHO_ANNOTATIONS_NS_KEY],\n });\n } else if (obj[ECHO_ANNOTATIONS_NS_KEY] != null) {\n return normalizeEchoAnnotations(obj[ECHO_ANNOTATIONS_NS_KEY]!);\n } else if (obj[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY] != null) {\n return normalizeEchoAnnotations(obj[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY]!);\n } else {\n return undefined;\n }\n};\n\nconst normalizeEchoAnnotations = (obj: JsonSchemaEchoAnnotations): JsonSchemaEchoAnnotations => {\n if (!obj.annotations) {\n return obj;\n } else {\n const res = {\n ...obj,\n meta: {\n ...obj.annotations,\n ...(obj.meta ?? {}),\n },\n };\n delete res.annotations;\n return res;\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as Function from 'effect/Function';\nimport * as JSONSchema from 'effect/JSONSchema';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\nimport type * as Types from 'effect/Types';\n\nimport { raise } from '@dxos/debug';\nimport { mapAst } from '@dxos/effect';\nimport { assertArgument, invariant } from '@dxos/invariant';\nimport { DXN, ObjectId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { clearUndefined, orderKeys, removeProperties } from '@dxos/util';\n\nimport {\n type TypeAnnotation,\n TypeAnnotationId,\n TypeIdentifierAnnotationId,\n makeTypeJsonSchemaAnnotation,\n} from '../Annotation';\nimport { ANY_OBJECT_TYPENAME, ANY_OBJECT_VERSION, EntityKind, EntityKindSchema } from '../common/types';\nimport { type JsonSchemaReferenceInfo, createEchoReferenceSchema } from '../Ref';\nimport { CustomAnnotations, DecodedAnnotations, EchoAnnotations } from './annotations';\nimport {\n ECHO_ANNOTATIONS_NS_DEPRECATED_KEY,\n ECHO_ANNOTATIONS_NS_KEY,\n type JsonSchemaEchoAnnotations,\n type JsonSchemaType,\n getNormalizedEchoAnnotations,\n} from './json-schema-type';\n\n// TODO(burdon): Are these values stored (can they be changed?)\nexport enum PropType {\n NONE = 0,\n STRING = 1, // TODO(burdon): vs TEXT?\n NUMBER = 2,\n BOOLEAN = 3,\n DATE = 4,\n REF = 5,\n RECORD = 6,\n ENUM = 7,\n}\n\n// TODO(burdon): Reconcile with @dxos/schema.\nexport const toPropType = (type?: PropType): string => {\n switch (type) {\n case PropType.STRING:\n return 'string';\n case PropType.NUMBER:\n return 'number';\n case PropType.BOOLEAN:\n return 'boolean';\n case PropType.DATE:\n return 'date';\n case PropType.REF:\n return 'ref';\n case PropType.RECORD:\n return 'object';\n default:\n throw new Error(`Invalid type: ${type}`);\n }\n};\n\nconst JSON_SCHEMA_URL = 'http://json-schema.org/draft-07/schema#';\n\nexport type JsonSchemaOptions = {\n strict?: boolean;\n};\n\n/**\n * Convert effect schema to JSON Schema.\n * NOTE: This handles custom annotations.\n * @param schema\n */\n// TODO(burdon): Reconcile with possibly extending @effect/Schema/JSONSchema\n// We add additional propertyOrder (but the object properties ARE ordered); and type \"string\" for literals.\n// TODO(wittjosiah): This is mutable because its a pojo, perhaps should be left as readonly at type level though?\nexport const toJsonSchema = (\n schema: Schema.Schema.All,\n options: JsonSchemaOptions = {},\n): Types.DeepMutable<JsonSchemaType> => {\n assertArgument(Schema.isSchema(schema), 'schema');\n let jsonSchema = _toJsonSchemaAST(schema.ast);\n if (options.strict) {\n // TOOD(burdon): Workaround to ensure JSON schema is valid (for agv parsing).\n jsonSchema = removeProperties(jsonSchema, (key, value) => {\n if (key === '$id' && value === '/schemas/any') {\n return true;\n }\n if (key === '$ref' && value === '#/$defs/dependency') {\n return true;\n }\n if (key === '$ref' && value === '#/$defs/jsonSchema') {\n return true;\n }\n\n return false;\n });\n }\n\n return jsonSchema;\n};\n\nconst _toJsonSchemaAST = (ast: SchemaAST.AST): Types.DeepMutable<JsonSchemaType> => {\n const withRefinements = withEchoRefinements(ast, '#');\n const jsonSchema = JSONSchema.fromAST(withRefinements, {\n definitions: {},\n }) as Types.DeepMutable<JsonSchemaType>;\n\n return normalizeJsonSchema(jsonSchema);\n};\n\nconst withEchoRefinements = (\n ast: SchemaAST.AST,\n path: string | undefined,\n suspendCache = new Map<SchemaAST.AST, string>(),\n): SchemaAST.AST => {\n if (path) {\n suspendCache.set(ast, path);\n }\n\n let recursiveResult: SchemaAST.AST;\n if (SchemaAST.isSuspend(ast)) {\n // Precompute JSON schema for suspended AST since effect serializer does not support it.\n const suspendedAst = ast.f();\n const cachedPath = suspendCache.get(suspendedAst);\n if (cachedPath) {\n recursiveResult = new SchemaAST.Suspend(() => withEchoRefinements(suspendedAst, path, suspendCache), {\n [SchemaAST.JSONSchemaAnnotationId]: {\n $ref: cachedPath,\n },\n });\n } else {\n const jsonSchema = _toJsonSchemaAST(suspendedAst);\n recursiveResult = new SchemaAST.Suspend(() => withEchoRefinements(suspendedAst, path, suspendCache), {\n [SchemaAST.JSONSchemaAnnotationId]: jsonSchema,\n });\n }\n } else if (SchemaAST.isTypeLiteral(ast)) {\n // Add property order annotations\n recursiveResult = mapAst(ast, (ast, key) =>\n withEchoRefinements(ast, path && typeof key === 'string' ? `${path}/${key}` : undefined, suspendCache),\n );\n recursiveResult = addJsonSchemaFields(recursiveResult, {\n propertyOrder: [...ast.propertySignatures.map((p) => p.name)] as string[],\n });\n } else if (SchemaAST.isUndefinedKeyword(ast)) {\n // Ignore undefined keyword that appears in the optional fields.\n return ast;\n } else {\n recursiveResult = mapAst(ast, (ast, key) =>\n withEchoRefinements(\n ast,\n path && (typeof key === 'string' || typeof key === 'number') ? `${path}/${key}` : undefined,\n suspendCache,\n ),\n );\n }\n\n const annotationFields = annotations_toJsonSchemaFields(ast.annotations);\n if (Object.keys(annotationFields).length === 0) {\n return recursiveResult;\n } else {\n return addJsonSchemaFields(recursiveResult, annotationFields);\n }\n};\n\n/**\n * Convert JSON schema to effect schema.\n * @param root\n * @param definitions\n */\nexport const toEffectSchema = (root: JsonSchemaType, _defs?: JsonSchemaType['$defs']): Schema.Schema.AnyNoContext => {\n const defs = root.$defs ? { ..._defs, ...root.$defs } : (_defs ?? {});\n if ('type' in root && root.type === 'object') {\n return objectToEffectSchema(root, defs);\n }\n\n let result: Schema.Schema.AnyNoContext = Schema.Unknown;\n if ('$ref' in root) {\n switch (root.$ref) {\n case '/schemas/echo/ref': {\n result = refToEffectSchema(root);\n break;\n }\n }\n } else if ('$id' in root) {\n switch (root.$id as string) {\n case '/schemas/any': {\n result = anyToEffectSchema(root as JSONSchema.JsonSchema7Any);\n break;\n }\n case '/schemas/unknown': {\n result = Schema.Unknown;\n break;\n }\n case '/schemas/{}':\n case '/schemas/object': {\n result = Schema.Object;\n break;\n }\n // Custom ECHO object reference.\n case '/schemas/echo/ref': {\n result = refToEffectSchema(root);\n break;\n }\n }\n } else if ('enum' in root) {\n result = Schema.Union(...root.enum!.map((e) => Schema.Literal(e)));\n } else if ('oneOf' in root) {\n result = Schema.Union(...root.oneOf!.map((v) => toEffectSchema(v, defs)));\n } else if ('anyOf' in root) {\n result = Schema.Union(...root.anyOf!.map((v) => toEffectSchema(v, defs)));\n } else if ('allOf' in root) {\n if (root.allOf!.length === 1) {\n result = toEffectSchema(root.allOf![0], defs);\n } else {\n log.warn('allOf with multiple schemas is not supported');\n result = Schema.Unknown;\n }\n } else if ('type' in root) {\n switch (root.type) {\n case 'string': {\n result = Schema.String;\n if (root.pattern) {\n result = result.pipe(Schema.pattern(new RegExp(root.pattern)));\n }\n break;\n }\n case 'number': {\n result = Schema.Number;\n break;\n }\n case 'integer': {\n result = Schema.Number.pipe(Schema.int());\n break;\n }\n case 'boolean': {\n result = Schema.Boolean;\n break;\n }\n case 'array': {\n if (Array.isArray(root.items)) {\n const [required, optional] = Function.pipe(\n root.items,\n Array.map((v) => toEffectSchema(v as JsonSchemaType, defs)),\n Array.splitAt(root.minItems ?? root.items.length),\n );\n result = Schema.Tuple(...required, ...optional.map(Schema.optionalElement));\n } else {\n invariant(root.items);\n const items = root.items;\n result = Array.isArray(items)\n ? Schema.Tuple(...items.map((v) => toEffectSchema(v as JsonSchemaType, defs)))\n : Schema.Array(toEffectSchema(items as JsonSchemaType, defs));\n }\n break;\n }\n case 'null': {\n result = Schema.Null;\n break;\n }\n }\n } else if ('$ref' in root) {\n const refSegments = root.$ref!.split('/');\n const jsonSchema = defs[refSegments[refSegments.length - 1]];\n invariant(jsonSchema, `missing definition for ${root.$ref}`);\n result = toEffectSchema(jsonSchema, defs).pipe(\n Schema.annotations({ identifier: refSegments[refSegments.length - 1] }),\n );\n }\n\n const annotations = jsonSchemaFieldsToAnnotations(root);\n\n // log.info('toEffectSchema', { root, annotations });\n result = result.annotations(annotations);\n\n return result;\n};\n\nconst objectToEffectSchema = (root: JsonSchemaType, defs: JsonSchemaType['$defs']): Schema.Schema.AnyNoContext => {\n invariant('type' in root && root.type === 'object', `not an object: ${root}`);\n\n const echoRefinement: JsonSchemaEchoAnnotations = (root as any)[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY];\n const isEchoObject =\n echoRefinement != null || ('$id' in root && typeof root.$id === 'string' && root.$id.startsWith('dxn:'));\n\n let fields: Schema.Struct.Fields = {};\n const propertyList = Object.entries(root.properties ?? {});\n let immutableIdField: Schema.Schema.AnyNoContext | undefined;\n for (const [key, value] of propertyList) {\n if (isEchoObject && key === 'id') {\n immutableIdField = toEffectSchema(value, defs);\n } else {\n // TODO(burdon): Mutable cast.\n (fields as any)[key] = root.required?.includes(key)\n ? toEffectSchema(value, defs)\n : Schema.optional(toEffectSchema(value, defs));\n }\n }\n\n if (root.propertyOrder) {\n fields = orderKeys(fields, root.propertyOrder as any);\n }\n\n let schema: Schema.Schema<any, any, unknown>;\n if (root.patternProperties) {\n invariant(propertyList.length === 0, 'pattern properties mixed with regular properties are not supported');\n invariant(\n Object.keys(root.patternProperties).length === 1 && Object.keys(root.patternProperties)[0] === '',\n 'only one pattern property is supported',\n );\n\n schema = Schema.Record({ key: Schema.String, value: toEffectSchema(root.patternProperties[''], defs) });\n } else if (typeof root.additionalProperties !== 'object') {\n schema = Schema.Struct(fields);\n } else {\n const indexValue = toEffectSchema(root.additionalProperties, defs);\n if (propertyList.length > 0) {\n schema = Schema.Struct(fields, { key: Schema.String, value: indexValue });\n } else {\n schema = Schema.Record({ key: Schema.String, value: indexValue });\n }\n }\n\n if (immutableIdField) {\n schema = Schema.extend(schema, Schema.Struct({ id: immutableIdField }));\n }\n\n const annotations = jsonSchemaFieldsToAnnotations(root);\n return schema.annotations(annotations) as any;\n};\n\nconst anyToEffectSchema = (root: JSONSchema.JsonSchema7Any): Schema.Schema.AnyNoContext => {\n const echoRefinement: JsonSchemaEchoAnnotations = (root as any)[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY];\n // TODO(dmaretskyi): Is this branch still taken?\n if ((echoRefinement as any)?.reference != null) {\n const echoId = root.$id.startsWith('dxn:echo:') ? root.$id : undefined;\n return createEchoReferenceSchema(\n echoId,\n (echoRefinement as any).reference.typename,\n (echoRefinement as any).reference.version,\n );\n }\n\n return Schema.Any;\n};\n\n// TODO(dmaretskyi): Types.\nconst refToEffectSchema = (root: any): Schema.Schema.AnyNoContext => {\n if (!('reference' in root)) {\n // Fallback to generic object ref when no reference info is provided.\n return createEchoReferenceSchema(undefined, ANY_OBJECT_TYPENAME, ANY_OBJECT_VERSION);\n }\n\n const reference: JsonSchemaReferenceInfo = root.reference;\n if (typeof reference !== 'object') {\n throw new Error('Invalid reference field in ref schema');\n }\n\n const targetSchemaDXN = DXN.parse(reference.schema.$ref);\n invariant(targetSchemaDXN.kind === DXN.kind.TYPE);\n\n return createEchoReferenceSchema(\n targetSchemaDXN.toString(),\n targetSchemaDXN.kind === DXN.kind.TYPE ? targetSchemaDXN.parts[0] : undefined,\n reference.schemaVersion,\n );\n};\n\n//\n// Annotations\n//\n\nconst annotations_toJsonSchemaFields = (annotations: SchemaAST.Annotations): Record<symbol, any> => {\n const schemaFields: Record<string, any> = {};\n\n const echoAnnotations: Types.Mutable<JsonSchemaEchoAnnotations> = {};\n for (const [key, annotationId] of Object.entries(EchoAnnotations)) {\n if (annotations[annotationId] != null) {\n echoAnnotations[key as keyof JsonSchemaEchoAnnotations] = annotations[annotationId] as any;\n }\n }\n if (Object.keys(echoAnnotations).length > 0) {\n // TODO(dmaretskyi): use new namespace.\n schemaFields[ECHO_ANNOTATIONS_NS_KEY] = echoAnnotations;\n }\n\n const echoIdentifier = annotations[TypeIdentifierAnnotationId];\n if (echoIdentifier) {\n schemaFields[ECHO_ANNOTATIONS_NS_KEY] ??= {};\n schemaFields[ECHO_ANNOTATIONS_NS_KEY].schemaId = echoIdentifier;\n }\n\n // Custom (at end).\n for (const [key, annotationId] of Object.entries(CustomAnnotations)) {\n const value = annotations[annotationId];\n if (value != null) {\n schemaFields[key] = value;\n }\n }\n\n return schemaFields;\n};\n\nconst decodeTypeIdentifierAnnotation = (schema: JsonSchemaType): string | undefined => {\n // Limit to dxn:echo: URIs.\n if (schema.$id && schema.$id.startsWith('dxn:echo:')) {\n return schema.$id;\n } else if (schema.$id && schema.$id.startsWith('dxn:type:') && schema?.echo?.type?.schemaId) {\n const id = schema?.echo?.type?.schemaId;\n if (ObjectId.isValid(id)) {\n return DXN.fromLocalObjectId(id).toString();\n }\n }\n return undefined;\n};\n\nconst decodeTypeAnnotation = (schema: JsonSchemaType): TypeAnnotation | undefined => {\n if (schema.typename) {\n const annotation: Types.Mutable<TypeAnnotation> = {\n // TODO(dmaretskyi): Decoding default.\n kind: schema.entityKind ? Schema.decodeSync(EntityKindSchema)(schema.entityKind) : EntityKind.Object,\n typename: schema.typename,\n version: schema.version ?? '0.1.0',\n };\n\n if (annotation.kind === EntityKind.Relation) {\n const source = schema.relationSource?.$ref ?? raise(new Error('Relation source not set'));\n const target = schema.relationTarget?.$ref ?? raise(new Error('Relation target not set'));\n annotation.sourceSchema = DXN.parse(source).toString();\n annotation.targetSchema = DXN.parse(target).toString();\n }\n\n return annotation;\n }\n\n // Decode legacy schema.\n if (!schema.typename && schema?.echo?.type) {\n return {\n kind: EntityKind.Object,\n typename: schema.echo.type.typename,\n version: schema.echo.type.version,\n };\n }\n\n return undefined;\n};\n\nconst jsonSchemaFieldsToAnnotations = (schema: JsonSchemaType): SchemaAST.Annotations => {\n const annotations: Types.Mutable<Schema.Annotations.Schema<any>> = {};\n\n const echoAnnotations: JsonSchemaEchoAnnotations = getNormalizedEchoAnnotations(schema) ?? {};\n if (echoAnnotations) {\n for (const [key, annotationId] of Object.entries(EchoAnnotations)) {\n if (echoAnnotations[key as keyof JsonSchemaEchoAnnotations]) {\n annotations[annotationId] = echoAnnotations[key as keyof JsonSchemaEchoAnnotations];\n }\n }\n }\n\n const typeIdentifier = decodeTypeIdentifierAnnotation(schema);\n annotations[TypeIdentifierAnnotationId] = typeIdentifier;\n const typeAnnotation = decodeTypeAnnotation(schema);\n if (typeAnnotation) {\n annotations[TypeAnnotationId] = typeAnnotation;\n annotations[SchemaAST.JSONSchemaAnnotationId] = makeTypeJsonSchemaAnnotation({\n identifier: typeIdentifier,\n kind: typeAnnotation.kind,\n typename: typeAnnotation.typename,\n version: typeAnnotation.version,\n relationSource: typeAnnotation.sourceSchema,\n relationTarget: typeAnnotation.targetSchema,\n });\n }\n\n // Custom (at end).\n for (const [key, annotationId] of Object.entries({ ...CustomAnnotations, ...DecodedAnnotations })) {\n if (key in schema) {\n annotations[annotationId] = (schema as any)[key];\n }\n }\n\n return clearUndefined(annotations);\n};\n\nconst makeAnnotatedRefinement = (ast: SchemaAST.AST, annotations: SchemaAST.Annotations): SchemaAST.Refinement => {\n return new SchemaAST.Refinement(ast, () => Option.none(), annotations);\n};\n\nconst addJsonSchemaFields = (ast: SchemaAST.AST, schema: JsonSchemaType): SchemaAST.AST =>\n makeAnnotatedRefinement(ast, { [SchemaAST.JSONSchemaAnnotationId]: schema });\n\n/**\n * Fixes field order.\n * Sets `$schema` prop.\n */\nconst normalizeJsonSchema = (jsonSchema: Types.DeepMutable<JsonSchemaType>): Types.DeepMutable<JsonSchemaType> => {\n if (jsonSchema.properties && 'id' in jsonSchema.properties) {\n jsonSchema.properties = orderKeys(jsonSchema.properties, ['id']); // Put id first.\n }\n\n // TODO(dmaretskyi): Makes sure undefined is not left on optional fields for the resulting object.\n jsonSchema.$schema = JSON_SCHEMA_URL;\n jsonSchema = orderKeys(jsonSchema, [\n '$schema',\n '$id',\n\n 'entityKind',\n 'typename',\n 'version',\n 'relationTarget',\n 'relationSource',\n\n 'type',\n 'enum',\n\n 'properties',\n 'required',\n 'propertyOrder', // Custom.\n 'items',\n 'additionalProperties',\n\n 'anyOf',\n 'oneOf',\n ]);\n return jsonSchema;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["SchemaAST", "CustomAnnotations", "format", "FormatAnnotationId", "currency", "CurrencyAnnotationId", "DecodedAnnotations", "title", "TitleAnnotationId", "description", "DescriptionAnnotationId", "EchoAnnotations", "meta", "PropertyMetaAnnotationId", "generator", "GeneratorAnnotationId", "labelProp", "LabelAnnotationId", "Schema", "JsonPath", "SimpleTypes", "Literal", "NonNegativeInteger", "Number", "pipe", "greaterThanOrEqualTo", "StringArray", "Array", "String", "JsonSchemaOrBoolean", "Union", "suspend", "JsonSchemaType", "Boolean", "JsonSchemaEchoAnnotations", "Struct", "labelProp", "optional", "JsonPath", "generator", "Tuple", "meta", "Record", "key", "value", "Any", "type", "typename", "version", "schemaId", "annotations", "_JsonSchemaType", "$id", "$schema", "$ref", "$comment", "entityKind", "EntityKindSchema", "relationTarget", "relationSource", "title", "description", "readOnly", "writeOnly", "examples", "default", "const", "enum", "multipleOf", "greaterThan", "maximum", "exclusiveMaximum", "minimum", "exclusiveMinimum", "maxLength", "pattern", "FormatAnnotation", "set", "TypeFormat", "Regex", "format", "minLength", "items", "additionalItems", "maxItems", "minItems", "uniqueItems", "contains", "maxProperties", "minProperties", "required", "propertyOrder", "additionalProperties", "properties", "patternProperties", "propertyNames", "definitions", "dependencies", "identifier", "contentMediaType", "contentEncoding", "if", "then", "else", "allOf", "anyOf", "oneOf", "not", "$defs", "currency", "reference", "schema", "schemaVersion", "schemaObject", "echo", "JsonSchemaFields", "Object", "keys", "fields", "getSchemaProperty", "property", "setSchemaProperty", "ECHO_ANNOTATIONS_NS_DEPRECATED_KEY", "ECHO_ANNOTATIONS_NS_KEY", "getNormalizedEchoAnnotations", "obj", "normalizeEchoAnnotations", "undefined", "res", "Array", "Function", "JSONSchema", "Option", "Schema", "SchemaAST", "raise", "mapAst", "assertArgument", "invariant", "DXN", "ObjectId", "log", "clearUndefined", "orderKeys", "removeProperties", "PropType", "toPropType", "type", "Error", "JSON_SCHEMA_URL", "toJsonSchema", "schema", "options", "assertArgument", "isSchema", "jsonSchema", "_toJsonSchemaAST", "ast", "strict", "removeProperties", "key", "value", "withRefinements", "withEchoRefinements", "fromAST", "definitions", "normalizeJsonSchema", "path", "suspendCache", "Map", "set", "recursiveResult", "isSuspend", "suspendedAst", "f", "cachedPath", "get", "Suspend", "JSONSchemaAnnotationId", "$ref", "isTypeLiteral", "mapAst", "undefined", "addJsonSchemaFields", "propertyOrder", "propertySignatures", "map", "p", "name", "isUndefinedKeyword", "annotationFields", "annotations_toJsonSchemaFields", "annotations", "Object", "keys", "length", "toEffectSchema", "root", "_defs", "defs", "$defs", "objectToEffectSchema", "result", "Unknown", "refToEffectSchema", "$id", "anyToEffectSchema", "Union", "enum", "e", "Literal", "oneOf", "v", "anyOf", "allOf", "log", "warn", "String", "pattern", "pipe", "RegExp", "Number", "int", "Boolean", "isArray", "items", "required", "optional", "splitAt", "minItems", "Tuple", "optionalElement", "invariant", "Array", "Null", "refSegments", "split", "identifier", "jsonSchemaFieldsToAnnotations", "echoRefinement", "ECHO_ANNOTATIONS_NS_DEPRECATED_KEY", "isEchoObject", "startsWith", "fields", "propertyList", "entries", "properties", "immutableIdField", "includes", "orderKeys", "patternProperties", "Record", "additionalProperties", "Struct", "indexValue", "extend", "id", "reference", "echoId", "createEchoReferenceSchema", "typename", "version", "Any", "ANY_OBJECT_TYPENAME", "ANY_OBJECT_VERSION", "targetSchemaDXN", "DXN", "parse", "kind", "TYPE", "toString", "parts", "schemaVersion", "schemaFields", "echoAnnotations", "annotationId", "EchoAnnotations", "ECHO_ANNOTATIONS_NS_KEY", "echoIdentifier", "TypeIdentifierAnnotationId", "schemaId", "CustomAnnotations", "decodeTypeIdentifierAnnotation", "echo", "ObjectId", "isValid", "fromLocalObjectId", "decodeTypeAnnotation", "annotation", "entityKind", "decodeSync", "EntityKindSchema", "EntityKind", "Relation", "source", "relationSource", "raise", "target", "relationTarget", "sourceSchema", "targetSchema", "getNormalizedEchoAnnotations", "typeIdentifier", "typeAnnotation", "TypeAnnotationId", "makeTypeJsonSchemaAnnotation", "DecodedAnnotations", "clearUndefined", "makeAnnotatedRefinement", "Refinement", "none", "$schema"]
7
+ }
@@ -0,0 +1,132 @@
1
+ import {
2
+ object
3
+ } from "./chunk-A2WIDONZ.mjs";
4
+ import {
5
+ getDXN,
6
+ make
7
+ } from "./chunk-O26EPPBW.mjs";
8
+ import {
9
+ FormInputAnnotation,
10
+ IconAnnotation,
11
+ SystemTypeAnnotation
12
+ } from "./chunk-2KHZ36F5.mjs";
13
+ import {
14
+ __export
15
+ } from "./chunk-J5LGTIGS.mjs";
16
+
17
+ // src/Feed.ts
18
+ var Feed_exports = {};
19
+ __export(Feed_exports, {
20
+ Feed: () => Feed,
21
+ FeedService: () => FeedService,
22
+ Service: () => Service,
23
+ append: () => append,
24
+ cursor: () => cursor,
25
+ getQueueDxn: () => getQueueDxn,
26
+ make: () => make2,
27
+ next: () => next,
28
+ nextOption: () => nextOption,
29
+ notAvailable: () => notAvailable,
30
+ query: () => query,
31
+ remove: () => remove,
32
+ runQuery: () => runQuery,
33
+ setRetention: () => setRetention,
34
+ unsafeFromQueueDXN: () => unsafeFromQueueDXN
35
+ });
36
+ import * as Context from "effect/Context";
37
+ import * as Effect from "effect/Effect";
38
+ import * as Layer from "effect/Layer";
39
+ import * as Schema from "effect/Schema";
40
+ import { DXN } from "@dxos/keys";
41
+ var Feed = Schema.Struct({
42
+ /** User-facing display name. */
43
+ name: Schema.String.pipe(Schema.optional),
44
+ /** Identifier for the feed's kind (e.g., plugin id). */
45
+ kind: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),
46
+ /**
47
+ * Feed namespace.
48
+ * Controls how feed data is stored and replicated.
49
+ * - `data`: Data feed (default).
50
+ * - `trace`: Trace feed.
51
+ */
52
+ namespace: Schema.optional(Schema.Literal("data", "trace"))
53
+ }).pipe(object({
54
+ typename: "org.dxos.type.feed",
55
+ version: "0.1.0"
56
+ }), SystemTypeAnnotation.set(true), IconAnnotation.set({
57
+ icon: "ph--rows--regular",
58
+ hue: "yellow"
59
+ }));
60
+ var make2 = (props = {}) => make(Feed, props);
61
+ var getQueueDxn = (feed) => {
62
+ const self = getDXN(feed).asEchoDXN();
63
+ if (!self || !self.spaceId) {
64
+ return void 0;
65
+ }
66
+ return new DXN(DXN.kind.QUEUE, [
67
+ feed.namespace ?? "data",
68
+ self.spaceId,
69
+ self.echoId
70
+ ]);
71
+ };
72
+ var unsafeFromQueueDXN = (queueDxn) => {
73
+ const parts = queueDxn.asQueueDXN();
74
+ if (!parts) {
75
+ throw new Error(`Expected a queue DXN, got: ${queueDxn.toString()}`);
76
+ }
77
+ return make(Feed, {
78
+ id: parts.queueId,
79
+ namespace: parts.subspaceTag === "trace" ? "trace" : void 0
80
+ });
81
+ };
82
+ var FeedService = class extends Context.Tag("@dxos/echo/Feed/FeedService")() {
83
+ };
84
+ var Service = FeedService;
85
+ var notAvailable = Layer.succeed(FeedService, {
86
+ append: () => {
87
+ throw new Error("Feed.FeedService not available");
88
+ },
89
+ remove: () => {
90
+ throw new Error("Feed.FeedService not available");
91
+ },
92
+ query: () => {
93
+ throw new Error("Feed.FeedService not available");
94
+ }
95
+ });
96
+ var append = (feed, items) => Effect.gen(function* () {
97
+ const service = yield* FeedService;
98
+ yield* Effect.promise(() => service.append(feed, items));
99
+ });
100
+ var remove = (feed, items) => Effect.gen(function* () {
101
+ const service = yield* FeedService;
102
+ const ids = items.map((item) => item.id);
103
+ yield* Effect.promise(() => service.remove(feed, ids));
104
+ });
105
+ var query = (feed, queryOrFilter) => FeedService.pipe(Effect.map((service) => service.query(feed, queryOrFilter)));
106
+ var runQuery = (feed, queryOrFilter) => query(feed, queryOrFilter).pipe(Effect.flatMap((queryResult) => Effect.promise(() => queryResult.run())));
107
+ var cursor = (_feed) => Effect.succeed({
108
+ _tag: "Cursor"
109
+ });
110
+ var next = (_cursor) => Effect.die("Feed.next is not yet implemented");
111
+ var nextOption = (_cursor) => Effect.die("Feed.nextOption is not yet implemented");
112
+ var setRetention = (_feed, _options) => Effect.void;
113
+
114
+ export {
115
+ Feed,
116
+ make2 as make,
117
+ getQueueDxn,
118
+ unsafeFromQueueDXN,
119
+ FeedService,
120
+ Service,
121
+ notAvailable,
122
+ append,
123
+ remove,
124
+ query,
125
+ runQuery,
126
+ cursor,
127
+ next,
128
+ nextOption,
129
+ setRetention,
130
+ Feed_exports
131
+ };
132
+ //# sourceMappingURL=chunk-RP37BQF7.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Feed.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport type * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\n\nimport { DXN, type ObjectId } from '@dxos/keys';\n\nimport * as Annotation from './Annotation';\nimport type * as Entity from './Entity';\nimport type * as Filter from './Filter';\nimport * as internal from './internal';\nimport * as Obj from './Obj';\nimport type * as Query from './Query';\nimport type * as QueryResult from './QueryResult';\nimport * as Type from './Type';\n\n/**\n * Runtime schema for a Feed object.\n *\n * @example\n * ```ts\n * const feed = Obj.make(Feed.Feed, { name: 'notifications', kind: 'org.dxos.plugin.notifications.v1' });\n * ```\n */\nexport const Feed = Schema.Struct({\n /** User-facing display name. */\n name: Schema.String.pipe(Schema.optional),\n /** Identifier for the feed's kind (e.g., plugin id). */\n kind: Schema.String.pipe(internal.FormInputAnnotation.set(false), Schema.optional),\n\n /**\n * Feed namespace.\n * Controls how feed data is stored and replicated.\n * - `data`: Data feed (default).\n * - `trace`: Trace feed.\n */\n namespace: Schema.optional(Schema.Literal('data', 'trace')),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.feed',\n version: '0.1.0',\n }),\n internal.SystemTypeAnnotation.set(true),\n Annotation.IconAnnotation.set({\n icon: 'ph--rows--regular',\n hue: 'yellow',\n }),\n);\n\n/**\n * TypeScript instance type for a Feed object.\n */\nexport interface Feed extends Schema.Schema.Type<typeof Feed> {}\n\n//\n// Types\n//\n\n/**\n * Opaque cursor for iterating over feed items.\n */\n// TODO(dmaretskyi): T needs to be referenced in the type structure for typescript to respect it during inference and type-checking.\nexport interface Cursor<T = Obj.Snapshot> {\n readonly _tag: 'Cursor';\n}\n\n/**\n * Retention options for a feed.\n */\nexport interface RetentionOptions {\n /** Retain items after this cursor position. */\n // TODO(wittjosiah): Use FeedCursor from @dxos/feed?\n cursor?: string;\n}\n\n//\n// Factory\n//\n\n/**\n * Creates a new feed object.\n *\n * @example\n * ```ts\n * const feed = Feed.make({ name: 'notifications', kind: 'org.dxos.plugin.notifications.v1' });\n * ```\n */\n// TODO(wittjosiah): How to control the feed namespace (data/trace)? Why do feeds have namespaces?\nexport const make = (props: Obj.MakeProps<typeof Feed> = {}): Feed => Obj.make(Feed, props);\n\n/**\n * Derives the queue DXN from the feed object's DXN.\n * Returns `undefined` when the feed is not stored in a space yet.\n *\n * Used internally by the feed service layer.\n */\nexport const getQueueDxn = (feed: Feed): DXN | undefined => {\n const self = Obj.getDXN(feed).asEchoDXN();\n if (!self || !self.spaceId) {\n return undefined;\n }\n return new DXN(DXN.kind.QUEUE, [feed.namespace ?? 'data', self.spaceId, self.echoId]);\n};\n\n/**\n * Creates a Feed object from a queue DXN, inferring the feed's id and namespace from the DXN parts.\n *\n * The resulting Feed, when added to the same space as the queue, will have a queue DXN\n * equal to the input (see `Feed.getQueueDxn`). Useful when migrating `Ref(Queue)` fields to\n * `Ref(Feed.Feed)`.\n *\n * @remarks Unsafe because the caller must ensure the queue DXN's space matches the database\n * the feed is added to; the feed id is set from the queue id, bypassing id generation.\n */\nexport const unsafeFromQueueDXN = (queueDxn: DXN): Feed => {\n const parts = queueDxn.asQueueDXN();\n if (!parts) {\n throw new Error(`Expected a queue DXN, got: ${queueDxn.toString()}`);\n }\n return Obj.make(Feed, {\n id: parts.queueId as ObjectId,\n namespace: parts.subspaceTag === 'trace' ? 'trace' : undefined,\n });\n};\n\n//\n// Service\n//\n\n/**\n * Effect service for feed operations.\n * Provides the bridge to the underlying storage implementation.\n * Must be provided by the application layer (e.g., echo-db).\n */\nexport class FeedService extends Context.Tag('@dxos/echo/Feed/FeedService')<\n FeedService,\n {\n /**\n * Appends items to a feed.\n */\n append(feed: Feed, items: Entity.Unknown[]): Promise<void>;\n\n /**\n * Removes items from a feed by ID.\n */\n // TODO(dmaretskyi): Change type to ObjectId.\n remove(feed: Feed, ids: string[]): Promise<void>;\n\n /**\n * Queries items in a feed.\n */\n query: {\n <Q extends Query.Any>(feed: Feed, query: Q): QueryResult.QueryResult<Query.Type<Q>>;\n <F extends Filter.Any>(feed: Feed, filter: F): QueryResult.QueryResult<Filter.Type<F>>;\n };\n }\n>() {}\n\n/**\n * @deprecated Use `FeedService` instead.\n */\nexport type Service = FeedService;\n\n/**\n * @deprecated Use `FeedService` instead.\n */\nexport const Service = FeedService;\n\n/**\n * Layer that provides a Feed service that throws when accessed.\n * Useful as a default layer when no feed service is available.\n */\nexport const notAvailable: Layer.Layer<FeedService> = Layer.succeed(FeedService, {\n append: () => {\n throw new Error('Feed.FeedService not available');\n },\n remove: () => {\n throw new Error('Feed.FeedService not available');\n },\n query: () => {\n throw new Error('Feed.FeedService not available');\n },\n} as Context.Tag.Service<FeedService>);\n\n//\n// Operations\n//\n\n/**\n * Appends items to a feed.\n *\n * @example\n * ```ts\n * yield* Feed.append(feed, [Obj.make(Notification, { title: 'Hello' })]);\n * ```\n */\nexport const append = (feed: Feed, items: Entity.Unknown[]): Effect.Effect<void, never, FeedService> =>\n Effect.gen(function* () {\n const service = yield* FeedService;\n yield* Effect.promise(() => service.append(feed, items));\n });\n\n/**\n * Removes items from a feed.\n *\n * @example\n * ```ts\n * yield* Feed.remove(feed, [item]);\n * ```\n */\n// TODO(dmaretskyi): Should we allow snapshots here? - what does it mean to remove a snapshot?\nexport const remove = (feed: Feed, items: (Entity.Unknown | Obj.Snapshot)[]): Effect.Effect<void, never, FeedService> =>\n Effect.gen(function* () {\n const service = yield* FeedService;\n const ids = items.map((item) => item.id);\n yield* Effect.promise(() => service.remove(feed, ids));\n });\n\n/**\n * Creates a reactive query over items in a feed.\n *\n * @example\n * ```ts\n * const result = yield* Feed.query(feed, Filter.type(Person));\n * ```\n */\n// TODO(dmaretskyi): Suport chained queries:\n// const result = yield* feed.pipe(Feed.query(Filter.type(Person))); result.subscribe(...)\n// const objects = yield* feed.pipe(Feed.query(Filter.type(Person))).run;\n// const object = yield* feed.pipe(Feed.query(Filter.type(Person))).first;\n// ... unify for Database and schema queries.\nexport const query: {\n <Q extends Query.Any>(\n feed: Feed,\n query: Q,\n ): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, FeedService>;\n <F extends Filter.Any>(\n feed: Feed,\n filter: F,\n ): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, FeedService>;\n} = (feed: Feed, queryOrFilter: Query.Any | Filter.Any) =>\n FeedService.pipe(Effect.map((service) => service.query(feed, queryOrFilter as any) as QueryResult.QueryResult<any>));\n\n/**\n * Executes a feed query once and returns the results.\n *\n * @example\n * ```ts\n * const items = yield* Feed.runQuery(feed, Filter.type(Person));\n * ```\n */\nexport const runQuery: {\n <Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<Query.Type<Q>[], never, FeedService>;\n <F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<Filter.Type<F>[], never, FeedService>;\n} = (feed: Feed, queryOrFilter: Query.Any | Filter.Any) =>\n query(feed, queryOrFilter as any).pipe(Effect.flatMap((queryResult) => Effect.promise(() => queryResult.run())));\n\n/**\n * Creates a cursor for iterating over feed items.\n * Currently stubbed — cursor operations are not yet implemented.\n *\n * @example\n * ```ts\n * const cursor = yield* Feed.cursor<Person>(feed);\n * const item = yield* Feed.next(cursor);\n * ```\n */\n// TODO(wittjosiah): Implement cursor operations. Use Effect streams?\nexport const cursor = <T = Obj.Snapshot>(_feed: Feed): Effect.Effect<Cursor<T>, never, FeedService> =>\n Effect.succeed({ _tag: 'Cursor' } as Cursor<T>);\n\n/**\n * Returns the next item from a feed cursor.\n * Currently stubbed — cursor operations are not yet implemented.\n */\nexport const next = <T = Obj.Snapshot>(_cursor: Cursor<T>): Effect.Effect<T, never, FeedService> =>\n Effect.die('Feed.next is not yet implemented');\n\n/**\n * Returns the next item from a feed cursor as an Option.\n * Currently stubbed — cursor operations are not yet implemented.\n */\nexport const nextOption = <T = Obj.Snapshot>(_cursor: Cursor<T>): Effect.Effect<Option.Option<T>, never, FeedService> =>\n Effect.die('Feed.nextOption is not yet implemented');\n\n/**\n * Sets the local retention policy for a feed.\n * Currently stubbed — queues do not yet support retention.\n *\n * @example\n * ```ts\n * yield* Feed.setRetention(feed, { count: 1000 });\n * ```\n */\n// TODO(feed): Implement when queue retention is supported.\nexport const setRetention = (_feed: Feed, _options: RetentionOptions): Effect.Effect<void, never, FeedService> =>\n Effect.void;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;;;;;;;;cAAAA;EAAA;;;;;;;;;AAMA,YAAYC,aAAa;AACzB,YAAYC,YAAY;AACxB,YAAYC,WAAW;AAEvB,YAAYC,YAAY;AAExB,SAASC,WAA0B;AAmB5B,IAAMC,OAAcC,cAAO;;EAEhCC,MAAaC,cAAOC,KAAYC,eAAQ;;EAExCC,MAAaH,cAAOC,KAAcG,oBAAoBC,IAAI,KAAA,GAAeH,eAAQ;;;;;;;EAQjFI,WAAkBJ,gBAAgBK,eAAQ,QAAQ,OAAA,CAAA;AACpD,CAAA,EAAGN,KACIO,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACSC,qBAAqBN,IAAI,IAAA,GACvBO,eAAeP,IAAI;EAC5BQ,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AA0CK,IAAMC,QAAO,CAACC,QAAoC,CAAC,MAAgBD,KAAKlB,MAAMmB,KAAAA;AAQ9E,IAAMC,cAAc,CAACC,SAAAA;AAC1B,QAAMC,OAAWC,OAAOF,IAAAA,EAAMG,UAAS;AACvC,MAAI,CAACF,QAAQ,CAACA,KAAKG,SAAS;AAC1B,WAAOC;EACT;AACA,SAAO,IAAIC,IAAIA,IAAIrB,KAAKsB,OAAO;IAACP,KAAKZ,aAAa;IAAQa,KAAKG;IAASH,KAAKO;GAAO;AACtF;AAYO,IAAMC,qBAAqB,CAACC,aAAAA;AACjC,QAAMC,QAAQD,SAASE,WAAU;AACjC,MAAI,CAACD,OAAO;AACV,UAAM,IAAIE,MAAM,8BAA8BH,SAASI,SAAQ,CAAA,EAAI;EACrE;AACA,SAAWjB,KAAKlB,MAAM;IACpBoC,IAAIJ,MAAMK;IACV5B,WAAWuB,MAAMM,gBAAgB,UAAU,UAAUZ;EACvD,CAAA;AACF;AAWO,IAAMa,cAAN,cAAkCC,YAAI,6BAAA,EAAA,EAAA;AAsBxC;AAUE,IAAMC,UAAUF;AAMhB,IAAMG,eAA+CC,cAAQJ,aAAa;EAC/EK,QAAQ,MAAA;AACN,UAAM,IAAIV,MAAM,gCAAA;EAClB;EACAW,QAAQ,MAAA;AACN,UAAM,IAAIX,MAAM,gCAAA;EAClB;EACAY,OAAO,MAAA;AACL,UAAM,IAAIZ,MAAM,gCAAA;EAClB;AACF,CAAA;AAcO,IAAMU,SAAS,CAACvB,MAAY0B,UAC1BC,WAAI,aAAA;AACT,QAAMC,UAAU,OAAOV;AACvB,SAAcW,eAAQ,MAAMD,QAAQL,OAAOvB,MAAM0B,KAAAA,CAAAA;AACnD,CAAA;AAWK,IAAMF,SAAS,CAACxB,MAAY0B,UAC1BC,WAAI,aAAA;AACT,QAAMC,UAAU,OAAOV;AACvB,QAAMY,MAAMJ,MAAMK,IAAI,CAACC,SAASA,KAAKjB,EAAE;AACvC,SAAcc,eAAQ,MAAMD,QAAQJ,OAAOxB,MAAM8B,GAAAA,CAAAA;AACnD,CAAA;AAeK,IAAML,QAST,CAACzB,MAAYiC,kBACff,YAAYnC,KAAYgD,WAAI,CAACH,YAAYA,QAAQH,MAAMzB,MAAMiC,aAAAA,CAAAA,CAAAA;AAUxD,IAAMC,WAGT,CAAClC,MAAYiC,kBACfR,MAAMzB,MAAMiC,aAAAA,EAAsBlD,KAAYoD,eAAQ,CAACC,gBAAuBP,eAAQ,MAAMO,YAAYC,IAAG,CAAA,CAAA,CAAA;AAatG,IAAMC,SAAS,CAAmBC,UAChCjB,eAAQ;EAAEkB,MAAM;AAAS,CAAA;AAM3B,IAAMC,OAAO,CAAmBC,YAC9BC,WAAI,kCAAA;AAMN,IAAMC,aAAa,CAAmBF,YACpCC,WAAI,wCAAA;AAYN,IAAME,eAAe,CAACN,OAAaO,aACjCC;",
6
+ "names": ["make", "Context", "Effect", "Layer", "Schema", "DXN", "Feed", "Struct", "name", "String", "pipe", "optional", "kind", "FormInputAnnotation", "set", "namespace", "Literal", "object", "typename", "version", "SystemTypeAnnotation", "IconAnnotation", "icon", "hue", "make", "props", "getQueueDxn", "feed", "self", "getDXN", "asEchoDXN", "spaceId", "undefined", "DXN", "QUEUE", "echoId", "unsafeFromQueueDXN", "queueDxn", "parts", "asQueueDXN", "Error", "toString", "id", "queueId", "subspaceTag", "FeedService", "Tag", "Service", "notAvailable", "succeed", "append", "remove", "query", "items", "gen", "service", "promise", "ids", "map", "item", "queryOrFilter", "runQuery", "flatMap", "queryResult", "run", "cursor", "_feed", "_tag", "next", "_cursor", "die", "nextOption", "setRetention", "_options", "void"]
7
+ }
@@ -0,0 +1,67 @@
1
+ // src/internal/common/types/entity.ts
2
+ import * as Schema from "effect/Schema";
3
+ var KindId = "~@dxos/echo/Kind";
4
+ var SchemaKindId = "~@dxos/echo/SchemaKind";
5
+ var SnapshotKindId = "~@dxos/echo/SnapshotKind";
6
+ var EntityKind = /* @__PURE__ */ (function(EntityKind2) {
7
+ EntityKind2["Object"] = "object";
8
+ EntityKind2["Relation"] = "relation";
9
+ return EntityKind2;
10
+ })({});
11
+ var EntityKindSchema = Schema.Enums(EntityKind);
12
+ var ANY_OBJECT_TYPENAME = "org.dxos.schema.anyObject";
13
+ var ANY_OBJECT_VERSION = "0.0.0";
14
+
15
+ // src/internal/Annotation/util.ts
16
+ import * as SchemaAST from "effect/SchemaAST";
17
+ import { assertArgument } from "@dxos/invariant";
18
+ import { DXN } from "@dxos/keys";
19
+ var createAnnotationHelper = (id) => {
20
+ return {
21
+ get: (schema) => SchemaAST.getAnnotation(schema.ast, id),
22
+ getFromAst: (ast) => SchemaAST.getAnnotation(ast, id),
23
+ set: (value) => (schema) => schema.annotations({
24
+ [id]: value
25
+ })
26
+ };
27
+ };
28
+ var unwrapOptional = (property) => {
29
+ if (!property.isOptional || !SchemaAST.isUnion(property.type)) {
30
+ return property;
31
+ }
32
+ return property.type.types[0];
33
+ };
34
+ var makeTypeJsonSchemaAnnotation = (options) => {
35
+ assertArgument(!!options.relationSource === (options.kind === EntityKind.Relation), "relationSource");
36
+ assertArgument(!!options.relationTarget === (options.kind === EntityKind.Relation), "relationTarget");
37
+ const obj = {
38
+ // TODO(dmaretskyi): Should this include the version?
39
+ $id: options.identifier ?? DXN.fromTypename(options.typename).toString(),
40
+ entityKind: options.kind,
41
+ version: options.version,
42
+ typename: options.typename
43
+ };
44
+ if (options.kind === EntityKind.Relation) {
45
+ obj.relationSource = {
46
+ $ref: options.relationSource
47
+ };
48
+ obj.relationTarget = {
49
+ $ref: options.relationTarget
50
+ };
51
+ }
52
+ return obj;
53
+ };
54
+
55
+ export {
56
+ KindId,
57
+ SchemaKindId,
58
+ SnapshotKindId,
59
+ EntityKind,
60
+ EntityKindSchema,
61
+ ANY_OBJECT_TYPENAME,
62
+ ANY_OBJECT_VERSION,
63
+ createAnnotationHelper,
64
+ unwrapOptional,
65
+ makeTypeJsonSchemaAnnotation
66
+ };
67
+ //# sourceMappingURL=chunk-TBKX6JQO.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/common/types/entity.ts", "../../../src/internal/Annotation/util.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\n// NOTE: String literals are used instead of unique symbols for both KindId and SchemaKindId.\n// Unique symbols cause TS4023 \"cannot be named\" errors when external packages\n// try to export types that reference this key (e.g., `export const Graph = ...`).\n// TypeScript cannot emit declaration files that reference unique symbols from\n// external modules. Using a string literal allows the type to be inlined in\n// declaration files, making the API portable across package boundaries.\n\n/**\n * String key used to identify the kind of an entity instance (object or relation).\n */\nexport const KindId = '~@dxos/echo/Kind' as const;\nexport type KindId = typeof KindId;\n\n/**\n * String key used to identify the kind of a schema (object schema or relation schema).\n * Parallels KindId which identifies instance kinds.\n */\nexport const SchemaKindId = '~@dxos/echo/SchemaKind' as const;\nexport type SchemaKindId = typeof SchemaKindId;\n\n/**\n * String key used to brand snapshot types.\n * Snapshots have SnapshotKindId instead of KindId, making them\n * distinguishable from reactive objects at the type level.\n */\nexport const SnapshotKindId = '~@dxos/echo/SnapshotKind' as const;\nexport type SnapshotKindId = typeof SnapshotKindId;\n\n/**\n * Kinds of entities stored in ECHO: objects and relations.\n */\nexport enum EntityKind {\n Object = 'object',\n Relation = 'relation',\n}\n\nexport const EntityKindSchema = Schema.Enums(EntityKind);\n\n/**\n * Typename for generic object references (Type.Obj / Ref.Ref(Obj.Unknown)).\n * Used when referencing any object without a specific schema.\n */\nexport const ANY_OBJECT_TYPENAME = 'org.dxos.schema.anyObject';\n\n/**\n * Version for generic object references.\n */\nexport const ANY_OBJECT_VERSION = '0.0.0';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { assertArgument } from '@dxos/invariant';\nimport { DXN } from '@dxos/keys';\n\nimport { EntityKind } from '../common/types';\n\nexport interface AnnotationHelper<T> {\n /**\n * Get the annotation value from the schema.\n */\n get: (schema: Schema.Schema.Any) => Option.Option<T>;\n /**\n * Get the annotation value from the AST.\n */\n getFromAst: (ast: SchemaAST.AST) => Option.Option<T>;\n /**\n * Set the annotation value on the schema.\n */\n set: (value: T) => <S extends Schema.Schema.Any>(schema: S) => S;\n}\n\n/**\n * Note: only for system annotations.\n */\n// TODO(dmaretskyi): Rename to createSystemAnnotationHelper.\nexport const createAnnotationHelper = <T>(id: symbol): AnnotationHelper<T> => {\n return {\n get: (schema) => SchemaAST.getAnnotation(schema.ast, id),\n getFromAst: (ast) => SchemaAST.getAnnotation(ast, id),\n set:\n (value) =>\n <S extends Schema.Schema.Any>(schema: S) =>\n schema.annotations({ [id]: value }) as S,\n };\n};\n\n/**\n * If property is optional returns the nested property, otherwise returns the property.\n */\n// TODO(wittjosiah): Is there a way to do this as a generic?\nexport const unwrapOptional = (property: SchemaAST.PropertySignature) => {\n if (!property.isOptional || !SchemaAST.isUnion(property.type)) {\n return property;\n }\n\n return property.type.types[0];\n};\n\n/**\n * @see JSONSchemaAnnotationId\n * @returns JSON-schema annotation so that the schema can be serialized with correct parameters.\n */\n// TODO(burdon): Required type.\nexport const makeTypeJsonSchemaAnnotation = (options: {\n identifier?: string;\n kind: EntityKind;\n typename: string;\n version: string;\n relationSource?: string;\n relationTarget?: string;\n}) => {\n assertArgument(!!options.relationSource === (options.kind === EntityKind.Relation), 'relationSource');\n assertArgument(!!options.relationTarget === (options.kind === EntityKind.Relation), 'relationTarget');\n\n const obj = {\n // TODO(dmaretskyi): Should this include the version?\n $id: options.identifier ?? DXN.fromTypename(options.typename).toString(),\n entityKind: options.kind,\n version: options.version,\n typename: options.typename,\n } as any;\n if (options.kind === EntityKind.Relation) {\n obj.relationSource = { $ref: options.relationSource };\n obj.relationTarget = { $ref: options.relationTarget };\n }\n\n return obj;\n};\n"],
5
+ "mappings": ";AAIA,YAAYA,YAAY;AAYjB,IAAMC,SAAS;AAOf,IAAMC,eAAe;AAQrB,IAAMC,iBAAiB;AAMvB,IAAKC,aAAAA,0BAAAA,aAAAA;;;SAAAA;;AAKL,IAAMC,mBAA0BC,aAAMF,UAAAA;AAMtC,IAAMG,sBAAsB;AAK5B,IAAMC,qBAAqB;;;AC/ClC,YAAYC,eAAe;AAE3B,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AAuBb,IAAMC,yBAAyB,CAAIC,OAAAA;AACxC,SAAO;IACLC,KAAK,CAACC,WAAqBC,wBAAcD,OAAOE,KAAKJ,EAAAA;IACrDK,YAAY,CAACD,QAAkBD,wBAAcC,KAAKJ,EAAAA;IAClDM,KACE,CAACC,UACD,CAA8BL,WAC5BA,OAAOM,YAAY;MAAE,CAACR,EAAAA,GAAKO;IAAM,CAAA;EACvC;AACF;AAMO,IAAME,iBAAiB,CAACC,aAAAA;AAC7B,MAAI,CAACA,SAASC,cAAc,CAAWC,kBAAQF,SAASG,IAAI,GAAG;AAC7D,WAAOH;EACT;AAEA,SAAOA,SAASG,KAAKC,MAAM,CAAA;AAC7B;AAOO,IAAMC,+BAA+B,CAACC,YAAAA;AAQ3CC,iBAAe,CAAC,CAACD,QAAQE,oBAAoBF,QAAQG,SAASC,WAAWC,WAAW,gBAAA;AACpFJ,iBAAe,CAAC,CAACD,QAAQM,oBAAoBN,QAAQG,SAASC,WAAWC,WAAW,gBAAA;AAEpF,QAAME,MAAM;;IAEVC,KAAKR,QAAQS,cAAcC,IAAIC,aAAaX,QAAQY,QAAQ,EAAEC,SAAQ;IACtEC,YAAYd,QAAQG;IACpBY,SAASf,QAAQe;IACjBH,UAAUZ,QAAQY;EACpB;AACA,MAAIZ,QAAQG,SAASC,WAAWC,UAAU;AACxCE,QAAIL,iBAAiB;MAAEc,MAAMhB,QAAQE;IAAe;AACpDK,QAAID,iBAAiB;MAAEU,MAAMhB,QAAQM;IAAe;EACtD;AAEA,SAAOC;AACT;",
6
+ "names": ["Schema", "KindId", "SchemaKindId", "SnapshotKindId", "EntityKind", "EntityKindSchema", "Enums", "ANY_OBJECT_TYPENAME", "ANY_OBJECT_VERSION", "SchemaAST", "assertArgument", "DXN", "createAnnotationHelper", "id", "get", "schema", "getAnnotation", "ast", "getFromAst", "set", "value", "annotations", "unwrapOptional", "property", "isOptional", "isUnion", "type", "types", "makeTypeJsonSchemaAnnotation", "options", "assertArgument", "relationSource", "kind", "EntityKind", "Relation", "relationTarget", "obj", "$id", "identifier", "DXN", "fromTypename", "typename", "toString", "entityKind", "version", "$ref"]
7
+ }
@@ -0,0 +1,51 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-J5LGTIGS.mjs";
4
+
5
+ // src/Err.ts
6
+ var Err_exports = {};
7
+ __export(Err_exports, {
8
+ GetReactiveError: () => GetReactiveError,
9
+ ObjectNotFoundError: () => ObjectNotFoundError,
10
+ SchemaNotFoundError: () => SchemaNotFoundError
11
+ });
12
+ import { BaseError } from "@dxos/errors";
13
+ var SchemaNotFoundError = class extends BaseError.extend("SchemaNotFoundError", "Schema not found") {
14
+ constructor(schema, options) {
15
+ super({
16
+ context: {
17
+ schema
18
+ },
19
+ ...options
20
+ });
21
+ }
22
+ };
23
+ var ObjectNotFoundError = class extends BaseError.extend("ObjectNotFoundError", "Object not found") {
24
+ constructor(dxn, options) {
25
+ super({
26
+ context: {
27
+ dxn
28
+ },
29
+ ...options
30
+ });
31
+ }
32
+ };
33
+ var GetReactiveError = class extends BaseError.extend("GetReactiveError", "Failed to get reactive object from snapshot") {
34
+ constructor(options) {
35
+ super({
36
+ context: {
37
+ reason: options.reason,
38
+ snapshotId: options.snapshotId
39
+ },
40
+ ...options
41
+ });
42
+ }
43
+ };
44
+
45
+ export {
46
+ SchemaNotFoundError,
47
+ ObjectNotFoundError,
48
+ GetReactiveError,
49
+ Err_exports
50
+ };
51
+ //# sourceMappingURL=chunk-UBEZSGXY.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Err.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { BaseError, type BaseErrorOptions } from '@dxos/errors';\nimport { type DXN } from '@dxos/keys';\n\nexport class SchemaNotFoundError extends BaseError.extend('SchemaNotFoundError', 'Schema not found') {\n constructor(schema: string, options?: BaseErrorOptions) {\n super({ context: { schema }, ...options });\n }\n}\n\nexport class ObjectNotFoundError extends BaseError.extend('ObjectNotFoundError', 'Object not found') {\n constructor(dxn: DXN, options?: BaseErrorOptions) {\n super({ context: { dxn }, ...options });\n }\n}\n\n/**\n * Reason why getting a reactive object from a snapshot failed.\n * - `no-database`: The snapshot is not associated with a database.\n * - `object-not-found`: The object was removed or does not exist in the database.\n */\nexport type GetReactiveErrorReason = 'no-database' | 'object-not-found';\n\n/**\n * Error thrown when a reactive object cannot be resolved from a snapshot.\n * Extends `BaseError` with a `reason` and optional `snapshotId` in its context.\n */\nexport class GetReactiveError extends BaseError.extend(\n 'GetReactiveError',\n 'Failed to get reactive object from snapshot',\n) {\n constructor(options: { reason: GetReactiveErrorReason; snapshotId?: string } & BaseErrorOptions) {\n super({ context: { reason: options.reason, snapshotId: options.snapshotId }, ...options });\n }\n}\n"],
5
+ "mappings": ";;;;;AAAA;;;;;;AAMA,SAASA,iBAAwC;AAG1C,IAAMC,sBAAN,cAAkCC,UAAUC,OAAO,uBAAuB,kBAAA,EAAA;EAC/E,YAAYC,QAAgBC,SAA4B;AACtD,UAAM;MAAEC,SAAS;QAAEF;MAAO;MAAG,GAAGC;IAAQ,CAAA;EAC1C;AACF;AAEO,IAAME,sBAAN,cAAkCL,UAAUC,OAAO,uBAAuB,kBAAA,EAAA;EAC/E,YAAYK,KAAUH,SAA4B;AAChD,UAAM;MAAEC,SAAS;QAAEE;MAAI;MAAG,GAAGH;IAAQ,CAAA;EACvC;AACF;AAaO,IAAMI,mBAAN,cAA+BP,UAAUC,OAC9C,oBACA,6CAAA,EAAA;EAEA,YAAYE,SAAqF;AAC/F,UAAM;MAAEC,SAAS;QAAEI,QAAQL,QAAQK;QAAQC,YAAYN,QAAQM;MAAW;MAAG,GAAGN;IAAQ,CAAA;EAC1F;AACF;",
6
+ "names": ["BaseError", "SchemaNotFoundError", "BaseError", "extend", "schema", "options", "context", "ObjectNotFoundError", "dxn", "GetReactiveError", "reason", "snapshotId"]
7
+ }
@@ -0,0 +1,42 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-J5LGTIGS.mjs";
4
+
5
+ // src/Order.ts
6
+ var Order_exports = {};
7
+ __export(Order_exports, {
8
+ natural: () => natural,
9
+ property: () => property,
10
+ rank: () => rank
11
+ });
12
+ var OrderClass = class _OrderClass {
13
+ ast;
14
+ static "variance" = {};
15
+ static is(value) {
16
+ return typeof value === "object" && value !== null && "~Order" in value;
17
+ }
18
+ constructor(ast) {
19
+ this.ast = ast;
20
+ }
21
+ "~Order" = _OrderClass.variance;
22
+ };
23
+ var natural = new OrderClass({
24
+ kind: "natural"
25
+ });
26
+ var property = (property2, direction) => new OrderClass({
27
+ kind: "property",
28
+ property: property2,
29
+ direction
30
+ });
31
+ var rank = (direction = "desc") => new OrderClass({
32
+ kind: "rank",
33
+ direction
34
+ });
35
+
36
+ export {
37
+ natural,
38
+ property,
39
+ rank,
40
+ Order_exports
41
+ };
42
+ //# sourceMappingURL=chunk-UI6MWK5W.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Order.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type QueryAST } from '@dxos/echo-protocol';\n\nexport interface Order<T> {\n // TODO(dmaretskyi): See new effect-schema approach to variance.\n '~Order': { value: T };\n\n ast: QueryAST.Order;\n}\n\nexport type Any = Order<any>;\n\nclass OrderClass implements Order<any> {\n private static 'variance': Order<any>['~Order'] = {} as Order<any>['~Order'];\n\n static is(value: unknown): value is Order<any> {\n return typeof value === 'object' && value !== null && '~Order' in value;\n }\n\n constructor(public readonly ast: QueryAST.Order) {}\n\n '~Order' = OrderClass.variance;\n}\n\nexport const natural: Order<any> = new OrderClass({ kind: 'natural' });\nexport const property = <T>(property: keyof T & string, direction: QueryAST.OrderDirection): Order<T> =>\n new OrderClass({\n kind: 'property',\n property,\n direction,\n });\n\n/**\n * Order by relevance rank (for FTS/vector search results).\n * Higher rank = better match. Default direction is 'desc' (best matches first).\n */\nexport const rank = <T>(direction: QueryAST.OrderDirection = 'desc'): Order<T> =>\n new OrderClass({\n kind: 'rank',\n direction,\n });\n"],
5
+ "mappings": ";;;;;AAAA;;;;;;AAiBA,IAAMA,aAAN,MAAMA,YAAAA;;EACJ,OAAe,aAAmC,CAAC;EAEnD,OAAOC,GAAGC,OAAqC;AAC7C,WAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,YAAYA;EACpE;EAEA,YAA4BC,KAAqB;SAArBA,MAAAA;EAAsB;EAElD,WAAWH,YAAWI;AACxB;AAEO,IAAMC,UAAsB,IAAIL,WAAW;EAAEM,MAAM;AAAU,CAAA;AAC7D,IAAMC,WAAW,CAAIA,WAA4BC,cACtD,IAAIR,WAAW;EACbM,MAAM;EACNC,UAAAA;EACAC;AACF,CAAA;AAMK,IAAMC,OAAO,CAAID,YAAqC,WAC3D,IAAIR,WAAW;EACbM,MAAM;EACNE;AACF,CAAA;",
6
+ "names": ["OrderClass", "is", "value", "ast", "variance", "natural", "kind", "property", "direction", "rank"]
7
+ }
@@ -0,0 +1,36 @@
1
+ import {
2
+ getSchemaDXN
3
+ } from "./chunk-2KHZ36F5.mjs";
4
+ import {
5
+ __export
6
+ } from "./chunk-J5LGTIGS.mjs";
7
+
8
+ // src/Migration.ts
9
+ var Migration_exports = {};
10
+ __export(Migration_exports, {
11
+ define: () => define
12
+ });
13
+ var define = (options) => {
14
+ const fromType = getSchemaDXN(options.from);
15
+ if (!fromType) {
16
+ throw new Error("Invalid from schema");
17
+ }
18
+ const toType = getSchemaDXN(options.to);
19
+ if (!toType) {
20
+ throw new Error("Invalid to schema");
21
+ }
22
+ return {
23
+ fromType,
24
+ toType,
25
+ fromSchema: options.from,
26
+ toSchema: options.to,
27
+ transform: options.transform,
28
+ onMigration: options.onMigration
29
+ };
30
+ };
31
+
32
+ export {
33
+ define,
34
+ Migration_exports
35
+ };
36
+ //# sourceMappingURL=chunk-WAK4DMFV.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Migration.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\n// @import-as-namespace\n\nimport type * as Schema from 'effect/Schema';\n\nimport { type DXN } from '@dxos/keys';\n\nimport type * as Database from './Database';\nimport type * as Entity from './Entity';\nimport { getSchemaDXN } from './internal';\n\ntype DefineObjectMigrationOptions<From extends Schema.Schema.AnyNoContext, To extends Schema.Schema.AnyNoContext> = {\n from: From;\n to: To;\n /**\n * Pure function that converts the old object data to the new object data.\n */\n // TODO(dmaretskyi): `id` should not be a part of the schema.\n transform: (\n from: Schema.Schema.Type<From>,\n context: ObjectMigrationContext,\n ) => Promise<Omit<Schema.Schema.Type<To>, 'id' | Entity.KindId>>;\n\n /**\n * Callback that is called after the object is migrated. Called for every object that is migrated.\n *\n * NOTE: Database mutations performed in this callback are not guaranteed to be idempotent.\n * If multiple peers run the migration separately, the effects may be applied multiple times.\n */\n onMigration: (params: OnMigrateProps<From, To>) => Promise<void>;\n};\n\n/**\n * Context passed to object migration callbacks.\n */\nexport type ObjectMigrationContext = {\n db: Database.Database;\n};\n\ntype OnMigrateProps<From extends Schema.Schema.AnyNoContext, To extends Schema.Schema.AnyNoContext> = {\n before: Schema.Schema.Type<From>;\n object: Schema.Schema.Type<To>;\n db: Database.Database;\n};\n\n/**\n * Definition of a migration from one object schema version to another.\n */\nexport type ObjectMigration = {\n fromType: DXN;\n toType: DXN;\n fromSchema: Schema.Schema.AnyNoContext;\n toSchema: Schema.Schema.AnyNoContext;\n transform: (from: unknown, context: ObjectMigrationContext) => Promise<unknown>;\n onMigration: (params: OnMigrateProps<any, any>) => Promise<void>;\n};\n\n/**\n * Define a migration between two object schemas.\n *\n * @example\n * ```ts\n * const migration = Migration.define({\n * from: ContactV1,\n * to: ContactV2,\n * transform: async (from) => ({ name: `${from.firstName} ${from.lastName}` }),\n * onMigration: async () => {},\n * });\n * ```\n */\nexport const define = <From extends Schema.Schema.AnyNoContext, To extends Schema.Schema.AnyNoContext>(\n options: DefineObjectMigrationOptions<From, To>,\n): ObjectMigration => {\n const fromType = getSchemaDXN(options.from);\n if (!fromType) {\n throw new Error('Invalid from schema');\n }\n const toType = getSchemaDXN(options.to);\n if (!toType) {\n throw new Error('Invalid to schema');\n }\n\n return {\n fromType,\n toType,\n fromSchema: options.from,\n toSchema: options.to,\n transform: options.transform as any,\n onMigration: options.onMigration as any,\n };\n};\n"],
5
+ "mappings": ";;;;;;;;AAAA;;;;AAyEO,IAAMA,SAAS,CACpBC,YAAAA;AAEA,QAAMC,WAAWC,aAAaF,QAAQG,IAAI;AAC1C,MAAI,CAACF,UAAU;AACb,UAAM,IAAIG,MAAM,qBAAA;EAClB;AACA,QAAMC,SAASH,aAAaF,QAAQM,EAAE;AACtC,MAAI,CAACD,QAAQ;AACX,UAAM,IAAID,MAAM,mBAAA;EAClB;AAEA,SAAO;IACLH;IACAI;IACAE,YAAYP,QAAQG;IACpBK,UAAUR,QAAQM;IAClBG,WAAWT,QAAQS;IACnBC,aAAaV,QAAQU;EACvB;AACF;",
6
+ "names": ["define", "options", "fromType", "getSchemaDXN", "from", "Error", "toType", "to", "fromSchema", "toSchema", "transform", "onMigration"]
7
+ }
@@ -0,0 +1,34 @@
1
+ import {
2
+ Ref
3
+ } from "./chunk-JPWH3QJD.mjs";
4
+
5
+ // src/internal/Ref/ref-array.ts
6
+ import { isNonNullable } from "@dxos/util";
7
+ var RefArray = Object.freeze({
8
+ /**
9
+ * @returns all resolved targets.
10
+ */
11
+ targets: (refs) => {
12
+ return refs.map((ref) => ref.target).filter(isNonNullable);
13
+ },
14
+ /**
15
+ * Load all referenced objects.
16
+ */
17
+ loadAll: (refs) => {
18
+ return Promise.all(refs.map((ref) => ref.load()));
19
+ },
20
+ /**
21
+ * Removes the ref with the given id.
22
+ */
23
+ removeById: (refs, id) => {
24
+ const index = refs.findIndex(Ref.hasObjectId(id));
25
+ if (index >= 0) {
26
+ refs.splice(index, 1);
27
+ }
28
+ }
29
+ });
30
+
31
+ export {
32
+ RefArray
33
+ };
34
+ //# sourceMappingURL=chunk-XEU2Q5CI.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/Ref/ref-array.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type ObjectId } from '@dxos/keys';\nimport { isNonNullable } from '@dxos/util';\n\nimport { type AnyEntity } from '../common/types';\nimport { Ref } from './ref';\n\n/**\n * Helper functions for working with arrays of refs.\n */\nexport const RefArray = Object.freeze({\n /**\n * @returns all resolved targets.\n */\n targets: <T extends AnyEntity>(refs: readonly Ref<T>[]): T[] => {\n return refs.map((ref) => ref.target).filter(isNonNullable);\n },\n\n /**\n * Load all referenced objects.\n */\n loadAll: <T extends AnyEntity>(refs: readonly Ref<T>[]): Promise<T[]> => {\n return Promise.all(refs.map((ref) => ref.load()));\n },\n\n /**\n * Removes the ref with the given id.\n */\n removeById: (refs: Ref<AnyEntity>[], id: ObjectId) => {\n const index = refs.findIndex(Ref.hasObjectId(id));\n if (index >= 0) {\n refs.splice(index, 1);\n }\n },\n});\n"],
5
+ "mappings": ";;;;;AAKA,SAASA,qBAAqB;AAQvB,IAAMC,WAAWC,OAAOC,OAAO;;;;EAIpCC,SAAS,CAAsBC,SAAAA;AAC7B,WAAOA,KAAKC,IAAI,CAACC,QAAQA,IAAIC,MAAM,EAAEC,OAAOC,aAAAA;EAC9C;;;;EAKAC,SAAS,CAAsBN,SAAAA;AAC7B,WAAOO,QAAQC,IAAIR,KAAKC,IAAI,CAACC,QAAQA,IAAIO,KAAI,CAAA,CAAA;EAC/C;;;;EAKAC,YAAY,CAACV,MAAwBW,OAAAA;AACnC,UAAMC,QAAQZ,KAAKa,UAAUC,IAAIC,YAAYJ,EAAAA,CAAAA;AAC7C,QAAIC,SAAS,GAAG;AACdZ,WAAKgB,OAAOJ,OAAO,CAAA;IACrB;EACF;AACF,CAAA;",
6
+ "names": ["isNonNullable", "RefArray", "Object", "freeze", "targets", "refs", "map", "ref", "target", "filter", "isNonNullable", "loadAll", "Promise", "all", "load", "removeById", "id", "index", "findIndex", "Ref", "hasObjectId", "splice"]
7
+ }