@dxos/echo 0.8.4-main.5ea62a8 → 0.8.4-main.66e292d

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 (328) hide show
  1. package/dist/lib/browser/chunk-7GH6RXJ3.mjs +3683 -0
  2. package/dist/lib/browser/chunk-7GH6RXJ3.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-E4UTVJNF.mjs +1111 -0
  4. package/dist/lib/browser/chunk-E4UTVJNF.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +24 -1
  6. package/dist/lib/browser/internal/index.mjs +336 -0
  7. package/dist/lib/browser/internal/index.mjs.map +7 -0
  8. package/dist/lib/browser/meta.json +1 -1
  9. package/dist/lib/browser/testing/index.mjs +289 -31
  10. package/dist/lib/browser/testing/index.mjs.map +4 -4
  11. package/dist/lib/node-esm/chunk-JE5RXM2I.mjs +1111 -0
  12. package/dist/lib/node-esm/chunk-JE5RXM2I.mjs.map +7 -0
  13. package/dist/lib/node-esm/chunk-M4B6BMD2.mjs +3683 -0
  14. package/dist/lib/node-esm/chunk-M4B6BMD2.mjs.map +7 -0
  15. package/dist/lib/node-esm/index.mjs +24 -1
  16. package/dist/lib/node-esm/internal/index.mjs +336 -0
  17. package/dist/lib/node-esm/internal/index.mjs.map +7 -0
  18. package/dist/lib/node-esm/meta.json +1 -1
  19. package/dist/lib/node-esm/testing/index.mjs +289 -31
  20. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  21. package/dist/types/src/Annotation.d.ts +2 -0
  22. package/dist/types/src/Annotation.d.ts.map +1 -0
  23. package/dist/types/src/Database.d.ts +137 -0
  24. package/dist/types/src/Database.d.ts.map +1 -0
  25. package/dist/types/src/Entity.d.ts +36 -0
  26. package/dist/types/src/Entity.d.ts.map +1 -0
  27. package/dist/types/src/Format.d.ts +4 -0
  28. package/dist/types/src/Format.d.ts.map +1 -0
  29. package/dist/types/src/JsonSchema.d.ts +9 -0
  30. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  31. package/dist/types/src/Key.d.ts +1 -0
  32. package/dist/types/src/Key.d.ts.map +1 -1
  33. package/dist/types/src/Obj.d.ts +121 -50
  34. package/dist/types/src/Obj.d.ts.map +1 -1
  35. package/dist/types/src/Ref.d.ts +10 -10
  36. package/dist/types/src/Ref.d.ts.map +1 -1
  37. package/dist/types/src/Relation.d.ts +18 -14
  38. package/dist/types/src/Relation.d.ts.map +1 -1
  39. package/dist/types/src/Tag.d.ts +17 -0
  40. package/dist/types/src/Tag.d.ts.map +1 -0
  41. package/dist/types/src/Type.d.ts +39 -50
  42. package/dist/types/src/Type.d.ts.map +1 -1
  43. package/dist/types/src/errors.d.ts +68 -0
  44. package/dist/types/src/errors.d.ts.map +1 -0
  45. package/dist/types/src/index.d.ts +9 -3
  46. package/dist/types/src/index.d.ts.map +1 -1
  47. package/dist/types/src/internal/annotations/annotations.d.ts +174 -0
  48. package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -0
  49. package/dist/types/src/internal/annotations/annotations.test.d.ts +2 -0
  50. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +1 -0
  51. package/dist/types/src/internal/annotations/index.d.ts +3 -0
  52. package/dist/types/src/internal/annotations/index.d.ts.map +1 -0
  53. package/dist/types/src/internal/annotations/util.d.ts +26 -0
  54. package/dist/types/src/internal/annotations/util.d.ts.map +1 -0
  55. package/dist/types/src/internal/entities/entity.d.ts +10 -0
  56. package/dist/types/src/internal/entities/entity.d.ts.map +1 -0
  57. package/dist/types/src/internal/entities/expando.d.ts +16 -0
  58. package/dist/types/src/internal/entities/expando.d.ts.map +1 -0
  59. package/dist/types/src/internal/entities/index.d.ts +6 -0
  60. package/dist/types/src/internal/entities/index.d.ts.map +1 -0
  61. package/dist/types/src/internal/entities/model.d.ts +70 -0
  62. package/dist/types/src/internal/entities/model.d.ts.map +1 -0
  63. package/dist/types/src/internal/entities/object.d.ts +11 -0
  64. package/dist/types/src/internal/entities/object.d.ts.map +1 -0
  65. package/dist/types/src/internal/entities/relation.d.ts +55 -0
  66. package/dist/types/src/internal/entities/relation.d.ts.map +1 -0
  67. package/dist/types/src/internal/entities/util.d.ts +2 -0
  68. package/dist/types/src/internal/entities/util.d.ts.map +1 -0
  69. package/dist/types/src/internal/formats/date.d.ts +63 -0
  70. package/dist/types/src/internal/formats/date.d.ts.map +1 -0
  71. package/dist/types/src/internal/formats/date.test.d.ts +2 -0
  72. package/dist/types/src/internal/formats/date.test.d.ts.map +1 -0
  73. package/dist/types/src/internal/formats/format.d.ts +32 -0
  74. package/dist/types/src/internal/formats/format.d.ts.map +1 -0
  75. package/dist/types/src/internal/formats/format.test.d.ts +2 -0
  76. package/dist/types/src/internal/formats/format.test.d.ts.map +1 -0
  77. package/dist/types/src/internal/formats/index.d.ts +8 -0
  78. package/dist/types/src/internal/formats/index.d.ts.map +1 -0
  79. package/dist/types/src/internal/formats/number.d.ts +31 -0
  80. package/dist/types/src/internal/formats/number.d.ts.map +1 -0
  81. package/dist/types/src/internal/formats/object.d.ts +35 -0
  82. package/dist/types/src/internal/formats/object.d.ts.map +1 -0
  83. package/dist/types/src/internal/formats/select.d.ts +11 -0
  84. package/dist/types/src/internal/formats/select.d.ts.map +1 -0
  85. package/dist/types/src/internal/formats/string.d.ts +38 -0
  86. package/dist/types/src/internal/formats/string.d.ts.map +1 -0
  87. package/dist/types/src/internal/formats/types.d.ts +68 -0
  88. package/dist/types/src/internal/formats/types.d.ts.map +1 -0
  89. package/dist/types/src/internal/index.d.ts +11 -0
  90. package/dist/types/src/internal/index.d.ts.map +1 -0
  91. package/dist/types/src/internal/json-schema/annotations.d.ts +19 -0
  92. package/dist/types/src/internal/json-schema/annotations.d.ts.map +1 -0
  93. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts +2 -0
  94. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +1 -0
  95. package/dist/types/src/internal/json-schema/index.d.ts +5 -0
  96. package/dist/types/src/internal/json-schema/index.d.ts.map +1 -0
  97. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts +7 -0
  98. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -0
  99. package/dist/types/src/internal/json-schema/json-schema-type.d.ts +250 -0
  100. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -0
  101. package/dist/types/src/internal/json-schema/json-schema.d.ts +29 -0
  102. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -0
  103. package/dist/types/src/internal/json-schema/json-schema.test.d.ts +2 -0
  104. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +1 -0
  105. package/dist/types/src/internal/object/common.d.ts +18 -0
  106. package/dist/types/src/internal/object/common.d.ts.map +1 -0
  107. package/dist/types/src/internal/object/create-object.d.ts +39 -0
  108. package/dist/types/src/internal/object/create-object.d.ts.map +1 -0
  109. package/dist/types/src/internal/object/create-object.test.d.ts +2 -0
  110. package/dist/types/src/internal/object/create-object.test.d.ts.map +1 -0
  111. package/dist/types/src/internal/object/deleted.d.ts +6 -0
  112. package/dist/types/src/internal/object/deleted.d.ts.map +1 -0
  113. package/dist/types/src/internal/object/ids.d.ts +6 -0
  114. package/dist/types/src/internal/object/ids.d.ts.map +1 -0
  115. package/dist/types/src/internal/object/index.d.ts +8 -0
  116. package/dist/types/src/internal/object/index.d.ts.map +1 -0
  117. package/dist/types/src/internal/object/inspect.d.ts +2 -0
  118. package/dist/types/src/internal/object/inspect.d.ts.map +1 -0
  119. package/dist/types/src/internal/object/json-serializer.d.ts +31 -0
  120. package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -0
  121. package/dist/types/src/internal/object/json-serializer.test.d.ts +2 -0
  122. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +1 -0
  123. package/dist/types/src/internal/object/schema-validator.d.ts +15 -0
  124. package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -0
  125. package/dist/types/src/internal/object/schema-validator.test.d.ts +2 -0
  126. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +1 -0
  127. package/dist/types/src/internal/object/typed-object.d.ts +31 -0
  128. package/dist/types/src/internal/object/typed-object.d.ts.map +1 -0
  129. package/dist/types/src/internal/object/typed-object.test.d.ts +2 -0
  130. package/dist/types/src/internal/object/typed-object.test.d.ts.map +1 -0
  131. package/dist/types/src/internal/proxy/handler.test.d.ts +2 -0
  132. package/dist/types/src/internal/proxy/handler.test.d.ts.map +1 -0
  133. package/dist/types/src/internal/proxy/index.d.ts +3 -0
  134. package/dist/types/src/internal/proxy/index.d.ts.map +1 -0
  135. package/dist/types/src/internal/proxy/make-object.d.ts +16 -0
  136. package/dist/types/src/internal/proxy/make-object.d.ts.map +1 -0
  137. package/dist/types/src/internal/proxy/schema.test.d.ts +2 -0
  138. package/dist/types/src/internal/proxy/schema.test.d.ts.map +1 -0
  139. package/dist/types/src/internal/proxy/typed-handler.d.ts +44 -0
  140. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -0
  141. package/dist/types/src/internal/proxy/typed-handler.test.d.ts +2 -0
  142. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +1 -0
  143. package/dist/types/src/internal/proxy/typed-object.test.d.ts +2 -0
  144. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +1 -0
  145. package/dist/types/src/internal/ref/index.d.ts +3 -0
  146. package/dist/types/src/internal/ref/index.d.ts.map +1 -0
  147. package/dist/types/src/internal/ref/ref-array.d.ts +21 -0
  148. package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -0
  149. package/dist/types/src/internal/ref/ref.d.ts +209 -0
  150. package/dist/types/src/internal/ref/ref.d.ts.map +1 -0
  151. package/dist/types/src/internal/ref/ref.test.d.ts +2 -0
  152. package/dist/types/src/internal/ref/ref.test.d.ts.map +1 -0
  153. package/dist/types/src/internal/schema/compose.d.ts +6 -0
  154. package/dist/types/src/internal/schema/compose.d.ts.map +1 -0
  155. package/dist/types/src/internal/schema/compose.test.d.ts +2 -0
  156. package/dist/types/src/internal/schema/compose.test.d.ts.map +1 -0
  157. package/dist/types/src/internal/schema/echo-schema.d.ts +168 -0
  158. package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -0
  159. package/dist/types/src/internal/schema/index.d.ts +6 -0
  160. package/dist/types/src/internal/schema/index.d.ts.map +1 -0
  161. package/dist/types/src/internal/schema/manipulation.d.ts +10 -0
  162. package/dist/types/src/internal/schema/manipulation.d.ts.map +1 -0
  163. package/dist/types/src/internal/schema/persistent-schema.d.ts +18 -0
  164. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +1 -0
  165. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +18 -0
  166. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +1 -0
  167. package/dist/types/src/internal/schema/snapshot.d.ts +6 -0
  168. package/dist/types/src/internal/schema/snapshot.d.ts.map +1 -0
  169. package/dist/types/src/internal/types/base.d.ts +37 -0
  170. package/dist/types/src/internal/types/base.d.ts.map +1 -0
  171. package/dist/types/src/internal/types/entity.d.ts +12 -0
  172. package/dist/types/src/internal/types/entity.d.ts.map +1 -0
  173. package/dist/types/src/internal/types/index.d.ts +6 -0
  174. package/dist/types/src/internal/types/index.d.ts.map +1 -0
  175. package/dist/types/src/internal/types/meta.d.ts +40 -0
  176. package/dist/types/src/internal/types/meta.d.ts.map +1 -0
  177. package/dist/types/src/internal/types/typename.d.ts +13 -0
  178. package/dist/types/src/internal/types/typename.d.ts.map +1 -0
  179. package/dist/types/src/internal/types/version.d.ts +15 -0
  180. package/dist/types/src/internal/types/version.d.ts.map +1 -0
  181. package/dist/types/src/query/filter.d.ts +167 -0
  182. package/dist/types/src/query/filter.d.ts.map +1 -0
  183. package/dist/types/src/query/index.d.ts +4 -1
  184. package/dist/types/src/query/index.d.ts.map +1 -1
  185. package/dist/types/src/query/order.d.ts +12 -0
  186. package/dist/types/src/query/order.d.ts.map +1 -0
  187. package/dist/types/src/query/query.d.ts +112 -0
  188. package/dist/types/src/query/query.d.ts.map +1 -0
  189. package/dist/types/src/query/query.test.d.ts +2 -0
  190. package/dist/types/src/query/query.test.d.ts.map +1 -0
  191. package/dist/types/src/query/testing.d.ts +51 -0
  192. package/dist/types/src/query/testing.d.ts.map +1 -0
  193. package/dist/types/src/query/types.d.ts +17 -0
  194. package/dist/types/src/query/types.d.ts.map +1 -0
  195. package/dist/types/src/query/util.d.ts +8 -0
  196. package/dist/types/src/query/util.d.ts.map +1 -0
  197. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  198. package/dist/types/src/testing/index.d.ts +3 -1
  199. package/dist/types/src/testing/index.d.ts.map +1 -1
  200. package/dist/types/src/testing/test-data.d.ts +18 -0
  201. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  202. package/dist/types/src/testing/test-schema.d.ts +337 -0
  203. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  204. package/dist/types/src/testing/util.d.ts +16 -0
  205. package/dist/types/src/testing/util.d.ts.map +1 -0
  206. package/dist/types/tsconfig.tsbuildinfo +1 -1
  207. package/package.json +49 -29
  208. package/src/Annotation.ts +17 -0
  209. package/src/Database.ts +189 -0
  210. package/src/Entity.ts +51 -0
  211. package/src/Format.ts +11 -0
  212. package/src/JsonSchema.ts +16 -0
  213. package/src/Key.ts +3 -0
  214. package/src/Obj.ts +353 -107
  215. package/src/Ref.ts +9 -10
  216. package/src/Relation.ts +68 -43
  217. package/src/Tag.ts +40 -0
  218. package/src/Type.ts +97 -85
  219. package/src/errors.ts +18 -0
  220. package/src/index.ts +13 -4
  221. package/src/internal/README.md +83 -0
  222. package/src/internal/annotations/annotations.test.ts +96 -0
  223. package/src/internal/annotations/annotations.ts +463 -0
  224. package/src/internal/annotations/index.ts +6 -0
  225. package/src/internal/annotations/util.ts +70 -0
  226. package/src/internal/entities/entity.ts +109 -0
  227. package/src/internal/entities/expando.ts +23 -0
  228. package/src/internal/entities/index.ts +9 -0
  229. package/src/internal/entities/model.ts +129 -0
  230. package/src/internal/entities/object.ts +45 -0
  231. package/src/internal/entities/relation.ts +155 -0
  232. package/src/internal/entities/util.ts +33 -0
  233. package/src/internal/formats/date.test.ts +56 -0
  234. package/src/internal/formats/date.ts +217 -0
  235. package/src/internal/formats/format.test.ts +77 -0
  236. package/src/internal/formats/format.ts +55 -0
  237. package/src/internal/formats/index.ts +12 -0
  238. package/src/internal/formats/number.ts +89 -0
  239. package/src/internal/formats/object.ts +80 -0
  240. package/src/internal/formats/select.ts +16 -0
  241. package/src/internal/formats/string.ts +76 -0
  242. package/src/internal/formats/types.ts +180 -0
  243. package/src/internal/index.ts +38 -0
  244. package/src/internal/json-schema/annotations.ts +50 -0
  245. package/src/internal/json-schema/effect-schema.test.ts +143 -0
  246. package/src/internal/json-schema/index.ts +8 -0
  247. package/src/internal/json-schema/json-schema-normalize.ts +109 -0
  248. package/src/internal/json-schema/json-schema-type.ts +404 -0
  249. package/src/internal/json-schema/json-schema.test.ts +859 -0
  250. package/src/internal/json-schema/json-schema.ts +528 -0
  251. package/src/internal/object/common.ts +75 -0
  252. package/src/internal/object/create-object.test.ts +116 -0
  253. package/src/internal/object/create-object.ts +95 -0
  254. package/src/internal/object/deleted.ts +19 -0
  255. package/src/internal/object/ids.ts +12 -0
  256. package/src/internal/object/index.ts +11 -0
  257. package/src/internal/object/inspect.ts +46 -0
  258. package/src/internal/object/json-serializer.test.ts +94 -0
  259. package/src/internal/object/json-serializer.ts +230 -0
  260. package/src/internal/object/schema-validator.test.ts +186 -0
  261. package/src/internal/object/schema-validator.ts +242 -0
  262. package/src/internal/object/typed-object.test.ts +34 -0
  263. package/src/internal/object/typed-object.ts +94 -0
  264. package/src/internal/proxy/handler.test.ts +173 -0
  265. package/src/internal/proxy/index.ts +6 -0
  266. package/src/internal/proxy/make-object.ts +113 -0
  267. package/src/internal/proxy/schema.test.ts +137 -0
  268. package/src/internal/proxy/typed-handler.test.ts +102 -0
  269. package/src/internal/proxy/typed-handler.ts +233 -0
  270. package/src/internal/proxy/typed-object.test.ts +105 -0
  271. package/src/internal/ref/index.ts +6 -0
  272. package/src/internal/ref/ref-array.ts +39 -0
  273. package/src/internal/ref/ref.test.ts +101 -0
  274. package/src/internal/ref/ref.ts +525 -0
  275. package/src/internal/schema/compose.test.ts +42 -0
  276. package/src/internal/schema/compose.ts +37 -0
  277. package/src/internal/schema/echo-schema.ts +385 -0
  278. package/src/internal/schema/index.ts +9 -0
  279. package/src/internal/schema/manipulation.ts +92 -0
  280. package/src/internal/schema/persistent-schema.ts +28 -0
  281. package/src/internal/schema/runtime-schema-registry.ts +78 -0
  282. package/src/internal/schema/snapshot.ts +25 -0
  283. package/src/internal/types/base.ts +58 -0
  284. package/src/internal/types/entity.ts +23 -0
  285. package/src/internal/types/index.ts +9 -0
  286. package/src/internal/types/meta.ts +76 -0
  287. package/src/internal/types/typename.ts +45 -0
  288. package/src/internal/types/version.ts +20 -0
  289. package/src/query/filter.ts +455 -0
  290. package/src/query/index.ts +5 -1
  291. package/src/query/order.ts +34 -0
  292. package/src/query/query.test.ts +334 -0
  293. package/src/query/query.ts +303 -0
  294. package/src/query/testing.ts +64 -0
  295. package/src/query/types.ts +23 -0
  296. package/src/query/util.ts +25 -0
  297. package/src/testing/api.test.ts +100 -0
  298. package/src/testing/index.ts +3 -1
  299. package/src/testing/test-data.ts +130 -0
  300. package/src/testing/test-schema.ts +213 -0
  301. package/src/testing/util.ts +78 -0
  302. package/dist/lib/browser/chunk-2KNTYMIW.mjs +0 -697
  303. package/dist/lib/browser/chunk-2KNTYMIW.mjs.map +0 -7
  304. package/dist/lib/node-esm/chunk-EXNNC62J.mjs +0 -697
  305. package/dist/lib/node-esm/chunk-EXNNC62J.mjs.map +0 -7
  306. package/dist/types/src/experimental/database.d.ts +0 -8
  307. package/dist/types/src/experimental/database.d.ts.map +0 -1
  308. package/dist/types/src/experimental/index.d.ts +0 -1
  309. package/dist/types/src/experimental/index.d.ts.map +0 -1
  310. package/dist/types/src/experimental/queue.d.ts +0 -8
  311. package/dist/types/src/experimental/queue.d.ts.map +0 -1
  312. package/dist/types/src/experimental/space.d.ts +0 -8
  313. package/dist/types/src/experimental/space.d.ts.map +0 -1
  314. package/dist/types/src/query/dsl.d.ts +0 -218
  315. package/dist/types/src/query/dsl.d.ts.map +0 -1
  316. package/dist/types/src/query/dsl.test.d.ts +0 -2
  317. package/dist/types/src/query/dsl.test.d.ts.map +0 -1
  318. package/dist/types/src/testing/types.d.ts +0 -113
  319. package/dist/types/src/testing/types.d.ts.map +0 -1
  320. package/src/experimental/database.ts +0 -11
  321. package/src/experimental/index.ts +0 -7
  322. package/src/experimental/queue.ts +0 -11
  323. package/src/experimental/space.ts +0 -11
  324. package/src/query/dsl.test.ts +0 -324
  325. package/src/query/dsl.ts +0 -646
  326. package/src/test/api.test.ts +0 -173
  327. package/src/testing/types.ts +0 -91
  328. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
