@dxos/echo 0.8.4-staging.ac66bdf99f → 0.9.1-main.c7dcc2e112

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 (444) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +7 -7
  3. package/dist/lib/neutral/Annotation.mjs +45 -6
  4. package/dist/lib/neutral/Database.mjs +10 -17
  5. package/dist/lib/neutral/Entity.mjs +35 -20
  6. package/dist/lib/neutral/Err.mjs +3 -3
  7. package/dist/lib/neutral/Feed.mjs +23 -19
  8. package/dist/lib/neutral/Filter.mjs +13 -15
  9. package/dist/lib/neutral/Format.mjs +23 -3
  10. package/dist/lib/neutral/JsonSchema.mjs +7 -8
  11. package/dist/lib/neutral/Key.mjs +9 -5
  12. package/dist/lib/neutral/Migration.mjs +11 -10
  13. package/dist/lib/neutral/Obj.mjs +33 -20
  14. package/dist/lib/neutral/Order.mjs +7 -3
  15. package/dist/lib/neutral/Query.mjs +17 -17
  16. package/dist/lib/neutral/QueryResult.mjs +1 -1
  17. package/dist/lib/neutral/Ref.mjs +10 -9
  18. package/dist/lib/neutral/Registry.mjs +14 -0
  19. package/dist/lib/neutral/Relation.mjs +28 -25
  20. package/dist/lib/neutral/Scope.mjs +12 -0
  21. package/dist/lib/neutral/Tag.mjs +17 -14
  22. package/dist/lib/neutral/Type.mjs +54 -26
  23. package/dist/lib/neutral/{chunk-OMUPQMLR.mjs → chunk-35INCYOE.mjs} +1 -1
  24. package/dist/lib/neutral/chunk-35INCYOE.mjs.map +7 -0
  25. package/dist/lib/neutral/{chunk-4OIBYSXE.mjs → chunk-3JXQUMUI.mjs} +78 -32
  26. package/dist/lib/neutral/chunk-3JXQUMUI.mjs.map +7 -0
  27. package/dist/lib/neutral/{chunk-G3IQMKF7.mjs → chunk-4TPQZPLY.mjs} +130 -119
  28. package/dist/lib/neutral/chunk-4TPQZPLY.mjs.map +7 -0
  29. package/dist/lib/neutral/{chunk-TU3GW67D.mjs → chunk-5GAIWRQB.mjs} +40 -40
  30. package/dist/lib/neutral/chunk-5GAIWRQB.mjs.map +7 -0
  31. package/dist/lib/neutral/{chunk-B4BASU6W.mjs → chunk-6CEISA3V.mjs} +93 -76
  32. package/dist/lib/neutral/chunk-6CEISA3V.mjs.map +7 -0
  33. package/dist/lib/neutral/{chunk-GZQTCRJB.mjs → chunk-6M2Z6WBH.mjs} +22 -2
  34. package/dist/lib/neutral/chunk-6M2Z6WBH.mjs.map +7 -0
  35. package/dist/lib/neutral/{chunk-ANHVGJI4.mjs → chunk-7LOUAPYZ.mjs} +9 -5
  36. package/dist/lib/neutral/chunk-7LOUAPYZ.mjs.map +7 -0
  37. package/dist/lib/neutral/{chunk-WAK4DMFV.mjs → chunk-A53NTBHE.mjs} +12 -7
  38. package/dist/lib/neutral/chunk-A53NTBHE.mjs.map +7 -0
  39. package/dist/lib/neutral/{chunk-EAMSSLZC.mjs → chunk-AFANXSGV.mjs} +83 -46
  40. package/dist/lib/neutral/chunk-AFANXSGV.mjs.map +7 -0
  41. package/dist/lib/neutral/{chunk-UBEZSGXY.mjs → chunk-BBFJWWAV.mjs} +6 -6
  42. package/dist/lib/neutral/chunk-BBFJWWAV.mjs.map +7 -0
  43. package/dist/lib/neutral/chunk-E7IOTOZD.mjs +108 -0
  44. package/dist/lib/neutral/chunk-E7IOTOZD.mjs.map +7 -0
  45. package/dist/lib/neutral/{chunk-UI6MWK5W.mjs → chunk-EVK6XBXO.mjs} +16 -2
  46. package/dist/lib/neutral/chunk-EVK6XBXO.mjs.map +7 -0
  47. package/dist/lib/neutral/chunk-HGWQR5KH.mjs +259 -0
  48. package/dist/lib/neutral/chunk-HGWQR5KH.mjs.map +7 -0
  49. package/dist/lib/neutral/chunk-JZ6LFQU5.mjs +109 -0
  50. package/dist/lib/neutral/chunk-JZ6LFQU5.mjs.map +7 -0
  51. package/dist/lib/neutral/{chunk-JUXPFOEI.mjs → chunk-K3S7D5PR.mjs} +48 -88
  52. package/dist/lib/neutral/chunk-K3S7D5PR.mjs.map +7 -0
  53. package/dist/lib/neutral/{chunk-OS35K56T.mjs → chunk-L3OBWBV2.mjs} +3 -3
  54. package/dist/lib/neutral/{chunk-OS35K56T.mjs.map → chunk-L3OBWBV2.mjs.map} +2 -2
  55. package/dist/lib/neutral/{chunk-V36VO5SS.mjs → chunk-NOL7O3BL.mjs} +32 -40
  56. package/dist/lib/neutral/chunk-NOL7O3BL.mjs.map +7 -0
  57. package/dist/lib/neutral/{chunk-TBKX6JQO.mjs → chunk-O6BH7EPN.mjs} +30 -3
  58. package/dist/lib/neutral/chunk-O6BH7EPN.mjs.map +7 -0
  59. package/dist/lib/neutral/{chunk-7RO7CPBZ.mjs → chunk-PLDMJJJC.mjs} +2 -2
  60. package/dist/lib/neutral/{chunk-HBUZJNZO.mjs → chunk-SZ5WB6HF.mjs} +94 -99
  61. package/dist/lib/neutral/chunk-SZ5WB6HF.mjs.map +7 -0
  62. package/dist/lib/neutral/{chunk-BVOFLCVF.mjs → chunk-TF5BSLF6.mjs} +9 -6
  63. package/dist/lib/neutral/chunk-TF5BSLF6.mjs.map +7 -0
  64. package/dist/lib/neutral/{chunk-DQYLD2RB.mjs → chunk-TFEWTY5A.mjs} +155 -129
  65. package/dist/lib/neutral/chunk-TFEWTY5A.mjs.map +7 -0
  66. package/dist/lib/neutral/{chunk-MOR5ERFM.mjs → chunk-VQYL2OQF.mjs} +771 -1252
  67. package/dist/lib/neutral/chunk-VQYL2OQF.mjs.map +7 -0
  68. package/dist/lib/neutral/chunk-WISOH2XH.mjs +36 -0
  69. package/dist/lib/neutral/chunk-WISOH2XH.mjs.map +7 -0
  70. package/dist/lib/neutral/chunk-WU3GIANS.mjs +31 -0
  71. package/dist/lib/neutral/chunk-WU3GIANS.mjs.map +7 -0
  72. package/dist/lib/neutral/chunk-WZ32BF53.mjs +702 -0
  73. package/dist/lib/neutral/chunk-WZ32BF53.mjs.map +7 -0
  74. package/dist/lib/neutral/chunk-X3NUUON4.mjs +184 -0
  75. package/dist/lib/neutral/chunk-X3NUUON4.mjs.map +7 -0
  76. package/dist/lib/neutral/chunk-Z3WMRRAZ.mjs +168 -0
  77. package/dist/lib/neutral/chunk-Z3WMRRAZ.mjs.map +7 -0
  78. package/dist/lib/neutral/index.mjs +47 -41
  79. package/dist/lib/neutral/internal/index.mjs +157 -72
  80. package/dist/lib/neutral/meta.json +1 -1
  81. package/dist/lib/neutral/testing/index.mjs +261 -178
  82. package/dist/lib/neutral/testing/index.mjs.map +4 -4
  83. package/dist/types/src/Annotation.d.ts +108 -4
  84. package/dist/types/src/Annotation.d.ts.map +1 -1
  85. package/dist/types/src/Annotation.test.d.ts +2 -0
  86. package/dist/types/src/Annotation.test.d.ts.map +1 -0
  87. package/dist/types/src/Collection.d.ts +2 -3
  88. package/dist/types/src/Collection.d.ts.map +1 -1
  89. package/dist/types/src/Database.d.ts +78 -49
  90. package/dist/types/src/Database.d.ts.map +1 -1
  91. package/dist/types/src/Dataset.d.ts +16 -6
  92. package/dist/types/src/Dataset.d.ts.map +1 -1
  93. package/dist/types/src/Entity.d.ts +103 -28
  94. package/dist/types/src/Entity.d.ts.map +1 -1
  95. package/dist/types/src/Err.d.ts +27 -27
  96. package/dist/types/src/Err.d.ts.map +1 -1
  97. package/dist/types/src/Feed.d.ts +69 -19
  98. package/dist/types/src/Feed.d.ts.map +1 -1
  99. package/dist/types/src/Filter.d.ts +38 -12
  100. package/dist/types/src/Filter.d.ts.map +1 -1
  101. package/dist/types/src/Format.d.ts +0 -2
  102. package/dist/types/src/Format.d.ts.map +1 -1
  103. package/dist/types/src/Hypergraph.d.ts +14 -9
  104. package/dist/types/src/Hypergraph.d.ts.map +1 -1
  105. package/dist/types/src/Json.d.ts +33 -0
  106. package/dist/types/src/Json.d.ts.map +1 -0
  107. package/dist/types/src/Json.test.d.ts +2 -0
  108. package/dist/types/src/Json.test.d.ts.map +1 -0
  109. package/dist/types/src/JsonSchema.d.ts +2 -2
  110. package/dist/types/src/JsonSchema.d.ts.map +1 -1
  111. package/dist/types/src/Key.d.ts +1 -1
  112. package/dist/types/src/Key.d.ts.map +1 -1
  113. package/dist/types/src/Migration.d.ts +26 -11
  114. package/dist/types/src/Migration.d.ts.map +1 -1
  115. package/dist/types/src/Obj.d.ts +106 -61
  116. package/dist/types/src/Obj.d.ts.map +1 -1
  117. package/dist/types/src/Order.d.ts +10 -0
  118. package/dist/types/src/Order.d.ts.map +1 -1
  119. package/dist/types/src/Query.d.ts +34 -12
  120. package/dist/types/src/Query.d.ts.map +1 -1
  121. package/dist/types/src/QueryResult.d.ts +21 -0
  122. package/dist/types/src/QueryResult.d.ts.map +1 -1
  123. package/dist/types/src/Ref.d.ts +15 -7
  124. package/dist/types/src/Ref.d.ts.map +1 -1
  125. package/dist/types/src/Registry.d.ts +131 -0
  126. package/dist/types/src/Registry.d.ts.map +1 -0
  127. package/dist/types/src/Relation.d.ts +73 -41
  128. package/dist/types/src/Relation.d.ts.map +1 -1
  129. package/dist/types/src/Scope.d.ts +35 -0
  130. package/dist/types/src/Scope.d.ts.map +1 -0
  131. package/dist/types/src/Tag.d.ts +21 -5
  132. package/dist/types/src/Tag.d.ts.map +1 -1
  133. package/dist/types/src/Type.d.ts +366 -95
  134. package/dist/types/src/Type.d.ts.map +1 -1
  135. package/dist/types/src/View.d.ts +9 -12
  136. package/dist/types/src/View.d.ts.map +1 -1
  137. package/dist/types/src/exemplars.test.d.ts +2 -0
  138. package/dist/types/src/exemplars.test.d.ts.map +1 -0
  139. package/dist/types/src/index.d.ts +4 -3
  140. package/dist/types/src/index.d.ts.map +1 -1
  141. package/dist/types/src/internal/Annotation/annotations.d.ts +120 -38
  142. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -1
  143. package/dist/types/src/internal/Annotation/dictionary.d.ts +24 -0
  144. package/dist/types/src/internal/Annotation/dictionary.d.ts.map +1 -0
  145. package/dist/types/src/internal/Annotation/entity-dictionary.d.ts +14 -0
  146. package/dist/types/src/internal/Annotation/entity-dictionary.d.ts.map +1 -0
  147. package/dist/types/src/internal/Annotation/index.d.ts +4 -2
  148. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -1
  149. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -1
  150. package/dist/types/src/internal/Annotation/util.d.ts +14 -5
  151. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -1
  152. package/dist/types/src/internal/Entity/api.d.ts +17 -3
  153. package/dist/types/src/internal/Entity/api.d.ts.map +1 -1
  154. package/dist/types/src/internal/Entity/entity.d.ts +72 -8
  155. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -1
  156. package/dist/types/src/internal/Entity/guard.d.ts +10 -0
  157. package/dist/types/src/internal/Entity/guard.d.ts.map +1 -0
  158. package/dist/types/src/internal/Entity/index.d.ts +2 -0
  159. package/dist/types/src/internal/Entity/index.d.ts.map +1 -1
  160. package/dist/types/src/internal/Entity/model.d.ts +21 -17
  161. package/dist/types/src/internal/Entity/model.d.ts.map +1 -1
  162. package/dist/types/src/internal/Entity/object.d.ts +3 -3
  163. package/dist/types/src/internal/Entity/object.d.ts.map +1 -1
  164. package/dist/types/src/internal/Entity/relation.d.ts +30 -7
  165. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -1
  166. package/dist/types/src/internal/Entity/type-kind.d.ts +24 -0
  167. package/dist/types/src/internal/Entity/type-kind.d.ts.map +1 -0
  168. package/dist/types/src/internal/Entity/type-uri.d.ts +24 -0
  169. package/dist/types/src/internal/Entity/type-uri.d.ts.map +1 -0
  170. package/dist/types/src/internal/Entity/version.d.ts.map +1 -1
  171. package/dist/types/src/internal/Format/date.d.ts.map +1 -1
  172. package/dist/types/src/internal/Format/format.d.ts +3 -2
  173. package/dist/types/src/internal/Format/format.d.ts.map +1 -1
  174. package/dist/types/src/internal/Format/index.d.ts +2 -2
  175. package/dist/types/src/internal/Format/index.d.ts.map +1 -1
  176. package/dist/types/src/internal/Format/number.d.ts.map +1 -1
  177. package/dist/types/src/internal/Format/object.d.ts +3 -1
  178. package/dist/types/src/internal/Format/object.d.ts.map +1 -1
  179. package/dist/types/src/internal/Format/types.d.ts.map +1 -1
  180. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -1
  181. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts +34 -34
  182. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -1
  183. package/dist/types/src/internal/JsonSchema/json-schema.d.ts +3 -2
  184. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -1
  185. package/dist/types/src/internal/Obj/atoms.d.ts +43 -0
  186. package/dist/types/src/internal/Obj/atoms.d.ts.map +1 -0
  187. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -1
  188. package/dist/types/src/internal/Obj/common.d.ts.map +1 -1
  189. package/dist/types/src/internal/Obj/create-object.d.ts +12 -12
  190. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -1
  191. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -1
  192. package/dist/types/src/internal/Obj/index.d.ts +1 -1
  193. package/dist/types/src/internal/Obj/index.d.ts.map +1 -1
  194. package/dist/types/src/internal/Obj/json-serializer.d.ts +8 -8
  195. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -1
  196. package/dist/types/src/internal/Obj/set-value.d.ts +1 -1
  197. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -1
  198. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -1
  199. package/dist/types/src/internal/Obj/typed-object.d.ts +1 -1
  200. package/dist/types/src/internal/Query/index.d.ts +2 -0
  201. package/dist/types/src/internal/Query/index.d.ts.map +1 -0
  202. package/dist/types/src/internal/{Query.d.ts → Query/pretty.d.ts} +1 -1
  203. package/dist/types/src/internal/Query/pretty.d.ts.map +1 -0
  204. package/dist/types/src/internal/Ref/atoms.d.ts +10 -0
  205. package/dist/types/src/internal/Ref/atoms.d.ts.map +1 -0
  206. package/dist/types/src/internal/Ref/index.d.ts +1 -0
  207. package/dist/types/src/internal/Ref/index.d.ts.map +1 -1
  208. package/dist/types/src/internal/Ref/ref-array.d.ts +2 -2
  209. package/dist/types/src/internal/Ref/ref.d.ts +114 -19
  210. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -1
  211. package/dist/types/src/internal/Ref/strong-deps.d.ts +35 -0
  212. package/dist/types/src/internal/Ref/strong-deps.d.ts.map +1 -0
  213. package/dist/types/src/internal/Ref/utils.d.ts +8 -0
  214. package/dist/types/src/internal/Ref/utils.d.ts.map +1 -0
  215. package/dist/types/src/internal/Type/compose.d.ts.map +1 -1
  216. package/dist/types/src/internal/Type/index.d.ts +1 -2
  217. package/dist/types/src/internal/Type/index.d.ts.map +1 -1
  218. package/dist/types/src/internal/Type/manipulation.d.ts +0 -1
  219. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -1
  220. package/dist/types/src/internal/Type/type-schema.d.ts +52 -0
  221. package/dist/types/src/internal/Type/type-schema.d.ts.map +1 -0
  222. package/dist/types/src/internal/common/api/meta.d.ts +14 -11
  223. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -1
  224. package/dist/types/src/internal/common/proxy/change-context.d.ts +1 -1
  225. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -1
  226. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -1
  227. package/dist/types/src/internal/common/proxy/errors.d.ts +1 -1
  228. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -1
  229. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -1
  230. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -1
  231. package/dist/types/src/internal/common/proxy/make-object.d.ts +11 -5
  232. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -1
  233. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -1
  234. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -1
  235. package/dist/types/src/internal/common/proxy/reactive-array.d.ts +1 -1
  236. package/dist/types/src/internal/common/proxy/reactive.d.ts +1 -1
  237. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -1
  238. package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
  239. package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
  240. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -1
  241. package/dist/types/src/internal/common/proxy/typed-handler.d.ts +18 -2
  242. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -1
  243. package/dist/types/src/internal/common/types/base.d.ts +4 -4
  244. package/dist/types/src/internal/common/types/base.d.ts.map +1 -1
  245. package/dist/types/src/internal/common/types/entity.d.ts +62 -5
  246. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -1
  247. package/dist/types/src/internal/common/types/index.d.ts +1 -1
  248. package/dist/types/src/internal/common/types/index.d.ts.map +1 -1
  249. package/dist/types/src/internal/common/types/meta.d.ts +33 -12
  250. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -1
  251. package/dist/types/src/internal/common/types/model-symbols.d.ts +15 -4
  252. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -1
  253. package/dist/types/src/internal/common/types/typename.d.ts +7 -0
  254. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -1
  255. package/dist/types/src/internal/common/types/version.d.ts +1 -1
  256. package/dist/types/src/internal/common/types/well-known-types.d.ts +11 -0
  257. package/dist/types/src/internal/common/types/well-known-types.d.ts.map +1 -0
  258. package/dist/types/src/internal/index.d.ts +2 -2
  259. package/dist/types/src/internal/index.d.ts.map +1 -1
  260. package/dist/types/src/testing/index.d.ts +1 -0
  261. package/dist/types/src/testing/index.d.ts.map +1 -1
  262. package/dist/types/src/testing/registry.d.ts +9 -0
  263. package/dist/types/src/testing/registry.d.ts.map +1 -0
  264. package/dist/types/src/testing/test-data.d.ts +8 -8
  265. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  266. package/dist/types/src/testing/test-schema.d.ts +83 -89
  267. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  268. package/dist/types/src/testing/util.d.ts +5 -3
  269. package/dist/types/src/testing/util.d.ts.map +1 -1
  270. package/dist/types/tsconfig.tsbuildinfo +1 -1
  271. package/package.json +26 -24
  272. package/src/Annotation.test.ts +439 -0
  273. package/src/Annotation.ts +163 -4
  274. package/src/Collection.ts +5 -9
  275. package/src/Database.ts +126 -101
  276. package/src/Dataset.ts +10 -2
  277. package/src/Entity.test.ts +116 -6
  278. package/src/Entity.ts +136 -32
  279. package/src/Err.ts +4 -4
  280. package/src/Feed.ts +95 -44
  281. package/src/Filter.ts +70 -40
  282. package/src/Format.ts +0 -4
  283. package/src/Hypergraph.ts +14 -9
  284. package/src/Json.test.ts +175 -0
  285. package/src/Json.ts +103 -0
  286. package/src/Key.ts +1 -1
  287. package/src/Migration.ts +39 -19
  288. package/src/Obj.test.ts +122 -20
  289. package/src/Obj.ts +170 -91
  290. package/src/Order.ts +22 -0
  291. package/src/Query.test.ts +183 -154
  292. package/src/Query.ts +172 -85
  293. package/src/QueryResult.ts +26 -0
  294. package/src/Ref.ts +22 -4
  295. package/src/Registry.ts +155 -0
  296. package/src/Relation.test.ts +10 -10
  297. package/src/Relation.ts +116 -69
  298. package/src/Scope.ts +50 -0
  299. package/src/Tag.md +88 -0
  300. package/src/Tag.ts +50 -6
  301. package/src/Type.test.ts +223 -18
  302. package/src/Type.ts +623 -131
  303. package/src/View.ts +14 -23
  304. package/src/exemplars.test.ts +21 -0
  305. package/src/index.ts +4 -4
  306. package/src/internal/Annotation/annotations.test.ts +31 -11
  307. package/src/internal/Annotation/annotations.ts +199 -111
  308. package/src/internal/Annotation/dictionary.ts +47 -0
  309. package/src/internal/Annotation/entity-dictionary.ts +74 -0
  310. package/src/internal/Annotation/index.ts +4 -2
  311. package/src/internal/Annotation/util.ts +17 -8
  312. package/src/internal/Entity/api.ts +54 -7
  313. package/src/internal/Entity/entity.ts +196 -47
  314. package/src/internal/Entity/guard.ts +26 -0
  315. package/src/internal/Entity/index.ts +2 -0
  316. package/src/internal/Entity/model.ts +38 -28
  317. package/src/internal/Entity/object.ts +21 -5
  318. package/src/internal/Entity/relation.ts +68 -34
  319. package/src/internal/Entity/type-kind.ts +75 -0
  320. package/src/internal/Entity/type-uri.ts +92 -0
  321. package/src/internal/Entity/util.ts +9 -9
  322. package/src/internal/Format/date.ts +0 -4
  323. package/src/internal/Format/format.test.ts +21 -0
  324. package/src/internal/Format/index.ts +2 -3
  325. package/src/internal/Format/object.ts +21 -4
  326. package/src/internal/Format/types.ts +1 -1
  327. package/src/internal/JsonSchema/annotations.ts +1 -1
  328. package/src/internal/JsonSchema/json-schema-type.ts +4 -4
  329. package/src/internal/JsonSchema/json-schema.test.ts +71 -145
  330. package/src/internal/JsonSchema/json-schema.ts +49 -35
  331. package/src/internal/Obj/atoms.ts +275 -0
  332. package/src/internal/Obj/clone.ts +9 -4
  333. package/src/internal/Obj/create-object.test.ts +12 -10
  334. package/src/internal/Obj/create-object.ts +68 -22
  335. package/src/internal/Obj/index.ts +1 -1
  336. package/src/internal/Obj/inspect.ts +5 -3
  337. package/src/internal/Obj/json-serializer.test.ts +101 -22
  338. package/src/internal/Obj/json-serializer.ts +92 -36
  339. package/src/internal/Obj/set-value.test.ts +22 -45
  340. package/src/internal/Obj/set-value.ts +12 -19
  341. package/src/internal/Obj/snapshot.ts +13 -4
  342. package/src/internal/Obj/typed-object.test.ts +9 -11
  343. package/src/internal/Obj/typed-object.ts +1 -1
  344. package/src/internal/Query/index.ts +5 -0
  345. package/src/internal/{Query.ts → Query/pretty.ts} +40 -12
  346. package/src/internal/Ref/atoms.ts +20 -0
  347. package/src/internal/Ref/index.ts +1 -0
  348. package/src/internal/Ref/ref-array.ts +3 -3
  349. package/src/internal/Ref/ref.test.ts +18 -27
  350. package/src/internal/Ref/ref.ts +224 -69
  351. package/src/internal/Ref/strong-deps.ts +107 -0
  352. package/src/internal/Ref/utils.ts +45 -0
  353. package/src/internal/Type/compose.test.ts +3 -1
  354. package/src/internal/Type/index.ts +1 -2
  355. package/src/internal/Type/manipulation.ts +0 -25
  356. package/src/internal/Type/type-schema.ts +60 -0
  357. package/src/internal/common/README.md +2 -2
  358. package/src/internal/common/api/meta.ts +19 -17
  359. package/src/internal/common/proxy/change-context.ts +1 -1
  360. package/src/internal/common/proxy/change.test.ts +91 -83
  361. package/src/internal/common/proxy/errors.ts +2 -2
  362. package/src/internal/common/proxy/handler.test.ts +1 -1
  363. package/src/internal/common/proxy/json-serializer.ts +27 -16
  364. package/src/internal/common/proxy/make-object.ts +44 -20
  365. package/src/internal/common/proxy/ownership.ts +2 -2
  366. package/src/internal/common/proxy/reactive-array.ts +1 -1
  367. package/src/internal/common/proxy/reactive.test.ts +54 -0
  368. package/src/internal/common/proxy/reactive.ts +11 -2
  369. package/src/internal/common/proxy/schema.test.ts +48 -86
  370. package/src/internal/common/proxy/typed-handler.test.ts +12 -11
  371. package/src/internal/common/proxy/typed-handler.ts +78 -16
  372. package/src/internal/common/proxy/typed-object.test.ts +16 -28
  373. package/src/internal/common/types/base.ts +4 -4
  374. package/src/internal/common/types/entity.ts +80 -1
  375. package/src/internal/common/types/index.ts +6 -1
  376. package/src/internal/common/types/meta.ts +62 -20
  377. package/src/internal/common/types/model-symbols.ts +24 -4
  378. package/src/internal/common/types/typename.ts +39 -3
  379. package/src/internal/common/types/well-known-types.ts +15 -0
  380. package/src/internal/index.ts +6 -4
  381. package/src/testing/api.test.ts +15 -9
  382. package/src/testing/index.ts +1 -0
  383. package/src/testing/registry.ts +44 -0
  384. package/src/testing/test-data.ts +159 -99
  385. package/src/testing/test-schema.ts +22 -58
  386. package/src/testing/util.ts +14 -11
  387. package/dist/lib/neutral/Extension.mjs +0 -18
  388. package/dist/lib/neutral/SchemaRegistry.mjs +0 -2
  389. package/dist/lib/neutral/chunk-2KHZ36F5.mjs +0 -361
  390. package/dist/lib/neutral/chunk-2KHZ36F5.mjs.map +0 -7
  391. package/dist/lib/neutral/chunk-4OIBYSXE.mjs.map +0 -7
  392. package/dist/lib/neutral/chunk-4P3IXBLT.mjs +0 -45
  393. package/dist/lib/neutral/chunk-4P3IXBLT.mjs.map +0 -7
  394. package/dist/lib/neutral/chunk-ANHVGJI4.mjs.map +0 -7
  395. package/dist/lib/neutral/chunk-B4BASU6W.mjs.map +0 -7
  396. package/dist/lib/neutral/chunk-BNCCGLJN.mjs +0 -7
  397. package/dist/lib/neutral/chunk-BNCCGLJN.mjs.map +0 -7
  398. package/dist/lib/neutral/chunk-BVOFLCVF.mjs.map +0 -7
  399. package/dist/lib/neutral/chunk-DQYLD2RB.mjs.map +0 -7
  400. package/dist/lib/neutral/chunk-EAMSSLZC.mjs.map +0 -7
  401. package/dist/lib/neutral/chunk-G3IQMKF7.mjs.map +0 -7
  402. package/dist/lib/neutral/chunk-GZQTCRJB.mjs.map +0 -7
  403. package/dist/lib/neutral/chunk-HBUZJNZO.mjs.map +0 -7
  404. package/dist/lib/neutral/chunk-JUXPFOEI.mjs.map +0 -7
  405. package/dist/lib/neutral/chunk-MOR5ERFM.mjs.map +0 -7
  406. package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +0 -7
  407. package/dist/lib/neutral/chunk-PHU22NLC.mjs +0 -136
  408. package/dist/lib/neutral/chunk-PHU22NLC.mjs.map +0 -7
  409. package/dist/lib/neutral/chunk-ROG4RXXL.mjs +0 -97
  410. package/dist/lib/neutral/chunk-ROG4RXXL.mjs.map +0 -7
  411. package/dist/lib/neutral/chunk-T6W2LEZU.mjs +0 -125
  412. package/dist/lib/neutral/chunk-T6W2LEZU.mjs.map +0 -7
  413. package/dist/lib/neutral/chunk-TBKX6JQO.mjs.map +0 -7
  414. package/dist/lib/neutral/chunk-TU3GW67D.mjs.map +0 -7
  415. package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +0 -7
  416. package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +0 -7
  417. package/dist/lib/neutral/chunk-V36VO5SS.mjs.map +0 -7
  418. package/dist/lib/neutral/chunk-WAK4DMFV.mjs.map +0 -7
  419. package/dist/lib/neutral/chunk-YAHXAYOW.mjs +0 -56
  420. package/dist/lib/neutral/chunk-YAHXAYOW.mjs.map +0 -7
  421. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs +0 -50
  422. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs.map +0 -7
  423. package/dist/types/src/Extension.d.ts +0 -80
  424. package/dist/types/src/Extension.d.ts.map +0 -1
  425. package/dist/types/src/Extension.test.d.ts +0 -2
  426. package/dist/types/src/Extension.test.d.ts.map +0 -1
  427. package/dist/types/src/SchemaRegistry.d.ts +0 -84
  428. package/dist/types/src/SchemaRegistry.d.ts.map +0 -1
  429. package/dist/types/src/internal/Obj/ids.d.ts +0 -6
  430. package/dist/types/src/internal/Obj/ids.d.ts.map +0 -1
  431. package/dist/types/src/internal/Query.d.ts.map +0 -1
  432. package/dist/types/src/internal/Type/echo-schema.d.ts +0 -181
  433. package/dist/types/src/internal/Type/echo-schema.d.ts.map +0 -1
  434. package/dist/types/src/internal/Type/persistent-schema.d.ts +0 -20
  435. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +0 -1
  436. package/src/Extension.test.ts +0 -235
  437. package/src/Extension.ts +0 -122
  438. package/src/SchemaRegistry.ts +0 -106
  439. package/src/internal/Obj/ids.ts +0 -12
  440. package/src/internal/Type/echo-schema.ts +0 -423
  441. package/src/internal/Type/persistent-schema.ts +0 -33
  442. /package/dist/lib/neutral/{Extension.mjs.map → Registry.mjs.map} +0 -0
  443. /package/dist/lib/neutral/{SchemaRegistry.mjs.map → Scope.mjs.map} +0 -0
  444. /package/dist/lib/neutral/{chunk-7RO7CPBZ.mjs.map → chunk-PLDMJJJC.mjs.map} +0 -0
