@dxos/echo 0.8.4-main.937b3ca → 0.8.4-main.9735255

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 (225) hide show
  1. package/dist/lib/{browser → neutral}/Annotation.mjs +4 -5
  2. package/dist/lib/neutral/Database.mjs +17 -0
  3. package/dist/lib/{browser → neutral}/Entity.mjs +8 -9
  4. package/dist/lib/{browser → neutral}/Err.mjs +2 -3
  5. package/dist/lib/{browser → neutral}/Filter.mjs +9 -10
  6. package/dist/lib/{browser → neutral}/Format.mjs +4 -5
  7. package/dist/lib/neutral/JsonSchema.mjs +19 -0
  8. package/dist/lib/{browser → neutral}/Key.mjs +2 -3
  9. package/dist/lib/{browser → neutral}/Obj.mjs +9 -10
  10. package/dist/lib/{browser → neutral}/Order.mjs +2 -3
  11. package/dist/lib/neutral/Query.mjs +26 -0
  12. package/dist/lib/neutral/QueryResult.mjs +2 -0
  13. package/dist/lib/neutral/Ref.mjs +22 -0
  14. package/dist/lib/{browser → neutral}/Relation.mjs +9 -10
  15. package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
  16. package/dist/lib/neutral/Tag.mjs +25 -0
  17. package/dist/lib/{browser → neutral}/Type.mjs +8 -9
  18. package/dist/lib/{browser/chunk-NOPVNWPT.mjs → neutral/chunk-2MTHJ5UW.mjs} +6 -7
  19. package/dist/lib/{node-esm/chunk-ILMLLM4R.mjs.map → neutral/chunk-2MTHJ5UW.mjs.map} +2 -2
  20. package/dist/lib/{browser/chunk-22JMFST2.mjs → neutral/chunk-3ZEAZF7T.mjs} +3 -4
  21. package/dist/lib/{browser/chunk-22JMFST2.mjs.map → neutral/chunk-3ZEAZF7T.mjs.map} +1 -1
  22. package/dist/lib/{browser/chunk-ZHXZGIXD.mjs → neutral/chunk-4L6DOFXP.mjs} +1 -3
  23. package/dist/lib/{browser/chunk-ZHXZGIXD.mjs.map → neutral/chunk-4L6DOFXP.mjs.map} +1 -1
  24. package/dist/lib/{browser/chunk-PQZW3S6L.mjs → neutral/chunk-4TT624YA.mjs} +3 -4
  25. package/dist/lib/{node-esm/chunk-Y75VU7LB.mjs.map → neutral/chunk-4TT624YA.mjs.map} +1 -1
  26. package/dist/lib/{browser/chunk-FRDT7RA4.mjs → neutral/chunk-62DWJ6CE.mjs} +3 -4
  27. package/dist/lib/{node-esm/chunk-W6QIEBTQ.mjs.map → neutral/chunk-62DWJ6CE.mjs.map} +3 -3
  28. package/dist/lib/{browser/chunk-W5D2GWAW.mjs → neutral/chunk-6QPSGMEF.mjs} +5 -6
  29. package/dist/lib/{browser/chunk-W5D2GWAW.mjs.map → neutral/chunk-6QPSGMEF.mjs.map} +1 -1
  30. package/dist/lib/{browser/chunk-INHXFXY5.mjs → neutral/chunk-ANHVGJI4.mjs} +2 -3
  31. package/dist/lib/{node-esm/chunk-AJEMYSIR.mjs.map → neutral/chunk-ANHVGJI4.mjs.map} +1 -1
  32. package/dist/lib/{browser/chunk-RK4Z4JUZ.mjs → neutral/chunk-CUDIBUM4.mjs} +2 -3
  33. package/dist/lib/{node-esm/chunk-YOLH5KS4.mjs.map → neutral/chunk-CUDIBUM4.mjs.map} +1 -1
  34. package/dist/lib/{browser/chunk-XDIUHAAX.mjs → neutral/chunk-HMOXCO27.mjs} +3 -4
  35. package/dist/lib/{node-esm/chunk-QLI2EIJ2.mjs.map → neutral/chunk-HMOXCO27.mjs.map} +1 -1
  36. package/dist/lib/{browser/chunk-U2J7TA7K.mjs → neutral/chunk-IP2GHXWA.mjs} +5 -6
  37. package/dist/lib/{node-esm/chunk-DMR7OAFK.mjs.map → neutral/chunk-IP2GHXWA.mjs.map} +1 -1
  38. package/dist/lib/{browser/chunk-CGS2ULMK.mjs → neutral/chunk-J5LGTIGS.mjs} +1 -2
  39. package/dist/lib/{browser/chunk-7STIBCP7.mjs → neutral/chunk-KRHDMXSU.mjs} +4 -5
  40. package/dist/lib/{browser/chunk-7STIBCP7.mjs.map → neutral/chunk-KRHDMXSU.mjs.map} +1 -1
  41. package/dist/lib/{browser/chunk-FPOISFQK.mjs → neutral/chunk-NWUO5FKZ.mjs} +3 -4
  42. package/dist/lib/{node-esm/chunk-NBWL7UCZ.mjs.map → neutral/chunk-NWUO5FKZ.mjs.map} +1 -1
  43. package/dist/lib/{browser/chunk-IXVWLTG7.mjs → neutral/chunk-OMUPQMLR.mjs} +1 -3
  44. package/dist/lib/{browser/chunk-IXVWLTG7.mjs.map → neutral/chunk-OMUPQMLR.mjs.map} +1 -1
  45. package/dist/lib/{browser/chunk-JMKVF2YQ.mjs → neutral/chunk-ROKO4RKJ.mjs} +2 -3
  46. package/dist/lib/{node-esm/chunk-K37NA7PO.mjs.map → neutral/chunk-ROKO4RKJ.mjs.map} +1 -1
  47. package/dist/lib/{browser/chunk-CJ5YELTO.mjs → neutral/chunk-RPB6V4BE.mjs} +2 -3
  48. package/dist/lib/{browser/chunk-CJ5YELTO.mjs.map → neutral/chunk-RPB6V4BE.mjs.map} +1 -1
  49. package/dist/lib/{browser/chunk-BJPE6CIC.mjs → neutral/chunk-SU2LVM7J.mjs} +47 -48
  50. package/dist/lib/neutral/chunk-SU2LVM7J.mjs.map +7 -0
  51. package/dist/lib/{browser/chunk-ZAGAOZVY.mjs → neutral/chunk-VB5HVDCA.mjs} +4 -5
  52. package/dist/lib/{node-esm/chunk-QYR67VBV.mjs.map → neutral/chunk-VB5HVDCA.mjs.map} +1 -1
  53. package/dist/lib/{browser/chunk-2SBB7OWV.mjs → neutral/chunk-VR4A4WGG.mjs} +5 -6
  54. package/dist/lib/{browser/chunk-2SBB7OWV.mjs.map → neutral/chunk-VR4A4WGG.mjs.map} +2 -2
  55. package/dist/lib/{browser/chunk-MYCCGG2T.mjs → neutral/chunk-X2MPMYYN.mjs} +1 -3
  56. package/dist/lib/{node-esm/chunk-MOWUEW5P.mjs.map → neutral/chunk-X2MPMYYN.mjs.map} +1 -1
  57. package/dist/lib/{browser/chunk-6L5HHUVU.mjs → neutral/chunk-XK5OUUBY.mjs} +4 -5
  58. package/dist/lib/{node-esm/chunk-5OBN7GZW.mjs.map → neutral/chunk-XK5OUUBY.mjs.map} +1 -1
  59. package/dist/lib/{browser/chunk-KQQGVHFN.mjs → neutral/chunk-XMIDBDE6.mjs} +5 -6
  60. package/dist/lib/{node-esm/chunk-NRN3ZW2T.mjs.map → neutral/chunk-XMIDBDE6.mjs.map} +1 -1
  61. package/dist/lib/{browser/chunk-YKTSSMDS.mjs → neutral/chunk-YQYMWZAD.mjs} +1 -3
  62. package/dist/lib/{node-esm/chunk-XHJRMQZD.mjs.map → neutral/chunk-YQYMWZAD.mjs.map} +1 -1
  63. package/dist/lib/{browser → neutral}/index.mjs +23 -24
  64. package/dist/lib/{browser → neutral}/internal/index.mjs +7 -8
  65. package/dist/lib/neutral/meta.json +1 -0
  66. package/dist/lib/{browser → neutral}/testing/index.mjs +23 -24
  67. package/dist/lib/{node-esm → neutral}/testing/index.mjs.map +1 -1
  68. package/dist/types/src/Obj.d.ts +2 -2
  69. package/dist/types/src/Obj.d.ts.map +1 -1
  70. package/dist/types/src/Relation.d.ts +1 -1
  71. package/dist/types/src/Relation.d.ts.map +1 -1
  72. package/dist/types/src/internal/api/meta.d.ts +2 -2
  73. package/dist/types/src/internal/api/meta.d.ts.map +1 -1
  74. package/dist/types/src/internal/entities/object.d.ts.map +1 -1
  75. package/dist/types/src/internal/entities/relation.d.ts.map +1 -1
  76. package/dist/types/src/internal/formats/select.d.ts +2 -2
  77. package/dist/types/src/internal/formats/select.d.ts.map +1 -1
  78. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -1
  79. package/dist/types/src/internal/json-schema/json-schema-type.d.ts +130 -29
  80. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -1
  81. package/dist/types/src/internal/json-schema/json-schema.d.ts +2 -1
  82. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -1
  83. package/dist/types/src/internal/ref/ref.d.ts +2 -1
  84. package/dist/types/src/internal/ref/ref.d.ts.map +1 -1
  85. package/dist/types/src/internal/schema/compose.d.ts +2 -1
  86. package/dist/types/src/internal/schema/compose.d.ts.map +1 -1
  87. package/dist/types/src/internal/types/meta.d.ts +5 -5
  88. package/dist/types/src/internal/types/meta.d.ts.map +1 -1
  89. package/dist/types/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +33 -112
  91. package/src/Obj.ts +3 -3
  92. package/src/Relation.ts +2 -2
  93. package/src/internal/api/meta.ts +3 -3
  94. package/src/internal/entities/object.ts +1 -3
  95. package/src/internal/entities/relation.ts +1 -3
  96. package/src/internal/formats/format.test.ts +1 -1
  97. package/src/internal/formats/select.ts +1 -1
  98. package/src/internal/json-schema/json-schema-normalize.ts +4 -2
  99. package/src/internal/json-schema/json-schema-type.ts +30 -31
  100. package/src/internal/json-schema/json-schema.ts +10 -6
  101. package/src/internal/object/json-serializer.test.ts +3 -2
  102. package/src/internal/object/schema-validator.test.ts +3 -7
  103. package/src/internal/object/set-value.test.ts +9 -9
  104. package/src/internal/proxy/typed-handler.test.ts +8 -12
  105. package/src/internal/proxy/typed-object.test.ts +11 -11
  106. package/src/internal/ref/ref.test.ts +1 -1
  107. package/src/internal/ref/ref.ts +2 -1
  108. package/src/internal/schema/compose.ts +13 -8
  109. package/src/internal/types/meta.ts +12 -13
  110. package/dist/lib/browser/Database.mjs +0 -18
  111. package/dist/lib/browser/JsonSchema.mjs +0 -20
  112. package/dist/lib/browser/Query.mjs +0 -27
  113. package/dist/lib/browser/QueryResult.mjs +0 -3
  114. package/dist/lib/browser/Ref.mjs +0 -23
  115. package/dist/lib/browser/SchemaRegistry.mjs +0 -3
  116. package/dist/lib/browser/Tag.mjs +0 -26
  117. package/dist/lib/browser/chunk-6L5HHUVU.mjs.map +0 -7
  118. package/dist/lib/browser/chunk-BJPE6CIC.mjs.map +0 -7
  119. package/dist/lib/browser/chunk-FPOISFQK.mjs.map +0 -7
  120. package/dist/lib/browser/chunk-FRDT7RA4.mjs.map +0 -7
  121. package/dist/lib/browser/chunk-INHXFXY5.mjs.map +0 -7
  122. package/dist/lib/browser/chunk-JMKVF2YQ.mjs.map +0 -7
  123. package/dist/lib/browser/chunk-KQQGVHFN.mjs.map +0 -7
  124. package/dist/lib/browser/chunk-MYCCGG2T.mjs.map +0 -7
  125. package/dist/lib/browser/chunk-NOPVNWPT.mjs.map +0 -7
  126. package/dist/lib/browser/chunk-PQZW3S6L.mjs.map +0 -7
  127. package/dist/lib/browser/chunk-RK4Z4JUZ.mjs.map +0 -7
  128. package/dist/lib/browser/chunk-U2J7TA7K.mjs.map +0 -7
  129. package/dist/lib/browser/chunk-XDIUHAAX.mjs.map +0 -7
  130. package/dist/lib/browser/chunk-YKTSSMDS.mjs.map +0 -7
  131. package/dist/lib/browser/chunk-ZAGAOZVY.mjs.map +0 -7
  132. package/dist/lib/browser/meta.json +0 -1
  133. package/dist/lib/browser/testing/index.mjs.map +0 -7
  134. package/dist/lib/node-esm/Annotation.mjs +0 -33
  135. package/dist/lib/node-esm/Annotation.mjs.map +0 -7
  136. package/dist/lib/node-esm/Database.mjs +0 -18
  137. package/dist/lib/node-esm/Database.mjs.map +0 -7
  138. package/dist/lib/node-esm/Entity.mjs +0 -52
  139. package/dist/lib/node-esm/Entity.mjs.map +0 -7
  140. package/dist/lib/node-esm/Err.mjs +0 -11
  141. package/dist/lib/node-esm/Err.mjs.map +0 -7
  142. package/dist/lib/node-esm/Filter.mjs +0 -62
  143. package/dist/lib/node-esm/Filter.mjs.map +0 -7
  144. package/dist/lib/node-esm/Format.mjs +0 -67
  145. package/dist/lib/node-esm/Format.mjs.map +0 -7
  146. package/dist/lib/node-esm/JsonSchema.mjs +0 -20
  147. package/dist/lib/node-esm/JsonSchema.mjs.map +0 -7
  148. package/dist/lib/node-esm/Key.mjs +0 -13
  149. package/dist/lib/node-esm/Key.mjs.map +0 -7
  150. package/dist/lib/node-esm/Obj.mjs +0 -91
  151. package/dist/lib/node-esm/Obj.mjs.map +0 -7
  152. package/dist/lib/node-esm/Order.mjs +0 -13
  153. package/dist/lib/node-esm/Order.mjs.map +0 -7
  154. package/dist/lib/node-esm/Query.mjs +0 -27
  155. package/dist/lib/node-esm/Query.mjs.map +0 -7
  156. package/dist/lib/node-esm/QueryResult.mjs +0 -3
  157. package/dist/lib/node-esm/QueryResult.mjs.map +0 -7
  158. package/dist/lib/node-esm/Ref.mjs +0 -23
  159. package/dist/lib/node-esm/Ref.mjs.map +0 -7
  160. package/dist/lib/node-esm/Relation.mjs +0 -85
  161. package/dist/lib/node-esm/Relation.mjs.map +0 -7
  162. package/dist/lib/node-esm/SchemaRegistry.mjs +0 -3
  163. package/dist/lib/node-esm/SchemaRegistry.mjs.map +0 -7
  164. package/dist/lib/node-esm/Tag.mjs +0 -26
  165. package/dist/lib/node-esm/Tag.mjs.map +0 -7
  166. package/dist/lib/node-esm/Type.mjs +0 -48
  167. package/dist/lib/node-esm/Type.mjs.map +0 -7
  168. package/dist/lib/node-esm/chunk-4PNXQA64.mjs +0 -250
  169. package/dist/lib/node-esm/chunk-4PNXQA64.mjs.map +0 -7
  170. package/dist/lib/node-esm/chunk-5OBN7GZW.mjs +0 -158
  171. package/dist/lib/node-esm/chunk-AJEMYSIR.mjs +0 -22
  172. package/dist/lib/node-esm/chunk-ANLVLWME.mjs +0 -98
  173. package/dist/lib/node-esm/chunk-ANLVLWME.mjs.map +0 -7
  174. package/dist/lib/node-esm/chunk-DMR7OAFK.mjs +0 -57
  175. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs +0 -133
  176. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs.map +0 -7
  177. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  178. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
  179. package/dist/lib/node-esm/chunk-ILMLLM4R.mjs +0 -204
  180. package/dist/lib/node-esm/chunk-K37NA7PO.mjs +0 -43
  181. package/dist/lib/node-esm/chunk-LT3H4JOX.mjs +0 -3847
  182. package/dist/lib/node-esm/chunk-LT3H4JOX.mjs.map +0 -7
  183. package/dist/lib/node-esm/chunk-MOLNWFNL.mjs +0 -9
  184. package/dist/lib/node-esm/chunk-MOLNWFNL.mjs.map +0 -7
  185. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs +0 -15
  186. package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs +0 -40
  187. package/dist/lib/node-esm/chunk-NRN3ZW2T.mjs +0 -143
  188. package/dist/lib/node-esm/chunk-QLI2EIJ2.mjs +0 -41
  189. package/dist/lib/node-esm/chunk-QYR67VBV.mjs +0 -288
  190. package/dist/lib/node-esm/chunk-UKGVOINP.mjs +0 -9
  191. package/dist/lib/node-esm/chunk-UKGVOINP.mjs.map +0 -7
  192. package/dist/lib/node-esm/chunk-W6QIEBTQ.mjs +0 -403
  193. package/dist/lib/node-esm/chunk-XHJRMQZD.mjs +0 -69
  194. package/dist/lib/node-esm/chunk-Y75VU7LB.mjs +0 -74
  195. package/dist/lib/node-esm/chunk-YOLH5KS4.mjs +0 -283
  196. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs +0 -39
  197. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs.map +0 -7
  198. package/dist/lib/node-esm/chunk-ZBB67AKD.mjs +0 -24
  199. package/dist/lib/node-esm/chunk-ZBB67AKD.mjs.map +0 -7
  200. package/dist/lib/node-esm/index.mjs +0 -85
  201. package/dist/lib/node-esm/index.mjs.map +0 -7
  202. package/dist/lib/node-esm/internal/index.mjs +0 -457
  203. package/dist/lib/node-esm/internal/index.mjs.map +0 -7
  204. package/dist/lib/node-esm/meta.json +0 -1
  205. package/dist/lib/node-esm/testing/index.mjs +0 -367
  206. /package/dist/lib/{browser → neutral}/Annotation.mjs.map +0 -0
  207. /package/dist/lib/{browser → neutral}/Database.mjs.map +0 -0
  208. /package/dist/lib/{browser → neutral}/Entity.mjs.map +0 -0
  209. /package/dist/lib/{browser → neutral}/Err.mjs.map +0 -0
  210. /package/dist/lib/{browser → neutral}/Filter.mjs.map +0 -0
  211. /package/dist/lib/{browser → neutral}/Format.mjs.map +0 -0
  212. /package/dist/lib/{browser → neutral}/JsonSchema.mjs.map +0 -0
  213. /package/dist/lib/{browser → neutral}/Key.mjs.map +0 -0
  214. /package/dist/lib/{browser → neutral}/Obj.mjs.map +0 -0
  215. /package/dist/lib/{browser → neutral}/Order.mjs.map +0 -0
  216. /package/dist/lib/{browser → neutral}/Query.mjs.map +0 -0
  217. /package/dist/lib/{browser → neutral}/QueryResult.mjs.map +0 -0
  218. /package/dist/lib/{browser → neutral}/Ref.mjs.map +0 -0
  219. /package/dist/lib/{browser → neutral}/Relation.mjs.map +0 -0
  220. /package/dist/lib/{browser → neutral}/SchemaRegistry.mjs.map +0 -0
  221. /package/dist/lib/{browser → neutral}/Tag.mjs.map +0 -0
  222. /package/dist/lib/{browser → neutral}/Type.mjs.map +0 -0
  223. /package/dist/lib/{browser/chunk-CGS2ULMK.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  224. /package/dist/lib/{browser → neutral}/index.mjs.map +0 -0
  225. /package/dist/lib/{browser → neutral}/internal/index.mjs.map +0 -0
@@ -1,367 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import "../chunk-MOWUEW5P.mjs";
3
- import "../chunk-DMR7OAFK.mjs";
4
- import "../chunk-K37NA7PO.mjs";
5
- import "../chunk-AJEMYSIR.mjs";
6
- import {
7
- Obj,
8
- Ref,
9
- Type_exports,
10
- object,
11
- relation
12
- } from "../chunk-NRN3ZW2T.mjs";
13
- import "../chunk-Y75VU7LB.mjs";
14
- import "../chunk-4PNXQA64.mjs";
15
- import "../chunk-ZBB67AKD.mjs";
16
- import "../chunk-UKGVOINP.mjs";
17
- import "../chunk-5OBN7GZW.mjs";
18
- import "../chunk-QYR67VBV.mjs";
19
- import "../chunk-QLI2EIJ2.mjs";
20
- import "../chunk-MOLNWFNL.mjs";
21
- import "../chunk-ILMLLM4R.mjs";
22
- import "../chunk-ANLVLWME.mjs";
23
- import {
24
- EchoSchema,
25
- PersistentSchema,
26
- makeObject,
27
- subscribe,
28
- toJsonSchema
29
- } from "../chunk-LT3H4JOX.mjs";
30
- import "../chunk-W6QIEBTQ.mjs";
31
- import "../chunk-NBWL7UCZ.mjs";
32
- import "../chunk-FWTSPIFF.mjs";
33
- import {
34
- getSchemaTypename
35
- } from "../chunk-YOLH5KS4.mjs";
36
- import "../chunk-XHJRMQZD.mjs";
37
- import "../chunk-YQ2NWGL5.mjs";
38
- import "../chunk-HSLMI22Q.mjs";
39
-
40
- // src/testing/test-data.ts
41
- import { DatabaseDirectory, ObjectStructure } from "@dxos/echo-protocol";
42
- import { DXN, ObjectId, PublicKey } from "@dxos/keys";
43
-
44
- // src/testing/test-schema.ts
45
- import * as Schema from "effect/Schema";
46
- (function(TestSchema2) {
47
- TestSchema2.Expando = Schema.Struct({}, {
48
- key: Schema.String,
49
- value: Schema.Any
50
- }).pipe(object({
51
- typename: "example.com/type/Expando",
52
- version: "0.1.0"
53
- }));
54
- const Nested = Schema.Struct({
55
- field: Schema.String
56
- });
57
- class TestClass {
58
- field = "value";
59
- toJSON() {
60
- return {
61
- field: this.field
62
- };
63
- }
64
- }
65
- TestSchema2.TestClass = TestClass;
66
- TestSchema2.ExampleSchema = Schema.Struct({
67
- string: Schema.String,
68
- number: Schema.Number,
69
- boolean: Schema.Boolean,
70
- null: Schema.Null,
71
- undefined: Schema.Undefined,
72
- stringArray: Schema.Array(Schema.String),
73
- twoDimNumberArray: Schema.Array(Schema.Array(Schema.Number)),
74
- nested: Nested,
75
- nestedArray: Schema.Array(Nested),
76
- nestedNullableArray: Schema.Array(Schema.Union(Nested, Schema.Null)),
77
- reference: Schema.suspend(() => Ref(TestSchema2.Example)),
78
- referenceArray: Schema.Array(Schema.suspend(() => Ref(TestSchema2.Example))),
79
- classInstance: Schema.instanceOf(TestClass),
80
- other: Schema.Any
81
- }).pipe(Schema.partial);
82
- TestSchema2.Example = TestSchema2.ExampleSchema.pipe(object({
83
- typename: "example.com/type/Example",
84
- version: "0.1.0"
85
- }));
86
- TestSchema2.MessageStruct = Schema.Struct({
87
- // TODO(burdon): Support S.Date; Custom Timestamp (with defaults).
88
- // TODO(burdon): Support defaults (update create and create).
89
- timestamp: Schema.String.pipe(Schema.propertySignature, Schema.withConstructorDefault(() => (/* @__PURE__ */ new Date()).toISOString()))
90
- });
91
- TestSchema2.Message = TestSchema2.MessageStruct.pipe(object({
92
- typename: "example.com/type/Message",
93
- version: "0.1.0"
94
- }));
95
- TestSchema2.Organization = Schema.Struct({
96
- name: Schema.String,
97
- properties: Schema.optional(Schema.Record({
98
- key: Schema.String,
99
- value: Schema.String
100
- }))
101
- }).pipe(object({
102
- typename: "example.com/type/Organization",
103
- version: "0.1.0"
104
- }));
105
- TestSchema2.Person = Schema.Struct({
106
- name: Schema.String,
107
- username: Schema.String,
108
- email: Schema.String,
109
- age: Schema.Number.pipe(Schema.optional),
110
- tasks: Schema.Array(Schema.suspend(() => Ref(TestSchema2.Task))),
111
- employer: Schema.optional(Ref(TestSchema2.Organization)),
112
- address: Schema.Struct({
113
- city: Schema.optional(Schema.String),
114
- state: Schema.optional(Schema.String),
115
- zip: Schema.optional(Schema.String),
116
- coordinates: Schema.Struct({
117
- lat: Schema.optional(Schema.Number),
118
- lng: Schema.optional(Schema.Number)
119
- })
120
- }),
121
- fields: Schema.Struct({
122
- label: Schema.String,
123
- value: Schema.String
124
- }).pipe(Schema.Array, Schema.optional)
125
- }).pipe(Schema.partial, object({
126
- typename: "example.com/type/Person",
127
- version: "0.1.0"
128
- }));
129
- TestSchema2.Task = Schema.Struct({
130
- title: Schema.optional(Schema.String),
131
- deadline: Schema.optional(Schema.String),
132
- completed: Schema.optional(Schema.Boolean),
133
- assignee: Schema.optional(Ref(TestSchema2.Person)),
134
- previous: Schema.optional(Schema.suspend(() => Ref(TestSchema2.Task))),
135
- subTasks: Schema.optional(Schema.Array(Schema.suspend(() => Ref(TestSchema2.Task)))),
136
- description: Schema.optional(Schema.String)
137
- }).pipe(Schema.partial, object({
138
- typename: "example.com/type/Task",
139
- version: "0.1.0"
140
- }));
141
- TestSchema2.HasManager = Schema.Struct({}).pipe(relation({
142
- typename: "example.com/type/HasManager",
143
- version: "0.1.0",
144
- source: TestSchema2.Person,
145
- target: TestSchema2.Person
146
- }));
147
- TestSchema2.EmployedBy = Schema.Struct({
148
- role: Schema.String,
149
- since: Schema.optional(Schema.String)
150
- }).pipe(relation({
151
- typename: "example.com/type/EmployedBy",
152
- version: "0.1.0",
153
- source: TestSchema2.Person,
154
- target: TestSchema2.Organization
155
- }));
156
- (function(RecordType) {
157
- RecordType[RecordType["UNDEFINED"] = 0] = "UNDEFINED";
158
- RecordType[RecordType["PERSONAL"] = 1] = "PERSONAL";
159
- RecordType[RecordType["WORK"] = 2] = "WORK";
160
- })(TestSchema2.RecordType || (TestSchema2.RecordType = {}));
161
- TestSchema2.Container = Schema.Struct({
162
- objects: Schema.Array(Ref(Obj)),
163
- records: Schema.Array(Schema.partial(Schema.Struct({
164
- title: Schema.String,
165
- description: Schema.String,
166
- contacts: Schema.Array(Ref(TestSchema2.Person)),
167
- type: Schema.Enums(TestSchema2.RecordType)
168
- })))
169
- }).pipe(Schema.partial, object({
170
- typename: "example.com/type/Container",
171
- version: "0.1.0"
172
- }));
173
- })(TestSchema || (TestSchema = {}));
174
- var TestSchema;
175
-
176
- // src/testing/test-data.ts
177
- var spaceKey = PublicKey.random();
178
- var PEOPLE = {
179
- alice: DatabaseDirectory.make({
180
- spaceKey: spaceKey.toHex(),
181
- objects: {
182
- [ObjectId.random()]: ObjectStructure.makeObject({
183
- type: Type_exports.getDXN(TestSchema.Person).toString(),
184
- data: {
185
- name: "Alice"
186
- }
187
- })
188
- }
189
- }),
190
- bob: DatabaseDirectory.make({
191
- spaceKey: spaceKey.toHex(),
192
- objects: {
193
- [ObjectId.random()]: ObjectStructure.makeObject({
194
- type: Type_exports.getDXN(TestSchema.Person).toString(),
195
- data: {
196
- name: "Bob"
197
- }
198
- })
199
- }
200
- })
201
- };
202
- var ORGS = {
203
- dxos: DatabaseDirectory.make({
204
- spaceKey: spaceKey.toHex(),
205
- objects: {
206
- [ObjectId.random()]: ObjectStructure.makeObject({
207
- type: Type_exports.getDXN(TestSchema.Organization).toString(),
208
- data: {
209
- name: "DXOS",
210
- founded: "2023"
211
- }
212
- })
213
- }
214
- }),
215
- cyberdyne: DatabaseDirectory.make({
216
- spaceKey: spaceKey.toHex(),
217
- objects: {
218
- [ObjectId.random()]: ObjectStructure.makeObject({
219
- type: Type_exports.getDXN(TestSchema.Organization).toString(),
220
- data: {
221
- name: "Cyberdyne Systems",
222
- founded: "1984"
223
- }
224
- })
225
- }
226
- })
227
- };
228
- var WORKS_FOR = {
229
- fredWorksForCyberdyne: DatabaseDirectory.make({
230
- spaceKey: spaceKey.toHex(),
231
- objects: {
232
- [ObjectId.random()]: ObjectStructure.makeRelation({
233
- type: Type_exports.getDXN(TestSchema.EmployedBy).toString(),
234
- source: {
235
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects)[0]).toString()
236
- },
237
- target: {
238
- "/": DXN.fromLocalObjectId(Object.keys(ORGS.cyberdyne.objects)[0]).toString()
239
- },
240
- data: {
241
- since: "2020",
242
- position: "Engineer"
243
- }
244
- })
245
- }
246
- }),
247
- aliceWorksForAperture: DatabaseDirectory.make({
248
- spaceKey: spaceKey.toHex(),
249
- objects: {
250
- [ObjectId.random()]: ObjectStructure.makeRelation({
251
- type: Type_exports.getDXN(TestSchema.EmployedBy).toString(),
252
- source: {
253
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
254
- },
255
- target: {
256
- "/": DXN.fromLocalObjectId(Object.keys(ORGS.dxos.objects)[0]).toString()
257
- },
258
- data: {
259
- since: "2018",
260
- position: "Research Scientist"
261
- }
262
- })
263
- }
264
- })
265
- };
266
- var TASKS = {
267
- task1: DatabaseDirectory.make({
268
- spaceKey: spaceKey.toHex(),
269
- objects: {
270
- [ObjectId.random()]: ObjectStructure.makeObject({
271
- type: Type_exports.getDXN(TestSchema.Task).toString(),
272
- data: {
273
- title: "Complete project documentation",
274
- description: "Write comprehensive documentation for the new system",
275
- status: "in-progress",
276
- dueDate: "2023-12-31",
277
- assignee: {
278
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects)[0]).toString()
279
- }
280
- }
281
- })
282
- }
283
- }),
284
- task2: DatabaseDirectory.make({
285
- spaceKey: spaceKey.toHex(),
286
- objects: {
287
- [ObjectId.random()]: ObjectStructure.makeObject({
288
- type: Type_exports.getDXN(TestSchema.Task).toString(),
289
- data: {
290
- title: "Run experiments",
291
- description: "Conduct series of experiments on the portal device",
292
- status: "pending",
293
- dueDate: "2023-11-15",
294
- assignee: {
295
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
296
- }
297
- }
298
- })
299
- }
300
- })
301
- };
302
-
303
- // src/testing/util.ts
304
- import { assertArgument } from "@dxos/invariant";
305
- import { deepMapValues } from "@dxos/util";
306
- var createEchoSchema = (schema, version = "0.1.0") => {
307
- const jsonSchema = toJsonSchema(schema);
308
- const typename = getSchemaTypename(schema);
309
- assertArgument(typename, "typename", "Schema does not have a typename.");
310
- const echoSchema = new EchoSchema(makeObject(PersistentSchema, {
311
- typename,
312
- version,
313
- jsonSchema
314
- }));
315
- subscribe(echoSchema.persistentSchema, () => {
316
- echoSchema._invalidate();
317
- });
318
- return echoSchema;
319
- };
320
- var prepareAstForCompare = (obj) => deepMapValues(obj, (value, recurse) => {
321
- if (typeof value === "function") {
322
- return null;
323
- }
324
- if (value instanceof RegExp) {
325
- return value;
326
- }
327
- if (typeof value === "object") {
328
- const clone = {
329
- ...value
330
- };
331
- for (const sym of Object.getOwnPropertySymbols(clone)) {
332
- clone[sym.toString()] = clone[sym];
333
- delete clone[sym];
334
- }
335
- return recurse(clone);
336
- }
337
- return recurse(value);
338
- });
339
- var updateCounter = (...objects) => {
340
- let updateCount = 0;
341
- const unsubscribes = objects.map((obj) => subscribe(obj, () => {
342
- updateCount++;
343
- }));
344
- const unsubscribeAll = () => {
345
- for (const unsub of unsubscribes) {
346
- unsub();
347
- }
348
- };
349
- return {
350
- // https://github.com/tc39/proposal-explicit-resource-management
351
- [Symbol.dispose]: unsubscribeAll,
352
- get count() {
353
- return updateCount;
354
- }
355
- };
356
- };
357
- export {
358
- ORGS,
359
- PEOPLE,
360
- TASKS,
361
- TestSchema,
362
- WORKS_FOR,
363
- createEchoSchema,
364
- prepareAstForCompare,
365
- updateCounter
366
- };
367
- //# sourceMappingURL=index.mjs.map
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes