@dxos/echo 0.8.4-main.66e292d → 0.8.4-main.69d29f4

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 (459) hide show
  1. package/README.md +1 -2
  2. package/dist/lib/browser/Annotation.mjs +33 -0
  3. package/dist/lib/browser/Annotation.mjs.map +7 -0
  4. package/dist/lib/browser/Database.mjs +18 -0
  5. package/dist/lib/browser/Database.mjs.map +7 -0
  6. package/dist/lib/browser/Entity.mjs +52 -0
  7. package/dist/lib/browser/Entity.mjs.map +7 -0
  8. package/dist/lib/browser/Err.mjs +11 -0
  9. package/dist/lib/browser/Err.mjs.map +7 -0
  10. package/dist/lib/browser/Filter.mjs +62 -0
  11. package/dist/lib/browser/Filter.mjs.map +7 -0
  12. package/dist/lib/browser/Format.mjs +67 -0
  13. package/dist/lib/browser/Format.mjs.map +7 -0
  14. package/dist/lib/browser/JsonSchema.mjs +20 -0
  15. package/dist/lib/browser/JsonSchema.mjs.map +7 -0
  16. package/dist/lib/browser/Key.mjs +13 -0
  17. package/dist/lib/browser/Key.mjs.map +7 -0
  18. package/dist/lib/browser/Obj.mjs +91 -0
  19. package/dist/lib/browser/Obj.mjs.map +7 -0
  20. package/dist/lib/browser/Order.mjs +13 -0
  21. package/dist/lib/browser/Order.mjs.map +7 -0
  22. package/dist/lib/browser/Query.mjs +27 -0
  23. package/dist/lib/browser/Query.mjs.map +7 -0
  24. package/dist/lib/browser/QueryResult.mjs +3 -0
  25. package/dist/lib/browser/QueryResult.mjs.map +7 -0
  26. package/dist/lib/browser/Ref.mjs +23 -0
  27. package/dist/lib/browser/Ref.mjs.map +7 -0
  28. package/dist/lib/browser/Relation.mjs +85 -0
  29. package/dist/lib/browser/Relation.mjs.map +7 -0
  30. package/dist/lib/browser/SchemaRegistry.mjs +3 -0
  31. package/dist/lib/browser/SchemaRegistry.mjs.map +7 -0
  32. package/dist/lib/browser/Tag.mjs +26 -0
  33. package/dist/lib/browser/Tag.mjs.map +7 -0
  34. package/dist/lib/browser/Type.mjs +48 -0
  35. package/dist/lib/browser/Type.mjs.map +7 -0
  36. package/dist/lib/browser/chunk-2RMVRVOB.mjs +250 -0
  37. package/dist/lib/browser/chunk-2RMVRVOB.mjs.map +7 -0
  38. package/dist/lib/browser/chunk-5RDNDPMX.mjs +74 -0
  39. package/dist/lib/browser/chunk-5RDNDPMX.mjs.map +7 -0
  40. package/dist/lib/browser/chunk-73M2G455.mjs +98 -0
  41. package/dist/lib/browser/chunk-73M2G455.mjs.map +7 -0
  42. package/dist/lib/browser/chunk-7STIBCP7.mjs +133 -0
  43. package/dist/lib/browser/chunk-7STIBCP7.mjs.map +7 -0
  44. package/dist/lib/browser/chunk-AFGYYVVQ.mjs +57 -0
  45. package/dist/lib/browser/chunk-AFGYYVVQ.mjs.map +7 -0
  46. package/dist/lib/browser/chunk-BC6R4CAF.mjs +24 -0
  47. package/dist/lib/browser/chunk-BC6R4CAF.mjs.map +7 -0
  48. package/dist/lib/browser/chunk-BPYFLHWO.mjs +158 -0
  49. package/dist/lib/browser/chunk-BPYFLHWO.mjs.map +7 -0
  50. package/dist/lib/browser/chunk-CBPFF3ZO.mjs +204 -0
  51. package/dist/lib/browser/chunk-CBPFF3ZO.mjs.map +7 -0
  52. package/dist/lib/browser/chunk-CGS2ULMK.mjs +11 -0
  53. package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +7 -0
  54. package/dist/lib/browser/chunk-CJ5YELTO.mjs +39 -0
  55. package/dist/lib/browser/chunk-CJ5YELTO.mjs.map +7 -0
  56. package/dist/lib/browser/chunk-FPOISFQK.mjs +40 -0
  57. package/dist/lib/browser/chunk-FPOISFQK.mjs.map +7 -0
  58. package/dist/lib/browser/chunk-INHXFXY5.mjs +22 -0
  59. package/dist/lib/browser/chunk-INHXFXY5.mjs.map +7 -0
  60. package/dist/lib/browser/chunk-IXVWLTG7.mjs +9 -0
  61. package/dist/lib/browser/chunk-IXVWLTG7.mjs.map +7 -0
  62. package/dist/lib/browser/chunk-JMKVF2YQ.mjs +43 -0
  63. package/dist/lib/browser/chunk-JMKVF2YQ.mjs.map +7 -0
  64. package/dist/lib/browser/chunk-L4RXUJHJ.mjs +143 -0
  65. package/dist/lib/browser/chunk-L4RXUJHJ.mjs.map +7 -0
  66. package/dist/lib/browser/chunk-MYCCGG2T.mjs +15 -0
  67. package/dist/lib/browser/chunk-MYCCGG2T.mjs.map +7 -0
  68. package/dist/lib/browser/{chunk-7GH6RXJ3.mjs → chunk-PAM4KEXE.mjs} +2005 -1841
  69. package/dist/lib/browser/chunk-PAM4KEXE.mjs.map +7 -0
  70. package/dist/lib/browser/chunk-QIWDIPLR.mjs +41 -0
  71. package/dist/lib/browser/chunk-QIWDIPLR.mjs.map +7 -0
  72. package/dist/lib/browser/chunk-R3S54KRI.mjs +403 -0
  73. package/dist/lib/browser/chunk-R3S54KRI.mjs.map +7 -0
  74. package/dist/lib/browser/chunk-RK4Z4JUZ.mjs +283 -0
  75. package/dist/lib/browser/chunk-RK4Z4JUZ.mjs.map +7 -0
  76. package/dist/lib/browser/chunk-TPIL3G6Y.mjs +288 -0
  77. package/dist/lib/browser/chunk-TPIL3G6Y.mjs.map +7 -0
  78. package/dist/lib/browser/chunk-YKTSSMDS.mjs +69 -0
  79. package/dist/lib/browser/chunk-YKTSSMDS.mjs.map +7 -0
  80. package/dist/lib/browser/chunk-ZHXZGIXD.mjs +9 -0
  81. package/dist/lib/browser/chunk-ZHXZGIXD.mjs.map +7 -0
  82. package/dist/lib/browser/index.mjs +65 -25
  83. package/dist/lib/browser/internal/index.mjs +213 -92
  84. package/dist/lib/browser/meta.json +1 -1
  85. package/dist/lib/browser/testing/index.mjs +80 -41
  86. package/dist/lib/browser/testing/index.mjs.map +3 -3
  87. package/dist/lib/node-esm/Annotation.mjs +33 -0
  88. package/dist/lib/node-esm/Annotation.mjs.map +7 -0
  89. package/dist/lib/node-esm/Database.mjs +18 -0
  90. package/dist/lib/node-esm/Database.mjs.map +7 -0
  91. package/dist/lib/node-esm/Entity.mjs +52 -0
  92. package/dist/lib/node-esm/Entity.mjs.map +7 -0
  93. package/dist/lib/node-esm/Err.mjs +11 -0
  94. package/dist/lib/node-esm/Err.mjs.map +7 -0
  95. package/dist/lib/node-esm/Filter.mjs +62 -0
  96. package/dist/lib/node-esm/Filter.mjs.map +7 -0
  97. package/dist/lib/node-esm/Format.mjs +67 -0
  98. package/dist/lib/node-esm/Format.mjs.map +7 -0
  99. package/dist/lib/node-esm/JsonSchema.mjs +20 -0
  100. package/dist/lib/node-esm/JsonSchema.mjs.map +7 -0
  101. package/dist/lib/node-esm/Key.mjs +13 -0
  102. package/dist/lib/node-esm/Key.mjs.map +7 -0
  103. package/dist/lib/node-esm/Obj.mjs +91 -0
  104. package/dist/lib/node-esm/Obj.mjs.map +7 -0
  105. package/dist/lib/node-esm/Order.mjs +13 -0
  106. package/dist/lib/node-esm/Order.mjs.map +7 -0
  107. package/dist/lib/node-esm/Query.mjs +27 -0
  108. package/dist/lib/node-esm/Query.mjs.map +7 -0
  109. package/dist/lib/node-esm/QueryResult.mjs +3 -0
  110. package/dist/lib/node-esm/QueryResult.mjs.map +7 -0
  111. package/dist/lib/node-esm/Ref.mjs +23 -0
  112. package/dist/lib/node-esm/Ref.mjs.map +7 -0
  113. package/dist/lib/node-esm/Relation.mjs +85 -0
  114. package/dist/lib/node-esm/Relation.mjs.map +7 -0
  115. package/dist/lib/node-esm/SchemaRegistry.mjs +3 -0
  116. package/dist/lib/node-esm/SchemaRegistry.mjs.map +7 -0
  117. package/dist/lib/node-esm/Tag.mjs +26 -0
  118. package/dist/lib/node-esm/Tag.mjs.map +7 -0
  119. package/dist/lib/node-esm/Type.mjs +48 -0
  120. package/dist/lib/node-esm/Type.mjs.map +7 -0
  121. package/dist/lib/node-esm/chunk-2RIFBW3A.mjs +250 -0
  122. package/dist/lib/node-esm/chunk-2RIFBW3A.mjs.map +7 -0
  123. package/dist/lib/node-esm/chunk-5CB2ZW74.mjs +57 -0
  124. package/dist/lib/node-esm/chunk-5CB2ZW74.mjs.map +7 -0
  125. package/dist/lib/node-esm/{chunk-M4B6BMD2.mjs → chunk-5U5F4AWK.mjs} +2005 -1841
  126. package/dist/lib/node-esm/chunk-5U5F4AWK.mjs.map +7 -0
  127. package/dist/lib/node-esm/chunk-AJEMYSIR.mjs +22 -0
  128. package/dist/lib/node-esm/chunk-AJEMYSIR.mjs.map +7 -0
  129. package/dist/lib/node-esm/chunk-BKYE5IW6.mjs +158 -0
  130. package/dist/lib/node-esm/chunk-BKYE5IW6.mjs.map +7 -0
  131. package/dist/lib/node-esm/chunk-BYOD7EVP.mjs +98 -0
  132. package/dist/lib/node-esm/chunk-BYOD7EVP.mjs.map +7 -0
  133. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs +133 -0
  134. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs.map +7 -0
  135. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  136. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  137. package/dist/lib/node-esm/chunk-K37NA7PO.mjs +43 -0
  138. package/dist/lib/node-esm/chunk-K37NA7PO.mjs.map +7 -0
  139. package/dist/lib/node-esm/chunk-LIXUCQJM.mjs +41 -0
  140. package/dist/lib/node-esm/chunk-LIXUCQJM.mjs.map +7 -0
  141. package/dist/lib/node-esm/chunk-MOLNWFNL.mjs +9 -0
  142. package/dist/lib/node-esm/chunk-MOLNWFNL.mjs.map +7 -0
  143. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs +15 -0
  144. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs.map +7 -0
  145. package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs +40 -0
  146. package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs.map +7 -0
  147. package/dist/lib/node-esm/chunk-OZEDKT4R.mjs +204 -0
  148. package/dist/lib/node-esm/chunk-OZEDKT4R.mjs.map +7 -0
  149. package/dist/lib/node-esm/chunk-PW3VCWL5.mjs +24 -0
  150. package/dist/lib/node-esm/chunk-PW3VCWL5.mjs.map +7 -0
  151. package/dist/lib/node-esm/chunk-TSTKBFST.mjs +403 -0
  152. package/dist/lib/node-esm/chunk-TSTKBFST.mjs.map +7 -0
  153. package/dist/lib/node-esm/chunk-UKGVOINP.mjs +9 -0
  154. package/dist/lib/node-esm/chunk-UKGVOINP.mjs.map +7 -0
  155. package/dist/lib/node-esm/chunk-UV63HEHQ.mjs +143 -0
  156. package/dist/lib/node-esm/chunk-UV63HEHQ.mjs.map +7 -0
  157. package/dist/lib/node-esm/chunk-WXLVPCRJ.mjs +288 -0
  158. package/dist/lib/node-esm/chunk-WXLVPCRJ.mjs.map +7 -0
  159. package/dist/lib/node-esm/chunk-WZ6YBELW.mjs +74 -0
  160. package/dist/lib/node-esm/chunk-WZ6YBELW.mjs.map +7 -0
  161. package/dist/lib/node-esm/chunk-XHJRMQZD.mjs +69 -0
  162. package/dist/lib/node-esm/chunk-XHJRMQZD.mjs.map +7 -0
  163. package/dist/lib/node-esm/chunk-YOLH5KS4.mjs +283 -0
  164. package/dist/lib/node-esm/chunk-YOLH5KS4.mjs.map +7 -0
  165. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs +39 -0
  166. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs.map +7 -0
  167. package/dist/lib/node-esm/index.mjs +65 -25
  168. package/dist/lib/node-esm/internal/index.mjs +213 -92
  169. package/dist/lib/node-esm/meta.json +1 -1
  170. package/dist/lib/node-esm/testing/index.mjs +80 -41
  171. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  172. package/dist/types/src/Annotation.d.ts +1 -1
  173. package/dist/types/src/Annotation.d.ts.map +1 -1
  174. package/dist/types/src/Database.d.ts +117 -60
  175. package/dist/types/src/Database.d.ts.map +1 -1
  176. package/dist/types/src/Entity.d.ts +111 -5
  177. package/dist/types/src/Entity.d.ts.map +1 -1
  178. package/dist/types/src/Entity.test.d.ts +2 -0
  179. package/dist/types/src/Entity.test.d.ts.map +1 -0
  180. package/dist/types/src/{errors.d.ts → Err.d.ts} +13 -17
  181. package/dist/types/src/Err.d.ts.map +1 -0
  182. package/dist/types/src/Filter.d.ts +120 -0
  183. package/dist/types/src/Filter.d.ts.map +1 -0
  184. package/dist/types/src/Format.d.ts.map +1 -1
  185. package/dist/types/src/Hypergraph.d.ts +60 -0
  186. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  187. package/dist/types/src/Obj.d.ts +268 -76
  188. package/dist/types/src/Obj.d.ts.map +1 -1
  189. package/dist/types/src/Obj.test.d.ts +2 -0
  190. package/dist/types/src/Obj.test.d.ts.map +1 -0
  191. package/dist/types/src/Order.d.ts +16 -0
  192. package/dist/types/src/Order.d.ts.map +1 -0
  193. package/dist/types/src/{query/query.d.ts → Query.d.ts} +53 -50
  194. package/dist/types/src/Query.d.ts.map +1 -0
  195. package/dist/types/src/Query.test.d.ts +2 -0
  196. package/dist/types/src/Query.test.d.ts.map +1 -0
  197. package/dist/types/src/QueryResult.d.ts +80 -0
  198. package/dist/types/src/QueryResult.d.ts.map +1 -0
  199. package/dist/types/src/Ref.d.ts +9 -7
  200. package/dist/types/src/Ref.d.ts.map +1 -1
  201. package/dist/types/src/Relation.d.ts +235 -18
  202. package/dist/types/src/Relation.d.ts.map +1 -1
  203. package/dist/types/src/Relation.test.d.ts +2 -0
  204. package/dist/types/src/Relation.test.d.ts.map +1 -0
  205. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  206. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  207. package/dist/types/src/Tag.d.ts +6 -6
  208. package/dist/types/src/Tag.d.ts.map +1 -1
  209. package/dist/types/src/Type.d.ts +213 -50
  210. package/dist/types/src/Type.d.ts.map +1 -1
  211. package/dist/types/src/Type.test.d.ts +2 -0
  212. package/dist/types/src/Type.test.d.ts.map +1 -0
  213. package/dist/types/src/index.d.ts +8 -2
  214. package/dist/types/src/index.d.ts.map +1 -1
  215. package/dist/types/src/internal/annotations/annotations.d.ts +23 -27
  216. package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -1
  217. package/dist/types/src/internal/annotations/util.d.ts +1 -0
  218. package/dist/types/src/internal/annotations/util.d.ts.map +1 -1
  219. package/dist/types/src/internal/api/annotations.d.ts +23 -0
  220. package/dist/types/src/internal/api/annotations.d.ts.map +1 -0
  221. package/dist/types/src/internal/api/entity.d.ts +13 -0
  222. package/dist/types/src/internal/api/entity.d.ts.map +1 -0
  223. package/dist/types/src/internal/api/index.d.ts +15 -0
  224. package/dist/types/src/internal/api/index.d.ts.map +1 -0
  225. package/dist/types/src/internal/api/meta.d.ts +42 -0
  226. package/dist/types/src/internal/api/meta.d.ts.map +1 -0
  227. package/dist/types/src/internal/api/sorting.d.ts +24 -0
  228. package/dist/types/src/internal/api/sorting.d.ts.map +1 -0
  229. package/dist/types/src/internal/api/version.d.ts +42 -0
  230. package/dist/types/src/internal/api/version.d.ts.map +1 -0
  231. package/dist/types/src/internal/entities/entity.d.ts +13 -3
  232. package/dist/types/src/internal/entities/entity.d.ts.map +1 -1
  233. package/dist/types/src/internal/entities/index.d.ts +1 -1
  234. package/dist/types/src/internal/entities/index.d.ts.map +1 -1
  235. package/dist/types/src/internal/entities/model.d.ts +14 -7
  236. package/dist/types/src/internal/entities/model.d.ts.map +1 -1
  237. package/dist/types/src/internal/entities/object.d.ts +8 -1
  238. package/dist/types/src/internal/entities/object.d.ts.map +1 -1
  239. package/dist/types/src/internal/entities/relation.d.ts +8 -1
  240. package/dist/types/src/internal/entities/relation.d.ts.map +1 -1
  241. package/dist/types/src/internal/formats/format.d.ts +4 -4
  242. package/dist/types/src/internal/formats/format.d.ts.map +1 -1
  243. package/dist/types/src/internal/formats/select.d.ts +6 -4
  244. package/dist/types/src/internal/formats/select.d.ts.map +1 -1
  245. package/dist/types/src/internal/formats/string.d.ts +4 -0
  246. package/dist/types/src/internal/formats/string.d.ts.map +1 -1
  247. package/dist/types/src/internal/formats/types.d.ts +6 -2
  248. package/dist/types/src/internal/formats/types.d.ts.map +1 -1
  249. package/dist/types/src/internal/index.d.ts +2 -1
  250. package/dist/types/src/internal/index.d.ts.map +1 -1
  251. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -1
  252. package/dist/types/src/internal/json-schema/json-schema-type.d.ts +130 -29
  253. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -1
  254. package/dist/types/src/internal/json-schema/json-schema.d.ts +2 -1
  255. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -1
  256. package/dist/types/src/internal/object/clone.d.ts +8 -0
  257. package/dist/types/src/internal/object/clone.d.ts.map +1 -0
  258. package/dist/types/src/internal/object/create-object.d.ts +1 -1
  259. package/dist/types/src/internal/object/index.d.ts +3 -0
  260. package/dist/types/src/internal/object/index.d.ts.map +1 -1
  261. package/dist/types/src/internal/object/json-serializer.d.ts +13 -7
  262. package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -1
  263. package/dist/types/src/internal/object/schema-validator.d.ts +1 -14
  264. package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -1
  265. package/dist/types/src/internal/object/set-value.d.ts +7 -0
  266. package/dist/types/src/internal/object/set-value.d.ts.map +1 -0
  267. package/dist/types/src/internal/object/set-value.test.d.ts +2 -0
  268. package/dist/types/src/internal/object/set-value.test.d.ts.map +1 -0
  269. package/dist/types/src/internal/object/snapshot.d.ts +6 -0
  270. package/dist/types/src/internal/object/snapshot.d.ts.map +1 -0
  271. package/dist/types/src/internal/object/typed-object.d.ts +7 -13
  272. package/dist/types/src/internal/object/typed-object.d.ts.map +1 -1
  273. package/dist/types/src/internal/proxy/change-context.d.ts +55 -0
  274. package/dist/types/src/internal/proxy/change-context.d.ts.map +1 -0
  275. package/dist/types/src/internal/proxy/change.test.d.ts +2 -0
  276. package/dist/types/src/internal/proxy/change.test.d.ts.map +1 -0
  277. package/dist/types/src/internal/proxy/define-hidden-property.d.ts +5 -0
  278. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +1 -0
  279. package/dist/types/src/internal/proxy/errors.d.ts +19 -0
  280. package/dist/types/src/internal/proxy/errors.d.ts.map +1 -0
  281. package/dist/types/src/internal/proxy/event-batch.d.ts +10 -0
  282. package/dist/types/src/internal/proxy/event-batch.d.ts.map +1 -0
  283. package/dist/types/src/internal/proxy/index.d.ts +11 -0
  284. package/dist/types/src/internal/proxy/index.d.ts.map +1 -1
  285. package/dist/types/src/internal/proxy/json-serializer.d.ts +6 -0
  286. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +1 -0
  287. package/dist/types/src/internal/proxy/make-object.d.ts +2 -4
  288. package/dist/types/src/internal/proxy/make-object.d.ts.map +1 -1
  289. package/dist/types/src/internal/proxy/ownership.d.ts +57 -0
  290. package/dist/types/src/internal/proxy/ownership.d.ts.map +1 -0
  291. package/dist/types/src/internal/proxy/proxy-types.d.ts +18 -0
  292. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +1 -0
  293. package/dist/types/src/internal/proxy/proxy-utils.d.ts +47 -0
  294. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +1 -0
  295. package/dist/types/src/internal/proxy/reactive-array.d.ts +8 -0
  296. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +1 -0
  297. package/dist/types/src/internal/proxy/reactive.d.ts +39 -0
  298. package/dist/types/src/internal/proxy/reactive.d.ts.map +1 -0
  299. package/dist/types/src/internal/proxy/schema-validator.d.ts +15 -0
  300. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +1 -0
  301. package/dist/types/src/internal/proxy/symbols.d.ts +3 -0
  302. package/dist/types/src/internal/proxy/symbols.d.ts.map +1 -0
  303. package/dist/types/src/internal/proxy/typed-handler.d.ts +14 -11
  304. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -1
  305. package/dist/types/src/internal/ref/ref-array.d.ts +4 -4
  306. package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -1
  307. package/dist/types/src/internal/ref/ref.d.ts +16 -7
  308. package/dist/types/src/internal/ref/ref.d.ts.map +1 -1
  309. package/dist/types/src/internal/schema/compose.d.ts +2 -1
  310. package/dist/types/src/internal/schema/compose.d.ts.map +1 -1
  311. package/dist/types/src/internal/schema/echo-schema.d.ts +15 -3
  312. package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -1
  313. package/dist/types/src/internal/schema/index.d.ts +0 -2
  314. package/dist/types/src/internal/schema/index.d.ts.map +1 -1
  315. package/dist/types/src/internal/schema/persistent-schema.d.ts +9 -7
  316. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +1 -1
  317. package/dist/types/src/internal/types/base.d.ts +5 -16
  318. package/dist/types/src/internal/types/base.d.ts.map +1 -1
  319. package/dist/types/src/internal/types/entity.d.ts +27 -2
  320. package/dist/types/src/internal/types/entity.d.ts.map +1 -1
  321. package/dist/types/src/internal/types/meta.d.ts +6 -14
  322. package/dist/types/src/internal/types/meta.d.ts.map +1 -1
  323. package/dist/types/src/testing/test-schema.d.ts +141 -175
  324. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  325. package/dist/types/src/testing/util.d.ts +6 -1
  326. package/dist/types/src/testing/util.d.ts.map +1 -1
  327. package/dist/types/tsconfig.tsbuildinfo +1 -1
  328. package/package.json +130 -23
  329. package/src/Annotation.ts +5 -4
  330. package/src/Database.ts +229 -82
  331. package/src/Entity.test.ts +22 -0
  332. package/src/Entity.ts +173 -7
  333. package/src/{errors.ts → Err.ts} +2 -2
  334. package/src/Filter.ts +376 -0
  335. package/src/Format.ts +0 -2
  336. package/src/Hypergraph.ts +74 -0
  337. package/src/Obj.test.ts +386 -0
  338. package/src/Obj.ts +338 -250
  339. package/src/{query/order.ts → Order.ts} +19 -9
  340. package/src/{query/query.test.ts → Query.test.ts} +180 -49
  341. package/src/{query/query.ts → Query.ts} +115 -122
  342. package/src/QueryResult.ts +106 -0
  343. package/src/Ref.ts +20 -3
  344. package/src/Relation.test.ts +82 -0
  345. package/src/Relation.ts +364 -27
  346. package/src/SchemaRegistry.ts +105 -0
  347. package/src/Tag.ts +1 -1
  348. package/src/Type.test.ts +52 -0
  349. package/src/Type.ts +322 -88
  350. package/src/index.ts +9 -5
  351. package/src/internal/README.md +36 -17
  352. package/src/internal/annotations/annotations.test.ts +6 -6
  353. package/src/internal/annotations/annotations.ts +73 -76
  354. package/src/internal/annotations/util.ts +2 -0
  355. package/src/internal/api/annotations.ts +60 -0
  356. package/src/internal/api/entity.ts +29 -0
  357. package/src/internal/api/index.ts +19 -0
  358. package/src/internal/api/meta.ts +88 -0
  359. package/src/internal/api/sorting.ts +53 -0
  360. package/src/internal/api/version.ts +96 -0
  361. package/src/internal/entities/entity.ts +36 -19
  362. package/src/internal/entities/index.ts +1 -1
  363. package/src/internal/entities/model.ts +17 -12
  364. package/src/internal/entities/object.ts +21 -8
  365. package/src/internal/entities/relation.ts +23 -7
  366. package/src/internal/formats/format.test.ts +1 -1
  367. package/src/internal/formats/format.ts +7 -8
  368. package/src/internal/formats/object.ts +2 -2
  369. package/src/internal/formats/select.ts +6 -4
  370. package/src/internal/formats/string.ts +5 -0
  371. package/src/internal/formats/types.ts +9 -3
  372. package/src/internal/index.ts +2 -1
  373. package/src/internal/json-schema/json-schema-normalize.ts +4 -2
  374. package/src/internal/json-schema/json-schema-type.ts +31 -32
  375. package/src/internal/json-schema/json-schema.test.ts +19 -17
  376. package/src/internal/json-schema/json-schema.ts +14 -10
  377. package/src/internal/object/clone.ts +48 -0
  378. package/src/internal/object/create-object.ts +2 -2
  379. package/src/internal/object/index.ts +3 -0
  380. package/src/internal/object/inspect.ts +3 -3
  381. package/src/internal/object/json-serializer.test.ts +6 -2
  382. package/src/internal/object/json-serializer.ts +28 -70
  383. package/src/internal/object/schema-validator.test.ts +3 -7
  384. package/src/internal/object/schema-validator.ts +2 -238
  385. package/src/internal/object/set-value.test.ts +281 -0
  386. package/src/internal/object/set-value.ts +165 -0
  387. package/src/internal/object/snapshot.ts +70 -0
  388. package/src/internal/object/typed-object.test.ts +11 -11
  389. package/src/internal/object/typed-object.ts +8 -72
  390. package/src/internal/proxy/change-context.ts +138 -0
  391. package/src/internal/proxy/change.test.ts +519 -0
  392. package/src/internal/proxy/define-hidden-property.ts +14 -0
  393. package/src/internal/proxy/errors.ts +42 -0
  394. package/src/internal/proxy/event-batch.ts +44 -0
  395. package/src/internal/proxy/handler.test.ts +30 -80
  396. package/src/internal/proxy/index.ts +11 -0
  397. package/src/internal/proxy/json-serializer.ts +87 -0
  398. package/src/internal/proxy/make-object.ts +33 -50
  399. package/src/internal/proxy/ownership.ts +253 -0
  400. package/src/internal/proxy/proxy-types.ts +23 -0
  401. package/src/internal/proxy/proxy-utils.ts +150 -0
  402. package/src/internal/proxy/reactive-array.ts +71 -0
  403. package/src/internal/proxy/reactive.ts +69 -0
  404. package/src/internal/proxy/schema-validator.ts +244 -0
  405. package/src/internal/proxy/schema.test.ts +23 -15
  406. package/src/internal/proxy/symbols.ts +7 -0
  407. package/src/internal/proxy/typed-handler.test.ts +247 -35
  408. package/src/internal/proxy/typed-handler.ts +265 -56
  409. package/src/internal/proxy/typed-object.test.ts +37 -26
  410. package/src/internal/ref/ref-array.ts +4 -4
  411. package/src/internal/ref/ref.test.ts +1 -1
  412. package/src/internal/ref/ref.ts +64 -40
  413. package/src/internal/schema/compose.test.ts +3 -3
  414. package/src/internal/schema/compose.ts +13 -9
  415. package/src/internal/schema/echo-schema.ts +49 -11
  416. package/src/internal/schema/index.ts +0 -2
  417. package/src/internal/schema/persistent-schema.ts +3 -4
  418. package/src/internal/types/base.ts +6 -21
  419. package/src/internal/types/entity.ts +35 -4
  420. package/src/internal/types/meta.ts +13 -24
  421. package/src/testing/api.test.ts +31 -5
  422. package/src/testing/test-schema.ts +55 -30
  423. package/src/testing/util.ts +22 -15
  424. package/dist/lib/browser/chunk-7GH6RXJ3.mjs.map +0 -7
  425. package/dist/lib/browser/chunk-E4UTVJNF.mjs +0 -1111
  426. package/dist/lib/browser/chunk-E4UTVJNF.mjs.map +0 -7
  427. package/dist/lib/node-esm/chunk-JE5RXM2I.mjs +0 -1111
  428. package/dist/lib/node-esm/chunk-JE5RXM2I.mjs.map +0 -7
  429. package/dist/lib/node-esm/chunk-M4B6BMD2.mjs.map +0 -7
  430. package/dist/types/src/errors.d.ts.map +0 -1
  431. package/dist/types/src/internal/entities/expando.d.ts +0 -16
  432. package/dist/types/src/internal/entities/expando.d.ts.map +0 -1
  433. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +0 -18
  434. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
  435. package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
  436. package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
  437. package/dist/types/src/query/filter.d.ts +0 -167
  438. package/dist/types/src/query/filter.d.ts.map +0 -1
  439. package/dist/types/src/query/index.d.ts +0 -5
  440. package/dist/types/src/query/index.d.ts.map +0 -1
  441. package/dist/types/src/query/order.d.ts +0 -12
  442. package/dist/types/src/query/order.d.ts.map +0 -1
  443. package/dist/types/src/query/query.d.ts.map +0 -1
  444. package/dist/types/src/query/query.test.d.ts +0 -2
  445. package/dist/types/src/query/query.test.d.ts.map +0 -1
  446. package/dist/types/src/query/testing.d.ts +0 -51
  447. package/dist/types/src/query/testing.d.ts.map +0 -1
  448. package/dist/types/src/query/types.d.ts +0 -17
  449. package/dist/types/src/query/types.d.ts.map +0 -1
  450. package/dist/types/src/query/util.d.ts +0 -8
  451. package/dist/types/src/query/util.d.ts.map +0 -1
  452. package/src/internal/entities/expando.ts +0 -23
  453. package/src/internal/schema/runtime-schema-registry.ts +0 -78
  454. package/src/internal/schema/snapshot.ts +0 -25
  455. package/src/query/filter.ts +0 -455
  456. package/src/query/index.ts +0 -9
  457. package/src/query/testing.ts +0 -64
  458. package/src/query/types.ts +0 -23
  459. package/src/query/util.ts +0 -25
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../src/Query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Query.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Query.test.d.ts","sourceRoot":"","sources":["../../../src/Query.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,80 @@
1
+ import { type CleanupFn } from '@dxos/async';
2
+ import type * as Entity from './Entity';
3
+ /**
4
+ * Individual query result entry.
5
+ */
6
+ export type Entry<T> = {
7
+ id: string;
8
+ /**
9
+ * May not be present for remote results.
10
+ */
11
+ result?: T;
12
+ match?: {
13
+ /**
14
+ * Higher means better match.
15
+ */
16
+ rank: number;
17
+ };
18
+ /**
19
+ * Query resolution metadata.
20
+ */
21
+ resolution?: {
22
+ source: 'remote' | 'local' | 'index';
23
+ /**
24
+ * Query resolution time in milliseconds.
25
+ */
26
+ time: number;
27
+ };
28
+ };
29
+ /**
30
+ * Invidual query result entry for a database Entity.
31
+ */
32
+ export type EntityEntry<T extends Entity.Unknown = Entity.Unknown> = Entry<T>;
33
+ export type RunOptions = {
34
+ timeout?: number;
35
+ };
36
+ export type SubscriptionOptions = {
37
+ /**
38
+ * Fire the callback immediately.
39
+ */
40
+ fire?: boolean;
41
+ };
42
+ export interface QueryResult<T> {
43
+ /**
44
+ * Currently available results along with their match metadata.
45
+ */
46
+ readonly entries: Entry<T>[];
47
+ /**
48
+ * Currently available results.
49
+ */
50
+ readonly results: T[];
51
+ /**
52
+ * Returns all known results.
53
+ */
54
+ run(opts?: RunOptions): Promise<T[]>;
55
+ /**
56
+ * Returns all known results along with their match metadata.
57
+ */
58
+ runEntries(opts?: RunOptions): Promise<Entry<T>[]>;
59
+ /**
60
+ * Returns currently available results synchronously.
61
+ */
62
+ runSync(): T[];
63
+ /**
64
+ * Returns currently available results synchronously along with their match metadata.
65
+ */
66
+ runSyncEntries(): Entry<T>[];
67
+ /**
68
+ * Returns first result.
69
+ */
70
+ first(opts?: RunOptions): Promise<T>;
71
+ /**
72
+ * Returns first result if there is one.
73
+ */
74
+ firstOrUndefined(opts?: RunOptions): Promise<T | undefined>;
75
+ /**
76
+ * Subscribes to changes in query results.
77
+ */
78
+ subscribe(callback?: (query: QueryResult<T>) => void, opts?: SubscriptionOptions): CleanupFn;
79
+ }
80
+ //# sourceMappingURL=QueryResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryResult.d.ts","sourceRoot":"","sources":["../../../src/QueryResult.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX,KAAK,CAAC,EAAE;QAGN;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF;;OAEG;IAEH,UAAU,CAAC,EAAE;QAEX,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;QAErC;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAGF,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;IAEtB;;OAEG;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAErC;;OAEG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEnD;;OAEG;IACH,OAAO,IAAI,CAAC,EAAE,CAAC;IAEf;;OAEG;IACH,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7B;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAErC;;OAEG;IACH,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE5D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC9F"}
@@ -1,21 +1,23 @@
1
+ import * as SchemaAST from 'effect/SchemaAST';
1
2
  import { Ref as Ref$, type RefResolver } from './internal';
