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

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 (558) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +3 -3
  3. package/dist/lib/neutral/Annotation.mjs +5 -3
  4. package/dist/lib/neutral/Database.mjs +8 -4
  5. package/dist/lib/neutral/Entity.mjs +16 -11
  6. package/dist/lib/neutral/Err.mjs +1 -1
  7. package/dist/lib/neutral/Extension.mjs +18 -0
  8. package/dist/lib/neutral/Extension.mjs.map +7 -0
  9. package/dist/lib/neutral/Feed.mjs +23 -14
  10. package/dist/lib/neutral/Filter.mjs +23 -10
  11. package/dist/lib/neutral/Format.mjs +3 -3
  12. package/dist/lib/neutral/JsonSchema.mjs +8 -7
  13. package/dist/lib/neutral/Key.mjs +1 -1
  14. package/dist/lib/neutral/Migration.mjs +17 -0
  15. package/dist/lib/neutral/Migration.mjs.map +7 -0
  16. package/dist/lib/neutral/Obj.mjs +16 -10
  17. package/dist/lib/neutral/Order.mjs +1 -1
  18. package/dist/lib/neutral/Query.mjs +19 -13
  19. package/dist/lib/neutral/QueryResult.mjs +1 -1
  20. package/dist/lib/neutral/Ref.mjs +9 -7
  21. package/dist/lib/neutral/Relation.mjs +15 -11
  22. package/dist/lib/neutral/SchemaRegistry.mjs +1 -1
  23. package/dist/lib/neutral/Tag.mjs +14 -10
  24. package/dist/lib/neutral/Type.mjs +10 -7
  25. package/dist/lib/neutral/{chunk-DZQSL6RW.mjs → chunk-44HT3MEC.mjs} +2 -2
  26. package/dist/lib/neutral/{chunk-DZQSL6RW.mjs.map → chunk-44HT3MEC.mjs.map} +1 -1
  27. package/dist/lib/neutral/{chunk-OVUBTQLT.mjs → chunk-5SL5LDLD.mjs} +4 -2
  28. package/dist/lib/neutral/chunk-5SL5LDLD.mjs.map +7 -0
  29. package/dist/lib/neutral/{chunk-ANHVGJI4.mjs → chunk-7RVZT53K.mjs} +1 -1
  30. package/dist/lib/neutral/chunk-APHSOTIX.mjs +34 -0
  31. package/dist/lib/neutral/chunk-APHSOTIX.mjs.map +7 -0
  32. package/dist/lib/neutral/{chunk-ALOGSVBP.mjs → chunk-APJKDGFL.mjs} +72 -6
  33. package/dist/lib/neutral/chunk-APJKDGFL.mjs.map +7 -0
  34. package/dist/lib/neutral/{chunk-T6JEFNP6.mjs → chunk-BICZKPQG.mjs} +1 -1
  35. package/dist/lib/neutral/{chunk-T6JEFNP6.mjs.map → chunk-BICZKPQG.mjs.map} +1 -1
  36. package/dist/lib/neutral/chunk-BMB7IHGB.mjs +346 -0
  37. package/dist/lib/neutral/chunk-BMB7IHGB.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-FIWO2FZK.mjs +36 -0
  39. package/dist/lib/neutral/chunk-FIWO2FZK.mjs.map +7 -0
  40. package/dist/lib/neutral/{chunk-PP4DNUZU.mjs → chunk-G54OX4IX.mjs} +1418 -2885
  41. package/dist/lib/neutral/chunk-G54OX4IX.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-GWFFC34K.mjs +50 -0
  43. package/dist/lib/neutral/chunk-GWFFC34K.mjs.map +7 -0
  44. package/dist/lib/neutral/{chunk-5ELDDYWE.mjs → chunk-I2DARWPX.mjs} +17 -19
  45. package/dist/lib/neutral/chunk-I2DARWPX.mjs.map +7 -0
  46. package/dist/lib/neutral/{chunk-KGV3QIRX.mjs → chunk-J54QMAKF.mjs} +125 -17
  47. package/dist/lib/neutral/chunk-J54QMAKF.mjs.map +7 -0
  48. package/dist/lib/neutral/{chunk-BRJSLACP.mjs → chunk-MGSQGHOD.mjs} +71 -17
  49. package/dist/lib/neutral/chunk-MGSQGHOD.mjs.map +7 -0
  50. package/dist/lib/neutral/chunk-MLS7U7AT.mjs +734 -0
  51. package/dist/lib/neutral/chunk-MLS7U7AT.mjs.map +7 -0
  52. package/dist/lib/neutral/{chunk-4KG6IGL4.mjs → chunk-N4B7FHQT.mjs} +4 -4
  53. package/dist/lib/neutral/{chunk-4KG6IGL4.mjs.map → chunk-N4B7FHQT.mjs.map} +2 -2
  54. package/dist/lib/neutral/{chunk-QXF3LGN2.mjs → chunk-N7VOEPSV.mjs} +8 -3
  55. package/dist/lib/neutral/chunk-N7VOEPSV.mjs.map +7 -0
  56. package/dist/lib/neutral/{chunk-T4MPQJ7X.mjs → chunk-PSZBLH53.mjs} +6 -22
  57. package/dist/lib/neutral/chunk-PSZBLH53.mjs.map +7 -0
  58. package/dist/lib/neutral/{chunk-ZWKJ4LZJ.mjs → chunk-PT37DG2F.mjs} +23 -51
  59. package/dist/lib/neutral/chunk-PT37DG2F.mjs.map +7 -0
  60. package/dist/lib/neutral/{chunk-GAWKQ5DZ.mjs → chunk-Q2KKKJSV.mjs} +5 -5
  61. package/dist/lib/neutral/chunk-Q2KKKJSV.mjs.map +7 -0
  62. package/dist/lib/neutral/{chunk-AQP4QKYP.mjs → chunk-Q7ZL2P5H.mjs} +56 -19
  63. package/dist/lib/neutral/chunk-Q7ZL2P5H.mjs.map +7 -0
  64. package/dist/lib/neutral/{chunk-O3TZFQCT.mjs → chunk-QRZ2I3ZM.mjs} +2 -2
  65. package/dist/lib/neutral/chunk-QRZ2I3ZM.mjs.map +7 -0
  66. package/dist/lib/neutral/{chunk-W7OP5HGZ.mjs → chunk-SCPFDS2E.mjs} +14 -10
  67. package/dist/lib/neutral/chunk-SCPFDS2E.mjs.map +7 -0
  68. package/dist/lib/neutral/{chunk-F7KMHDPJ.mjs → chunk-TNBK56IN.mjs} +54 -31
  69. package/dist/lib/neutral/chunk-TNBK56IN.mjs.map +7 -0
  70. package/dist/lib/neutral/{chunk-M2KVTHZM.mjs → chunk-TRPZU2HV.mjs} +10 -10
  71. package/dist/lib/neutral/chunk-TRPZU2HV.mjs.map +7 -0
  72. package/dist/lib/neutral/{chunk-ZTUBYOGB.mjs → chunk-TTCSATUD.mjs} +1 -1
  73. package/dist/lib/neutral/chunk-TTCSATUD.mjs.map +7 -0
  74. package/dist/lib/neutral/{chunk-OMUPQMLR.mjs → chunk-V72DY6LU.mjs} +1 -1
  75. package/dist/lib/neutral/chunk-ZFACXBY6.mjs +136 -0
  76. package/dist/lib/neutral/chunk-ZFACXBY6.mjs.map +7 -0
  77. package/dist/lib/neutral/{chunk-MXQJZCPY.mjs → chunk-ZISMEVKD.mjs} +1 -1
  78. package/dist/lib/neutral/chunk-ZISMEVKD.mjs.map +7 -0
  79. package/dist/lib/neutral/index.mjs +38 -25
  80. package/dist/lib/neutral/internal/index.mjs +50 -38
  81. package/dist/lib/neutral/meta.json +1 -1
  82. package/dist/lib/neutral/testing/index.mjs +196 -136
  83. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  84. package/dist/types/src/Annotation.d.ts +3 -3
  85. package/dist/types/src/Annotation.d.ts.map +1 -1
  86. package/dist/types/src/Collection.d.ts.map +1 -1
  87. package/dist/types/src/Database.d.ts +16 -4
  88. package/dist/types/src/Database.d.ts.map +1 -1
  89. package/dist/types/src/Dataset.d.ts +2 -1
  90. package/dist/types/src/Dataset.d.ts.map +1 -1
  91. package/dist/types/src/Entity.d.ts +17 -11
  92. package/dist/types/src/Entity.d.ts.map +1 -1
  93. package/dist/types/src/Err.d.ts +18 -18
  94. package/dist/types/src/Err.d.ts.map +1 -1
  95. package/dist/types/src/Extension.d.ts +80 -0
  96. package/dist/types/src/Extension.d.ts.map +1 -0
  97. package/dist/types/src/Extension.test.d.ts +2 -0
  98. package/dist/types/src/Extension.test.d.ts.map +1 -0
  99. package/dist/types/src/Feed.d.ts +65 -24
  100. package/dist/types/src/Feed.d.ts.map +1 -1
  101. package/dist/types/src/Filter.d.ts +54 -4
  102. package/dist/types/src/Filter.d.ts.map +1 -1
  103. package/dist/types/src/Filter.test.d.ts +2 -0
  104. package/dist/types/src/Filter.test.d.ts.map +1 -0
  105. package/dist/types/src/Format.d.ts +1 -1
  106. package/dist/types/src/Format.d.ts.map +1 -1
  107. package/dist/types/src/Hypergraph.d.ts +9 -4
  108. package/dist/types/src/Hypergraph.d.ts.map +1 -1
  109. package/dist/types/src/Json.d.ts +33 -0
  110. package/dist/types/src/Json.d.ts.map +1 -0
  111. package/dist/types/src/Json.test.d.ts +2 -0
  112. package/dist/types/src/Json.test.d.ts.map +1 -0
  113. package/dist/types/src/JsonSchema.d.ts +5 -5
  114. package/dist/types/src/JsonSchema.d.ts.map +1 -1
  115. package/dist/types/src/Migration.d.ts +69 -0
  116. package/dist/types/src/Migration.d.ts.map +1 -0
  117. package/dist/types/src/Obj.d.ts +46 -30
  118. package/dist/types/src/Obj.d.ts.map +1 -1
  119. package/dist/types/src/Order.d.ts.map +1 -1
  120. package/dist/types/src/Query.d.ts +13 -2
  121. package/dist/types/src/Query.d.ts.map +1 -1
  122. package/dist/types/src/Ref.d.ts +12 -11
  123. package/dist/types/src/Ref.d.ts.map +1 -1
  124. package/dist/types/src/Relation.d.ts +16 -16
  125. package/dist/types/src/Relation.d.ts.map +1 -1
  126. package/dist/types/src/SchemaRegistry.d.ts +1 -1
  127. package/dist/types/src/Tag.d.ts +2 -2
  128. package/dist/types/src/Tag.d.ts.map +1 -1
  129. package/dist/types/src/Type.d.ts +10 -9
  130. package/dist/types/src/Type.d.ts.map +1 -1
  131. package/dist/types/src/View.d.ts +1 -1
  132. package/dist/types/src/View.d.ts.map +1 -1
  133. package/dist/types/src/exemplars.test.d.ts +2 -0
  134. package/dist/types/src/exemplars.test.d.ts.map +1 -0
  135. package/dist/types/src/index.d.ts +3 -0
  136. package/dist/types/src/index.d.ts.map +1 -1
  137. package/dist/types/src/internal/{annotations → Annotation}/annotations.d.ts +33 -2
  138. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  139. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  140. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  141. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  142. package/dist/types/src/internal/{api → Annotation}/sorting.d.ts +1 -1
  143. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  144. package/dist/types/src/internal/{annotations → Annotation}/util.d.ts +2 -2
  145. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  146. package/dist/types/src/internal/{api/entity.d.ts → Entity/api.d.ts} +2 -2
  147. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  148. package/dist/types/src/internal/{entities → Entity}/entity.d.ts +2 -2
  149. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  150. package/dist/types/src/internal/{entities → Entity}/index.d.ts +2 -0
  151. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  152. package/dist/types/src/internal/{entities → Entity}/model.d.ts +4 -26
  153. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  154. package/dist/types/src/internal/{entities → Entity}/object.d.ts +2 -2
  155. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  156. package/dist/types/src/internal/{entities → Entity}/relation.d.ts +3 -30
  157. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  158. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  159. package/dist/types/src/internal/{api → Entity}/version.d.ts +1 -1
  160. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  161. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  162. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  163. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  164. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  165. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  166. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  167. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  168. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  169. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  170. package/dist/types/src/internal/{formats → Format}/types.d.ts +1 -1
  171. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  172. package/dist/types/src/internal/{json-schema → JsonSchema}/annotations.d.ts +1 -1
  173. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  174. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  175. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  176. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  177. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +23 -23
  178. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  179. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.d.ts +1 -1
  180. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  181. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  182. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  183. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  184. package/dist/types/src/internal/{object → Obj}/create-object.d.ts +2 -2
  185. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  186. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  187. package/dist/types/src/internal/{object → Obj}/deleted.d.ts +1 -1
  188. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  189. package/dist/types/src/internal/{object → Obj}/ids.d.ts +1 -1
  190. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  191. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  192. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  193. package/dist/types/src/internal/{object → Obj}/json-serializer.d.ts +13 -5
  194. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  195. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  196. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  197. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  198. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  199. package/dist/types/src/internal/{object → Obj}/set-value.d.ts +2 -2
  200. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  201. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  202. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  203. package/dist/types/src/internal/{object → Obj}/typed-object.d.ts +2 -2
  204. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  205. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  206. package/dist/types/src/internal/Query.d.ts +10 -0
  207. package/dist/types/src/internal/Query.d.ts.map +1 -0
  208. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  209. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +1 -1
  210. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  211. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +15 -2
  212. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  213. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  214. package/dist/types/src/internal/{schema → Type}/compose.d.ts +1 -1
  215. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  216. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  217. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +6 -6
  218. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  219. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  220. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  221. package/dist/types/src/internal/{schema → Type}/persistent-schema.d.ts +2 -2
  222. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  223. package/dist/types/src/internal/{api → common/api}/index.d.ts +0 -4
  224. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  225. package/dist/types/src/internal/{api → common/api}/meta.d.ts +3 -3
  226. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  227. package/dist/types/src/internal/common/index.d.ts +4 -0
  228. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  229. package/dist/types/src/internal/{proxy → common/proxy}/change-context.d.ts +1 -1
  230. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  231. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  232. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  233. package/dist/types/src/internal/{proxy → common/proxy}/errors.d.ts +1 -1
  234. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  235. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  236. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  237. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  238. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  239. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  240. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  241. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  242. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  243. package/dist/types/src/internal/{proxy → common/proxy}/reactive-array.d.ts +1 -1
  244. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  245. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts +2 -2
  246. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts.map +1 -1
  247. package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
  248. package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
  249. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  250. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  251. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  252. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  253. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  254. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  255. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  256. package/dist/types/src/internal/{types → common/types}/entity.d.ts +4 -4
  257. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  258. package/dist/types/src/internal/{types → common/types}/index.d.ts +1 -0
  259. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  260. package/dist/types/src/internal/{types → common/types}/meta.d.ts +13 -3
  261. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  262. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  263. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  264. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  265. package/dist/types/src/internal/{types → common/types}/version.d.ts +1 -1
  266. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  267. package/dist/types/src/internal/index.d.ts +9 -10
  268. package/dist/types/src/internal/index.d.ts.map +1 -1
  269. package/dist/types/src/testing/test-data.d.ts +8 -8
  270. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  271. package/dist/types/src/testing/test-schema.d.ts +53 -53
  272. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  273. package/dist/types/src/testing/util.d.ts.map +1 -1
  274. package/dist/types/tsconfig.tsbuildinfo +1 -1
  275. package/package.json +25 -15
  276. package/src/Annotation.ts +6 -3
  277. package/src/Collection.ts +8 -1
  278. package/src/Database.ts +55 -18
  279. package/src/Dataset.ts +2 -0
  280. package/src/Entity.ts +20 -11
  281. package/src/Err.ts +2 -0
  282. package/src/Extension.test.ts +235 -0
  283. package/src/Extension.ts +122 -0
  284. package/src/Feed.ts +118 -37
  285. package/src/Filter.test.ts +90 -0
  286. package/src/Filter.ts +99 -3
  287. package/src/Format.ts +1 -1
  288. package/src/Hypergraph.ts +10 -5
  289. package/src/Json.test.ts +175 -0
  290. package/src/Json.ts +102 -0
  291. package/src/JsonSchema.ts +7 -5
  292. package/src/Migration.ts +106 -0
  293. package/src/Obj.test.ts +107 -15
  294. package/src/Obj.ts +167 -40
  295. package/src/Order.ts +2 -0
  296. package/src/Query.test.ts +222 -32
  297. package/src/Query.ts +62 -10
  298. package/src/Ref.ts +16 -12
  299. package/src/Relation.test.ts +2 -2
  300. package/src/Relation.ts +28 -21
  301. package/src/SchemaRegistry.ts +1 -1
  302. package/src/Tag.ts +3 -1
  303. package/src/Type.ts +14 -11
  304. package/src/View.ts +9 -2
  305. package/src/exemplars.test.ts +21 -0
  306. package/src/index.ts +4 -0
  307. package/src/internal/{annotations → Annotation}/annotations.test.ts +56 -7
  308. package/src/internal/{annotations → Annotation}/annotations.ts +84 -20
  309. package/src/internal/{annotations → Annotation}/index.ts +1 -0
  310. package/src/internal/{api → Annotation}/sorting.ts +2 -4
  311. package/src/internal/{annotations → Annotation}/util.ts +1 -1
  312. package/src/internal/{api/entity.ts → Entity/api.ts} +3 -2
  313. package/src/internal/{entities → Entity}/entity.ts +2 -2
  314. package/src/internal/{entities → Entity}/index.ts +2 -0
  315. package/src/internal/{entities → Entity}/model.ts +15 -42
  316. package/src/internal/{entities → Entity}/object.ts +2 -3
  317. package/src/internal/{entities → Entity}/relation.ts +19 -36
  318. package/src/internal/{api → Entity}/version.ts +2 -2
  319. package/src/internal/{formats → Format}/date.test.ts +1 -2
  320. package/src/internal/{formats → Format}/format.test.ts +1 -2
  321. package/src/internal/{formats → Format}/types.ts +2 -2
  322. package/src/internal/{json-schema → JsonSchema}/annotations.ts +3 -3
  323. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +4 -4
  324. package/src/internal/{json-schema → JsonSchema}/json-schema.test.ts +48 -49
  325. package/src/internal/{json-schema → JsonSchema}/json-schema.ts +3 -4
  326. package/src/internal/{object → Obj}/clone.ts +3 -3
  327. package/src/internal/{object → Obj}/common.ts +2 -2
  328. package/src/internal/{object → Obj}/create-object.test.ts +5 -7
  329. package/src/internal/{object → Obj}/create-object.ts +5 -6
  330. package/src/internal/{object → Obj}/deleted.ts +2 -2
  331. package/src/internal/{object → Obj}/ids.ts +1 -1
  332. package/src/internal/{object → Obj}/inspect.ts +2 -2
  333. package/src/internal/{object → Obj}/json-serializer.test.ts +8 -9
  334. package/src/internal/{object → Obj}/json-serializer.ts +44 -26
  335. package/src/internal/{object → Obj}/schema-validator.ts +1 -1
  336. package/src/internal/{object → Obj}/set-value.test.ts +24 -24
  337. package/src/internal/{object → Obj}/set-value.ts +3 -3
  338. package/src/internal/{object → Obj}/snapshot.ts +14 -5
  339. package/src/internal/{object → Obj}/typed-object.test.ts +3 -3
  340. package/src/internal/{object → Obj}/typed-object.ts +2 -2
  341. package/src/internal/Query.ts +156 -0
  342. package/src/internal/{ref → Ref}/ref-array.ts +1 -2
  343. package/src/internal/{ref → Ref}/ref.test.ts +4 -5
  344. package/src/internal/{ref → Ref}/ref.ts +20 -3
  345. package/src/internal/{schema → Type}/compose.test.ts +5 -6
  346. package/src/internal/{schema → Type}/compose.ts +1 -1
  347. package/src/internal/{schema → Type}/echo-schema.ts +7 -8
  348. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  349. package/src/internal/{schema → Type}/persistent-schema.ts +7 -7
  350. package/src/internal/{README.md → common/README.md} +1 -1
  351. package/src/internal/{api → common/api}/index.ts +0 -4
  352. package/src/internal/{api → common/api}/meta.ts +3 -3
  353. package/src/internal/common/index.ts +7 -0
  354. package/src/internal/{proxy → common/proxy}/change-context.ts +1 -1
  355. package/src/internal/{proxy → common/proxy}/change.test.ts +97 -97
  356. package/src/internal/{proxy → common/proxy}/errors.ts +2 -2
  357. package/src/internal/{proxy → common/proxy}/handler.test.ts +2 -4
  358. package/src/internal/{proxy → common/proxy}/json-serializer.ts +6 -3
  359. package/src/internal/{proxy → common/proxy}/make-object.ts +1 -2
  360. package/src/internal/{proxy → common/proxy}/ownership.ts +0 -1
  361. package/src/internal/{proxy → common/proxy}/reactive-array.ts +1 -1
  362. package/src/internal/common/proxy/reactive.test.ts +54 -0
  363. package/src/internal/{proxy → common/proxy}/reactive.ts +12 -4
  364. package/src/internal/{proxy → common/proxy}/schema.test.ts +10 -10
  365. package/src/internal/{proxy → common/proxy}/typed-handler.test.ts +6 -7
  366. package/src/internal/{proxy → common/proxy}/typed-handler.ts +10 -13
  367. package/src/internal/{proxy → common/proxy}/typed-object.test.ts +5 -6
  368. package/src/internal/{types → common/types}/entity.ts +1 -1
  369. package/src/internal/{types → common/types}/index.ts +1 -0
  370. package/src/internal/{types → common/types}/meta.ts +13 -2
  371. package/src/internal/common/types/model-symbols.ts +69 -0
  372. package/src/internal/index.ts +9 -31
  373. package/src/testing/api.test.ts +2 -3
  374. package/src/testing/test-data.ts +157 -98
  375. package/src/testing/test-schema.ts +9 -9
  376. package/dist/lib/neutral/chunk-5ELDDYWE.mjs.map +0 -7
  377. package/dist/lib/neutral/chunk-ALOGSVBP.mjs.map +0 -7
  378. package/dist/lib/neutral/chunk-AQP4QKYP.mjs.map +0 -7
  379. package/dist/lib/neutral/chunk-BRJSLACP.mjs.map +0 -7
  380. package/dist/lib/neutral/chunk-F7KMHDPJ.mjs.map +0 -7
  381. package/dist/lib/neutral/chunk-GAWKQ5DZ.mjs.map +0 -7
  382. package/dist/lib/neutral/chunk-GFNCSK7F.mjs +0 -101
  383. package/dist/lib/neutral/chunk-GFNCSK7F.mjs.map +0 -7
  384. package/dist/lib/neutral/chunk-KGV3QIRX.mjs.map +0 -7
  385. package/dist/lib/neutral/chunk-M2KVTHZM.mjs.map +0 -7
  386. package/dist/lib/neutral/chunk-MXQJZCPY.mjs.map +0 -7
  387. package/dist/lib/neutral/chunk-O3TZFQCT.mjs.map +0 -7
  388. package/dist/lib/neutral/chunk-OVUBTQLT.mjs.map +0 -7
  389. package/dist/lib/neutral/chunk-PP4DNUZU.mjs.map +0 -7
  390. package/dist/lib/neutral/chunk-QXF3LGN2.mjs.map +0 -7
  391. package/dist/lib/neutral/chunk-T4MPQJ7X.mjs.map +0 -7
  392. package/dist/lib/neutral/chunk-W7OP5HGZ.mjs.map +0 -7
  393. package/dist/lib/neutral/chunk-ZTUBYOGB.mjs.map +0 -7
  394. package/dist/lib/neutral/chunk-ZWKJ4LZJ.mjs.map +0 -7
  395. package/dist/types/src/internal/annotations/annotations.d.ts.map +0 -1
  396. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +0 -1
  397. package/dist/types/src/internal/annotations/index.d.ts +0 -3
  398. package/dist/types/src/internal/annotations/index.d.ts.map +0 -1
  399. package/dist/types/src/internal/annotations/util.d.ts.map +0 -1
  400. package/dist/types/src/internal/api/annotations.d.ts +0 -23
  401. package/dist/types/src/internal/api/annotations.d.ts.map +0 -1
  402. package/dist/types/src/internal/api/entity.d.ts.map +0 -1
  403. package/dist/types/src/internal/api/index.d.ts.map +0 -1
  404. package/dist/types/src/internal/api/meta.d.ts.map +0 -1
  405. package/dist/types/src/internal/api/sorting.d.ts.map +0 -1
  406. package/dist/types/src/internal/api/version.d.ts.map +0 -1
  407. package/dist/types/src/internal/entities/entity.d.ts.map +0 -1
  408. package/dist/types/src/internal/entities/index.d.ts.map +0 -1
  409. package/dist/types/src/internal/entities/model.d.ts.map +0 -1
  410. package/dist/types/src/internal/entities/object.d.ts.map +0 -1
  411. package/dist/types/src/internal/entities/relation.d.ts.map +0 -1
  412. package/dist/types/src/internal/entities/util.d.ts.map +0 -1
  413. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  414. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  415. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  416. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  417. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  418. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  419. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  420. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  421. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  422. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  423. package/dist/types/src/internal/json-schema/annotations.d.ts.map +0 -1
  424. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +0 -1
  425. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  426. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  427. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  428. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +0 -1
  429. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +0 -1
  430. package/dist/types/src/internal/object/clone.d.ts.map +0 -1
  431. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  432. package/dist/types/src/internal/object/create-object.d.ts.map +0 -1
  433. package/dist/types/src/internal/object/create-object.test.d.ts.map +0 -1
  434. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  435. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  436. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  437. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  438. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  439. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  440. package/dist/types/src/internal/object/schema-validator.d.ts +0 -2
  441. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  442. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  443. package/dist/types/src/internal/object/set-value.d.ts.map +0 -1
  444. package/dist/types/src/internal/object/set-value.test.d.ts.map +0 -1
  445. package/dist/types/src/internal/object/snapshot.d.ts.map +0 -1
  446. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  447. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  448. package/dist/types/src/internal/proxy/change-context.d.ts.map +0 -1
  449. package/dist/types/src/internal/proxy/change.test.d.ts.map +0 -1
  450. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +0 -1
  451. package/dist/types/src/internal/proxy/errors.d.ts.map +0 -1
  452. package/dist/types/src/internal/proxy/event-batch.d.ts.map +0 -1
  453. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  454. package/dist/types/src/internal/proxy/index.d.ts.map +0 -1
  455. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +0 -1
  456. package/dist/types/src/internal/proxy/make-object.d.ts.map +0 -1
  457. package/dist/types/src/internal/proxy/ownership.d.ts.map +0 -1
  458. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +0 -1
  459. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +0 -1
  460. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +0 -1
  461. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +0 -1
  462. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  463. package/dist/types/src/internal/proxy/symbols.d.ts.map +0 -1
  464. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  465. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  466. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  467. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  468. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  469. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  470. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  471. package/dist/types/src/internal/schema/compose.d.ts.map +0 -1
  472. package/dist/types/src/internal/schema/compose.test.d.ts.map +0 -1
  473. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  474. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  475. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  476. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +0 -1
  477. package/dist/types/src/internal/types/base.d.ts.map +0 -1
  478. package/dist/types/src/internal/types/entity.d.ts.map +0 -1
  479. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  480. package/dist/types/src/internal/types/meta.d.ts.map +0 -1
  481. package/dist/types/src/internal/types/typename.d.ts.map +0 -1
  482. package/dist/types/src/internal/types/version.d.ts.map +0 -1
  483. package/src/internal/api/annotations.ts +0 -60
  484. /package/dist/lib/neutral/{chunk-ANHVGJI4.mjs.map → chunk-7RVZT53K.mjs.map} +0 -0
  485. /package/dist/lib/neutral/{chunk-OMUPQMLR.mjs.map → chunk-V72DY6LU.mjs.map} +0 -0
  486. /package/dist/types/src/internal/{annotations → Annotation}/annotations.test.d.ts +0 -0
  487. /package/dist/types/src/internal/{entities → Entity}/util.d.ts +0 -0
  488. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  489. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  490. /package/dist/types/src/internal/{formats → Format}/format.d.ts +0 -0
  491. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  492. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  493. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  494. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  495. /package/dist/types/src/internal/{formats → Format}/select.d.ts +0 -0
  496. /package/dist/types/src/internal/{formats → Format}/string.d.ts +0 -0
  497. /package/dist/types/src/internal/{json-schema → JsonSchema}/effect-schema.test.d.ts +0 -0
  498. /package/dist/types/src/internal/{json-schema → JsonSchema}/index.d.ts +0 -0
  499. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  500. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.test.d.ts +0 -0
  501. /package/dist/types/src/internal/{object → Obj}/clone.d.ts +0 -0
  502. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  503. /package/dist/types/src/internal/{object → Obj}/create-object.test.d.ts +0 -0
  504. /package/dist/types/src/internal/{object → Obj}/index.d.ts +0 -0
  505. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  506. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  507. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  508. /package/dist/types/src/internal/{object → Obj}/set-value.test.d.ts +0 -0
  509. /package/dist/types/src/internal/{object → Obj}/snapshot.d.ts +0 -0
  510. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  511. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  512. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  513. /package/dist/types/src/internal/{schema → Type}/compose.test.d.ts +0 -0
  514. /package/dist/types/src/internal/{schema → Type}/index.d.ts +0 -0
  515. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  516. /package/dist/types/src/internal/{proxy → common/proxy}/change.test.d.ts +0 -0
  517. /package/dist/types/src/internal/{proxy → common/proxy}/define-hidden-property.d.ts +0 -0
  518. /package/dist/types/src/internal/{proxy → common/proxy}/event-batch.d.ts +0 -0
  519. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  520. /package/dist/types/src/internal/{proxy → common/proxy}/index.d.ts +0 -0
  521. /package/dist/types/src/internal/{proxy → common/proxy}/json-serializer.d.ts +0 -0
  522. /package/dist/types/src/internal/{proxy → common/proxy}/make-object.d.ts +0 -0
  523. /package/dist/types/src/internal/{proxy → common/proxy}/ownership.d.ts +0 -0
  524. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-types.d.ts +0 -0
  525. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-utils.d.ts +0 -0
  526. /package/dist/types/src/internal/{proxy → common/proxy}/schema-validator.d.ts +0 -0
  527. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  528. /package/dist/types/src/internal/{proxy → common/proxy}/symbols.d.ts +0 -0
  529. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +0 -0
  530. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  531. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  532. /package/dist/types/src/internal/{types → common/types}/base.d.ts +0 -0
  533. /package/dist/types/src/internal/{types → common/types}/typename.d.ts +0 -0
  534. /package/src/internal/{entities → Entity}/util.ts +0 -0
  535. /package/src/internal/{formats → Format}/date.ts +0 -0
  536. /package/src/internal/{formats → Format}/format.ts +0 -0
  537. /package/src/internal/{formats → Format}/index.ts +0 -0
  538. /package/src/internal/{formats → Format}/number.ts +0 -0
  539. /package/src/internal/{formats → Format}/object.ts +0 -0
  540. /package/src/internal/{formats → Format}/select.ts +0 -0
  541. /package/src/internal/{formats → Format}/string.ts +0 -0
  542. /package/src/internal/{json-schema → JsonSchema}/effect-schema.test.ts +0 -0
  543. /package/src/internal/{json-schema → JsonSchema}/index.ts +0 -0
  544. /package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +0 -0
  545. /package/src/internal/{object → Obj}/index.ts +0 -0
  546. /package/src/internal/{object → Obj}/schema-validator.test.ts +0 -0
  547. /package/src/internal/{ref → Ref}/index.ts +0 -0
  548. /package/src/internal/{schema → Type}/index.ts +0 -0
  549. /package/src/internal/{proxy → common/proxy}/define-hidden-property.ts +0 -0
  550. /package/src/internal/{proxy → common/proxy}/event-batch.ts +0 -0
  551. /package/src/internal/{proxy → common/proxy}/index.ts +0 -0
  552. /package/src/internal/{proxy → common/proxy}/proxy-types.ts +0 -0
  553. /package/src/internal/{proxy → common/proxy}/proxy-utils.ts +0 -0
  554. /package/src/internal/{proxy → common/proxy}/schema-validator.ts +0 -0
  555. /package/src/internal/{proxy → common/proxy}/symbols.ts +0 -0
  556. /package/src/internal/{types → common/types}/base.ts +0 -0
  557. /package/src/internal/{types → common/types}/typename.ts +0 -0
  558. /package/src/internal/{types → common/types}/version.ts +0 -0
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createAnnotationHelper
3
- } from "./chunk-4KG6IGL4.mjs";
3
+ } from "./chunk-N4B7FHQT.mjs";
4
4
 
