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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (694) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +6 -7
  3. package/dist/lib/neutral/Annotation.mjs +39 -0
  4. package/dist/lib/neutral/Database.mjs +49 -0
  5. package/dist/lib/neutral/Entity.mjs +61 -0
  6. package/dist/lib/neutral/Err.mjs +12 -0
  7. package/dist/lib/neutral/Extension.mjs +18 -0
  8. package/dist/lib/neutral/Feed.mjs +52 -0
  9. package/dist/lib/neutral/Filter.mjs +74 -0
  10. package/dist/lib/neutral/Filter.mjs.map +7 -0
  11. package/dist/lib/neutral/Format.mjs +66 -0
  12. package/dist/lib/neutral/Format.mjs.map +7 -0
  13. package/dist/lib/neutral/JsonSchema.mjs +19 -0
  14. package/dist/lib/neutral/JsonSchema.mjs.map +7 -0
  15. package/dist/lib/neutral/Key.mjs +12 -0
  16. package/dist/lib/neutral/Key.mjs.map +7 -0
  17. package/dist/lib/neutral/Migration.mjs +17 -0
  18. package/dist/lib/neutral/Migration.mjs.map +7 -0
  19. package/dist/lib/neutral/Obj.mjs +113 -0
  20. package/dist/lib/neutral/Obj.mjs.map +7 -0
  21. package/dist/lib/neutral/Order.mjs +12 -0
  22. package/dist/lib/neutral/Order.mjs.map +7 -0
  23. package/dist/lib/neutral/Query.mjs +38 -0
  24. package/dist/lib/neutral/Query.mjs.map +7 -0
  25. package/dist/lib/neutral/QueryResult.mjs +2 -0
  26. package/dist/lib/neutral/QueryResult.mjs.map +7 -0
  27. package/dist/lib/neutral/Ref.mjs +26 -0
  28. package/dist/lib/neutral/Ref.mjs.map +7 -0
  29. package/dist/lib/neutral/Relation.mjs +94 -0
  30. package/dist/lib/neutral/Relation.mjs.map +7 -0
  31. package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
  32. package/dist/lib/neutral/SchemaRegistry.mjs.map +7 -0
  33. package/dist/lib/neutral/Tag.mjs +29 -0
  34. package/dist/lib/neutral/Tag.mjs.map +7 -0
  35. package/dist/lib/neutral/Type.mjs +37 -0
  36. package/dist/lib/neutral/Type.mjs.map +7 -0
  37. package/dist/lib/neutral/chunk-44HT3MEC.mjs +73 -0
  38. package/dist/lib/neutral/chunk-44HT3MEC.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-5SL5LDLD.mjs +47 -0
  40. package/dist/lib/neutral/chunk-5SL5LDLD.mjs.map +7 -0
  41. package/dist/lib/neutral/chunk-7RVZT53K.mjs +21 -0
  42. package/dist/lib/neutral/chunk-7RVZT53K.mjs.map +7 -0
  43. package/dist/lib/neutral/chunk-APHSOTIX.mjs +34 -0
  44. package/dist/lib/neutral/chunk-APHSOTIX.mjs.map +7 -0
  45. package/dist/lib/neutral/chunk-APJKDGFL.mjs +365 -0
  46. package/dist/lib/neutral/chunk-APJKDGFL.mjs.map +7 -0
  47. package/dist/lib/neutral/chunk-BICZKPQG.mjs +7 -0
  48. package/dist/lib/neutral/chunk-BICZKPQG.mjs.map +7 -0
  49. package/dist/lib/neutral/chunk-BMB7IHGB.mjs +346 -0
  50. package/dist/lib/neutral/chunk-BMB7IHGB.mjs.map +7 -0
  51. package/dist/lib/neutral/chunk-FIWO2FZK.mjs +36 -0
  52. package/dist/lib/neutral/chunk-FIWO2FZK.mjs.map +7 -0
  53. package/dist/lib/neutral/chunk-G54OX4IX.mjs +2452 -0
  54. package/dist/lib/neutral/chunk-G54OX4IX.mjs.map +7 -0
  55. package/dist/lib/neutral/chunk-GWFFC34K.mjs +50 -0
  56. package/dist/lib/neutral/chunk-GWFFC34K.mjs.map +7 -0
  57. package/dist/lib/neutral/chunk-I2DARWPX.mjs +128 -0
  58. package/dist/lib/neutral/chunk-I2DARWPX.mjs.map +7 -0
  59. package/dist/lib/neutral/chunk-J54QMAKF.mjs +421 -0
  60. package/dist/lib/neutral/chunk-J54QMAKF.mjs.map +7 -0
  61. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  62. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  63. package/dist/lib/neutral/chunk-MGSQGHOD.mjs +206 -0
  64. package/dist/lib/neutral/chunk-MGSQGHOD.mjs.map +7 -0
  65. package/dist/lib/neutral/chunk-MLS7U7AT.mjs +734 -0
  66. package/dist/lib/neutral/chunk-MLS7U7AT.mjs.map +7 -0
  67. package/dist/lib/neutral/chunk-N4B7FHQT.mjs +67 -0
  68. package/dist/lib/neutral/chunk-N4B7FHQT.mjs.map +7 -0
  69. package/dist/lib/neutral/chunk-N7VOEPSV.mjs +48 -0
  70. package/dist/lib/neutral/chunk-N7VOEPSV.mjs.map +7 -0
  71. package/dist/lib/neutral/chunk-PSZBLH53.mjs +81 -0
  72. package/dist/lib/neutral/chunk-PSZBLH53.mjs.map +7 -0
  73. package/dist/lib/neutral/chunk-PT37DG2F.mjs +270 -0
  74. package/dist/lib/neutral/chunk-PT37DG2F.mjs.map +7 -0
  75. package/dist/lib/neutral/chunk-Q2KKKJSV.mjs +56 -0
  76. package/dist/lib/neutral/chunk-Q2KKKJSV.mjs.map +7 -0
  77. package/dist/lib/neutral/chunk-Q7ZL2P5H.mjs +320 -0
  78. package/dist/lib/neutral/chunk-Q7ZL2P5H.mjs.map +7 -0
  79. package/dist/lib/neutral/chunk-QRZ2I3ZM.mjs +27 -0
  80. package/dist/lib/neutral/chunk-QRZ2I3ZM.mjs.map +7 -0
  81. package/dist/lib/neutral/chunk-SCPFDS2E.mjs +125 -0
  82. package/dist/lib/neutral/chunk-SCPFDS2E.mjs.map +7 -0
  83. package/dist/lib/neutral/chunk-TNBK56IN.mjs +350 -0
  84. package/dist/lib/neutral/chunk-TNBK56IN.mjs.map +7 -0
  85. package/dist/lib/neutral/chunk-TRPZU2HV.mjs +402 -0
  86. package/dist/lib/neutral/chunk-TRPZU2HV.mjs.map +7 -0
  87. package/dist/lib/neutral/chunk-TTCSATUD.mjs +42 -0
  88. package/dist/lib/neutral/chunk-TTCSATUD.mjs.map +7 -0
  89. package/dist/lib/neutral/chunk-V72DY6LU.mjs +7 -0
  90. package/dist/lib/neutral/chunk-V72DY6LU.mjs.map +7 -0
  91. package/dist/lib/neutral/chunk-ZFACXBY6.mjs +136 -0
  92. package/dist/lib/neutral/chunk-ZFACXBY6.mjs.map +7 -0
  93. package/dist/lib/neutral/chunk-ZISMEVKD.mjs +51 -0
  94. package/dist/lib/neutral/chunk-ZISMEVKD.mjs.map +7 -0
  95. package/dist/lib/neutral/index.mjs +107 -0
  96. package/dist/lib/neutral/index.mjs.map +7 -0
  97. package/dist/lib/{node-esm → neutral}/internal/index.mjs +292 -148
  98. package/dist/lib/neutral/internal/index.mjs.map +7 -0
  99. package/dist/lib/neutral/meta.json +1 -0
  100. package/dist/lib/neutral/testing/index.mjs +429 -0
  101. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  102. package/dist/types/src/Annotation.d.ts +24 -0
  103. package/dist/types/src/Annotation.d.ts.map +1 -0
  104. package/dist/types/src/Collection.d.ts +16 -0
  105. package/dist/types/src/Collection.d.ts.map +1 -0
  106. package/dist/types/src/Database.d.ts +201 -0
  107. package/dist/types/src/Database.d.ts.map +1 -0
  108. package/dist/types/src/Dataset.d.ts +19 -0
  109. package/dist/types/src/Dataset.d.ts.map +1 -0
  110. package/dist/types/src/Entity.d.ts +174 -0
  111. package/dist/types/src/Entity.d.ts.map +1 -0
  112. package/dist/types/src/Entity.test.d.ts +2 -0
  113. package/dist/types/src/Entity.test.d.ts.map +1 -0
  114. package/dist/types/src/Err.d.ts +107 -0
  115. package/dist/types/src/Err.d.ts.map +1 -0
  116. package/dist/types/src/Extension.d.ts +80 -0
  117. package/dist/types/src/Extension.d.ts.map +1 -0
  118. package/dist/types/src/Extension.test.d.ts +2 -0
  119. package/dist/types/src/Extension.test.d.ts.map +1 -0
  120. package/dist/types/src/Feed.d.ts +206 -0
  121. package/dist/types/src/Feed.d.ts.map +1 -0
  122. package/dist/types/src/Filter.d.ts +170 -0
  123. package/dist/types/src/Filter.d.ts.map +1 -0
  124. package/dist/types/src/Filter.test.d.ts +2 -0
  125. package/dist/types/src/Filter.test.d.ts.map +1 -0
  126. package/dist/types/src/Format.d.ts +4 -0
  127. package/dist/types/src/Format.d.ts.map +1 -0
  128. package/dist/types/src/Hypergraph.d.ts +65 -0
  129. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  130. package/dist/types/src/Json.d.ts +33 -0
  131. package/dist/types/src/Json.d.ts.map +1 -0
  132. package/dist/types/src/Json.test.d.ts +2 -0
  133. package/dist/types/src/Json.test.d.ts.map +1 -0
  134. package/dist/types/src/JsonSchema.d.ts +16 -0
  135. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  136. package/dist/types/src/Key.d.ts +1 -0
  137. package/dist/types/src/Key.d.ts.map +1 -1
  138. package/dist/types/src/Migration.d.ts +69 -0
  139. package/dist/types/src/Migration.d.ts.map +1 -0
  140. package/dist/types/src/Obj.d.ts +434 -102
  141. package/dist/types/src/Obj.d.ts.map +1 -1
  142. package/dist/types/src/Obj.test.d.ts +2 -0
  143. package/dist/types/src/Obj.test.d.ts.map +1 -0
  144. package/dist/types/src/Order.d.ts +16 -0
  145. package/dist/types/src/Order.d.ts.map +1 -0
  146. package/dist/types/src/Query.d.ts +213 -0
  147. package/dist/types/src/Query.d.ts.map +1 -0
  148. package/dist/types/src/Query.test.d.ts +2 -0
  149. package/dist/types/src/Query.test.d.ts.map +1 -0
  150. package/dist/types/src/QueryResult.d.ts +80 -0
  151. package/dist/types/src/QueryResult.d.ts.map +1 -0
  152. package/dist/types/src/Ref.d.ts +62 -11
  153. package/dist/types/src/Ref.d.ts.map +1 -1
  154. package/dist/types/src/Relation.d.ts +287 -21
  155. package/dist/types/src/Relation.d.ts.map +1 -1
  156. package/dist/types/src/Relation.test.d.ts +2 -0
  157. package/dist/types/src/Relation.test.d.ts.map +1 -0
  158. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  159. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  160. package/dist/types/src/Tag.d.ts +18 -0
  161. package/dist/types/src/Tag.d.ts.map +1 -0
  162. package/dist/types/src/Type.d.ts +123 -99
  163. package/dist/types/src/Type.d.ts.map +1 -1
  164. package/dist/types/src/Type.test.d.ts +2 -0
  165. package/dist/types/src/Type.test.d.ts.map +1 -0
  166. package/dist/types/src/View.d.ts +68 -0
  167. package/dist/types/src/View.d.ts.map +1 -0
  168. package/dist/types/src/exemplars.test.d.ts +2 -0
  169. package/dist/types/src/exemplars.test.d.ts.map +1 -0
  170. package/dist/types/src/hierarchy.test.d.ts +2 -0
  171. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  172. package/dist/types/src/index.d.ts +22 -5
  173. package/dist/types/src/index.d.ts.map +1 -1
  174. package/dist/types/src/internal/Annotation/annotations.d.ts +240 -0
  175. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  176. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  177. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  178. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  179. package/dist/types/src/internal/Annotation/sorting.d.ts +24 -0
  180. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  181. package/dist/types/src/internal/Annotation/util.d.ts +39 -0
  182. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  183. package/dist/types/src/internal/Entity/api.d.ts +13 -0
  184. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  185. package/dist/types/src/internal/Entity/entity.d.ts +20 -0
  186. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  187. package/dist/types/src/internal/Entity/index.d.ts +8 -0
  188. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  189. package/dist/types/src/internal/Entity/model.d.ts +57 -0
  190. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  191. package/dist/types/src/internal/Entity/object.d.ts +18 -0
  192. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  193. package/dist/types/src/internal/Entity/relation.d.ts +35 -0
  194. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  195. package/dist/types/src/internal/Entity/util.d.ts +2 -0
  196. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  197. package/dist/types/src/internal/Entity/version.d.ts +42 -0
  198. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  199. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  200. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  201. package/dist/types/src/internal/{formats → Format}/format.d.ts +4 -2
  202. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  203. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  204. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  205. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  206. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  207. package/dist/types/src/internal/{formats → Format}/select.d.ts +6 -4
  208. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  209. package/dist/types/src/internal/{formats → Format}/string.d.ts +4 -0
  210. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  211. package/dist/types/src/internal/{formats → Format}/types.d.ts +14 -10
  212. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  213. package/dist/types/src/internal/{json → JsonSchema}/annotations.d.ts +1 -1
  214. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  215. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  216. package/dist/types/src/internal/JsonSchema/index.d.ts +5 -0
  217. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  218. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  219. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +131 -30
  220. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  221. package/dist/types/src/internal/{json → JsonSchema}/json-schema.d.ts +5 -3
  222. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  223. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  224. package/dist/types/src/internal/Obj/clone.d.ts +8 -0
  225. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  226. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  227. package/dist/types/src/internal/{object/create.d.ts → Obj/create-object.d.ts} +10 -11
  228. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  229. package/dist/types/src/internal/Obj/create-object.test.d.ts +2 -0
  230. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  231. package/dist/types/src/internal/Obj/deleted.d.ts +6 -0
  232. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  233. package/dist/types/src/internal/{object → Obj}/ids.d.ts +1 -1
  234. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  235. package/dist/types/src/internal/Obj/index.d.ts +11 -0
  236. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  237. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  238. package/dist/types/src/internal/Obj/json-serializer.d.ts +45 -0
  239. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  240. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  241. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  242. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  243. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  244. package/dist/types/src/internal/Obj/set-value.d.ts +7 -0
  245. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  246. package/dist/types/src/internal/Obj/set-value.test.d.ts +2 -0
  247. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  248. package/dist/types/src/internal/Obj/snapshot.d.ts +6 -0
  249. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  250. package/dist/types/src/internal/Obj/typed-object.d.ts +25 -0
  251. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  252. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  253. package/dist/types/src/internal/Query.d.ts +10 -0
  254. package/dist/types/src/internal/Query.d.ts.map +1 -0
  255. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  256. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +4 -4
  257. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  258. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +57 -19
  259. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  260. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  261. package/dist/types/src/internal/Type/compose.d.ts +7 -0
  262. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  263. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  264. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +27 -14
  265. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  266. package/dist/types/src/internal/Type/index.d.ts +4 -0
  267. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  268. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  269. package/dist/types/src/internal/Type/persistent-schema.d.ts +20 -0
  270. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  271. package/dist/types/src/internal/common/api/index.d.ts +11 -0
  272. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  273. package/dist/types/src/internal/common/api/meta.d.ts +42 -0
  274. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  275. package/dist/types/src/internal/common/index.d.ts +4 -0
  276. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  277. package/dist/types/src/internal/common/proxy/change-context.d.ts +55 -0
  278. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  279. package/dist/types/src/internal/common/proxy/change.test.d.ts +2 -0
  280. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  281. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts +5 -0
  282. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  283. package/dist/types/src/internal/common/proxy/errors.d.ts +19 -0
  284. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  285. package/dist/types/src/internal/common/proxy/event-batch.d.ts +10 -0
  286. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  287. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  288. package/dist/types/src/internal/common/proxy/index.d.ts +14 -0
  289. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  290. package/dist/types/src/internal/common/proxy/json-serializer.d.ts +6 -0
  291. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  292. package/dist/types/src/internal/common/proxy/make-object.d.ts +14 -0
  293. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  294. package/dist/types/src/internal/common/proxy/ownership.d.ts +57 -0
  295. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  296. package/dist/types/src/internal/common/proxy/proxy-types.d.ts +18 -0
  297. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  298. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts +47 -0
  299. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  300. package/dist/types/src/internal/common/proxy/reactive-array.d.ts +8 -0
  301. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  302. package/dist/types/src/internal/common/proxy/reactive.d.ts +39 -0
  303. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
  304. package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
  305. package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
  306. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  307. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  308. package/dist/types/src/internal/common/proxy/symbols.d.ts +3 -0
  309. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  310. package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +16 -12
  311. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  312. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  313. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  314. package/dist/types/src/internal/common/types/base.d.ts +27 -0
  315. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  316. package/dist/types/src/internal/common/types/entity.d.ts +37 -0
  317. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  318. package/dist/types/src/internal/common/types/index.d.ts +7 -0
  319. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  320. package/dist/types/src/internal/common/types/meta.d.ts +43 -0
  321. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  322. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  323. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  324. package/dist/types/src/internal/common/types/typename.d.ts +21 -0
  325. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  326. package/dist/types/src/internal/common/types/version.d.ts +15 -0
  327. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  328. package/dist/types/src/internal/index.d.ts +10 -14
  329. package/dist/types/src/internal/index.d.ts.map +1 -1
  330. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  331. package/dist/types/src/testing/index.d.ts +3 -3
  332. package/dist/types/src/testing/index.d.ts.map +1 -1
  333. package/dist/types/src/testing/test-data.d.ts +18 -0
  334. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  335. package/dist/types/src/testing/test-schema.d.ts +304 -0
  336. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  337. package/dist/types/src/testing/util.d.ts +21 -0
  338. package/dist/types/src/testing/util.d.ts.map +1 -0
  339. package/dist/types/tsconfig.tsbuildinfo +1 -1
  340. package/package.json +117 -66
  341. package/src/Annotation.ts +49 -0
  342. package/src/Collection.ts +37 -0
  343. package/src/Database.ts +352 -0
  344. package/src/Dataset.ts +26 -0
  345. package/src/Entity.test.ts +22 -0
  346. package/src/Entity.ts +243 -0
  347. package/src/Err.ts +40 -0
  348. package/src/Extension.test.ts +235 -0
  349. package/src/Extension.ts +122 -0
  350. package/src/Feed.ts +335 -0
  351. package/src/Filter.test.ts +90 -0
  352. package/src/Filter.ts +485 -0
  353. package/src/Format.ts +9 -0
  354. package/src/Hypergraph.ts +79 -0
  355. package/src/Json.test.ts +175 -0
  356. package/src/Json.ts +102 -0
  357. package/src/JsonSchema.ts +26 -0
  358. package/src/Key.ts +3 -0
  359. package/src/Migration.ts +106 -0
  360. package/src/Obj.test.ts +539 -0
  361. package/src/Obj.ts +702 -262
  362. package/src/Order.ts +46 -0
  363. package/src/Query.test.ts +822 -0
  364. package/src/Query.ts +572 -0
  365. package/src/QueryResult.ts +106 -0
  366. package/src/Ref.ts +81 -9
  367. package/src/Relation.test.ts +88 -0
  368. package/src/Relation.ts +449 -60
  369. package/src/SchemaRegistry.ts +106 -0
  370. package/src/{query/tag.ts → Tag.ts} +13 -9
  371. package/src/Type.test.ts +52 -0
  372. package/src/Type.ts +167 -153
  373. package/src/View.ts +107 -0
  374. package/src/exemplars.test.ts +21 -0
  375. package/src/hierarchy.test.ts +33 -0
  376. package/src/index.ts +24 -6
  377. package/src/internal/Annotation/annotations.test.ts +145 -0
  378. package/src/internal/Annotation/annotations.ts +590 -0
  379. package/src/internal/Annotation/index.ts +7 -0
  380. package/src/internal/Annotation/sorting.ts +51 -0
  381. package/src/internal/Annotation/util.ts +85 -0
  382. package/src/internal/Entity/api.ts +30 -0
  383. package/src/internal/Entity/entity.ts +128 -0
  384. package/src/internal/Entity/index.ts +11 -0
  385. package/src/internal/Entity/model.ts +111 -0
  386. package/src/internal/Entity/object.ts +57 -0
  387. package/src/internal/Entity/relation.ts +154 -0
  388. package/src/internal/Entity/util.ts +33 -0
  389. package/src/internal/Entity/version.ts +96 -0
  390. package/src/internal/{formats → Format}/date.test.ts +1 -2
  391. package/src/internal/{formats → Format}/date.ts +5 -5
  392. package/src/internal/{formats → Format}/format.test.ts +6 -7
  393. package/src/internal/{formats → Format}/format.ts +8 -6
  394. package/src/internal/{formats → Format}/number.ts +5 -5
  395. package/src/internal/{formats → Format}/object.ts +4 -4
  396. package/src/internal/{formats → Format}/select.ts +6 -4
  397. package/src/internal/{formats → Format}/string.ts +14 -9
  398. package/src/internal/{formats → Format}/types.ts +54 -43
  399. package/src/internal/{json → JsonSchema}/annotations.ts +3 -3
  400. package/src/internal/{json-schema → JsonSchema}/index.ts +2 -0
  401. package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +4 -2
  402. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +36 -36
  403. package/src/internal/{json → JsonSchema}/json-schema.test.ts +98 -95
  404. package/src/internal/{json → JsonSchema}/json-schema.ts +29 -15
  405. package/src/internal/Obj/clone.ts +48 -0
  406. package/src/internal/{object → Obj}/common.ts +3 -4
  407. package/src/internal/{object/create.test.ts → Obj/create-object.test.ts} +32 -36
  408. package/src/internal/{object/create.ts → Obj/create-object.ts} +35 -37
  409. package/src/internal/Obj/deleted.ts +19 -0
  410. package/src/internal/{object → Obj}/ids.ts +2 -2
  411. package/src/internal/Obj/index.ts +14 -0
  412. package/src/internal/{object → Obj}/inspect.ts +5 -7
  413. package/src/internal/Obj/json-serializer.test.ts +120 -0
  414. package/src/internal/Obj/json-serializer.ts +222 -0
  415. package/src/internal/{object → Obj}/schema-validator.test.ts +3 -7
  416. package/src/internal/Obj/schema-validator.ts +6 -0
  417. package/src/internal/Obj/set-value.test.ts +281 -0
  418. package/src/internal/Obj/set-value.ts +165 -0
  419. package/src/internal/Obj/snapshot.ts +105 -0
  420. package/src/internal/{object → Obj}/typed-object.test.ts +12 -12
  421. package/src/internal/Obj/typed-object.ts +30 -0
  422. package/src/internal/Query.ts +156 -0
  423. package/src/internal/{ref → Ref}/ref-array.ts +4 -5
  424. package/src/internal/{ref → Ref}/ref.test.ts +11 -11
  425. package/src/internal/{ref → Ref}/ref.ts +125 -57
  426. package/src/internal/{projection → Type}/compose.test.ts +8 -10
  427. package/src/internal/{projection → Type}/compose.ts +14 -9
  428. package/src/internal/{schema → Type}/echo-schema.ts +74 -34
  429. package/src/internal/Type/index.ts +7 -0
  430. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  431. package/src/internal/Type/persistent-schema.ts +33 -0
  432. package/src/internal/common/README.md +102 -0
  433. package/src/internal/common/api/index.ts +15 -0
  434. package/src/internal/common/api/meta.ts +88 -0
  435. package/src/internal/{testing → common}/index.ts +2 -1
  436. package/src/internal/common/proxy/change-context.ts +138 -0
  437. package/src/internal/common/proxy/change.test.ts +519 -0
  438. package/src/internal/common/proxy/define-hidden-property.ts +14 -0
  439. package/src/internal/common/proxy/errors.ts +42 -0
  440. package/src/internal/common/proxy/event-batch.ts +44 -0
  441. package/src/internal/common/proxy/handler.test.ts +121 -0
  442. package/src/internal/common/proxy/index.ts +17 -0
  443. package/src/internal/common/proxy/json-serializer.ts +90 -0
  444. package/src/internal/common/proxy/make-object.ts +105 -0
  445. package/src/internal/common/proxy/ownership.ts +252 -0
  446. package/src/internal/common/proxy/proxy-types.ts +23 -0
  447. package/src/internal/common/proxy/proxy-utils.ts +150 -0
  448. package/src/internal/common/proxy/reactive-array.ts +71 -0
  449. package/src/internal/common/proxy/reactive.test.ts +54 -0
  450. package/src/internal/common/proxy/reactive.ts +77 -0
  451. package/src/internal/{object → common/proxy}/schema-validator.ts +6 -3
  452. package/src/internal/{proxy → common/proxy}/schema.test.ts +31 -22
  453. package/src/internal/common/proxy/symbols.ts +7 -0
  454. package/src/internal/common/proxy/typed-handler.test.ts +313 -0
  455. package/src/internal/common/proxy/typed-handler.ts +447 -0
  456. package/src/internal/common/proxy/typed-object.test.ts +115 -0
  457. package/src/internal/common/types/base.ts +43 -0
  458. package/src/internal/common/types/entity.ts +54 -0
  459. package/src/internal/common/types/index.ts +10 -0
  460. package/src/internal/common/types/meta.ts +79 -0
  461. package/src/internal/common/types/model-symbols.ts +69 -0
  462. package/src/internal/common/types/typename.ts +55 -0
  463. package/src/internal/common/types/version.ts +19 -0
  464. package/src/internal/index.ts +12 -17
  465. package/src/testing/api.test.ts +125 -0
  466. package/src/testing/index.ts +3 -3
  467. package/src/testing/test-data.ts +189 -0
  468. package/src/testing/test-schema.ts +240 -0
  469. package/src/testing/util.ts +85 -0
  470. package/dist/lib/browser/chunk-HKFCK2GL.mjs +0 -175
  471. package/dist/lib/browser/chunk-HKFCK2GL.mjs.map +0 -7
  472. package/dist/lib/browser/chunk-MAAYELT7.mjs +0 -830
  473. package/dist/lib/browser/chunk-MAAYELT7.mjs.map +0 -7
  474. package/dist/lib/browser/chunk-MB6MMNFP.mjs +0 -3857
  475. package/dist/lib/browser/chunk-MB6MMNFP.mjs.map +0 -7
  476. package/dist/lib/browser/index.mjs +0 -35
  477. package/dist/lib/browser/internal/index.mjs +0 -332
  478. package/dist/lib/browser/meta.json +0 -1
  479. package/dist/lib/browser/query/index.mjs +0 -15
  480. package/dist/lib/browser/testing/index.mjs +0 -298
  481. package/dist/lib/browser/testing/index.mjs.map +0 -7
  482. package/dist/lib/node-esm/chunk-5NWDGIBT.mjs +0 -830
  483. package/dist/lib/node-esm/chunk-5NWDGIBT.mjs.map +0 -7
  484. package/dist/lib/node-esm/chunk-AUAH4E2J.mjs +0 -175
  485. package/dist/lib/node-esm/chunk-AUAH4E2J.mjs.map +0 -7
  486. package/dist/lib/node-esm/chunk-BQRA4VLX.mjs +0 -3857
  487. package/dist/lib/node-esm/chunk-BQRA4VLX.mjs.map +0 -7
  488. package/dist/lib/node-esm/index.mjs +0 -35
  489. package/dist/lib/node-esm/meta.json +0 -1
  490. package/dist/lib/node-esm/query/index.mjs +0 -15
  491. package/dist/lib/node-esm/testing/index.mjs +0 -298
  492. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  493. package/dist/types/src/errors.d.ts +0 -72
  494. package/dist/types/src/errors.d.ts.map +0 -1
  495. package/dist/types/src/internal/ast/annotation-helper.d.ts +0 -8
  496. package/dist/types/src/internal/ast/annotation-helper.d.ts.map +0 -1
  497. package/dist/types/src/internal/ast/annotations.d.ts +0 -125
  498. package/dist/types/src/internal/ast/annotations.d.ts.map +0 -1
  499. package/dist/types/src/internal/ast/annotations.test.d.ts.map +0 -1
  500. package/dist/types/src/internal/ast/entity-kind.d.ts +0 -10
  501. package/dist/types/src/internal/ast/entity-kind.d.ts.map +0 -1
  502. package/dist/types/src/internal/ast/index.d.ts +0 -5
  503. package/dist/types/src/internal/ast/index.d.ts.map +0 -1
  504. package/dist/types/src/internal/ast/types.d.ts +0 -6
  505. package/dist/types/src/internal/ast/types.d.ts.map +0 -1
  506. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  507. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  508. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  509. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  510. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  511. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  512. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  513. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  514. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  515. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  516. package/dist/types/src/internal/json/annotations.d.ts.map +0 -1
  517. package/dist/types/src/internal/json/effect-schema.test.d.ts.map +0 -1
  518. package/dist/types/src/internal/json/index.d.ts +0 -2
  519. package/dist/types/src/internal/json/index.d.ts.map +0 -1
  520. package/dist/types/src/internal/json/json-schema.d.ts.map +0 -1
  521. package/dist/types/src/internal/json/json-schema.test.d.ts.map +0 -1
  522. package/dist/types/src/internal/json-schema/index.d.ts +0 -3
  523. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  524. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  525. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  526. package/dist/types/src/internal/object/accessors.d.ts +0 -37
  527. package/dist/types/src/internal/object/accessors.d.ts.map +0 -1
  528. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  529. package/dist/types/src/internal/object/create.d.ts.map +0 -1
  530. package/dist/types/src/internal/object/create.test.d.ts +0 -2
  531. package/dist/types/src/internal/object/create.test.d.ts.map +0 -1
  532. package/dist/types/src/internal/object/deleted.d.ts +0 -6
  533. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  534. package/dist/types/src/internal/object/entity.d.ts +0 -33
  535. package/dist/types/src/internal/object/entity.d.ts.map +0 -1
  536. package/dist/types/src/internal/object/expando.d.ts +0 -14
  537. package/dist/types/src/internal/object/expando.d.ts.map +0 -1
  538. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  539. package/dist/types/src/internal/object/index.d.ts +0 -16
  540. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  541. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  542. package/dist/types/src/internal/object/json-serializer.d.ts +0 -32
  543. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  544. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  545. package/dist/types/src/internal/object/meta.d.ts +0 -31
  546. package/dist/types/src/internal/object/meta.d.ts.map +0 -1
  547. package/dist/types/src/internal/object/model.d.ts +0 -117
  548. package/dist/types/src/internal/object/model.d.ts.map +0 -1
  549. package/dist/types/src/internal/object/relation.d.ts +0 -17
  550. package/dist/types/src/internal/object/relation.d.ts.map +0 -1
  551. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  552. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  553. package/dist/types/src/internal/object/typed-object.d.ts +0 -31
  554. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  555. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  556. package/dist/types/src/internal/object/typename.d.ts +0 -15
  557. package/dist/types/src/internal/object/typename.d.ts.map +0 -1
  558. package/dist/types/src/internal/object/version.d.ts +0 -14
  559. package/dist/types/src/internal/object/version.d.ts.map +0 -1
  560. package/dist/types/src/internal/projection/compose.d.ts +0 -6
  561. package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
  562. package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
  563. package/dist/types/src/internal/projection/index.d.ts +0 -2
  564. package/dist/types/src/internal/projection/index.d.ts.map +0 -1
  565. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  566. package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
  567. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
  568. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  569. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  570. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  571. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  572. package/dist/types/src/internal/query/index.d.ts +0 -2
  573. package/dist/types/src/internal/query/index.d.ts.map +0 -1
  574. package/dist/types/src/internal/query/query.d.ts +0 -17
  575. package/dist/types/src/internal/query/query.d.ts.map +0 -1
  576. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  577. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  578. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  579. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  580. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  581. package/dist/types/src/internal/schema/index.d.ts +0 -7
  582. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  583. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  584. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +0 -18
  585. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
  586. package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
  587. package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
  588. package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
  589. package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
  590. package/dist/types/src/internal/testing/index.d.ts +0 -3
  591. package/dist/types/src/internal/testing/index.d.ts.map +0 -1
  592. package/dist/types/src/internal/testing/types.d.ts +0 -455
  593. package/dist/types/src/internal/testing/types.d.ts.map +0 -1
  594. package/dist/types/src/internal/testing/utils.d.ts +0 -10
  595. package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
  596. package/dist/types/src/internal/types/index.d.ts +0 -3
  597. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  598. package/dist/types/src/internal/types/types.d.ts +0 -79
  599. package/dist/types/src/internal/types/types.d.ts.map +0 -1
  600. package/dist/types/src/internal/types/types.test.d.ts +0 -2
  601. package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
  602. package/dist/types/src/internal/types/util.d.ts +0 -5
  603. package/dist/types/src/internal/types/util.d.ts.map +0 -1
  604. package/dist/types/src/query/index.d.ts +0 -3
  605. package/dist/types/src/query/index.d.ts.map +0 -1
  606. package/dist/types/src/query/query.d.ts +0 -248
  607. package/dist/types/src/query/query.d.ts.map +0 -1
  608. package/dist/types/src/query/query.test.d.ts +0 -2
  609. package/dist/types/src/query/query.test.d.ts.map +0 -1
  610. package/dist/types/src/query/tag.d.ts +0 -17
  611. package/dist/types/src/query/tag.d.ts.map +0 -1
  612. package/dist/types/src/testing/echo-schema.d.ts +0 -7
  613. package/dist/types/src/testing/echo-schema.d.ts.map +0 -1
  614. package/dist/types/src/testing/types.d.ts +0 -113
  615. package/dist/types/src/testing/types.d.ts.map +0 -1
  616. package/src/errors.ts +0 -18
  617. package/src/internal/ast/annotation-helper.ts +0 -22
  618. package/src/internal/ast/annotations.test.ts +0 -98
  619. package/src/internal/ast/annotations.ts +0 -219
  620. package/src/internal/ast/entity-kind.ts +0 -15
  621. package/src/internal/ast/index.ts +0 -8
  622. package/src/internal/ast/types.ts +0 -17
  623. package/src/internal/json/index.ts +0 -5
  624. package/src/internal/object/accessors.ts +0 -153
  625. package/src/internal/object/deleted.ts +0 -19
  626. package/src/internal/object/entity.ts +0 -248
  627. package/src/internal/object/expando.ts +0 -21
  628. package/src/internal/object/index.ts +0 -19
  629. package/src/internal/object/json-serializer.test.ts +0 -99
  630. package/src/internal/object/json-serializer.ts +0 -225
  631. package/src/internal/object/meta.ts +0 -61
  632. package/src/internal/object/model.ts +0 -170
  633. package/src/internal/object/relation.ts +0 -24
  634. package/src/internal/object/typed-object.ts +0 -88
  635. package/src/internal/object/typename.ts +0 -61
  636. package/src/internal/object/version.ts +0 -22
  637. package/src/internal/projection/index.ts +0 -5
  638. package/src/internal/proxy/handler.test.ts +0 -163
  639. package/src/internal/proxy/reactive-object.ts +0 -108
  640. package/src/internal/proxy/typed-handler.test.ts +0 -102
  641. package/src/internal/proxy/typed-handler.ts +0 -228
  642. package/src/internal/proxy/typed-object.test.ts +0 -100
  643. package/src/internal/query/index.ts +0 -5
  644. package/src/internal/query/query.ts +0 -23
  645. package/src/internal/schema/index.ts +0 -10
  646. package/src/internal/schema/runtime-schema-registry.ts +0 -78
  647. package/src/internal/schema/snapshot.ts +0 -25
  648. package/src/internal/schema/stored-schema.ts +0 -26
  649. package/src/internal/testing/types.ts +0 -211
  650. package/src/internal/testing/utils.ts +0 -54
  651. package/src/internal/types/index.ts +0 -6
  652. package/src/internal/types/types.test.ts +0 -48
  653. package/src/internal/types/types.ts +0 -176
  654. package/src/internal/types/util.ts +0 -9
  655. package/src/query/index.ts +0 -6
  656. package/src/query/query.test.ts +0 -401
  657. package/src/query/query.ts +0 -789
  658. package/src/test/api.test.ts +0 -180
  659. package/src/testing/echo-schema.ts +0 -39
  660. package/src/testing/types.ts +0 -91
  661. /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
  662. /package/dist/lib/{browser/internal/index.mjs.map → neutral/Database.mjs.map} +0 -0
  663. /package/dist/lib/{browser/query/index.mjs.map → neutral/Entity.mjs.map} +0 -0
  664. /package/dist/lib/{node-esm/index.mjs.map → neutral/Err.mjs.map} +0 -0
  665. /package/dist/lib/{node-esm/internal/index.mjs.map → neutral/Extension.mjs.map} +0 -0
  666. /package/dist/lib/{node-esm/query/index.mjs.map → neutral/Feed.mjs.map} +0 -0
  667. /package/dist/types/src/internal/{ast → Annotation}/annotations.test.d.ts +0 -0
  668. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  669. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  670. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  671. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  672. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  673. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  674. /package/dist/types/src/internal/{json → JsonSchema}/effect-schema.test.d.ts +0 -0
  675. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  676. /package/dist/types/src/internal/{json → JsonSchema}/json-schema.test.d.ts +0 -0
  677. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  678. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  679. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  680. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  681. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  682. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  683. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  684. /package/dist/types/src/internal/{projection → Type}/compose.test.d.ts +0 -0
  685. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  686. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  687. /package/dist/types/src/internal/{object → common/proxy}/schema-validator.d.ts +0 -0
  688. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  689. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  690. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  691. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
  692. /package/src/internal/{formats → Format}/index.ts +0 -0
  693. /package/src/internal/{json → JsonSchema}/effect-schema.test.ts +0 -0
  694. /package/src/internal/{ref → Ref}/index.ts +0 -0
