@dxos/echo 0.8.4-main.2e9d522 → 0.8.4-main.3c1ae3b

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 (478) hide show
  1. package/README.md +1 -1
  2. package/dist/lib/browser/Annotation.mjs +31 -0
  3. package/dist/lib/browser/Annotation.mjs.map +7 -0
  4. package/dist/lib/browser/Database.mjs +14 -0
  5. package/dist/lib/browser/Database.mjs.map +7 -0
  6. package/dist/lib/browser/Entity.mjs +20 -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 +60 -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 +18 -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 +83 -0
  19. package/dist/lib/browser/Obj.mjs.map +7 -0
  20. package/dist/lib/browser/Order.mjs +11 -0
  21. package/dist/lib/browser/Order.mjs.map +7 -0
  22. package/dist/lib/browser/Query.mjs +25 -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 +21 -0
  27. package/dist/lib/browser/Ref.mjs.map +7 -0
  28. package/dist/lib/browser/Relation.mjs +33 -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 +25 -0
  33. package/dist/lib/browser/Tag.mjs.map +7 -0
  34. package/dist/lib/browser/Type.mjs +38 -0
  35. package/dist/lib/browser/Type.mjs.map +7 -0
  36. package/dist/lib/browser/chunk-3B2G6BW4.mjs +74 -0
  37. package/dist/lib/browser/chunk-3B2G6BW4.mjs.map +7 -0
  38. package/dist/lib/browser/chunk-5IN7XBIQ.mjs +24 -0
  39. package/dist/lib/browser/chunk-5IN7XBIQ.mjs.map +7 -0
  40. package/dist/lib/browser/chunk-6XVZF5VJ.mjs +2924 -0
  41. package/dist/lib/browser/chunk-6XVZF5VJ.mjs.map +7 -0
  42. package/dist/lib/browser/chunk-AGOWBKY6.mjs +94 -0
  43. package/dist/lib/browser/chunk-AGOWBKY6.mjs.map +7 -0
  44. package/dist/lib/browser/chunk-BD6MRI4M.mjs +113 -0
  45. package/dist/lib/browser/chunk-BD6MRI4M.mjs.map +7 -0
  46. package/dist/lib/browser/chunk-CGS2ULMK.mjs +11 -0
  47. package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +7 -0
  48. package/dist/lib/browser/chunk-DOPKE2FQ.mjs +32 -0
  49. package/dist/lib/browser/chunk-DOPKE2FQ.mjs.map +7 -0
  50. package/dist/lib/browser/chunk-ESLW4N7S.mjs +41 -0
  51. package/dist/lib/browser/chunk-ESLW4N7S.mjs.map +7 -0
  52. package/dist/lib/browser/chunk-F4YF6C3O.mjs +363 -0
  53. package/dist/lib/browser/chunk-F4YF6C3O.mjs.map +7 -0
  54. package/dist/lib/browser/chunk-FGFQWIZE.mjs +9 -0
  55. package/dist/lib/browser/chunk-FGFQWIZE.mjs.map +7 -0
  56. package/dist/lib/browser/chunk-INHXFXY5.mjs +22 -0
  57. package/dist/lib/browser/chunk-INHXFXY5.mjs.map +7 -0
  58. package/dist/lib/browser/chunk-JG4GH6LN.mjs +9 -0
  59. package/dist/lib/browser/chunk-JG4GH6LN.mjs.map +7 -0
  60. package/dist/lib/browser/chunk-MYCCGG2T.mjs +15 -0
  61. package/dist/lib/browser/chunk-MYCCGG2T.mjs.map +7 -0
  62. package/dist/lib/browser/chunk-NFH3POTD.mjs +37 -0
  63. package/dist/lib/browser/chunk-NFH3POTD.mjs.map +7 -0
  64. package/dist/lib/browser/chunk-O6FOICWT.mjs +57 -0
  65. package/dist/lib/browser/chunk-O6FOICWT.mjs.map +7 -0
  66. package/dist/lib/browser/chunk-P2B4BASR.mjs +288 -0
  67. package/dist/lib/browser/chunk-P2B4BASR.mjs.map +7 -0
  68. package/dist/lib/browser/chunk-QHC3ZYNC.mjs +152 -0
  69. package/dist/lib/browser/chunk-QHC3ZYNC.mjs.map +7 -0
  70. package/dist/lib/browser/chunk-QU7PWSZD.mjs +62 -0
  71. package/dist/lib/browser/chunk-QU7PWSZD.mjs.map +7 -0
  72. package/dist/lib/browser/chunk-RP4JV7FD.mjs +403 -0
  73. package/dist/lib/browser/chunk-RP4JV7FD.mjs.map +7 -0
  74. package/dist/lib/browser/chunk-V7TON6BX.mjs +151 -0
  75. package/dist/lib/browser/chunk-V7TON6BX.mjs.map +7 -0
  76. package/dist/lib/browser/chunk-WABSVOOX.mjs +303 -0
  77. package/dist/lib/browser/chunk-WABSVOOX.mjs.map +7 -0
  78. package/dist/lib/browser/chunk-XRHHSMHJ.mjs +39 -0
  79. package/dist/lib/browser/chunk-XRHHSMHJ.mjs.map +7 -0
  80. package/dist/lib/browser/chunk-ZIM3Y4ZK.mjs +38 -0
  81. package/dist/lib/browser/chunk-ZIM3Y4ZK.mjs.map +7 -0
  82. package/dist/lib/browser/index.mjs +72 -9
  83. package/dist/lib/browser/internal/index.mjs +347 -0
  84. package/dist/lib/browser/internal/index.mjs.map +7 -0
  85. package/dist/lib/browser/meta.json +1 -1
  86. package/dist/lib/browser/testing/index.mjs +322 -32
  87. package/dist/lib/browser/testing/index.mjs.map +4 -4
  88. package/dist/lib/node-esm/Annotation.mjs +31 -0
  89. package/dist/lib/node-esm/Annotation.mjs.map +7 -0
  90. package/dist/lib/node-esm/Database.mjs +14 -0
  91. package/dist/lib/node-esm/Database.mjs.map +7 -0
  92. package/dist/lib/node-esm/Entity.mjs +20 -0
  93. package/dist/lib/node-esm/Entity.mjs.map +7 -0
  94. package/dist/lib/node-esm/Err.mjs +11 -0
  95. package/dist/lib/node-esm/Err.mjs.map +7 -0
  96. package/dist/lib/node-esm/Filter.mjs +60 -0
  97. package/dist/lib/node-esm/Filter.mjs.map +7 -0
  98. package/dist/lib/node-esm/Format.mjs +67 -0
  99. package/dist/lib/node-esm/Format.mjs.map +7 -0
  100. package/dist/lib/node-esm/JsonSchema.mjs +18 -0
  101. package/dist/lib/node-esm/JsonSchema.mjs.map +7 -0
  102. package/dist/lib/node-esm/Key.mjs +13 -0
  103. package/dist/lib/node-esm/Key.mjs.map +7 -0
  104. package/dist/lib/node-esm/Obj.mjs +83 -0
  105. package/dist/lib/node-esm/Obj.mjs.map +7 -0
  106. package/dist/lib/node-esm/Order.mjs +11 -0
  107. package/dist/lib/node-esm/Order.mjs.map +7 -0
  108. package/dist/lib/node-esm/Query.mjs +25 -0
  109. package/dist/lib/node-esm/Query.mjs.map +7 -0
  110. package/dist/lib/node-esm/QueryResult.mjs +3 -0
  111. package/dist/lib/node-esm/QueryResult.mjs.map +7 -0
  112. package/dist/lib/node-esm/Ref.mjs +21 -0
  113. package/dist/lib/node-esm/Ref.mjs.map +7 -0
  114. package/dist/lib/node-esm/Relation.mjs +33 -0
  115. package/dist/lib/node-esm/Relation.mjs.map +7 -0
  116. package/dist/lib/node-esm/SchemaRegistry.mjs +3 -0
  117. package/dist/lib/node-esm/SchemaRegistry.mjs.map +7 -0
  118. package/dist/lib/node-esm/Tag.mjs +25 -0
  119. package/dist/lib/node-esm/Tag.mjs.map +7 -0
  120. package/dist/lib/node-esm/Type.mjs +38 -0
  121. package/dist/lib/node-esm/Type.mjs.map +7 -0
  122. package/dist/lib/node-esm/chunk-5M5P2DCR.mjs +32 -0
  123. package/dist/lib/node-esm/chunk-5M5P2DCR.mjs.map +7 -0
  124. package/dist/lib/node-esm/chunk-6OTQZKHX.mjs +303 -0
  125. package/dist/lib/node-esm/chunk-6OTQZKHX.mjs.map +7 -0
  126. package/dist/lib/node-esm/chunk-76LEDWHO.mjs +152 -0
  127. package/dist/lib/node-esm/chunk-76LEDWHO.mjs.map +7 -0
  128. package/dist/lib/node-esm/chunk-AGHZH33D.mjs +9 -0
  129. package/dist/lib/node-esm/chunk-AGHZH33D.mjs.map +7 -0
  130. package/dist/lib/node-esm/chunk-AJEMYSIR.mjs +22 -0
  131. package/dist/lib/node-esm/chunk-AJEMYSIR.mjs.map +7 -0
  132. package/dist/lib/node-esm/chunk-BJACR7QG.mjs +363 -0
  133. package/dist/lib/node-esm/chunk-BJACR7QG.mjs.map +7 -0
  134. package/dist/lib/node-esm/chunk-BYL2NPEA.mjs +37 -0
  135. package/dist/lib/node-esm/chunk-BYL2NPEA.mjs.map +7 -0
  136. package/dist/lib/node-esm/chunk-CCMFPJUT.mjs +74 -0
  137. package/dist/lib/node-esm/chunk-CCMFPJUT.mjs.map +7 -0
  138. package/dist/lib/node-esm/chunk-D5BW7KHR.mjs +39 -0
  139. package/dist/lib/node-esm/chunk-D5BW7KHR.mjs.map +7 -0
  140. package/dist/lib/node-esm/chunk-DJX53IQ3.mjs +2924 -0
  141. package/dist/lib/node-esm/chunk-DJX53IQ3.mjs.map +7 -0
  142. package/dist/lib/node-esm/chunk-FWTPV5QD.mjs +94 -0
  143. package/dist/lib/node-esm/chunk-FWTPV5QD.mjs.map +7 -0
  144. package/dist/lib/node-esm/chunk-HLUDHPFO.mjs +403 -0
  145. package/dist/lib/node-esm/chunk-HLUDHPFO.mjs.map +7 -0
  146. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  147. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  148. package/dist/lib/node-esm/chunk-JYZSF62S.mjs +113 -0
  149. package/dist/lib/node-esm/chunk-JYZSF62S.mjs.map +7 -0
  150. package/dist/lib/node-esm/chunk-KUX5JEL2.mjs +57 -0
  151. package/dist/lib/node-esm/chunk-KUX5JEL2.mjs.map +7 -0
  152. package/dist/lib/node-esm/chunk-LDXRA5TC.mjs +288 -0
  153. package/dist/lib/node-esm/chunk-LDXRA5TC.mjs.map +7 -0
  154. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs +15 -0
  155. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs.map +7 -0
  156. package/dist/lib/node-esm/chunk-NHYOREKX.mjs +62 -0
  157. package/dist/lib/node-esm/chunk-NHYOREKX.mjs.map +7 -0
  158. package/dist/lib/node-esm/chunk-QVZZHCDS.mjs +9 -0
  159. package/dist/lib/node-esm/chunk-QVZZHCDS.mjs.map +7 -0
  160. package/dist/lib/node-esm/chunk-W3OLV7MG.mjs +41 -0
  161. package/dist/lib/node-esm/chunk-W3OLV7MG.mjs.map +7 -0
  162. package/dist/lib/node-esm/chunk-W5AQXKVF.mjs +38 -0
  163. package/dist/lib/node-esm/chunk-W5AQXKVF.mjs.map +7 -0
  164. package/dist/lib/node-esm/chunk-YNBFXTDG.mjs +24 -0
  165. package/dist/lib/node-esm/chunk-YNBFXTDG.mjs.map +7 -0
  166. package/dist/lib/node-esm/chunk-Z53QIBP2.mjs +151 -0
  167. package/dist/lib/node-esm/chunk-Z53QIBP2.mjs.map +7 -0
  168. package/dist/lib/node-esm/index.mjs +72 -9
  169. package/dist/lib/node-esm/internal/index.mjs +347 -0
  170. package/dist/lib/node-esm/internal/index.mjs.map +7 -0
  171. package/dist/lib/node-esm/meta.json +1 -1
  172. package/dist/lib/node-esm/testing/index.mjs +322 -32
  173. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  174. package/dist/types/src/Annotation.d.ts +2 -0
  175. package/dist/types/src/Annotation.d.ts.map +1 -0
  176. package/dist/types/src/Database.d.ts +179 -0
  177. package/dist/types/src/Database.d.ts.map +1 -0
  178. package/dist/types/src/Entity.d.ts +36 -0
  179. package/dist/types/src/Entity.d.ts.map +1 -0
  180. package/dist/types/src/Err.d.ts +68 -0
  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 +4 -0
  185. package/dist/types/src/Format.d.ts.map +1 -0
  186. package/dist/types/src/Hypergraph.d.ts +60 -0
  187. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  188. package/dist/types/src/JsonSchema.d.ts +9 -0
  189. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  190. package/dist/types/src/Key.d.ts +1 -0
  191. package/dist/types/src/Key.d.ts.map +1 -1
  192. package/dist/types/src/Obj.d.ts +152 -35
  193. package/dist/types/src/Obj.d.ts.map +1 -1
  194. package/dist/types/src/Order.d.ts +11 -0
  195. package/dist/types/src/Order.d.ts.map +1 -0
  196. package/dist/types/src/Query.d.ts +107 -0
  197. package/dist/types/src/Query.d.ts.map +1 -0
  198. package/dist/types/src/Query.test.d.ts +2 -0
  199. package/dist/types/src/Query.test.d.ts.map +1 -0
  200. package/dist/types/src/QueryResult.d.ts +84 -0
  201. package/dist/types/src/QueryResult.d.ts.map +1 -0
  202. package/dist/types/src/Ref.d.ts +12 -10
  203. package/dist/types/src/Ref.d.ts.map +1 -1
  204. package/dist/types/src/Relation.d.ts +20 -14
  205. package/dist/types/src/Relation.d.ts.map +1 -1
  206. package/dist/types/src/SchemaRegistry.d.ts +73 -0
  207. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  208. package/dist/types/src/Tag.d.ts +17 -0
  209. package/dist/types/src/Tag.d.ts.map +1 -0
  210. package/dist/types/src/Type.d.ts +39 -50
  211. package/dist/types/src/Type.d.ts.map +1 -1
  212. package/dist/types/src/index.d.ts +15 -3
  213. package/dist/types/src/index.d.ts.map +1 -1
  214. package/dist/types/src/internal/annotations/annotations.d.ts +179 -0
  215. package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -0
  216. package/dist/types/src/internal/annotations/annotations.test.d.ts +2 -0
  217. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +1 -0
  218. package/dist/types/src/internal/annotations/index.d.ts +3 -0
  219. package/dist/types/src/internal/annotations/index.d.ts.map +1 -0
  220. package/dist/types/src/internal/annotations/util.d.ts +27 -0
  221. package/dist/types/src/internal/annotations/util.d.ts.map +1 -0
  222. package/dist/types/src/internal/entities/entity.d.ts +10 -0
  223. package/dist/types/src/internal/entities/entity.d.ts.map +1 -0
  224. package/dist/types/src/internal/entities/expando.d.ts +16 -0
  225. package/dist/types/src/internal/entities/expando.d.ts.map +1 -0
  226. package/dist/types/src/internal/entities/index.d.ts +6 -0
  227. package/dist/types/src/internal/entities/index.d.ts.map +1 -0
  228. package/dist/types/src/internal/entities/model.d.ts +70 -0
  229. package/dist/types/src/internal/entities/model.d.ts.map +1 -0
  230. package/dist/types/src/internal/entities/object.d.ts +11 -0
  231. package/dist/types/src/internal/entities/object.d.ts.map +1 -0
  232. package/dist/types/src/internal/entities/relation.d.ts +55 -0
  233. package/dist/types/src/internal/entities/relation.d.ts.map +1 -0
  234. package/dist/types/src/internal/entities/util.d.ts +2 -0
  235. package/dist/types/src/internal/entities/util.d.ts.map +1 -0
  236. package/dist/types/src/internal/formats/date.d.ts +63 -0
  237. package/dist/types/src/internal/formats/date.d.ts.map +1 -0
  238. package/dist/types/src/internal/formats/date.test.d.ts +2 -0
  239. package/dist/types/src/internal/formats/date.test.d.ts.map +1 -0
  240. package/dist/types/src/internal/formats/format.d.ts +32 -0
  241. package/dist/types/src/internal/formats/format.d.ts.map +1 -0
  242. package/dist/types/src/internal/formats/format.test.d.ts +2 -0
  243. package/dist/types/src/internal/formats/format.test.d.ts.map +1 -0
  244. package/dist/types/src/internal/formats/index.d.ts +8 -0
  245. package/dist/types/src/internal/formats/index.d.ts.map +1 -0
  246. package/dist/types/src/internal/formats/number.d.ts +31 -0
  247. package/dist/types/src/internal/formats/number.d.ts.map +1 -0
  248. package/dist/types/src/internal/formats/object.d.ts +35 -0
  249. package/dist/types/src/internal/formats/object.d.ts.map +1 -0
  250. package/dist/types/src/internal/formats/select.d.ts +13 -0
  251. package/dist/types/src/internal/formats/select.d.ts.map +1 -0
  252. package/dist/types/src/internal/formats/string.d.ts +42 -0
  253. package/dist/types/src/internal/formats/string.d.ts.map +1 -0
  254. package/dist/types/src/internal/formats/types.d.ts +72 -0
  255. package/dist/types/src/internal/formats/types.d.ts.map +1 -0
  256. package/dist/types/src/internal/index.d.ts +11 -0
  257. package/dist/types/src/internal/index.d.ts.map +1 -0
  258. package/dist/types/src/internal/json-schema/annotations.d.ts +19 -0
  259. package/dist/types/src/internal/json-schema/annotations.d.ts.map +1 -0
  260. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts +2 -0
  261. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +1 -0
  262. package/dist/types/src/internal/json-schema/index.d.ts +5 -0
  263. package/dist/types/src/internal/json-schema/index.d.ts.map +1 -0
  264. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts +7 -0
  265. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -0
  266. package/dist/types/src/internal/json-schema/json-schema-type.d.ts +250 -0
  267. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -0
  268. package/dist/types/src/internal/json-schema/json-schema.d.ts +29 -0
  269. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -0
  270. package/dist/types/src/internal/json-schema/json-schema.test.d.ts +2 -0
  271. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +1 -0
  272. package/dist/types/src/internal/object/common.d.ts +18 -0
  273. package/dist/types/src/internal/object/common.d.ts.map +1 -0
  274. package/dist/types/src/internal/object/create-object.d.ts +39 -0
  275. package/dist/types/src/internal/object/create-object.d.ts.map +1 -0
  276. package/dist/types/src/internal/object/create-object.test.d.ts +2 -0
  277. package/dist/types/src/internal/object/create-object.test.d.ts.map +1 -0
  278. package/dist/types/src/internal/object/deleted.d.ts +6 -0
  279. package/dist/types/src/internal/object/deleted.d.ts.map +1 -0
  280. package/dist/types/src/internal/object/ids.d.ts +6 -0
  281. package/dist/types/src/internal/object/ids.d.ts.map +1 -0
  282. package/dist/types/src/internal/object/index.d.ts +8 -0
  283. package/dist/types/src/internal/object/index.d.ts.map +1 -0
  284. package/dist/types/src/internal/object/inspect.d.ts +2 -0
  285. package/dist/types/src/internal/object/inspect.d.ts.map +1 -0
  286. package/dist/types/src/internal/object/json-serializer.d.ts +31 -0
  287. package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -0
  288. package/dist/types/src/internal/object/json-serializer.test.d.ts +2 -0
  289. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +1 -0
  290. package/dist/types/src/internal/object/schema-validator.d.ts +15 -0
  291. package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -0
  292. package/dist/types/src/internal/object/schema-validator.test.d.ts +2 -0
  293. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +1 -0
  294. package/dist/types/src/internal/object/typed-object.d.ts +31 -0
  295. package/dist/types/src/internal/object/typed-object.d.ts.map +1 -0
  296. package/dist/types/src/internal/object/typed-object.test.d.ts +2 -0
  297. package/dist/types/src/internal/object/typed-object.test.d.ts.map +1 -0
  298. package/dist/types/src/internal/proxy/handler.test.d.ts +2 -0
  299. package/dist/types/src/internal/proxy/handler.test.d.ts.map +1 -0
  300. package/dist/types/src/internal/proxy/index.d.ts +3 -0
  301. package/dist/types/src/internal/proxy/index.d.ts.map +1 -0
  302. package/dist/types/src/internal/proxy/make-object.d.ts +16 -0
  303. package/dist/types/src/internal/proxy/make-object.d.ts.map +1 -0
  304. package/dist/types/src/internal/proxy/schema.test.d.ts +2 -0
  305. package/dist/types/src/internal/proxy/schema.test.d.ts.map +1 -0
  306. package/dist/types/src/internal/proxy/typed-handler.d.ts +44 -0
  307. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -0
  308. package/dist/types/src/internal/proxy/typed-handler.test.d.ts +2 -0
  309. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +1 -0
  310. package/dist/types/src/internal/proxy/typed-object.test.d.ts +2 -0
  311. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +1 -0
  312. package/dist/types/src/internal/ref/index.d.ts +3 -0
  313. package/dist/types/src/internal/ref/index.d.ts.map +1 -0
  314. package/dist/types/src/internal/ref/ref-array.d.ts +21 -0
  315. package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -0
  316. package/dist/types/src/internal/ref/ref.d.ts +209 -0
  317. package/dist/types/src/internal/ref/ref.d.ts.map +1 -0
  318. package/dist/types/src/internal/ref/ref.test.d.ts +2 -0
  319. package/dist/types/src/internal/ref/ref.test.d.ts.map +1 -0
  320. package/dist/types/src/internal/schema/compose.d.ts +6 -0
  321. package/dist/types/src/internal/schema/compose.d.ts.map +1 -0
  322. package/dist/types/src/internal/schema/compose.test.d.ts +2 -0
  323. package/dist/types/src/internal/schema/compose.test.d.ts.map +1 -0
  324. package/dist/types/src/internal/schema/echo-schema.d.ts +168 -0
  325. package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -0
  326. package/dist/types/src/internal/schema/index.d.ts +5 -0
  327. package/dist/types/src/internal/schema/index.d.ts.map +1 -0
  328. package/dist/types/src/internal/schema/manipulation.d.ts +10 -0
  329. package/dist/types/src/internal/schema/manipulation.d.ts.map +1 -0
  330. package/dist/types/src/internal/schema/persistent-schema.d.ts +18 -0
  331. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +1 -0
  332. package/dist/types/src/internal/schema/snapshot.d.ts +6 -0
  333. package/dist/types/src/internal/schema/snapshot.d.ts.map +1 -0
  334. package/dist/types/src/internal/types/base.d.ts +37 -0
  335. package/dist/types/src/internal/types/base.d.ts.map +1 -0
  336. package/dist/types/src/internal/types/entity.d.ts +12 -0
  337. package/dist/types/src/internal/types/entity.d.ts.map +1 -0
  338. package/dist/types/src/internal/types/index.d.ts +6 -0
  339. package/dist/types/src/internal/types/index.d.ts.map +1 -0
  340. package/dist/types/src/internal/types/meta.d.ts +40 -0
  341. package/dist/types/src/internal/types/meta.d.ts.map +1 -0
  342. package/dist/types/src/internal/types/typename.d.ts +13 -0
  343. package/dist/types/src/internal/types/typename.d.ts.map +1 -0
  344. package/dist/types/src/internal/types/version.d.ts +15 -0
  345. package/dist/types/src/internal/types/version.d.ts.map +1 -0
  346. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  347. package/dist/types/src/testing/index.d.ts +3 -1
  348. package/dist/types/src/testing/index.d.ts.map +1 -1
  349. package/dist/types/src/testing/test-data.d.ts +18 -0
  350. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  351. package/dist/types/src/testing/test-schema.d.ts +407 -0
  352. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  353. package/dist/types/src/testing/util.d.ts +16 -0
  354. package/dist/types/src/testing/util.d.ts.map +1 -0
  355. package/dist/types/tsconfig.tsbuildinfo +1 -1
  356. package/package.json +164 -33
  357. package/src/Annotation.ts +17 -0
  358. package/src/Database.ts +308 -0
  359. package/src/Entity.ts +51 -0
  360. package/src/Err.ts +18 -0
  361. package/src/Filter.ts +376 -0
  362. package/src/Format.ts +9 -0
  363. package/src/Hypergraph.ts +74 -0
  364. package/src/JsonSchema.ts +16 -0
  365. package/src/Key.ts +3 -0
  366. package/src/Obj.ts +407 -71
  367. package/src/Order.ts +34 -0
  368. package/src/Query.test.ts +346 -0
  369. package/src/Query.ts +279 -0
  370. package/src/QueryResult.ts +109 -0
  371. package/src/Ref.ts +25 -9
  372. package/src/Relation.ts +72 -46
  373. package/src/SchemaRegistry.ts +92 -0
  374. package/src/Tag.ts +40 -0
  375. package/src/Type.ts +98 -84
  376. package/src/index.ts +17 -4
  377. package/src/internal/README.md +87 -0
  378. package/src/internal/annotations/annotations.test.ts +96 -0
  379. package/src/internal/annotations/annotations.ts +488 -0
  380. package/src/internal/annotations/index.ts +6 -0
  381. package/src/internal/annotations/util.ts +72 -0
  382. package/src/internal/entities/entity.ts +109 -0
  383. package/src/internal/entities/expando.ts +23 -0
  384. package/src/internal/entities/index.ts +9 -0
  385. package/src/internal/entities/model.ts +129 -0
  386. package/src/internal/entities/object.ts +45 -0
  387. package/src/internal/entities/relation.ts +155 -0
  388. package/src/internal/entities/util.ts +33 -0
  389. package/src/internal/formats/date.test.ts +56 -0
  390. package/src/internal/formats/date.ts +217 -0
  391. package/src/internal/formats/format.test.ts +77 -0
  392. package/src/internal/formats/format.ts +54 -0
  393. package/src/internal/formats/index.ts +12 -0
  394. package/src/internal/formats/number.ts +89 -0
  395. package/src/internal/formats/object.ts +80 -0
  396. package/src/internal/formats/select.ts +18 -0
  397. package/src/internal/formats/string.ts +81 -0
  398. package/src/internal/formats/types.ts +186 -0
  399. package/src/internal/index.ts +38 -0
  400. package/src/internal/json-schema/annotations.ts +50 -0
  401. package/src/internal/json-schema/effect-schema.test.ts +143 -0
  402. package/src/internal/json-schema/index.ts +8 -0
  403. package/src/internal/json-schema/json-schema-normalize.ts +109 -0
  404. package/src/internal/json-schema/json-schema-type.ts +404 -0
  405. package/src/internal/json-schema/json-schema.test.ts +861 -0
  406. package/src/internal/json-schema/json-schema.ts +528 -0
  407. package/src/internal/object/common.ts +75 -0
  408. package/src/internal/object/create-object.test.ts +116 -0
  409. package/src/internal/object/create-object.ts +95 -0
  410. package/src/internal/object/deleted.ts +19 -0
  411. package/src/internal/object/ids.ts +12 -0
  412. package/src/internal/object/index.ts +11 -0
  413. package/src/internal/object/inspect.ts +46 -0
  414. package/src/internal/object/json-serializer.test.ts +94 -0
  415. package/src/internal/object/json-serializer.ts +230 -0
  416. package/src/internal/object/schema-validator.test.ts +186 -0
  417. package/src/internal/object/schema-validator.ts +244 -0
  418. package/src/internal/object/typed-object.test.ts +34 -0
  419. package/src/internal/object/typed-object.ts +94 -0
  420. package/src/internal/proxy/handler.test.ts +173 -0
  421. package/src/internal/proxy/index.ts +6 -0
  422. package/src/internal/proxy/make-object.ts +113 -0
  423. package/src/internal/proxy/schema.test.ts +137 -0
  424. package/src/internal/proxy/typed-handler.test.ts +102 -0
  425. package/src/internal/proxy/typed-handler.ts +233 -0
  426. package/src/internal/proxy/typed-object.test.ts +105 -0
  427. package/src/internal/ref/index.ts +6 -0
  428. package/src/internal/ref/ref-array.ts +39 -0
  429. package/src/internal/ref/ref.test.ts +101 -0
  430. package/src/internal/ref/ref.ts +525 -0
  431. package/src/internal/schema/compose.test.ts +42 -0
  432. package/src/internal/schema/compose.ts +37 -0
  433. package/src/internal/schema/echo-schema.ts +385 -0
  434. package/src/internal/schema/index.ts +8 -0
  435. package/src/internal/schema/manipulation.ts +92 -0
  436. package/src/internal/schema/persistent-schema.ts +28 -0
  437. package/src/internal/schema/snapshot.ts +25 -0
  438. package/src/internal/types/base.ts +57 -0
  439. package/src/internal/types/entity.ts +23 -0
  440. package/src/internal/types/index.ts +9 -0
  441. package/src/internal/types/meta.ts +76 -0
  442. package/src/internal/types/typename.ts +45 -0
  443. package/src/internal/types/version.ts +20 -0
  444. package/src/testing/api.test.ts +100 -0
  445. package/src/testing/index.ts +3 -1
  446. package/src/testing/test-data.ts +130 -0
  447. package/src/testing/test-schema.ts +224 -0
  448. package/src/testing/util.ts +78 -0
  449. package/dist/lib/browser/chunk-EUA7CM23.mjs +0 -619
  450. package/dist/lib/browser/chunk-EUA7CM23.mjs.map +0 -7
  451. package/dist/lib/node-esm/chunk-IV6BWGHK.mjs +0 -619
  452. package/dist/lib/node-esm/chunk-IV6BWGHK.mjs.map +0 -7
  453. package/dist/types/src/experimental/database.d.ts +0 -8
  454. package/dist/types/src/experimental/database.d.ts.map +0 -1
  455. package/dist/types/src/experimental/index.d.ts +0 -1
  456. package/dist/types/src/experimental/index.d.ts.map +0 -1
  457. package/dist/types/src/experimental/queue.d.ts +0 -8
  458. package/dist/types/src/experimental/queue.d.ts.map +0 -1
  459. package/dist/types/src/experimental/space.d.ts +0 -8
  460. package/dist/types/src/experimental/space.d.ts.map +0 -1
  461. package/dist/types/src/query/dsl.d.ts +0 -218
  462. package/dist/types/src/query/dsl.d.ts.map +0 -1
  463. package/dist/types/src/query/dsl.test.d.ts +0 -2
  464. package/dist/types/src/query/dsl.test.d.ts.map +0 -1
  465. package/dist/types/src/query/index.d.ts +0 -2
  466. package/dist/types/src/query/index.d.ts.map +0 -1
  467. package/dist/types/src/testing/types.d.ts +0 -113
  468. package/dist/types/src/testing/types.d.ts.map +0 -1
  469. package/src/experimental/database.ts +0 -11
  470. package/src/experimental/index.ts +0 -7
  471. package/src/experimental/queue.ts +0 -11
  472. package/src/experimental/space.ts +0 -11
  473. package/src/query/dsl.test.ts +0 -323
  474. package/src/query/dsl.ts +0 -646
  475. package/src/query/index.ts +0 -5
  476. package/src/test/api.test.ts +0 -173
  477. package/src/testing/types.ts +0 -91
  478. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
