jazz-tools 0.7.0-alpha.9 → 0.7.1

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 (72) hide show
  1. package/.eslintrc.cjs +3 -10
  2. package/.prettierrc.js +9 -0
  3. package/.turbo/turbo-build.log +3 -19
  4. package/.turbo/turbo-lint.log +4 -0
  5. package/.turbo/turbo-test.log +140 -0
  6. package/CHANGELOG.md +298 -0
  7. package/README.md +10 -2
  8. package/dist/coValues/account.js +59 -41
  9. package/dist/coValues/account.js.map +1 -1
  10. package/dist/coValues/coList.js +49 -46
  11. package/dist/coValues/coList.js.map +1 -1
  12. package/dist/coValues/coMap.js +143 -44
  13. package/dist/coValues/coMap.js.map +1 -1
  14. package/dist/coValues/coStream.js +144 -35
  15. package/dist/coValues/coStream.js.map +1 -1
  16. package/dist/coValues/deepLoading.js +60 -0
  17. package/dist/coValues/deepLoading.js.map +1 -0
  18. package/dist/coValues/extensions/imageDef.js +10 -7
  19. package/dist/coValues/extensions/imageDef.js.map +1 -1
  20. package/dist/coValues/group.js +49 -13
  21. package/dist/coValues/group.js.map +1 -1
  22. package/dist/coValues/interfaces.js +70 -31
  23. package/dist/coValues/interfaces.js.map +1 -1
  24. package/dist/implementation/devtoolsFormatters.js +114 -0
  25. package/dist/implementation/devtoolsFormatters.js.map +1 -0
  26. package/dist/implementation/refs.js +58 -18
  27. package/dist/implementation/refs.js.map +1 -1
  28. package/dist/implementation/schema.js +58 -0
  29. package/dist/implementation/schema.js.map +1 -0
  30. package/dist/implementation/subscriptionScope.js +19 -1
  31. package/dist/implementation/subscriptionScope.js.map +1 -1
  32. package/dist/implementation/symbols.js +5 -0
  33. package/dist/implementation/symbols.js.map +1 -0
  34. package/dist/index.js +3 -5
  35. package/dist/index.js.map +1 -1
  36. package/dist/internal.js +5 -2
  37. package/dist/internal.js.map +1 -1
  38. package/dist/tests/coList.test.js +51 -48
  39. package/dist/tests/coList.test.js.map +1 -1
  40. package/dist/tests/coMap.test.js +131 -74
  41. package/dist/tests/coMap.test.js.map +1 -1
  42. package/dist/tests/coStream.test.js +56 -41
  43. package/dist/tests/coStream.test.js.map +1 -1
  44. package/dist/tests/deepLoading.test.js +188 -0
  45. package/dist/tests/deepLoading.test.js.map +1 -0
  46. package/dist/tests/groupsAndAccounts.test.js +83 -0
  47. package/dist/tests/groupsAndAccounts.test.js.map +1 -0
  48. package/package.json +17 -9
  49. package/src/coValues/account.ts +113 -125
  50. package/src/coValues/coList.ts +87 -103
  51. package/src/coValues/coMap.ts +200 -147
  52. package/src/coValues/coStream.ts +264 -80
  53. package/src/coValues/deepLoading.ts +229 -0
  54. package/src/coValues/extensions/imageDef.ts +17 -13
  55. package/src/coValues/group.ts +92 -58
  56. package/src/coValues/interfaces.ts +215 -115
  57. package/src/implementation/devtoolsFormatters.ts +110 -0
  58. package/src/implementation/inspect.ts +1 -1
  59. package/src/implementation/refs.ts +80 -28
  60. package/src/implementation/schema.ts +138 -0
  61. package/src/implementation/subscriptionScope.ts +48 -12
  62. package/src/implementation/symbols.ts +11 -0
  63. package/src/index.ts +12 -8
  64. package/src/internal.ts +7 -3
  65. package/src/tests/coList.test.ts +77 -62
  66. package/src/tests/coMap.test.ts +201 -114
  67. package/src/tests/coStream.test.ts +113 -84
  68. package/src/tests/deepLoading.test.ts +301 -0
  69. package/src/tests/groupsAndAccounts.test.ts +91 -0
  70. package/dist/implementation/encoding.js +0 -26
  71. package/dist/implementation/encoding.js.map +0 -1
  72. package/src/implementation/encoding.ts +0 -105