@@ -0,0 +1,201 @@
1
+ import * as Context from 'effect/Context';
2
+ import * as Effect from 'effect/Effect';
3
+ import * as Layer from 'effect/Layer';
4
+ import * as Option from 'effect/Option';
5
+ import * as Schema from 'effect/Schema';
6
+ import type * as Types from 'effect/Types';
7
+ import { DXN, type SpaceId } from '@dxos/keys';
8
+ import type * as Entity from './Entity';
9
+ import * as Err from './Err';
10
+ import type * as Filter from './Filter';
11
+ import type * as Hypergraph from './Hypergraph';
12
+ import { type AnyProperties } from './internal/common/types';
13
+ import type { Ref } from './internal/Ref/ref';
14
+ import type * as Obj from './Obj';
15
+ import type * as Query from './Query';
16
+ import type * as QueryResult from './QueryResult';
17
+ import type * as SchemaRegistry from './SchemaRegistry';
18
+ import type * as Type from './Type';
19
+ /**
20
+ * `query` API function declaration.
21
+ */
22
+ export interface QueryFn {
23
+ <Q extends Query.Any>(query: Q): QueryResult.QueryResult<Query.Type<Q>>;
24
+ <F extends Filter.Any>(filter: F): QueryResult.QueryResult<Filter.Type<F>>;
25
+ }
26
+ /**
27
+ * Common interface for Database, Feed, and Hypergraph.
28
+ */
29
+ export interface Queryable {
30
+ query: QueryFn;
31
+ }
32
+ export type GetObjectByIdOptions = {
33
+ deleted?: boolean;
34
+ };
35
+ export type ObjectPlacement = 'root-doc' | 'linked-doc';
36
+ export type AddOptions = {
37
+ /**
38
+ * Where to place the object in the Automerge document tree.
39
+ * Root document is always loaded with the space.
40
+ * Linked documents are loaded lazily.
41
+ * Placing large number of objects in the root document may slow down the initial load.
42
+ *
43
+ * @default 'linked-doc'
44
+ */
45
+ placeIn?: ObjectPlacement;
46
+ };
47
+ export type FlushOptions = {
48
+ /**
49
+ * Write any pending changes to disk.
50
+ * @default true
51
+ */
52
+ disk?: boolean;
53
+ /**
54
+ * Wait for pending index updates.
55
+ * @default true
56
+ */
57
+ indexes?: boolean;
58
+ /**
59
+ * Flush pending updates to objects and queries.
60
+ * @default false
61
+ */
62
+ updates?: boolean;
63
+ };
64
+ /**
65
+ * Identifier denoting an ECHO Database.
66
+ */
67
+ export declare const TypeId: unique symbol;
68
+ export type TypeId = typeof TypeId;
69
+ /**
70
+ * ECHO Database interface.
71
+ */
72
+ export interface Database extends Queryable {
73
+ readonly [TypeId]: TypeId;
74
+ get spaceId(): SpaceId;
75
+ get schemaRegistry(): SchemaRegistry.SchemaRegistry;
76
+ get graph(): Hypergraph.Hypergraph;
77
+ toJSON(): object;
78
+ /**
79
+ * Return object by local ID.
80
+ */
81
+ getObjectById<T extends Obj.Unknown = Obj.OfShape<AnyProperties>>(id: string, opts?: GetObjectByIdOptions): T | undefined;
82
+ /**
83
+ * Query objects.
84
+ */
85
+ query: QueryFn;
86
+ /**
87
+ * Creates a reference to an existing object in the database.
88
+ *
89
+ * NOTE: The reference may be dangling if the object is not present in the database.
90
+ * NOTE: Difference from `Ref.fromDXN`
91
+ * `Ref.fromDXN(dxn)` returns an unhydrated reference. The `.load` and `.target` APIs will not work.
92
+ * `db.makeRef(dxn)` is preferable in cases with access to the database.
93
+ */
94
+ makeRef<T extends Entity.Unknown = Entity.Unknown>(dxn: DXN): Ref<T>;
95
+ /**
96
+ * Adds object to the database.
97
+ */
98
+ add<T extends Entity.Unknown = Entity.Unknown>(obj: T, opts?: AddOptions): T;
99
+ /**
100
+ * Removes object from the database.
101
+ */
102
+ remove(obj: Entity.Unknown): void;
103
+ /**
104
+ * Wait for all pending changes to be saved to disk.
105
+ * Optionaly waits for changes to be propagated to indexes and event handlers.
106
+ */
107
+ flush(opts?: FlushOptions): Promise<void>;
108
+ }
109
+ export declare const isDatabase: (obj: unknown) => obj is Database;
110
+ export declare const Database: Schema.Schema<Database>;
111
+ declare const Service_base: Context.TagClass<Service, "@dxos/echo/Database/Service", {
112
+ readonly db: Database;
113
+ }>;
114
+ /**
115
+ * Effect service tag for Database dependency injection.
116
+ */
117
+ export declare class Service extends Service_base {
118
+ }
119
+ /**
120
+ * Layer that provides a Database service that throws when accessed.
121
+ * Useful as a default layer when no database is available.
122
+ */
123
+ export declare const notAvailable: Layer.Layer<Service, never, never>;
124
+ /**
125
+ * Creates a Database service instance from a Database.
126
+ */
127
+ export declare const makeService: (db: Database) => Context.Tag.Service<Service>;
128
+ /**
129
+ * Creates a Layer that provides the Database service.
130
+ */
131
+ export declare const layer: (db: Database) => Layer.Layer<Service>;
132
+ /**
133
+ * Returns the space ID of the database.
134
+ */
135
+ export declare const spaceId: Effect.Effect<SpaceId, never, Service>;
136
+ /**
137
+ * Resolves an object by its DXN.
138
+ */
139
+ export declare const resolve: {
140
+ (ref: DXN | Ref<any>): Effect.Effect<Entity.Unknown, never, Service>;
141
+ <S extends Type.AnyEntity>(ref: DXN | Ref<any>, schema: S): Effect.Effect<Schema.Schema.Type<S>, Err.ObjectNotFoundError, Service>;
142
+ };
143
+ /**
144
+ * Loads an object reference.
145
+ */
146
+ export declare const load: <T>(ref: Ref<T>) => Effect.Effect<T, Err.ObjectNotFoundError, never>;
147
+ /**
148
+ * Loads an object reference option.
149
+ */
150
+ export declare const loadOption: <T>(ref: Ref<T>) => Effect.Effect<Option.Option<T>, never, never>;
151
+ /**
152
+ * Adds an object to the database.
153
+ * @see {@link Database.add}
154
+ */
155
+ export declare const add: <T extends Entity.Unknown>(obj: T) => Effect.Effect<T, never, Service>;
156
+ /**
157
+ * Removes an object from the database.
158
+ * @see {@link Database.remove}
159
+ */
160
+ export declare const remove: <T extends Entity.Unknown>(obj: T) => Effect.Effect<void, never, Service>;
161
+ /**
162
+ * Flushes pending changes to disk.
163
+ * @see {@link Database.flush}
164
+ */
165
+ export declare const flush: (opts?: FlushOptions) => Effect.Effect<void, never, Service>;
166
+ /**
167
+ * Creates a `QueryResult` object that can be subscribed to.
168
+ */
169
+ export declare const query: {
170
+ <Q extends Query.Any>(query: Q): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, Service>;
171
+ <F extends Filter.Any>(filter: F): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, Service>;
172
+ };
173
+ /**
174
+ * Executes the query once and returns the results.
175
+ */
176
+ export declare const runQuery: {
177
+ <Q extends Query.Any>(query: Q): Effect.Effect<Query.Type<Q>[], never, Service>;
178
+ <F extends Filter.Any>(filter: F): Effect.Effect<Filter.Type<F>[], never, Service>;
179
+ };
180
+ /**
181
+ * Executes the query once and returns the first result as or None.
182
+ */
183
+ export declare const runQueryFirst: {
184
+ <Q extends Query.Any>(query: Q): Effect.Effect<Option.Option<Query.Type<Q>>, never, Service>;
185
+ <F extends Filter.Any>(filter: F): Effect.Effect<Option.Option<Filter.Type<F>>, never, Service>;
186
+ };
187
+ /**
188
+ * Persists schemas in the database so they replicate to other clients.
189
+ * @see {@link SchemaRegistry.SchemaRegistry.register}
190
+ */
191
+ export declare const registerSchema: (input: SchemaRegistry.RegisterSchemaInput[]) => Effect.Effect<Type.RuntimeType[], never, Service>;
192
+ /**
193
+ * Creates a schema query result that can be subscribed to.
194
+ */
195
+ export declare const schemaQuery: <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(schemaQueryOptions?: Q & SchemaRegistry.Query) => Effect.Effect<QueryResult.QueryResult<SchemaRegistry.ExtractQueryResult<Q>>, never, Service>;
196
+ /**
197
+ * Executes a schema query once and returns the results.
198
+ */
199
+ export declare const runSchemaQuery: <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(schemaQueryOptions?: Q & SchemaRegistry.Query) => Effect.Effect<SchemaRegistry.ExtractQueryResult<Q>[], never, Service>;
200
+ export {};
201
+ //# sourceMappingURL=Database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../../src/Database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
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 name?: string | undefined;
11
+ readonly kind?: string | undefined;
12
+ readonly namespace?: "data" | "trace" | undefined;
13
+ }, Schema.Struct.Fields>, import("./Type").Obj<{
14
+ readonly name?: string | undefined;
15
+ readonly objects: readonly import("./internal").Ref<import("./Entity").OfKind<import("./internal").EntityKind.Object> & Obj.Unknown>[];
16
+ }, Schema.Struct.Fields>, import("./Type").Obj<View.View, Schema.Struct.Fields>]>;
17
+ export type Dataset = Feed.Feed | Collection.Collection | View.View;
18
+ export declare const isDataset: (value: unknown) => value is Dataset;
19
+ //# sourceMappingURL=Dataset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dataset.d.ts","sourceRoot":"","sources":["../../../src/Dataset.ts"],"names":[],"mappings":"AAQA,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,174 @@
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
+ import type * as Type from './Type';
6
+ export declare const KindId: "~@dxos/echo/Kind";
7
+ export type KindId = typeof internal.KindId;
8
+ export declare const SnapshotKindId: "~@dxos/echo/SnapshotKind";
9
+ export type SnapshotKindId = typeof internal.SnapshotKindId;
10
+ export declare const Kind: typeof internal.EntityKind;
11
+ export type Kind = internal.EntityKind;
12
+ export declare const KindSchema: import("effect/Schema").Enums<typeof internal.EntityKind>;
13
+ /**
14
+ * Assigns a kind to an Object or Relation instance.
15
+ * NOTE: Needed to make `isRelation` and `isObject` checks work.
16
+ */
17
+ export interface OfKind<K extends Kind> {
18
+ readonly [KindId]: K;
19
+ readonly id: ObjectId;
20
+ }
21
+ /**
22
+ * Assigns a snapshot kind to an Object or Relation snapshot.
23
+ */
24
+ export interface SnapshotOfKind<K extends Kind> {
25
+ readonly [SnapshotKindId]: K;
26
+ readonly id: ObjectId;
27
+ }
28
+ /**
29
+ * Obj or Relation with a specific set of properties.
30
+ */
31
+ export type Entity<Props> = OfKind<Kind> & Props;
32
+ /**
33
+ * Unknown Obj or Relation (reactive).
34
+ */
35
+ export interface Unknown extends OfKind<Kind> {
36
+ }
37
+ /**
38
+ * Snapshot of an Obj or Relation.
39
+ * Branded with SnapshotKindId instead of KindId.
40
+ */
41
+ export interface Snapshot extends SnapshotOfKind<Kind> {
42
+ }
43
+ /**
44
+ * Object with arbitrary properties.
45
+ *
46
+ * NOTE: Due to how typescript works, this type is not assignable to a specific schema type.
47
+ * In that case, use `Obj.instanceOf` to check if an object is of a specific type.
48
+ *
49
+ * This type is very permissive and allows accessing any property on the object.
50
+ * We should move to Obj.Unknown that is not permissive and requires explicit instanceof checks..
51
+ */
52
+ export interface Any extends OfKind<Kind> {
53
+ [key: string]: unknown;
54
+ }
55
+ /**
56
+ * Returns all properties of an object or relation except for the id and kind.
57
+ */
58
+ export type Properties<T> = Omit<T, 'id' | KindId | Relation.Source | Relation.Target>;
59
+ /**
60
+ * Check if a value is an ECHO entity (object or relation).
61
+ * Returns `false` for snapshots.
62
+ */
63
+ export declare const isEntity: (value: unknown) => value is Unknown;
64
+ /**
65
+ * Check if a value is an ECHO entity snapshot.
66
+ * Returns `false` for entities.
67
+ */
68
+ export declare const isSnapshot: (value: unknown) => value is Snapshot;
69
+ export declare const getKind: (schema: import("effect/Schema").Schema.All) => internal.EntityKind | undefined;
70
+ /**
71
+ * Property that accesses metadata for an entity.
72
+ */
73
+ export declare const Meta: unique symbol;
74
+ /**
75
+ * Property that accesses metadata for an entity.
76
+ */
77
+ export type Meta = typeof Meta;
78
+ /**
79
+ * JSON representation of an entity.
80
+ */
81
+ export type JSON = internal.ObjectJSON;
82
+ /**
83
+ * Get the DXN of an entity (object or relation).
84
+ */
85
+ export declare const getDXN: (entity: Unknown | Snapshot) => DXN;
86
+ /**
87
+ * Get the DXN of an entity's type.
88
+ */
89
+ export declare const getTypeDXN: (obj: internal.AnyProperties) => DXN | undefined;
90
+ /**
91
+ * Get the schema of an entity.
92
+ * Returns the branded ECHO schema used to create the entity.
93
+ */
94
+ export declare const getSchema: (entity: Unknown | Snapshot) => Type.AnyEntity | undefined;
95
+ /**
96
+ * Get the typename of an entity's type.
97
+ */
98
+ export declare const getTypename: (entity: Unknown | Snapshot) => string | undefined;
99
+ /**
100
+ * Get the database an entity belongs to.
101
+ */
102
+ export declare const getDatabase: (entity: Unknown | Snapshot) => any | undefined;
103
+ /**
104
+ * Get the metadata for an entity.
105
+ * Returns mutable meta when passed a mutable entity (inside change callback).
106
+ * Returns read-only meta when passed a regular entity or snapshot.
107
+ */
108
+ export declare function getMeta(entity: Mutable<Unknown>): internal.ObjectMeta;
109
+ export declare function getMeta(entity: Unknown | Snapshot): internal.ReadonlyMeta;
110
+ /**
111
+ * Get foreign keys for an entity from the specified source.
112
+ */
113
+ export declare const getKeys: (entity: Unknown | Snapshot, source: string) => ForeignKey[];
114
+ /**
115
+ * Check if an entity is deleted.
116
+ */
117
+ export declare const isDeleted: (entity: Unknown | Snapshot) => boolean;
118
+ /**
119
+ * Get the label of an entity.
120
+ */
121
+ export declare const getLabel: (entity: Unknown | Snapshot) => string | undefined;
122
+ /**
123
+ * Get the description of an entity.
124
+ */
125
+ export declare const getDescription: (entity: Unknown | Snapshot) => string | undefined;
126
+ /**
127
+ * Convert an entity to its JSON representation.
128
+ */
129
+ export declare const toJSON: (entity: Unknown | Snapshot) => JSON;
130
+ /**
131
+ * Subscribe to changes on an entity (object or relation).
132
+ * @returns Unsubscribe function.
133
+ */
134
+ export declare const subscribe: (entity: Unknown, callback: () => void) => (() => void);
135
+ /**
136
+ * Used to provide a mutable view of an entity within `Entity.update`.
137
+ */
138
+ export type Mutable<T> = internal.Mutable<T>;
139
+ /**
140
+ * Perform mutations on an entity (object or relation) within a change context.
141
+ *
142
+ * Entities are read-only by default. Mutations are batched and notifications fire
143
+ * when the callback completes. Direct mutations outside of `Entity.update` will throw
144
+ * at runtime.
145
+ *
146
+ * @param entity - The echo entity (object or relation) to mutate.
147
+ * @param callback - Receives a mutable view of the entity. All mutations must occur here.
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * // Mutate within Entity.update
152
+ * Entity.update(entity, (obj) => {
153
+ * obj.name = 'Updated';
154
+ * obj.count = 42;
155
+ * });
156
+ *
157
+ * // Direct mutation throws
158
+ * entity.name = 'Bob'; // Error: Cannot modify outside Entity.update()
159
+ * ```
160
+ *
161
+ * Note: For type-specific operations, prefer `Obj.update` or `Relation.update`.
162
+ */
163
+ export declare const update: <T extends Unknown>(entity: T, callback: internal.ChangeCallback<T>) => void;
164
+ /**
165
+ * Add a tag to an entity.
166
+ * Must be called within an `Entity.update`, `Obj.update`, or `Relation.update` callback.
167
+ */
168
+ export declare const addTag: (entity: Mutable<Unknown>, tag: string) => void;
169
+ /**
170
+ * Remove a tag from an entity.
171
+ * Must be called within an `Entity.update`, `Obj.update`, or `Relation.update` callback.
172
+ */
173
+ export declare const removeTag: (entity: Mutable<Unknown>, tag: string) => void;
174
+ //# 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
+ cause?: unknown;
6
+ stack?: string;
7
+ name: "SchemaNotFoundError";
8
+ context: Record<string, unknown>;
9
+ readonly message: string;
10
+ readonly _tag: "SchemaNotFoundError";
11
+ };
12
+ isError(error: unknown): error is Error;
13
+ name: "SchemaNotFoundError";
14
+ is(error: unknown): error is BaseError;
15
+ wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
16
+ ifTypeDiffers?: boolean;
17
+ }): (error: unknown) => {
18
+ cause?: unknown;
19
+ stack?: string;
20
+ name: "SchemaNotFoundError";
21
+ context: Record<string, unknown>;
22
+ readonly message: string;
23
+ readonly _tag: "SchemaNotFoundError";
24
+ };
25
+ extend<Name extends string = string>(name: Name, message?: string): any;
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
+ cause?: unknown;
36
+ stack?: string;
37
+ name: "ObjectNotFoundError";
38
+ context: Record<string, unknown>;
39
+ readonly message: string;
40
+ readonly _tag: "ObjectNotFoundError";
41
+ };
42
+ isError(error: unknown): error is Error;
43
+ name: "ObjectNotFoundError";
44
+ is(error: unknown): error is BaseError;
45
+ wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
46
+ ifTypeDiffers?: boolean;
47
+ }): (error: unknown) => {
48
+ cause?: unknown;
49
+ stack?: string;
50
+ name: "ObjectNotFoundError";
51
+ context: Record<string, unknown>;
52
+ readonly message: string;
53
+ readonly _tag: "ObjectNotFoundError";
54
+ };
55
+ extend<Name extends string = string>(name: Name, message?: string): any;
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
+ cause?: unknown;
72
+ stack?: string;
73
+ name: "GetReactiveError";
74
+ context: Record<string, unknown>;
75
+ readonly message: string;
76
+ readonly _tag: "GetReactiveError";
77
+ };
78
+ isError(error: unknown): error is Error;
79
+ name: "GetReactiveError";
80
+ is(error: unknown): error is BaseError;
81
+ wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
82
+ ifTypeDiffers?: boolean;
83
+ }): (error: unknown) => {
84
+ cause?: unknown;
85
+ stack?: string;
86
+ name: "GetReactiveError";
87
+ context: Record<string, unknown>;
88
+ readonly message: string;
89
+ readonly _tag: "GetReactiveError";
90
+ };
91
+ extend<Name extends string = string>(name: Name, message?: string): any;
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":"AAMA,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtC,qBAAa,mBAAoB,SAAQ,wBAA2D;IAClG,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAErD;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,mBAAoB,SAAQ,wBAA2D;IAClG,YAAY,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAE/C;CACF;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExE;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,qBAGrC;IACC,YAAY,OAAO,EAAE;QAAE,MAAM,EAAE,sBAAsB,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,EAE9F;CACF"}
@@ -0,0 +1,80 @@
1
+ import * as Option from 'effect/Option';
2
+ import * as Schema from 'effect/Schema';
3
+ import type * as Types from 'effect/Types';
4
+ /**
5
+ * Extensions allow objects to contain typed properties that are not part of the schema.
6
+ */
7
+ export declare const TypeId: '~@dxos/echo/Extension';
8
+ export type TypeId = typeof TypeId;
9
+ export interface Extension<T> extends Record<TypeId, {
10
+ _Type: T;
11
+ }> {
12
+ readonly [TypeId]: {
13
+ _Type: T;
14
+ };
15
+ readonly key: Key;
16
+ readonly valueSchema: Schema.Schema<T>;
17
+ }
18
+ /**
19
+ * Create a new typed extension.
20
+ *
21
+ * ```ts
22
+ * const ColorExtension = Extension.make('color', Schema.String);
23
+ *
24
+ * const obj = Obj.make(Person, {
25
+ * [Obj.Meta]: { keys: [{ source: 'external', id: '123' }] },
26
+ * name: 'John',
27
+ * email: 'john@example.com',
28
+ * });
29
+ *
30
+ * Obj.update(obj, (obj) => {
31
+ * Extension.set(obj.extensions, ColorExtension, 'red');
32
+ * });
33
+ *
34
+ * console.log(Extension.get(obj.extensions, ColorExtension)); // 'red'
35
+ * ```
36
+ */
37
+ export declare const make: <S extends Schema.Schema.AnyNoContext>(key: string, valueSchema: S) => Extension<Schema.Schema.Type<S>>;
38
+ /**
39
+ * Unique identifier for an extension.
40
+ */
41
+ export declare const Key: Schema.brand<typeof Schema.String, "~@dxos/echo/ExtensionKey">;
42
+ export type Key = Schema.Schema.Type<typeof Key>;
43
+ /**
44
+ * Set of extension values.
45
+ *
46
+ * Can be used inside an object/relation schema:
47
+ *
48
+ * ```ts
49
+ * const Person = Schema.Struct({
50
+ * name: Schema.String,
51
+ * extensions: Extension.Values,
52
+ * });
53
+ * ```
54
+ */
55
+ export declare const Values: Schema.Record$<Schema.brand<typeof Schema.String, "~@dxos/echo/ExtensionKey">, typeof Schema.Unknown>;
56
+ export interface Values extends Schema.Schema.Type<typeof Values> {
57
+ }
58
+ /**
59
+ * Get the value of an extension from a set of values.
60
+ */
61
+ export declare const get: {
62
+ <T>(extension: Extension<T>): (values: Values) => Option.Option<T>;
63
+ <T>(values: Values, extension: Extension<T>): Option.Option<T>;
64
+ };
65
+ /**
66
+ * Set the value of an extension in a set of values.
67
+ *
68
+ * Can also be used within Obj.update callback:
69
+ *
70
+ * ```ts
71
+ * Obj.update(obj, (obj) => {
72
+ * Extension.set(obj.extensions, ColorExtension, 'red');
73
+ * });
74
+ * ```
75
+ */
76
+ export declare const set: {
77
+ <T>(extension: Extension<T>, value: T): (values: Values) => void;
78
+ <T>(values: Types.Mutable<Values>, extension: Extension<T>, value: T): void;
79
+ };
80
+ //# sourceMappingURL=Extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Extension.d.ts","sourceRoot":"","sources":["../../../src/Extension.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAI3C;;GAEG;AAEH,eAAO,MAAM,MAAM,EAAG,uBAAgC,CAAC;AACvD,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,MAAM,CAC1C,MAAM,EACN;IACE,KAAK,EAAE,CAAC,CAAC;CACV,CACF;IACC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE;QACjB,KAAK,EAAE,CAAC,CAAC;KACV,CAAC;IAEF,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,OAClD,MAAM,eACE,CAAC,KACb,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAMjC,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,GAAG,gEAA+D,CAAC;AAChF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,uGAAqD,CAAC;AACzE,MAAM,WAAW,MAAO,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC;CAAG;AAEpE;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAU/D,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAM5E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Extension.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Extension.test.d.ts","sourceRoot":"","sources":["../../../src/Extension.test.ts"],"names":[],"mappings":""}