@dxos/echo 0.8.4-main.ae835ea → 0.8.4-main.bc674ce

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 (532) hide show
  1. package/README.md +1 -2
  2. package/dist/lib/neutral/Annotation.mjs +32 -0
  3. package/dist/lib/neutral/Database.mjs +17 -0
  4. package/dist/lib/neutral/Entity.mjs +51 -0
  5. package/dist/lib/neutral/Err.mjs +10 -0
  6. package/dist/lib/neutral/Filter.mjs +61 -0
  7. package/dist/lib/neutral/Format.mjs +66 -0
  8. package/dist/lib/neutral/JsonSchema.mjs +19 -0
  9. package/dist/lib/neutral/JsonSchema.mjs.map +7 -0
  10. package/dist/lib/neutral/Key.mjs +12 -0
  11. package/dist/lib/neutral/Key.mjs.map +7 -0
  12. package/dist/lib/neutral/Obj.mjs +90 -0
  13. package/dist/lib/neutral/Obj.mjs.map +7 -0
  14. package/dist/lib/neutral/Order.mjs +12 -0
  15. package/dist/lib/neutral/Order.mjs.map +7 -0
  16. package/dist/lib/neutral/Query.mjs +26 -0
  17. package/dist/lib/neutral/Query.mjs.map +7 -0
  18. package/dist/lib/neutral/QueryResult.mjs +2 -0
  19. package/dist/lib/neutral/QueryResult.mjs.map +7 -0
  20. package/dist/lib/neutral/Ref.mjs +22 -0
  21. package/dist/lib/neutral/Ref.mjs.map +7 -0
  22. package/dist/lib/neutral/Relation.mjs +84 -0
  23. package/dist/lib/neutral/Relation.mjs.map +7 -0
  24. package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
  25. package/dist/lib/neutral/SchemaRegistry.mjs.map +7 -0
  26. package/dist/lib/neutral/Tag.mjs +25 -0
  27. package/dist/lib/neutral/Tag.mjs.map +7 -0
  28. package/dist/lib/neutral/Type.mjs +47 -0
  29. package/dist/lib/neutral/Type.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-2MTHJ5UW.mjs +203 -0
  31. package/dist/lib/neutral/chunk-2MTHJ5UW.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-3ZEAZF7T.mjs +23 -0
  33. package/dist/lib/neutral/chunk-3ZEAZF7T.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-4L6DOFXP.mjs +7 -0
  35. package/dist/lib/neutral/chunk-4L6DOFXP.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-4TT624YA.mjs +73 -0
  37. package/dist/lib/neutral/chunk-4TT624YA.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-62DWJ6CE.mjs +402 -0
  39. package/dist/lib/neutral/chunk-62DWJ6CE.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-6QPSGMEF.mjs +97 -0
  41. package/dist/lib/neutral/chunk-6QPSGMEF.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-ANHVGJI4.mjs +21 -0
  43. package/dist/lib/neutral/chunk-ANHVGJI4.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-CUDIBUM4.mjs +282 -0
  45. package/dist/lib/neutral/chunk-CUDIBUM4.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-HMOXCO27.mjs +40 -0
  47. package/dist/lib/neutral/chunk-HMOXCO27.mjs.map +7 -0
  48. package/dist/lib/neutral/chunk-IP2GHXWA.mjs +56 -0
  49. package/dist/lib/neutral/chunk-IP2GHXWA.mjs.map +7 -0
  50. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  51. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  52. package/dist/lib/neutral/chunk-KRHDMXSU.mjs +132 -0
  53. package/dist/lib/neutral/chunk-KRHDMXSU.mjs.map +7 -0
  54. package/dist/lib/neutral/chunk-NWUO5FKZ.mjs +39 -0
  55. package/dist/lib/neutral/chunk-NWUO5FKZ.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-OMUPQMLR.mjs +7 -0
  57. package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +7 -0
  58. package/dist/lib/neutral/chunk-ROKO4RKJ.mjs +42 -0
  59. package/dist/lib/neutral/chunk-ROKO4RKJ.mjs.map +7 -0
  60. package/dist/lib/neutral/chunk-RPB6V4BE.mjs +38 -0
  61. package/dist/lib/neutral/chunk-RPB6V4BE.mjs.map +7 -0
  62. package/dist/lib/neutral/chunk-SU2LVM7J.mjs +3846 -0
  63. package/dist/lib/neutral/chunk-SU2LVM7J.mjs.map +7 -0
  64. package/dist/lib/neutral/chunk-VB5HVDCA.mjs +287 -0
  65. package/dist/lib/neutral/chunk-VB5HVDCA.mjs.map +7 -0
  66. package/dist/lib/neutral/chunk-VR4A4WGG.mjs +249 -0
  67. package/dist/lib/neutral/chunk-VR4A4WGG.mjs.map +7 -0
  68. package/dist/lib/neutral/chunk-X2MPMYYN.mjs +13 -0
  69. package/dist/lib/neutral/chunk-X2MPMYYN.mjs.map +7 -0
  70. package/dist/lib/neutral/chunk-XK5OUUBY.mjs +157 -0
  71. package/dist/lib/neutral/chunk-XK5OUUBY.mjs.map +7 -0
  72. package/dist/lib/neutral/chunk-XMIDBDE6.mjs +142 -0
  73. package/dist/lib/neutral/chunk-XMIDBDE6.mjs.map +7 -0
  74. package/dist/lib/neutral/chunk-YQYMWZAD.mjs +67 -0
  75. package/dist/lib/neutral/chunk-YQYMWZAD.mjs.map +7 -0
  76. package/dist/lib/neutral/index.mjs +84 -0
  77. package/dist/lib/neutral/index.mjs.map +7 -0
  78. package/dist/lib/{node-esm → neutral}/internal/index.mjs +245 -125
  79. package/dist/lib/neutral/internal/index.mjs.map +7 -0
  80. package/dist/lib/neutral/meta.json +1 -0
  81. package/dist/lib/neutral/testing/index.mjs +366 -0
  82. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  83. package/dist/types/src/Annotation.d.ts +2 -0
  84. package/dist/types/src/Annotation.d.ts.map +1 -0
  85. package/dist/types/src/Database.d.ts +194 -0
  86. package/dist/types/src/Database.d.ts.map +1 -0
  87. package/dist/types/src/Entity.d.ts +142 -0
  88. package/dist/types/src/Entity.d.ts.map +1 -0
  89. package/dist/types/src/Entity.test.d.ts +2 -0
  90. package/dist/types/src/Entity.test.d.ts.map +1 -0
  91. package/dist/types/src/{errors.d.ts → Err.d.ts} +23 -31
  92. package/dist/types/src/Err.d.ts.map +1 -0
  93. package/dist/types/src/Filter.d.ts +120 -0
  94. package/dist/types/src/Filter.d.ts.map +1 -0
  95. package/dist/types/src/Format.d.ts +4 -0
  96. package/dist/types/src/Format.d.ts.map +1 -0
  97. package/dist/types/src/Hypergraph.d.ts +60 -0
  98. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  99. package/dist/types/src/JsonSchema.d.ts +9 -0
  100. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  101. package/dist/types/src/Key.d.ts +1 -0
  102. package/dist/types/src/Key.d.ts.map +1 -1
  103. package/dist/types/src/Obj.d.ts +302 -99
  104. package/dist/types/src/Obj.d.ts.map +1 -1
  105. package/dist/types/src/Obj.test.d.ts +2 -0
  106. package/dist/types/src/Obj.test.d.ts.map +1 -0
  107. package/dist/types/src/Order.d.ts +16 -0
  108. package/dist/types/src/Order.d.ts.map +1 -0
  109. package/dist/types/src/Query.d.ts +115 -0
  110. package/dist/types/src/Query.d.ts.map +1 -0
  111. package/dist/types/src/Query.test.d.ts +2 -0
  112. package/dist/types/src/Query.test.d.ts.map +1 -0
  113. package/dist/types/src/QueryResult.d.ts +80 -0
  114. package/dist/types/src/QueryResult.d.ts.map +1 -0
  115. package/dist/types/src/Ref.d.ts +13 -11
  116. package/dist/types/src/Ref.d.ts.map +1 -1
  117. package/dist/types/src/Relation.d.ts +242 -22
  118. package/dist/types/src/Relation.d.ts.map +1 -1
  119. package/dist/types/src/Relation.test.d.ts +2 -0
  120. package/dist/types/src/Relation.test.d.ts.map +1 -0
  121. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  122. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  123. package/dist/types/src/Tag.d.ts +17 -0
  124. package/dist/types/src/Tag.d.ts.map +1 -0
  125. package/dist/types/src/Type.d.ts +225 -72
  126. package/dist/types/src/Type.d.ts.map +1 -1
  127. package/dist/types/src/Type.test.d.ts +2 -0
  128. package/dist/types/src/Type.test.d.ts.map +1 -0
  129. package/dist/types/src/index.d.ts +15 -5
  130. package/dist/types/src/index.d.ts.map +1 -1
  131. package/dist/types/src/internal/annotations/annotations.d.ts +170 -0
  132. package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -0
  133. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +1 -0
  134. package/dist/types/src/internal/annotations/index.d.ts +3 -0
  135. package/dist/types/src/internal/annotations/index.d.ts.map +1 -0
  136. package/dist/types/src/internal/annotations/util.d.ts +27 -0
  137. package/dist/types/src/internal/annotations/util.d.ts.map +1 -0
  138. package/dist/types/src/internal/api/annotations.d.ts +23 -0
  139. package/dist/types/src/internal/api/annotations.d.ts.map +1 -0
  140. package/dist/types/src/internal/api/entity.d.ts +13 -0
  141. package/dist/types/src/internal/api/entity.d.ts.map +1 -0
  142. package/dist/types/src/internal/api/index.d.ts +15 -0
  143. package/dist/types/src/internal/api/index.d.ts.map +1 -0
  144. package/dist/types/src/internal/api/meta.d.ts +42 -0
  145. package/dist/types/src/internal/api/meta.d.ts.map +1 -0
  146. package/dist/types/src/internal/api/sorting.d.ts +24 -0
  147. package/dist/types/src/internal/api/sorting.d.ts.map +1 -0
  148. package/dist/types/src/internal/api/version.d.ts +42 -0
  149. package/dist/types/src/internal/api/version.d.ts.map +1 -0
  150. package/dist/types/src/internal/entities/entity.d.ts +20 -0
  151. package/dist/types/src/internal/entities/entity.d.ts.map +1 -0
  152. package/dist/types/src/internal/entities/index.d.ts +6 -0
  153. package/dist/types/src/internal/entities/index.d.ts.map +1 -0
  154. package/dist/types/src/internal/entities/model.d.ts +77 -0
  155. package/dist/types/src/internal/entities/model.d.ts.map +1 -0
  156. package/dist/types/src/internal/entities/object.d.ts +18 -0
  157. package/dist/types/src/internal/entities/object.d.ts.map +1 -0
  158. package/dist/types/src/internal/entities/relation.d.ts +62 -0
  159. package/dist/types/src/internal/entities/relation.d.ts.map +1 -0
  160. package/dist/types/src/internal/entities/util.d.ts +2 -0
  161. package/dist/types/src/internal/entities/util.d.ts.map +1 -0
  162. package/dist/types/src/internal/formats/format.d.ts +4 -2
  163. package/dist/types/src/internal/formats/format.d.ts.map +1 -1
  164. package/dist/types/src/internal/formats/select.d.ts +6 -4
  165. package/dist/types/src/internal/formats/select.d.ts.map +1 -1
  166. package/dist/types/src/internal/formats/string.d.ts +4 -0
  167. package/dist/types/src/internal/formats/string.d.ts.map +1 -1
  168. package/dist/types/src/internal/formats/types.d.ts +13 -9
  169. package/dist/types/src/internal/formats/types.d.ts.map +1 -1
  170. package/dist/types/src/internal/index.d.ts +7 -10
  171. package/dist/types/src/internal/index.d.ts.map +1 -1
  172. package/dist/types/src/internal/json-schema/annotations.d.ts.map +1 -0
  173. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +1 -0
  174. package/dist/types/src/internal/json-schema/index.d.ts +2 -0
  175. package/dist/types/src/internal/json-schema/index.d.ts.map +1 -1
  176. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -1
  177. package/dist/types/src/internal/json-schema/json-schema-type.d.ts +130 -29
  178. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -1
  179. package/dist/types/src/internal/{json → json-schema}/json-schema.d.ts +4 -2
  180. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -0
  181. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +1 -0
  182. package/dist/types/src/internal/object/clone.d.ts +8 -0
  183. package/dist/types/src/internal/object/clone.d.ts.map +1 -0
  184. package/dist/types/src/internal/object/common.d.ts.map +1 -1
  185. package/dist/types/src/internal/object/{create.d.ts → create-object.d.ts} +10 -11
  186. package/dist/types/src/internal/object/create-object.d.ts.map +1 -0
  187. package/dist/types/src/internal/object/create-object.test.d.ts +2 -0
  188. package/dist/types/src/internal/object/create-object.test.d.ts.map +1 -0
  189. package/dist/types/src/internal/object/deleted.d.ts +2 -2
  190. package/dist/types/src/internal/object/deleted.d.ts.map +1 -1
  191. package/dist/types/src/internal/object/ids.d.ts.map +1 -1
  192. package/dist/types/src/internal/object/index.d.ts +6 -11
  193. package/dist/types/src/internal/object/index.d.ts.map +1 -1
  194. package/dist/types/src/internal/object/json-serializer.d.ts +14 -9
  195. package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -1
  196. package/dist/types/src/internal/object/schema-validator.d.ts +1 -14
  197. package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -1
  198. package/dist/types/src/internal/object/set-value.d.ts +7 -0
  199. package/dist/types/src/internal/object/set-value.d.ts.map +1 -0
  200. package/dist/types/src/internal/object/set-value.test.d.ts +2 -0
  201. package/dist/types/src/internal/object/set-value.test.d.ts.map +1 -0
  202. package/dist/types/src/internal/object/snapshot.d.ts +6 -0
  203. package/dist/types/src/internal/object/snapshot.d.ts.map +1 -0
  204. package/dist/types/src/internal/object/typed-object.d.ts +8 -14
  205. package/dist/types/src/internal/object/typed-object.d.ts.map +1 -1
  206. package/dist/types/src/internal/proxy/change-context.d.ts +55 -0
  207. package/dist/types/src/internal/proxy/change-context.d.ts.map +1 -0
  208. package/dist/types/src/internal/proxy/change.test.d.ts +2 -0
  209. package/dist/types/src/internal/proxy/change.test.d.ts.map +1 -0
  210. package/dist/types/src/internal/proxy/define-hidden-property.d.ts +5 -0
  211. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +1 -0
  212. package/dist/types/src/internal/proxy/errors.d.ts +19 -0
  213. package/dist/types/src/internal/proxy/errors.d.ts.map +1 -0
  214. package/dist/types/src/internal/proxy/event-batch.d.ts +10 -0
  215. package/dist/types/src/internal/proxy/event-batch.d.ts.map +1 -0
  216. package/dist/types/src/internal/proxy/index.d.ts +14 -0
  217. package/dist/types/src/internal/proxy/index.d.ts.map +1 -0
  218. package/dist/types/src/internal/proxy/json-serializer.d.ts +6 -0
  219. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +1 -0
  220. package/dist/types/src/internal/proxy/make-object.d.ts +14 -0
  221. package/dist/types/src/internal/proxy/make-object.d.ts.map +1 -0
  222. package/dist/types/src/internal/proxy/ownership.d.ts +57 -0
  223. package/dist/types/src/internal/proxy/ownership.d.ts.map +1 -0
  224. package/dist/types/src/internal/proxy/proxy-types.d.ts +18 -0
  225. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +1 -0
  226. package/dist/types/src/internal/proxy/proxy-utils.d.ts +47 -0
  227. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +1 -0
  228. package/dist/types/src/internal/proxy/reactive-array.d.ts +8 -0
  229. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +1 -0
  230. package/dist/types/src/internal/proxy/reactive.d.ts +39 -0
  231. package/dist/types/src/internal/proxy/reactive.d.ts.map +1 -0
  232. package/dist/types/src/internal/proxy/schema-validator.d.ts +15 -0
  233. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +1 -0
  234. package/dist/types/src/internal/proxy/symbols.d.ts +3 -0
  235. package/dist/types/src/internal/proxy/symbols.d.ts.map +1 -0
  236. package/dist/types/src/internal/proxy/typed-handler.d.ts +15 -12
  237. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -1
  238. package/dist/types/src/internal/ref/ref-array.d.ts +4 -4
  239. package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -1
  240. package/dist/types/src/internal/ref/ref.d.ts +29 -17
  241. package/dist/types/src/internal/ref/ref.d.ts.map +1 -1
  242. package/dist/types/src/internal/schema/compose.d.ts +7 -0
  243. package/dist/types/src/internal/schema/compose.d.ts.map +1 -0
  244. package/dist/types/src/internal/schema/compose.test.d.ts.map +1 -0
  245. package/dist/types/src/internal/schema/echo-schema.d.ts +24 -12
  246. package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -1
  247. package/dist/types/src/internal/schema/index.d.ts +1 -4
  248. package/dist/types/src/internal/schema/index.d.ts.map +1 -1
  249. package/dist/types/src/internal/schema/persistent-schema.d.ts +20 -0
  250. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +1 -0
  251. package/dist/types/src/internal/types/base.d.ts +26 -0
  252. package/dist/types/src/internal/types/base.d.ts.map +1 -0
  253. package/dist/types/src/internal/types/entity.d.ts +37 -0
  254. package/dist/types/src/internal/types/entity.d.ts.map +1 -0
  255. package/dist/types/src/internal/types/index.d.ts +5 -2
  256. package/dist/types/src/internal/types/index.d.ts.map +1 -1
  257. package/dist/types/src/internal/{object → types}/meta.d.ts +17 -16
  258. package/dist/types/src/internal/types/meta.d.ts.map +1 -0
  259. package/dist/types/src/internal/types/typename.d.ts +13 -0
  260. package/dist/types/src/internal/types/typename.d.ts.map +1 -0
  261. package/dist/types/src/internal/{object → types}/version.d.ts +3 -2
  262. package/dist/types/src/internal/types/version.d.ts.map +1 -0
  263. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  264. package/dist/types/src/testing/index.d.ts +3 -3
  265. package/dist/types/src/testing/index.d.ts.map +1 -1
  266. package/dist/types/src/testing/test-data.d.ts +18 -0
  267. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  268. package/dist/types/src/testing/test-schema.d.ts +303 -0
  269. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  270. package/dist/types/src/testing/util.d.ts +21 -0
  271. package/dist/types/src/testing/util.d.ts.map +1 -0
  272. package/dist/types/tsconfig.tsbuildinfo +1 -1
  273. package/package.json +101 -65
  274. package/src/Annotation.ts +18 -0
  275. package/src/Database.ts +336 -0
  276. package/src/Entity.test.ts +22 -0
  277. package/src/Entity.ts +217 -0
  278. package/src/{errors.ts → Err.ts} +2 -2
  279. package/src/Filter.ts +376 -0
  280. package/src/Format.ts +9 -0
  281. package/src/Hypergraph.ts +74 -0
  282. package/src/JsonSchema.ts +16 -0
  283. package/src/Key.ts +3 -0
  284. package/src/Obj.test.ts +386 -0
  285. package/src/Obj.ts +449 -275
  286. package/src/Order.ts +44 -0
  287. package/src/Query.test.ts +465 -0
  288. package/src/Query.ts +296 -0
  289. package/src/QueryResult.ts +106 -0
  290. package/src/Ref.ts +26 -9
  291. package/src/Relation.test.ts +82 -0
  292. package/src/Relation.ts +411 -60
  293. package/src/SchemaRegistry.ts +105 -0
  294. package/src/{query/tag.ts → Tag.ts} +10 -7
  295. package/src/Type.test.ts +52 -0
  296. package/src/Type.ts +361 -114
  297. package/src/index.ts +16 -6
  298. package/src/internal/README.md +102 -0
  299. package/src/internal/{ast → annotations}/annotations.test.ts +18 -20
  300. package/src/internal/annotations/annotations.ts +460 -0
  301. package/src/internal/annotations/index.ts +6 -0
  302. package/src/internal/annotations/util.ts +72 -0
  303. package/src/internal/api/annotations.ts +60 -0
  304. package/src/internal/api/entity.ts +29 -0
  305. package/src/internal/api/index.ts +19 -0
  306. package/src/internal/api/meta.ts +88 -0
  307. package/src/internal/api/sorting.ts +53 -0
  308. package/src/internal/api/version.ts +96 -0
  309. package/src/internal/entities/entity.ts +126 -0
  310. package/src/internal/entities/index.ts +9 -0
  311. package/src/internal/entities/model.ts +134 -0
  312. package/src/internal/entities/object.ts +58 -0
  313. package/src/internal/entities/relation.ts +171 -0
  314. package/src/internal/entities/util.ts +33 -0
  315. package/src/internal/formats/date.test.ts +1 -1
  316. package/src/internal/formats/date.ts +5 -5
  317. package/src/internal/formats/format.test.ts +6 -6
  318. package/src/internal/formats/format.ts +8 -6
  319. package/src/internal/formats/number.ts +5 -5
  320. package/src/internal/formats/object.ts +4 -4
  321. package/src/internal/formats/select.ts +6 -4
  322. package/src/internal/formats/string.ts +14 -9
  323. package/src/internal/formats/types.ts +53 -42
  324. package/src/internal/index.ts +30 -13
  325. package/src/internal/{json → json-schema}/annotations.ts +1 -1
  326. package/src/internal/json-schema/index.ts +2 -0
  327. package/src/internal/json-schema/json-schema-normalize.ts +4 -2
  328. package/src/internal/json-schema/json-schema-type.ts +35 -35
  329. package/src/internal/{json → json-schema}/json-schema.test.ts +73 -69
  330. package/src/internal/{json → json-schema}/json-schema.ts +27 -14
  331. package/src/internal/object/clone.ts +48 -0
  332. package/src/internal/object/common.ts +3 -4
  333. package/src/internal/object/{create.test.ts → create-object.test.ts} +31 -33
  334. package/src/internal/object/{create.ts → create-object.ts} +36 -37
  335. package/src/internal/object/deleted.ts +6 -6
  336. package/src/internal/object/ids.ts +1 -1
  337. package/src/internal/object/index.ts +6 -11
  338. package/src/internal/object/inspect.ts +5 -7
  339. package/src/internal/object/json-serializer.test.ts +36 -37
  340. package/src/internal/object/json-serializer.ts +65 -102
  341. package/src/internal/object/schema-validator.test.ts +3 -7
  342. package/src/internal/object/schema-validator.ts +2 -237
  343. package/src/internal/object/set-value.test.ts +281 -0
  344. package/src/internal/object/set-value.ts +165 -0
  345. package/src/internal/object/snapshot.ts +70 -0
  346. package/src/internal/object/typed-object.test.ts +11 -11
  347. package/src/internal/object/typed-object.ts +8 -66
  348. package/src/internal/proxy/change-context.ts +138 -0
  349. package/src/internal/proxy/change.test.ts +519 -0
  350. package/src/internal/proxy/define-hidden-property.ts +14 -0
  351. package/src/internal/proxy/errors.ts +42 -0
  352. package/src/internal/proxy/event-batch.ts +44 -0
  353. package/src/internal/proxy/handler.test.ts +51 -91
  354. package/src/internal/proxy/index.ts +17 -0
  355. package/src/internal/proxy/json-serializer.ts +87 -0
  356. package/src/internal/proxy/make-object.ts +96 -0
  357. package/src/internal/proxy/ownership.ts +253 -0
  358. package/src/internal/proxy/proxy-types.ts +23 -0
  359. package/src/internal/proxy/proxy-utils.ts +150 -0
  360. package/src/internal/proxy/reactive-array.ts +71 -0
  361. package/src/internal/proxy/reactive.ts +69 -0
  362. package/src/internal/proxy/schema-validator.ts +244 -0
  363. package/src/internal/proxy/schema.test.ts +27 -18
  364. package/src/internal/proxy/symbols.ts +7 -0
  365. package/src/internal/proxy/typed-handler.test.ts +260 -48
  366. package/src/internal/proxy/typed-handler.ts +275 -61
  367. package/src/internal/proxy/typed-object.test.ts +54 -38
  368. package/src/internal/ref/ref-array.ts +4 -4
  369. package/src/internal/ref/ref.test.ts +10 -9
  370. package/src/internal/ref/ref.ts +83 -55
  371. package/src/internal/{projection → schema}/compose.test.ts +8 -9
  372. package/src/internal/{projection → schema}/compose.ts +13 -8
  373. package/src/internal/schema/echo-schema.ts +73 -33
  374. package/src/internal/schema/index.ts +1 -4
  375. package/src/internal/schema/manipulation.ts +1 -1
  376. package/src/internal/schema/persistent-schema.ts +27 -0
  377. package/src/internal/types/base.ts +43 -0
  378. package/src/internal/types/entity.ts +54 -0
  379. package/src/internal/types/index.ts +5 -2
  380. package/src/internal/types/meta.ts +65 -0
  381. package/src/internal/types/typename.ts +45 -0
  382. package/src/internal/types/version.ts +20 -0
  383. package/src/testing/api.test.ts +126 -0
  384. package/src/testing/index.ts +3 -3
  385. package/src/testing/test-data.ts +130 -0
  386. package/src/testing/test-schema.ts +238 -0
  387. package/src/testing/util.ts +85 -0
  388. package/dist/lib/browser/chunk-JUTFUT73.mjs +0 -175
  389. package/dist/lib/browser/chunk-JUTFUT73.mjs.map +0 -7
  390. package/dist/lib/browser/chunk-KEBVBR65.mjs +0 -3727
  391. package/dist/lib/browser/chunk-KEBVBR65.mjs.map +0 -7
  392. package/dist/lib/browser/chunk-WO76TDT6.mjs +0 -814
  393. package/dist/lib/browser/chunk-WO76TDT6.mjs.map +0 -7
  394. package/dist/lib/browser/index.mjs +0 -35
  395. package/dist/lib/browser/internal/index.mjs +0 -336
  396. package/dist/lib/browser/meta.json +0 -1
  397. package/dist/lib/browser/query/index.mjs +0 -15
  398. package/dist/lib/browser/testing/index.mjs +0 -283
  399. package/dist/lib/browser/testing/index.mjs.map +0 -7
  400. package/dist/lib/node-esm/chunk-DWZYQ2UR.mjs +0 -3727
  401. package/dist/lib/node-esm/chunk-DWZYQ2UR.mjs.map +0 -7
  402. package/dist/lib/node-esm/chunk-KBD3A2I6.mjs +0 -175
  403. package/dist/lib/node-esm/chunk-KBD3A2I6.mjs.map +0 -7
  404. package/dist/lib/node-esm/chunk-ZSSII3JW.mjs +0 -814
  405. package/dist/lib/node-esm/chunk-ZSSII3JW.mjs.map +0 -7
  406. package/dist/lib/node-esm/index.mjs +0 -35
  407. package/dist/lib/node-esm/meta.json +0 -1
  408. package/dist/lib/node-esm/query/index.mjs +0 -15
  409. package/dist/lib/node-esm/testing/index.mjs +0 -283
  410. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  411. package/dist/types/src/errors.d.ts.map +0 -1
  412. package/dist/types/src/internal/ast/annotation-helper.d.ts +0 -8
  413. package/dist/types/src/internal/ast/annotation-helper.d.ts.map +0 -1
  414. package/dist/types/src/internal/ast/annotations.d.ts +0 -131
  415. package/dist/types/src/internal/ast/annotations.d.ts.map +0 -1
  416. package/dist/types/src/internal/ast/annotations.test.d.ts.map +0 -1
  417. package/dist/types/src/internal/ast/entity-kind.d.ts +0 -10
  418. package/dist/types/src/internal/ast/entity-kind.d.ts.map +0 -1
  419. package/dist/types/src/internal/ast/index.d.ts +0 -5
  420. package/dist/types/src/internal/ast/index.d.ts.map +0 -1
  421. package/dist/types/src/internal/ast/types.d.ts +0 -6
  422. package/dist/types/src/internal/ast/types.d.ts.map +0 -1
  423. package/dist/types/src/internal/json/annotations.d.ts.map +0 -1
  424. package/dist/types/src/internal/json/effect-schema.test.d.ts.map +0 -1
  425. package/dist/types/src/internal/json/index.d.ts +0 -2
  426. package/dist/types/src/internal/json/index.d.ts.map +0 -1
  427. package/dist/types/src/internal/json/json-schema.d.ts.map +0 -1
  428. package/dist/types/src/internal/json/json-schema.test.d.ts.map +0 -1
  429. package/dist/types/src/internal/object/accessors.d.ts +0 -37
  430. package/dist/types/src/internal/object/accessors.d.ts.map +0 -1
  431. package/dist/types/src/internal/object/create.d.ts.map +0 -1
  432. package/dist/types/src/internal/object/create.test.d.ts +0 -2
  433. package/dist/types/src/internal/object/create.test.d.ts.map +0 -1
  434. package/dist/types/src/internal/object/entity.d.ts +0 -33
  435. package/dist/types/src/internal/object/entity.d.ts.map +0 -1
  436. package/dist/types/src/internal/object/expando.d.ts +0 -14
  437. package/dist/types/src/internal/object/expando.d.ts.map +0 -1
  438. package/dist/types/src/internal/object/meta.d.ts.map +0 -1
  439. package/dist/types/src/internal/object/model.d.ts +0 -117
  440. package/dist/types/src/internal/object/model.d.ts.map +0 -1
  441. package/dist/types/src/internal/object/relation.d.ts +0 -17
  442. package/dist/types/src/internal/object/relation.d.ts.map +0 -1
  443. package/dist/types/src/internal/object/typename.d.ts +0 -15
  444. package/dist/types/src/internal/object/typename.d.ts.map +0 -1
  445. package/dist/types/src/internal/object/version.d.ts.map +0 -1
  446. package/dist/types/src/internal/projection/compose.d.ts +0 -6
  447. package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
  448. package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
  449. package/dist/types/src/internal/projection/index.d.ts +0 -2
  450. package/dist/types/src/internal/projection/index.d.ts.map +0 -1
  451. package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
  452. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
  453. package/dist/types/src/internal/query/index.d.ts +0 -2
  454. package/dist/types/src/internal/query/index.d.ts.map +0 -1
  455. package/dist/types/src/internal/query/query.d.ts +0 -17
  456. package/dist/types/src/internal/query/query.d.ts.map +0 -1
  457. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +0 -18
  458. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
  459. package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
  460. package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
  461. package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
  462. package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
  463. package/dist/types/src/internal/testing/index.d.ts +0 -3
  464. package/dist/types/src/internal/testing/index.d.ts.map +0 -1
  465. package/dist/types/src/internal/testing/types.d.ts +0 -455
  466. package/dist/types/src/internal/testing/types.d.ts.map +0 -1
  467. package/dist/types/src/internal/testing/utils.d.ts +0 -10
  468. package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
  469. package/dist/types/src/internal/types/types.d.ts +0 -79
  470. package/dist/types/src/internal/types/types.d.ts.map +0 -1
  471. package/dist/types/src/internal/types/types.test.d.ts +0 -2
  472. package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
  473. package/dist/types/src/internal/types/util.d.ts +0 -5
  474. package/dist/types/src/internal/types/util.d.ts.map +0 -1
  475. package/dist/types/src/query/index.d.ts +0 -3
  476. package/dist/types/src/query/index.d.ts.map +0 -1
  477. package/dist/types/src/query/query.d.ts +0 -248
  478. package/dist/types/src/query/query.d.ts.map +0 -1
  479. package/dist/types/src/query/query.test.d.ts +0 -2
  480. package/dist/types/src/query/query.test.d.ts.map +0 -1
  481. package/dist/types/src/query/tag.d.ts +0 -17
  482. package/dist/types/src/query/tag.d.ts.map +0 -1
  483. package/dist/types/src/testing/echo-schema.d.ts +0 -7
  484. package/dist/types/src/testing/echo-schema.d.ts.map +0 -1
  485. package/dist/types/src/testing/types.d.ts +0 -113
  486. package/dist/types/src/testing/types.d.ts.map +0 -1
  487. package/src/internal/ast/annotation-helper.ts +0 -22
  488. package/src/internal/ast/annotations.ts +0 -226
  489. package/src/internal/ast/entity-kind.ts +0 -15
  490. package/src/internal/ast/index.ts +0 -8
  491. package/src/internal/ast/types.ts +0 -17
  492. package/src/internal/json/index.ts +0 -5
  493. package/src/internal/object/accessors.ts +0 -153
  494. package/src/internal/object/entity.ts +0 -248
  495. package/src/internal/object/expando.ts +0 -21
  496. package/src/internal/object/meta.ts +0 -61
  497. package/src/internal/object/model.ts +0 -170
  498. package/src/internal/object/relation.ts +0 -24
  499. package/src/internal/object/typename.ts +0 -61
  500. package/src/internal/object/version.ts +0 -22
  501. package/src/internal/projection/index.ts +0 -5
  502. package/src/internal/proxy/reactive-object.ts +0 -108
  503. package/src/internal/query/index.ts +0 -5
  504. package/src/internal/query/query.ts +0 -23
  505. package/src/internal/schema/runtime-schema-registry.ts +0 -78
  506. package/src/internal/schema/snapshot.ts +0 -25
  507. package/src/internal/schema/stored-schema.ts +0 -26
  508. package/src/internal/testing/index.ts +0 -6
  509. package/src/internal/testing/types.ts +0 -211
  510. package/src/internal/testing/utils.ts +0 -54
  511. package/src/internal/types/types.test.ts +0 -48
  512. package/src/internal/types/types.ts +0 -176
  513. package/src/internal/types/util.ts +0 -9
  514. package/src/query/index.ts +0 -6
  515. package/src/query/query.test.ts +0 -401
  516. package/src/query/query.ts +0 -789
  517. package/src/test/api.test.ts +0 -180
  518. package/src/testing/echo-schema.ts +0 -39
  519. package/src/testing/types.ts +0 -91
  520. /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
  521. /package/dist/lib/{browser/internal/index.mjs.map → neutral/Database.mjs.map} +0 -0
  522. /package/dist/lib/{browser/query/index.mjs.map → neutral/Entity.mjs.map} +0 -0
  523. /package/dist/lib/{node-esm/index.mjs.map → neutral/Err.mjs.map} +0 -0
  524. /package/dist/lib/{node-esm/internal/index.mjs.map → neutral/Filter.mjs.map} +0 -0
  525. /package/dist/lib/{node-esm/query/index.mjs.map → neutral/Format.mjs.map} +0 -0
  526. /package/dist/types/src/internal/{ast → annotations}/annotations.test.d.ts +0 -0
  527. /package/dist/types/src/internal/{json → json-schema}/annotations.d.ts +0 -0
  528. /package/dist/types/src/internal/{json → json-schema}/effect-schema.test.d.ts +0 -0
  529. /package/dist/types/src/internal/{json → json-schema}/json-schema.test.d.ts +0 -0
  530. /package/dist/types/src/internal/{projection → schema}/compose.test.d.ts +0 -0
  531. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
  532. /package/src/internal/{json → json-schema}/effect-schema.test.ts +0 -0