2
3
  import type * as Obj from './Obj';
3
4
  export type Ref<T> = Ref$<T>;
4
- export type Any = Ref$<Obj.Any>;
5
+ export type Unknown = Ref$<Obj.Unknown>;
5
6
  export declare const Array: Readonly<{
6
- targets: <T extends import("./internal").AnyEchoObject>(refs: readonly Ref$<T>[]) => T[];
7
- loadAll: <T extends import("./internal").AnyEchoObject>(refs: readonly Ref$<T>[]) => Promise<T[]>;
8
- removeById: (refs: Ref$<import("./internal").AnyEchoObject>[], id: import("@dxos/keys").ObjectId) => void;
7
+ targets: <T extends import("./internal").AnyEntity>(refs: readonly Ref$<T>[]) => T[];
8
+ loadAll: <T extends import("./internal").AnyEntity>(refs: readonly Ref$<T>[]) => Promise<T[]>;
9
+ removeById: (refs: Ref$<import("./internal").AnyEntity>[], id: import("@dxos/keys").ObjectId) => void;
9
10
  }>;
10
11
  /**
11
12
  * Extract reference target.
12
13
  */
13
- export type Target<R extends Any> = R extends Ref$<infer T> ? T : never;
14
+ export type Target<R extends Unknown> = R extends Ref$<infer T> ? T : never;
14
15
  /**
15
16
  * Reference resolver.
16
17
  */