5
- // src/internal/formats/types.ts
5
+ // src/internal/Format/types.ts
6
6
  import * as Function from "effect/Function";
7
7
  import * as Option from "effect/Option";
8
8
  import * as SchemaAST from "effect/SchemaAST";
@@ -107,7 +107,7 @@ var OptionsAnnotationId = /* @__PURE__ */ Symbol.for("@dxos/schema/annotation/Op
107
107
  var OptionsAnnotation = createAnnotationHelper(OptionsAnnotationId);
108
108
  var getOptionsAnnotation = (node) => Function.pipe(SchemaAST.getAnnotation(OptionsAnnotationId)(node), Option.getOrUndefined);
109
109
 
110
- // src/internal/formats/number.ts
110
+ // src/internal/Format/number.ts
111
111
  import * as Schema from "effect/Schema";
112
112
  var encodeMultipleOf = (divisor) => 1 / Math.pow(10, divisor);
113
113
  var encodeMultiple = (divisor) => (self) => divisor === void 0 || divisor === 0 ? self : self.pipe(Schema.multipleOf(encodeMultipleOf(divisor)));
@@ -143,7 +143,7 @@ var Timestamp = Schema.Number.pipe(FormatAnnotation.set(TypeFormat.Timestamp), S
143
143
  description: "Unix timestamp"
144
144
  }));