@@ -1,814 +0,0 @@
1
- import "@dxos/node-std/globals";
2
- import {
3
- EchoObject,
4
- EchoRelation,
5
- EntityKind,
6
- EntityKindId,
7
- Expando,
8
- Format,
9
- JsonSchemaType,
10
- LabelAnnotation,
11
- MetaId,
12
- ObjectVersionId,
13
- Ref,
14
- RefArray,
15
- VersionTypeId,
16
- __export,
17
- getDescription,
18
- getLabel,
19
- getMeta,
20
- getObjectDXN,
21
- getSchema,
22
- getSchemaDXN,
23
- getSchemaTypename,
24
- getSchemaVersion,
25
- getType,
26
- getTypeAnnotation,
27
- getTypeReference,
28
- isDeleted,
29
- isInstanceOf,
30
- isMutable,
31
- live,
32
- objectFromJSON,
33
- objectToJSON,
34
- setDescription,
35
- setLabel,
36
- toEffectSchema,
37
- toJsonSchema
38
- } from "./chunk-KEBVBR65.mjs";
39
-
40
- // src/query/query.ts
41
- import * as Match from "effect/Match";
42
- import * as Schema from "effect/Schema";
43
- import { raise } from "@dxos/debug";
44
- import { assertArgument } from "@dxos/invariant";
45
- import { DXN, ObjectId } from "@dxos/keys";
46
-
47
- // src/Ref.ts
48
- var Ref_exports = {};
49
- __export(Ref_exports, {
50
- Array: () => Array2,
51
- fromDXN: () => fromDXN,
52
- isRef: () => isRef,
53
- make: () => make
54
- });
55
- var Array2 = RefArray;
56
- var isRef = Ref.isRef;
57
- var make = Ref.make;
58
- var fromDXN = Ref.fromDXN;
59
-
60
- // src/query/query.ts
61
- var OrderClass = class _OrderClass {
62
- ast;
63
- static variance = {};
64
- static is(value2) {
65
- return typeof value2 === "object" && value2 !== null && "~Order" in value2;
66
- }
67
- constructor(ast) {
68
- this.ast = ast;
69
- }
70
- "~Order" = _OrderClass.variance;
71
- };
72
- (function(Order2) {
73
- Order2.natural = new OrderClass({
74
- kind: "natural"
75
- });
76
- Order2.property = (property, direction) => new OrderClass({
77
- kind: "property",
78
- property,
79
- direction
80
- });
81
- })(Order || (Order = {}));
82
- var FilterClass = class _FilterClass {
83
- ast;
84
- static variance = {};
85
- static is(value2) {
86
- return typeof value2 === "object" && value2 !== null && "~Filter" in value2;
87
- }
88
- static fromAst(ast) {
89
- return new _FilterClass(ast);
90
- }
91
- static everything() {
92
- return new _FilterClass({
93
- type: "object",
94
- typename: null,
95
- props: {}
96
- });
97
- }
98
- static nothing() {
99
- return new _FilterClass({
100
- type: "not",
101
- filter: {
102
- type: "object",
103
- typename: null,
104
- props: {}
105
- }
106
- });
107
- }
108
- static relation() {
109
- return new _FilterClass({
110
- type: "object",
111
- typename: null,
112
- props: {}
113
- });
114
- }
115
- static ids(...ids) {
116
- assertArgument(ids.every((id) => ObjectId.isValid(id)), "ids", "ids must be valid");
117
- if (ids.length === 0) {
118
- return Filter.nothing();
119
- }
120
- return new _FilterClass({
121
- type: "object",
122
- typename: null,
123
- id: ids,
124
- props: {}
125
- });
126
- }
127
- static type(schema, props) {
128
- const dxn = getTypeDXNFromSpecifier(schema);
129
- return new _FilterClass({
130
- type: "object",
131
- typename: dxn.toString(),
132
- ...propsFilterToAst(props ?? {})
133
- });
134
- }
135
- static typename(typename) {
136
- assertArgument(!typename.startsWith("dxn:"), "typename", "Typename must no be qualified");
137
- return new _FilterClass({
138
- type: "object",
139
- typename: DXN.fromTypename(typename).toString(),
140
- props: {}
141
- });
142
- }
143
- static typeDXN(dxn) {
144
- return new _FilterClass({
145
- type: "object",
146
- typename: dxn.toString(),
147
- props: {}
148
- });
149
- }
150
- static tag(tag) {
151
- return new _FilterClass({
152
- type: "tag",
153
- tag
154
- });
155
- }
156
- static props(props) {
157
- return new _FilterClass({
158
- type: "object",
159
- typename: null,
160
- ...propsFilterToAst(props)
161
- });
162
- }
163
- static text(text, options) {
164
- return new _FilterClass({
165
- type: "text-search",
166
- text,
167
- searchKind: options?.type
168
- });
169
- }
170
- static foreignKeys(schema, keys) {
171
- const dxn = getTypeDXNFromSpecifier(schema);
172
- return new _FilterClass({
173
- type: "object",
174
- typename: dxn.toString(),
175
- props: {},
176
- foreignKeys: keys
177
- });
178
- }
179
- static eq(value2) {
180
- if (!isRef(value2) && typeof value2 === "object" && value2 !== null) {
181
- throw new TypeError("Cannot use object as a value for eq filter");
182
- }
183
- return new _FilterClass({
184
- type: "compare",
185
- operator: "eq",
186
- value: isRef(value2) ? value2.noInline().encode() : value2
187
- });
188
- }
189
- static neq(value2) {
190
- return new _FilterClass({
191
- type: "compare",
192
- operator: "neq",
193
- value: value2
194
- });
195
- }
196
- static gt(value2) {
197
- return new _FilterClass({
198
- type: "compare",
199
- operator: "gt",
200
- value: value2
201
- });
202
- }
203
- static gte(value2) {
204
- return new _FilterClass({
205
- type: "compare",
206
- operator: "gte",
207
- value: value2
208
- });
209
- }
210
- static lt(value2) {
211
- return new _FilterClass({
212
- type: "compare",
213
- operator: "lt",
214
- value: value2
215
- });
216
- }
217
- static lte(value2) {
218
- return new _FilterClass({
219
- type: "compare",
220
- operator: "lte",
221
- value: value2
222
- });
223
- }
224
- static in(...values) {
225
- return new _FilterClass({
226
- type: "in",
227
- values
228
- });
229
- }
230
- static contains(value2) {
231
- return new _FilterClass({
232
- type: "contains",
233
- value: value2
234
- });
235
- }
236
- static between(from, to) {
237
- return new _FilterClass({
238
- type: "range",
239
- from,
240
- to
241
- });
242
- }
243
- static not(filter) {
244
- return new _FilterClass({
245
- type: "not",
246
- filter: filter.ast
247
- });
248
- }
249
- static and(...filters) {
250
- return new _FilterClass({
251
- type: "and",
252
- filters: filters.map((f) => f.ast)
253
- });
254
- }
255
- static or(...filters) {
256
- return new _FilterClass({
257
- type: "or",
258
- filters: filters.map((f) => f.ast)
259
- });
260
- }
261
- constructor(ast) {
262
- this.ast = ast;
263
- }
264
- "~Filter" = _FilterClass.variance;
265
- };
266
- var Filter = FilterClass;
267
- var propsFilterToAst = (predicates) => {
268
- let idFilter;
269
- if ("id" in predicates) {
270
- assertArgument(typeof predicates.id === "string" || Array.isArray(predicates.id), "predicates.id", "invalid id filter");
271
- idFilter = typeof predicates.id === "string" ? [
272
- predicates.id
273
- ] : predicates.id;
274
- Schema.Array(ObjectId).pipe(Schema.validateSync)(idFilter);
275
- }
276
- return {
277
- id: idFilter,
278
- props: Object.fromEntries(Object.entries(predicates).filter(([prop, _value]) => prop !== "id").map(([prop, predicate]) => [
279
- prop,
280
- processPredicate(predicate)
281
- ]))
282
- };
283
- };
284
- var processPredicate = (predicate) => {
285
- return Match.value(predicate).pipe(
286
- Match.withReturnType(),
287
- Match.when(Filter.is, (predicate2) => predicate2.ast),
288
- // TODO(wittjosiah): Add support for array predicates.
289
- Match.when(Array.isArray, (_predicate) => {
290
- throw new Error("Array predicates are not yet supported.");
291
- }),
292
- Match.when((predicate2) => !isRef(predicate2) && typeof predicate2 === "object" && predicate2 !== null, (predicate2) => {
293
- const nestedProps = Object.fromEntries(Object.entries(predicate2).map(([key, value2]) => [
294
- key,
295
- processPredicate(value2)
296
- ]));
297
- return {
298
- type: "object",
299
- typename: null,
300
- props: nestedProps
301
- };
302
- }),
303
- Match.orElse((value2) => Filter.eq(value2).ast)
304
- );
305
- };
306
- var QueryClass = class _QueryClass {
307
- ast;
308
- static variance = {};
309
- static is(value2) {
310
- return typeof value2 === "object" && value2 !== null && "~Query" in value2;
311
- }
312
- static fromAst(ast) {
313
- return new _QueryClass(ast);
314
- }
315
- static select(filter) {
316
- return new _QueryClass({
317
- type: "select",
318
- filter: filter.ast
319
- });
320
- }
321
- static type(schema, predicates) {
322
- return new _QueryClass({
323
- type: "select",
324
- filter: FilterClass.type(schema, predicates).ast
325
- });
326
- }
327
- static all(...queries) {
328
- if (queries.length === 0) {
329
- throw new TypeError("Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())");
330
- }
331
- return new _QueryClass({
332
- type: "union",
333
- queries: queries.map((q) => q.ast)
334
- });
335
- }
336
- static without(source, exclude) {
337
- return new _QueryClass({
338
- type: "set-difference",
339
- source: source.ast,
340
- exclude: exclude.ast
341
- });
342
- }
343
- constructor(ast) {
344
- this.ast = ast;
345
- }
346
- "~Query" = _QueryClass.variance;
347
- select(filter) {
348
- if (Filter.is(filter)) {
349
- return new _QueryClass({
350
- type: "filter",
351
- selection: this.ast,
352
- filter: filter.ast
353
- });
354
- } else {
355
- return new _QueryClass({
356
- type: "filter",
357
- selection: this.ast,
358
- filter: FilterClass.props(filter).ast
359
- });
360
- }
361
- }
362
- reference(key) {
363
- return new _QueryClass({
364
- type: "reference-traversal",
365
- anchor: this.ast,
366
- property: key
367
- });
368
- }
369
- referencedBy(target, key) {
370
- const dxn = getTypeDXNFromSpecifier(target);
371
- return new _QueryClass({
372
- type: "incoming-references",
373
- anchor: this.ast,
374
- property: key,
375
- typename: dxn.toString()
376
- });
377
- }
378
- sourceOf(relation, predicates) {
379
- return new _QueryClass({
380
- type: "relation",
381
- anchor: this.ast,
382
- direction: "outgoing",
383
- filter: FilterClass.type(relation, predicates).ast
384
- });
385
- }
386
- targetOf(relation, predicates) {
387
- return new _QueryClass({
388
- type: "relation",
389
- anchor: this.ast,
390
- direction: "incoming",
391
- filter: FilterClass.type(relation, predicates).ast
392
- });
393
- }
394
- source() {
395
- return new _QueryClass({
396
- type: "relation-traversal",
397
- anchor: this.ast,
398
- direction: "source"
399
- });
400
- }
401
- target() {
402
- return new _QueryClass({
403
- type: "relation-traversal",
404
- anchor: this.ast,
405
- direction: "target"
406
- });
407
- }
408
- orderBy(...order) {
409
- return new _QueryClass({
410
- type: "order",
411
- query: this.ast,
412
- order: order.map((o) => o.ast)
413
- });
414
- }
415
- options(options) {
416
- return new _QueryClass({
417
- type: "options",
418
- query: this.ast,
419
- options
420
- });
421
- }
422
- };
423
- var Query = QueryClass;
424
- var getTypeDXNFromSpecifier = (input) => {
425
- if (Schema.isSchema(input)) {
426
- return getTypeReference(input)?.toDXN() ?? raise(new TypeError("Schema has no DXN"));
427
- } else {
428
- assertArgument(typeof input === "string", "input");
429
- assertArgument(!input.startsWith("dxn:"), "input");
430
- return DXN.fromTypename(input);
431
- }
432
- };
433
- var Order;
434
-
435
- // src/query/tag.ts
436
- var tag_exports = {};
437
- __export(tag_exports, {
438
- Tag: () => Tag,
439
- createTagList: () => createTagList,
440
- findTagByLabel: () => findTagByLabel,
441
- make: () => make3,
442
- sortTags: () => sortTags
443
- });
444
- import * as Schema3 from "effect/Schema";
445
-
446
- // src/Obj.ts
447
- var Obj_exports = {};
448
- __export(Obj_exports, {
449
- Any: () => Any,
450
- Meta: () => Meta,
451
- VersionTypeId: () => VersionTypeId2,
452
- clone: () => clone,
453
- compareVersions: () => compareVersions,
454
- decodeVersion: () => decodeVersion,
455
- deleteKeys: () => deleteKeys,
456
- encodeVersion: () => encodeVersion,
457
- fromJSON: () => fromJSON,
458
- getDXN: () => getDXN2,
459
- getDescription: () => getDescription2,
460
- getKeys: () => getKeys,
461
- getLabel: () => getLabel2,
462
- getMeta: () => getMeta3,
463
- getSchema: () => getSchema2,
464
- getSnapshot: () => getSnapshot2,
465
- getTypeDXN: () => getTypeDXN,
466
- getTypename: () => getTypename2,
467
- instanceOf: () => instanceOf,
468
- isDeleted: () => isDeleted2,
469
- isObject: () => isObject,
470
- isVersion: () => isVersion,
471
- make: () => make2,
472
- setDescription: () => setDescription2,
473
- setLabel: () => setLabel2,
474
- sort: () => sort,
475
- sortByLabel: () => sortByLabel,
476
- sortByTypename: () => sortByTypename,
477
- toJSON: () => toJSON,
478
- version: () => version,
479
- versionValid: () => versionValid
480
- });
481
- import * as Function from "effect/Function";
482
- import * as Schema2 from "effect/Schema";
483
- import { assertArgument as assertArgument2, invariant as invariant2 } from "@dxos/invariant";
484
- import * as LiveObject from "@dxos/live-object";
485
- import { assumeType, deepMapValues } from "@dxos/util";
486
-
487
- // src/Type.ts
488
- var Type_exports = {};
489
- __export(Type_exports, {
490
- DXN: () => DXN2,
491
- Expando: () => Expando2,
492
- Format: () => Format,
493
- JsonSchema: () => JsonSchemaType,
494
- Kind: () => Kind,
495
- KindId: () => KindId,
496
- Obj: () => Obj,
497
- ObjectId: () => ObjectId2,
498
- Ref: () => Ref2,
499
- Relation: () => Relation,
500
- SpaceId: () => SpaceId,
501
- getDXN: () => getDXN,
502
- getMeta: () => getMeta2,
503
- getTypename: () => getTypename,
504
- getVersion: () => getVersion,
505
- isMutable: () => isMutable2,
506
- toEffectSchema: () => toEffectSchema,
507
- toJsonSchema: () => toJsonSchema
508
- });
509
- import { invariant } from "@dxos/invariant";
510
- import { SpaceId, ObjectId as ObjectId2, DXN as DXN2 } from "@dxos/keys";
511
- var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Type.ts";
512
- var KindId = EntityKindId;
513
- var Kind = EntityKind;
514
- var Obj = EchoObject;
515
- var Expando2 = Expando;
516
- var Relation = EchoRelation;
517
- var Ref2 = Ref;
518
- var getDXN = (schema) => {
519
- return getSchemaDXN(schema);
520
- };
521
- var getTypename = (schema) => {
522
- const typename = getSchemaTypename(schema);
523
- invariant(typeof typename === "string" && !typename.startsWith("dxn:"), "Invalid typename", {
524
- F: __dxlog_file,
525
- L: 211,
526
- S: void 0,
527
- A: [
528
- "typeof typename === 'string' && !typename.startsWith('dxn:')",
529
- "'Invalid typename'"
530
- ]
531
- });
532
- return typename;
533
- };
534
- var getVersion = (schema) => {
535
- const version2 = getSchemaVersion(schema);
536
- invariant(typeof version2 === "string" && version2.match(/^\d+\.\d+\.\d+$/), "Invalid version", {
537
- F: __dxlog_file,
538
- L: 221,
539
- S: void 0,
540
- A: [
541
- "typeof version === 'string' && version.match(/^\\d+\\.\\d+\\.\\d+$/)",
542
- "'Invalid version'"
543
- ]
544
- });
545
- return version2;
546
- };
547
- var isMutable2 = isMutable;
548
- var getMeta2 = (schema) => {
549
- return getTypeAnnotation(schema);
550
- };
551
-
552
- // src/Obj.ts
553
- var __dxlog_file2 = "/__w/dxos/dxos/packages/core/echo/echo/src/Obj.ts";
554
- var Any = Schema2.Struct({}).pipe(Obj({
555
- typename: "dxos.org/types/Any",
556
- version: "0.1.0"
557
- }));
558
- var Meta = MetaId;
559
- var DEFAULT_META = {
560
- keys: []
561
- };
562
- var make2 = (schema, props, meta) => {
563
- assertArgument2(getTypeAnnotation(schema)?.kind === EntityKind.Object, "schema", "Expected an object schema");
564
- if (props[MetaId] != null) {
565
- meta = {
566
- ...structuredClone(DEFAULT_META),
567
- ...props[MetaId]
568
- };
569
- delete props[MetaId];
570
- }
571
- const filterUndefined = Object.fromEntries(Object.entries(props).filter(([_, v]) => v !== void 0));
572
- return live(schema, filterUndefined, {
573
- keys: [],
574
- ...meta
575
- });
576
- };
577
- var isObject = (obj) => {
578
- assumeType(obj);
579
- return typeof obj === "object" && obj !== null && obj[EntityKindId] === EntityKind.Object;
580
- };
581
- var instanceOf = (...args) => {
582
- if (args.length === 1) {
583
- return (obj) => isInstanceOf(args[0], obj);
584
- }
585
- return isInstanceOf(args[0], args[1]);
586
- };
587
- var getSchema2 = getSchema;
588
- var getDXN2 = (obj) => {
589
- assertArgument2(!Schema2.isSchema(obj), "obj", "Object should not be a schema.");
590
- const dxn = getObjectDXN(obj);
591
- invariant2(dxn != null, "Invalid object.", {
592
- F: __dxlog_file2,
593
- L: 136,
594
- S: void 0,
595
- A: [
596
- "dxn != null",
597
- "'Invalid object.'"
598
- ]
599
- });
600
- return dxn;
601
- };
602
- var getTypeDXN = getType;
603
- var getTypename2 = (obj) => {
604
- const schema = getSchema2(obj);
605
- if (schema == null) {
606
- return getType(obj)?.asTypeDXN()?.type;
607
- }
608
- return getSchemaTypename(schema);
609
- };
610
- var getMeta3 = (obj) => {
611
- const meta = getMeta(obj);
612
- invariant2(meta != null, "Invalid object.", {
613
- F: __dxlog_file2,
614
- L: 164,
615
- S: void 0,
616
- A: [
617
- "meta != null",
618
- "'Invalid object.'"
619
- ]
620
- });
621
- return meta;
622
- };
623
- var getKeys = Function.dual(2, (obj, source) => {
624
- const meta = getMeta(obj);
625
- invariant2(meta != null, "Invalid object.", {
626
- F: __dxlog_file2,
627
- L: 176,
628
- S: void 0,
629
- A: [
630
- "meta != null",
631
- "'Invalid object.'"
632
- ]
633
- });
634
- return meta.keys.filter((key) => key.source === source);
635
- });
636
- var deleteKeys = (obj, source) => {
637
- const meta = getMeta(obj);
638
- for (let i = 0; i < meta.keys.length; i++) {
639
- if (meta.keys[i].source === source) {
640
- meta.keys.splice(i, 1);
641
- i--;
642
- }
643
- }
644
- };
645
- var isDeleted2 = (obj) => {
646
- const deleted = isDeleted(obj);
647
- invariant2(typeof deleted === "boolean", "Invalid object.", {
648
- F: __dxlog_file2,
649
- L: 198,
650
- S: void 0,
651
- A: [
652
- "typeof deleted === 'boolean'",
653
- "'Invalid object.'"
654
- ]
655
- });
656
- return deleted;
657
- };
658
- var getLabel2 = (obj) => {
659
- const schema = getSchema2(obj);
660
- if (schema != null) {
661
- return getLabel(schema, obj);
662
- }
663
- };
664
- var setLabel2 = (obj, label) => {
665
- const schema = getSchema2(obj);
666
- if (schema != null) {
667
- setLabel(schema, obj, label);
668
- }
669
- };
670
- var getDescription2 = (obj) => {
671
- const schema = getSchema2(obj);
672
- if (schema != null) {
673
- return getDescription(schema, obj);
674
- }
675
- };
676
- var setDescription2 = (obj, description) => {
677
- const schema = getSchema2(obj);
678
- if (schema != null) {
679
- setDescription(schema, obj, description);
680
- }
681
- };
682
- var compare = (a, b) => {
683
- if (a == null) {
684
- return b == null ? 0 : 1;
685
- }
686
- if (b == null) {
687
- return -1;
688
- }
689
- return a.localeCompare(b);
690
- };
691
- var sortByLabel = (a, b) => compare(getLabel2(a), getLabel2(b));
692
- var sortByTypename = (a, b) => compare(getTypename2(a), getTypename2(b));
693
- var sort = (...comparators) => {
694
- return (a, b) => {
695
- for (const comparator of comparators) {
696
- const result = comparator(a, b);
697
- if (result !== 0) {
698
- return result;
699
- }
700
- }
701
- return 0;
702
- };
703
- };
704
- var toJSON = (obj) => objectToJSON(obj);
705
- var fromJSON = objectFromJSON;
706
- var getSnapshot2 = LiveObject.getSnapshot;
707
- var clone = (obj, opts) => {
708
- const { id, ...data } = obj;
709
- const schema = getSchema2(obj);
710
- invariant2(schema != null, "Object should have a schema", {
711
- F: __dxlog_file2,
712
- L: 305,
713
- S: void 0,
714
- A: [
715
- "schema != null",
716
- "'Object should have a schema'"
717
- ]
718
- });
719
- const props = deepMapValues(data, (value2, recurse) => {
720
- if (Ref.isRef(value2)) {
721
- return value2;
722
- }
723
- return recurse(value2);
724
- });
725
- if (opts?.retainId) {
726
- props.id = id;
727
- }
728
- const meta = getMeta3(obj);
729
- props[MetaId] = deepMapValues(meta, (value2, recurse) => {
730
- if (Ref.isRef(value2)) {
731
- return value2;
732
- }
733
- return recurse(value2);
734
- });
735
- return make2(schema, props);
736
- };
737
- var VersionTypeId2 = VersionTypeId;
738
- var unversioned = {
739
- [VersionTypeId2]: {},
740
- versioned: false
741
- };
742
- var isVersion = (obj) => {
743
- return obj != null && typeof obj === "object" && VersionTypeId2 in obj;
744
- };
745
- var version = (obj) => {
746
- const version2 = obj[ObjectVersionId];
747
- if (version2 === void 0) {
748
- return unversioned;
749
- }
750
- return version2;
751
- };
752
- var versionValid = (version2) => {
753
- assertArgument2(isVersion(version2), "version", "Invalid version object");
754
- return !!version2.versioned;
755
- };
756
- var compareVersions = (version1, version2) => {
757
- assertArgument2(isVersion(version1), "version1", "Invalid version object");
758
- assertArgument2(isVersion(version2), "version2", "Invalid version object");
759
- if (!versionValid(version1) || !versionValid(version2)) {
760
- return "unversioned";
761
- }
762
- if (version1.automergeHeads?.length !== version2.automergeHeads?.length) {
763
- return "different";
764
- }
765
- if (version1.automergeHeads?.some((head) => !version2.automergeHeads?.includes(head))) {
766
- return "different";
767
- }
768
- return "equal";
769
- };
770
- var encodeVersion = (version2) => {
771
- return JSON.stringify(version2);
772
- };
773
- var decodeVersion = (version2) => {
774
- const parsed = JSON.parse(version2);
775
- parsed[VersionTypeId2] = {};
776
- return parsed;
777
- };
778
-
779
- // src/query/tag.ts
780
- var Tag = Schema3.Struct({
781
- label: Schema3.String,
782
- hue: Schema3.optional(Schema3.String)
783
- }).pipe(Obj({
784
- typename: "dxos.org/type/Tag",
785
- version: "0.1.0"
786
- }), LabelAnnotation.set([
787
- "label"
788
- ]));
789
- var make3 = (props) => make2(Tag, props);
790
- var sortTags = ({ label: a }, { label: b }) => a.localeCompare(b);
791
- var createTagList = (tags) => Object.entries(tags).map(([id, tag]) => ({
792
- ...tag,
793
- id
794
- })).sort(sortTags);
795
- var findTagByLabel = (tags, name) => {
796
- const entry = Object.entries(tags ?? {}).find(([_, tag]) => tag.label.toLowerCase() === name.toLowerCase());
797
- return entry ? {
798
- ...entry[1],
799
- id: entry[0]
800
- } : void 0;
801
- };
802
-
803
- export {
804
- Ref_exports,
805
- Filter,
806
- Query,
807
- Order,
808
- Relation,
809
- Type_exports,
810
- Any,
811
- Obj_exports,
812
- tag_exports
813
- };
814
- //# sourceMappingURL=chunk-WO76TDT6.mjs.map