17
18
  export type Resolver = RefResolver;
18
- export declare const isRef: (value: unknown) => value is Any;
19
- export declare const make: <T extends import("./internal").WithId>(object: T) => Ref$<T>;
19
+ export declare const isRef: (value: unknown) => value is Unknown;
20
+ export declare const make: <T extends import("./internal").AnyEntity>(object: T) => Ref$<T>;
20
21
  export declare const fromDXN: (dxn: import("@dxos/keys").DXN) => Ref$<any>;
22
+ export declare const isRefType: (ast: SchemaAST.AST) => boolean;
21
23
  //# sourceMappingURL=Ref.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/Ref.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,IAAI,IAAI,EAAY,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEhC,eAAO,MAAM,KAAK;;;;EAAW,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEnC,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,GAAgB,CAAC;AAElE,eAAO,MAAM,IAAI,+DAAY,CAAC;AAG9B,eAAO,MAAM,OAAO,8CAAe,CAAC"}
1
+ {"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/Ref.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,GAAG,IAAI,IAAI,EAAY,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExC,eAAO,MAAM,KAAK;;;;EAAW,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEnC,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,OAAoB,CAAC;AAEtE,eAAO,MAAM,IAAI,kEAAY,CAAC;AAG9B,eAAO,MAAM,OAAO,8CAAe,CAAC;AAGpC,eAAO,MAAM,SAAS,GAAI,KAAK,SAAS,CAAC,GAAG,KAAG,OAS9C,CAAC"}
@@ -1,36 +1,62 @@
1
- import * as Schema from 'effect/Schema';
1
+ import type * as Schema from 'effect/Schema';
2
+ import type { ForeignKey } from '@dxos/echo-protocol';
2
3
  import { DXN, type ObjectId } from '@dxos/keys';
