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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +5 -5
  3. package/dist/lib/neutral/Annotation.mjs +7 -3
  4. package/dist/lib/neutral/Database.mjs +8 -4
  5. package/dist/lib/neutral/Entity.mjs +24 -14
  6. package/dist/lib/neutral/Err.mjs +3 -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 +52 -0
  10. package/dist/lib/neutral/Feed.mjs.map +7 -0
  11. package/dist/lib/neutral/Filter.mjs +23 -10
  12. package/dist/lib/neutral/Format.mjs +3 -3
  13. package/dist/lib/neutral/JsonSchema.mjs +9 -9
  14. package/dist/lib/neutral/Key.mjs +1 -1
  15. package/dist/lib/neutral/Migration.mjs +17 -0
  16. package/dist/lib/neutral/Migration.mjs.map +7 -0
  17. package/dist/lib/neutral/Obj.mjs +34 -17
  18. package/dist/lib/neutral/Order.mjs +1 -1
  19. package/dist/lib/neutral/Query.mjs +21 -9
  20. package/dist/lib/neutral/QueryResult.mjs +1 -1
  21. package/dist/lib/neutral/Ref.mjs +11 -7
  22. package/dist/lib/neutral/Relation.mjs +23 -13
  23. package/dist/lib/neutral/SchemaRegistry.mjs +1 -1
  24. package/dist/lib/neutral/Tag.mjs +14 -10
  25. package/dist/lib/neutral/Type.mjs +13 -23
  26. package/dist/lib/neutral/{chunk-N2QNHMT5.mjs → chunk-44HT3MEC.mjs} +2 -2
  27. package/dist/lib/neutral/{chunk-N2QNHMT5.mjs.map → chunk-44HT3MEC.mjs.map} +1 -1
  28. package/dist/lib/neutral/{chunk-XAJMXQ4H.mjs → chunk-5SL5LDLD.mjs} +6 -2
  29. package/dist/lib/neutral/chunk-5SL5LDLD.mjs.map +7 -0
  30. package/dist/lib/neutral/{chunk-ANHVGJI4.mjs → chunk-7RVZT53K.mjs} +1 -1
  31. package/dist/lib/neutral/chunk-APHSOTIX.mjs +34 -0
  32. package/dist/lib/neutral/chunk-APHSOTIX.mjs.map +7 -0
  33. package/dist/lib/neutral/{chunk-ZAHWXGK4.mjs → chunk-APJKDGFL.mjs} +85 -7
  34. package/dist/lib/neutral/chunk-APJKDGFL.mjs.map +7 -0
  35. package/dist/lib/neutral/{chunk-4L6DOFXP.mjs → chunk-BICZKPQG.mjs} +1 -1
  36. package/dist/lib/neutral/{chunk-4L6DOFXP.mjs.map → chunk-BICZKPQG.mjs.map} +1 -1
  37. package/dist/lib/neutral/chunk-BMB7IHGB.mjs +346 -0
  38. package/dist/lib/neutral/chunk-BMB7IHGB.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-FIWO2FZK.mjs +36 -0
  40. package/dist/lib/neutral/chunk-FIWO2FZK.mjs.map +7 -0
  41. package/dist/lib/neutral/chunk-G54OX4IX.mjs +2452 -0
  42. package/dist/lib/neutral/chunk-G54OX4IX.mjs.map +7 -0
  43. package/dist/lib/neutral/chunk-GWFFC34K.mjs +50 -0
  44. package/dist/lib/neutral/chunk-GWFFC34K.mjs.map +7 -0
  45. package/dist/lib/neutral/{chunk-LKFNEFHF.mjs → chunk-I2DARWPX.mjs} +18 -20
  46. package/dist/lib/neutral/chunk-I2DARWPX.mjs.map +7 -0
  47. package/dist/lib/neutral/chunk-J54QMAKF.mjs +421 -0
  48. package/dist/lib/neutral/chunk-J54QMAKF.mjs.map +7 -0
  49. package/dist/lib/neutral/chunk-MGSQGHOD.mjs +206 -0
  50. package/dist/lib/neutral/chunk-MGSQGHOD.mjs.map +7 -0
  51. package/dist/lib/neutral/chunk-MLS7U7AT.mjs +734 -0
  52. package/dist/lib/neutral/chunk-MLS7U7AT.mjs.map +7 -0
  53. package/dist/lib/neutral/{chunk-KB7RIVLK.mjs → chunk-N4B7FHQT.mjs} +4 -4
  54. package/dist/lib/neutral/{chunk-KB7RIVLK.mjs.map → chunk-N4B7FHQT.mjs.map} +2 -2
  55. package/dist/lib/neutral/{chunk-K5K3Z62A.mjs → chunk-N7VOEPSV.mjs} +11 -3
  56. package/dist/lib/neutral/chunk-N7VOEPSV.mjs.map +7 -0
  57. package/dist/lib/neutral/chunk-PSZBLH53.mjs +81 -0
  58. package/dist/lib/neutral/chunk-PSZBLH53.mjs.map +7 -0
  59. package/dist/lib/neutral/{chunk-MTEHHY62.mjs → chunk-PT37DG2F.mjs} +77 -58
  60. package/dist/lib/neutral/chunk-PT37DG2F.mjs.map +7 -0
  61. package/dist/lib/neutral/{chunk-DLPC7DHQ.mjs → chunk-Q2KKKJSV.mjs} +5 -5
  62. package/dist/lib/neutral/chunk-Q2KKKJSV.mjs.map +7 -0
  63. package/dist/lib/neutral/chunk-Q7ZL2P5H.mjs +320 -0
  64. package/dist/lib/neutral/chunk-Q7ZL2P5H.mjs.map +7 -0
  65. package/dist/lib/neutral/{chunk-QARLJVDB.mjs → chunk-QRZ2I3ZM.mjs} +8 -4
  66. package/dist/lib/neutral/chunk-QRZ2I3ZM.mjs.map +7 -0
  67. package/dist/lib/neutral/{chunk-VUQGRDRI.mjs → chunk-SCPFDS2E.mjs} +40 -12
  68. package/dist/lib/neutral/chunk-SCPFDS2E.mjs.map +7 -0
  69. package/dist/lib/neutral/{chunk-RIMHNJ3E.mjs → chunk-TNBK56IN.mjs} +98 -44
  70. package/dist/lib/neutral/chunk-TNBK56IN.mjs.map +7 -0
  71. package/dist/lib/neutral/{chunk-7WE7SBA2.mjs → chunk-TRPZU2HV.mjs} +13 -13
  72. package/dist/lib/neutral/chunk-TRPZU2HV.mjs.map +7 -0
  73. package/dist/lib/neutral/{chunk-ROKO4RKJ.mjs → chunk-TTCSATUD.mjs} +2 -2
  74. package/dist/lib/neutral/chunk-TTCSATUD.mjs.map +7 -0
  75. package/dist/lib/neutral/{chunk-OMUPQMLR.mjs → chunk-V72DY6LU.mjs} +1 -1
  76. package/dist/lib/neutral/chunk-ZFACXBY6.mjs +136 -0
  77. package/dist/lib/neutral/chunk-ZFACXBY6.mjs.map +7 -0
  78. package/dist/lib/neutral/{chunk-RPB6V4BE.mjs → chunk-ZISMEVKD.mjs} +14 -1
  79. package/dist/lib/neutral/chunk-ZISMEVKD.mjs.map +7 -0
  80. package/dist/lib/neutral/index.mjs +51 -28
  81. package/dist/lib/neutral/internal/index.mjs +52 -38
  82. package/dist/lib/neutral/meta.json +1 -1
  83. package/dist/lib/neutral/testing/index.mjs +199 -136
  84. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  85. package/dist/types/src/Annotation.d.ts +3 -3
  86. package/dist/types/src/Annotation.d.ts.map +1 -1
  87. package/dist/types/src/Collection.d.ts +16 -0
  88. package/dist/types/src/Collection.d.ts.map +1 -0
  89. package/dist/types/src/Database.d.ts +21 -36
  90. package/dist/types/src/Database.d.ts.map +1 -1
  91. package/dist/types/src/Dataset.d.ts +19 -0
  92. package/dist/types/src/Dataset.d.ts.map +1 -0
  93. package/dist/types/src/Entity.d.ts +54 -22
  94. package/dist/types/src/Entity.d.ts.map +1 -1
  95. package/dist/types/src/Err.d.ts +55 -12
  96. package/dist/types/src/Err.d.ts.map +1 -1
  97. package/dist/types/src/Extension.d.ts +80 -0
  98. package/dist/types/src/Extension.d.ts.map +1 -0
  99. package/dist/types/src/Extension.test.d.ts +2 -0
  100. package/dist/types/src/Extension.test.d.ts.map +1 -0
  101. package/dist/types/src/Feed.d.ts +206 -0
  102. package/dist/types/src/Feed.d.ts.map +1 -0
  103. package/dist/types/src/Filter.d.ts +55 -5
  104. package/dist/types/src/Filter.d.ts.map +1 -1
  105. package/dist/types/src/Filter.test.d.ts +2 -0
  106. package/dist/types/src/Filter.test.d.ts.map +1 -0
  107. package/dist/types/src/Format.d.ts +3 -3
  108. package/dist/types/src/Format.d.ts.map +1 -1
  109. package/dist/types/src/Hypergraph.d.ts +11 -6
  110. package/dist/types/src/Hypergraph.d.ts.map +1 -1
  111. package/dist/types/src/Json.d.ts +33 -0
  112. package/dist/types/src/Json.d.ts.map +1 -0
  113. package/dist/types/src/Json.test.d.ts +2 -0
  114. package/dist/types/src/Json.test.d.ts.map +1 -0
  115. package/dist/types/src/JsonSchema.d.ts +11 -4
  116. package/dist/types/src/JsonSchema.d.ts.map +1 -1
  117. package/dist/types/src/Migration.d.ts +69 -0
  118. package/dist/types/src/Migration.d.ts.map +1 -0
  119. package/dist/types/src/Obj.d.ts +163 -59
  120. package/dist/types/src/Obj.d.ts.map +1 -1
  121. package/dist/types/src/Order.d.ts.map +1 -1
  122. package/dist/types/src/Query.d.ts +105 -17
  123. package/dist/types/src/Query.d.ts.map +1 -1
  124. package/dist/types/src/Ref.d.ts +59 -10
  125. package/dist/types/src/Ref.d.ts.map +1 -1
  126. package/dist/types/src/Relation.d.ts +86 -40
  127. package/dist/types/src/Relation.d.ts.map +1 -1
  128. package/dist/types/src/SchemaRegistry.d.ts +4 -4
  129. package/dist/types/src/SchemaRegistry.d.ts.map +1 -1
  130. package/dist/types/src/Tag.d.ts +2 -1
  131. package/dist/types/src/Tag.d.ts.map +1 -1
  132. package/dist/types/src/Type.d.ts +51 -180
  133. package/dist/types/src/Type.d.ts.map +1 -1
  134. package/dist/types/src/View.d.ts +68 -0
  135. package/dist/types/src/View.d.ts.map +1 -0
  136. package/dist/types/src/exemplars.test.d.ts +2 -0
  137. package/dist/types/src/exemplars.test.d.ts.map +1 -0
  138. package/dist/types/src/index.d.ts +7 -0
  139. package/dist/types/src/index.d.ts.map +1 -1
  140. package/dist/types/src/internal/{annotations → Annotation}/annotations.d.ts +65 -2
  141. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  142. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  143. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  144. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  145. package/dist/types/src/internal/{api → Annotation}/sorting.d.ts +1 -1
  146. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  147. package/dist/types/src/internal/{annotations → Annotation}/util.d.ts +2 -2
  148. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  149. package/dist/types/src/internal/{api/entity.d.ts → Entity/api.d.ts} +2 -2
  150. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  151. package/dist/types/src/internal/{entities → Entity}/entity.d.ts +3 -3
  152. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  153. package/dist/types/src/internal/{entities → Entity}/index.d.ts +2 -0
  154. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  155. package/dist/types/src/internal/{entities → Entity}/model.d.ts +4 -26
  156. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  157. package/dist/types/src/internal/{entities → Entity}/object.d.ts +2 -2
  158. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  159. package/dist/types/src/internal/{entities → Entity}/relation.d.ts +3 -30
  160. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  161. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  162. package/dist/types/src/internal/{api → Entity}/version.d.ts +1 -1
  163. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  164. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  165. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  166. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  167. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  168. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  169. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  170. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  171. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  172. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  173. package/dist/types/src/internal/{formats → Format}/types.d.ts +1 -1
  174. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  175. package/dist/types/src/internal/{json-schema → JsonSchema}/annotations.d.ts +1 -1
  176. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  177. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  178. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  179. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  180. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +37 -37
  181. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  182. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.d.ts +1 -1
  183. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  184. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  185. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  186. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  187. package/dist/types/src/internal/{object → Obj}/create-object.d.ts +2 -2
  188. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  189. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  190. package/dist/types/src/internal/{object → Obj}/deleted.d.ts +1 -1
  191. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  192. package/dist/types/src/internal/{object → Obj}/ids.d.ts +1 -1
  193. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  194. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  195. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  196. package/dist/types/src/internal/{object → Obj}/json-serializer.d.ts +13 -5
  197. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  198. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  199. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  200. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  201. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  202. package/dist/types/src/internal/{object → Obj}/set-value.d.ts +2 -2
  203. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  204. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  205. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  206. package/dist/types/src/internal/{object → Obj}/typed-object.d.ts +4 -4
  207. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  208. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  209. package/dist/types/src/internal/Query.d.ts +10 -0
  210. package/dist/types/src/internal/Query.d.ts.map +1 -0
  211. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  212. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +1 -1
  213. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  214. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +15 -2
  215. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  216. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  217. package/dist/types/src/internal/{schema → Type}/compose.d.ts +1 -1
  218. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  219. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  220. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +7 -7
  221. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  222. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  223. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  224. package/dist/types/src/internal/{schema → Type}/persistent-schema.d.ts +2 -2
  225. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  226. package/dist/types/src/internal/{api → common/api}/index.d.ts +0 -4
  227. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  228. package/dist/types/src/internal/{api → common/api}/meta.d.ts +3 -3
  229. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  230. package/dist/types/src/internal/common/index.d.ts +4 -0
  231. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  232. package/dist/types/src/internal/{proxy → common/proxy}/change-context.d.ts +1 -1
  233. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  234. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  235. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  236. package/dist/types/src/internal/{proxy → common/proxy}/errors.d.ts +1 -1
  237. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  238. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  239. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  240. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  241. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  242. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  243. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  244. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  245. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  246. package/dist/types/src/internal/{proxy → common/proxy}/reactive-array.d.ts +1 -1
  247. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  248. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts +2 -2
  249. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts.map +1 -1
  250. package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
  251. package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
  252. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  253. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  254. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  255. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  256. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  257. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  258. package/dist/types/src/internal/{types → common/types}/base.d.ts +1 -0
  259. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  260. package/dist/types/src/internal/{types → common/types}/entity.d.ts +5 -5
  261. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  262. package/dist/types/src/internal/{types → common/types}/index.d.ts +1 -0
  263. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  264. package/dist/types/src/internal/{types → common/types}/meta.d.ts +12 -1
  265. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  266. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  267. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  268. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  269. package/dist/types/src/internal/{types → common/types}/version.d.ts +2 -2
  270. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  271. package/dist/types/src/internal/index.d.ts +9 -10
  272. package/dist/types/src/internal/index.d.ts.map +1 -1
  273. package/dist/types/src/testing/test-data.d.ts +8 -8
  274. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  275. package/dist/types/src/testing/test-schema.d.ts +47 -46
  276. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  277. package/dist/types/src/testing/util.d.ts.map +1 -1
  278. package/dist/types/tsconfig.tsbuildinfo +1 -1
  279. package/package.json +30 -15
  280. package/src/Annotation.ts +7 -3
  281. package/src/Collection.ts +37 -0
  282. package/src/Database.ts +64 -65
  283. package/src/Dataset.ts +26 -0
  284. package/src/Entity.ts +87 -61
  285. package/src/Err.ts +22 -0
  286. package/src/Extension.test.ts +235 -0
  287. package/src/Extension.ts +122 -0
  288. package/src/Feed.ts +335 -0
  289. package/src/Filter.test.ts +90 -0
  290. package/src/Filter.ts +116 -7
  291. package/src/Format.ts +3 -3
  292. package/src/Hypergraph.ts +12 -7
  293. package/src/Json.test.ts +175 -0
  294. package/src/Json.ts +102 -0
  295. package/src/JsonSchema.ts +14 -4
  296. package/src/Migration.ts +106 -0
  297. package/src/Obj.test.ts +142 -15
  298. package/src/Obj.ts +382 -161
  299. package/src/Order.ts +3 -1
  300. package/src/Query.test.ts +372 -15
  301. package/src/Query.ts +274 -26
  302. package/src/Ref.ts +66 -11
  303. package/src/Relation.test.ts +8 -2
  304. package/src/Relation.ts +183 -147
  305. package/src/SchemaRegistry.ts +5 -4
  306. package/src/Tag.ts +6 -5
  307. package/src/Type.test.ts +10 -10
  308. package/src/Type.ts +70 -303
  309. package/src/View.ts +107 -0
  310. package/src/exemplars.test.ts +21 -0
  311. package/src/index.ts +8 -0
  312. package/src/internal/{annotations → Annotation}/annotations.test.ts +56 -7
  313. package/src/internal/{annotations → Annotation}/annotations.ts +122 -19
  314. package/src/internal/{annotations → Annotation}/index.ts +1 -0
  315. package/src/internal/{api → Annotation}/sorting.ts +2 -4
  316. package/src/internal/{annotations → Annotation}/util.ts +1 -1
  317. package/src/internal/{api/entity.ts → Entity/api.ts} +3 -2
  318. package/src/internal/{entities → Entity}/entity.ts +6 -4
  319. package/src/internal/{entities → Entity}/index.ts +2 -0
  320. package/src/internal/{entities → Entity}/model.ts +15 -42
  321. package/src/internal/{entities → Entity}/object.ts +2 -3
  322. package/src/internal/{entities → Entity}/relation.ts +19 -36
  323. package/src/internal/{api → Entity}/version.ts +2 -2
  324. package/src/internal/{formats → Format}/date.test.ts +1 -2
  325. package/src/internal/{formats → Format}/format.test.ts +1 -2
  326. package/src/internal/{formats → Format}/types.ts +2 -2
  327. package/src/internal/{json-schema → JsonSchema}/annotations.ts +3 -3
  328. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +4 -4
  329. package/src/internal/{json-schema → JsonSchema}/json-schema.test.ts +48 -49
  330. package/src/internal/{json-schema → JsonSchema}/json-schema.ts +6 -5
  331. package/src/internal/{object → Obj}/clone.ts +3 -3
  332. package/src/internal/{object → Obj}/common.ts +2 -2
  333. package/src/internal/{object → Obj}/create-object.test.ts +5 -7
  334. package/src/internal/{object → Obj}/create-object.ts +5 -6
  335. package/src/internal/{object → Obj}/deleted.ts +2 -2
  336. package/src/internal/{object → Obj}/ids.ts +1 -1
  337. package/src/internal/{object → Obj}/inspect.ts +2 -2
  338. package/src/internal/{object → Obj}/json-serializer.test.ts +31 -9
  339. package/src/internal/{object → Obj}/json-serializer.ts +60 -35
  340. package/src/internal/{object → Obj}/schema-validator.ts +1 -1
  341. package/src/internal/{object → Obj}/set-value.test.ts +24 -24
  342. package/src/internal/{object → Obj}/set-value.ts +3 -3
  343. package/src/internal/{object → Obj}/snapshot.ts +35 -23
  344. package/src/internal/{object → Obj}/typed-object.test.ts +3 -3
  345. package/src/internal/{object → Obj}/typed-object.ts +4 -4
  346. package/src/internal/Query.ts +156 -0
  347. package/src/internal/{ref → Ref}/ref-array.ts +1 -2
  348. package/src/internal/{ref → Ref}/ref.test.ts +4 -5
  349. package/src/internal/{ref → Ref}/ref.ts +20 -3
  350. package/src/internal/{schema → Type}/compose.test.ts +5 -6
  351. package/src/internal/{schema → Type}/compose.ts +1 -1
  352. package/src/internal/{schema → Type}/echo-schema.ts +9 -10
  353. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  354. package/src/internal/{schema → Type}/persistent-schema.ts +9 -4
  355. package/src/internal/{README.md → common/README.md} +2 -2
  356. package/src/internal/{api → common/api}/index.ts +0 -4
  357. package/src/internal/{api → common/api}/meta.ts +3 -3
  358. package/src/internal/common/index.ts +7 -0
  359. package/src/internal/{proxy → common/proxy}/change-context.ts +1 -1
  360. package/src/internal/{proxy → common/proxy}/change.test.ts +97 -97
  361. package/src/internal/{proxy → common/proxy}/errors.ts +2 -2
  362. package/src/internal/{proxy → common/proxy}/handler.test.ts +2 -4
  363. package/src/internal/{proxy → common/proxy}/json-serializer.ts +6 -3
  364. package/src/internal/{proxy → common/proxy}/make-object.ts +1 -2
  365. package/src/internal/{proxy → common/proxy}/ownership.ts +0 -1
  366. package/src/internal/{proxy → common/proxy}/reactive-array.ts +1 -1
  367. package/src/internal/common/proxy/reactive.test.ts +54 -0
  368. package/src/internal/{proxy → common/proxy}/reactive.ts +12 -4
  369. package/src/internal/{proxy → common/proxy}/schema.test.ts +10 -10
  370. package/src/internal/{proxy → common/proxy}/typed-handler.test.ts +6 -7
  371. package/src/internal/{proxy → common/proxy}/typed-handler.ts +10 -13
  372. package/src/internal/{proxy → common/proxy}/typed-object.test.ts +5 -6
  373. package/src/internal/{types → common/types}/base.ts +1 -1
  374. package/src/internal/{types → common/types}/entity.ts +2 -2
  375. package/src/internal/{types → common/types}/index.ts +1 -0
  376. package/src/internal/{types → common/types}/meta.ts +15 -1
  377. package/src/internal/common/types/model-symbols.ts +69 -0
  378. package/src/internal/{types → common/types}/version.ts +2 -3
  379. package/src/internal/index.ts +9 -31
  380. package/src/testing/api.test.ts +4 -5
  381. package/src/testing/test-data.ts +157 -98
  382. package/src/testing/test-schema.ts +20 -18
  383. package/dist/lib/neutral/chunk-2AF5GMG6.mjs +0 -171
  384. package/dist/lib/neutral/chunk-2AF5GMG6.mjs.map +0 -7
  385. package/dist/lib/neutral/chunk-7WE7SBA2.mjs.map +0 -7
  386. package/dist/lib/neutral/chunk-DLPC7DHQ.mjs.map +0 -7
  387. package/dist/lib/neutral/chunk-EBUAT5ID.mjs +0 -229
  388. package/dist/lib/neutral/chunk-EBUAT5ID.mjs.map +0 -7
  389. package/dist/lib/neutral/chunk-K5K3Z62A.mjs.map +0 -7
  390. package/dist/lib/neutral/chunk-LKFNEFHF.mjs.map +0 -7
  391. package/dist/lib/neutral/chunk-MTEHHY62.mjs.map +0 -7
  392. package/dist/lib/neutral/chunk-QARLJVDB.mjs.map +0 -7
  393. package/dist/lib/neutral/chunk-RIMHNJ3E.mjs.map +0 -7
  394. package/dist/lib/neutral/chunk-ROKO4RKJ.mjs.map +0 -7
  395. package/dist/lib/neutral/chunk-RPB6V4BE.mjs.map +0 -7
  396. package/dist/lib/neutral/chunk-TLGNKUUG.mjs +0 -3905
  397. package/dist/lib/neutral/chunk-TLGNKUUG.mjs.map +0 -7
  398. package/dist/lib/neutral/chunk-TQT6WTIJ.mjs +0 -142
  399. package/dist/lib/neutral/chunk-TQT6WTIJ.mjs.map +0 -7
  400. package/dist/lib/neutral/chunk-VUQGRDRI.mjs.map +0 -7
  401. package/dist/lib/neutral/chunk-X2MPMYYN.mjs +0 -13
  402. package/dist/lib/neutral/chunk-X2MPMYYN.mjs.map +0 -7
  403. package/dist/lib/neutral/chunk-XAJMXQ4H.mjs.map +0 -7
  404. package/dist/lib/neutral/chunk-ZAHWXGK4.mjs.map +0 -7
  405. package/dist/types/src/internal/annotations/annotations.d.ts.map +0 -1
  406. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +0 -1
  407. package/dist/types/src/internal/annotations/index.d.ts +0 -3
  408. package/dist/types/src/internal/annotations/index.d.ts.map +0 -1
  409. package/dist/types/src/internal/annotations/util.d.ts.map +0 -1
  410. package/dist/types/src/internal/api/annotations.d.ts +0 -23
  411. package/dist/types/src/internal/api/annotations.d.ts.map +0 -1
  412. package/dist/types/src/internal/api/entity.d.ts.map +0 -1
  413. package/dist/types/src/internal/api/index.d.ts.map +0 -1
  414. package/dist/types/src/internal/api/meta.d.ts.map +0 -1
  415. package/dist/types/src/internal/api/sorting.d.ts.map +0 -1
  416. package/dist/types/src/internal/api/version.d.ts.map +0 -1
  417. package/dist/types/src/internal/entities/entity.d.ts.map +0 -1
  418. package/dist/types/src/internal/entities/index.d.ts.map +0 -1
  419. package/dist/types/src/internal/entities/model.d.ts.map +0 -1
  420. package/dist/types/src/internal/entities/object.d.ts.map +0 -1
  421. package/dist/types/src/internal/entities/relation.d.ts.map +0 -1
  422. package/dist/types/src/internal/entities/util.d.ts.map +0 -1
  423. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  424. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  425. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  426. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  427. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  428. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  429. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  430. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  431. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  432. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  433. package/dist/types/src/internal/json-schema/annotations.d.ts.map +0 -1
  434. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +0 -1
  435. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  436. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  437. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  438. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +0 -1
  439. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +0 -1
  440. package/dist/types/src/internal/object/clone.d.ts.map +0 -1
  441. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  442. package/dist/types/src/internal/object/create-object.d.ts.map +0 -1
  443. package/dist/types/src/internal/object/create-object.test.d.ts.map +0 -1
  444. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  445. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  446. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  447. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  448. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  449. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  450. package/dist/types/src/internal/object/schema-validator.d.ts +0 -2
  451. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  452. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  453. package/dist/types/src/internal/object/set-value.d.ts.map +0 -1
  454. package/dist/types/src/internal/object/set-value.test.d.ts.map +0 -1
  455. package/dist/types/src/internal/object/snapshot.d.ts.map +0 -1
  456. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  457. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  458. package/dist/types/src/internal/proxy/change-context.d.ts.map +0 -1
  459. package/dist/types/src/internal/proxy/change.test.d.ts.map +0 -1
  460. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +0 -1
  461. package/dist/types/src/internal/proxy/errors.d.ts.map +0 -1
  462. package/dist/types/src/internal/proxy/event-batch.d.ts.map +0 -1
  463. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  464. package/dist/types/src/internal/proxy/index.d.ts.map +0 -1
  465. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +0 -1
  466. package/dist/types/src/internal/proxy/make-object.d.ts.map +0 -1
  467. package/dist/types/src/internal/proxy/ownership.d.ts.map +0 -1
  468. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +0 -1
  469. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +0 -1
  470. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +0 -1
  471. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +0 -1
  472. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  473. package/dist/types/src/internal/proxy/symbols.d.ts.map +0 -1
  474. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  475. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  476. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  477. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  478. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  479. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  480. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  481. package/dist/types/src/internal/schema/compose.d.ts.map +0 -1
  482. package/dist/types/src/internal/schema/compose.test.d.ts.map +0 -1
  483. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  484. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  485. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  486. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +0 -1
  487. package/dist/types/src/internal/types/base.d.ts.map +0 -1
  488. package/dist/types/src/internal/types/entity.d.ts.map +0 -1
  489. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  490. package/dist/types/src/internal/types/meta.d.ts.map +0 -1
  491. package/dist/types/src/internal/types/typename.d.ts.map +0 -1
  492. package/dist/types/src/internal/types/version.d.ts.map +0 -1
  493. package/src/internal/api/annotations.ts +0 -60
  494. /package/dist/lib/neutral/{chunk-ANHVGJI4.mjs.map → chunk-7RVZT53K.mjs.map} +0 -0
  495. /package/dist/lib/neutral/{chunk-OMUPQMLR.mjs.map → chunk-V72DY6LU.mjs.map} +0 -0
  496. /package/dist/types/src/internal/{annotations → Annotation}/annotations.test.d.ts +0 -0
  497. /package/dist/types/src/internal/{entities → Entity}/util.d.ts +0 -0
  498. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  499. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  500. /package/dist/types/src/internal/{formats → Format}/format.d.ts +0 -0
  501. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  502. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  503. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  504. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  505. /package/dist/types/src/internal/{formats → Format}/select.d.ts +0 -0
  506. /package/dist/types/src/internal/{formats → Format}/string.d.ts +0 -0
  507. /package/dist/types/src/internal/{json-schema → JsonSchema}/effect-schema.test.d.ts +0 -0
  508. /package/dist/types/src/internal/{json-schema → JsonSchema}/index.d.ts +0 -0
  509. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  510. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.test.d.ts +0 -0
  511. /package/dist/types/src/internal/{object → Obj}/clone.d.ts +0 -0
  512. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  513. /package/dist/types/src/internal/{object → Obj}/create-object.test.d.ts +0 -0
  514. /package/dist/types/src/internal/{object → Obj}/index.d.ts +0 -0
  515. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  516. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  517. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  518. /package/dist/types/src/internal/{object → Obj}/set-value.test.d.ts +0 -0
  519. /package/dist/types/src/internal/{object → Obj}/snapshot.d.ts +0 -0
  520. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  521. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  522. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  523. /package/dist/types/src/internal/{schema → Type}/compose.test.d.ts +0 -0
  524. /package/dist/types/src/internal/{schema → Type}/index.d.ts +0 -0
  525. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  526. /package/dist/types/src/internal/{proxy → common/proxy}/change.test.d.ts +0 -0
  527. /package/dist/types/src/internal/{proxy → common/proxy}/define-hidden-property.d.ts +0 -0
  528. /package/dist/types/src/internal/{proxy → common/proxy}/event-batch.d.ts +0 -0
  529. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  530. /package/dist/types/src/internal/{proxy → common/proxy}/index.d.ts +0 -0
  531. /package/dist/types/src/internal/{proxy → common/proxy}/json-serializer.d.ts +0 -0
  532. /package/dist/types/src/internal/{proxy → common/proxy}/make-object.d.ts +0 -0
  533. /package/dist/types/src/internal/{proxy → common/proxy}/ownership.d.ts +0 -0
  534. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-types.d.ts +0 -0
  535. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-utils.d.ts +0 -0
  536. /package/dist/types/src/internal/{proxy → common/proxy}/schema-validator.d.ts +0 -0
  537. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  538. /package/dist/types/src/internal/{proxy → common/proxy}/symbols.d.ts +0 -0
  539. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +0 -0
  540. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  541. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  542. /package/dist/types/src/internal/{types → common/types}/typename.d.ts +0 -0
  543. /package/src/internal/{entities → Entity}/util.ts +0 -0
  544. /package/src/internal/{formats → Format}/date.ts +0 -0
  545. /package/src/internal/{formats → Format}/format.ts +0 -0
  546. /package/src/internal/{formats → Format}/index.ts +0 -0
  547. /package/src/internal/{formats → Format}/number.ts +0 -0
  548. /package/src/internal/{formats → Format}/object.ts +0 -0
  549. /package/src/internal/{formats → Format}/select.ts +0 -0
  550. /package/src/internal/{formats → Format}/string.ts +0 -0
  551. /package/src/internal/{json-schema → JsonSchema}/effect-schema.test.ts +0 -0
  552. /package/src/internal/{json-schema → JsonSchema}/index.ts +0 -0
  553. /package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +0 -0
  554. /package/src/internal/{object → Obj}/index.ts +0 -0
  555. /package/src/internal/{object → Obj}/schema-validator.test.ts +0 -0
  556. /package/src/internal/{ref → Ref}/index.ts +0 -0
  557. /package/src/internal/{schema → Type}/index.ts +0 -0
  558. /package/src/internal/{proxy → common/proxy}/define-hidden-property.ts +0 -0
  559. /package/src/internal/{proxy → common/proxy}/event-batch.ts +0 -0
  560. /package/src/internal/{proxy → common/proxy}/index.ts +0 -0
  561. /package/src/internal/{proxy → common/proxy}/proxy-types.ts +0 -0
  562. /package/src/internal/{proxy → common/proxy}/proxy-utils.ts +0 -0
  563. /package/src/internal/{proxy → common/proxy}/schema-validator.ts +0 -0
  564. /package/src/internal/{proxy → common/proxy}/symbols.ts +0 -0
  565. /package/src/internal/{types → common/types}/typename.ts +0 -0