@@ -0,0 +1,43 @@
1
+ import * as Atom from '@effect-atom/atom/Atom';
2
+ import type * as Entity from '../../Entity';
3
+ import type * as Obj from '../../Obj';
4
+ import type * as Ref from '../../Ref';
5
+ import type * as Relation from '../../Relation';
6
+ /**
7
+ * Create a read-only snapshot atom for a reactive object or ref.
8
+ * Updates automatically when the object is mutated.
9
+ * For refs, subscribes to target object changes after loading.
10
+ */
11
+ export declare const makeAtom: {
12
+ <T extends Obj.Unknown>(obj: T): Atom.Atom<Obj.Snapshot<T>>;
13
+ <T extends Obj.Unknown>(ref: Ref.Ref<T>): Atom.Atom<Obj.Snapshot<T> | undefined>;
14
+ };
15
+ /**
16
+ * Create a read-only atom for a specific property of a reactive object.
17
+ * Only fires updates when the property value actually changes.
18
+ */
19
+ export declare const makeProperty: <T extends Obj.Unknown, K extends keyof T>(obj: T, key: K) => Atom.Atom<T[K]>;
20
+ /**
21
+ * Like `makeAtom` but returns the live reactive object instead of a snapshot.
22
+ * Prefer `makeAtom` (snapshot) unless you need the live Obj for generic mutations.
23
+ */
24
+ export declare const makeWithReactive: {
25
+ <T extends Obj.Unknown>(obj: T): Atom.Atom<T>;
26
+ <T extends Obj.Unknown>(ref: Ref.Ref<T>): Atom.Atom<T | undefined>;
27
+ };
28
+ /**
29
+ * Create a read-only snapshot atom for any ECHO entity (obj or relation).
30
+ * Updates automatically when the entity is mutated.
31
+ */
32
+ export declare const makeEntity: <T extends Entity.Unknown>(entity: T) => Atom.Atom<Entity.Snapshot>;
33
+ /**
34
+ * Create a read-only snapshot atom for a reactive relation.
35
+ * Updates automatically when the relation is mutated.
36
+ */
37
+ export declare const makeRelation: <T extends Relation.Unknown>(relation: T) => Atom.Atom<Relation.Snapshot<T>>;
38
+ /**
39
+ * Create a read-only atom for the label of a reactive ECHO entity.
40
+ * Re-evaluates on entity mutation; only propagates when the label string changes.
41
+ */
42
+ export declare const makeLabelAtom: <T extends Entity.Unknown>(entity: T) => Atom.Atom<string | undefined>;
43
+ //# sourceMappingURL=atoms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atoms.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/atoms.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAC;AAQ/C,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAyKhD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE;IACrB,CAAC,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CASlF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAGrG,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE;IAC7B,CAAC,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CASpE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,CAAC,OAAO,UAAU,CAAC,KAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAGzF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,CAAC,OAAO,YAAY,CAAC,KAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAGpG,CAAC;AAuBF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,CAAC,OAAO,UAAU,CAAC,KAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAG/F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/clone.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AAKtC;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,YAAY,KAAG,CA8B1E,CAAC"}
1
+ {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/clone.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AAMtC;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC,YAAY,KAAG,CAkC1E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/common.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAMxC,MAAM,MAAM,kBAAkB,GAAG;IAE/B,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,MAAM,CAAC,EAAE,IAAI,CAAC;CACf,CAAC;AAEF;;GAEG;AAGH,KAAK,sBAAsB,CACzB,YAAY,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,EACzC,OAAO,SAAS,kBAAkB,IAChC,OAAO,CAAC,SAAS,CAAC,SAAS,OAAO,GAClC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GACjE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAE7D;;GAEG;AAGH,MAAM,MAAM,iBAAiB,CAC3B,YAAY,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,EACzC,OAAO,SAAS,kBAAkB,IAChC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,OAAO,GACjG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GACjF,EAAE,CAAC,CAAC;AAEV,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,SAAS,MAAM,EACf,YAAY,MAAM,CAAC,MAAM,CAAC,YAAY,KACrC,MAAM,CAAC,WAAW,CAAC,GAAG,CAuBxB,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/common.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAMxC,MAAM,MAAM,kBAAkB,GAAG;IAE/B,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,MAAM,CAAC,EAAE,IAAI,CAAC;CACf,CAAC;AAEF;;GAEG;AAGH,KAAK,sBAAsB,CACzB,YAAY,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,EACzC,OAAO,SAAS,kBAAkB,IAChC,OAAO,CAAC,SAAS,CAAC,SAAS,OAAO,GAClC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GACjE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAE7D;;GAEG;AAGH,MAAM,MAAM,iBAAiB,CAC3B,YAAY,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,EACzC,OAAO,SAAS,kBAAkB,IAChC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,OAAO,GACjG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GACjF,EAAE,CAAC,CAAC;AAEV,eAAO,MAAM,oBAAoB,aACrB,MAAM,WACP,MAAM,cACH,MAAM,CAAC,MAAM,CAAC,YAAY,KACrC,MAAM,CAAC,WAAW,CAAC,GAAG,CAuBxB,CAAC"}
@@ -1,10 +1,14 @@
1
- import type * as Schema from 'effect/Schema';
2
- import { EntityKind, KindId } from '../common/types';
3
- export type CreateObjectProps<T> = T extends {
1
+ import type * as Type from '../../Type';
2
+ import { KindId, SchemaKindId, StaticTypeSchemaSlot } from '../common/types';
3
+ import { type EntityMeta } from '../common/types/meta';
4
+ import { MetaId } from '../common/types/model-symbols';
5
+ export type CreateObjectProps<T> = (T extends {
4
6
  id: string;
5
- } ? Omit<T, 'id' | KindId> & {
7
+ } ? Omit<T, 'id' | KindId | SchemaKindId | StaticTypeSchemaSlot> & {
6
8
  id?: string;
7
- } : T;
9
+ } : Omit<T, KindId | SchemaKindId | StaticTypeSchemaSlot>) & {
10
+ readonly [MetaId]?: Partial<EntityMeta>;
11
+ };
8
12
  /**
9
13
  * Creates a new object instance from a schema and data, without signal reactivity.
10
14
  * This static version creates plain JavaScript objects that are not reactive/observable.
@@ -21,10 +25,7 @@ export type CreateObjectProps<T> = T extends {
21
25
  * const Contact = Schema.Struct({
22
26
  * name: Schema.String,
23
27
  * email: Schema.String,
24
- * }).pipe(Type.object({
25
- * typename: 'com.example.type.person',
26
- * version: '0.1.0',
27
- * }))
28
+ * }).pipe(Type.makeObject(DXN.make('com.example.type.person', '0.1.0')))
28
29
  *
29
30
  * const contact = createObject(Contact, {
30
31
  * name: "John",
@@ -32,8 +33,7 @@ export type CreateObjectProps<T> = T extends {
32
33
  * })
33
34
  * ```
34
35
  */
35
- export declare const createObject: <S extends Schema.Schema.AnyNoContext>(schema: S, props: CreateObjectProps<Schema.Schema.Type<S>>) => CreateObjectProps<Schema.Schema.Type<S>> & {
36
- id: string;
37
- [KindId]: EntityKind;
36
+ export declare const createObject: {
37
+ <T extends Type.AnyEntity>(input: T, props: NoInfer<CreateObjectProps<Type.InstanceType<T>>>): Type.InstanceType<T>;
38
38
  };
39
39
  //# sourceMappingURL=create-object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-object.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/create-object.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAQ7C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAYxE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,CAAC;AAE3G;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,EAC/D,QAAQ,CAAC,EACT,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAC9C,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAoC/E,CAAC"}
1
+ {"version":3,"file":"create-object.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/create-object.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,IAAI,MAAM,YAAY,CAAC;AAGxC,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,oBAAoB,EAIrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAiBvD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GACxD,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,YAAY,GAAG,oBAAoB,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9E,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,oBAAoB,CAAC,CAAC,GAAG;IAC3D,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACzC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,eAAO,MAAM,YAAY,EAAE;IACzB,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAqErH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deleted.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/deleted.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,aAAa,KAAG,OAQ9C,CAAC"}
1
+ {"version":3,"file":"deleted.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/deleted.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;GAEG;AACH,eAAO,MAAM,SAAS,QAAS,aAAa,KAAG,OAQ9C,CAAC"}
@@ -1,11 +1,11 @@
1
1
  export * from './common';
2
2
  export * from './create-object';
3
3
  export * from './deleted';
4
- export * from './ids';
5
4
  export * from './json-serializer';
6
5
  export * from './schema-validator';
7
6
  export * from './set-value';
8
7
  export * from './snapshot';
9
8
  export * from './typed-object';
9
+ export * from './atoms';
10
10
  export * from './clone';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
- import { type EncodedReference, ObjectStructure } from '@dxos/echo-protocol';
2
- import { DXN } from '@dxos/keys';
1
+ import { type EncodedReference, EntityStructure } from '@dxos/echo-protocol';
2
+ import { EntityId, URI } from '@dxos/keys';
3
3
  import type * as Database from '../../Database';
4
4
  import type * as Obj from '../../Obj';
5
5
  import { attachTypedJsonSerializer } from '../common/proxy';
@@ -27,19 +27,19 @@ export declare const objectToJSON: <T extends AnyEntity>(obj: T) => SerializedOb
27
27
  *
28
28
  * @param jsonData - JSON representation of the object.
29
29
  * @param options.refResolver - Resolver for references.
30
- * @param options.dxn - Override object DXN.
30
+ * @param options.uri - Override object URI.
31
31
  * @param options.database - Database to associate with the object.
32
32
  */
33
- export declare const objectFromJSON: (jsonData: unknown, { refResolver, dxn, database, parent, }?: {
33
+ export declare const objectFromJSON: (jsonData: unknown, { refResolver, uri, database, parent, }?: {
34
34
  refResolver?: RefResolver;
35
- dxn?: DXN;
35
+ uri?: URI.URI;
36
36
  database?: Database.Database;
37
37
  parent?: Obj.Unknown;
38
38
  }) => Promise<AnyEntity>;
39
39
  export declare const setRefResolverOnData: (obj: AnyEntity, refResolver: RefResolver) => void;
40
40
  /**
41
- * Convert ObjectStructure to JSON data for indexing.
42
- * Different from {@link objectToJSON} as it takes the internal {@link ObjectStructure} representation directly
41
+ * Convert EntityStructure to JSON data for indexing.
42
+ * Different from {@link objectToJSON} as it takes the internal {@link EntityStructure} representation directly
43
43
  */
44
- export declare const objectStructureToJson: (objectId: string, structure: ObjectStructure) => Obj.JSON;
44
+ export declare const objectStructureToJson: (objectId: EntityId, structure: EntityStructure) => Obj.JSON;
45
45
  //# sourceMappingURL=json-serializer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-serializer.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/json-serializer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,gBAAgB,EAAE,eAAe,EAAsB,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EAAE,GAAG,EAAY,MAAM,YAAY,CAAC;AAG3C,OAAO,KAAK,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,yBAAyB,EAA6C,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAIL,KAAK,SAAS,EAOf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAML,KAAK,UAAU,EAOhB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,GAAG,EAAE,KAAK,WAAW,EAA2C,MAAM,QAAQ,CAAC;AAGxF,OAAO,EAAE,yBAAyB,EAAE,CAAC;AAErC,KAAK,cAAc,CAAC,CAAC,IACnB,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GACd,gBAAgB,GAChB,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrC,GACD,CAAC,CAAC;AAEV,KAAK,gBAAgB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI;KAC/C,CAAC,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrC,GAAG,UAAU,CAAC;AAEf;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,SAAS,EAAE,KAAK,CAAC,KAAG,gBAAgB,CAAC,CAAC,CAI5E,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,OAAO,EACjB,0CAKG;IAAE,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CAAO,KACnG,OAAO,CAAC,SAAS,CA+EnB,CAAC;AA4BF,eAAO,MAAM,oBAAoB,GAAI,KAAK,SAAS,EAAE,aAAa,WAAW,SAU5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,EAAE,WAAW,eAAe,KAAG,GAAG,CAAC,IAUxF,CAAC"}
1
+ {"version":3,"file":"json-serializer.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/json-serializer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,gBAAgB,EAAE,eAAe,EAAsB,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EAAO,QAAQ,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,KAAK,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,yBAAyB,EAA6C,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAGL,KAAK,SAAS,EAMf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAOL,KAAK,UAAU,EAOhB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,GAAG,EAAE,KAAK,WAAW,EAA2C,MAAM,QAAQ,CAAC;AAGxF,OAAO,EAAE,yBAAyB,EAAE,CAAC;AAErC,KAAK,cAAc,CAAC,CAAC,IACnB,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GACd,gBAAgB,GAChB,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrC,GACD,CAAC,CAAC;AAEV,KAAK,gBAAgB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI;KAC/C,CAAC,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrC,GAAG,UAAU,CAAC;AAEf;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,SAAS,OAAO,CAAC,KAAG,gBAAgB,CAAC,CAAC,CAI5E,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,aACf,OAAO,4CAMd;IAAE,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CAAE,KAClG,OAAO,CAAC,SAAS,CAiGnB,CAAC;AA6DF,eAAO,MAAM,oBAAoB,QAAS,SAAS,eAAe,WAAW,SAU5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aAAc,QAAQ,aAAa,eAAe,KAAG,GAAG,CAAC,IAc1F,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type Mutable } from '../common/proxy';
2
2
  /**
3
3
  * Set a deeply nested property on an object.
4
- * Must be called within an Obj.change or Relation.change callback.
4
+ * Must be called within an Obj.update or Relation.update callback.
5
5
  */
6
6
  export declare const setValue: (obj: Mutable<any>, path: readonly (string | number)[], value: any) => void;
7
7
  //# sourceMappingURL=set-value.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-value.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/set-value.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG/C;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,KAAG,IAqC5F,CAAC"}
1
+ {"version":3,"file":"set-value.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/set-value.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG/C;;;GAGG;AACH,eAAO,MAAM,QAAQ,QAAS,OAAO,CAAC,GAAG,CAAC,QAAQ,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,SAAS,GAAG,KAAG,IAqC5F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/snapshot.ts"],"names":[],"mappings":"AAoDA;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,KAAG,CAgDtD,CAAC"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Obj/snapshot.ts"],"names":[],"mappings":"AAsDA;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,OAAO,CAAC,KAAG,CAuDtD,CAAC"}
@@ -6,7 +6,7 @@ import { type AnyEntity } from '../common/types';
6
6
  * Implements effect schema to define object properties.
7
7
  * Has a typename and version.
8
8
  *
9
- * In contrast to {@link EchoSchema} this definition is not recorded in the database.
9
+ * In contrast to a stored `Type.Type` entity, this definition is not recorded in the database.
10
10
  *
11
11
  * @deprecated Use `Type.AnyObj` from `@dxos/echo` instead.
12
12
  */
@@ -0,0 +1,2 @@
1
+ export * from './pretty';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Query/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC"}
@@ -7,4 +7,4 @@ export declare const prettyFilter: (filter: QueryAST.Filter) => string;
7
7
  * Returns a human-readable string representation of a Query AST.
8
8
  */
9
9
  export declare const prettyQuery: (query: QueryAST.Query) => string;
10
- //# sourceMappingURL=Query.d.ts.map
10
+ //# sourceMappingURL=pretty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretty.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Query/pretty.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,YAAY,WAAY,QAAQ,CAAC,MAAM,KAAG,MAgEtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,UAAW,QAAQ,CAAC,KAAK,KAAG,MAmFnD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as Atom from '@effect-atom/atom/Atom';
2
+ import type { Ref } from './ref';
3
+ /**
4
+ * Atom family for ECHO refs.
5
+ * Uses ref reference as key — same ref returns same atom.
6
+ * This atom only updates once when the ref loads — it does not subscribe to target object changes.
7
+ * Use `Obj.atom(ref)` if you need reactive snapshots of ECHO objects via a ref.
8
+ */
9
+ export declare const refSimpleFamily: <T>(arg: Ref<T>) => Atom.Atom<T | undefined>;
10
+ //# sourceMappingURL=atoms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atoms.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Ref/atoms.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAC;AAE/C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAGjC;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAgB,CAAC,0CAI3C,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './ref';
2
2
  export * from './ref-array';
3
+ export * from './strong-deps';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Ref/index.ts"],"names":[],"mappings":"AAIA,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Ref/index.ts"],"names":[],"mappings":"AAIA,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ObjectId } from '@dxos/keys';
1
+ import { type EntityId } from '@dxos/keys';
2
2
  import { type AnyEntity } from '../common/types';
3
3
  import { Ref } from './ref';
4
4
  /**
@@ -16,6 +16,6 @@ export declare const RefArray: Readonly<{
16
16
  /**
17
17
  * Removes the ref with the given id.
18
18
  */
19
- removeById: (refs: Ref<AnyEntity>[], id: ObjectId) => void;
19
+ removeById: (refs: Ref<AnyEntity>[], id: EntityId) => void;
20
20
  }>;
21
21
  //# sourceMappingURL=ref-array.d.ts.map
@@ -1,13 +1,16 @@
1
+ import type * as Atom from '@effect-atom/atom/Atom';
1
2
  import * as Equal from 'effect/Equal';
2
3
  import * as Hash from 'effect/Hash';
3
4
  import * as Pipeable from 'effect/Pipeable';
4
5
  import * as Schema from 'effect/Schema';
5
6
  import * as SchemaAST from 'effect/SchemaAST';
6
7
  import type * as Types from 'effect/Types';
8
+ import { Event } from '@dxos/async';
7
9
  import { type CustomInspectFunction, inspectCustom } from '@dxos/debug';
8
10
  import { EncodedReference } from '@dxos/echo-protocol';
9
- import { DXN, ObjectId } from '@dxos/keys';
10
- import type { AnyEntity, AnyProperties } from '../common/types';
11
+ import { EntityId, type URI } from '@dxos/keys';
12
+ import type * as Type from '../../Type';
13
+ import { type AnyEntity, type AnyProperties, type UnknownTypeSchema } from '../common/types';
11
14
  import { type JsonSchemaType } from '../JsonSchema';
12
15
  /**
13
16
  * The `$id` and `$ref` fields for an ECHO reference schema.
@@ -41,7 +44,7 @@ export interface RefSchema<T extends AnyEntity> extends Schema.SchemaClass<Ref<T
41
44
  * Type of the `Ref` function and extra methods attached to it.
42
45
  */
43
46
  export interface RefFn {
44
- <S extends Schema.Schema.Any>(schema: S): RefSchema<Schema.Schema.Type<S>>;
47
+ <S extends Type.AnyEntity | UnknownTypeSchema<any, any> = Type.AnyEntity>(schema: S): RefSchema<S extends Type.AnyType ? Type.AnyEntity : S extends Type.AnyObj | Type.AnyRelation ? Type.InstanceType<S> : S extends UnknownTypeSchema<infer A, any> ? A : never>;
45
48
  /**
46
49
  * @returns True if the object is a reference.
47
50
  */
@@ -49,7 +52,7 @@ export interface RefFn {
49
52
  /**
50
53
  * @returns True if the reference points to the given object id.
51
54
  */
52
- hasObjectId: (id: ObjectId) => (ref: Ref<any>) => boolean;
55
+ hasEntityId: (id: EntityId) => (ref: Ref<any>) => boolean;
53
56
  /**
54
57
  * @returns True if the schema is a reference schema.
55
58
  */
@@ -63,9 +66,10 @@ export interface RefFn {
63
66
  */
64
67
  make: <T extends AnyEntity>(object: T) => Ref<T>;
65
68
  /**
66
- * Constructs a reference that points to the object specified by the provided DXN.
69
+ * Constructs a reference that points to the object specified by the provided URI
70
+ * (either an `echo:` EID for an object reference or a `dxn:` DXN for a type reference).
67
71
  */
68
- fromDXN: (dxn: DXN) => Ref<any>;
72
+ fromURI: (uri: URI.URI) => Ref<any>;
69
73
  }
70
74
  /**
71
75
  * Schema builder for references.
@@ -77,9 +81,9 @@ export declare const Ref: RefFn;
77
81
  */
78
82
  export interface Ref<T> extends Pipeable.Pipeable {
79
83
  /**
80
- * Target object DXN.
84
+ * Target URI (either an `echo:` EID for an object reference or a `dxn:` DXN for a type reference).
81
85
  */
82
- get dxn(): DXN;
86
+ get uri(): URI.URI;
83
87
  /**
84
88
  * Returns true if the reference has a target available (inlined or resolver set).
85
89
  */
@@ -100,6 +104,15 @@ export interface Ref<T> extends Pipeable.Pipeable {
100
104
  * @returns Promise that will resolves with the target object or undefined if the object is not loaded locally.
101
105
  */
102
106
  tryLoad(): Promise<T | undefined>;
107
+ /**
108
+ * Subscribe to the ref's resolution event.
109
+ * The callback fires when the target object becomes available in the working set
110
+ * (e.g. when its document is loaded after sibling-client mutation).
111
+ * Note: the resolver only schedules a notification when the target is requested
112
+ * via {@link target} while it is not yet loaded.
113
+ * @returns Function that unsubscribes the callback.
114
+ */
115
+ onResolved(callback: () => void): () => void;
103
116
  /**
104
117
  * Do not inline the target object in the reference.
105
118
  * Makes .target unavailable unless the reference is connected to a database context.
@@ -112,6 +125,12 @@ export interface Ref<T> extends Pipeable.Pipeable {
112
125
  * Clones the reference object.
113
126
  */
114
127
  noInline(): Ref<T>;
128
+ /**
129
+ * Read-only atom for the ref target.
130
+ * Resolves once when the target loads; does NOT subscribe to target object mutations.
131
+ * Use `Obj.atom(ref)` if you need reactive snapshots that update on every object mutation.
132
+ */
133
+ get atom(): Atom.Atom<T | undefined>;
115
134
  /**
116
135
  * Serializes the reference to a JSON object.
117
136
  * The serialization format is compatible with the IPLD-style encoded references.
@@ -142,28 +161,95 @@ export type JsonSchemaReferenceInfo = {
142
161
  };
143
162
  schemaVersion?: string;
144
163
  };
164
+ /**
165
+ * Load-source ceiling for a resolution request. Cheaper tiers are always probed first; the
166
+ * ceiling caps how far a request is allowed to reach:
167
+ * - `working-set`: synchronous, in-memory only. A miss settles `unavailable` immediately.
168
+ * - `disk`: probe the working set, then local storage; never the network.
169
+ * - `network`: probe the working set, disk, then fetch from peers.
170
+ *
171
+ * `unavailable` is always relative to the requested ceiling (disk-unavailable ≠ network-unavailable).
172
+ */
173
+ export type RefSource = 'working-set' | 'disk' | 'network';
174
+ /**
175
+ * A stateful, closure-aware handle to an in-flight (or settled) reference resolution.
176
+ *
177
+ * `ready` means the entity is FULLY USABLE: its own body and its strong-dependency closure are all
178
+ * materialized. The body-vs-closure split is internal; `requesting` transparently covers "a
179
+ * dependency is still loading".
180
+ */
181
+ export interface RefResolverRequest {
182
+ /**
183
+ * `pending` is a one-way entry state (never re-entered). `requesting` means the body and/or
184
+ * closure is still loading. `ready` means fully usable. `unavailable` means unreachable at the
185
+ * requested ceiling.
186
+ */
187
+ readonly state: 'pending' | 'requesting' | 'ready' | 'unavailable';
188
+ /**
189
+ * Fires (deferred to a microtask) whenever {@link state} changes.
190
+ */
191
+ readonly stateChanged: Event<void>;
192
+ /**
193
+ * Synchronous snapshot of the resolved entity; defined iff `state === 'ready'`.
194
+ */
195
+ getResult(): AnyProperties | undefined;
196
+ /**
197
+ * Settles when `state ∈ {ready, unavailable}`.
198
+ */
199
+ wait(): Promise<AnyProperties | undefined>;
200
+ /**
201
+ * Decrements the refcount on the shared load op(s); cancels the underlying IO at zero.
202
+ */
203
+ abort(): void;
204
+ }
145
205
  export interface RefResolver {
206
+ /**
207
+ * Resolve a reference, returning a stateful handle. `source` is a required ceiling; cheaper
208
+ * tiers are always probed first.
209
+ */
210
+ resolve(uri: URI.URI, options: {
211
+ source: RefSource;
212
+ }): RefResolverRequest;
146
213
  /**
147
214
  * Resolve ref synchronously from the objects in the working set.
148
215
  *
149
- * @param dxn
216
+ * @param uri
150
217
  * @param load If true the resolver should attempt to load the object from disk.
151
218
  * @param onLoad Callback to call when the object is loaded.
219
+ * @deprecated Use {@link resolve} with `{ source: 'working-set' }`. Removed in Task 11.
152
220
  */
153
- resolveSync(dxn: DXN, load: boolean, onLoad?: () => void): AnyProperties | undefined;
221
+ resolveSync(uri: URI.URI, load: boolean, onLoad?: () => void): AnyProperties | undefined;
154
222
  /**
155
223
  * Resolver ref asynchronously.
224
+ * @deprecated Use {@link resolve} with `{ source: 'network' }`. Removed in Task 11.
225
+ */
226
+ resolveLegacy(uri: URI.URI): Promise<AnyProperties | undefined>;
227
+ /**
228
+ * @deprecated Use {@link resolve} + `Type.getSchema`. Removed in Task 11.
156
229
  */
157
- resolve(dxn: DXN): Promise<AnyProperties | undefined>;
158
- resolveSchema(dxn: DXN): Promise<Schema.Schema.AnyNoContext | undefined>;
230
+ resolveSchema(uri: URI.URI): Promise<Schema.Schema.AnyNoContext | undefined>;
231
+ /**
232
+ * Resolve the source `Type.AnyEntity` entity for a type URI. Used by
233
+ * deserialization paths (`Obj.fromJSON`) to set the back-reference accessed
234
+ * via `Obj.getType` / `Entity.getType`. Optional — resolvers that only
235
+ * carry raw schemas may leave this unimplemented; the deserializer falls
236
+ * back to leaving the type entity unset.
237
+ * @deprecated Use {@link resolve}. Removed in Task 11.
238
+ */
239
+ resolveType?(uri: URI.URI): Promise<unknown | undefined>;
159
240
  }
241
+ /**
242
+ * A settled {@link RefResolverRequest} with a fixed `state` and `result`, used by resolvers
243
+ * whose backends are fully synchronous (e.g. {@link StaticRefResolver}).
244
+ */
245
+ export declare const makeSettledRequest: (state: RefResolverRequest['state'], result: AnyProperties | undefined) => RefResolverRequest;
160
246
  export declare class RefImpl<T> implements Ref<T> {
161
247
  #private;
162
- constructor(dxn: DXN, target?: T);
248
+ constructor(uri: URI.URI, target?: T);
163
249
  /**
164
250
  * @inheritdoc
165
251
  */
166
- get dxn(): DXN;
252
+ get uri(): URI.URI;
167
253
  /**
168
254
  * @inheritdoc
169
255
  */
@@ -180,6 +266,10 @@ export declare class RefImpl<T> implements Ref<T> {
180
266
  * @inheritdoc
181
267
  */
182
268
  tryLoad(): Promise<T | undefined>;
269
+ /**
270
+ * @inheritdoc
271
+ */
272
+ onResolved(callback: () => void): () => void;
183
273
  /**
184
274
  * Do not inline the target object in the reference.
185
275
  * Makes .target unavailable unless the reference is connected to a database context.
@@ -208,6 +298,7 @@ export declare class RefImpl<T> implements Ref<T> {
208
298
  [Hash.symbol](): number;
209
299
  /** Effect Equal trait. See {@link Hash.symbol} for rationale. */
210
300
  [Equal.symbol](that: Equal.Equal): boolean;
301
+ get atom(): Atom.Atom<T | undefined>;
211
302
  pipe(): unknown;
212
303
  }
213
304
  /**
@@ -220,12 +311,16 @@ export declare const setRefResolver: (ref: Ref<any>, resolver: RefResolver) => v
220
311
  export declare const getRefSavedTarget: (ref: Ref<any>) => AnyProperties | undefined;
221
312
  export declare const refFromEncodedReference: (encodedReference: EncodedReference, resolver?: RefResolver) => Ref<any>;
222
313
  export declare class StaticRefResolver implements RefResolver {
314
+ #private;
223
315
  objects: Map<string, AnyProperties>;
224
- schemas: Map<DXN.String, Schema.Schema.AnyNoContext>;
316
+ schemas: Map<URI.URI, Schema.Schema.AnyNoContext>;
225
317
  addObject(obj: AnyProperties): this;
226
- addSchema(schema: Schema.Schema.AnyNoContext): this;
227
- resolveSync(dxn: DXN, _load: boolean, _onLoad?: () => void): AnyProperties | undefined;
228
- resolve(dxn: DXN): Promise<AnyProperties | undefined>;
229
- resolveSchema(dxn: DXN): Promise<Schema.Schema.AnyNoContext | undefined>;
318
+ addSchema(input: Type.AnyEntity): this;
319
+ resolve(uri: URI.URI, _options: {
320
+ source: RefSource;
321
+ }): RefResolverRequest;
322
+ resolveSync(uri: URI.URI, _load: boolean, _onLoad?: () => void): AnyProperties | undefined;
323
+ resolveLegacy(uri: URI.URI): Promise<AnyProperties | undefined>;
324
+ resolveSchema(uri: URI.URI): Promise<Schema.Schema.AnyNoContext | undefined>;
230
325
  }
231
326
  //# sourceMappingURL=ref.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Ref/ref.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Ref/ref.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,IAAI,MAAM,wBAAwB,CAAC;AAEpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,qBAAqB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAY,QAAQ,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,KAAK,KAAK,IAAI,MAAM,YAAY,CAAC;AAOxC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAuB,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD;;GAEG;AACH,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,eAAO,MAAM,kBAAkB,aAAc,cAAc,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAOpF,CAAC;AAEF,eAAO,MAAM,qBAAqB,aAAc,MAAM,KAAG,KAAK,CAAC,WAAW,CAAC,cAAc,CASxF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,eAAe,QAAS,SAAS,CAAC,GAAG,KAAG,WAAW,GAAG,SAQlE,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,OAAO,MAAqD,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC;CAAG;AAEvG;;GAEG;AACH,MAAM,WAAW,KAAK;IAWpB,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EACtE,MAAM,EAAE,CAAC,GACR,SAAS,CACV,CAAC,SAAS,IAAI,CAAC,OAAO,GAClB,IAAI,CAAC,SAAS,GACd,CAAC,SAAS,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,GACtC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GACpB,CAAC,SAAS,iBAAiB,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GACvC,CAAC,GACD,KAAK,CACd,CAAC;IAEF;;OAEG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAEzC;;OAEG;IACH,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC;IAE1D;;OAEG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;IAE3E;;OAEG;IACH,cAAc,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,OAAO,CAAC;IAEhD;;OAEG;IAEH,IAAI,EAAE,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAEjD;;;OAGG;IACH,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,KAWjB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,QAAQ;IAC/C;;OAEG;IACH,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;IAEnB;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAAC;IAE3B;;;;OAIG;IACH,IAAI,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAE5B;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnB;;OAEG;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAElC;;;;;;;OAOG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAE7C;;;;;;;;;;OAUG;IACH,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IAEnB;;;;OAIG;IACH,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAErC;;;;;;;;;OASG;IACH,MAAM,IAAI,gBAAgB,CAAC;IAE3B,CAAC,SAAS,CAAC,EAAE;QACX,EAAE,EAAE,CAAC,CAAC;KACP,CAAC;CACH;AAED,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC,CAAC;IAC5B;;OAEG;IACH,KAAY,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;CAC5D;AAqCD;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAwFF;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC;IAEnE;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnC;;OAEG;IACH,SAAS,IAAI,aAAa,GAAG,SAAS,CAAC;IAEvC;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAE3C;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GAAG,kBAAkB,CAAC;IAE1E;;;;;;;OAOG;IACH,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,aAAa,GAAG,SAAS,CAAC;IAEzF;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAEhE;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IAE7E;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;CAC1D;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,UACtB,kBAAkB,CAAC,OAAO,CAAC,UAC1B,aAAa,GAAG,SAAS,KAChC,kBAMD,CAAC;AAEH,qBAAa,OAAO,CAAC,CAAC,CAAE,YAAW,GAAG,CAAC,CAAC,CAAC;;IAkBvC,YAAY,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,EAGnC;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAEjB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,CAAC,GAAG,SAAS,CAO1B;IAED;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAUvB;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAMtC;IAED;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAE3C;IAED;;;;OAIG;IACH,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAIrB;IAED,MAAM,IAAI,gBAAgB,CAKzB;IAED;;;;;OAKG;IACH,MAAM,IAAI,gBAAgB,CAEzB;IAED,QAAQ,IAAI,MAAM,CAMjB;IAED,CAAC,aAAa,CAAC,EAAE,qBAAqB,CAEpC;IAEF,CAAC,SAAS,CAAC;;MAAe;IAE1B;;;;;OAKG;IACH,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAEtB;IAED,iEAAiE;IACjE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,OAAO,CAEzC;IAED,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAEnC;IAkBD,IAAI,YAGH;CACF;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,QAAS,GAAG,CAAC,GAAG,CAAC,YAAY,WAAW,SAGlE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAS,GAAG,CAAC,GAAG,CAAC,KAAG,aAAa,GAAG,SAGjE,CAAC;AAOF,eAAO,MAAM,uBAAuB,qBAAsB,gBAAgB,aAAa,WAAW,KAAG,GAAG,CAAC,GAAG,CAU3G,CAAC;AAEF,qBAAa,iBAAkB,YAAW,WAAW;;IAC5C,OAAO,6BAAsC;IAC7C,OAAO,2CAAkD;IAEhE,SAAS,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAGlC;IAED,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAOrC;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GAAG,kBAAkB,CAGzE;IAED,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,aAAa,GAAG,SAAS,CAEzF;IAEK,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAEpE;IAEK,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,CAEjF;CAUF"}
@@ -0,0 +1,35 @@
1
+ import { type SpaceId, type URI } from '@dxos/keys';
2
+ import { EntityKind } from '../common/types/entity';
3
+ /**
4
+ * Normalized view of the references that make up an entity's strong-dependency set, store-agnostic
5
+ * so it can be filled from an {@link ObjectCore} (db) or a decoded entity (queue item / snapshot).
6
+ */
7
+ export interface StrongDepRefs {
8
+ /** Entity kind — relations additionally depend on their source/target. */
9
+ kind: EntityKind;
10
+ /** Type reference URI (`echo:` for a persisted stored schema, `dxn:` for a static/registry type). */
11
+ type?: URI.URI;
12
+ /** Relation source reference URI. */
13
+ source?: URI.URI;
14
+ /** Relation target reference URI. */
15
+ target?: URI.URI;
16
+ /** Parent reference URI. */
17
+ parent?: URI.URI;
18
+ }
19
+ /**
20
+ * Direct strong-dependency URIs of an entity: the schema (only when stored as an object), the
21
+ * relation source/target, and the parent. Returns URIs (cross-space `echo:` EIDs and queue-item
22
+ * EIDs included); a persisted schema is an `echo:` URI, a static/registry type is a `dxn:` URI.
23
+ *
24
+ * A static/registry type (`dxn:`) is intentionally NOT a strong dep: it is always synchronously
25
+ * available through the registry, so gating on it would needlessly delay surfacing. Only a
26
+ * persisted (db-backed) schema, addressed by an `echo:` URI, must load before its instances.
27
+ */
28
+ export declare const getStrongDependencyUris: (refs: StrongDepRefs, owningSpaceId?: SpaceId) => URI.URI[];
29
+ /**
30
+ * Direct strong-dependency URIs of a live (decoded) entity — a queue item, cross-space proxy, or
31
+ * snapshot. Reads the reference URIs off the entity's hidden model symbols. ECHO db cores compute
32
+ * the same set from their raw encoded references via {@link getStrongDependencyUris}.
33
+ */
34
+ export declare const getStrongDependencies: (entity: unknown) => URI.URI[];
35
+ //# sourceMappingURL=strong-deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strong-deps.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Ref/strong-deps.ts"],"names":[],"mappings":"AAIA,OAAO,EAAO,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKpD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,IAAI,EAAE,UAAU,CAAC;IACjB,qGAAqG;IACrG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;IACf,qCAAqC;IACrC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;IACjB,qCAAqC;IACrC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;IACjB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,SAAU,aAAa,kBAAkB,OAAO,KAAG,GAAG,CAAC,GAAG,EAqB7F,CAAC;AAmBF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,WAAY,OAAO,KAAG,GAAG,CAAC,GAAG,EAwB9D,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type * as Atom from '@effect-atom/atom/Atom';
2
+ import type { Ref } from './ref';
3
+ /**
4
+ * Internal helper for loading ref targets in atoms.
5
+ * Handles the common pattern of checking for loaded target and triggering async load.
6
+ */
7
+ export declare const loadRefTarget: <T, R>(ref: Ref<T>, get: Atom.Context, onTargetAvailable: (target: T) => R) => R | undefined;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Ref/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,IAAI,MAAM,wBAAwB,CAAC;AAEpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,OAC3B,GAAG,CAAC,CAAC,CAAC,OACN,IAAI,CAAC,OAAO,qBACE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,KAClC,CAAC,GAAG,SA4BN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Type/compose.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;GAEG;AAGH,eAAO,MAAM,aAAa,GACxB,QAAQ,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EACrC,QAAQ,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,KACpC,KAAK,CAAC,OAAO,CAAC,cAAc,CAsB9B,CAAC"}
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Type/compose.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;GAEG;AAGH,eAAO,MAAM,aAAa,WAChB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAC7B,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,KACpC,KAAK,CAAC,OAAO,CAAC,cAAc,CAsB9B,CAAC"}
@@ -1,4 +1,3 @@
1
- export * from './echo-schema';
2
1
  export * from './manipulation';
3
- export * from './persistent-schema';
2
+ export * from './type-schema';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Type/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/Type/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
@@ -6,5 +6,4 @@ export declare const updateFieldNameInSchema: (schema: Schema.Schema.AnyNoContex
6
6
  before: PropertyKey;
7
7
  after: PropertyKey;
8
8
  }) => Schema.Schema.AnyNoContext;
9
- export declare const setTypenameInSchema: (schema: Schema.Schema.AnyNoContext, typename: string) => Schema.Schema.AnyNoContext;
10
9
  //# sourceMappingURL=manipulation.d.ts.map