3
- import { type Live } from '@dxos/live-object';
4
+ import type * as Database from './Database';
4
5
  import * as Entity from './Entity';
5
- import { type AnyEchoObject, EntityKind, MetaId, type ObjectMeta } from './internal';
6
- import * as Obj from './Obj';
7
- import * as Type from './Type';
6
+ import { type ObjectJSON as APIJSON, type AnyEntity, type Comparator as ApiComparator, type Meta as ApiMeta, type ReadonlyMeta as ApiReadonlyMeta, type EntityVersion as ApiVersion, type ChangeCallback, EntityKind, type KindId, MetaId, type Mutable, type ObjectMeta, SnapshotKindId, VersionTypeId, isVersion } from './internal';
7
+ import type * as Obj from './Obj';
8
+ import type * as Type from './Type';
8
9
  /**
9
10
  * Base type for all ECHO relations.
10
11
  * @private
11
12
  */
12
- interface BaseRelation<Source, Target> extends AnyEchoObject, Type.Relation.Endpoints<Source, Target>, Entity.OfKind<EntityKind.Relation> {
13
+ interface BaseRelation<Source, Target> extends AnyEntity, Type.Relation.Endpoints<Source, Target>, Entity.OfKind<EntityKind.Relation> {
13
14
  }
14
15
  /**
15
- * Base type for all Relations objects.
16
+ * Relation with no known properties beyond id, kind, source, and target.
17
+ * Use this when the relation's schema/properties are not known.
18
+ *
19
+ * NOTE: This is a TypeScript type only, not a schema.
20
+ * To validate that a value is an ECHO relation, use `Relation.isRelation`.
16
21
  */
17
- export interface Any extends BaseRelation<Obj.Any, Obj.Any> {
22
+ export interface Unknown extends BaseRelation<Obj.Unknown, Obj.Unknown> {
18
23
  }
19
- export declare const Any: Type.relation<Schema.Struct<{}>, Type.obj<Schema.Struct<{}>>, Type.obj<Schema.Struct<{}>>>;
20
24
  /**
21
25
  * Relation type with specific source and target types.
22
26
  */
23
- export type Relation<Source extends Obj.Any, Target extends Obj.Any, Props> = BaseRelation<Source, Target> & Props;
27
+ export type Relation<Source extends Obj.Unknown, Target extends Obj.Unknown, Props> = BaseRelation<Source, Target> & Props;
28
+ /**
29
+ * Base type for snapshot relations (has SnapshotKindId instead of KindId).
30
+ */
31
+ interface BaseRelationSnapshot<Source, Target> extends AnyEntity, Type.Relation.Endpoints<Source, Target> {
32
+ readonly [SnapshotKindId]: EntityKind.Relation;
33
+ readonly id: ObjectId;
34
+ }
35
+ /**
36
+ * Immutable snapshot of an ECHO relation.
37
+ * Branded with SnapshotKindId (not KindId).
38
+ * Property values are frozen at the time the snapshot was created.
39
+ * Returned by getSnapshot() and hooks.
40
+ */
41
+ export type Snapshot<T extends Unknown = Unknown> = Omit<T, KindId> & BaseRelationSnapshot<Obj.Unknown, Obj.Unknown>;
24
42
  export declare const Source: unique symbol;
25
43
  export type Source = typeof Source;
26
44
  export declare const Target: unique symbol;
27
45
  export type Target = typeof Target;
28
- type MakeProps<T extends Any> = {
46
+ /**
47
+ * Internal props type for relation instance creation.
48
+ */
49
+ type RelationMakeProps<T extends Unknown> = {
29
50
  id?: ObjectId;
30
51
  [MetaId]?: ObjectMeta;
31
52
  [Source]: T[Source];
32
53
  [Target]: T[Target];
33
54
  } & Type.Properties<T>;
55
+ /**
56
+ * Props type for relation creation with a given schema.
57
+ * Takes a schema type (created with Type.Relation) and extracts the props type.
58
+ */
59
+ export type MakeProps<S extends Type.Relation.Any> = RelationMakeProps<Schema.Schema.Type<S>>;
34
60
  /**
35
61
  * Creates new relation.
36
62
  * @param schema - Relation schema.
@@ -38,27 +64,218 @@ type MakeProps<T extends Any> = {
38
64
  * @param meta - Relation metadata.
39
65
  * @returns
40
66
  */
41
- export declare const make: <S extends Type.Relation.Any>(schema: S, props: NoInfer<MakeProps<Schema.Schema.Type<S>>>, meta?: ObjectMeta) => Live<Schema.Schema.Type<S> & Entity.OfKind<typeof Entity.Kind.Relation>>;
42
- export declare const isRelation: (value: unknown) => value is Any;
67
+ export declare const make: <S extends Type.Relation.Any>(schema: S, props: NoInfer<RelationMakeProps<Schema.Schema.Type<S>>>, meta?: ObjectMeta) => Schema.Schema.Type<S> & Entity.OfKind<typeof Entity.Kind.Relation>;
68
+ /**
69
+ * Type guard for relations.
70
+ * Returns true for both reactive relations and relation snapshots.
71
+ */
72
+ export declare const isRelation: (value: unknown) => value is Unknown;
43
73
  /**
44
74
  * @returns Relation source DXN.
75
+ * Accepts both reactive relations and snapshots.
45
76
  * @throws If the object is not a relation.
46
77
  */
47
- export declare const getSourceDXN: (value: Any) => DXN;
78
+ export declare const getSourceDXN: (value: Unknown | Snapshot) => DXN;
48
79
  /**
49
80
  * @returns Relation target DXN.
81
+ * Accepts both reactive relations and snapshots.
50
82
  * @throws If the object is not a relation.
51
83
  */
52
- export declare const getTargetDXN: (value: Any) => DXN;
84
+ export declare const getTargetDXN: (value: Unknown | Snapshot) => DXN;
53
85
  /**
54
86
  * @returns Relation source.
87
+ * Accepts both reactive relations and snapshots.
55
88
  * @throws If the object is not a relation.
56
89
  */
57
- export declare const getSource: <T extends Any>(relation: T) => Type.Relation.Source<T>;
90
+ export declare const getSource: <T extends Unknown | Snapshot>(relation: T) => Type.Relation.Source<T>;
58
91
  /**
59
92
  * @returns Relation target.
93
+ * Accepts both reactive relations and snapshots.
60
94
  * @throws If the object is not a relation.
61
95
  */
62
- export declare const getTarget: <T extends Any>(relation: T) => Type.Relation.Target<T>;
63
- export {};
96
+ export declare const getTarget: <T extends Unknown | Snapshot>(relation: T) => Type.Relation.Target<T>;
97
+ /**
98
+ * Makes all properties mutable recursively.
99
+ * Used to provide a mutable view of a relation within `Relation.change`.
100
+ */
101
+ export type { Mutable };
102
+ /**
103
+ * Perform mutations on an echo relation within a controlled context.
104
+ *
105
+ * All mutations within the callback are batched and trigger a single notification
106
+ * when the callback completes. Direct mutations outside of `Relation.change` will throw
107
+ * an error for echo relations.
108
+ *
109
+ * @param relation - The echo relation to mutate. Use `Obj.change` for objects.
110
+ * @param callback - The callback that performs mutations on the relation.
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * const worksFor = Relation.make(EmployedBy, {
115
+ * [Relation.Source]: person,
116
+ * [Relation.Target]: company,
117
+ * role: 'Engineer',
118
+ * });
119
+ *
120
+ * // Mutate within Relation.change
121
+ * Relation.change(worksFor, (r) => {
122
+ * r.role = 'Senior Engineer';
123
+ * });
124
+ * ```
125
+ *
126
+ * Note: Only accepts relations. Use `Obj.change` for objects.
127
+ */
128
+ export declare const change: <T extends Unknown>(relation: T, callback: ChangeCallback<T>) => void;
129
+ /**
130
+ * Returns an immutable snapshot of a relation.
131
+ * The snapshot is branded with SnapshotKindId instead of KindId,
132
+ * making it distinguishable from the reactive relation at the type level.
133
+ */
134
+ export declare const getSnapshot: <T extends Unknown>(rel: T) => Snapshot<T>;
135
+ /**
136
+ * Subscribe to relation updates.
137
+ * The callback is called synchronously when the relation is modified.
138
+ * Only accepts reactive relations (not snapshots).
139
+ * @returns Unsubscribe function.
140
+ */
141
+ export declare const subscribe: (rel: Unknown, callback: () => void) => (() => void);
142
+ /**
143
+ * Get a deeply nested property from a relation.
144
+ * Accepts both reactive relations and snapshots.
145
+ */
146
+ export declare const getValue: (rel: Unknown | Snapshot, path: readonly (string | number)[]) => any;
147
+ /**
148
+ * Set a deeply nested property on a relation.
149
+ * Must be called within a `Relation.change` callback.
150
+ *
151
+ * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
152
+ * parameters, so there is no compile-time error. Enforcement is runtime-only.
153
+ */
154
+ export declare const setValue: (rel: Mutable<Unknown>, path: readonly (string | number)[], value: any) => void;
155
+ /**
156
+ * Get the DXN of the relation.
157
+ * Accepts both reactive relations and snapshots.
158
+ */
159
+ export declare const getDXN: (entity: Unknown | Snapshot) => DXN;
160
+ /**
161
+ * @returns The DXN of the relation's type.
162
+ */
163
+ export declare const getTypeDXN: (obj: import("./internal").AnyProperties) => DXN | undefined;
164
+ /**
165
+ * Get the schema of the relation.
166
+ * Returns the branded ECHO schema used to create the relation.
167
+ */
168
+ export declare const getSchema: (rel: unknown | undefined) => Type.Entity.Any | undefined;
169
+ /**
170
+ * @returns The typename of the relation's type.
171
+ * Accepts both reactive relations and snapshots.
172
+ */
173
+ export declare const getTypename: (entity: Unknown | Snapshot) => string | undefined;
174
+ /**
175
+ * Get the database the relation belongs to.
176
+ * Accepts both reactive relations and snapshots.
177
+ */
178
+ export declare const getDatabase: (entity: Unknown | Snapshot) => Database.Database | undefined;
179
+ /**
180
+ * Deeply read-only version of ObjectMeta.
181
+ */
182
+ export type ReadonlyMeta = ApiReadonlyMeta;
183
+ /**
184
+ * Mutable meta type returned by `Relation.getMeta` inside a `Relation.change` callback.
185
+ */
186
+ export type Meta = ApiMeta;
187
+ /**
188
+ * Get the metadata for a relation.
189
+ * Returns mutable meta when passed a mutable relation (inside `Relation.change` callback).
190
+ * Returns read-only meta when passed a regular relation or snapshot.
191
+ */
192
+ export declare function getMeta(entity: Mutable<Unknown>): Meta;
193
+ export declare function getMeta(entity: Unknown | Snapshot): ReadonlyMeta;
194
+ /**
195
+ * @returns Foreign keys for the relation from the specified source.
196
+ * Accepts both reactive relations and snapshots.
197
+ */
198
+ export declare const getKeys: (entity: Unknown | Snapshot, source: string) => ForeignKey[];
199
+ /**
200
+ * Delete all keys from the relation for the specified source.
201
+ * Must be called within a `Relation.change` callback.
202
+ *
203
+ * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
204
+ * parameters, so there is no compile-time error. Enforcement is runtime-only.
205
+ */
206
+ export declare const deleteKeys: (entity: Mutable<Unknown>, source: string) => void;
207
+ /**
208
+ * Add a tag to the relation.
209
+ * Must be called within a `Relation.change` callback.
210
+ *
211
+ * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
212
+ * parameters, so there is no compile-time error. Enforcement is runtime-only.
213
+ */
214
+ export declare const addTag: (entity: Mutable<Unknown>, tag: string) => void;
215
+ /**
216
+ * Remove a tag from the relation.
217
+ * Must be called within a `Relation.change` callback.
218
+ *
219
+ * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
220
+ * parameters, so there is no compile-time error. Enforcement is runtime-only.
221
+ */
222
+ export declare const removeTag: (entity: Mutable<Unknown>, tag: string) => void;
223
+ /**
224
+ * Check if the relation is deleted.
225
+ * Accepts both reactive relations and snapshots.
226
+ */
227
+ export declare const isDeleted: (entity: Unknown | Snapshot) => boolean;
228
+ /**
229
+ * Get the label of the relation.
230
+ * Accepts both reactive relations and snapshots.
231
+ */
232
+ export declare const getLabel: (entity: Unknown | Snapshot) => string | undefined;
233
+ /**
234
+ * Set the label of the relation.
235
+ * Must be called within a `Relation.change` callback.
236
+ *
237
+ * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
238
+ * parameters, so there is no compile-time error. Enforcement is runtime-only.
239
+ */
240
+ export declare const setLabel: (entity: Mutable<Unknown>, label: string) => void;
241
+ /**
242
+ * Get the description of the relation.
243
+ * Accepts both reactive relations and snapshots.
244
+ */
245
+ export declare const getDescription: (entity: Unknown | Snapshot) => string | undefined;
246
+ /**
247
+ * Set the description of the relation.
248
+ * Must be called within a `Relation.change` callback.
249
+ *
250
+ * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
251
+ * parameters, so there is no compile-time error. Enforcement is runtime-only.
252
+ */
253
+ export declare const setDescription: (entity: Mutable<Unknown>, description: string) => void;
254
+ /**
255
+ * JSON representation of a relation.
256
+ */
257
+ export type JSON = APIJSON;
258
+ /**
259
+ * Converts relation to its JSON representation.
260
+ * Accepts both reactive relations and snapshots.
261
+ */
262
+ export declare const toJSON: (entity: Unknown | Snapshot) => JSON;
263
+ /**
264
+ * Comparator function type for sorting relations.
265
+ * Accepts both reactive relations and snapshots.
266
+ */
267
+ export type Comparator = ApiComparator<Unknown | Snapshot>;
268
+ export declare const sortByLabel: Comparator;
269
+ export declare const sortByTypename: Comparator;
270
+ export declare const sort: (...comparators: Comparator[]) => Comparator;
271
+ export { VersionTypeId, isVersion };
272
+ /**
273
+ * Represent relation version.
274
+ */
275
+ export type Version = ApiVersion;
276
+ /**
277
+ * Returns the version of the relation.
278
+ * Accepts both reactive relations and snapshots.
279
+ */
280
+ export declare const version: (entity: Unknown | Snapshot) => Version;
64
281
  //# sourceMappingURL=Relation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Relation.d.ts","sourceRoot":"","sources":["../../../src/Relation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAGL,KAAK,aAAa,EAClB,UAAU,EAEV,MAAM,EACN,KAAK,UAAU,EAQhB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;;GAGG;AACH,UAAU,YAAY,CAAC,MAAM,EAAE,MAAM,CACnC,SAAQ,aAAa,EACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;CAAG;AAEzC;;GAEG;AACH,MAAM,WAAW,GAAI,SAAQ,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;CAAG;AAE9D,eAAO,MAAM,GAAG,4FAOf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;AAEnH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAgC,CAAC;AAC7D,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,eAAO,MAAM,MAAM,EAAE,OAAO,MAAgC,CAAC;AAC7D,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI;IAC9B,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;IACtB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CACrB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAEvB;;;;;;GAMG;AAGH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,EAC9C,QAAQ,CAAC,EACT,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,UAAU,KAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAezE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,GAUpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,GAMzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,GAMzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,GAAG,EAAE,UAAU,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAM5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,GAAG,EAAE,UAAU,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAM5E,CAAC"}
1
+ {"version":3,"file":"Relation.d.ts","sourceRoot":"","sources":["../../../src/Relation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Relation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Relation.test.d.ts","sourceRoot":"","sources":["../../../src/Relation.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ import type * as Types from 'effect/Types';
2
+ import type * as JsonSchema from './JsonSchema';
3
+ import type * as Key from './Key';
4
+ import type * as QueryResult from './QueryResult';
5
+ import type * as Type from './Type';
6
+ export type Query = {
7
+ /**
8
+ * Filter by schema ID.
9
+ * Schema id is a DXN with `echo` or `type` kind.
10
+ */
11
+ id?: string | string[];
12
+ /**
13
+ * Id of the backing ECHO object.
14
+ */
15
+ backingObjectId?: Key.ObjectId | Key.ObjectId[];
16
+ /**
17
+ * One or more typenames to filter by.
18
+ */
19
+ typename?: string | string[];
20
+ /**
21
+ * [Semver Range](https://docs.npmjs.com/cli/v6/using-npm/semver#ranges) for the schema version.
22
+ */
23
+ version?: string;
24
+ /**
25
+ * Where to look for the schema.
26
+ *
27
+ * Database schema are stored in the database of the current space.
28
+ * Runtime schema are registered in the runtime.
29
+ *
30
+ * @default ['database']
31
+ */
32
+ location?: ('database' | 'runtime')[];
33
+ /**
34
+ * Include system schemas.
35
+ * @default false
36
+ *
37
+ * The system schema include but are not limited to:
38
+ * - dxos.org/type/Schema
39
+ */
40
+ includeSystem?: boolean;
41
+ };
42
+ /**
43
+ * Input for schema registration.
44
+ * The typename, version and schema mutability metadata is read from the schema annotations.
45
+ *
46
+ * Accepts:
47
+ * - Branded ECHO schemas created with Type.Obj() or Type.Relation()
48
+ * - JSON schema with typename and version
49
+ */
50
+ export type RegisterSchemaInput = Type.Entity.Any | {
51
+ typename: string;
52
+ version: string;
53
+ jsonSchema: JsonSchema.JsonSchema;
54
+ /**
55
+ * Display name of the schema.
56
+ */
57
+ name?: string;
58
+ };
59
+ export type ExtractQueryResult<Query> = Query extends {
60
+ location: ('database' | 'runtime')[];
61
+ } ? Type.Entity.Any : Type.RuntimeType;
62
+ export interface SchemaRegistry {
63
+ /**
64
+ * Checks if the provided schema is registered.
65
+ */
66
+ hasSchema(schema: Type.Entity.Any): boolean;
67
+ /**
68
+ * Registers the provided schema.
69
+ *
70
+ * @returns Mutable runtime instances of schemas that were registered.
71
+ *
72
+ * The behavior of this method depends on the state of the database.
73
+ * The general principle is that the schema will be upserted into the space.
74
+ * If an equivalent schema with the same name and version already exists, the method does nothing.
75
+ * If a different schema with the same name and version exists, the method throws an error.
76
+ * If no schema with the same name and version exists, a new schema will be inserted based on semantic versioning rules.
77
+ */
78
+ register(input: RegisterSchemaInput[]): Promise<Type.RuntimeType[]>;
79
+ /**
80
+ *
81
+ */
82
+ query<Q extends Types.NoExcessProperties<Query, Q>>(query?: Q & Query): QueryResult.QueryResult<ExtractQueryResult<Q>>;
83
+ }
84
+ //# sourceMappingURL=SchemaRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaRegistry.d.ts","sourceRoot":"","sources":["../../../src/SchemaRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,KAAK,WAAW,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AAGpC,MAAM,MAAM,KAAK,GAAG;IAClB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAEhD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC;IAEtC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,GACf;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC;IAClC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,MAAM,kBAAkB,CAAC,KAAK,IAAI,KAAK,SAAS;IAAE,QAAQ,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAA;CAAE,GAC1F,IAAI,CAAC,MAAM,CAAC,GAAG,GACf,IAAI,CAAC,WAAW,CAAC;AAErB,MAAM,WAAW,cAAc;IAC7B;;OAEG;IAEH,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC;IAE5C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAEpE;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,EAChD,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,GAChB,WAAW,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;CACnD"}
@@ -1,14 +1,14 @@
1
1
  import * as Schema from 'effect/Schema';
2
2
  import * as Obj from './Obj';
3
3
  import * as Type from './Type';
4
- export declare const Tag: Type.obj<Schema.Struct<{
5
- label: typeof Schema.String;
6
- hue: Schema.optional<typeof Schema.String>;
7
- }>>;
4
+ export declare const Tag: Type.Obj<{
5
+ readonly label: string;
6
+ readonly hue?: string | undefined;
7
+ }, Schema.Struct.Fields>;
8
8
  export type Tag = Schema.Schema.Type<typeof Tag>;
9
9
  export declare const make: (props: Obj.MakeProps<typeof Tag>) => Obj.Obj<import("./Entity").OfKind<import("./internal").EntityKind.Object> & {
10
- label: string;
11
- hue?: string | undefined;
10
+ readonly label: string;
11
+ readonly hue?: string | undefined;
12
12
  }>;
13
13
  export type Map = Record<string, Tag>;
14
14
  export declare const sortTags: ({ label: a }: Tag, { label: b }: Tag) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/Tag.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,eAAO,MAAM,GAAG;;;GAUf,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAEjD,eAAO,MAAM,IAAI,GAAI,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC;;;EAAyB,CAAC;AAG/E,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,eAAO,MAAM,QAAQ,GAAI,cAAc,GAAG,EAAE,cAAc,GAAG,WAAuB,CAAC;AAErF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,GAAG,EAG1B,CAAC;AAEpB,eAAO,MAAM,cAAc,GAAI,MAAM,GAAG,GAAG,SAAS,EAAE,MAAM,MAAM,KAAG,GAAG,GAAG,SAG1E,CAAC"}
1
+ {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/Tag.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,eAAO,MAAM,GAAG;;;wBAUf,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAEjD,eAAO,MAAM,IAAI,GAAI,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC;;;EAAyB,CAAC;AAG/E,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,eAAO,MAAM,QAAQ,GAAI,cAAc,GAAG,EAAE,cAAc,GAAG,WAAuB,CAAC;AAErF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,GAAG,EAG1B,CAAC;AAEpB,eAAO,MAAM,cAAc,GAAI,MAAM,GAAG,GAAG,SAAS,EAAE,MAAM,MAAM,KAAG,GAAG,GAAG,SAG1E,CAAC"}