@@ -1,39 +1,48 @@
1
- import "../chunk-X2MPMYYN.mjs";
2
- import "../chunk-DLPC7DHQ.mjs";
3
- import "../chunk-ROKO4RKJ.mjs";
4
- import "../chunk-ANHVGJI4.mjs";
1
+ import "../chunk-MGSQGHOD.mjs";
2
+ import "../chunk-BICZKPQG.mjs";
3
+ import "../chunk-Q2KKKJSV.mjs";
4
+ import "../chunk-TTCSATUD.mjs";
5
+ import "../chunk-7RVZT53K.mjs";
6
+ import "../chunk-FIWO2FZK.mjs";
7
+ import "../chunk-GWFFC34K.mjs";
8
+ import "../chunk-44HT3MEC.mjs";
9
+ import "../chunk-PT37DG2F.mjs";
10
+ import "../chunk-QRZ2I3ZM.mjs";
11
+ import "../chunk-V72DY6LU.mjs";
12
+ import "../chunk-Q7ZL2P5H.mjs";
13
+ import "../chunk-ZFACXBY6.mjs";
5
14
  import {
6
- Obj,
7
- Ref,
8
15
  Type_exports,
9
16
  object,
10
17
  relation
11
- } from "../chunk-TQT6WTIJ.mjs";
12
- import "../chunk-N2QNHMT5.mjs";
13
- import "../chunk-MTEHHY62.mjs";
14
- import "../chunk-QARLJVDB.mjs";
15
- import "../chunk-OMUPQMLR.mjs";
16
- import "../chunk-2AF5GMG6.mjs";
17
- import "../chunk-ZAHWXGK4.mjs";
18
- import "../chunk-K5K3Z62A.mjs";
19
- import "../chunk-4L6DOFXP.mjs";
20
- import "../chunk-EBUAT5ID.mjs";
21
- import "../chunk-VUQGRDRI.mjs";
18
+ } from "../chunk-PSZBLH53.mjs";
19
+ import "../chunk-APJKDGFL.mjs";
20
+ import {
21
+ Unknown
22
+ } from "../chunk-J54QMAKF.mjs";
23
+ import {
24
+ Ref
25
+ } from "../chunk-N7VOEPSV.mjs";
26
+ import "../chunk-SCPFDS2E.mjs";
22
27
  import {
23
28
  EchoSchema,
24
29
  PersistentSchema,
25
30
  makeObject,
26
- subscribe,
31
+ subscribe
32
+ } from "../chunk-G54OX4IX.mjs";
33
+ import "../chunk-APHSOTIX.mjs";
34
+ import {
27
35
  toJsonSchema
28
- } from "../chunk-TLGNKUUG.mjs";
29
- import "../chunk-7WE7SBA2.mjs";
30
- import "../chunk-XAJMXQ4H.mjs";
31
- import "../chunk-LKFNEFHF.mjs";
36
+ } from "../chunk-MLS7U7AT.mjs";
37
+ import "../chunk-TRPZU2HV.mjs";
38
+ import "../chunk-BMB7IHGB.mjs";
39
+ import "../chunk-5SL5LDLD.mjs";
40
+ import "../chunk-I2DARWPX.mjs";
32
41
  import {
33
42
  getSchemaTypename
34
- } from "../chunk-RIMHNJ3E.mjs";
35
- import "../chunk-KB7RIVLK.mjs";
36
- import "../chunk-RPB6V4BE.mjs";
43
+ } from "../chunk-TNBK56IN.mjs";
44
+ import "../chunk-N4B7FHQT.mjs";
45
+ import "../chunk-ZISMEVKD.mjs";
37
46
  import "../chunk-J5LGTIGS.mjs";
