@dxos/echo 0.8.4-main.c4373fc → 0.8.4-main.c85a9c8dae

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 (559) hide show
  1. package/README.md +3 -4
  2. package/dist/lib/neutral/Annotation.mjs +37 -0
  3. package/dist/lib/neutral/Database.mjs +45 -0
  4. package/dist/lib/neutral/Entity.mjs +56 -0
  5. package/dist/lib/neutral/Err.mjs +12 -0
  6. package/dist/lib/neutral/Feed.mjs +43 -0
  7. package/dist/lib/neutral/Filter.mjs +61 -0
  8. package/dist/lib/neutral/Format.mjs +66 -0
  9. package/dist/lib/neutral/Format.mjs.map +7 -0
  10. package/dist/lib/neutral/JsonSchema.mjs +18 -0
  11. package/dist/lib/neutral/JsonSchema.mjs.map +7 -0
  12. package/dist/lib/neutral/Key.mjs +12 -0
  13. package/dist/lib/neutral/Key.mjs.map +7 -0
  14. package/dist/lib/neutral/Obj.mjs +107 -0
  15. package/dist/lib/neutral/Obj.mjs.map +7 -0
  16. package/dist/lib/neutral/Order.mjs +12 -0
  17. package/dist/lib/neutral/Order.mjs.map +7 -0
  18. package/dist/lib/neutral/Query.mjs +32 -0
  19. package/dist/lib/neutral/Query.mjs.map +7 -0
  20. package/dist/lib/neutral/QueryResult.mjs +2 -0
  21. package/dist/lib/neutral/QueryResult.mjs.map +7 -0
  22. package/dist/lib/neutral/Ref.mjs +24 -0
  23. package/dist/lib/neutral/Ref.mjs.map +7 -0
  24. package/dist/lib/neutral/Relation.mjs +90 -0
  25. package/dist/lib/neutral/Relation.mjs.map +7 -0
  26. package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
  27. package/dist/lib/neutral/SchemaRegistry.mjs.map +7 -0
  28. package/dist/lib/neutral/Tag.mjs +25 -0
  29. package/dist/lib/neutral/Tag.mjs.map +7 -0
  30. package/dist/lib/neutral/Type.mjs +34 -0
  31. package/dist/lib/neutral/Type.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-4KG6IGL4.mjs +67 -0
  33. package/dist/lib/neutral/chunk-4KG6IGL4.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-5ELDDYWE.mjs +130 -0
  35. package/dist/lib/neutral/chunk-5ELDDYWE.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-ALOGSVBP.mjs +299 -0
  37. package/dist/lib/neutral/chunk-ALOGSVBP.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-ANHVGJI4.mjs +21 -0
  39. package/dist/lib/neutral/chunk-ANHVGJI4.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-AQP4QKYP.mjs +283 -0
  41. package/dist/lib/neutral/chunk-AQP4QKYP.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-BRJSLACP.mjs +152 -0
  43. package/dist/lib/neutral/chunk-BRJSLACP.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-DZQSL6RW.mjs +73 -0
  45. package/dist/lib/neutral/chunk-DZQSL6RW.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-F7KMHDPJ.mjs +327 -0
  47. package/dist/lib/neutral/chunk-F7KMHDPJ.mjs.map +7 -0
  48. package/dist/lib/neutral/chunk-GAWKQ5DZ.mjs +56 -0
  49. package/dist/lib/neutral/chunk-GAWKQ5DZ.mjs.map +7 -0
  50. package/dist/lib/neutral/chunk-GFNCSK7F.mjs +101 -0
  51. package/dist/lib/neutral/chunk-GFNCSK7F.mjs.map +7 -0
  52. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  53. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  54. package/dist/lib/neutral/chunk-KGV3QIRX.mjs +313 -0
  55. package/dist/lib/neutral/chunk-KGV3QIRX.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-M2KVTHZM.mjs +402 -0
  57. package/dist/lib/neutral/chunk-M2KVTHZM.mjs.map +7 -0
  58. package/dist/lib/neutral/chunk-MXQJZCPY.mjs +51 -0
  59. package/dist/lib/neutral/chunk-MXQJZCPY.mjs.map +7 -0
  60. package/dist/lib/neutral/chunk-O3TZFQCT.mjs +27 -0
  61. package/dist/lib/neutral/chunk-O3TZFQCT.mjs.map +7 -0
  62. package/dist/lib/neutral/chunk-OMUPQMLR.mjs +7 -0
  63. package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +7 -0
  64. package/dist/lib/neutral/chunk-OVUBTQLT.mjs +45 -0
  65. package/dist/lib/neutral/chunk-OVUBTQLT.mjs.map +7 -0
  66. package/dist/lib/neutral/chunk-PP4DNUZU.mjs +3919 -0
  67. package/dist/lib/neutral/chunk-PP4DNUZU.mjs.map +7 -0
  68. package/dist/lib/neutral/chunk-QXF3LGN2.mjs +43 -0
  69. package/dist/lib/neutral/chunk-QXF3LGN2.mjs.map +7 -0
  70. package/dist/lib/neutral/chunk-T4MPQJ7X.mjs +97 -0
  71. package/dist/lib/neutral/chunk-T4MPQJ7X.mjs.map +7 -0
  72. package/dist/lib/neutral/chunk-T6JEFNP6.mjs +7 -0
  73. package/dist/lib/neutral/chunk-T6JEFNP6.mjs.map +7 -0
  74. package/dist/lib/neutral/chunk-W7OP5HGZ.mjs +121 -0
  75. package/dist/lib/neutral/chunk-W7OP5HGZ.mjs.map +7 -0
  76. package/dist/lib/neutral/chunk-ZTUBYOGB.mjs +42 -0
  77. package/dist/lib/neutral/chunk-ZTUBYOGB.mjs.map +7 -0
  78. package/dist/lib/neutral/chunk-ZWKJ4LZJ.mjs +298 -0
  79. package/dist/lib/neutral/chunk-ZWKJ4LZJ.mjs.map +7 -0
  80. package/dist/lib/neutral/index.mjs +94 -0
  81. package/dist/lib/neutral/index.mjs.map +7 -0
  82. package/dist/lib/{node-esm → neutral}/internal/index.mjs +260 -122
  83. package/dist/lib/neutral/internal/index.mjs.map +7 -0
  84. package/dist/lib/neutral/meta.json +1 -0
  85. package/dist/lib/neutral/testing/index.mjs +369 -0
  86. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  87. package/dist/types/src/Annotation.d.ts +24 -0
  88. package/dist/types/src/Annotation.d.ts.map +1 -0
  89. package/dist/types/src/Collection.d.ts +16 -0
  90. package/dist/types/src/Collection.d.ts.map +1 -0
  91. package/dist/types/src/Database.d.ts +189 -0
  92. package/dist/types/src/Database.d.ts.map +1 -0
  93. package/dist/types/src/Dataset.d.ts +18 -0
  94. package/dist/types/src/Dataset.d.ts.map +1 -0
  95. package/dist/types/src/Entity.d.ts +168 -0
  96. package/dist/types/src/Entity.d.ts.map +1 -0
  97. package/dist/types/src/Entity.test.d.ts +2 -0
  98. package/dist/types/src/Entity.test.d.ts.map +1 -0
  99. package/dist/types/src/Err.d.ts +107 -0
  100. package/dist/types/src/Err.d.ts.map +1 -0
  101. package/dist/types/src/Feed.d.ts +165 -0
  102. package/dist/types/src/Feed.d.ts.map +1 -0
  103. package/dist/types/src/Filter.d.ts +120 -0
  104. package/dist/types/src/Filter.d.ts.map +1 -0
  105. package/dist/types/src/Format.d.ts +4 -0
  106. package/dist/types/src/Format.d.ts.map +1 -0
  107. package/dist/types/src/Hypergraph.d.ts +60 -0
  108. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  109. package/dist/types/src/JsonSchema.d.ts +16 -0
  110. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  111. package/dist/types/src/Key.d.ts +1 -0
  112. package/dist/types/src/Key.d.ts.map +1 -1
  113. package/dist/types/src/Obj.d.ts +423 -95
  114. package/dist/types/src/Obj.d.ts.map +1 -1
  115. package/dist/types/src/Obj.test.d.ts +2 -0
  116. package/dist/types/src/Obj.test.d.ts.map +1 -0
  117. package/dist/types/src/Order.d.ts +16 -0
  118. package/dist/types/src/Order.d.ts.map +1 -0
  119. package/dist/types/src/Query.d.ts +202 -0
  120. package/dist/types/src/Query.d.ts.map +1 -0
  121. package/dist/types/src/Query.test.d.ts +2 -0
  122. package/dist/types/src/Query.test.d.ts.map +1 -0
  123. package/dist/types/src/QueryResult.d.ts +80 -0
  124. package/dist/types/src/QueryResult.d.ts.map +1 -0
  125. package/dist/types/src/Ref.d.ts +61 -11
  126. package/dist/types/src/Ref.d.ts.map +1 -1
  127. package/dist/types/src/Relation.d.ts +287 -21
  128. package/dist/types/src/Relation.d.ts.map +1 -1
  129. package/dist/types/src/Relation.test.d.ts +2 -0
  130. package/dist/types/src/Relation.test.d.ts.map +1 -0
  131. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  132. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  133. package/dist/types/src/Tag.d.ts +18 -0
  134. package/dist/types/src/Tag.d.ts.map +1 -0
  135. package/dist/types/src/Type.d.ts +120 -97
  136. package/dist/types/src/Type.d.ts.map +1 -1
  137. package/dist/types/src/Type.test.d.ts +2 -0
  138. package/dist/types/src/Type.test.d.ts.map +1 -0
  139. package/dist/types/src/View.d.ts +68 -0
  140. package/dist/types/src/View.d.ts.map +1 -0
  141. package/dist/types/src/hierarchy.test.d.ts +2 -0
  142. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  143. package/dist/types/src/index.d.ts +19 -5
  144. package/dist/types/src/index.d.ts.map +1 -1
  145. package/dist/types/src/internal/annotations/annotations.d.ts +209 -0
  146. package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -0
  147. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +1 -0
  148. package/dist/types/src/internal/annotations/index.d.ts +3 -0
  149. package/dist/types/src/internal/annotations/index.d.ts.map +1 -0
  150. package/dist/types/src/internal/annotations/util.d.ts +39 -0
  151. package/dist/types/src/internal/annotations/util.d.ts.map +1 -0
  152. package/dist/types/src/internal/api/annotations.d.ts +23 -0
  153. package/dist/types/src/internal/api/annotations.d.ts.map +1 -0
  154. package/dist/types/src/internal/api/entity.d.ts +13 -0
  155. package/dist/types/src/internal/api/entity.d.ts.map +1 -0
  156. package/dist/types/src/internal/api/index.d.ts +15 -0
  157. package/dist/types/src/internal/api/index.d.ts.map +1 -0
  158. package/dist/types/src/internal/api/meta.d.ts +42 -0
  159. package/dist/types/src/internal/api/meta.d.ts.map +1 -0
  160. package/dist/types/src/internal/api/sorting.d.ts +24 -0
  161. package/dist/types/src/internal/api/sorting.d.ts.map +1 -0
  162. package/dist/types/src/internal/api/version.d.ts +42 -0
  163. package/dist/types/src/internal/api/version.d.ts.map +1 -0
  164. package/dist/types/src/internal/entities/entity.d.ts +20 -0
  165. package/dist/types/src/internal/entities/entity.d.ts.map +1 -0
  166. package/dist/types/src/internal/entities/index.d.ts +6 -0
  167. package/dist/types/src/internal/entities/index.d.ts.map +1 -0
  168. package/dist/types/src/internal/entities/model.d.ts +79 -0
  169. package/dist/types/src/internal/entities/model.d.ts.map +1 -0
  170. package/dist/types/src/internal/entities/object.d.ts +18 -0
  171. package/dist/types/src/internal/entities/object.d.ts.map +1 -0
  172. package/dist/types/src/internal/entities/relation.d.ts +62 -0
  173. package/dist/types/src/internal/entities/relation.d.ts.map +1 -0
  174. package/dist/types/src/internal/entities/util.d.ts +2 -0
  175. package/dist/types/src/internal/entities/util.d.ts.map +1 -0
  176. package/dist/types/src/internal/formats/format.d.ts +4 -2
  177. package/dist/types/src/internal/formats/format.d.ts.map +1 -1
  178. package/dist/types/src/internal/formats/select.d.ts +6 -4
  179. package/dist/types/src/internal/formats/select.d.ts.map +1 -1
  180. package/dist/types/src/internal/formats/string.d.ts +4 -0
  181. package/dist/types/src/internal/formats/string.d.ts.map +1 -1
  182. package/dist/types/src/internal/formats/types.d.ts +13 -9
  183. package/dist/types/src/internal/formats/types.d.ts.map +1 -1
  184. package/dist/types/src/internal/index.d.ts +7 -10
  185. package/dist/types/src/internal/index.d.ts.map +1 -1
  186. package/dist/types/src/internal/json-schema/annotations.d.ts.map +1 -0
  187. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +1 -0
  188. package/dist/types/src/internal/json-schema/index.d.ts +2 -0
  189. package/dist/types/src/internal/json-schema/index.d.ts.map +1 -1
  190. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -1
  191. package/dist/types/src/internal/json-schema/json-schema-type.d.ts +130 -29
  192. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -1
  193. package/dist/types/src/internal/{json → json-schema}/json-schema.d.ts +4 -6
  194. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -0
  195. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +1 -0
  196. package/dist/types/src/internal/object/clone.d.ts +8 -0
  197. package/dist/types/src/internal/object/clone.d.ts.map +1 -0
  198. package/dist/types/src/internal/object/common.d.ts.map +1 -1
  199. package/dist/types/src/internal/object/{create.d.ts → create-object.d.ts} +10 -11
  200. package/dist/types/src/internal/object/create-object.d.ts.map +1 -0
  201. package/dist/types/src/internal/object/create-object.test.d.ts +2 -0
  202. package/dist/types/src/internal/object/create-object.test.d.ts.map +1 -0
  203. package/dist/types/src/internal/object/deleted.d.ts +2 -2
  204. package/dist/types/src/internal/object/deleted.d.ts.map +1 -1
  205. package/dist/types/src/internal/object/ids.d.ts.map +1 -1
  206. package/dist/types/src/internal/object/index.d.ts +6 -12
  207. package/dist/types/src/internal/object/index.d.ts.map +1 -1
  208. package/dist/types/src/internal/object/json-serializer.d.ts +14 -9
  209. package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -1
  210. package/dist/types/src/internal/object/schema-validator.d.ts +1 -14
  211. package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -1
  212. package/dist/types/src/internal/object/set-value.d.ts +7 -0
  213. package/dist/types/src/internal/object/set-value.d.ts.map +1 -0
  214. package/dist/types/src/internal/object/set-value.test.d.ts +2 -0
  215. package/dist/types/src/internal/object/set-value.test.d.ts.map +1 -0
  216. package/dist/types/src/internal/object/snapshot.d.ts +6 -0
  217. package/dist/types/src/internal/object/snapshot.d.ts.map +1 -0
  218. package/dist/types/src/internal/object/typed-object.d.ts +8 -14
  219. package/dist/types/src/internal/object/typed-object.d.ts.map +1 -1
  220. package/dist/types/src/internal/proxy/change-context.d.ts +55 -0
  221. package/dist/types/src/internal/proxy/change-context.d.ts.map +1 -0
  222. package/dist/types/src/internal/proxy/change.test.d.ts +2 -0
  223. package/dist/types/src/internal/proxy/change.test.d.ts.map +1 -0
  224. package/dist/types/src/internal/proxy/define-hidden-property.d.ts +5 -0
  225. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +1 -0
  226. package/dist/types/src/internal/proxy/errors.d.ts +19 -0
  227. package/dist/types/src/internal/proxy/errors.d.ts.map +1 -0
  228. package/dist/types/src/internal/proxy/event-batch.d.ts +10 -0
  229. package/dist/types/src/internal/proxy/event-batch.d.ts.map +1 -0
  230. package/dist/types/src/internal/proxy/index.d.ts +14 -0
  231. package/dist/types/src/internal/proxy/index.d.ts.map +1 -0
  232. package/dist/types/src/internal/proxy/json-serializer.d.ts +6 -0
  233. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +1 -0
  234. package/dist/types/src/internal/proxy/make-object.d.ts +14 -0
  235. package/dist/types/src/internal/proxy/make-object.d.ts.map +1 -0
  236. package/dist/types/src/internal/proxy/ownership.d.ts +57 -0
  237. package/dist/types/src/internal/proxy/ownership.d.ts.map +1 -0
  238. package/dist/types/src/internal/proxy/proxy-types.d.ts +18 -0
  239. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +1 -0
  240. package/dist/types/src/internal/proxy/proxy-utils.d.ts +47 -0
  241. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +1 -0
  242. package/dist/types/src/internal/proxy/reactive-array.d.ts +8 -0
  243. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +1 -0
  244. package/dist/types/src/internal/proxy/reactive.d.ts +39 -0
  245. package/dist/types/src/internal/proxy/reactive.d.ts.map +1 -0
  246. package/dist/types/src/internal/proxy/schema-validator.d.ts +15 -0
  247. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +1 -0
  248. package/dist/types/src/internal/proxy/symbols.d.ts +3 -0
  249. package/dist/types/src/internal/proxy/symbols.d.ts.map +1 -0
  250. package/dist/types/src/internal/proxy/typed-handler.d.ts +16 -12
  251. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -1
  252. package/dist/types/src/internal/ref/ref-array.d.ts +4 -4
  253. package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -1
  254. package/dist/types/src/internal/ref/ref.d.ts +43 -18
  255. package/dist/types/src/internal/ref/ref.d.ts.map +1 -1
  256. package/dist/types/src/internal/schema/compose.d.ts +7 -0
  257. package/dist/types/src/internal/schema/compose.d.ts.map +1 -0
  258. package/dist/types/src/internal/schema/compose.test.d.ts.map +1 -0
  259. package/dist/types/src/internal/schema/echo-schema.d.ts +25 -12
  260. package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -1
  261. package/dist/types/src/internal/schema/index.d.ts +1 -4
  262. package/dist/types/src/internal/schema/index.d.ts.map +1 -1
  263. package/dist/types/src/internal/schema/manipulation.d.ts.map +1 -1
  264. package/dist/types/src/internal/schema/persistent-schema.d.ts +20 -0
  265. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +1 -0
  266. package/dist/types/src/internal/types/base.d.ts +27 -0
  267. package/dist/types/src/internal/types/base.d.ts.map +1 -0
  268. package/dist/types/src/internal/types/entity.d.ts +37 -0
  269. package/dist/types/src/internal/types/entity.d.ts.map +1 -0
  270. package/dist/types/src/internal/types/index.d.ts +5 -2
  271. package/dist/types/src/internal/types/index.d.ts.map +1 -1
  272. package/dist/types/src/internal/{object → types}/meta.d.ts +16 -14
  273. package/dist/types/src/internal/types/meta.d.ts.map +1 -0
  274. package/dist/types/src/internal/types/typename.d.ts +21 -0
  275. package/dist/types/src/internal/types/typename.d.ts.map +1 -0
  276. package/dist/types/src/internal/types/version.d.ts +15 -0
  277. package/dist/types/src/internal/types/version.d.ts.map +1 -0
  278. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  279. package/dist/types/src/testing/index.d.ts +3 -3
  280. package/dist/types/src/testing/index.d.ts.map +1 -1
  281. package/dist/types/src/testing/test-data.d.ts +18 -0
  282. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  283. package/dist/types/src/testing/test-schema.d.ts +304 -0
  284. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  285. package/dist/types/src/testing/util.d.ts +21 -0
  286. package/dist/types/src/testing/util.d.ts.map +1 -0
  287. package/dist/types/tsconfig.tsbuildinfo +1 -1
  288. package/package.json +106 -65
  289. package/src/Annotation.ts +46 -0
  290. package/src/Collection.ts +30 -0
  291. package/src/Database.ts +315 -0
  292. package/src/Dataset.ts +24 -0
  293. package/src/Entity.test.ts +22 -0
  294. package/src/Entity.ts +234 -0
  295. package/src/Err.ts +38 -0
  296. package/src/Feed.ts +254 -0
  297. package/src/Filter.ts +389 -0
  298. package/src/Format.ts +9 -0
  299. package/src/Hypergraph.ts +74 -0
  300. package/src/JsonSchema.ts +24 -0
  301. package/src/Key.ts +3 -0
  302. package/src/Obj.test.ts +447 -0
  303. package/src/Obj.ts +588 -248
  304. package/src/Order.ts +44 -0
  305. package/src/Query.test.ts +632 -0
  306. package/src/Query.ts +520 -0
  307. package/src/QueryResult.ts +106 -0
  308. package/src/Ref.ts +77 -9
  309. package/src/Relation.test.ts +88 -0
  310. package/src/Relation.ts +440 -58
  311. package/src/SchemaRegistry.ts +106 -0
  312. package/src/Tag.ts +39 -0
  313. package/src/Type.test.ts +52 -0
  314. package/src/Type.ts +162 -151
  315. package/src/View.ts +100 -0
  316. package/src/hierarchy.test.ts +33 -0
  317. package/src/index.ts +20 -6
  318. package/src/internal/README.md +102 -0
  319. package/src/internal/{ast → annotations}/annotations.test.ts +18 -20
  320. package/src/internal/annotations/annotations.ts +526 -0
  321. package/src/internal/annotations/index.ts +6 -0
  322. package/src/internal/annotations/util.ts +85 -0
  323. package/src/internal/api/annotations.ts +60 -0
  324. package/src/internal/api/entity.ts +29 -0
  325. package/src/internal/api/index.ts +19 -0
  326. package/src/internal/api/meta.ts +88 -0
  327. package/src/internal/api/sorting.ts +53 -0
  328. package/src/internal/api/version.ts +96 -0
  329. package/src/internal/entities/entity.ts +128 -0
  330. package/src/internal/entities/index.ts +9 -0
  331. package/src/internal/entities/model.ts +138 -0
  332. package/src/internal/entities/object.ts +58 -0
  333. package/src/internal/entities/relation.ts +171 -0
  334. package/src/internal/entities/util.ts +33 -0
  335. package/src/internal/formats/date.test.ts +1 -1
  336. package/src/internal/formats/date.ts +5 -5
  337. package/src/internal/formats/format.test.ts +6 -6
  338. package/src/internal/formats/format.ts +8 -6
  339. package/src/internal/formats/number.ts +5 -5
  340. package/src/internal/formats/object.ts +4 -4
  341. package/src/internal/formats/select.ts +6 -4
  342. package/src/internal/formats/string.ts +14 -9
  343. package/src/internal/formats/types.ts +53 -42
  344. package/src/internal/index.ts +30 -13
  345. package/src/internal/{json → json-schema}/annotations.ts +1 -1
  346. package/src/internal/json-schema/index.ts +2 -0
  347. package/src/internal/json-schema/json-schema-normalize.ts +4 -2
  348. package/src/internal/json-schema/json-schema-type.ts +35 -35
  349. package/src/internal/{json → json-schema}/json-schema.test.ts +232 -97
  350. package/src/internal/{json → json-schema}/json-schema.ts +79 -93
  351. package/src/internal/object/clone.ts +48 -0
  352. package/src/internal/object/common.ts +3 -4
  353. package/src/internal/object/{create.test.ts → create-object.test.ts} +31 -33
  354. package/src/internal/object/{create.ts → create-object.ts} +36 -37
  355. package/src/internal/object/deleted.ts +6 -6
  356. package/src/internal/object/ids.ts +1 -1
  357. package/src/internal/object/index.ts +6 -12
  358. package/src/internal/object/inspect.ts +5 -7
  359. package/src/internal/object/json-serializer.test.ts +59 -37
  360. package/src/internal/object/json-serializer.ts +87 -108
  361. package/src/internal/object/schema-validator.test.ts +3 -7
  362. package/src/internal/object/schema-validator.ts +2 -237
  363. package/src/internal/object/set-value.test.ts +281 -0
  364. package/src/internal/object/set-value.ts +165 -0
  365. package/src/internal/object/snapshot.ts +96 -0
  366. package/src/internal/object/typed-object.test.ts +11 -11
  367. package/src/internal/object/typed-object.ts +8 -59
  368. package/src/internal/proxy/change-context.ts +138 -0
  369. package/src/internal/proxy/change.test.ts +519 -0
  370. package/src/internal/proxy/define-hidden-property.ts +14 -0
  371. package/src/internal/proxy/errors.ts +42 -0
  372. package/src/internal/proxy/event-batch.ts +44 -0
  373. package/src/internal/proxy/handler.test.ts +51 -91
  374. package/src/internal/proxy/index.ts +17 -0
  375. package/src/internal/proxy/json-serializer.ts +87 -0
  376. package/src/internal/proxy/make-object.ts +106 -0
  377. package/src/internal/proxy/ownership.ts +253 -0
  378. package/src/internal/proxy/proxy-types.ts +23 -0
  379. package/src/internal/proxy/proxy-utils.ts +150 -0
  380. package/src/internal/proxy/reactive-array.ts +71 -0
  381. package/src/internal/proxy/reactive.ts +69 -0
  382. package/src/internal/proxy/schema-validator.ts +244 -0
  383. package/src/internal/proxy/schema.test.ts +27 -18
  384. package/src/internal/proxy/symbols.ts +7 -0
  385. package/src/internal/proxy/typed-handler.test.ts +260 -48
  386. package/src/internal/proxy/typed-handler.ts +283 -61
  387. package/src/internal/proxy/typed-object.test.ts +54 -38
  388. package/src/internal/ref/ref-array.ts +4 -4
  389. package/src/internal/ref/ref.test.ts +10 -9
  390. package/src/internal/ref/ref.ts +107 -56
  391. package/src/internal/{projection → schema}/compose.test.ts +8 -9
  392. package/src/internal/{projection → schema}/compose.ts +13 -8
  393. package/src/internal/schema/echo-schema.ts +74 -33
  394. package/src/internal/schema/index.ts +1 -4
  395. package/src/internal/schema/manipulation.ts +7 -1
  396. package/src/internal/schema/persistent-schema.ts +33 -0
  397. package/src/internal/types/base.ts +43 -0
  398. package/src/internal/types/entity.ts +54 -0
  399. package/src/internal/types/index.ts +5 -2
  400. package/src/internal/types/meta.ts +68 -0
  401. package/src/internal/types/typename.ts +55 -0
  402. package/src/internal/types/version.ts +19 -0
  403. package/src/testing/api.test.ts +126 -0
  404. package/src/testing/index.ts +3 -3
  405. package/src/testing/test-data.ts +130 -0
  406. package/src/testing/test-schema.ts +240 -0
  407. package/src/testing/util.ts +85 -0
  408. package/dist/lib/browser/chunk-MWLA34S5.mjs +0 -3843
  409. package/dist/lib/browser/chunk-MWLA34S5.mjs.map +0 -7
  410. package/dist/lib/browser/chunk-OAZJQHVO.mjs +0 -453
  411. package/dist/lib/browser/chunk-OAZJQHVO.mjs.map +0 -7
  412. package/dist/lib/browser/chunk-ORIE2FMS.mjs +0 -514
  413. package/dist/lib/browser/chunk-ORIE2FMS.mjs.map +0 -7
  414. package/dist/lib/browser/index.mjs +0 -43
  415. package/dist/lib/browser/internal/index.mjs +0 -326
  416. package/dist/lib/browser/meta.json +0 -1
  417. package/dist/lib/browser/query/index.mjs +0 -23
  418. package/dist/lib/browser/testing/index.mjs +0 -298
  419. package/dist/lib/browser/testing/index.mjs.map +0 -7
  420. package/dist/lib/node-esm/chunk-AXWVDOP7.mjs +0 -453
  421. package/dist/lib/node-esm/chunk-AXWVDOP7.mjs.map +0 -7
  422. package/dist/lib/node-esm/chunk-L4PBAJDP.mjs +0 -514
  423. package/dist/lib/node-esm/chunk-L4PBAJDP.mjs.map +0 -7
  424. package/dist/lib/node-esm/chunk-YTNLFBIK.mjs +0 -3843
  425. package/dist/lib/node-esm/chunk-YTNLFBIK.mjs.map +0 -7
  426. package/dist/lib/node-esm/index.mjs +0 -43
  427. package/dist/lib/node-esm/meta.json +0 -1
  428. package/dist/lib/node-esm/query/index.mjs +0 -23
  429. package/dist/lib/node-esm/testing/index.mjs +0 -298
  430. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  431. package/dist/types/src/errors.d.ts +0 -72
  432. package/dist/types/src/errors.d.ts.map +0 -1
  433. package/dist/types/src/internal/ast/annotation-helper.d.ts +0 -8
  434. package/dist/types/src/internal/ast/annotation-helper.d.ts.map +0 -1
  435. package/dist/types/src/internal/ast/annotations.d.ts +0 -119
  436. package/dist/types/src/internal/ast/annotations.d.ts.map +0 -1
  437. package/dist/types/src/internal/ast/annotations.test.d.ts.map +0 -1
  438. package/dist/types/src/internal/ast/entity-kind.d.ts +0 -10
  439. package/dist/types/src/internal/ast/entity-kind.d.ts.map +0 -1
  440. package/dist/types/src/internal/ast/index.d.ts +0 -5
  441. package/dist/types/src/internal/ast/index.d.ts.map +0 -1
  442. package/dist/types/src/internal/ast/types.d.ts +0 -6
  443. package/dist/types/src/internal/ast/types.d.ts.map +0 -1
  444. package/dist/types/src/internal/json/annotations.d.ts.map +0 -1
  445. package/dist/types/src/internal/json/effect-schema.test.d.ts.map +0 -1
  446. package/dist/types/src/internal/json/index.d.ts +0 -2
  447. package/dist/types/src/internal/json/index.d.ts.map +0 -1
  448. package/dist/types/src/internal/json/json-schema.d.ts.map +0 -1
  449. package/dist/types/src/internal/json/json-schema.test.d.ts.map +0 -1
  450. package/dist/types/src/internal/object/accessors.d.ts +0 -29
  451. package/dist/types/src/internal/object/accessors.d.ts.map +0 -1
  452. package/dist/types/src/internal/object/create.d.ts.map +0 -1
  453. package/dist/types/src/internal/object/create.test.d.ts +0 -2
  454. package/dist/types/src/internal/object/create.test.d.ts.map +0 -1
  455. package/dist/types/src/internal/object/entity.d.ts +0 -22
  456. package/dist/types/src/internal/object/entity.d.ts.map +0 -1
  457. package/dist/types/src/internal/object/expando.d.ts +0 -14
  458. package/dist/types/src/internal/object/expando.d.ts.map +0 -1
  459. package/dist/types/src/internal/object/meta.d.ts.map +0 -1
  460. package/dist/types/src/internal/object/model.d.ts +0 -117
  461. package/dist/types/src/internal/object/model.d.ts.map +0 -1
  462. package/dist/types/src/internal/object/relation.d.ts +0 -17
  463. package/dist/types/src/internal/object/relation.d.ts.map +0 -1
  464. package/dist/types/src/internal/object/typed-relation.d.ts +0 -32
  465. package/dist/types/src/internal/object/typed-relation.d.ts.map +0 -1
  466. package/dist/types/src/internal/object/typename.d.ts +0 -15
  467. package/dist/types/src/internal/object/typename.d.ts.map +0 -1
  468. package/dist/types/src/internal/object/version.d.ts +0 -14
  469. package/dist/types/src/internal/object/version.d.ts.map +0 -1
  470. package/dist/types/src/internal/projection/compose.d.ts +0 -6
  471. package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
  472. package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
  473. package/dist/types/src/internal/projection/index.d.ts +0 -2
  474. package/dist/types/src/internal/projection/index.d.ts.map +0 -1
  475. package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
  476. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
  477. package/dist/types/src/internal/query/index.d.ts +0 -2
  478. package/dist/types/src/internal/query/index.d.ts.map +0 -1
  479. package/dist/types/src/internal/query/query.d.ts +0 -17
  480. package/dist/types/src/internal/query/query.d.ts.map +0 -1
  481. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +0 -18
  482. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
  483. package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
  484. package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
  485. package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
  486. package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
  487. package/dist/types/src/internal/testing/index.d.ts +0 -3
  488. package/dist/types/src/internal/testing/index.d.ts.map +0 -1
  489. package/dist/types/src/internal/testing/types.d.ts +0 -455
  490. package/dist/types/src/internal/testing/types.d.ts.map +0 -1
  491. package/dist/types/src/internal/testing/utils.d.ts +0 -10
  492. package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
  493. package/dist/types/src/internal/types/types.d.ts +0 -79
  494. package/dist/types/src/internal/types/types.d.ts.map +0 -1
  495. package/dist/types/src/internal/types/types.test.d.ts +0 -2
  496. package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
  497. package/dist/types/src/internal/types/util.d.ts +0 -5
  498. package/dist/types/src/internal/types/util.d.ts.map +0 -1
  499. package/dist/types/src/query/index.d.ts +0 -3
  500. package/dist/types/src/query/index.d.ts.map +0 -1
  501. package/dist/types/src/query/query.d.ts +0 -247
  502. package/dist/types/src/query/query.d.ts.map +0 -1
  503. package/dist/types/src/query/query.test.d.ts +0 -2
  504. package/dist/types/src/query/query.test.d.ts.map +0 -1
  505. package/dist/types/src/query/tag.d.ts +0 -18
  506. package/dist/types/src/query/tag.d.ts.map +0 -1
  507. package/dist/types/src/testing/echo-schema.d.ts +0 -7
  508. package/dist/types/src/testing/echo-schema.d.ts.map +0 -1
  509. package/dist/types/src/testing/types.d.ts +0 -113
  510. package/dist/types/src/testing/types.d.ts.map +0 -1
  511. package/src/errors.ts +0 -18
  512. package/src/internal/ast/annotation-helper.ts +0 -22
  513. package/src/internal/ast/annotations.ts +0 -212
  514. package/src/internal/ast/entity-kind.ts +0 -15
  515. package/src/internal/ast/index.ts +0 -8
  516. package/src/internal/ast/types.ts +0 -17
  517. package/src/internal/json/index.ts +0 -5
  518. package/src/internal/object/accessors.ts +0 -115
  519. package/src/internal/object/entity.ts +0 -204
  520. package/src/internal/object/expando.ts +0 -21
  521. package/src/internal/object/meta.ts +0 -62
  522. package/src/internal/object/model.ts +0 -170
  523. package/src/internal/object/relation.ts +0 -24
  524. package/src/internal/object/typed-relation.ts +0 -85
  525. package/src/internal/object/typename.ts +0 -61
  526. package/src/internal/object/version.ts +0 -22
  527. package/src/internal/projection/index.ts +0 -5
  528. package/src/internal/proxy/reactive-object.ts +0 -108
  529. package/src/internal/query/index.ts +0 -5
  530. package/src/internal/query/query.ts +0 -23
  531. package/src/internal/schema/runtime-schema-registry.ts +0 -78
  532. package/src/internal/schema/snapshot.ts +0 -25
  533. package/src/internal/schema/stored-schema.ts +0 -26
  534. package/src/internal/testing/index.ts +0 -6
  535. package/src/internal/testing/types.ts +0 -211
  536. package/src/internal/testing/utils.ts +0 -54
  537. package/src/internal/types/types.test.ts +0 -48
  538. package/src/internal/types/types.ts +0 -176
  539. package/src/internal/types/util.ts +0 -9
  540. package/src/query/index.ts +0 -6
  541. package/src/query/query.test.ts +0 -362
  542. package/src/query/query.ts +0 -784
  543. package/src/query/tag.ts +0 -35
  544. package/src/test/api.test.ts +0 -180
  545. package/src/testing/echo-schema.ts +0 -39
  546. package/src/testing/types.ts +0 -91
  547. /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
  548. /package/dist/lib/{browser/internal/index.mjs.map → neutral/Database.mjs.map} +0 -0
  549. /package/dist/lib/{browser/query/index.mjs.map → neutral/Entity.mjs.map} +0 -0
  550. /package/dist/lib/{node-esm/index.mjs.map → neutral/Err.mjs.map} +0 -0
  551. /package/dist/lib/{node-esm/internal/index.mjs.map → neutral/Feed.mjs.map} +0 -0
  552. /package/dist/lib/{node-esm/query/index.mjs.map → neutral/Filter.mjs.map} +0 -0
  553. /package/dist/types/src/internal/{ast → annotations}/annotations.test.d.ts +0 -0
  554. /package/dist/types/src/internal/{json → json-schema}/annotations.d.ts +0 -0
  555. /package/dist/types/src/internal/{json → json-schema}/effect-schema.test.d.ts +0 -0
  556. /package/dist/types/src/internal/{json → json-schema}/json-schema.test.d.ts +0 -0
  557. /package/dist/types/src/internal/{projection → schema}/compose.test.d.ts +0 -0
  558. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
  559. /package/src/internal/{json → json-schema}/effect-schema.test.ts +0 -0