@@ -1,40 +1,30 @@
1
1
  var _a;
2
2
  import { LocalNode } from "cojson";
3
3
  import { Context } from "effect";
4
- import { CoValueBase, Profile, Ref, SchemaInit, inspect, subscriptionsScopes, } from "../internal.js";
4
+ import { Group, CoValueBase, MembersSym, Profile, Ref, SchemaInit, inspect, subscriptionsScopes, } from "../internal.js";
5
+ /** @category Identity & Permissions */
5
6
  export class Account extends CoValueBase {
6
- get _encoding() {
7
- return this.constructor._encoding;
7
+ get _schema() {
8
+ return this.constructor._schema;
8
9
  }
9
10
  get _owner() {
10
11
  return this;
11
12
  }
12
13
  get _loadedAs() {
13
- return this.isMe
14
- ? this
15
- : _a.fromNode(this._raw.core.node);
14
+ return this.isMe ? this : _a.fromNode(this._raw.core.node);
16
15
  }
17
16
  get _refs() {
18
17
  const profileID = this._raw.get("profile");
19
18
  const rootID = this._raw.get("root");
20
19
  return {
21
20
  profile: profileID &&
22
- new Ref(profileID, this._loadedAs, this._encoding.profile),
21
+ new Ref(profileID, this._loadedAs, this._schema.profile),
23
22
  root: rootID &&
24
- new Ref(rootID, this._loadedAs, this._encoding.root),
23
+ new Ref(rootID, this._loadedAs, this._schema.root),
25
24
  };
26
25
  }
27
- constructor(init, options) {
26
+ constructor(options) {
28
27
  super();
29
- this.acceptInvite = (async (valueID, inviteSecret, coValueClass) => {
30
- if (!this.isMe) {
31
- throw new Error("Only a controlled account can accept invites");
32
- }
33
- await this._raw.acceptInvite(valueID, inviteSecret);
34
- return coValueClass.load(valueID, {
35
- as: this,
36
- });
37
- });
38
28
  if (!("fromRaw" in options)) {
39
29
  throw new Error("Can only construct account from raw or with .create()");
40
30
  }
@@ -45,10 +35,10 @@ export class Account extends CoValueBase {
45
35
  enumerable: false,
46
36
  },
47
37
  _raw: { value: options.fromRaw, enumerable: false },
38
+ _type: { value: "Account", enumerable: false },
48
39
  });
49
40
  if (this.isMe) {
50
- this.sessionID =
51
- options.fromRaw.core.node.currentSessionID;
41
+ this.sessionID = options.fromRaw.core.node.currentSessionID;
52
42
  }
53
43
  return new Proxy(this, AccountAndGroupProxyHandler);
54
44
  }
@@ -57,14 +47,22 @@ export class Account extends CoValueBase {
57
47
  return "admin";
58
48
  }
59
49
  }