145
145
 
146
- // src/internal/formats/object.ts
146
+ // src/internal/Format/object.ts
147
147
  import * as Schema2 from "effect/Schema";
148
148
  import { clamp as clamp2 } from "@dxos/util";
149
149
  var GeoPoint = Schema2.Tuple(Schema2.Number.pipe(Schema2.annotations({
@@ -188,7 +188,7 @@ var GeoPoint = Schema2.Tuple(Schema2.Number.pipe(Schema2.annotations({
188
188
  })(GeoLocation || (GeoLocation = {}));
189
189
  var GeoLocation;
190
190
 
191
- // src/internal/formats/string.ts
191
+ // src/internal/Format/string.ts
192
192
  import * as Schema3 from "effect/Schema";
193
193
  import * as SchemaAST2 from "effect/SchemaAST";
194
194
  var Email = Schema3.String.pipe(Schema3.pattern(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/), FormatAnnotation.set(TypeFormat.Email), Schema3.annotations({
@@ -211,11 +211,11 @@ var UUID2 = Schema3.UUID.pipe(FormatAnnotation.set(TypeFormat.UUID), Schema3.ann
211
211
  ]
212
212
  }));
213
213
 
214
- // src/internal/formats/format.ts
214
+ // src/internal/Format/format.ts
215
215
  import * as Schema5 from "effect/Schema";
216
216
  import * as Keys from "@dxos/keys";
217
217
 
218
- // src/internal/formats/date.ts
218
+ // src/internal/Format/date.ts
219
219
  import * as Schema4 from "effect/Schema";
220
220
  import * as SchemaAST3 from "effect/SchemaAST";
221
221
  var SimpleDate = Schema4.Struct({
@@ -334,7 +334,7 @@ var Duration = Schema4.String.pipe(FormatAnnotation.set(TypeFormat.Duration), Sc
334
334
  ]
335
335
  }));
336
336
 
337
- // src/internal/formats/format.ts
337
+ // src/internal/Format/format.ts
338
338
  (function(Format2) {
339
339
  Format2.TypeFormat = TypeFormat;
340
340
  Format2.DXN = Keys.DXN.Schema;
@@ -358,7 +358,7 @@ var Duration = Schema4.String.pipe(FormatAnnotation.set(TypeFormat.Duration), Sc
358
358
  })(Format || (Format = {}));
359
359
  var Format;
360
360
 
361
- // src/internal/formats/select.ts
361
+ // src/internal/Format/select.ts
362
362
  import * as Schema6 from "effect/Schema";
363
363
  var SelectOption = Schema6.Struct({
364
364
  /** Stable identifier for the option. */
@@ -399,4 +399,4 @@ export {
399
399
  Format,
400
400
  SelectOption
401
401
  };
402
- //# sourceMappingURL=chunk-M2KVTHZM.mjs.map
402
+ //# sourceMappingURL=chunk-TRPZU2HV.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/Format/types.ts", "../../../src/internal/Format/number.ts", "../../../src/internal/Format/object.ts", "../../../src/internal/Format/string.ts", "../../../src/internal/Format/format.ts", "../../../src/internal/Format/date.ts", "../../../src/internal/Format/select.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport type * as JSONSchema from 'effect/JSONSchema';\nimport * as Option from 'effect/Option';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { createAnnotationHelper } from '../Annotation';\nimport { type JsonSchemaType } from '../JsonSchema';\n\n// TODO(burdon): Rename PropertyType.\nexport type ScalarType =\n | JSONSchema.JsonSchema7Object\n | JSONSchema.JsonSchema7String\n | JSONSchema.JsonSchema7Number\n | JSONSchema.JsonSchema7Boolean\n | JSONSchema.JsonSchema7Ref;\n\n// TODO(burdon): Rename ValueType and change to disciminated union.\n// export type ValueType = 'array' | 'object' | 'string' | 'number' | 'boolean' | 'ref';\nexport enum TypeEnum {\n Array = 'array', // TODO(burdon): Remove?\n Object = 'object',\n String = 'string',\n Number = 'number',\n Boolean = 'boolean',\n Ref = 'ref',\n}\n\n// TODO(burdon): Ref?\nexport const getTypeEnum = (property: JsonSchemaType): TypeEnum | undefined => {\n switch (property.type) {\n case 'array':\n return TypeEnum.Array;\n case 'object':\n return TypeEnum.Object;\n case 'string':\n return TypeEnum.String;\n case 'number':\n return TypeEnum.Number;\n case 'boolean':\n return TypeEnum.Boolean;\n default:\n return undefined;\n }\n};\n\n/**\n * https://json-schema.org/understanding-json-schema/reference/schema\n * https://json-schema.org/understanding-json-schema/reference/string#built-in-formats\n */\nexport const FormatAnnotationId = Symbol.for('@dxos/schema/annotation/Format');\n\nexport const FormatAnnotation = createAnnotationHelper<TypeFormat>(FormatAnnotationId);\n\n/** @deprecated */\nexport const getFormatAnnotation = (node: SchemaAST.AST): TypeFormat | undefined =>\n Function.pipe(SchemaAST.getAnnotation<TypeFormat>(FormatAnnotationId)(node), Option.getOrUndefined);\n\n// TODO(burdon): Rename Format; Change to discriminated union?\nexport enum TypeFormat {\n None = 'none',\n\n //\n // Scalar\n //\n\n String = 'string',\n Number = 'number',\n Boolean = 'boolean',\n Ref = 'ref',\n\n //\n // { type: 'string' }\n //\n\n DID = 'did', // Users, etc.\n DXN = 'dxn',\n Email = 'email',\n Formula = 'formula', // Spreadsheet formula.\n Hostname = 'hostname',\n JSON = 'json',\n Markdown = 'markdown',\n Regex = 'regex',\n SingleSelect = 'single-select',\n Text = 'text',\n MultiSelect = 'multi-select',\n URL = 'url',\n UUID = 'uuid',\n\n //\n // { type: 'number' }\n //\n\n Currency = 'currency',\n Integer = 'integer',\n Percent = 'percent',\n Timestamp = 'timestamp',\n\n //\n // { type: 'date' }\n //\n\n DateTime = 'date-time',\n Date = 'date',\n Time = 'time',\n Duration = 'duration',\n\n //\n // { type: 'object' }\n //\n\n GeoPoint = 'lnglat',\n}\n\nexport const FormatEnums = Object.values(TypeFormat).sort();\n\nexport const PropertyKind = {\n type: TypeEnum,\n format: TypeFormat,\n};\n\n/**\n * Default formats\n */\nexport const typeToFormat: Partial<Record<TypeEnum, TypeFormat>> = {\n [TypeEnum.String]: TypeFormat.String,\n [TypeEnum.Number]: TypeFormat.Number,\n [TypeEnum.Boolean]: TypeFormat.Boolean,\n};\n\n/**\n * Map of format to type.\n */\nexport const formatToType: Record<TypeFormat, TypeEnum> = {\n [TypeFormat.None]: TypeEnum.String,\n [TypeFormat.String]: TypeEnum.String,\n [TypeFormat.Number]: TypeEnum.Number,\n [TypeFormat.Boolean]: TypeEnum.Boolean,\n [TypeFormat.Ref]: TypeEnum.Ref,\n\n // Strings\n [TypeFormat.DID]: TypeEnum.String,\n [TypeFormat.DXN]: TypeEnum.String,\n [TypeFormat.Email]: TypeEnum.String,\n [TypeFormat.Formula]: TypeEnum.String,\n [TypeFormat.Hostname]: TypeEnum.String,\n [TypeFormat.JSON]: TypeEnum.String,\n [TypeFormat.Markdown]: TypeEnum.String,\n [TypeFormat.Regex]: TypeEnum.String,\n [TypeFormat.URL]: TypeEnum.String,\n [TypeFormat.UUID]: TypeEnum.String,\n [TypeFormat.SingleSelect]: TypeEnum.String,\n [TypeFormat.Text]: TypeEnum.String,\n [TypeFormat.MultiSelect]: TypeEnum.Object,\n\n // Dates\n [TypeFormat.Date]: TypeEnum.String,\n [TypeFormat.DateTime]: TypeEnum.String,\n [TypeFormat.Duration]: TypeEnum.String,\n [TypeFormat.Time]: TypeEnum.String,\n\n // Numbers\n [TypeFormat.Currency]: TypeEnum.Number,\n [TypeFormat.Integer]: TypeEnum.Number,\n [TypeFormat.Percent]: TypeEnum.Number,\n [TypeFormat.Timestamp]: TypeEnum.Number,\n\n // Objects\n [TypeFormat.GeoPoint]: TypeEnum.Array,\n};\n\n/**\n * Allowed value options for select.\n */\nexport const OptionsAnnotationId = Symbol.for('@dxos/schema/annotation/Options');\n\n// TODO(wittjosiah): Reconcile with `SelectOption`.\nexport type Options = string | number;\nexport const OptionsAnnotation = createAnnotationHelper<Options[]>(OptionsAnnotationId);\n\n/** @deprecated */\nexport const getOptionsAnnotation = (node: SchemaAST.AST): Options[] | undefined =>\n Function.pipe(SchemaAST.getAnnotation<Options[]>(OptionsAnnotationId)(node), Option.getOrUndefined);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { FormatAnnotation, TypeFormat } from './types';\n\nconst encodeMultipleOf = (divisor: number) => 1 / Math.pow(10, divisor);\n\nconst encodeMultiple =\n <A extends number>(divisor?: number) =>\n <I, R>(self: Schema.Schema<A, I, R>) =>\n divisor === undefined || divisor === 0 ? self : self.pipe(Schema.multipleOf(encodeMultipleOf(divisor)));\n\n/**\n * Convert number of digits to multipleOf annotation.\n */\nexport const DecimalPrecision = Schema.transform(Schema.Number, Schema.Number, {\n strict: true,\n encode: (value) => encodeMultipleOf(value),\n decode: (value) => Math.log10(1 / value),\n}).annotations({\n title: 'Number of digits',\n});\n\nexport const CurrencyAnnotationId = Symbol.for('@dxos/schema/annotation/Currency');\n\nexport type CurrencyAnnotation = {\n decimals?: number;\n code?: string;\n};\n\n/**\n * ISO 4217 currency code.\n */\nexport const Currency = ({ decimals, code }: CurrencyAnnotation = { decimals: 2 }) =>\n Schema.Number.pipe(\n encodeMultiple(decimals),\n FormatAnnotation.set(TypeFormat.Currency),\n Schema.annotations({\n title: 'Currency',\n description: 'Currency value',\n ...(code ? { [CurrencyAnnotationId]: code.toUpperCase() } : {}),\n }),\n );\n\nexport type PercentAnnotation = {\n decimals?: number;\n};\n\n/**\n * Integer.\n */\nexport const Integer = () =>\n Schema.Number.pipe(\n Schema.int(),\n FormatAnnotation.set(TypeFormat.Integer),\n Schema.annotations({\n title: 'Integer',\n description: 'Integer value',\n }),\n );\n\n/**\n * Percent.\n */\n// TODO(burdon): Define min/max (e.g., 0, 1).\nexport const Percent = ({ decimals }: PercentAnnotation = { decimals: 2 }) =>\n Schema.Number.pipe(\n encodeMultiple(decimals),\n FormatAnnotation.set(TypeFormat.Percent),\n Schema.annotations({\n title: 'Percent',\n description: 'Percentage value',\n }),\n );\n\n/**\n * Unix timestamp.\n * https://en.wikipedia.org/wiki/Unix_time\n */\nexport const Timestamp = Schema.Number.pipe(\n FormatAnnotation.set(TypeFormat.Timestamp),\n Schema.annotations({\n title: 'Timestamp',\n description: 'Unix timestamp',\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { clamp } from '@dxos/util';\n\nimport { FormatAnnotation, TypeFormat } from './types';\n\n/**\n * GeoJSON Format\n * https://datatracker.ietf.org/doc/html/rfc7946\n * https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.1\n * https://en.wikipedia.org/wiki/Geographic_coordinate_system\n * https://geojson.org\n * {\n * \"type\": \"Point\",\n * \"coordinates\": [0, 51.47] // [longitude, latitude]\n * }\n * Note: optional third element for altitude.\n */\nexport const GeoPoint = Schema.Tuple(\n Schema.Number.pipe(Schema.annotations({ title: 'Longitude' }), Schema.clamp(-180, 180), Schema.multipleOf(0.000001)),\n Schema.Number.pipe(Schema.annotations({ title: 'Latitude' }), Schema.clamp(-90, 90), Schema.multipleOf(0.000001)),\n Schema.optionalElement(Schema.Number).annotations({\n title: 'Height ASL (m)',\n }),\n).pipe(\n FormatAnnotation.set(TypeFormat.GeoPoint),\n Schema.annotations({\n title: 'GeoPoint',\n description: 'GeoJSON Position',\n }),\n);\n\nexport type GeoPoint = Schema.Schema.Type<typeof GeoPoint>;\n\nexport type GeoLocation = {\n longitude: number;\n latitude: number;\n height?: number;\n};\n\n/**\n * Geolocation utilities for working with GeoPoint format.\n */\nexport namespace GeoLocation {\n /**\n * Convert latitude and longitude to GeoPoint (GeoJSON format [longitude, latitude, height?]).\n * Clamps values to valid ranges: latitude [-90, 90], longitude [-180, 180].\n */\n export const toGeoPoint = ({ longitude, latitude, height }: GeoLocation): GeoPoint => {\n // TODO(ZaymonFC): Use schema validation instead of doing this manually.\n const clampedLongitude = clamp(longitude, -180, 180);\n const clampedLatitude = clamp(latitude, -90, 90);\n return height !== undefined ? [clampedLongitude, clampedLatitude, height] : [clampedLongitude, clampedLatitude];\n };\n\n /**\n * Extract latitude and longitude from GeoPoint (GeoJSON format [longitude, latitude, height?]).\n */\n export const fromGeoPoint = (geoPoint: GeoPoint | undefined): GeoLocation => {\n if (!geoPoint) {\n return { longitude: 0, latitude: 0 };\n }\n\n const result: GeoLocation = {\n longitude: geoPoint[0],\n latitude: geoPoint[1],\n };\n\n // Add height if defined.\n if (geoPoint[2] !== undefined) {\n result.height = geoPoint[2];\n }\n\n return result;\n };\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { FormatAnnotation, TypeFormat } from './types';\n\n/**\n * Email address (RFC 5321)\n * https://datatracker.ietf.org/doc/html/rfc5321#section-4.1.2\n */\nexport const Email = Schema.String.pipe(\n Schema.pattern(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/),\n FormatAnnotation.set(TypeFormat.Email),\n Schema.annotations({\n title: 'Email',\n description: 'Email address',\n }),\n);\n\n/**\n *\n */\n// TODO(burdon): Implement.\nexport const Formula = Schema.String.pipe(FormatAnnotation.set(TypeFormat.Formula));\n\n/**\n *\n */\n// TODO(burdon): Implement.\nexport const Hostname = Schema.String.pipe(FormatAnnotation.set(TypeFormat.Hostname));\n\n/**\n *\n */\n// TODO(burdon): Implement.\nexport const JSON = Schema.String.pipe(FormatAnnotation.set(TypeFormat.JSON));\n\n/**\n *\n */\n// TODO(burdon): Implement.\nexport const Markdown = Schema.String.pipe(FormatAnnotation.set(TypeFormat.Markdown));\n\n/**\n * Regex\n * https://json-schema.org/understanding-json-schema/reference/regular_expressions\n * https://ecma-international.org/publications-and-standards/standards/ecma-262\n */\n// TODO(burdon): Implement.\nexport const Regex = Schema.String.pipe(FormatAnnotation.set(TypeFormat.Regex));\n\n/**\n * Multi-line text.\n */\nexport const Text = Schema.String.pipe(FormatAnnotation.set(TypeFormat.Text));\n\n/**\n * https://datatracker.ietf.org/doc/html/rfc3986#section-1.1.3\n */\nexport const URL = Schema.String.pipe(\n Schema.pattern(/^(\\w+?:\\/\\/)?([\\da-z.-]+)\\.([a-z.]{2,6})([/\\w .-]*)*\\/?$/i),\n FormatAnnotation.set(TypeFormat.URL),\n Schema.annotations({\n title: 'URL',\n description: 'URL',\n }),\n);\n\n/**\n * UUID (RFC 4122)\n * https://datatracker.ietf.org/doc/html/rfc4122\n */\nexport const UUID = Schema.UUID.pipe(\n FormatAnnotation.set(TypeFormat.UUID),\n Schema.annotations({\n [SchemaAST.ExamplesAnnotationId]: ['3e4666bf-d5e5-4aa7-b8ce-cefe41c7568a'],\n }),\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport * as Keys from '@dxos/keys';\n\nimport * as DateUtil from './date';\nimport * as NumberUtil from './number';\nimport * as ObjectUtil from './object';\nimport * as StringUtil from './string';\nimport { TypeFormat as TypeFormat$ } from './types';\n\n// TODO(burdon): Media encoding.\n// - https://json-schema.org/understanding-json-schema/reference/non_json_data\n\n/**\n * Formats.\n * https://json-schema.org/understanding-json-schema/reference/string#built-in-formats\n * NOTE: A JSON Schema validator will ignore any format type that it does not understand.\n */\n// TODO(burdon): Add fields for `examples`, `message`, etc.\nexport namespace Format {\n export import TypeFormat = TypeFormat$;\n\n // String\n export const DXN = Keys.DXN.Schema;\n export const Email = StringUtil.Email;\n export const Formula = StringUtil.Formula;\n export const Hostname = StringUtil.Hostname;\n export const JSON = StringUtil.JSON;\n export const Markdown = StringUtil.Markdown;\n export const Regex = StringUtil.Regex;\n export const URL = StringUtil.URL;\n export const UUID = Schema.UUID;\n\n // Numbers\n // TODO(burdon): BigInt.\n export const Currency = NumberUtil.Currency;\n export const Integer = NumberUtil.Integer;\n export const Percent = NumberUtil.Percent;\n export const Timestamp = NumberUtil.Timestamp;\n\n // Dates and times\n export const Date = DateUtil.DateOnly;\n export const DateTime = DateUtil.DateTime;\n export const Duration = DateUtil.Duration;\n export const Time = DateUtil.TimeOnly;\n\n // Objects\n export const GeoPoint = ObjectUtil.GeoPoint;\n export type GeoPoint = ObjectUtil.GeoPoint; // TODO(burdon): Export types.\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { FormatAnnotation, TypeFormat } from './types';\n\n/**\n * Datetime values should be stored as ISO strings or unix numbers (ms) in UTC.\n *\n * NOTE: HyperFormula uses Excel's time format (null date 1900/01/01)\n * It can be configured to use a different parser via `parseDateTime`.\n * https://hyperformula.handsontable.com/guide/date-and-time-handling.html#date-and-time-handling\n * https://github.com/handsontable/hyperformula/blob/master/src/DateTimeHelper.ts\n */\n\n// TODO(burdon): Annotations not present in JSON.\n// TODO(burdon): Timezone.\n// TODO(burdon): Format for timestamp (Unix UTC or ISO 8601)?\n// TODO(burdon): Refs\n// - https://www.npmjs.com/package/numfmt\n// - https://date-fns.org/docs/Getting-Started\n// - https://github.com/date-fns/tz\n\n/**\n * Simple date compatible with HF.\n */\nexport const SimpleDate = Schema.Struct({\n year: Schema.Number.pipe(Schema.between(1900, 9999)),\n month: Schema.Number.pipe(Schema.between(1, 12)),\n day: Schema.Number.pipe(Schema.between(1, 31)),\n});\n\nexport type SimpleDate = Schema.Schema.Type<typeof SimpleDate>;\n\nexport const toSimpleDate = (date: Date): SimpleDate => ({\n year: date.getUTCFullYear(),\n month: date.getUTCMonth() + 1,\n day: date.getUTCDate(),\n});\n\n/**\n * Simple time compatible with HF.\n */\nexport const SimpleTime = Schema.Struct({\n hours: Schema.Number.pipe(Schema.between(0, 23)),\n minutes: Schema.Number.pipe(Schema.between(0, 59)),\n seconds: Schema.Number.pipe(Schema.between(0, 59)),\n});\n\nexport type SimpleTime = Schema.Schema.Type<typeof SimpleTime>;\n\nexport const toSimpleTime = (date: Date): SimpleTime => ({\n hours: date.getUTCHours(),\n minutes: date.getUTCSeconds(),\n seconds: date.getUTCSeconds(),\n});\n\n/**\n * Simple date-time compatible with HF.\n */\nexport const SimpleDateTime = Schema.extend(SimpleDate, SimpleTime);\n\nexport type SimpleDateTime = Schema.Schema.Type<typeof SimpleDateTime>;\n\nexport const toSimpleDateTime = (date: Date): SimpleDateTime => ({\n ...toSimpleDate(date),\n ...toSimpleTime(date),\n});\n\n/**\n * https://effect.website/docs/guides/schema/transformations#date-transformations\n */\n\n// TODO(burdon): Consider if transformations should be supported with Automerge.\n\n/**\n * Format: 2018-11-13\n */\nexport const DateOnly = /* Schema.transformOrFail(Schema.String, SimpleDate, {\n strict: true,\n decode: (str, _, ast) => {\n if (!isValidDateFormat(str)) {\n return ParseResult.fail(new ParseResult.Type(ast, str, 'Expected YYYY-MM-DD format'));\n }\n if (!isValidDate(str)) {\n return ParseResult.fail(new ParseResult.Type(ast, str, 'Invalid date'));\n }\n\n const [year, month, day] = str.split('-').map(Number);\n return ParseResult.succeed({ year, month, day });\n },\n encode: (date) => {\n return ParseResult.succeed(\n [\n date.year.toString().padStart(4, '0'),\n date.month.toString().padStart(2, '0'),\n date.day.toString().padStart(2, '0'),\n ].join('-'),\n );\n },\n}) */ Schema.String.pipe(\n FormatAnnotation.set(TypeFormat.Date),\n Schema.annotations({\n title: 'Date',\n description: 'Valid date in ISO format',\n }),\n);\n\n/**\n * Format: 20:20:39+00:00\n */\nexport const TimeOnly = /* Schema.transformOrFail(Schema.String, SimpleTime, {\n strict: true,\n decode: (str, _, ast) => {\n if (!isValidTimeFormat(str)) {\n return ParseResult.fail(new ParseResult.Type(ast, str, 'Expected HH:mm:ss format'));\n }\n\n const [hours, minutes, seconds] = str.split(':').map(Number);\n return ParseResult.succeed({ hours, minutes, seconds });\n },\n encode: (time) => {\n return ParseResult.succeed(\n [\n time.hours.toString().padStart(2, '0'),\n time.minutes.toString().padStart(2, '0'),\n time.seconds.toString().padStart(2, '0'),\n ].join(':'),\n );\n },\n}) */ Schema.String.pipe(\n FormatAnnotation.set(TypeFormat.Time),\n Schema.annotations({\n title: 'Time',\n description: 'Valid time in ISO format',\n }),\n);\n\n/**\n * Format: 2018-11-13T20:20:39+00:00\n */\nexport const DateTime = /* Schema.transformOrFail(Schema.String, SimpleDateTime, {\n strict: false,\n decode: (str, _, ast) => {\n const [date, time] = str.split('T');\n if (!isValidDateFormat(date)) {\n return ParseResult.fail(new ParseResult.Type(ast, date, 'Expected YYYY-MM-DD format'));\n }\n if (!isValidDate(date)) {\n return ParseResult.fail(new ParseResult.Type(ast, date, 'Invalid date'));\n }\n if (!isValidTimeFormat(time)) {\n return ParseResult.fail(new ParseResult.Type(ast, str, 'Expected HH:mm:ss format'));\n }\n\n const [year, month, day] = date.split('-').map(Number);\n const [hours, minutes, seconds] = time.split(':').map(Number);\n return ParseResult.succeed({ year, month, day, hours, minutes, seconds });\n },\n encode: (datetime) => {\n return ParseResult.succeed(\n [\n [\n datetime.year.toString().padStart(4, '0'),\n datetime.month.toString().padStart(2, '0'),\n datetime.day.toString().padStart(2, '0'),\n ].join('-'),\n [\n datetime.hours.toString().padStart(2, '0'),\n datetime.minutes.toString().padStart(2, '0'),\n datetime.seconds.toString().padStart(2, '0'),\n ].join(':'),\n ].join('T'),\n );\n },\n}) */ Schema.String.pipe(\n FormatAnnotation.set(TypeFormat.DateTime),\n Schema.annotations({\n title: 'DateTime',\n description: 'Valid date and time in ISO format',\n }),\n);\n\n/**\n * https://datatracker.ietf.org/doc/html/rfc3339#appendix-A\n */\n// TODO(burdon): Define duration type.\nexport const Duration = Schema.String.pipe(\n FormatAnnotation.set(TypeFormat.Duration),\n Schema.annotations({\n title: 'Duration',\n description: 'Duration in ISO 8601 format',\n [SchemaAST.ExamplesAnnotationId]: ['1h', '3D'],\n }),\n);\n\n//\n// Utils\n//\n\n// YYYY-MM-DD\nconst DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nconst _isValidDateFormat = (str: string) => DATE_REGEX.test(str);\n\nconst _isValidDate = (str: string) => {\n const date = new Date(str);\n return !isNaN(date.getTime()) && date.toISOString().startsWith(str);\n};\n\n// HH:mm:ss\nconst TIME_REGEX = /^([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)$/;\n\nconst _isValidTimeFormat = (str: string) => TIME_REGEX.test(str);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\n/**\n * Schema for a single select option. Used to define choices in a {single|multi}-select field.\n */\nexport const SelectOption = Schema.Struct({\n /** Stable identifier for the option. */\n id: Schema.NonEmptyString,\n title: Schema.String,\n /** Color palette used for visual styling. */\n color: Schema.String,\n});\n\nexport type SelectOption = Schema.Schema.Type<typeof SelectOption>;\n"],
5
+ "mappings": "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",
6
+ "names": ["Function", "Option", "SchemaAST", "TypeEnum", "getTypeEnum", "property", "type", "undefined", "FormatAnnotationId", "Symbol", "for", "FormatAnnotation", "createAnnotationHelper", "getFormatAnnotation", "node", "pipe", "getAnnotation", "getOrUndefined", "TypeFormat", "FormatEnums", "Object", "values", "sort", "PropertyKind", "format", "typeToFormat", "formatToType", "OptionsAnnotationId", "OptionsAnnotation", "getOptionsAnnotation", "Schema", "encodeMultipleOf", "divisor", "Math", "pow", "encodeMultiple", "self", "undefined", "pipe", "multipleOf", "DecimalPrecision", "transform", "Number", "strict", "encode", "value", "decode", "log10", "annotations", "title", "CurrencyAnnotationId", "Symbol", "for", "Currency", "decimals", "code", "FormatAnnotation", "set", "TypeFormat", "description", "toUpperCase", "Integer", "int", "Percent", "Timestamp", "Schema", "clamp", "GeoPoint", "Tuple", "Number", "pipe", "annotations", "title", "clamp", "multipleOf", "optionalElement", "FormatAnnotation", "set", "TypeFormat", "description", "GeoLocation", "toGeoPoint", "longitude", "latitude", "height", "clampedLongitude", "clampedLatitude", "undefined", "fromGeoPoint", "geoPoint", "result", "Schema", "SchemaAST", "Email", "String", "pipe", "pattern", "FormatAnnotation", "set", "TypeFormat", "annotations", "title", "description", "Formula", "Hostname", "JSON", "Markdown", "Regex", "Text", "URL", "UUID", "ExamplesAnnotationId", "Schema", "Keys", "Schema", "SchemaAST", "SimpleDate", "Struct", "year", "Number", "pipe", "between", "month", "day", "SimpleTime", "Struct", "hours", "Number", "pipe", "between", "minutes", "seconds", "SimpleDateTime", "extend", "SimpleDate", "SimpleTime", "DateOnly", "String", "pipe", "FormatAnnotation", "set", "TypeFormat", "Date", "annotations", "title", "description", "TimeOnly", "Time", "DateTime", "Duration", "ExamplesAnnotationId", "Format", "TypeFormat", "DXN", "Schema", "Email", "Formula", "Hostname", "JSON", "Markdown", "Regex", "URL", "UUID", "Currency", "Integer", "Percent", "Timestamp", "Date", "DateOnly", "DateTime", "Duration", "Time", "TimeOnly", "GeoPoint", "Schema", "SelectOption", "Struct", "id", "NonEmptyString", "title", "String", "color"]
7
+ }
@@ -39,4 +39,4 @@ export {
39
39
  rank,
40
40
  Order_exports
41
41
  };
42
- //# sourceMappingURL=chunk-ZTUBYOGB.mjs.map
42
+ //# sourceMappingURL=chunk-TTCSATUD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Order.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type QueryAST } from '@dxos/echo-protocol';\n\nexport interface Order<T> {\n // TODO(dmaretskyi): See new effect-schema approach to variance.\n '~Order': { value: T };\n\n ast: QueryAST.Order;\n}\n\nexport type Any = Order<any>;\n\nclass OrderClass implements Order<any> {\n private static 'variance': Order<any>['~Order'] = {} as Order<any>['~Order'];\n\n static is(value: unknown): value is Order<any> {\n return typeof value === 'object' && value !== null && '~Order' in value;\n }\n\n constructor(public readonly ast: QueryAST.Order) {}\n\n '~Order' = OrderClass.variance;\n}\n\nexport const natural: Order<any> = new OrderClass({ kind: 'natural' });\nexport const property = <T>(property: keyof T & string, direction: QueryAST.OrderDirection): Order<T> =>\n new OrderClass({\n kind: 'property',\n property,\n direction,\n });\n\n/**\n * Order by relevance rank (for FTS/vector search results).\n * Higher rank = better match. Default direction is 'desc' (best matches first).\n */\nexport const rank = <T>(direction: QueryAST.OrderDirection = 'desc'): Order<T> =>\n new OrderClass({\n kind: 'rank',\n direction,\n });\n"],
5
+ "mappings": ";;;;;AAAA;;;;;;AAiBA,IAAMA,aAAN,MAAMA,YAAAA;;EACJ,OAAe,aAAmC,CAAC;EAEnD,OAAOC,GAAGC,OAAqC;AAC7C,WAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,YAAYA;EACpE;EAEA,YAA4BC,KAAqB;SAArBA,MAAAA;EAAsB;EAElD,WAAWH,YAAWI;AACxB;AAEO,IAAMC,UAAsB,IAAIL,WAAW;EAAEM,MAAM;AAAU,CAAA;AAC7D,IAAMC,WAAW,CAAIA,WAA4BC,cACtD,IAAIR,WAAW;EACbM,MAAM;EACNC,UAAAA;EACAC;AACF,CAAA;AAMK,IAAMC,OAAO,CAAID,YAAqC,WAC3D,IAAIR,WAAW;EACbM,MAAM;EACNE;AACF,CAAA;",
6
+ "names": ["OrderClass", "is", "value", "ast", "variance", "natural", "kind", "property", "direction", "rank"]
7
+ }
@@ -4,4 +4,4 @@ var QueryResult_exports = {};
4
4
  export {
5
5
  QueryResult_exports
6
6
  };
7
- //# sourceMappingURL=chunk-OMUPQMLR.mjs.map
7
+ //# sourceMappingURL=chunk-V72DY6LU.mjs.map
@@ -0,0 +1,136 @@
1
+ import {
2
+ object
3
+ } from "./chunk-PSZBLH53.mjs";
4
+ import {
5
+ getDXN,
6
+ make
7
+ } from "./chunk-J54QMAKF.mjs";
8
+ import {
9
+ FormInputAnnotation,
10
+ IconAnnotation,
11
+ SystemTypeAnnotation
12
+ } from "./chunk-TNBK56IN.mjs";
13
+ import {
14
+ __export
15
+ } from "./chunk-J5LGTIGS.mjs";
16
+
17
+ // src/Feed.ts
18
+ var Feed_exports = {};
19
+ __export(Feed_exports, {
20
+ ContextFeedService: () => ContextFeedService,
21
+ Feed: () => Feed,
22
+ FeedService: () => FeedService,
23
+ Service: () => Service,
24
+ append: () => append,
25
+ cursor: () => cursor,
26
+ getQueueDxn: () => getQueueDxn,
27
+ make: () => make2,
28
+ next: () => next,
29
+ nextOption: () => nextOption,
30
+ notAvailable: () => notAvailable,
31
+ query: () => query,
32
+ remove: () => remove,
33
+ runQuery: () => runQuery,
34
+ setRetention: () => setRetention,
35
+ sync: () => sync
36
+ });
37
+ import * as Context from "effect/Context";
38
+ import * as Effect from "effect/Effect";
39
+ import * as Layer from "effect/Layer";
40
+ import * as Schema from "effect/Schema";
41
+ import { DXN } from "@dxos/keys";
42
+ var Feed = Schema.Struct({
43
+ /** User-facing display name. */
44
+ name: Schema.String.pipe(Schema.optional),
45
+ /** Identifier for the feed's kind (e.g., plugin id). */
46
+ kind: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),
47
+ /**
48
+ * Feed namespace.
49
+ * Controls how feed data is stored and replicated.
50
+ * - `data`: Data feed (default).
51
+ * - `trace`: Trace feed.
52
+ */
53
+ namespace: Schema.optional(Schema.Literal("data", "trace"))
54
+ }).pipe(object({
55
+ typename: "org.dxos.type.feed",
56
+ version: "0.1.0"
57
+ }), SystemTypeAnnotation.set(true), IconAnnotation.set({
58
+ icon: "ph--rows--regular",
59
+ hue: "yellow"
60
+ }));
61
+ var make2 = (props = {}) => make(Feed, props);
62
+ var getQueueDxn = (feed) => {
63
+ const self = getDXN(feed).asEchoDXN();
64
+ if (!self || !self.spaceId) {
65
+ return void 0;
66
+ }
67
+ return new DXN(DXN.kind.QUEUE, [
68
+ feed.namespace ?? "data",
69
+ self.spaceId,
70
+ self.echoId
71
+ ]);
72
+ };
73
+ var FeedService = class extends Context.Tag("@dxos/echo/Feed/FeedService")() {
74
+ };
75
+ var Service = FeedService;
76
+ var notAvailable = Layer.succeed(FeedService, {
77
+ append: () => {
78
+ throw new Error("Feed.FeedService not available");
79
+ },
80
+ remove: () => {
81
+ throw new Error("Feed.FeedService not available");
82
+ },
83
+ query: () => {
84
+ throw new Error("Feed.FeedService not available");
85
+ },
86
+ sync: () => {
87
+ throw new Error("Feed.FeedService not available");
88
+ }
89
+ });
90
+ var ContextFeedService = class _ContextFeedService extends Context.Tag("@dxos/echo/Feed/ContextFeedService")() {
91
+ static layer = (feed) => Layer.succeed(_ContextFeedService, {
92
+ feed
93
+ });
94
+ };
95
+ var append = (feed, items) => Effect.gen(function* () {
96
+ const service = yield* FeedService;
97
+ yield* Effect.promise(() => service.append(feed, items));
98
+ });
99
+ var remove = (feed, items) => Effect.gen(function* () {
100
+ const service = yield* FeedService;
101
+ const ids = items.map((item) => item.id);
102
+ yield* Effect.promise(() => service.remove(feed, ids));
103
+ });
104
+ var query = (feed, queryOrFilter) => FeedService.pipe(Effect.map((service) => service.query(feed, queryOrFilter)));
105
+ var runQuery = (feed, queryOrFilter) => query(feed, queryOrFilter).pipe(Effect.flatMap((queryResult) => Effect.promise(() => queryResult.run())));
106
+ var sync = (feed, options) => Effect.gen(function* () {
107
+ const service = yield* FeedService;
108
+ yield* Effect.promise(() => service.sync(feed, options));
109
+ });
110
+ var cursor = (_feed) => Effect.succeed({
111
+ _tag: "Cursor"
112
+ });
113
+ var next = (_cursor) => Effect.die("Feed.next is not yet implemented");
114
+ var nextOption = (_cursor) => Effect.die("Feed.nextOption is not yet implemented");
115
+ var setRetention = (_feed, _options) => Effect.void;
116
+
117
+ export {
118
+ Feed,
119
+ make2 as make,
120
+ getQueueDxn,
121
+ FeedService,
122
+ Service,
123
+ notAvailable,
124
+ ContextFeedService,
125
+ append,
126
+ remove,
127
+ query,
128
+ runQuery,
129
+ sync,
130
+ cursor,
131
+ next,
132
+ nextOption,
133
+ setRetention,
134
+ Feed_exports
135
+ };
136
+ //# sourceMappingURL=chunk-ZFACXBY6.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Feed.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport type * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\n\nimport { DXN } from '@dxos/keys';\n\nimport * as Annotation from './Annotation';\nimport type * as Entity from './Entity';\nimport type * as Filter from './Filter';\nimport * as internal from './internal';\nimport * as Obj from './Obj';\nimport type * as Query from './Query';\nimport type * as QueryResult from './QueryResult';\nimport * as Type from './Type';\n\n/**\n * Runtime schema for a Feed object.\n *\n * @example\n * ```ts\n * const feed = Obj.make(Feed.Feed, { name: 'notifications', kind: 'org.dxos.plugin.notifications.v1' });\n * ```\n */\nexport const Feed = Schema.Struct({\n /** User-facing display name. */\n name: Schema.String.pipe(Schema.optional),\n /** Identifier for the feed's kind (e.g., plugin id). */\n kind: Schema.String.pipe(internal.FormInputAnnotation.set(false), Schema.optional),\n\n /**\n * Feed namespace.\n * Controls how feed data is stored and replicated.\n * - `data`: Data feed (default).\n * - `trace`: Trace feed.\n */\n namespace: Schema.optional(Schema.Literal('data', 'trace')),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.feed',\n version: '0.1.0',\n }),\n internal.SystemTypeAnnotation.set(true),\n Annotation.IconAnnotation.set({\n icon: 'ph--rows--regular',\n hue: 'yellow',\n }),\n);\n\n/**\n * TypeScript instance type for a Feed object.\n */\nexport interface Feed extends Schema.Schema.Type<typeof Feed> {}\n\n//\n// Types\n//\n\n/**\n * Opaque cursor for iterating over feed items.\n */\n// TODO(dmaretskyi): T needs to be referenced in the type structure for typescript to respect it during inference and type-checking.\nexport interface Cursor<T = Obj.Snapshot> {\n readonly _tag: 'Cursor';\n}\n\n/**\n * Retention options for a feed.\n */\nexport interface RetentionOptions {\n /** Retain items after this cursor position. */\n // TODO(wittjosiah): Use FeedCursor from @dxos/feed?\n cursor?: string;\n}\n\n/**\n * Sync options for a feed.\n */\nexport interface SyncOptions {\n /** Push local changes to the server. Defaults to true. */\n shouldPush?: boolean;\n /** Pull remote changes from the server. Defaults to true. */\n shouldPull?: boolean;\n}\n\n//\n// Factory\n//\n\n/**\n * Creates a new feed object.\n *\n * @example\n * ```ts\n * const feed = Feed.make({ name: 'notifications', kind: 'org.dxos.plugin.notifications.v1' });\n * ```\n */\n// TODO(wittjosiah): How to control the feed namespace (data/trace)? Why do feeds have namespaces?\nexport const make = (props: Obj.MakeProps<typeof Feed> = {}): Feed => Obj.make(Feed, props);\n\n/**\n * Derives the queue DXN from the feed object's DXN.\n * Returns `undefined` when the feed is not stored in a space yet.\n *\n * Used internally by the feed service layer.\n */\nexport const getQueueDxn = (feed: Feed): DXN | undefined => {\n const self = Obj.getDXN(feed).asEchoDXN();\n if (!self || !self.spaceId) {\n return undefined;\n }\n return new DXN(DXN.kind.QUEUE, [feed.namespace ?? 'data', self.spaceId, self.echoId]);\n};\n\n//\n// Service\n//\n\n/**\n * Effect service for feed operations.\n * Provides the bridge to the underlying storage implementation.\n * Must be provided by the application layer (e.g., echo-db).\n */\nexport class FeedService extends Context.Tag('@dxos/echo/Feed/FeedService')<\n FeedService,\n {\n /**\n * Appends items to a feed.\n */\n append(feed: Feed, items: Entity.Unknown[]): Promise<void>;\n\n /**\n * Removes items from a feed by ID.\n */\n // TODO(dmaretskyi): Change type to ObjectId.\n remove(feed: Feed, ids: string[]): Promise<void>;\n\n /**\n * Queries items in a feed.\n */\n query: {\n <Q extends Query.Any>(feed: Feed, query: Q): QueryResult.QueryResult<Query.Type<Q>>;\n <F extends Filter.Any>(feed: Feed, filter: F): QueryResult.QueryResult<Filter.Type<F>>;\n };\n\n /**\n * Syncs the feed with the server.\n */\n sync(feed: Feed, options?: SyncOptions): Promise<void>;\n }\n>() {}\n\n/**\n * @deprecated Use `FeedService` instead.\n */\nexport type Service = FeedService;\n\n/**\n * @deprecated Use `FeedService` instead.\n */\nexport const Service = FeedService;\n\n/**\n * Layer that provides a Feed service that throws when accessed.\n * Useful as a default layer when no feed service is available.\n */\nexport const notAvailable: Layer.Layer<FeedService> = Layer.succeed(FeedService, {\n append: () => {\n throw new Error('Feed.FeedService not available');\n },\n remove: () => {\n throw new Error('Feed.FeedService not available');\n },\n query: () => {\n throw new Error('Feed.FeedService not available');\n },\n sync: () => {\n throw new Error('Feed.FeedService not available');\n },\n} as Context.Tag.Service<FeedService>);\n\n//\n// Context (per-call) service\n//\n\n/**\n * Effect service exposing a single `Feed.Feed` as the \"current\" feed for a call site.\n *\n * @deprecated Prefer threading a `Feed.Feed` explicitly through function signatures\n * over hiding it behind a context service.\n */\nexport class ContextFeedService extends Context.Tag('@dxos/echo/Feed/ContextFeedService')<\n ContextFeedService,\n {\n readonly feed: Feed;\n }\n>() {\n static layer = (feed: Feed): Layer.Layer<ContextFeedService> => Layer.succeed(ContextFeedService, { feed });\n}\n\n//\n// Operations\n//\n\n/**\n * Appends items to a feed.\n *\n * @example\n * ```ts\n * yield* Feed.append(feed, [Obj.make(Notification, { title: 'Hello' })]);\n * ```\n */\nexport const append = (feed: Feed, items: Entity.Unknown[]): Effect.Effect<void, never, FeedService> =>\n Effect.gen(function* () {\n const service = yield* FeedService;\n yield* Effect.promise(() => service.append(feed, items));\n });\n\n/**\n * Removes items from a feed.\n *\n * @example\n * ```ts\n * yield* Feed.remove(feed, [item]);\n * ```\n */\n// TODO(dmaretskyi): Should we allow snapshots here? - what does it mean to remove a snapshot?\nexport const remove = (feed: Feed, items: (Entity.Unknown | Obj.Snapshot)[]): Effect.Effect<void, never, FeedService> =>\n Effect.gen(function* () {\n const service = yield* FeedService;\n const ids = items.map((item) => item.id);\n yield* Effect.promise(() => service.remove(feed, ids));\n });\n\n/**\n * Creates a reactive query over items in a feed.\n *\n * @example\n * ```ts\n * const result = yield* Feed.query(feed, Filter.type(Person));\n * ```\n */\n// TODO(dmaretskyi): Suport chained queries:\n// const result = yield* feed.pipe(Feed.query(Filter.type(Person))); result.subscribe(...)\n// const objects = yield* feed.pipe(Feed.query(Filter.type(Person))).run;\n// const object = yield* feed.pipe(Feed.query(Filter.type(Person))).first;\n// ... unify for Database and schema queries.\nexport const query: {\n <Q extends Query.Any>(\n feed: Feed,\n query: Q,\n ): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, FeedService>;\n <F extends Filter.Any>(\n feed: Feed,\n filter: F,\n ): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, FeedService>;\n} = (feed: Feed, queryOrFilter: Query.Any | Filter.Any) =>\n FeedService.pipe(Effect.map((service) => service.query(feed, queryOrFilter as any) as QueryResult.QueryResult<any>));\n\n/**\n * Executes a feed query once and returns the results.\n *\n * @example\n * ```ts\n * const items = yield* Feed.runQuery(feed, Filter.type(Person));\n * ```\n */\nexport const runQuery: {\n <Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<Query.Type<Q>[], never, FeedService>;\n <F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<Filter.Type<F>[], never, FeedService>;\n} = (feed: Feed, queryOrFilter: Query.Any | Filter.Any) =>\n query(feed, queryOrFilter as any).pipe(Effect.flatMap((queryResult) => Effect.promise(() => queryResult.run())));\n\n/**\n * Syncs the feed with the server.\n *\n * @example\n * ```ts\n * yield* Feed.sync(feed);\n * yield* Feed.sync(feed, { shouldPush: false });\n * ```\n */\nexport const sync = (feed: Feed, options?: SyncOptions): Effect.Effect<void, never, FeedService> =>\n Effect.gen(function* () {\n const service = yield* FeedService;\n yield* Effect.promise(() => service.sync(feed, options));\n });\n\n/**\n * Creates a cursor for iterating over feed items.\n * Currently stubbed — cursor operations are not yet implemented.\n *\n * @example\n * ```ts\n * const cursor = yield* Feed.cursor<Person>(feed);\n * const item = yield* Feed.next(cursor);\n * ```\n */\n// TODO(wittjosiah): Implement cursor operations. Use Effect streams?\nexport const cursor = <T = Obj.Snapshot>(_feed: Feed): Effect.Effect<Cursor<T>, never, FeedService> =>\n Effect.succeed({ _tag: 'Cursor' } as Cursor<T>);\n\n/**\n * Returns the next item from a feed cursor.\n * Currently stubbed — cursor operations are not yet implemented.\n */\nexport const next = <T = Obj.Snapshot>(_cursor: Cursor<T>): Effect.Effect<T, never, FeedService> =>\n Effect.die('Feed.next is not yet implemented');\n\n/**\n * Returns the next item from a feed cursor as an Option.\n * Currently stubbed — cursor operations are not yet implemented.\n */\nexport const nextOption = <T = Obj.Snapshot>(_cursor: Cursor<T>): Effect.Effect<Option.Option<T>, never, FeedService> =>\n Effect.die('Feed.nextOption is not yet implemented');\n\n/**\n * Sets the local retention policy for a feed.\n * Currently stubbed — feeds do not yet support retention.\n *\n * @example\n * ```ts\n * yield* Feed.setRetention(feed, { count: 1000 });\n * ```\n */\n// TODO(dmaretskyi): Implement when feed retention is supported.\nexport const setRetention = (_feed: Feed, _options: RetentionOptions): Effect.Effect<void, never, FeedService> =>\n Effect.void;\n"],
5
+ "mappings": "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",
6
+ "names": ["make", "Context", "Effect", "Layer", "Schema", "DXN", "Feed", "Struct", "name", "String", "pipe", "optional", "kind", "FormInputAnnotation", "set", "namespace", "Literal", "object", "typename", "version", "SystemTypeAnnotation", "IconAnnotation", "icon", "hue", "make", "props", "getQueueDxn", "feed", "self", "getDXN", "asEchoDXN", "spaceId", "undefined", "DXN", "QUEUE", "echoId", "FeedService", "Tag", "Service", "notAvailable", "succeed", "append", "Error", "remove", "query", "sync", "ContextFeedService", "layer", "items", "gen", "service", "promise", "ids", "map", "item", "id", "queryOrFilter", "runQuery", "flatMap", "queryResult", "run", "options", "cursor", "_feed", "_tag", "next", "_cursor", "die", "nextOption", "setRetention", "_options", "void"]
7
+ }
@@ -48,4 +48,4 @@ export {
48
48
  GetReactiveError,
49
49
  Err_exports
50
50
  };
51
- //# sourceMappingURL=chunk-MXQJZCPY.mjs.map
51
+ //# sourceMappingURL=chunk-ZISMEVKD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Err.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { BaseError, type BaseErrorOptions } from '@dxos/errors';\nimport { type DXN } from '@dxos/keys';\n\nexport class SchemaNotFoundError extends BaseError.extend('SchemaNotFoundError', 'Schema not found') {\n constructor(schema: string, options?: BaseErrorOptions) {\n super({ context: { schema }, ...options });\n }\n}\n\nexport class ObjectNotFoundError extends BaseError.extend('ObjectNotFoundError', 'Object not found') {\n constructor(dxn: DXN, options?: BaseErrorOptions) {\n super({ context: { dxn }, ...options });\n }\n}\n\n/**\n * Reason why getting a reactive object from a snapshot failed.\n * - `no-database`: The snapshot is not associated with a database.\n * - `object-not-found`: The object was removed or does not exist in the database.\n */\nexport type GetReactiveErrorReason = 'no-database' | 'object-not-found';\n\n/**\n * Error thrown when a reactive object cannot be resolved from a snapshot.\n * Extends `BaseError` with a `reason` and optional `snapshotId` in its context.\n */\nexport class GetReactiveError extends BaseError.extend(\n 'GetReactiveError',\n 'Failed to get reactive object from snapshot',\n) {\n constructor(options: { reason: GetReactiveErrorReason; snapshotId?: string } & BaseErrorOptions) {\n super({ context: { reason: options.reason, snapshotId: options.snapshotId }, ...options });\n }\n}\n"],
5
+ "mappings": ";;;;;AAAA;;;;;;AAMA,SAASA,iBAAwC;AAG1C,IAAMC,sBAAN,cAAkCD,UAAUE,OAAO,uBAAuB,kBAAA,EAAA;EAC/E,YAAYC,QAAgBC,SAA4B;AACtD,UAAM;MAAEC,SAAS;QAAEF;MAAO;MAAG,GAAGC;IAAQ,CAAA;EAC1C;AACF;AAEO,IAAME,sBAAN,cAAkCN,UAAUE,OAAO,uBAAuB,kBAAA,EAAA;EAC/E,YAAYK,KAAUH,SAA4B;AAChD,UAAM;MAAEC,SAAS;QAAEE;MAAI;MAAG,GAAGH;IAAQ,CAAA;EACvC;AACF;AAaO,IAAMI,mBAAN,cAA+BR,UAAUE,OAC9C,oBACA,6CAAA,EAAA;EAEA,YAAYE,SAAqF;AAC/F,UAAM;MAAEC,SAAS;QAAEI,QAAQL,QAAQK;QAAQC,YAAYN,QAAQM;MAAW;MAAG,GAAGN;IAAQ,CAAA;EAC1F;AACF;",
6
+ "names": ["BaseError", "SchemaNotFoundError", "extend", "schema", "options", "context", "ObjectNotFoundError", "dxn", "GetReactiveError", "reason", "snapshotId"]
7
+ }
@@ -3,67 +3,77 @@ import {
3
3
  DXN,
4
4
  Dataset_exports,
5
5
  Hypergraph_exports,
6
+ Json_exports,
6
7
  QueryAST,
7
8
  View_exports
8
- } from "./chunk-BRJSLACP.mjs";
9
+ } from "./chunk-MGSQGHOD.mjs";
9
10
  import {
10
11
  SchemaRegistry_exports
11
- } from "./chunk-T6JEFNP6.mjs";
12
+ } from "./chunk-BICZKPQG.mjs";
12
13
  import {
13
14
  Tag_exports
14
- } from "./chunk-GAWKQ5DZ.mjs";
15
+ } from "./chunk-Q2KKKJSV.mjs";
15
16
  import {
16
17
  Order_exports
17
- } from "./chunk-ZTUBYOGB.mjs";
18
+ } from "./chunk-TTCSATUD.mjs";
18
19
  import {
19
20
  Key_exports
20
- } from "./chunk-ANHVGJI4.mjs";
21
+ } from "./chunk-7RVZT53K.mjs";
22
+ import {
23
+ Migration_exports
24
+ } from "./chunk-FIWO2FZK.mjs";
25
+ import {
26
+ Extension_exports
27
+ } from "./chunk-GWFFC34K.mjs";
21
28
  import {
22
29
  Format_exports
23
- } from "./chunk-DZQSL6RW.mjs";
30
+ } from "./chunk-44HT3MEC.mjs";
24
31
  import {
25
32
  Relation_exports
26
- } from "./chunk-ZWKJ4LZJ.mjs";
33
+ } from "./chunk-PT37DG2F.mjs";
27
34
  import {
28
35
  JsonSchema_exports
29
- } from "./chunk-O3TZFQCT.mjs";
36
+ } from "./chunk-QRZ2I3ZM.mjs";
30
37
  import {
31
38
  QueryResult_exports
32
- } from "./chunk-OMUPQMLR.mjs";
39
+ } from "./chunk-V72DY6LU.mjs";
33
40
  import {
34
41
  Query_exports
35
- } from "./chunk-AQP4QKYP.mjs";
42
+ } from "./chunk-Q7ZL2P5H.mjs";
36
43
  import {
37
44
  Feed_exports
38
- } from "./chunk-GFNCSK7F.mjs";
45
+ } from "./chunk-ZFACXBY6.mjs";
39
46
  import {
40
47
  Type_exports
41
- } from "./chunk-T4MPQJ7X.mjs";
48
+ } from "./chunk-PSZBLH53.mjs";
42
49
  import {
43
50
  Filter_exports
44
- } from "./chunk-ALOGSVBP.mjs";
45
- import {
46
- Ref_exports
47
- } from "./chunk-QXF3LGN2.mjs";
51
+ } from "./chunk-APJKDGFL.mjs";
48
52
  import {
49
53
  Obj_exports
50
- } from "./chunk-KGV3QIRX.mjs";
54
+ } from "./chunk-J54QMAKF.mjs";
55
+ import {
56
+ Ref_exports
57
+ } from "./chunk-N7VOEPSV.mjs";
51
58
  import {
52
59
  Entity_exports
53
- } from "./chunk-W7OP5HGZ.mjs";
54
- import "./chunk-PP4DNUZU.mjs";
55
- import "./chunk-M2KVTHZM.mjs";
60
+ } from "./chunk-SCPFDS2E.mjs";
61
+ import "./chunk-G54OX4IX.mjs";
62
+ import "./chunk-APHSOTIX.mjs";
63
+ import "./chunk-MLS7U7AT.mjs";
64
+ import "./chunk-TRPZU2HV.mjs";
65
+ import "./chunk-BMB7IHGB.mjs";
56
66
  import {
57
67
  Annotation_exports
58
- } from "./chunk-OVUBTQLT.mjs";
68
+ } from "./chunk-5SL5LDLD.mjs";
59
69
  import {
60
70
  Database_exports
61
- } from "./chunk-5ELDDYWE.mjs";
62
- import "./chunk-F7KMHDPJ.mjs";
63
- import "./chunk-4KG6IGL4.mjs";
71
+ } from "./chunk-I2DARWPX.mjs";
72
+ import "./chunk-TNBK56IN.mjs";
73
+ import "./chunk-N4B7FHQT.mjs";
64
74
  import {
65
75
  Err_exports
66
- } from "./chunk-MXQJZCPY.mjs";
76
+ } from "./chunk-ZISMEVKD.mjs";
67
77
  import "./chunk-J5LGTIGS.mjs";
68
78
  export {
69
79
  Annotation_exports as Annotation,
@@ -73,12 +83,15 @@ export {
73
83
  Dataset_exports as Dataset,
74
84
  Entity_exports as Entity,
75
85
  Err_exports as Err,
86
+ Extension_exports as Extension,
76
87
  Feed_exports as Feed,
77
88
  Filter_exports as Filter,
78
89
  Format_exports as Format,
79
90
  Hypergraph_exports as Hypergraph,
91
+ Json_exports as Json,
80
92
  JsonSchema_exports as JsonSchema,
81
93
  Key_exports as Key,
94
+ Migration_exports as Migration,
82
95
  Obj_exports as Obj,
83
96
  Order_exports as Order,
84
97
  Query_exports as Query,