@@ -1,2 +1,3 @@
1
+ export { ForeignKey } from '@dxos/echo-protocol';
1
2
  export { SpaceId, ObjectId } from '@dxos/keys';
2
3
  //# sourceMappingURL=Key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/Key.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/Key.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -1,33 +1,44 @@
1
- import { Schema } from 'effect';
2
- import * as EchoSchema from '@dxos/echo-schema';
3
- import { type DXN } from '@dxos/keys';
4
- import type * as LiveObject from '@dxos/live-object';
5
- import type * as Ref from './Ref';
6
- import type * as Relation from './Relation';
7
- import type * as Type from './Type';
1
+ import * as Schema from 'effect/Schema';
2
+ import { type ForeignKey } from '@dxos/echo-protocol';
3
+ import { type DXN, ObjectId } from '@dxos/keys';
4
+ import * as Entity from './Entity';
5
+ import { type AnyEchoObject, type AnyProperties, type ObjectJSON, type ObjectMeta, VersionTypeId } from './internal';
6
+ import * as Ref from './Ref';
7
+ import * as Type from './Type';
8
8
  /**
9
- * NOTE: Don't export: Obj.Any and Obj.Obj form the public API.
9
+ * Base type for all ECHO objects.
10
+ * @private
10
11
  */
11
- interface BaseObj extends EchoSchema.HasId, Type.OfKind<EchoSchema.EntityKind.Object> {
12
+ interface BaseObj extends AnyEchoObject, Entity.OfKind<typeof Entity.Kind.Object> {
12
13
  }
14
+ /**
15
+ * Base type for all Obj objects.
16
+ */
17
+ export interface Any extends BaseObj {
18
+ }
19
+ export declare const Any: Type.obj<Schema.Struct<{}>>;
13
20
  /**
14
21
  * Object type with specific properties.
15
22
  */
16
23
  export type Obj<Props> = BaseObj & Props;
17
24
  /**
18
- * Base type for all ECHO objects.
25
+ * Object with arbitrary properties.
26
+ *
27
+ * NOTE: Due to how typescript works, this type is not assignable to a specific schema type.
28
+ * In that case, use `Obj.instanceOf` to check if an object is of a specific type.
19
29
  */
20
- export interface Any extends BaseObj {
30
+ export interface AnyProps extends BaseObj, AnyProperties {
21
31
  }
22
32
  type Props<T = any> = {
23
- id?: EchoSchema.ObjectId;
33
+ id?: ObjectId;
34
+ [Meta]?: Partial<ObjectMeta>;
24
35
  } & Type.Properties<T>;
25
- export type MakeProps<T extends Type.Obj.Any> = NoInfer<Props<Schema.Schema.Type<T>>> & {
26
- [Meta]?: Partial<EchoSchema.ObjectMeta>;
27
- };
28
- export declare const Meta: unique symbol;
36
+ export type MakeProps<T extends Schema.Schema.AnyNoContext> = {
37
+ id?: ObjectId;
38
+ [Meta]?: Partial<ObjectMeta>;
39
+ } & NoInfer<Props<Schema.Schema.Type<T>>>;
29
40
  /**
30
- * Creates new object.
41
+ * Creates a new object of the given types.
31
42
  * @param schema - Object schema.
32
43
  * @param props - Object properties.
33
44
  * @param meta - Object metadata (deprecated) -- pass with Obj.Meta.
@@ -39,69 +50,97 @@ export declare const Meta: unique symbol;
39
50
  * const obj = Obj.make(Person, { [Obj.Meta]: { keys: [...] }, name: 'John' });
40
51
  * ```
41
52
  */
42
- export declare const make: <S extends Type.Obj.Any>(schema: S, props: MakeProps<S>, meta?: EchoSchema.ObjectMeta) => LiveObject.Live<Schema.Schema.Type<S>>;
53
+ export declare const make: <S extends Schema.Schema.AnyNoContext>(schema: S, props: MakeProps<S>, meta?: Partial<ObjectMeta>) => Obj<Schema.Schema.Type<S>>;
54
+ /**
55
+ * Determine if object is an ECHO object.
56
+ */
43
57
  export declare const isObject: (obj: unknown) => obj is Any;
58
+ /**
59
+ * Returns an immutable snapshot of an object.
60
+ */
61
+ export declare const getSnapshot: <T extends Any>(obj: Obj<T>) => T;
62
+ export type CloneOptions = {
63
+ /**
64
+ * Retain the original object's ID.
65
+ * @default false
66
+ */
67
+ retainId?: boolean;
68
+ };
69
+ /**
70
+ * Clones an object or relation.
71
+ * This does not clone referenced objects, only the properties in the object.
72
+ * @returns A new object with the same schema and properties.
73
+ */
74
+ export declare const clone: <T extends Any>(obj: T, opts?: CloneOptions) => T;
75
+ export declare const ID: import("@dxos/keys").ObjectIdClass;
76
+ export type ID = ObjectId;
44
77
  /**
45
78
  * Test if object or relation is an instance of a schema.
46
79
  * @example
47
80
  * ```ts
48
81
  * const john = Obj.make(Person, { name: 'John' });
49
- * const johnIsPerson = Obj.instanceOf(Person)(john);
50
- *
51
82
  * const isPerson = Obj.instanceOf(Person);
52
- * if(isPerson(john)) {
83
+ * if (isPerson(john)) {
53
84
  * // john is Person
54
85
  * }
55
86
  * ```
56
87
  */
57
88
  export declare const instanceOf: {
58
- <S extends Type.Relation.Any | Type.Obj.Any>(schema: S): (value: unknown) => value is Schema.Schema.Type<S>;
59
- <S extends Type.Relation.Any | Type.Obj.Any>(schema: S, value: unknown): value is Schema.Schema.Type<S>;
89
+ <S extends Type.Entity.Any>(schema: S): (value: unknown) => value is Schema.Schema.Type<S>;
90
+ <S extends Type.Entity.Any>(schema: S, value: unknown): value is Schema.Schema.Type<S>;
60
91
  };
61
- export declare const getSchema: (obj: unknown | undefined) => Schema.Schema.AnyNoContext | undefined;
62
- export declare const getDXN: (obj: Any | Relation.Any) => DXN;
92
+ export declare const getDXN: (entity: Entity.Unknown) => DXN;
63
93
  /**
64
94
  * @returns The DXN of the object's type.
65
- * @example dxn:example.com/type/Contact:1.0.0
95
+ * @example dxn:example.com/type/Person:1.0.0
96
+ */
97
+ export declare const getTypeDXN: (obj: AnyProperties) => DXN | undefined;
98
+ /**
99
+ * Get the schema of the object.
66
100
  */
67
- export declare const getTypeDXN: (obj: EchoSchema.BaseObject) => DXN | undefined;
101
+ export declare const getSchema: (obj: unknown | undefined) => Schema.Schema.AnyNoContext | undefined;
68
102
  /**
69
103
  * @returns The typename of the object's type.
70
- * @example `example.com/type/Contact`
104
+ * @example `example.com/type/Person`
71
105
  */
72
- export declare const getTypename: (obj: Any | Relation.Any) => string | undefined;
73
- export declare const getMeta: (obj: Any | Relation.Any) => EchoSchema.ObjectMeta;
106
+ export declare const getTypename: (entity: Entity.Unknown) => string | undefined;
107
+ export declare const Meta: unique symbol;
108
+ export declare const getMeta: (entity: AnyProperties) => ObjectMeta;
74
109
  /**
75
110
  * @returns Foreign keys for the object from the specified source.
76
111
  */
77
112
  export declare const getKeys: {
78
- (obj: Any | Relation.Any, source: string): EchoSchema.ForeignKey[];
79
- (source: string): (obj: Any | Relation.Any) => EchoSchema.ForeignKey[];
113
+ (entity: Entity.Unknown, source: string): ForeignKey[];
114
+ (source: string): (entity: Entity.Unknown) => ForeignKey[];
80
115
  };
81
116
  /**
82
117
  * Delete all keys from the object for the specified source.
83
- * @param obj
118
+ * @param entity
84
119
  * @param source
85
120
  */
86
- export declare const deleteKeys: (obj: Any | Relation.Any, source: string) => void;
87
- export declare const isDeleted: (obj: Any | Relation.Any) => boolean;
88
- export declare const getLabel: (obj: Any | Relation.Any) => string | undefined;
89
- export declare const setLabel: (obj: Any | Relation.Any, label: string) => void;
121
+ export declare const deleteKeys: (entity: Entity.Unknown, source: string) => void;
122
+ export declare const addTag: (entity: Entity.Unknown, tag: string) => void;
123
+ export declare const removeTag: (entity: Entity.Unknown, tag: string) => void;
124
+ export declare const isDeleted: (entity: Entity.Unknown) => boolean;
125
+ export declare const getLabel: (entity: Entity.Unknown) => string | undefined;
126
+ export declare const setLabel: (entity: Entity.Unknown, label: string) => void;
127
+ export declare const getDescription: (entity: Entity.Unknown) => string | undefined;
128
+ export declare const setDescription: (entity: Entity.Unknown, description: string) => void;
90
129
  /**
91
130
  * JSON representation of an object.
92
131
  */
93
- export type JSON = EchoSchema.ObjectJSON;
132
+ export type JSON = ObjectJSON;
94
133
  /**
95
134
  * Converts object to its JSON representation.
96
135
  *
97
136
  * The same algorithm is used when calling the standard `JSON.stringify(obj)` function.
98
137
  */
99
- export declare const toJSON: (obj: Any | Relation.Any) => JSON;
138
+ export declare const toJSON: (entity: Entity.Unknown) => JSON;
100
139
  /**
101
140
  * Creates an object from its json representation, performing schema validation.
102
141
  * References and schemas will be resolvable if the `refResolver` is provided.
103
142
  *
104
- * The function need to be async to support resolving the schema as well as the relation endpoints.
143
+ * The function must be async to support resolving the schema as well as the relation endpoints.
105
144
  *
106
145
  * @param options.refResolver - Resolver for references. Produces hydrated references that can be resolved.
107
146
  * @param options.dxn - Override object DXN. Changes the result of `Obj.getDXN`.
@@ -110,18 +149,50 @@ export declare const fromJSON: (json: unknown, options?: {
110
149
  refResolver?: Ref.Resolver;
111
150
  dxn?: DXN;
112
151
  }) => Promise<Any>;
113
- export type CloneOptions = {
152
+ export type Comparator = (a: Entity.Unknown, b: Entity.Unknown) => number;
153
+ export declare const sortByLabel: Comparator;
154
+ export declare const sortByTypename: Comparator;
155
+ export declare const sort: (...comparators: Comparator[]) => Comparator;
156
+ /**
157
+ * Unique symbol for version type identification.
158
+ */
159
+ export { VersionTypeId };
160
+ /**
161
+ * Represent object version.
162
+ * May be backed by Automerge.
163
+ * Objects with no history are not versioned.
164
+ */
165
+ export interface Version {
166
+ [VersionTypeId]: {};
114
167
  /**
115
- * Retain the original object's ID.
116
- * @default false
168
+ * Whether the object is versioned.
117
169
  */
118
- retainId?: boolean;
119
- };
170
+ versioned: boolean;
171
+ /**
172
+ * Automerge heads.
173
+ */
174
+ automergeHeads?: string[];
175
+ }
120
176
  /**
121
- * Clones an object or relation.
122
- * This does not clone referenced objects, only the properties in the object.
123
- * @returns A new object with the same schema and properties.
177
+ * Checks that `obj` is a version object.
178
+ */
179
+ export declare const isVersion: (entity: unknown) => entity is Version;
180
+ /**
181
+ * Returns the version of the object.
182
+ */
183
+ export declare const version: (entity: Entity.Unknown) => Version;
184
+ /**
185
+ * Checks that `version` is a valid version object.
186
+ */
187
+ export declare const versionValid: (version: Version) => boolean;
188
+ export type VersionCompareResult = 'unversioned' | 'equal' | 'different';
189
+ /**
190
+ * Compares two versions.
191
+ * @param version1
192
+ * @param version2
193
+ * @returns 'unversioned' if either object is unversioned, 'equal' if the versions are equal, 'different' if the versions are different.
124
194
  */
125
- export declare const clone: <T extends Any | Relation.Any>(obj: T, opts?: CloneOptions) => T;
126
- export {};
195
+ export declare const compareVersions: (version1: Version, version2: Version) => VersionCompareResult;
196
+ export declare const encodeVersion: (version: Version) => string;
197
+ export declare const decodeVersion: (version: string) => Version;
127
198
  //# sourceMappingURL=Obj.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../../src/Obj.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../../src/Obj.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,21 @@
1
- import * as EchoSchema from '@dxos/echo-schema';
1
+ import { Ref as Ref$, type RefResolver } from './internal';
2
2
  import type * as Obj from './Obj';
3
- export type Ref<T> = EchoSchema.Ref<T>;
4
- export type Any = EchoSchema.Ref<Obj.Any>;
3
+ export type Ref<T> = Ref$<T>;
4
+ export type Any = Ref$<Obj.Any>;
5
5
  export declare const Array: Readonly<{
6
- targets: <T extends EchoSchema.AnyEchoObject>(refs: readonly EchoSchema.Ref<T>[]) => T[];
7
- loadAll: <T extends EchoSchema.AnyEchoObject>(refs: readonly EchoSchema.Ref<T>[]) => Promise<T[]>;
8
- removeById: (refs: EchoSchema.Ref<EchoSchema.AnyEchoObject>[], id: EchoSchema.ObjectId) => void;
6
+ targets: <T extends import("./internal").AnyEchoObject>(refs: readonly Ref$<T>[]) => T[];
7
+ loadAll: <T extends import("./internal").AnyEchoObject>(refs: readonly Ref$<T>[]) => Promise<T[]>;
8
+ removeById: (refs: Ref$<import("./internal").AnyEchoObject>[], id: import("@dxos/keys").ObjectId) => void;
9
9
  }>;
10
10
  /**
11
11
  * Extract reference target.
12
12
  */
13
- export type Target<R extends Any> = R extends EchoSchema.Ref<infer T> ? T : never;
13
+ export type Target<R extends Any> = R extends Ref$<infer T> ? T : never;
14
14
  /**
15
15
  * Reference resolver.
16
16
  */
17
- export type Resolver = EchoSchema.RefResolver;
17
+ export type Resolver = RefResolver;
18
18
  export declare const isRef: (value: unknown) => value is Any;
19
- export declare const make: <T extends EchoSchema.WithId>(object: T) => EchoSchema.Ref<T>;
20
- export declare const fromDXN: (dxn: import("@dxos/keys").DXN) => EchoSchema.Ref<any>;
19
+ export declare const make: <T extends import("./internal").WithId>(object: T) => Ref$<T>;
20
+ export declare const fromDXN: (dxn: import("@dxos/keys").DXN) => Ref$<any>;
21
21
  //# sourceMappingURL=Ref.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/Ref.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvC,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,eAAO,MAAM,KAAK;;;;EAAsB,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC;AAE9C,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,GAA0B,CAAC;AAE5E,eAAO,MAAM,IAAI,+DAAsB,CAAC;AAGxC,eAAO,MAAM,OAAO,wDAAyB,CAAC"}
1
+ {"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/Ref.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,IAAI,IAAI,EAAY,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEhC,eAAO,MAAM,KAAK;;;;EAAW,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEnC,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,GAAgB,CAAC;AAElE,eAAO,MAAM,IAAI,+DAAY,CAAC;AAG9B,eAAO,MAAM,OAAO,8CAAe,CAAC"}
@@ -1,29 +1,33 @@
1
- import { type Schema } from 'effect';
2
- import * as EchoSchema from '@dxos/echo-schema';
3
- import { DXN } from '@dxos/keys';
1
+ import * as Schema from 'effect/Schema';
2
+ import { DXN, type ObjectId } from '@dxos/keys';
4
3
  import { type Live } from '@dxos/live-object';
5
- import type * as Obj from './Obj';
6
- import type * as Type from './Type';
4
+ import * as Entity from './Entity';
5
+ import { type AnyEchoObject, EntityKind, MetaId, type ObjectMeta } from './internal';
6
+ import * as Obj from './Obj';
7
+ import * as Type from './Type';
7
8
  /**
8
- * NOTE: Don't export: Relation.Relation and Relation.Any form the public API.
9
+ * Base type for all ECHO relations.
10
+ * @private
9
11
  */
10
- interface BaseRelation<Source, Target> extends EchoSchema.HasId, Type.Relation.Endpoints<Source, Target>, Type.OfKind<EchoSchema.EntityKind.Relation> {
12
+ interface BaseRelation<Source, Target> extends AnyEchoObject, Type.Relation.Endpoints<Source, Target>, Entity.OfKind<EntityKind.Relation> {
11
13
  }
12
14
  /**
13
- * Relation type with specific properties.
14
- */
15
- export type Relation<Source extends Obj.Any, Target extends Obj.Any, Props> = BaseRelation<Source, Target> & Props;
16
- /**
17
- * Base type for all ECHO relations.
15
+ * Base type for all Relations objects.
18
16
  */
19
17
  export interface Any extends BaseRelation<Obj.Any, Obj.Any> {
20
18
  }
19
+ export declare const Any: Type.relation<Schema.Struct<{}>, Type.obj<Schema.Struct<{}>>, Type.obj<Schema.Struct<{}>>>;
20
+ /**
21
+ * Relation type with specific source and target types.
22
+ */
23
+ export type Relation<Source extends Obj.Any, Target extends Obj.Any, Props> = BaseRelation<Source, Target> & Props;
21
24
  export declare const Source: unique symbol;
22
25
  export type Source = typeof Source;
23
26
  export declare const Target: unique symbol;
24
27
  export type Target = typeof Target;
25
28
  type MakeProps<T extends Any> = {
26
- id?: EchoSchema.ObjectId;
29
+ id?: ObjectId;
30
+ [MetaId]?: ObjectMeta;
27
31
  [Source]: T[Source];
28
32
  [Target]: T[Target];
29
33
  } & Type.Properties<T>;
@@ -34,7 +38,7 @@ type MakeProps<T extends Any> = {
34
38
  * @param meta - Relation metadata.
35
39
  * @returns
36
40
  */
37
- export declare const make: <S extends Type.Relation.Any>(schema: S, props: NoInfer<MakeProps<Schema.Schema.Type<S>>>, meta?: EchoSchema.ObjectMeta) => Live<Schema.Schema.Type<S> & Type.OfKind<EchoSchema.EntityKind.Relation>>;
41
+ export declare const make: <S extends Type.Relation.Any>(schema: S, props: NoInfer<MakeProps<Schema.Schema.Type<S>>>, meta?: ObjectMeta) => Live<Schema.Schema.Type<S> & Entity.OfKind<typeof Entity.Kind.Relation>>;
38
42
  export declare const isRelation: (value: unknown) => value is Any;
39
43
  /**
40
44
  * @returns Relation source DXN.
@@ -1 +1 @@
1
- {"version":3,"file":"Relation.d.ts","sourceRoot":"","sources":["../../../src/Relation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AAEpC;;GAEG;AACH,UAAU,YAAY,CAAC,MAAM,EAAE,MAAM,CACnC,SAAQ,UAAU,CAAC,KAAK,EACtB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;CAAG;AAElD;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;AAEnH;;GAEG;AACH,MAAM,WAAW,GAAI,SAAQ,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;CAAG;AAG9D,eAAO,MAAM,MAAM,EAAE,OAAO,MAA2C,CAAC;AACxE,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AACnC,eAAO,MAAM,MAAM,EAAE,OAAO,MAA2C,CAAC;AACxE,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI;IAC9B,EAAE,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IACzB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CACrB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAEvB;;;;;;GAMG;AAGH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,EAC9C,QAAQ,CAAC,EACT,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,UAAU,CAAC,UAAU,KAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAiB1E,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,GAUpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,GAMzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,GAMzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,GAAG,EAAE,UAAU,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAM5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,GAAG,EAAE,UAAU,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAM5E,CAAC"}
1
+ {"version":3,"file":"Relation.d.ts","sourceRoot":"","sources":["../../../src/Relation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAGL,KAAK,aAAa,EAClB,UAAU,EAEV,MAAM,EACN,KAAK,UAAU,EAQhB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;;GAGG;AACH,UAAU,YAAY,CAAC,MAAM,EAAE,MAAM,CACnC,SAAQ,aAAa,EACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;CAAG;AAEzC;;GAEG;AACH,MAAM,WAAW,GAAI,SAAQ,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;CAAG;AAE9D,eAAO,MAAM,GAAG,4FAOf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;AAEnH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAgC,CAAC;AAC7D,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,eAAO,MAAM,MAAM,EAAE,OAAO,MAAgC,CAAC;AAC7D,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI;IAC9B,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;IACtB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CACrB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAEvB;;;;;;GAMG;AAGH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,EAC9C,QAAQ,CAAC,EACT,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,UAAU,KAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAezE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,GAUpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,GAMzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,GAMzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,GAAG,EAAE,UAAU,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAM5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,GAAG,EAAE,UAAU,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAM5E,CAAC"}
@@ -0,0 +1,17 @@
1
+ import * as Schema from 'effect/Schema';
2
+ import * as Obj from './Obj';
3
+ import * as Type from './Type';
4
+ export declare const Tag: Type.obj<Schema.Struct<{
5
+ label: typeof Schema.String;
6
+ hue: Schema.optional<typeof Schema.String>;
7
+ }>>;
8
+ export type Tag = Schema.Schema.Type<typeof Tag>;
9
+ export declare const make: (props: Obj.MakeProps<typeof Tag>) => Obj.Obj<import("./Entity").OfKind<import("./internal").EntityKind.Object> & {
10
+ label: string;
11
+ hue?: string | undefined;
12
+ }>;
13
+ export type Map = Record<string, Tag>;
14
+ export declare const sortTags: ({ label: a }: Tag, { label: b }: Tag) => number;
15
+ export declare const createTagList: (tags: Map) => Tag[];
16
+ export declare const findTagByLabel: (tags: Map | undefined, name: string) => Tag | undefined;
17
+ //# sourceMappingURL=Tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/Tag.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,eAAO,MAAM,GAAG;;;GAUf,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAEjD,eAAO,MAAM,IAAI,GAAI,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC;;;EAAyB,CAAC;AAG/E,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,eAAO,MAAM,QAAQ,GAAI,cAAc,GAAG,EAAE,cAAc,GAAG,WAAuB,CAAC;AAErF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,GAAG,EAG1B,CAAC;AAEpB,eAAO,MAAM,cAAc,GAAI,MAAM,GAAG,GAAG,SAAS,EAAE,MAAM,MAAM,KAAG,GAAG,GAAG,SAG1E,CAAC"}
@@ -1,28 +1,21 @@
1
- import { type Schema } from 'effect';
2
- import { type Simplify } from 'effect/Schema';
1
+ import type * as Schema$ from 'effect/Schema';
3
2
  import { type EncodedReference } from '@dxos/echo-protocol';
4
- import * as EchoSchema from '@dxos/echo-schema';
5
- import { type ToMutable } from '@dxos/echo-schema';
6
- import type * as Keys from '@dxos/keys';
7
- import type * as RelationModule from './Relation';
8
- export declare const KindId: unique symbol;
9
- export type KindId = typeof KindId;
10
- export declare const Kind: typeof EchoSchema.EntityKind;
11
- /**
12
- * Assigns a kind to an Object or Relation instance.
13
- */
14
- export interface OfKind<Kind extends EchoSchema.EntityKind> {
15
- readonly id: Keys.ObjectId;
16
- readonly [KindId]: Kind;
17
- }
18
- /**
19
- * Base ECHO schema type.
20
- */
21
- export type Schema = EchoSchema.EchoSchema;
3
+ import { type DXN } from '@dxos/keys';
4
+ import { type ToMutable } from '@dxos/util';
5
+ import type * as Entity$ from './Entity';
6
+ import { type ATTR_RELATION_SOURCE, type ATTR_RELATION_TARGET, type EchoRelationSchemaOptions, EchoSchema, Expando as Expando$, type ExpandoEncoded, PersistentSchema, type PersistentSchemaEncoded, Ref as Ref$, type RefFn, type RefSchema, type TypeAnnotation, type TypeMeta, toEffectSchema, toJsonSchema } from './internal';
7
+ import type * as Relation$ from './Relation';
8
+ export { toEffectSchema, toJsonSchema };
22
9
  /**
23
10
  * Returns all properties of an object or relation except for the id and kind.
24
11
  */
25
- export type Properties<T = any> = Omit<T, 'id' | KindId | RelationModule.Source | RelationModule.Target>;
12
+ export type Properties<T = any> = Omit<T, 'id' | Entity$.KindId | Relation$.Source | Relation$.Target>;
13
+ export declare namespace Entity {
14
+ /**
15
+ * Type.Obj.Any | Type.Relation.Any.
16
+ */
17
+ type Any = Obj.Any | Relation.Any;
18
+ }
26
19
  interface ObjJsonProps {
27
20
  id: string;
28
21
  }
@@ -32,13 +25,13 @@ interface ObjJsonProps {
32
25
  * This typedef avoids `TS4023` error (name from external module cannot be used named).
33
26
  * See Effect's note on interface types.
34
27
  */
35
- export interface obj<Self extends Schema.Schema.Any> extends EchoSchema.TypeMeta, Schema.AnnotableClass<obj<Self>, OfKind<EchoSchema.EntityKind.Object> & ToMutable<Schema.Schema.Type<Self>>, Simplify<ObjJsonProps & ToMutable<Schema.Schema.Encoded<Self>>>, Schema.Schema.Context<Self>> {
28
+ export interface obj<Self extends Schema$.Schema.Any> extends TypeMeta, Schema$.AnnotableClass<obj<Self>, Entity$.OfKind<typeof Entity$.Kind.Object> & ToMutable<Schema$.Schema.Type<Self>>, Schema$.Simplify<ObjJsonProps & ToMutable<Schema$.Schema.Encoded<Self>>>, Schema$.Schema.Context<Self>> {
36
29
  }
37
30
  /**
38
31
  * Object schema.
39
32
  */
40
33
  export declare const Obj: {
41
- (opts: EchoSchema.TypeMeta): <Self extends Schema.Schema.Any>(self: Self) => obj<Self>;
34
+ (opts: TypeMeta): <Self extends Schema$.Schema.Any>(self: Self) => obj<Self>;
42
35
  };
43
36
  /**
44
37
  * Object schema type definitions.
@@ -48,19 +41,17 @@ export declare namespace Obj {
48
41
  * Type that represents an arbitrary schema type of an object.
49
42
  * NOTE: This is not an instance type.
50
43
  */
51
- type Any = Schema.Schema.AnyNoContext;
52
- }
53
- export interface Expando extends OfKind<EchoSchema.EntityKind.Object> {
54
- [key: string]: any;
44
+ type Any = obj<Schema$.Schema.AnyNoContext>;
55
45
  }
56
- type ExpandoEncoded = Simplify<ObjJsonProps & {
57
- [key: string]: any;
58
- }>;
59
- export declare const Expando: Schema.Schema<Expando, ExpandoEncoded, never>;
46
+ export declare const Expando: obj<Schema$.Schema<Expando$, ExpandoEncoded>>;
47
+ export type Expando = obj<Schema$.Schema<Expando$, ExpandoEncoded>>;
48
+ export declare const PersistentType: obj<Schema$.Schema<PersistentSchema, PersistentSchemaEncoded>>;
49
+ export type PersistentType = obj<Schema$.Schema<PersistentSchema, PersistentSchemaEncoded>>;
50
+ export { EchoSchema as RuntimeType };
60
51
  interface RelationJsonProps {
61
52
  id: string;
62
- [EchoSchema.ATTR_RELATION_SOURCE]: string;
63
- [EchoSchema.ATTR_RELATION_TARGET]: string;
53
+ [ATTR_RELATION_SOURCE]: string;
54
+ [ATTR_RELATION_TARGET]: string;
64
55
  }
65
56
  /**
66
57
  * Return type of the `Relation` schema constructor.
@@ -68,13 +59,13 @@ interface RelationJsonProps {
68
59
  * This typedef avoids `TS4023` error (name from external module cannot be used named).
69
60
  * See Effect's note on interface types.
70
61
  */
71
- export interface relation<Self extends Schema.Schema.Any, SourceSchema extends Schema.Schema.Any, TargetSchema extends Schema.Schema.Any> extends EchoSchema.TypeMeta, Schema.AnnotableClass<relation<Self, SourceSchema, TargetSchema>, OfKind<EchoSchema.EntityKind.Relation> & Relation.Endpoints<Schema.Schema.Type<SourceSchema>, Schema.Schema.Type<TargetSchema>> & ToMutable<Schema.Schema.Type<Self>>, Simplify<RelationJsonProps & ToMutable<Schema.Schema.Encoded<Self>>>, Schema.Schema.Context<Self>> {
62
+ export interface relation<Self extends Schema$.Schema.Any, SourceSchema extends Schema$.Schema.Any, TargetSchema extends Schema$.Schema.Any> extends TypeMeta, Schema$.AnnotableClass<relation<Self, SourceSchema, TargetSchema>, Entity$.OfKind<typeof Entity$.Kind.Relation> & Relation.Endpoints<Schema$.Schema.Type<SourceSchema>, Schema$.Schema.Type<TargetSchema>> & ToMutable<Schema$.Schema.Type<Self>>, Schema$.Simplify<RelationJsonProps & ToMutable<Schema$.Schema.Encoded<Self>>>, Schema$.Schema.Context<Self>> {
72
63
  }
73
64
  /**
74
65
  * Relation schema.
75
66
  */
76
67
  export declare const Relation: {
77
- <Source extends Schema.Schema.AnyNoContext, Target extends Schema.Schema.AnyNoContext>(opts: EchoSchema.EchoRelationOptions<Source, Target>): <Self extends Schema.Schema.Any>(self: Self) => relation<Self, Source, Target>;
68
+ <Source extends Schema$.Schema.AnyNoContext, Target extends Schema$.Schema.AnyNoContext>(opts: EchoRelationSchemaOptions<Source, Target>): <Self extends Schema$.Schema.Any>(self: Self) => relation<Self, Source, Target>;
78
69
  };
79
70
  /**
80
71
  * Relation schema type definitions.
@@ -84,7 +75,7 @@ export declare namespace Relation {
84
75
  * Type that represents an arbitrary schema type of a relation.
85
76
  * NOTE: This is not an instance type.
86
77
  */
87
- type Any = Schema.Schema.AnyNoContext;
78
+ type Any = Schema$.Schema.AnyNoContext;
88
79
  /**
89
80
  * Get relation source type.
90
81
  */
@@ -94,8 +85,8 @@ export declare namespace Relation {
94
85
  */
95
86
  type Target<A> = A extends Relation.Endpoints<infer _S, infer T> ? T : never;
96
87
  type Endpoints<Source, Target> = {
97
- [RelationModule.Source]: Source;
98
- [RelationModule.Target]: Target;
88
+ [Relation$.Source]: Source;
89
+ [Relation$.Target]: Target;
99
90
  };
100
91
  }
101
92
  /**
@@ -104,20 +95,20 @@ export declare namespace Relation {
104
95
  * This typedef avoids `TS4023` error (name from external module cannot be used named).
105
96
  * See Effect's note on interface types.
106
97
  */
107
- export interface ref<TargetSchema extends Schema.Schema.Any> extends EchoSchema.Ref$<Schema.Schema.Type<TargetSchema>> {
98
+ export interface ref<TargetSchema extends Schema$.Schema.Any> extends RefSchema<Schema$.Schema.Type<TargetSchema>> {
108
99
  }
109
100
  /**
110
101
  * Ref schema.
111
102
  */
112
- export declare const Ref: <S extends Obj.Any>(schema: S) => ref<S>;
113
- export interface Ref<T> extends Schema.SchemaClass<EchoSchema.Ref<T>, EncodedReference> {
103
+ export declare const Ref: RefFn;
104
+ export interface Ref<T> extends Schema$.SchemaClass<Ref$<T>, EncodedReference> {
114
105
  }
115
106
  export declare namespace Ref {
116
107
  /**
117
108
  * Type that represents an arbitrary schema type of a reference.
118
109
  * NOTE: This is not an instance type.
119
110
  */
120
- type Any = Schema.Schema<EchoSchema.Ref<any>, EncodedReference>;
111
+ type Any = Schema$.Schema<Ref$<any>, EncodedReference>;
121
112
  }
122
113
  /**
123
114
  * Gets the full DXN of the schema.
@@ -125,29 +116,27 @@ export declare namespace Ref {
125
116
  * @example "dxn:example.com/type/Person:0.1.0"
126
117
  * @example "dxn:echo:SSSSSSSSSS:XXXXXXXXXXXXX"
127
118
  */
128
- export declare const getDXN: (schema: Obj.Any | Relation.Any) => Keys.DXN | undefined;
119
+ export declare const getDXN: (schema: Entity.Any) => DXN | undefined;
129
120
  /**
130
121
  * @param schema - Schema to get the typename from.
131
122
  * @returns The typename of the schema. Example: `example.com/type/Person`.
132
123
  */
133
- export declare const getTypename: (schema: Obj.Any | Relation.Any) => string;
124
+ export declare const getTypename: (schema: Entity.Any) => string;
134
125
  /**
135
126
  * Gets the version of the schema.
136
127
  * @example 0.1.0
137
128
  */
138
- export declare const getVersion: (schema: Obj.Any | Relation.Any) => string;
129
+ export declare const getVersion: (schema: Entity.Any) => string;
139
130
  /**
140
131
  * @returns True if the schema is mutable.
141
132
  */
142
- export declare const isMutable: (schema: Schema.Schema.AnyNoContext) => schema is EchoSchema.EchoSchema;
133
+ export declare const isMutable: (schema: Schema$.Schema.AnyNoContext) => schema is EchoSchema;
143
134
  /**
144
135
  * ECHO type metadata.
145
136
  */
146
- export type Meta = EchoSchema.TypeAnnotation;
137
+ export type Meta = TypeAnnotation;
147
138
  /**
148
139
  * Gets the meta data of the schema.
149
140
  */
150
- export declare const getMeta: (schema: Obj.Any | Relation.Any) => Meta | undefined;
151
- export { SpaceId, ObjectId, DXN } from '@dxos/keys';
152
- export { Format, JsonSchemaType as JsonSchema, toEffectSchema, toJsonSchema } from '@dxos/echo-schema';
141
+ export declare const getMeta: (schema: Entity.Any) => Meta | undefined;
153
142
  //# sourceMappingURL=Type.d.ts.map