38
47
 
39
48
  // src/testing/test-data.ts
@@ -47,7 +56,7 @@ import * as Schema from "effect/Schema";
47
56
  key: Schema.String,
48
57
  value: Schema.Any
49
58
  }).pipe(object({
50
- typename: "example.com/type/Expando",
59
+ typename: "com.example.type.expando",
51
60
  version: "0.1.0"
52
61
  }));
53
62
  const Nested = Schema.Struct({
@@ -79,7 +88,7 @@ import * as Schema from "effect/Schema";
79
88
  other: Schema.Any
80
89
  }).pipe(Schema.partial);
81
90
  TestSchema2.Example = TestSchema2.ExampleSchema.pipe(object({
82
- typename: "example.com/type/Example",
91
+ typename: "com.example.type.example",
83
92
  version: "0.1.0"
84
93
  }));
85
94
  TestSchema2.MessageStruct = Schema.Struct({
@@ -88,7 +97,7 @@ import * as Schema from "effect/Schema";
88
97
  timestamp: Schema.String.pipe(Schema.propertySignature, Schema.withConstructorDefault(() => (/* @__PURE__ */ new Date()).toISOString()))
89
98
  });
90
99
  TestSchema2.Message = TestSchema2.MessageStruct.pipe(object({
91
- typename: "example.com/type/Message",
100
+ typename: "com.example.type.message",
92
101
  version: "0.1.0"
93
102
  }));