@@ -0,0 +1,107 @@
1
+ import type * as EffectArray from 'effect/Array';
2
+ import type * as Schema from 'effect/Schema';
3
+ import { type QueryAST } from '@dxos/echo-protocol';
4
+ import * as Filter from './Filter';
5
+ import type * as Order from './Order';
6
+ import type * as Ref from './Ref';
7
+ import type * as Type$ from './Type';
8
+ /**
9
+ * All property paths inside T that are references.
10
+ */
11
+ type RefPropKey<T> = keyof T & string;
12
+ export interface Query<T> {
13
+ '~Query': {
14
+ value: T;
15
+ };
16
+ ast: QueryAST.Query;
17
+ /**
18
+ * Filter the current selection based on a filter.
19
+ * @param filter - Filter to select the objects.
20
+ * @returns Query for the selected objects.
21
+ */
22
+ select(filter: Filter.Filter<T>): Query<T>;
23
+ select(props: Filter.Props<T>): Query<T>;
24
+ /**
25
+ * Traverse an outgoing reference.
26
+ * @param key - Property path inside T that is a reference or optional reference.
27
+ * @returns Query for the target of the reference.
28
+ */
29
+ reference<K extends RefPropKey<T>>(key: K): Query<T[K] extends Ref.Any ? Ref.Target<T[K]> : T[K] extends Ref.Any | undefined ? Ref.Target<Exclude<T[K], undefined>> : never>;
30
+ /**
31
+ * Find objects referencing this object.
32
+ * @param target - Schema of the referencing object.
33
+ * @param key - Property path inside the referencing object that is a reference.
34
+ * @returns Query for the referencing objects.
35
+ */
36
+ referencedBy<S extends Schema.Schema.All>(target: S | string, key: RefPropKey<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
37
+ /**
38
+ * Find relations where this object is the source.
39
+ * @returns Query for the relation objects.
40
+ * @param relation - Schema of the relation.
41
+ * @param predicates - Predicates to filter the relation objects.
42
+ */
43
+ sourceOf<S extends Schema.Schema.All>(relation: S | string, predicates?: Filter.Props<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
44
+ /**
45
+ * Find relations where this object is the target.
46
+ * @returns Query for the relation objects.
47
+ * @param relation - Schema of the relation.
48
+ * @param predicates - Predicates to filter the relation objects.
49
+ */
50
+ targetOf<S extends Schema.Schema.All>(relation: S | string, predicates?: Filter.Props<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
51
+ /**
52
+ * For a query for relations, get the source objects.
53
+ * @returns Query for the source objects.
54
+ */
55
+ source(): Query<Type$.Relation.Source<T>>;
56
+ /**
57
+ * For a query for relations, get the target objects.
58
+ * @returns Query for the target objects.
59
+ */
60
+ target(): Query<Type$.Relation.Target<T>>;
61
+ /**
62
+ * Order the query results.
63
+ * Orders are specified in priority order. The first order will be applied first, etc.
64
+ * @param order - Order to sort the results.
65
+ * @returns Query for the ordered results.
66
+ */
67
+ orderBy(...order: EffectArray.NonEmptyArray<Order.Order<T>>): Query<T>;
68
+ /**
69
+ * Add options to a query.
70
+ */
71
+ options(options: QueryAST.QueryOptions): Query<T>;
72
+ }
73
+ export type Any = Query<any>;
74
+ export type Type<Q extends Any> = Q extends Query<infer T> ? T : never;
75
+ export declare const is: (value: unknown) => value is Any;
76
+ /** Construct a query from an ast. */
77
+ export declare const fromAst: (ast: QueryAST.Query) => Any;
78
+ /**
79
+ * Select objects based on a filter.
80
+ * @param filter - Filter to select the objects.
81
+ * @returns Query for the selected objects.
82
+ */
83
+ export declare const select: <F extends Filter.Any>(filter: F) => Query<Filter.Type<F>>;
84
+ /**
85
+ * Query for objects of a given schema.
86
+ * @param schema - Schema of the objects.
87
+ * @param predicates - Predicates to filter the objects.
88
+ * @returns Query for the objects.
89
+ *
90
+ * Shorthand for: `Query.select(Filter.type(schema, predicates))`.
91
+ */
92
+ export declare const type: (schema: Schema.Schema.All | string, predicates?: Filter.Props<unknown>) => Any;
93
+ /**
94
+ * Combine results of multiple queries.
95
+ * @param queries - Queries to combine.
96
+ * @returns Query for the combined results.
97
+ */
98
+ export declare const all: (...queries: Any[]) => Any;
99
+ /**
100
+ * Subtract one query from another.
101
+ * @param source - Query to subtract from.
102
+ * @param exclude - Query to subtract.
103
+ * @returns Query for the results of the source query minus the results of the exclude query.
104
+ */
105
+ export declare const without: <T>(source: Query<T>, exclude: Query<T>) => Query<T>;
106
+ export {};
107
+ //# sourceMappingURL=Query.d.ts.map
@@ -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,84 @@
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
+ * @reactive
47
+ */
48
+ readonly entries: Entry<T>[];
49
+ /**
50
+ * Currently available results.
51
+ *
52
+ * @reactive
53
+ */
54
+ readonly results: T[];
55
+ /**
56
+ * Returns all known results.
57
+ */
58
+ run(opts?: RunOptions): Promise<T[]>;
59
+ /**
60
+ * Returns all known results along with their match metadata.
61
+ */
62
+ runEntries(opts?: RunOptions): Promise<Entry<T>[]>;
63
+ /**
64
+ * Returns currently available results synchronously.
65
+ */
66
+ runSync(): T[];
67
+ /**
68
+ * Returns currently available results synchronously along with their match metadata.
69
+ */
70
+ runSyncEntries(): Entry<T>[];
71
+ /**
72
+ * Returns first result.
73
+ */
74
+ first(opts?: RunOptions): Promise<T>;
75
+ /**
76
+ * Returns first result if there is one.
77
+ */
78
+ firstOrUndefined(opts?: RunOptions): Promise<T | undefined>;
79
+ /**
80
+ * Subscribes to changes in query results.
81
+ */
82
+ subscribe(callback?: (query: QueryResult<T>) => void, opts?: SubscriptionOptions): CleanupFn;
83
+ }
84
+ //# 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;AAEF,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7B;;;;OAIG;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 EchoSchema from '@dxos/echo-schema';
1
+ import * as SchemaAST from 'effect/SchemaAST';
2
+ import { Ref as Ref$, type RefResolver } from './internal';
2
3
  import type * as Obj from './Obj';
3
- export type Ref<T> = EchoSchema.Ref<T>;
4
- export type Any = EchoSchema.Ref<Obj.Any>;
4
+ export type Ref<T> = Ref$<T>;
5
+ export type Any = Ref$<Obj.Any>;
5
6
  export declare const Array: Readonly<{
6
- targets: <T extends EchoSchema.AnyEchoObject>(refs: readonly EchoSchema.Ref<T>[]) => T[];
7
- loadAll: <T extends EchoSchema.AnyEchoObject>(refs: readonly EchoSchema.Ref<T>[]) => Promise<T[]>;
8
- removeById: (refs: EchoSchema.Ref<EchoSchema.AnyEchoObject>[], id: EchoSchema.ObjectId) => void;
7
+ targets: <T extends import("./internal").AnyEchoObject>(refs: readonly Ref$<T>[]) => T[];
8
+ loadAll: <T extends import("./internal").AnyEchoObject>(refs: readonly Ref$<T>[]) => Promise<T[]>;
9
+ removeById: (refs: Ref$<import("./internal").AnyEchoObject>[], 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 EchoSchema.Ref<infer T> ? T : never;
14
+ export type Target<R extends Any> = R extends Ref$<infer T> ? T : never;
14
15
  /**
15
16
  * Reference resolver.
16
17
  */
17
- export type Resolver = EchoSchema.RefResolver;
18
+ export type Resolver = RefResolver;
18
19
  export declare const isRef: (value: unknown) => value is Any;
19
- export declare const make: <T extends EchoSchema.WithId>(object: T) => EchoSchema.Ref<T>;
20
- export declare const fromDXN: (dxn: import("@dxos/keys").DXN) => EchoSchema.Ref<any>;
20
+ export declare const make: <T extends import("./internal").WithId>(object: T) => Ref$<T>;
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,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvC,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,eAAO,MAAM,KAAK;;;;EAAsB,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC;AAE9C,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,GAA0B,CAAC;AAE5E,eAAO,MAAM,IAAI,+DAAsB,CAAC;AAGxC,eAAO,MAAM,OAAO,wDAAyB,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,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;AAGpC,eAAO,MAAM,SAAS,GAAI,KAAK,SAAS,CAAC,GAAG,KAAG,OAS9C,CAAC"}
@@ -1,27 +1,33 @@
1
- import { type Schema } from 'effect';
2
- import * as EchoSchema from '@dxos/echo-schema';
3
- import { DXN } from '@dxos/keys';
1
+ import * as Schema from 'effect/Schema';
2
+ import { DXN, type ObjectId } from '@dxos/keys';
4
3
  import { type Live } from '@dxos/live-object';
5
- import type * as Obj from './Obj';
6
- import type * as Type from './Type';
7
- interface RelationBase<Source, Target> extends Type.Relation.Endpoints<Source, Target>, Type.OfKind<EchoSchema.EntityKind.Relation> {
8
- readonly id: EchoSchema.ObjectId;
9
- }
4
+ 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';
10
8
  /**
11
- * Relation type with specific properties.
9
+ * Base type for all ECHO relations.
10
+ * @private
12
11
  */
13
- export type Relation<Source extends Obj.Any, Target extends Obj.Any, Props> = RelationBase<Source, Target> & Props;
12
+ interface BaseRelation<Source, Target> extends AnyEchoObject, Type.Relation.Endpoints<Source, Target>, Entity.OfKind<EntityKind.Relation> {
13
+ }
14
14
  /**
15
- * Base type for all ECHO relations.
15
+ * Base type for all Relations objects.
16
16
  */
17
- export interface Any extends RelationBase<Obj.Any, Obj.Any> {
17
+ export interface Any extends BaseRelation<Obj.Any, Obj.Any> {
18
18
  }
19
+ export declare const Any: Type.relation<Schema.Struct<{}>, Type.obj<Schema.Struct<{}>>, Type.obj<Schema.Struct<{}>>>;
20
+ /**
21
+ * Relation type with specific source and target types.
22
+ */
23
+ export type Relation<Source extends Obj.Any, Target extends Obj.Any, Props> = BaseRelation<Source, Target> & Props;
19
24
  export declare const Source: unique symbol;
20
25
  export type Source = typeof Source;
21
26
  export declare const Target: unique symbol;
22
27
  export type Target = typeof Target;
23
28
  type MakeProps<T extends Any> = {
24
- id?: EchoSchema.ObjectId;
29
+ id?: ObjectId;
30
+ [MetaId]?: ObjectMeta;
25
31
  [Source]: T[Source];
26
32
  [Target]: T[Target];
27
33
  } & Type.Properties<T>;
@@ -32,7 +38,7 @@ type MakeProps<T extends Any> = {
32
38
  * @param meta - Relation metadata.
33
39
  * @returns
34
40
  */
35
- export declare const make: <S extends Type.Relation.Any>(schema: S, props: NoInfer<MakeProps<Schema.Schema.Type<S>>>, meta?: EchoSchema.ObjectMeta) => Live<Schema.Schema.Type<S> & Type.OfKind<EchoSchema.EntityKind.Relation>>;
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>>;
36
42
  export declare const isRelation: (value: unknown) => value is Any;
37
43
  /**
38
44
  * @returns Relation source DXN.
@@ -1 +1 @@
1
- {"version":3,"file":"Relation.d.ts","sourceRoot":"","sources":["../../../src/Relation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AAGpC,UAAU,YAAY,CAAC,MAAM,EAAE,MAAM,CACnC,SAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;IAC7C,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;CAClC;AAED;;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;;GAEG;AACH,MAAM,WAAW,GAAI,SAAQ,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;CAAG;AAG9D,eAAO,MAAM,MAAM,EAAE,OAAO,MAA2C,CAAC;AACxE,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AACnC,eAAO,MAAM,MAAM,EAAE,OAAO,MAA2C,CAAC;AACxE,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI;IAC9B,EAAE,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IACzB,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,CAAC,UAAU,KAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAiB1E,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":"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"}
@@ -0,0 +1,73 @@
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
+ export type RegisterSchemaInput = Type.Entity.Any | {
47
+ typename: string;
48
+ version: string;
49
+ jsonSchema: JsonSchema.JsonSchema;
50
+ /**
51
+ * Display name of the schema.
52
+ */
53
+ name?: string;
54
+ };
55
+ export type ExtractQueryResult<Query> = Query extends {
56
+ location: ('database' | 'runtime')[];
57
+ } ? Type.Entity.Any : Type.RuntimeType;
58
+ export interface SchemaRegistry {
59
+ /**
60
+ * Registers the provided schema.
61
+ *
62
+ * @returns Mutable runtime instances of schemas that were registered.
63
+ *
64
+ * The behavior of this method depends on the state of the database.
65
+ * The general principle is that the schema will be upserted into the space.
66
+ * If an equivalent schema with the same name and version already exists, the method does nothing.
67
+ * If a different schema with the same name and version exists, the method throws an error.
68
+ * If no schema with the same name and version exists, a new schema will be inserted based on semantic versioning rules.
69
+ */
70
+ register(input: RegisterSchemaInput[]): Promise<Type.RuntimeType[]>;
71
+ query<Q extends Types.NoExcessProperties<Query, Q>>(query?: Q & Query): QueryResult.QueryResult<ExtractQueryResult<Q>>;
72
+ }
73
+ //# 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;;;GAGG;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;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAEpE,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"}
@@ -0,0 +1,17 @@
1
+ import * as Schema from 'effect/Schema';
2
+ import * as Obj from './Obj';
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
+ }>>;
8
+ export type Tag = Schema.Schema.Type<typeof Tag>;
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;
12
+ }>;
13
+ export type Map = Record<string, Tag>;
14
+ export declare const sortTags: ({ label: a }: Tag, { label: b }: Tag) => number;
15
+ export declare const createTagList: (tags: Map) => Tag[];
16
+ export declare const findTagByLabel: (tags: Map | undefined, name: string) => Tag | undefined;
17
+ //# sourceMappingURL=Tag.d.ts.map
@@ -0,0 +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,28 +1,21 @@
1
- import { type Schema } from 'effect';
2
- import { type Simplify } from 'effect/Schema';
1
+ import type * as Schema$ from 'effect/Schema';
3
2
  import { type EncodedReference } from '@dxos/echo-protocol';
4
- import * as EchoSchema from '@dxos/echo-schema';
5
- import { type ToMutable } from '@dxos/echo-schema';
6
- import type * as Keys from '@dxos/keys';
7
- import type * as RelationModule from './Relation';
8
- export declare const KindId: unique symbol;
9
- export type KindId = typeof KindId;
10
- export declare const Kind: typeof EchoSchema.EntityKind;
11
- /**
12
- * Assigns a kind to an Object or Relation instance.
13
- */
14
- export interface OfKind<Kind extends EchoSchema.EntityKind> {
15
- readonly id: Keys.ObjectId;
16
- readonly [KindId]: Kind;
17
- }
18
- /**
19
- * Base ECHO schema type.
20
- */
21
- export type Schema = EchoSchema.EchoSchema;
3
+ import { type DXN } from '@dxos/keys';
4
+ import { type ToMutable } from '@dxos/util';
5
+ import type * as Entity$ from './Entity';
6
+ import { type ATTR_RELATION_SOURCE, type ATTR_RELATION_TARGET, type EchoRelationSchemaOptions, EchoSchema, Expando as Expando$, type ExpandoEncoded, PersistentSchema, type PersistentSchemaEncoded, Ref as Ref$, type RefFn, type RefSchema, type TypeAnnotation, type TypeMeta, toEffectSchema, toJsonSchema } from './internal';
7
+ import type * as Relation$ from './Relation';
8
+ export { toEffectSchema, toJsonSchema };
22
9
  /**
23
10
  * Returns all properties of an object or relation except for the id and kind.
24
11
  */
25
- export type Properties<T> = Omit<T, 'id' | KindId | RelationModule.Source | RelationModule.Target>;
12
+ export type Properties<T = any> = Omit<T, 'id' | Entity$.KindId | Relation$.Source | Relation$.Target>;
13
+ export declare namespace Entity {
14
+ /**
15
+ * Type.Obj.Any | Type.Relation.Any.
16
+ */
17
+ type Any = Obj.Any | Relation.Any;
18
+ }
26
19
  interface ObjJsonProps {
27
20
  id: string;
28
21
  }
@@ -32,13 +25,13 @@ interface ObjJsonProps {
32
25
  * This typedef avoids `TS4023` error (name from external module cannot be used named).
33
26
  * See Effect's note on interface types.
34
27
  */
35
- export interface obj<Self extends Schema.Schema.Any> extends EchoSchema.TypeMeta, Schema.AnnotableClass<obj<Self>, OfKind<EchoSchema.EntityKind.Object> & ToMutable<Schema.Schema.Type<Self>>, Simplify<ObjJsonProps & ToMutable<Schema.Schema.Encoded<Self>>>, Schema.Schema.Context<Self>> {
28
+ export interface obj<Self extends Schema$.Schema.Any> extends TypeMeta, Schema$.AnnotableClass<obj<Self>, Entity$.OfKind<typeof Entity$.Kind.Object> & ToMutable<Schema$.Schema.Type<Self>>, Schema$.Simplify<ObjJsonProps & ToMutable<Schema$.Schema.Encoded<Self>>>, Schema$.Schema.Context<Self>> {
36
29
  }
37
30
  /**
38
31
  * Object schema.
39
32
  */
40
33
  export declare const Obj: {
41
- (opts: EchoSchema.TypeMeta): <Self extends Schema.Schema.Any>(self: Self) => obj<Self>;
34
+ (opts: TypeMeta): <Self extends Schema$.Schema.Any>(self: Self) => obj<Self>;
42
35
  };
43
36
  /**
44
37
  * Object schema type definitions.
@@ -48,19 +41,17 @@ export declare namespace Obj {
48
41
  * Type that represents an arbitrary schema type of an object.
49
42
  * NOTE: This is not an instance type.
50
43
  */
51
- type Any = Schema.Schema.AnyNoContext;
52
- }
53
- export interface Expando extends OfKind<EchoSchema.EntityKind.Object> {
54
- [key: string]: any;
44
+ type Any = obj<Schema$.Schema.AnyNoContext>;
55
45
  }
56
- type ExpandoEncoded = Simplify<ObjJsonProps & {
57
- [key: string]: any;
58
- }>;
59
- export declare const Expando: Schema.Schema<Expando, ExpandoEncoded, never>;
46
+ export declare const Expando: obj<Schema$.Schema<Expando$, ExpandoEncoded>>;
47
+ export type Expando = obj<Schema$.Schema<Expando$, ExpandoEncoded>>;
48
+ export declare const PersistentType: obj<Schema$.Schema<PersistentSchema, PersistentSchemaEncoded>>;
49
+ export type PersistentType = obj<Schema$.Schema<PersistentSchema, PersistentSchemaEncoded>>;
50
+ export { EchoSchema as RuntimeType };
60
51
  interface RelationJsonProps {
61
52
  id: string;
62
- [EchoSchema.ATTR_RELATION_SOURCE]: string;
63
- [EchoSchema.ATTR_RELATION_TARGET]: string;
53
+ [ATTR_RELATION_SOURCE]: string;
54
+ [ATTR_RELATION_TARGET]: string;
64
55
  }
65
56
  /**
66
57
  * Return type of the `Relation` schema constructor.
@@ -68,13 +59,13 @@ interface RelationJsonProps {
68
59
  * This typedef avoids `TS4023` error (name from external module cannot be used named).
69
60
  * See Effect's note on interface types.
70
61
  */
71
- export interface relation<Self extends Schema.Schema.Any, SourceSchema extends Schema.Schema.Any, TargetSchema extends Schema.Schema.Any> extends EchoSchema.TypeMeta, Schema.AnnotableClass<relation<Self, SourceSchema, TargetSchema>, OfKind<EchoSchema.EntityKind.Relation> & Relation.Endpoints<Schema.Schema.Type<SourceSchema>, Schema.Schema.Type<TargetSchema>> & ToMutable<Schema.Schema.Type<Self>>, Simplify<RelationJsonProps & ToMutable<Schema.Schema.Encoded<Self>>>, Schema.Schema.Context<Self>> {
62
+ export interface relation<Self extends Schema$.Schema.Any, SourceSchema extends Schema$.Schema.Any, TargetSchema extends Schema$.Schema.Any> extends TypeMeta, Schema$.AnnotableClass<relation<Self, SourceSchema, TargetSchema>, Entity$.OfKind<typeof Entity$.Kind.Relation> & Relation.Endpoints<Schema$.Schema.Type<SourceSchema>, Schema$.Schema.Type<TargetSchema>> & ToMutable<Schema$.Schema.Type<Self>>, Schema$.Simplify<RelationJsonProps & ToMutable<Schema$.Schema.Encoded<Self>>>, Schema$.Schema.Context<Self>> {
72
63
  }
73
64
  /**
74
65
  * Relation schema.
75
66
  */
76
67
  export declare const Relation: {
77
- <Source extends Schema.Schema.AnyNoContext, Target extends Schema.Schema.AnyNoContext>(opts: EchoSchema.EchoRelationOptions<Source, Target>): <Self extends Schema.Schema.Any>(self: Self) => relation<Self, Source, Target>;
68
+ <Source extends Schema$.Schema.AnyNoContext, Target extends Schema$.Schema.AnyNoContext>(opts: EchoRelationSchemaOptions<Source, Target>): <Self extends Schema$.Schema.Any>(self: Self) => relation<Self, Source, Target>;
78
69
  };
79
70
  /**
80
71
  * Relation schema type definitions.
@@ -84,7 +75,7 @@ export declare namespace Relation {
84
75
  * Type that represents an arbitrary schema type of a relation.
85
76
  * NOTE: This is not an instance type.
86
77
  */
87
- type Any = Schema.Schema.AnyNoContext;
78
+ type Any = Schema$.Schema.AnyNoContext;
88
79
  /**
89
80
  * Get relation source type.
90
81
  */
@@ -94,8 +85,8 @@ export declare namespace Relation {
94
85
  */
95
86
  type Target<A> = A extends Relation.Endpoints<infer _S, infer T> ? T : never;
96
87
  type Endpoints<Source, Target> = {
97
- [RelationModule.Source]: Source;
98
- [RelationModule.Target]: Target;
88
+ [Relation$.Source]: Source;
89
+ [Relation$.Target]: Target;
99
90
  };
100
91
  }
101
92
  /**
@@ -104,20 +95,20 @@ export declare namespace Relation {
104
95
  * This typedef avoids `TS4023` error (name from external module cannot be used named).
105
96
  * See Effect's note on interface types.
106
97
  */
107
- export interface ref<TargetSchema extends Schema.Schema.Any> extends EchoSchema.Ref$<Schema.Schema.Type<TargetSchema>> {
98
+ export interface ref<TargetSchema extends Schema$.Schema.Any> extends RefSchema<Schema$.Schema.Type<TargetSchema>> {
108
99
  }
109
100
  /**
110
101
  * Ref schema.
111
102
  */
112
- export declare const Ref: <S extends Obj.Any>(schema: S) => ref<S>;
113
- export interface Ref<T> extends Schema.SchemaClass<EchoSchema.Ref<T>, EncodedReference> {
103
+ export declare const Ref: RefFn;
104
+ export interface Ref<T> extends Schema$.SchemaClass<Ref$<T>, EncodedReference> {
114
105
  }
115
106
  export declare namespace Ref {
116
107
  /**
117
108
  * Type that represents an arbitrary schema type of a reference.
118
109
  * NOTE: This is not an instance type.
119
110
  */
120
- type Any = Schema.Schema<EchoSchema.Ref<any>, EncodedReference>;
111
+ type Any = Schema$.Schema<Ref$<any>, EncodedReference>;
121
112
  }
122
113
  /**
123
114
  * Gets the full DXN of the schema.
@@ -125,29 +116,27 @@ export declare namespace Ref {
125
116
  * @example "dxn:example.com/type/Person:0.1.0"
126
117
  * @example "dxn:echo:SSSSSSSSSS:XXXXXXXXXXXXX"
127
118
  */
128
- export declare const getDXN: (schema: Obj.Any | Relation.Any) => Keys.DXN | undefined;
119
+ export declare const getDXN: (schema: Entity.Any) => DXN | undefined;
129
120
  /**
130
121
  * @param schema - Schema to get the typename from.
131
122
  * @returns The typename of the schema. Example: `example.com/type/Person`.
132
123
  */
133
- export declare const getTypename: (schema: Obj.Any | Relation.Any) => string;
124
+ export declare const getTypename: (schema: Entity.Any) => string;
134
125
  /**
135
126
  * Gets the version of the schema.
136
127
  * @example 0.1.0
137
128
  */
138
- export declare const getVersion: (schema: Obj.Any | Relation.Any) => string;
129
+ export declare const getVersion: (schema: Entity.Any) => string;
139
130
  /**
140
131
  * @returns True if the schema is mutable.
141
132
  */
142
- export declare const isMutable: (schema: Schema.Schema.AnyNoContext) => schema is EchoSchema.EchoSchema;
133
+ export declare const isMutable: (schema: Schema$.Schema.AnyNoContext) => schema is EchoSchema;
143
134
  /**
144
135
  * ECHO type metadata.
145
136
  */
146
- export type Meta = EchoSchema.TypeAnnotation;
137
+ export type Meta = TypeAnnotation;
147
138
  /**
148
139
  * Gets the meta data of the schema.
149
140
  */
150
- export declare const getMeta: (schema: Obj.Any | Relation.Any) => Meta | undefined;
151
- export { SpaceId, ObjectId, DXN } from '@dxos/keys';
152
- export { Format, JsonSchemaType as JsonSchema, toEffectSchema, toJsonSchema } from '@dxos/echo-schema';
141
+ export declare const getMeta: (schema: Entity.Any) => Meta | undefined;
153
142
  //# sourceMappingURL=Type.d.ts.map