@@ -0,0 +1,18 @@
1
+ import * as Schema from 'effect/Schema';
2
+ import * as Collection from './Collection';
3
+ import * as Feed from './Feed';
4
+ import * as Obj from './Obj';
5
+ import * as View from './View';
6
+ /**
7
+ * Abstart set of objects, represented by a view, feed, or collection.
8
+ */
9
+ export declare const Dataset: Schema.Union<[import("./Type").Obj<{
10
+ readonly kind?: string | undefined;
11
+ readonly name?: string | undefined;
12
+ }, Schema.Struct.Fields>, import("./Type").Obj<{
13
+ readonly name?: string | undefined;
14
+ readonly objects: readonly import("./internal").Ref<import("./Entity").OfKind<import("./internal").EntityKind.Object> & Obj.Unknown>[];
15
+ }, Schema.Struct.Fields>, import("./Type").Obj<View.View, Schema.Struct.Fields>]>;
16
+ export type Dataset = Feed.Feed | Collection.Collection | View.View;
17
+ export declare const isDataset: (value: unknown) => value is Dataset;
18
+ //# sourceMappingURL=Dataset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dataset.d.ts","sourceRoot":"","sources":["../../../src/Dataset.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;;iFAA4D,CAAC;AACjF,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;AAEpE,eAAO,MAAM,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,OAIpD,CAAC"}
@@ -0,0 +1,168 @@
1
+ import type { ForeignKey } from '@dxos/echo-protocol';
2
+ import type { DXN, ObjectId } from '@dxos/keys';
3
+ import * as internal from './internal';
4
+ import type * as Relation from './Relation';
5
+ export declare const KindId: "~@dxos/echo/Kind";
6
+ export type KindId = typeof internal.KindId;
7
+ export declare const SnapshotKindId: "~@dxos/echo/SnapshotKind";
8
+ export type SnapshotKindId = typeof internal.SnapshotKindId;
9
+ export declare const Kind: typeof internal.EntityKind;
10
+ export type Kind = internal.EntityKind;
11
+ export declare const KindSchema: import("effect/Schema").Enums<typeof internal.EntityKind>;
12
+ /**
13
+ * Assigns a kind to an Object or Relation instance.
14
+ * NOTE: Needed to make `isRelation` and `isObject` checks work.
15
+ */
16
+ export interface OfKind<K extends Kind> {
17
+ readonly [KindId]: K;
18
+ readonly id: ObjectId;
19
+ }
20
+ /**
21
+ * Assigns a snapshot kind to an Object or Relation snapshot.
22
+ */
23
+ export interface SnapshotOfKind<K extends Kind> {
24
+ readonly [SnapshotKindId]: K;
25
+ readonly id: ObjectId;
26
+ }
27
+ /**
28
+ * Obj or Relation with a specific set of properties.
29
+ */
30
+ export type Entity<Props> = OfKind<Kind> & Props;
31
+ /**
32
+ * Unknown Obj or Relation (reactive).
33
+ */
34
+ export interface Unknown extends OfKind<Kind> {
35
+ }
36
+ /**
37
+ * Snapshot of an Obj or Relation.
38
+ * Branded with SnapshotKindId instead of KindId.
39
+ */
40
+ export interface Snapshot extends SnapshotOfKind<Kind> {
41
+ }
42
+ /**
43
+ * Object with arbitrary properties.
44
+ *
45
+ * NOTE: Due to how typescript works, this type is not assignable to a specific schema type.
46
+ * In that case, use `Obj.instanceOf` to check if an object is of a specific type.
47
+ *
48
+ * This type is very permissive and allows accessing any property on the object.
49
+ * We should move to Obj.Unknown that is not permissive and requires explicit instanceof checks..
50
+ */
51
+ export interface Any extends OfKind<Kind> {
52
+ [key: string]: unknown;
53
+ }
54
+ /**
55
+ * Returns all properties of an object or relation except for the id and kind.
56
+ */
57
+ export type Properties<T> = Omit<T, 'id' | KindId | Relation.Source | Relation.Target>;
58
+ /**
59
+ * Check if a value is an ECHO entity (object or relation).
60
+ * Returns `false` for snapshots.
61
+ */
62
+ export declare const isEntity: (value: unknown) => value is Unknown;
63
+ /**
64
+ * Check if a value is an ECHO entity snapshot.
65
+ * Returns `false` for entities.
66
+ */
67
+ export declare const isSnapshot: (value: unknown) => value is Snapshot;
68
+ export declare const getKind: (schema: import("effect/Schema").Schema.All) => internal.EntityKind | undefined;
69
+ /**
70
+ * Property that accesses metadata for an entity.
71
+ */
72
+ export declare const Meta: unique symbol;
73
+ /**
74
+ * Property that accesses metadata for an entity.
75
+ */
76
+ export type Meta = typeof Meta;
77
+ /**
78
+ * JSON representation of an entity.
79
+ */
80
+ export type JSON = internal.ObjectJSON;
81
+ /**
82
+ * Get the DXN of an entity (object or relation).
83
+ */
84
+ export declare const getDXN: (entity: Unknown | Snapshot) => DXN;
85
+ /**
86
+ * Get the DXN of an entity's type.
87
+ */
88
+ export declare const getTypeDXN: (obj: internal.AnyProperties) => DXN | undefined;
89
+ /**
90
+ * Get the typename of an entity's type.
91
+ */
92
+ export declare const getTypename: (entity: Unknown | Snapshot) => string | undefined;
93
+ /**
94
+ * Get the database an entity belongs to.
95
+ */
96
+ export declare const getDatabase: (entity: Unknown | Snapshot) => any | undefined;
97
+ /**
98
+ * Get the metadata for an entity.
99
+ * Returns mutable meta when passed a mutable entity (inside change callback).
100
+ * Returns read-only meta when passed a regular entity or snapshot.
101
+ */
102
+ export declare function getMeta(entity: Mutable<Unknown>): internal.ObjectMeta;
103
+ export declare function getMeta(entity: Unknown | Snapshot): internal.ReadonlyMeta;
104
+ /**
105
+ * Get foreign keys for an entity from the specified source.
106
+ */
107
+ export declare const getKeys: (entity: Unknown | Snapshot, source: string) => ForeignKey[];
108
+ /**
109
+ * Check if an entity is deleted.
110
+ */
111
+ export declare const isDeleted: (entity: Unknown | Snapshot) => boolean;
112
+ /**
113
+ * Get the label of an entity.
114
+ */
115
+ export declare const getLabel: (entity: Unknown | Snapshot) => string | undefined;
116
+ /**
117
+ * Get the description of an entity.
118
+ */
119
+ export declare const getDescription: (entity: Unknown | Snapshot) => string | undefined;
120
+ /**
121
+ * Convert an entity to its JSON representation.
122
+ */
123
+ export declare const toJSON: (entity: Unknown | Snapshot) => JSON;
124
+ /**
125
+ * Subscribe to changes on an entity (object or relation).
126
+ * @returns Unsubscribe function.
127
+ */
128
+ export declare const subscribe: (entity: Unknown, callback: () => void) => (() => void);
129
+ /**
130
+ * Used to provide a mutable view of an entity within `Entity.change`.
131
+ */
132
+ export type Mutable<T> = internal.Mutable<T>;
133
+ /**
134
+ * Perform mutations on an entity (object or relation) within a change context.
135
+ *
136
+ * Entities are read-only by default. Mutations are batched and notifications fire
137
+ * when the callback completes. Direct mutations outside of `Entity.change` will throw
138
+ * at runtime.
139
+ *
140
+ * @param entity - The echo entity (object or relation) to mutate.
141
+ * @param callback - Receives a mutable view of the entity. All mutations must occur here.
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * // Mutate within Entity.change
146
+ * Entity.change(entity, (e) => {
147
+ * e.name = 'Updated';
148
+ * e.count = 42;
149
+ * });
150
+ *
151
+ * // Direct mutation throws
152
+ * entity.name = 'Bob'; // Error: Cannot modify outside Entity.change()
153
+ * ```
154
+ *
155
+ * Note: For type-specific operations, prefer `Obj.change` or `Relation.change`.
156
+ */
157
+ export declare const change: <T extends Unknown>(entity: T, callback: internal.ChangeCallback<T>) => void;
158
+ /**
159
+ * Add a tag to an entity.
160
+ * Must be called within an `Entity.change`, `Obj.change`, or `Relation.change` callback.
161
+ */
162
+ export declare const addTag: (entity: Mutable<Unknown>, tag: string) => void;
163
+ /**
164
+ * Remove a tag from an entity.
165
+ * Must be called within an `Entity.change`, `Obj.change`, or `Relation.change` callback.
166
+ */
167
+ export declare const removeTag: (entity: Mutable<Unknown>, tag: string) => void;
168
+ //# sourceMappingURL=Entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../src/Entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Entity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Entity.test.d.ts","sourceRoot":"","sources":["../../../src/Entity.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,107 @@
1
+ import { BaseError, type BaseErrorOptions } from '@dxos/errors';
2
+ import { type DXN } from '@dxos/keys';
3
+ declare const SchemaNotFoundError_base: {
4
+ new (options?: BaseErrorOptions): {
5
+ name: "SchemaNotFoundError";
6
+ context: Record<string, unknown>;
7
+ readonly message: string;
8
+ readonly _tag: "SchemaNotFoundError";
9
+ stack?: string;
10
+ cause?: unknown;
11
+ };
12
+ name: "SchemaNotFoundError";
13
+ is(error: unknown): error is BaseError;
14
+ wrap(options?: Omit<BaseErrorOptions, "cause"> & {
15
+ ifTypeDiffers?: boolean;
16
+ }): (error: unknown) => {
17
+ name: "SchemaNotFoundError";
18
+ context: Record<string, unknown>;
19
+ readonly message: string;
20
+ readonly _tag: "SchemaNotFoundError";
21
+ stack?: string;
22
+ cause?: unknown;
23
+ };
24
+ extend<Name extends string = string>(name: Name, message?: string): any;
25
+ isError(error: unknown): error is Error;
26
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
27
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
28
+ stackTraceLimit: number;
29
+ };
30
+ export declare class SchemaNotFoundError extends SchemaNotFoundError_base {
31
+ constructor(schema: string, options?: BaseErrorOptions);
32
+ }
33
+ declare const ObjectNotFoundError_base: {
34
+ new (options?: BaseErrorOptions): {
35
+ name: "ObjectNotFoundError";
36
+ context: Record<string, unknown>;
37
+ readonly message: string;
38
+ readonly _tag: "ObjectNotFoundError";
39
+ stack?: string;
40
+ cause?: unknown;
41
+ };
42
+ name: "ObjectNotFoundError";
43
+ is(error: unknown): error is BaseError;
44
+ wrap(options?: Omit<BaseErrorOptions, "cause"> & {
45
+ ifTypeDiffers?: boolean;
46
+ }): (error: unknown) => {
47
+ name: "ObjectNotFoundError";
48
+ context: Record<string, unknown>;
49
+ readonly message: string;
50
+ readonly _tag: "ObjectNotFoundError";
51
+ stack?: string;
52
+ cause?: unknown;
53
+ };
54
+ extend<Name extends string = string>(name: Name, message?: string): any;
55
+ isError(error: unknown): error is Error;
56
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
57
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
58
+ stackTraceLimit: number;
59
+ };
60
+ export declare class ObjectNotFoundError extends ObjectNotFoundError_base {
61
+ constructor(dxn: DXN, options?: BaseErrorOptions);
62
+ }
63
+ /**
64
+ * Reason why getting a reactive object from a snapshot failed.
65
+ * - `no-database`: The snapshot is not associated with a database.
66
+ * - `object-not-found`: The object was removed or does not exist in the database.
67
+ */
68
+ export type GetReactiveErrorReason = 'no-database' | 'object-not-found';
69
+ declare const GetReactiveError_base: {
70
+ new (options?: BaseErrorOptions): {
71
+ name: "GetReactiveError";
72
+ context: Record<string, unknown>;
73
+ readonly message: string;
74
+ readonly _tag: "GetReactiveError";
75
+ stack?: string;
76
+ cause?: unknown;
77
+ };
78
+ name: "GetReactiveError";
79
+ is(error: unknown): error is BaseError;
80
+ wrap(options?: Omit<BaseErrorOptions, "cause"> & {
81
+ ifTypeDiffers?: boolean;
82
+ }): (error: unknown) => {
83
+ name: "GetReactiveError";
84
+ context: Record<string, unknown>;
85
+ readonly message: string;
86
+ readonly _tag: "GetReactiveError";
87
+ stack?: string;
88
+ cause?: unknown;
89
+ };
90
+ extend<Name extends string = string>(name: Name, message?: string): any;
91
+ isError(error: unknown): error is Error;
92
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
93
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
94
+ stackTraceLimit: number;
95
+ };
96
+ /**
97
+ * Error thrown when a reactive object cannot be resolved from a snapshot.
98
+ * Extends `BaseError` with a `reason` and optional `snapshotId` in its context.
99
+ */
100
+ export declare class GetReactiveError extends GetReactiveError_base {
101
+ constructor(options: {
102
+ reason: GetReactiveErrorReason;
103
+ snapshotId?: string;
104
+ } & BaseErrorOptions);
105
+ }
106
+ export {};
107
+ //# sourceMappingURL=Err.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Err.d.ts","sourceRoot":"","sources":["../../../src/Err.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;;;;qBA2BpB,CAAC;;;;;;;;;;;;;;;AAzBnB,qBAAa,mBAAoB,SAAQ,wBAA2D;gBACtF,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;CAGvD;;;;;;;;;;;;;qBAqBiB,CAAC;;;;;;;;;;;;;;;AAnBnB,qBAAa,mBAAoB,SAAQ,wBAA2D;gBACtF,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB;CAGjD;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,kBAAkB,CAAC;;;;;;;;;;;;;qBAQtD,CAAC;;;;;;;;;;;;;;;AANnB;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,qBAGrC;gBACa,OAAO,EAAE;QAAE,MAAM,EAAE,sBAAsB,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB;CAGhG"}
@@ -0,0 +1,165 @@
1
+ import * as Context from 'effect/Context';
2
+ import * as Effect from 'effect/Effect';
3
+ import * as Layer from 'effect/Layer';
4
+ import type * as Option from 'effect/Option';
5
+ import * as Schema from 'effect/Schema';
6
+ import { DXN } from '@dxos/keys';
7
+ import type * as Entity from './Entity';
8
+ import type * as Filter from './Filter';
9
+ import * as Obj from './Obj';
10
+ import type * as Query from './Query';
11
+ import type * as QueryResult from './QueryResult';
12
+ import * as Type from './Type';
13
+ /**
14
+ * Runtime schema for a Feed object.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const feed = Obj.make(Feed.Feed, { name: 'notifications', kind: 'dxos.org/plugin/notifications/v1' });
19
+ * ```
20
+ */
21
+ export declare const Feed: Type.Obj<{
22
+ readonly kind?: string | undefined;
23
+ readonly name?: string | undefined;
24
+ }, Schema.Struct.Fields>;
25
+ /**
26
+ * TypeScript instance type for a Feed object.
27
+ */
28
+ export interface Feed extends Schema.Schema.Type<typeof Feed> {
29
+ }
30
+ /**
31
+ * Meta key source for storing the backing DXN bound to a feed object.
32
+ */
33
+ export declare const DXN_KEY = "dxos.org/key/feed";
34
+ /**
35
+ * Opaque cursor for iterating over feed items.
36
+ */
37
+ export interface Cursor<T = Obj.Snapshot> {
38
+ readonly _tag: 'Cursor';
39
+ }
40
+ /**
41
+ * Retention options for a feed.
42
+ */
43
+ export interface RetentionOptions {
44
+ /** Retain items after this cursor position. */
45
+ cursor?: string;
46
+ }
47
+ /**
48
+ * Creates a new feed object.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * const feed = Feed.make({ name: 'notifications', kind: 'dxos.org/plugin/notifications/v1' });
53
+ * ```
54
+ */
55
+ export declare const make: (props: Obj.MakeProps<typeof Feed>) => Feed;
56
+ /**
57
+ * Reads the queue DXN from feed metadata.
58
+ *
59
+ * @deprecated
60
+ */
61
+ export declare const getQueueDxn: (feed: Feed) => DXN | undefined;
62
+ declare const Service_base: Context.TagClass<Service, "@dxos/echo/Feed/Service", {
63
+ /**
64
+ * Appends items to a feed.
65
+ */
66
+ append(feed: Feed, items: Entity.Unknown[]): Promise<void>;
67
+ /**
68
+ * Removes items from a feed by ID.
69
+ */
70
+ remove(feed: Feed, ids: string[]): Promise<void>;
71
+ /**
72
+ * Queries items in a feed.
73
+ */
74
+ query: {
75
+ <Q extends Query.Any>(feed: Feed, query: Q): QueryResult.QueryResult<Query.Type<Q>>;
76
+ <F extends Filter.Any>(feed: Feed, filter: F): QueryResult.QueryResult<Filter.Type<F>>;
77
+ };
78
+ }>;
79
+ /**
80
+ * Effect service for feed operations.
81
+ * Provides the bridge to the underlying storage implementation.
82
+ * Must be provided by the application layer (e.g., echo-db).
83
+ */
84
+ export declare class Service extends Service_base {
85
+ }
86
+ /**
87
+ * Layer that provides a Feed service that throws when accessed.
88
+ * Useful as a default layer when no feed service is available.
89
+ */
90
+ export declare const notAvailable: Layer.Layer<Service>;
91
+ /**
92
+ * Appends items to a feed.
93
+ *
94
+ * @example
95
+ * ```ts
96
+ * yield* Feed.append(feed, [Obj.make(Notification, { title: 'Hello' })]);
97
+ * ```
98
+ */
99
+ export declare const append: (feed: Feed, items: Entity.Unknown[]) => Effect.Effect<void, never, Service>;
100
+ /**
101
+ * Removes items from a feed.
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * yield* Feed.remove(feed, [item]);
106
+ * ```
107
+ */
108
+ export declare const remove: (feed: Feed, items: (Entity.Unknown | Obj.Snapshot)[]) => Effect.Effect<void, never, Service>;
109
+ /**
110
+ * Creates a reactive query over items in a feed.
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * const result = yield* Feed.query(feed, Filter.type(Person));
115
+ * ```
116
+ */
117
+ export declare const query: {
118
+ <Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, Service>;
119
+ <F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, Service>;
120
+ };
121
+ /**
122
+ * Executes a feed query once and returns the results.
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * const items = yield* Feed.runQuery(feed, Filter.type(Person));
127
+ * ```
128
+ */
129
+ export declare const runQuery: {
130
+ <Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<Query.Type<Q>[], never, Service>;
131
+ <F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<Filter.Type<F>[], never, Service>;
132
+ };
133
+ /**
134
+ * Creates a cursor for iterating over feed items.
135
+ * Currently stubbed — cursor operations are not yet implemented.
136
+ *
137
+ * @example
138
+ * ```ts
139
+ * const cursor = yield* Feed.cursor<Person>(feed);
140
+ * const item = yield* Feed.next(cursor);
141
+ * ```
142
+ */
143
+ export declare const cursor: <T = Obj.Snapshot>(_feed: Feed) => Effect.Effect<Cursor<T>, never, Service>;
144
+ /**
145
+ * Returns the next item from a feed cursor.
146
+ * Currently stubbed — cursor operations are not yet implemented.
147
+ */
148
+ export declare const next: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<T, never, Service>;
149
+ /**
150
+ * Returns the next item from a feed cursor as an Option.
151
+ * Currently stubbed — cursor operations are not yet implemented.
152
+ */
153
+ export declare const nextOption: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<Option.Option<T>, never, Service>;
154
+ /**
155
+ * Sets the local retention policy for a feed.
156
+ * Currently stubbed — queues do not yet support retention.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * yield* Feed.setRetention(feed, { count: 1000 });
161
+ * ```
162
+ */
163
+ export declare const setRetention: (_feed: Feed, _options: RetentionOptions) => Effect.Effect<void, never, Service>;
164
+ export {};
165
+ //# sourceMappingURL=Feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Feed.d.ts","sourceRoot":"","sources":["../../../src/Feed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import * as Schema from 'effect/Schema';
2
+ import type * as Types from 'effect/Types';
3
+ import { type ForeignKey, type QueryAST } from '@dxos/echo-protocol';
4
+ import { DXN, ObjectId } from '@dxos/keys';
5
+ export interface Filter<T> {
6
+ '~Filter': {
7
+ value: Types.Contravariant<T>;
8
+ };
9
+ ast: QueryAST.Filter;
10
+ }
11
+ export type Props<T> = {
12
+ [K in keyof T & string]?: Filter<T[K]> | T[K];
13
+ };
14
+ export type Any = Filter<any>;
15
+ export type Type<F extends Any> = F extends Filter<infer T> ? T : never;
16
+ declare class FilterClass implements Any {
17
+ readonly ast: QueryAST.Filter;
18
+ private static 'variance';
19
+ constructor(ast: QueryAST.Filter);
20
+ '~Filter': {
21
+ value: Types.Contravariant<any>;
22
+ };
23
+ }
24
+ export declare const is: (value: unknown) => value is Any;
25
+ /** Construct a filter from an ast. */
26
+ export declare const fromAst: (ast: QueryAST.Filter) => Any;
27
+ /**
28
+ * Filter that matches all objects.
29
+ */
30
+ export declare const everything: () => FilterClass;
31
+ /**
32
+ * Filter that matches no objects.
33
+ */
34
+ export declare const nothing: () => FilterClass;
35
+ export declare const id: (...ids: ObjectId[]) => Any;
36
+ /**
37
+ * Filter by type.
38
+ */
39
+ export declare const type: <S extends Schema.Schema.All>(schema: S | string, props?: Props<Schema.Schema.Type<S>>) => Filter<Schema.Schema.Type<S>>;
40
+ /**
41
+ * Filter by non-qualified typename.
42
+ */
43
+ export declare const typename: (typename: string) => Any;
44
+ /**
45
+ * Filter by fully qualified type DXN.
46
+ */
47
+ export declare const typeDXN: (dxn: DXN) => Any;
48
+ /**
49
+ * Filter by tag.
50
+ */
51
+ export declare const tag: (tag: string) => Any;
52
+ /**
53
+ * Filter by properties.
54
+ */
55
+ export declare const props: <T>(props: Props<T>) => Filter<T>;
56
+ export type TextSearchOptions = {
57
+ type?: 'full-text' | 'vector';
58
+ };
59
+ /**
60
+ * Full-text or vector search.
61
+ */
62
+ export declare const text: (text: string, options?: TextSearchOptions) => Any;
63
+ /**
64
+ * Filter by foreign keys.
65
+ */
66
+ export declare const foreignKeys: <S extends Schema.Schema.All>(schema: S | string, keys: ForeignKey[]) => Filter<Schema.Schema.Type<S>>;
67
+ /**
68
+ * Predicate for property to be equal to the provided value.
69
+ */
70
+ export declare const eq: <T>(value: T) => Filter<T | undefined>;
71
+ /**
72
+ * Predicate for property to be not equal to the provided value.
73
+ */
74
+ export declare const neq: <T>(value: T) => Filter<T | undefined>;
75
+ /**
76
+ * Predicate for property to be greater than the provided value.
77
+ */
78
+ export declare const gt: <T>(value: T) => Filter<T | undefined>;
79
+ /**
80
+ * Predicate for property to be greater than or equal to the provided value.
81
+ */
82
+ export declare const gte: <T>(value: T) => Filter<T | undefined>;
83
+ /**
84
+ * Predicate for property to be less than the provided value.
85
+ */
86
+ export declare const lt: <T>(value: T) => Filter<T | undefined>;
87
+ /**
88
+ * Predicate for property to be less than or equal to the provided value.
89
+ */
90
+ export declare const lte: <T>(value: T) => Filter<T | undefined>;
91
+ /**
92
+ * Predicate for property to be in the provided array.
93
+ * @param values - Values to check against.
94
+ */
95
+ declare const in$: <T>(...values: T[]) => Filter<T | undefined>;
96
+ export { in$ as in };
97
+ /**
98
+ * Predicate for an array property to contain the provided value.
99
+ * @param value - Value to check against.
100
+ */
101
+ export declare const contains: <T>(value: T) => Filter<readonly T[] | undefined>;
102
+ /**
103
+ * Predicate for property to be in the provided range.
104
+ * @param from - Start of the range (inclusive).
105
+ * @param to - End of the range (exclusive).
106
+ */
107
+ export declare const between: <T>(from: T, to: T) => Filter<unknown>;
108
+ /**
109
+ * Negate the filter.
110
+ */
111
+ export declare const not: <F extends Any>(filter: F) => Filter<Type<F>>;
112
+ /**
113
+ * Combine filters with a logical AND.
114
+ */
115
+ export declare const and: <Filters extends readonly Any[]>(...filters: Filters) => Filter<Type<Filters[number]>>;
116
+ /**
117
+ * Combine filters with a logical OR.
118
+ */
119
+ export declare const or: <Filters extends readonly Any[]>(...filters: Filters) => Filter<Type<Filters[number]>>;
120
+ //# sourceMappingURL=Filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/Filter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type * as internal from './internal';
2
+ export * from './internal/formats';
3
+ export type Format = internal.TypeFormat;
4
+ //# sourceMappingURL=Format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../../src/Format.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAE5C,cAAc,oBAAoB,CAAC;AAEnC,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC"}