94
103
  TestSchema2.Organization = Schema.Struct({
@@ -98,7 +107,7 @@ import * as Schema from "effect/Schema";
98
107
  value: Schema.String
99
108
  }))
100
109
  }).pipe(object({
101
- typename: "example.com/type/Organization",
110
+ typename: "com.example.type.organization",
102
111
  version: "0.1.0"
103
112
  }));
104
113
  TestSchema2.Person = Schema.Struct({
@@ -122,7 +131,7 @@ import * as Schema from "effect/Schema";
122
131
  value: Schema.String
123
132
  }).pipe(Schema.Array, Schema.optional)
124
133
  }).pipe(Schema.partial, object({
125
- typename: "example.com/type/Person",
134
+ typename: "com.example.type.person",
126
135
  version: "0.1.0"
127
136
  }));
128
137
  TestSchema2.Task = Schema.Struct({
@@ -134,11 +143,11 @@ import * as Schema from "effect/Schema";
134
143
  subTasks: Schema.optional(Schema.Array(Schema.suspend(() => Ref(TestSchema2.Task)))),
135
144
  description: Schema.optional(Schema.String)
136
145
  }).pipe(Schema.partial, object({
137
- typename: "example.com/type/Task",
146
+ typename: "com.example.type.task",
138
147
  version: "0.1.0"
139
148
  }));
140
149
  TestSchema2.HasManager = Schema.Struct({}).pipe(relation({
141
- typename: "example.com/type/HasManager",
150
+ typename: "com.example.type.has-manager",
142
151
  version: "0.1.0",
143
152
  source: TestSchema2.Person,
144
153
  target: TestSchema2.Person
@@ -147,7 +156,7 @@ import * as Schema from "effect/Schema";
147
156
  role: Schema.String,
148
157
  since: Schema.optional(Schema.String)
149
158
  }).pipe(relation({
150
- typename: "example.com/type/EmployedBy",
159
+ typename: "com.example.type.employed-by",
151
160
  version: "0.1.0",
152
161
  source: TestSchema2.Person,
153
162
  target: TestSchema2.Organization
@@ -158,7 +167,7 @@ import * as Schema from "effect/Schema";
158
167
  RecordType[RecordType["WORK"] = 2] = "WORK";
159
168
  })(TestSchema2.RecordType || (TestSchema2.RecordType = {}));
160
169
  TestSchema2.Container = Schema.Struct({
161
- objects: Schema.Array(Ref(Obj)),
170
+ objects: Schema.Array(Ref(Unknown)),
162
171
  records: Schema.Array(Schema.partial(Schema.Struct({
163
172
  title: Schema.String,
164
173
  description: Schema.String,
@@ -166,137 +175,191 @@ import * as Schema from "effect/Schema";
166
175
  type: Schema.Enums(TestSchema2.RecordType)
167
176
  })))
168
177
  }).pipe(Schema.partial, object({
169
- typename: "example.com/type/Container",
178
+ typename: "com.example.type.container",
170
179
  version: "0.1.0"
171
180
  }));
172
181
  })(TestSchema || (TestSchema = {}));
173
182
  var TestSchema;
174
183
 
175
184
  // src/testing/test-data.ts