50
+ async acceptInvite(valueID, inviteSecret, coValueClass) {
51
+ if (!this.isMe) {
52
+ throw new Error("Only a controlled account can accept invites");
53
+ }
54
+ await this._raw.acceptInvite(valueID, inviteSecret);
55
+ return coValueClass.load(valueID, this, []);
56
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
+ }
60
58
  static async create(options) {
61
59
  const { node } = await LocalNode.withNewlyCreatedAccount({
62
60
  ...options,
63
- migration: async (rawAccount) => {
64
- const account = new this(undefined, {
61
+ migration: async (rawAccount, _node, creationProps) => {
62
+ const account = new this({
65
63
  fromRaw: rawAccount,
66
64
  });
67
- await account.migrate?.();
65
+ await account.migrate?.(creationProps);
68
66
  },
69
67
  });
70
68
  return this.fromNode(node);
@@ -75,20 +73,22 @@ export class Account extends CoValueBase {
75
73
  accountSecret: options.accountSecret,
76
74
  sessionID: options.sessionID,
77
75
  peersToLoadFrom: options.peersToLoadFrom,
78
- migration: async (rawAccount) => {
79
- const account = new this(undefined, {
76
+ crypto: options.crypto,
77
+ migration: async (rawAccount, _node, creationProps) => {
78
+ const account = new this({
80
79
  fromRaw: rawAccount,
81
80
  });
82
- await account.migrate?.();
81
+ await account.migrate?.(creationProps);
83
82
  },
84
83
  });
85
84
  return this.fromNode(node);
86
85
  }
87
86
  static fromNode(node) {
88
- return new this(undefined, {
87
+ return new this({
89
88
  fromRaw: node.account,
90
89
  });
91
90
  }
91
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
92
  toJSON() {
93
93
  return {
94
94
  id: this.id,
@@ -98,23 +98,35 @@ export class Account extends CoValueBase {
98
98
  [inspect]() {
99
99
  return this.toJSON();
100
100
  }
101
+ migrate(creationProps) {
102
+ if (creationProps) {
103
+ const profileGroup = Group.create({ owner: this });
104
+ profileGroup.addMember("everyone", "reader");
105
+ this.profile = Profile.create({ name: creationProps.name }, { owner: profileGroup });
106
+ }
107
+ }
101
108
  }
102
109
  _a = Account;
103
110
  (() => {
104
- _a._encoding = {
105
- profile: { ref: () => Profile },
106
- root: { json: true },
111
+ _a._schema = {
112
+ profile: { ref: () => Profile, optional: false },
113
+ root: "json",
114
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
107
115
  };
108
116
  })();
109
117
  export const AccountAndGroupProxyHandler = {
110
118
  get(target, key, receiver) {
111
119
  if (key === "profile") {
112
120
  const ref = target._refs.profile;
113
- return ref ? ref.accessFrom(receiver) : undefined;
121
+ return ref
122
+ ? ref.accessFrom(receiver, "profile")
123
+ : // eslint-disable-next-line @typescript-eslint/no-explicit-any
124
+ undefined;
114
125
  }
115
126
  else if (key === "root") {
116
127
  const ref = target._refs.root;
117
- return ref ? ref.accessFrom(receiver) : undefined;
128
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
129
+ return ref ? ref.accessFrom(receiver, "root") : undefined;
118
130
  }
119
131
  else {
120
132
  return Reflect.get(target, key, receiver);
@@ -122,26 +134,30 @@ export const AccountAndGroupProxyHandler = {
122
134
  },
123
135
  set(target, key, value, receiver) {
124
136
  var _b;
125
- if ((key === "profile" || key === "root") &&
137
+ if ((key === "profile" || key === "root" || key === MembersSym) &&
126
138
  typeof value === "object" &&
127
139
  SchemaInit in value) {
128
- (_b = target.constructor)._encoding || (_b._encoding = {});
129
- target.constructor._encoding[key] =
140
+ (_b = target.constructor)._schema || (_b._schema = {});
141
+ target.constructor._schema[key] =
130
142
  value[SchemaInit];
131
143
  return true;
132
144
  }
133
145
  else if (key === "profile") {
134
146
  if (value) {
135
- target._raw.set("profile", value.id);
147
+ target._raw.set("profile", value.id, "trusting");
136
148
  }
137
- subscriptionsScopes.get(receiver)?.onRefAccessedOrSet(value.id);
149
+ subscriptionsScopes
150
+ .get(receiver)
151
+ ?.onRefAccessedOrSet(target.id, value.id);
138
152
  return true;
139
153
  }
140
154
  else if (key === "root") {
141
155
  if (value) {
142
156
  target._raw.set("root", value.id);
143
157
  }
144
- subscriptionsScopes.get(receiver)?.onRefAccessedOrSet(value.id);
158
+ subscriptionsScopes
159
+ .get(receiver)
160
+ ?.onRefAccessedOrSet(target.id, value.id);
145
161
  return true;
146
162
  }
147
163
  else {
@@ -150,11 +166,11 @@ export const AccountAndGroupProxyHandler = {
150
166
  },
151
167
  defineProperty(target, key, descriptor) {
152
168
  var _b;
153
- if ((key === "profile" || key === "root") &&
169
+ if ((key === "profile" || key === "root" || key === MembersSym) &&
154
170
  typeof descriptor.value === "object" &&
155
171
  SchemaInit in descriptor.value) {
156
- (_b = target.constructor)._encoding || (_b._encoding = {});
157
- target.constructor._encoding[key] =
172
+ (_b = target.constructor)._schema || (_b._schema = {});
173
+ target.constructor._schema[key] =
158
174
  descriptor.value[SchemaInit];
159
175
  return true;
160
176
  }
@@ -163,8 +179,10 @@ export const AccountAndGroupProxyHandler = {
163
179
  }
164
180
  },
165
181
  };
182
+ /** @category Identity & Permissions */
166
183
  export class AccountCtx extends Context.Tag("Account")() {
167
184
  }
185
+ /** @category Identity & Permissions */
168
186
  export function isControlledAccount(account) {
169
187
  return account.isMe;
170
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,37 @@
1
1
  var _a;
2
2
  import { RawAccount } from "cojson";
3
- import { Account, CoValueBase, Group, InitValues, ItemsSym, Ref, SchemaInit, val, inspect, makeRefs, } from "../internal.js";
4
- import { Schema } from "@effect/schema";
3
+ import { Account, CoValueBase, Group, InitValues, ItemsSym, Ref, SchemaInit, co, inspect, isRefEncoded, makeRefs, } from "../internal.js";
4
+ import { encodeSync, decodeSync } from "@effect/schema/Schema";
5
+ /** @category CoValues */
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
7
  export class CoList extends Array {
6
8
  static Of(item) {
7
9
  var _b, _c;
10
+ // TODO: cache superclass for item class
8
11
  return _c = class CoListOf extends _a {
9
12
  constructor() {
10
13
  super(...arguments);
11
14
  this[_b] = item;
12
15
  }
13
16
  },
14
- _b = val.items,
17
+ _b = co.items,
15
18
  _c;
16
19
  }
17
20
  /** @deprecated Use UPPERCASE `CoList.Of` instead! */
18
21
  static of(..._args) {
19
22
  throw new Error("Can't use Array.of with CoLists");
20
23
  }
21
- get _encoding() {
22
- return this.constructor._encoding;
24
+ get _schema() {
25
+ return this.constructor._schema;
23
26
  }
24
27
  get _owner() {
25
28
  return this._raw.group instanceof RawAccount
26
29
  ? Account.fromRaw(this._raw.group)
27
30
  : Group.fromRaw(this._raw.group);
28
31
  }
32
+ /** @category Content */
29
33
  get _refs() {
30
- return makeRefs((idx) => this._raw.get(idx), () => Array.from({ length: this._raw.entries().length }, (_, idx) => idx), this._loadedAs, (_idx) => this._encoding[ItemsSym]);
34
+ return makeRefs((idx) => this._raw.get(idx), () => Array.from({ length: this._raw.entries().length }, (_, idx) => idx), this._loadedAs, (_idx) => this._schema[ItemsSym]);
31
35
  }
32
36
  get _edits() {
33
37
  throw new Error("Not implemented");
@@ -38,14 +42,15 @@ export class CoList extends Array {
38
42
  static get [Symbol.species]() {
39
43
  return Array;
40
44
  }
41
- constructor(init, options) {
45
+ constructor(options) {
42
46
  super();
43
- if (!options) {
44
- throw new Error("Must provide options");
45
- }
46
- if (init && "owner" in options) {
47
+ Object.defineProperty(this, "_instanceID", {
48
+ value: `instance-${Math.random().toString(36).slice(2)}`,
49
+ enumerable: false,
50
+ });
51
+ if ("owner" in options) {
47
52
  this[InitValues] = {
48
- init,
53
+ init: options.init,
49
54
  owner: options.owner,
50
55
  };
51
56
  }
@@ -60,14 +65,17 @@ export class CoList extends Array {
60
65
  }
61
66
  return new Proxy(this, CoListProxyHandler);
62
67
  }
68
+ static create(items, options) {
69
+ return new this({ init: items, owner: options.owner });
70
+ }
63
71
  push(...items) {
64
- for (const item of toRawItems(items, this._encoding[ItemsSym])) {
72
+ for (const item of toRawItems(items, this._schema[ItemsSym])) {
65
73
  this._raw.append(item);
66
74
  }
67
75
  return this._raw.entries().length;
68
76
  }
69
77
  unshift(...items) {
70
- for (const item of toRawItems(items, this._encoding[ItemsSym])) {
78
+ for (const item of toRawItems(items, this._schema[ItemsSym])) {
71
79
  this._raw.prepend(item);
72
80
  }
73
81
  return this._raw.entries().length;
@@ -84,27 +92,28 @@ export class CoList extends Array {
84
92
  }
85
93
  splice(start, deleteCount, ...items) {
86
94
  const deleted = this.slice(start, start + deleteCount);
87
- for (let idxToDelete = start + deleteCount; idxToDelete > start; idxToDelete--) {
95
+ for (let idxToDelete = start + deleteCount - 1; idxToDelete >= start; idxToDelete--) {
88
96
  this._raw.delete(idxToDelete);
89
97
  }
90
- let appendAfter = start;
91
- for (const item of toRawItems(items, this._encoding[ItemsSym])) {
98
+ let appendAfter = Math.max(start - 1, 0);
99
+ for (const item of toRawItems(items, this._schema[ItemsSym])) {
100
+ console.log(this._raw.asArray(), appendAfter);
92
101
  this._raw.append(item, appendAfter);
93
102
  appendAfter++;
94
103
  }
95
104
  return deleted;
96
105
  }
97
106
  toJSON() {
98
- const itemDescriptor = this._encoding[ItemsSym];
107
+ const itemDescriptor = this._schema[ItemsSym];
99
108
  if (itemDescriptor === "json") {
100
109
  return this._raw.asArray();
101
110
  }
102
111
  else if ("encoded" in itemDescriptor) {
103
112
  return this._raw
104
113
  .asArray()
105
- .map((e) => Schema.encodeSync(itemDescriptor.encoded)(e));
114
+ .map((e) => encodeSync(itemDescriptor.encoded)(e));
106
115
  }
107
- else if ("ref" in itemDescriptor) {
116
+ else if (isRefEncoded(itemDescriptor)) {
108
117
  return this.map((item) => item?.toJSON());
109
118
  }
110
119
  else {
@@ -115,33 +124,27 @@ export class CoList extends Array {
115
124
  return this.toJSON();
116
125
  }
117
126
  static fromRaw(raw) {
118
- return new this(undefined, { fromRaw: raw });
127
+ return new this({ fromRaw: raw });
119
128
  }
120
- static encoding(def) {
121
- this._encoding || (this._encoding = {});
122
- Object.assign(this._encoding, def);
129
+ static schema(def) {
130
+ this._schema || (this._schema = {});
131
+ Object.assign(this._schema, def);
123
132
  }
124
133
  }
125
134
  _a = CoList;
126
135
  (() => {
127
136
  _a.prototype._type = "CoList";
128
137
  })();
129
- (() => {
130
- _a.prototype.subscribe = CoValueBase.prototype.subscribe;
131
- })();
132
- (() => {
133
- _a.prototype.subscribeEf = CoValueBase.prototype.subscribeEf;
134
- })();
135
- CoList.loadEf = CoValueBase.loadEf;
136
138
  CoList.load = CoValueBase.load;
137
- CoList.subscribeEf = CoValueBase.subscribeEf;
139
+ CoList.loadEf = CoValueBase.loadEf;
138
140
  CoList.subscribe = CoValueBase.subscribe;
141
+ CoList.subscribeEf = CoValueBase.subscribeEf;
139
142
  function toRawItems(items, itemDescriptor) {
140
143
  const rawItems = itemDescriptor === "json"
141
144
  ? items
142
145
  : "encoded" in itemDescriptor
143
- ? items?.map((e) => Schema.encodeSync(itemDescriptor.encoded)(e))
144
- : "ref" in itemDescriptor
146
+ ? items?.map((e) => encodeSync(itemDescriptor.encoded)(e))
147
+ : isRefEncoded(itemDescriptor)
145
148
  ? items?.map((v) => v.id)
146
149
  : (() => {
147
150
  throw new Error("Invalid element descriptor");
@@ -151,7 +154,7 @@ function toRawItems(items, itemDescriptor) {
151
154
  function init(list) {
152
155
  if (list[InitValues]) {
153
156
  const { init, owner } = list[InitValues];
154
- const raw = owner._raw.createList(toRawItems(init, list._encoding[ItemsSym]));
157
+ const raw = owner._raw.createList(toRawItems(init, list._schema[ItemsSym]));
155
158
  Object.defineProperties(list, {
156
159
  id: {
157
160
  value: raw.id,
@@ -165,7 +168,7 @@ function init(list) {
165
168
  const CoListProxyHandler = {
166
169
  get(target, key, receiver) {
167
170
  if (typeof key === "string" && !isNaN(+key)) {
168
- const itemDescriptor = target._encoding[ItemsSym];
171
+ const itemDescriptor = target._schema[ItemsSym];
169
172
  const rawValue = target._raw.get(Number(key));
170
173
  if (itemDescriptor === "json") {
171
174
  return rawValue;
@@ -173,12 +176,12 @@ const CoListProxyHandler = {
173
176
  else if ("encoded" in itemDescriptor) {
174
177
  return rawValue === undefined
175
178
  ? undefined
176
- : Schema.decodeSync(itemDescriptor.encoded)(rawValue);
179
+ : decodeSync(itemDescriptor.encoded)(rawValue);
177
180
  }
178
- else if ("ref" in itemDescriptor) {
181
+ else if (isRefEncoded(itemDescriptor)) {
179
182
  return rawValue === undefined
180
183
  ? undefined
181
- : new Ref(rawValue, target._loadedAs, itemDescriptor).accessFrom(receiver);
184
+ : new Ref(rawValue, target._loadedAs, itemDescriptor).accessFrom(receiver, Number(key));
182
185
  }
183
186
  }
184
187
  else if (key === "length") {
@@ -193,22 +196,22 @@ const CoListProxyHandler = {
193
196
  if (key === ItemsSym &&
194
197
  typeof value === "object" &&
195
198
  SchemaInit in value) {
196
- (_b = target.constructor)._encoding || (_b._encoding = {});
197
- target.constructor._encoding[ItemsSym] =
199
+ (_b = target.constructor)._schema || (_b._schema = {});
200
+ target.constructor._schema[ItemsSym] =
198
201
  value[SchemaInit];
199
202
  init(target);
200
203
  return true;
201
204
  }
202
205
  if (typeof key === "string" && !isNaN(+key)) {
203
- const itemDescriptor = target._encoding[ItemsSym];
206
+ const itemDescriptor = target._schema[ItemsSym];
204
207
  let rawValue;
205
208
  if (itemDescriptor === "json") {
206
209
  rawValue = value;
207
210
  }
208
211
  else if ("encoded" in itemDescriptor) {
209
- rawValue = Schema.encodeSync(itemDescriptor.encoded)(value);
212
+ rawValue = encodeSync(itemDescriptor.encoded)(value);
210
213
  }
211
- else if ("ref" in itemDescriptor) {
214
+ else if (isRefEncoded(itemDescriptor)) {
212
215
  rawValue = value.id;
213
216
  }
214
217
  target._raw.replace(Number(key), rawValue);
@@ -224,8 +227,8 @@ const CoListProxyHandler = {
224
227
  key === ItemsSym &&
225
228
  typeof descriptor.value === "object" &&
226
229
  SchemaInit in descriptor.value) {
227
- (_b = target.constructor)._encoding || (_b._encoding = {});
228
- target.constructor._encoding[ItemsSym] =
230
+ (_b = target.constructor)._schema || (_b._schema = {});
231
+ target.constructor._schema[ItemsSym] =
229
232
  descriptor.value[SchemaInit];
230
233
  init(target);
231
234
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"coList.js","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coList.js","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":"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"}