176
- var spaceKey = PublicKey.random();
185
+ var cachedSpaceKeyHex;
186
+ var getSpaceKeyHex = () => {
187
+ if (cachedSpaceKeyHex === void 0) {
188
+ cachedSpaceKeyHex = PublicKey.random().toHex();
189
+ }
190
+ return cachedSpaceKeyHex;
191
+ };
192
+ var cachedPeopleAlice;
193
+ var cachedPeopleBob;
194
+ var cachedOrgsDxos;
195
+ var cachedOrgsCyberdyne;
196
+ var cachedWorksFredCyberdyne;
197
+ var cachedWorksAliceAperture;
198
+ var cachedTasksTask1;
199
+ var cachedTasksTask2;
177
200
  var PEOPLE = {
178
- alice: DatabaseDirectory.make({
179
- spaceKey: spaceKey.toHex(),
180
- objects: {
181
- [ObjectId.random()]: ObjectStructure.makeObject({
182
- type: Type_exports.getDXN(TestSchema.Person).toString(),
183
- data: {
184
- name: "Alice"
201
+ get alice() {
202
+ if (cachedPeopleAlice === void 0) {
203
+ cachedPeopleAlice = DatabaseDirectory.make({
204
+ spaceKey: getSpaceKeyHex(),
205
+ objects: {
206
+ [ObjectId.random()]: ObjectStructure.makeObject({
207
+ type: Type_exports.getDXN(TestSchema.Person).toString(),
208
+ data: {
209
+ name: "Alice"
210
+ }
211
+ })
185
212
  }
186
- })
213
+ });
187
214
  }
188
- }),
189
- bob: DatabaseDirectory.make({
190
- spaceKey: spaceKey.toHex(),
191
- objects: {
192
- [ObjectId.random()]: ObjectStructure.makeObject({
193
- type: Type_exports.getDXN(TestSchema.Person).toString(),
194
- data: {
195
- name: "Bob"
215
+ return cachedPeopleAlice;
216
+ },
217
+ get bob() {
218
+ if (cachedPeopleBob === void 0) {
219
+ cachedPeopleBob = DatabaseDirectory.make({
220
+ spaceKey: getSpaceKeyHex(),
221
+ objects: {
222
+ [ObjectId.random()]: ObjectStructure.makeObject({
223
+ type: Type_exports.getDXN(TestSchema.Person).toString(),
224
+ data: {
225
+ name: "Bob"
226
+ }
227
+ })
196
228
  }
197
- })
229
+ });
198
230
  }
199
- })
231
+ return cachedPeopleBob;
232
+ }
200
233
  };
201
234
  var ORGS = {
202
- dxos: DatabaseDirectory.make({
203
- spaceKey: spaceKey.toHex(),
204
- objects: {
205
- [ObjectId.random()]: ObjectStructure.makeObject({
206
- type: Type_exports.getDXN(TestSchema.Organization).toString(),
207
- data: {
208
- name: "DXOS",
209
- founded: "2023"
235
+ get dxos() {
236
+ if (cachedOrgsDxos === void 0) {
237
+ cachedOrgsDxos = DatabaseDirectory.make({
238
+ spaceKey: getSpaceKeyHex(),
239
+ objects: {
240
+ [ObjectId.random()]: ObjectStructure.makeObject({
241
+ type: Type_exports.getDXN(TestSchema.Organization).toString(),
242
+ data: {
243
+ name: "DXOS",
244
+ founded: "2023"
245
+ }
246
+ })
210
247
  }
211
- })
248
+ });
212
249
  }
213
- }),
214
- cyberdyne: DatabaseDirectory.make({
215
- spaceKey: spaceKey.toHex(),
216
- objects: {
217
- [ObjectId.random()]: ObjectStructure.makeObject({
218
- type: Type_exports.getDXN(TestSchema.Organization).toString(),
219
- data: {
220
- name: "Cyberdyne Systems",
221
- founded: "1984"
250
+ return cachedOrgsDxos;
251
+ },
252
+ get cyberdyne() {
253
+ if (cachedOrgsCyberdyne === void 0) {
254
+ cachedOrgsCyberdyne = DatabaseDirectory.make({
255
+ spaceKey: getSpaceKeyHex(),
256
+ objects: {
257
+ [ObjectId.random()]: ObjectStructure.makeObject({
258
+ type: Type_exports.getDXN(TestSchema.Organization).toString(),
259
+ data: {
260
+ name: "Cyberdyne Systems",
261
+ founded: "1984"
262
+ }
263
+ })
222
264
  }
223
- })
265
+ });
224
266
  }
225
- })
267
+ return cachedOrgsCyberdyne;
268
+ }
226
269
  };
227
270
  var WORKS_FOR = {
228
- fredWorksForCyberdyne: DatabaseDirectory.make({
229
- spaceKey: spaceKey.toHex(),
230
- objects: {
231
- [ObjectId.random()]: ObjectStructure.makeRelation({
232
- type: Type_exports.getDXN(TestSchema.EmployedBy).toString(),
233
- source: {
234
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects)[0]).toString()
235
- },
236
- target: {
237
- "/": DXN.fromLocalObjectId(Object.keys(ORGS.cyberdyne.objects)[0]).toString()
238
- },
239
- data: {
240
- since: "2020",
241
- position: "Engineer"
271
+ get fredWorksForCyberdyne() {
272
+ if (cachedWorksFredCyberdyne === void 0) {
273
+ cachedWorksFredCyberdyne = DatabaseDirectory.make({
274
+ spaceKey: getSpaceKeyHex(),
275
+ objects: {
276
+ [ObjectId.random()]: ObjectStructure.makeRelation({
277
+ type: Type_exports.getDXN(TestSchema.EmployedBy).toString(),
278
+ source: {
279
+ "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects)[0]).toString()
280
+ },
281
+ target: {
282
+ "/": DXN.fromLocalObjectId(Object.keys(ORGS.cyberdyne.objects)[0]).toString()
283
+ },
284
+ data: {
285
+ since: "2020",
286
+ position: "Engineer"
287
+ }
288
+ })
242
289
  }
243
- })
290
+ });
244
291
  }
245
- }),
246
- aliceWorksForAperture: DatabaseDirectory.make({
247
- spaceKey: spaceKey.toHex(),
248
- objects: {
249
- [ObjectId.random()]: ObjectStructure.makeRelation({
250
- type: Type_exports.getDXN(TestSchema.EmployedBy).toString(),
251
- source: {
252
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
253
- },
254
- target: {
255
- "/": DXN.fromLocalObjectId(Object.keys(ORGS.dxos.objects)[0]).toString()
256
- },
257
- data: {
258
- since: "2018",
259
- position: "Research Scientist"
292
+ return cachedWorksFredCyberdyne;
293
+ },
294
+ get aliceWorksForAperture() {
295
+ if (cachedWorksAliceAperture === void 0) {
296
+ cachedWorksAliceAperture = DatabaseDirectory.make({
297
+ spaceKey: getSpaceKeyHex(),
298
+ objects: {
299
+ [ObjectId.random()]: ObjectStructure.makeRelation({
300
+ type: Type_exports.getDXN(TestSchema.EmployedBy).toString(),
301
+ source: {
302
+ "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
303
+ },
304
+ target: {
305
+ "/": DXN.fromLocalObjectId(Object.keys(ORGS.dxos.objects)[0]).toString()
306
+ },
307
+ data: {
308
+ since: "2018",
309
+ position: "Research Scientist"
310
+ }
311
+ })
260
312
  }
261
- })
313
+ });
262
314
  }
263
- })
315
+ return cachedWorksAliceAperture;
316
+ }
264
317
  };
265
318
  var TASKS = {
266
- task1: DatabaseDirectory.make({
267
- spaceKey: spaceKey.toHex(),
268
- objects: {
269
- [ObjectId.random()]: ObjectStructure.makeObject({
270
- type: Type_exports.getDXN(TestSchema.Task).toString(),
271
- data: {
272
- title: "Complete project documentation",
273
- description: "Write comprehensive documentation for the new system",
274
- status: "in-progress",
275
- dueDate: "2023-12-31",
276
- assignee: {
277
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects)[0]).toString()
278
- }
319
+ get task1() {
320
+ if (cachedTasksTask1 === void 0) {
321
+ cachedTasksTask1 = DatabaseDirectory.make({
322
+ spaceKey: getSpaceKeyHex(),
323
+ objects: {
324
+ [ObjectId.random()]: ObjectStructure.makeObject({
325
+ type: Type_exports.getDXN(TestSchema.Task).toString(),
326
+ data: {
327
+ title: "Complete project documentation",
328
+ description: "Write comprehensive documentation for the new system",
329
+ status: "in-progress",
330
+ dueDate: "2023-12-31",
331
+ assignee: {
332
+ "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects)[0]).toString()
333
+ }
334
+ }
335
+ })
279
336
  }
280
- })
337
+ });
281
338
  }
282
- }),
283
- task2: DatabaseDirectory.make({
284
- spaceKey: spaceKey.toHex(),
285
- objects: {
286
- [ObjectId.random()]: ObjectStructure.makeObject({
287
- type: Type_exports.getDXN(TestSchema.Task).toString(),
288
- data: {
289
- title: "Run experiments",
290
- description: "Conduct series of experiments on the portal device",
291
- status: "pending",
292
- dueDate: "2023-11-15",
293
- assignee: {
294
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
295
- }
339
+ return cachedTasksTask1;
340
+ },
341
+ get task2() {
342
+ if (cachedTasksTask2 === void 0) {
343
+ cachedTasksTask2 = DatabaseDirectory.make({
344
+ spaceKey: getSpaceKeyHex(),
345
+ objects: {
346
+ [ObjectId.random()]: ObjectStructure.makeObject({
347
+ type: Type_exports.getDXN(TestSchema.Task).toString(),
348
+ data: {
349
+ title: "Run experiments",
350
+ description: "Conduct series of experiments on the portal device",
351
+ status: "pending",
352
+ dueDate: "2023-11-15",
353
+ assignee: {
354
+ "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
355
+ }
356
+ }
357
+ })
296
358
  }
297
- })
359
+ });
298
360
  }
299
- })
361
+ return cachedTasksTask2;
362
+ }
300
363
  };
301
364
 
302
365
  // src/testing/util.ts
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/testing/test-data.ts", "../../../../src/testing/test-schema.ts", "../../../../src/testing/util.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { DatabaseDirectory, ObjectStructure } from '@dxos/echo-protocol';\nimport { DXN, ObjectId, PublicKey } from '@dxos/keys';\n\nimport { Type } from '../index';\n\nimport { TestSchema } from './test-schema';\n\nconst spaceKey = PublicKey.random();\n\n// TODO(burdon): Use Obj.make.\n\nexport const PEOPLE = {\n alice: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Person)!.toString(),\n data: {\n name: 'Alice',\n },\n }),\n },\n }),\n bob: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Person)!.toString(),\n data: {\n name: 'Bob',\n },\n }),\n },\n }),\n};\n\nexport const ORGS = {\n dxos: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Organization)!.toString(),\n data: {\n name: 'DXOS',\n founded: '2023',\n },\n }),\n },\n }),\n cyberdyne: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Organization)!.toString(),\n data: {\n name: 'Cyberdyne Systems',\n founded: '1984',\n },\n }),\n },\n }),\n};\n\nexport const WORKS_FOR = {\n fredWorksForCyberdyne: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeRelation({\n type: Type.getDXN(TestSchema.EmployedBy)!.toString(),\n source: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects!)[0]).toString() },\n target: { '/': DXN.fromLocalObjectId(Object.keys(ORGS.cyberdyne.objects!)[0]).toString() },\n data: {\n since: '2020',\n position: 'Engineer',\n },\n }),\n },\n }),\n aliceWorksForAperture: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeRelation({\n type: Type.getDXN(TestSchema.EmployedBy)!.toString(),\n source: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects!)[0]).toString() },\n target: { '/': DXN.fromLocalObjectId(Object.keys(ORGS.dxos.objects!)[0]).toString() },\n data: {\n since: '2018',\n position: 'Research Scientist',\n },\n }),\n },\n }),\n};\n\nexport const TASKS = {\n task1: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Task)!.toString(),\n data: {\n title: 'Complete project documentation',\n description: 'Write comprehensive documentation for the new system',\n status: 'in-progress',\n dueDate: '2023-12-31',\n assignee: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects!)[0]).toString() },\n },\n }),\n },\n }),\n task2: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Task)!.toString(),\n data: {\n title: 'Run experiments',\n description: 'Conduct series of experiments on the portal device',\n status: 'pending',\n dueDate: '2023-11-15',\n assignee: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects!)[0]).toString() },\n },\n }),\n },\n }),\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport * as Type from '../Type';\n\nexport namespace TestSchema {\n //\n // Expando\n //\n\n /**\n * Expando object is an object with an arbitrary set of properties.\n * This is the test variant with example.com namespace.\n */\n export const Expando = Schema.Struct({}, { key: Schema.String, value: Schema.Any }).pipe(\n Type.object({\n typename: 'example.com/type/Expando',\n version: '0.1.0',\n }),\n );\n\n export interface Expando extends Schema.Schema.Type<typeof Expando> {}\n\n //\n // Example\n //\n\n const Nested = Schema.Struct({\n field: Schema.String,\n });\n\n export class TestClass {\n field = 'value';\n toJSON() {\n return { field: this.field };\n }\n }\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export const ExampleSchema = Schema.Struct({\n string: Schema.String,\n number: Schema.Number,\n boolean: Schema.Boolean,\n null: Schema.Null,\n undefined: Schema.Undefined,\n stringArray: Schema.Array(Schema.String),\n twoDimNumberArray: Schema.Array(Schema.Array(Schema.Number)),\n nested: Nested,\n nestedArray: Schema.Array(Nested),\n nestedNullableArray: Schema.Array(Schema.Union(Nested, Schema.Null)),\n reference: Schema.suspend((): Type.Ref<Example> => Type.Ref(Example)),\n referenceArray: Schema.Array(Schema.suspend((): Type.Ref<Example> => Type.Ref(Example))),\n classInstance: Schema.instanceOf(TestClass),\n other: Schema.Any,\n }).pipe(Schema.partial);\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export interface ExampleSchema extends Schema.Schema.Type<typeof ExampleSchema> {}\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export const Example = ExampleSchema.pipe(\n Type.object({\n typename: 'example.com/type/Example',\n version: '0.1.0',\n }),\n );\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export interface Example extends Schema.Schema.Type<typeof Example> {}\n\n //\n // Message\n //\n\n // TODO(burdon): Support defaults directly on Type: `make` is erased by `pipe(Type.Obj)`.\n export const MessageStruct = Schema.Struct({\n // TODO(burdon): Support S.Date; Custom Timestamp (with defaults).\n // TODO(burdon): Support defaults (update create and create).\n timestamp: Schema.String.pipe(\n Schema.propertySignature,\n Schema.withConstructorDefault(() => new Date().toISOString()),\n ),\n });\n\n export const Message = MessageStruct.pipe(\n Type.object({\n typename: 'example.com/type/Message',\n version: '0.1.0',\n }),\n );\n\n export interface Message extends Schema.Schema.Type<typeof Message> {}\n\n //\n // Organization\n //\n\n export const Organization = Schema.Struct({\n name: Schema.String,\n properties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.String,\n }),\n ),\n }).pipe(\n Type.object({\n typename: 'example.com/type/Organization',\n version: '0.1.0',\n }),\n );\n\n export interface Organization extends Schema.Schema.Type<typeof Organization> {}\n\n //\n // Person\n //\n\n export const Person = Schema.Struct({\n name: Schema.String,\n username: Schema.String,\n email: Schema.String,\n age: Schema.Number.pipe(Schema.optional),\n tasks: Schema.Array(Schema.suspend((): Type.Ref<Task> => Type.Ref(Task))),\n employer: Schema.optional(Type.Ref(Organization)),\n address: Schema.Struct({\n city: Schema.optional(Schema.String),\n state: Schema.optional(Schema.String),\n zip: Schema.optional(Schema.String),\n coordinates: Schema.Struct({\n lat: Schema.optional(Schema.Number),\n lng: Schema.optional(Schema.Number),\n }),\n }),\n fields: Schema.Struct({\n label: Schema.String,\n value: Schema.String,\n }).pipe(Schema.Array, Schema.optional),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'example.com/type/Person',\n version: '0.1.0',\n }),\n );\n\n export interface Person extends Schema.Schema.Type<typeof Person> {}\n\n //\n // Task\n //\n\n export const Task = Schema.Struct({\n title: Schema.optional(Schema.String),\n deadline: Schema.optional(Schema.String),\n completed: Schema.optional(Schema.Boolean),\n assignee: Schema.optional(Type.Ref(Person)),\n previous: Schema.optional(Schema.suspend((): Type.Ref<Task> => Type.Ref(Task))),\n subTasks: Schema.optional(Schema.Array(Schema.suspend((): Type.Ref<Task> => Type.Ref(Task)))),\n description: Schema.optional(Schema.String),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'example.com/type/Task',\n version: '0.1.0',\n }),\n );\n\n export interface Task extends Schema.Schema.Type<typeof Task> {}\n\n //\n // HasManager\n //\n\n export const HasManager = Schema.Struct({}).pipe(\n Type.relation({\n typename: 'example.com/type/HasManager',\n version: '0.1.0',\n source: Person,\n target: Person,\n }),\n );\n\n export interface HasManager extends Schema.Schema.Type<typeof HasManager> {}\n\n //\n // EmployedBy\n //\n\n export const EmployedBy = Schema.Struct({\n role: Schema.String,\n since: Schema.optional(Schema.String),\n }).pipe(\n Type.relation({\n typename: 'example.com/type/EmployedBy',\n version: '0.1.0',\n source: Person,\n target: Organization,\n }),\n );\n\n export interface EmployedBy extends Schema.Schema.Type<typeof EmployedBy> {}\n\n //\n // RecordType\n //\n\n export enum RecordType {\n UNDEFINED = 0,\n PERSONAL = 1,\n WORK = 2,\n }\n\n export const Container = Schema.Struct({\n objects: Schema.Array(Type.Ref(Type.Obj)),\n records: Schema.Array(\n Schema.partial(\n Schema.Struct({\n title: Schema.String,\n description: Schema.String,\n contacts: Schema.Array(Type.Ref(Person)),\n type: Schema.Enums(RecordType),\n }),\n ),\n ),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'example.com/type/Container',\n version: '0.1.0',\n }),\n );\n\n export interface Container extends Schema.Schema.Type<typeof Container> {}\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\nimport type * as SchemaAST from 'effect/SchemaAST';\n\nimport { assertArgument } from '@dxos/invariant';\nimport { deepMapValues } from '@dxos/util';\n\nimport { EchoSchema, PersistentSchema, getSchemaTypename, makeObject, subscribe, toJsonSchema } from '../internal';\n\n/**\n * Create a reactive mutable schema that updates when the JSON schema is updated.\n */\n// TODO(dmaretskyi): Should be replaced by registration of typed object.\nexport const createEchoSchema = (schema: Schema.Schema.AnyNoContext, version = '0.1.0'): EchoSchema => {\n const jsonSchema = toJsonSchema(schema);\n const typename = getSchemaTypename(schema);\n assertArgument(typename, 'typename', 'Schema does not have a typename.');\n const echoSchema = new EchoSchema(makeObject(PersistentSchema, { typename, version, jsonSchema }));\n\n // TODO(burdon): Unsubscribe is never called.\n subscribe(echoSchema.persistentSchema, () => {\n echoSchema._invalidate();\n });\n\n return echoSchema;\n};\n\n/**\n * Converts AST to a format that can be compared with test matchers.\n */\nexport const prepareAstForCompare = (obj: SchemaAST.AST): any =>\n deepMapValues(obj, (value: any, recurse: any) => {\n if (typeof value === 'function') {\n return null;\n }\n\n if (value instanceof RegExp) {\n return value;\n }\n\n // Convert symbols to strings.\n if (typeof value === 'object') {\n const clone = { ...value };\n for (const sym of Object.getOwnPropertySymbols(clone as any)) {\n clone[sym.toString()] = clone[sym];\n delete clone[sym];\n }\n\n return recurse(clone);\n }\n\n return recurse(value);\n });\n\n/**\n * Creates an update counter that tracks changes to reactive objects.\n * @param objects - Reactive objects to subscribe to.\n * @returns An object with a count property and Symbol.dispose for cleanup.\n */\nexport const updateCounter = (...objects: object[]) => {\n let updateCount = 0;\n\n const unsubscribes = objects.map((obj) =>\n subscribe(obj, () => {\n updateCount++;\n }),\n );\n\n const unsubscribeAll = () => {\n for (const unsub of unsubscribes) {\n unsub();\n }\n };\n\n return {\n // https://github.com/tc39/proposal-explicit-resource-management\n [Symbol.dispose]: unsubscribeAll,\n get count() {\n return updateCount;\n },\n };\n};\n"],
5
- "mappings": "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",
6
- "names": ["DatabaseDirectory", "ObjectStructure", "DXN", "ObjectId", "PublicKey", "Schema", "TestSchema", "Expando", "Struct", "key", "String", "value", "Any", "pipe", "object", "typename", "version", "Nested", "field", "TestClass", "toJSON", "ExampleSchema", "string", "number", "Number", "boolean", "Boolean", "null", "Null", "undefined", "Undefined", "stringArray", "Array", "twoDimNumberArray", "nested", "nestedArray", "nestedNullableArray", "Union", "reference", "suspend", "Ref", "Example", "referenceArray", "classInstance", "instanceOf", "other", "partial", "MessageStruct", "timestamp", "propertySignature", "withConstructorDefault", "Date", "toISOString", "Message", "Organization", "name", "properties", "optional", "Record", "Person", "username", "email", "age", "tasks", "Task", "employer", "address", "city", "state", "zip", "coordinates", "lat", "lng", "fields", "label", "title", "deadline", "completed", "assignee", "previous", "subTasks", "description", "HasManager", "relation", "source", "target", "EmployedBy", "role", "since", "RecordType", "Container", "objects", "Obj", "records", "contacts", "type", "Enums", "spaceKey", "PublicKey", "random", "PEOPLE", "alice", "DatabaseDirectory", "make", "toHex", "objects", "ObjectId", "ObjectStructure", "makeObject", "type", "Type", "getDXN", "TestSchema", "Person", "toString", "data", "name", "bob", "ORGS", "dxos", "Organization", "founded", "cyberdyne", "WORKS_FOR", "fredWorksForCyberdyne", "makeRelation", "EmployedBy", "source", "DXN", "fromLocalObjectId", "Object", "keys", "target", "since", "position", "aliceWorksForAperture", "TASKS", "task1", "Task", "title", "description", "status", "dueDate", "assignee", "task2", "assertArgument", "deepMapValues", "createEchoSchema", "schema", "version", "jsonSchema", "toJsonSchema", "typename", "getSchemaTypename", "assertArgument", "echoSchema", "EchoSchema", "makeObject", "PersistentSchema", "subscribe", "persistentSchema", "_invalidate", "prepareAstForCompare", "obj", "deepMapValues", "value", "recurse", "RegExp", "clone", "sym", "Object", "getOwnPropertySymbols", "toString", "updateCounter", "objects", "updateCount", "unsubscribes", "map", "unsubscribeAll", "unsub", "Symbol", "dispose", "count"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { DatabaseDirectory, ObjectStructure } from '@dxos/echo-protocol';\nimport { DXN, ObjectId, PublicKey } from '@dxos/keys';\n\nimport { Type } from '../index';\nimport { TestSchema } from './test-schema';\n\n// Lazy init: Cloudflare workers disallow non-determinism at module scope (e.g. random keys).\nlet cachedSpaceKeyHex: string | undefined;\nconst getSpaceKeyHex = (): string => {\n if (cachedSpaceKeyHex === undefined) {\n cachedSpaceKeyHex = PublicKey.random().toHex();\n }\n return cachedSpaceKeyHex;\n};\n\nlet cachedPeopleAlice: DatabaseDirectory | undefined;\nlet cachedPeopleBob: DatabaseDirectory | undefined;\nlet cachedOrgsDxos: DatabaseDirectory | undefined;\nlet cachedOrgsCyberdyne: DatabaseDirectory | undefined;\nlet cachedWorksFredCyberdyne: DatabaseDirectory | undefined;\nlet cachedWorksAliceAperture: DatabaseDirectory | undefined;\nlet cachedTasksTask1: DatabaseDirectory | undefined;\nlet cachedTasksTask2: DatabaseDirectory | undefined;\n\n// TODO(burdon): Use Obj.make.\n\nexport const PEOPLE = {\n get alice(): DatabaseDirectory {\n if (cachedPeopleAlice === undefined) {\n cachedPeopleAlice = DatabaseDirectory.make({\n spaceKey: getSpaceKeyHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Person)!.toString(),\n data: {\n name: 'Alice',\n },\n }),\n },\n });\n }\n return cachedPeopleAlice;\n },\n\n get bob(): DatabaseDirectory {\n if (cachedPeopleBob === undefined) {\n cachedPeopleBob = DatabaseDirectory.make({\n spaceKey: getSpaceKeyHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Person)!.toString(),\n data: {\n name: 'Bob',\n },\n }),\n },\n });\n }\n return cachedPeopleBob;\n },\n};\n\nexport const ORGS = {\n get dxos(): DatabaseDirectory {\n if (cachedOrgsDxos === undefined) {\n cachedOrgsDxos = DatabaseDirectory.make({\n spaceKey: getSpaceKeyHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Organization)!.toString(),\n data: {\n name: 'DXOS',\n founded: '2023',\n },\n }),\n },\n });\n }\n return cachedOrgsDxos;\n },\n\n get cyberdyne(): DatabaseDirectory {\n if (cachedOrgsCyberdyne === undefined) {\n cachedOrgsCyberdyne = DatabaseDirectory.make({\n spaceKey: getSpaceKeyHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Organization)!.toString(),\n data: {\n name: 'Cyberdyne Systems',\n founded: '1984',\n },\n }),\n },\n });\n }\n return cachedOrgsCyberdyne;\n },\n};\n\nexport const WORKS_FOR = {\n get fredWorksForCyberdyne(): DatabaseDirectory {\n if (cachedWorksFredCyberdyne === undefined) {\n cachedWorksFredCyberdyne = DatabaseDirectory.make({\n spaceKey: getSpaceKeyHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeRelation({\n type: Type.getDXN(TestSchema.EmployedBy)!.toString(),\n source: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects!)[0]).toString() },\n target: { '/': DXN.fromLocalObjectId(Object.keys(ORGS.cyberdyne.objects!)[0]).toString() },\n data: {\n since: '2020',\n position: 'Engineer',\n },\n }),\n },\n });\n }\n return cachedWorksFredCyberdyne;\n },\n\n get aliceWorksForAperture(): DatabaseDirectory {\n if (cachedWorksAliceAperture === undefined) {\n cachedWorksAliceAperture = DatabaseDirectory.make({\n spaceKey: getSpaceKeyHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeRelation({\n type: Type.getDXN(TestSchema.EmployedBy)!.toString(),\n source: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects!)[0]).toString() },\n target: { '/': DXN.fromLocalObjectId(Object.keys(ORGS.dxos.objects!)[0]).toString() },\n data: {\n since: '2018',\n position: 'Research Scientist',\n },\n }),\n },\n });\n }\n return cachedWorksAliceAperture;\n },\n};\n\nexport const TASKS = {\n get task1(): DatabaseDirectory {\n if (cachedTasksTask1 === undefined) {\n cachedTasksTask1 = DatabaseDirectory.make({\n spaceKey: getSpaceKeyHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Task)!.toString(),\n data: {\n title: 'Complete project documentation',\n description: 'Write comprehensive documentation for the new system',\n status: 'in-progress',\n dueDate: '2023-12-31',\n assignee: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects!)[0]).toString() },\n },\n }),\n },\n });\n }\n return cachedTasksTask1;\n },\n\n get task2(): DatabaseDirectory {\n if (cachedTasksTask2 === undefined) {\n cachedTasksTask2 = DatabaseDirectory.make({\n spaceKey: getSpaceKeyHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Task)!.toString(),\n data: {\n title: 'Run experiments',\n description: 'Conduct series of experiments on the portal device',\n status: 'pending',\n dueDate: '2023-11-15',\n assignee: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects!)[0]).toString() },\n },\n }),\n },\n });\n }\n return cachedTasksTask2;\n },\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport * as Obj from '../Obj';\nimport * as Ref from '../Ref';\nimport * as Type from '../Type';\n\nexport namespace TestSchema {\n //\n // Expando\n //\n\n /**\n * Expando object is an object with an arbitrary set of properties.\n * This is the test variant with example.com namespace.\n */\n export const Expando = Schema.Struct({}, { key: Schema.String, value: Schema.Any }).pipe(\n Type.object({\n typename: 'com.example.type.expando',\n version: '0.1.0',\n }),\n );\n\n export interface Expando extends Schema.Schema.Type<typeof Expando> {}\n\n //\n // Example\n //\n\n const Nested = Schema.Struct({\n field: Schema.String,\n });\n\n export class TestClass {\n field = 'value';\n toJSON() {\n return { field: this.field };\n }\n }\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export const ExampleSchema = Schema.Struct({\n string: Schema.String,\n number: Schema.Number,\n boolean: Schema.Boolean,\n null: Schema.Null,\n undefined: Schema.Undefined,\n stringArray: Schema.Array(Schema.String),\n twoDimNumberArray: Schema.Array(Schema.Array(Schema.Number)),\n nested: Nested,\n nestedArray: Schema.Array(Nested),\n nestedNullableArray: Schema.Array(Schema.Union(Nested, Schema.Null)),\n reference: Schema.suspend((): Ref.RefSchema<Example> => Ref.Ref(Example)),\n referenceArray: Schema.Array(Schema.suspend((): Ref.RefSchema<Example> => Ref.Ref(Example))),\n classInstance: Schema.instanceOf(TestClass),\n other: Schema.Any,\n }).pipe(Schema.partial);\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export interface ExampleSchema extends Schema.Schema.Type<typeof ExampleSchema> {}\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export const Example = ExampleSchema.pipe(\n Type.object({\n typename: 'com.example.type.example',\n version: '0.1.0',\n }),\n );\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export interface Example extends Schema.Schema.Type<typeof Example> {}\n\n //\n // Message\n //\n\n // TODO(burdon): Support defaults directly on Type: `make` is erased by `pipe(Type.Obj)`.\n export const MessageStruct = Schema.Struct({\n // TODO(burdon): Support S.Date; Custom Timestamp (with defaults).\n // TODO(burdon): Support defaults (update create and create).\n timestamp: Schema.String.pipe(\n Schema.propertySignature,\n Schema.withConstructorDefault(() => new Date().toISOString()),\n ),\n });\n\n export const Message = MessageStruct.pipe(\n Type.object({\n typename: 'com.example.type.message',\n version: '0.1.0',\n }),\n );\n\n export interface Message extends Schema.Schema.Type<typeof Message> {}\n\n //\n // Organization\n //\n\n export const Organization = Schema.Struct({\n name: Schema.String,\n properties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.String,\n }),\n ),\n }).pipe(\n Type.object({\n typename: 'com.example.type.organization',\n version: '0.1.0',\n }),\n );\n\n export interface Organization extends Schema.Schema.Type<typeof Organization> {}\n\n //\n // Person\n //\n\n export const Person = Schema.Struct({\n name: Schema.String,\n username: Schema.String,\n email: Schema.String,\n age: Schema.Number.pipe(Schema.optional),\n tasks: Schema.Array(Schema.suspend((): Ref.RefSchema<Task> => Ref.Ref(Task))),\n employer: Schema.optional(Ref.Ref(Organization)),\n address: Schema.Struct({\n city: Schema.optional(Schema.String),\n state: Schema.optional(Schema.String),\n zip: Schema.optional(Schema.String),\n coordinates: Schema.Struct({\n lat: Schema.optional(Schema.Number),\n lng: Schema.optional(Schema.Number),\n }),\n }),\n fields: Schema.Struct({\n label: Schema.String,\n value: Schema.String,\n }).pipe(Schema.Array, Schema.optional),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'com.example.type.person',\n version: '0.1.0',\n }),\n );\n\n export interface Person extends Schema.Schema.Type<typeof Person> {}\n\n //\n // Task\n //\n\n export const Task = Schema.Struct({\n title: Schema.optional(Schema.String),\n deadline: Schema.optional(Schema.String),\n completed: Schema.optional(Schema.Boolean),\n assignee: Schema.optional(Ref.Ref(Person)),\n previous: Schema.optional(Schema.suspend((): Ref.RefSchema<Task> => Ref.Ref(Task))),\n subTasks: Schema.optional(Schema.Array(Schema.suspend((): Ref.RefSchema<Task> => Ref.Ref(Task)))),\n description: Schema.optional(Schema.String),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'com.example.type.task',\n version: '0.1.0',\n }),\n );\n\n export interface Task extends Schema.Schema.Type<typeof Task> {}\n\n //\n // HasManager\n //\n\n export const HasManager = Schema.Struct({}).pipe(\n Type.relation({\n typename: 'com.example.type.has-manager',\n version: '0.1.0',\n source: Person,\n target: Person,\n }),\n );\n\n export interface HasManager extends Schema.Schema.Type<typeof HasManager> {}\n\n //\n // EmployedBy\n //\n\n export const EmployedBy = Schema.Struct({\n role: Schema.String,\n since: Schema.optional(Schema.String),\n }).pipe(\n Type.relation({\n typename: 'com.example.type.employed-by',\n version: '0.1.0',\n source: Person,\n target: Organization,\n }),\n );\n\n export interface EmployedBy extends Schema.Schema.Type<typeof EmployedBy> {}\n\n //\n // RecordType\n //\n\n export enum RecordType {\n UNDEFINED = 0,\n PERSONAL = 1,\n WORK = 2,\n }\n\n export const Container = Schema.Struct({\n objects: Schema.Array(Ref.Ref(Obj.Unknown)),\n records: Schema.Array(\n Schema.partial(\n Schema.Struct({\n title: Schema.String,\n description: Schema.String,\n contacts: Schema.Array(Ref.Ref(Person)),\n type: Schema.Enums(RecordType),\n }),\n ),\n ),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'com.example.type.container',\n version: '0.1.0',\n }),\n );\n\n export interface Container extends Schema.Schema.Type<typeof Container> {}\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\nimport type * as SchemaAST from 'effect/SchemaAST';\n\nimport { assertArgument } from '@dxos/invariant';\nimport { deepMapValues } from '@dxos/util';\n\nimport { EchoSchema, PersistentSchema, getSchemaTypename, makeObject, subscribe, toJsonSchema } from '../internal';\n\n/**\n * Create a reactive mutable schema that updates when the JSON schema is updated.\n */\n// TODO(dmaretskyi): Should be replaced by registration of typed object.\nexport const createEchoSchema = (schema: Schema.Schema.AnyNoContext, version = '0.1.0'): EchoSchema => {\n const jsonSchema = toJsonSchema(schema);\n const typename = getSchemaTypename(schema);\n assertArgument(typename, 'typename', 'Schema does not have a typename.');\n const echoSchema = new EchoSchema(makeObject(PersistentSchema, { typename, version, jsonSchema }));\n\n // TODO(burdon): Unsubscribe is never called.\n subscribe(echoSchema.persistentSchema, () => {\n echoSchema._invalidate();\n });\n\n return echoSchema;\n};\n\n/**\n * Converts AST to a format that can be compared with test matchers.\n */\nexport const prepareAstForCompare = (obj: SchemaAST.AST): any =>\n deepMapValues(obj, (value: any, recurse: any) => {\n if (typeof value === 'function') {\n return null;\n }\n\n if (value instanceof RegExp) {\n return value;\n }\n\n // Convert symbols to strings.\n if (typeof value === 'object') {\n const clone = { ...value };\n for (const sym of Object.getOwnPropertySymbols(clone as any)) {\n clone[sym.toString()] = clone[sym];\n delete clone[sym];\n }\n\n return recurse(clone);\n }\n\n return recurse(value);\n });\n\n/**\n * Creates an update counter that tracks changes to reactive objects.\n * @param objects - Reactive objects to subscribe to.\n * @returns An object with a count property and Symbol.dispose for cleanup.\n */\nexport const updateCounter = (...objects: object[]) => {\n let updateCount = 0;\n\n const unsubscribes = objects.map((obj) =>\n subscribe(obj, () => {\n updateCount++;\n }),\n );\n\n const unsubscribeAll = () => {\n for (const unsub of unsubscribes) {\n unsub();\n }\n };\n\n return {\n // https://github.com/tc39/proposal-explicit-resource-management\n [Symbol.dispose]: unsubscribeAll,\n get count() {\n return updateCount;\n },\n };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["DatabaseDirectory", "ObjectStructure", "DXN", "ObjectId", "PublicKey", "Schema", "TestSchema", "Expando", "Struct", "key", "String", "value", "Any", "pipe", "object", "typename", "version", "Nested", "field", "TestClass", "toJSON", "ExampleSchema", "string", "number", "Number", "boolean", "Boolean", "null", "Null", "undefined", "Undefined", "stringArray", "Array", "twoDimNumberArray", "nested", "nestedArray", "nestedNullableArray", "Union", "reference", "suspend", "Ref", "Example", "referenceArray", "classInstance", "instanceOf", "other", "partial", "MessageStruct", "timestamp", "propertySignature", "withConstructorDefault", "Date", "toISOString", "Message", "Organization", "name", "properties", "optional", "Record", "Person", "username", "email", "age", "tasks", "Task", "employer", "address", "city", "state", "zip", "coordinates", "lat", "lng", "fields", "label", "title", "deadline", "completed", "assignee", "previous", "subTasks", "description", "HasManager", "relation", "source", "target", "EmployedBy", "role", "since", "RecordType", "Container", "objects", "Unknown", "records", "contacts", "type", "Enums", "cachedSpaceKeyHex", "getSpaceKeyHex", "undefined", "PublicKey", "random", "toHex", "cachedPeopleAlice", "cachedPeopleBob", "cachedOrgsDxos", "cachedOrgsCyberdyne", "cachedWorksFredCyberdyne", "cachedWorksAliceAperture", "cachedTasksTask1", "cachedTasksTask2", "PEOPLE", "alice", "DatabaseDirectory", "make", "spaceKey", "objects", "ObjectId", "ObjectStructure", "makeObject", "type", "Type", "getDXN", "TestSchema", "Person", "toString", "data", "name", "bob", "ORGS", "dxos", "Organization", "founded", "cyberdyne", "WORKS_FOR", "fredWorksForCyberdyne", "makeRelation", "EmployedBy", "source", "DXN", "fromLocalObjectId", "Object", "keys", "target", "since", "position", "aliceWorksForAperture", "TASKS", "task1", "Task", "title", "description", "status", "dueDate", "assignee", "task2", "assertArgument", "deepMapValues", "createEchoSchema", "schema", "version", "jsonSchema", "toJsonSchema", "typename", "getSchemaTypename", "assertArgument", "echoSchema", "EchoSchema", "makeObject", "PersistentSchema", "subscribe", "persistentSchema", "_invalidate", "prepareAstForCompare", "obj", "deepMapValues", "value", "recurse", "RegExp", "clone", "sym", "Object", "getOwnPropertySymbols", "toString", "updateCounter", "objects", "updateCount", "unsubscribes", "map", "unsubscribeAll", "unsub", "Symbol", "dispose", "count"]
7
7
  }
@@ -1,6 +1,6 @@
1
- export { DescriptionAnnotation, FormInputAnnotation, GeneratorAnnotation, LabelAnnotation, ReferenceAnnotation, SystemTypeAnnotation, TypeAnnotation, getDescriptionWithSchema, getLabelWithSchema, getTypeAnnotation, setDescriptionWithSchema, setLabelWithSchema, } from './internal/annotations';
1
+ export { DescriptionAnnotation, FormInputAnnotation, GeneratorAnnotation, LabelAnnotation, ReferenceAnnotation, SystemTypeAnnotation, TypeAnnotation, getDescriptionWithSchema, getLabelWithSchema, getTypeAnnotation, setDescriptionWithSchema, setLabelWithSchema, IconAnnotation, IconFromRefAnnotation, } from './internal/Annotation';
2
2
  import type * as Schema from 'effect/Schema';
3
- import * as internalAnnotations from './internal/annotations';
3
+ import * as internalAnnotations from './internal/Annotation';
4
4
  interface MakeProps<T> {
5
5
  id: string;
6
6
  schema: Schema.Schema<T, any, never>;
@@ -13,7 +13,7 @@ interface MakeProps<T> {
13
13
  * @example
14
14
  * ```ts
15
15
  * const ColorAnnotation = Annotation.make({
16
- * id: 'dxos.org/annotation/Color',
16
+ * id: 'org.dxos.annotation.color',
17
17
  * schema: Schema.String,
18
18
  * });
19
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Annotation.d.ts","sourceRoot":"","sources":["../../../src/Annotation.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,mBAAmB,MAAM,wBAAwB,CAAC;AAE9D,UAAU,SAAS,CAAC,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAC7C,CAAC"}
1
+ {"version":3,"file":"Annotation.d.ts","sourceRoot":"","sources":["../../../src/Annotation.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,mBAAmB,MAAM,uBAAuB,CAAC;AAE7D,UAAU,SAAS,CAAC,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAC7C,CAAC"}
@@ -0,0 +1,16 @@
1
+ import * as Schema from 'effect/Schema';
2
+ import * as internal from './internal';
3
+ import * as Obj from './Obj';
4
+ import * as Type from './Type';
5
+ /**
6
+ * A an ordered set of objects.
7
+ */
8
+ export declare const Collection: Type.Obj<{
9
+ readonly name?: string | undefined;
10
+ readonly objects: readonly internal.Ref<import("./Entity").OfKind<internal.EntityKind.Object> & Obj.Unknown>[];
11
+ }, Schema.Struct.Fields>;
12
+ export interface Collection extends Schema.Schema.Type<typeof Collection> {
13
+ }
14
+ export declare const make: (props?: Partial<Obj.MakeProps<typeof Collection>>) => Collection;
15
+ export declare const isCollection: (value: unknown) => value is Collection;
16
+ //# sourceMappingURL=Collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../../src/Collection.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAE7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,UAAU;;;wBAYtB,CAAC;AAEF,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC;CAAG;AAE5E,eAAO,MAAM,IAAI,WAAW,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,UAAU,CAAC,CAAC,KAAQ,UAC5B,CAAC;AAElD,eAAO,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,UAAuC,CAAC"}