@agentshouse/mdruntime 0.1.0-cbb8d8acc9d19 → 0.1.0-cc56db96f86ae

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 (223) hide show
  1. package/AGENTS.md +285 -225
  2. package/README.md +21 -10
  3. package/dist/adapter.d.ts +114 -26
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/attempt.d.ts +16 -0
  6. package/dist/attempt.d.ts.map +1 -0
  7. package/dist/attempt.js +70 -0
  8. package/dist/binary.d.ts +23 -0
  9. package/dist/binary.d.ts.map +1 -0
  10. package/dist/binary.js +8 -0
  11. package/dist/bootstrap.d.ts +18 -5
  12. package/dist/bootstrap.d.ts.map +1 -1
  13. package/dist/bootstrap.js +147 -40
  14. package/dist/change-set.d.ts +7 -2
  15. package/dist/change-set.d.ts.map +1 -1
  16. package/dist/change-set.js +50 -16
  17. package/dist/change.d.ts +45 -0
  18. package/dist/change.d.ts.map +1 -1
  19. package/dist/change.js +34 -0
  20. package/dist/chat/acts.d.ts +33 -0
  21. package/dist/chat/acts.d.ts.map +1 -0
  22. package/dist/chat/acts.js +36 -0
  23. package/dist/chat/context.d.ts +3 -0
  24. package/dist/chat/context.d.ts.map +1 -0
  25. package/dist/chat/context.js +10 -0
  26. package/dist/chat/earlier.d.ts +10 -0
  27. package/dist/chat/earlier.d.ts.map +1 -0
  28. package/dist/chat/earlier.js +54 -0
  29. package/dist/chat/house.d.ts +25 -0
  30. package/dist/chat/house.d.ts.map +1 -0
  31. package/dist/chat/house.js +38 -0
  32. package/dist/chat/input.d.ts +11 -0
  33. package/dist/chat/input.d.ts.map +1 -0
  34. package/dist/chat/input.js +92 -0
  35. package/dist/chat/kit.d.ts +61 -0
  36. package/dist/chat/kit.d.ts.map +1 -0
  37. package/dist/chat/kit.js +123 -0
  38. package/dist/chat/lasting.d.ts +6 -0
  39. package/dist/chat/lasting.d.ts.map +1 -0
  40. package/dist/chat/lasting.js +19 -0
  41. package/dist/chat/list.d.ts +28 -0
  42. package/dist/chat/list.d.ts.map +1 -0
  43. package/dist/chat/list.js +103 -0
  44. package/dist/chat/markdown.d.ts +21 -0
  45. package/dist/chat/markdown.d.ts.map +1 -0
  46. package/dist/chat/markdown.js +246 -0
  47. package/dist/chat/message.d.ts +7 -0
  48. package/dist/chat/message.d.ts.map +1 -0
  49. package/dist/chat/message.js +237 -0
  50. package/dist/chat/messages.d.ts +29 -0
  51. package/dist/chat/messages.d.ts.map +1 -0
  52. package/dist/chat/messages.js +190 -0
  53. package/dist/chat/name.d.ts +7 -0
  54. package/dist/chat/name.d.ts.map +1 -0
  55. package/dist/chat/name.js +37 -0
  56. package/dist/chat/opened.d.ts +12 -0
  57. package/dist/chat/opened.d.ts.map +1 -0
  58. package/dist/chat/opened.js +19 -0
  59. package/dist/chat/overlay.d.ts +32 -0
  60. package/dist/chat/overlay.d.ts.map +1 -0
  61. package/dist/chat/overlay.js +103 -0
  62. package/dist/chat/parts.d.ts +58 -0
  63. package/dist/chat/parts.d.ts.map +1 -0
  64. package/dist/chat/parts.js +120 -0
  65. package/dist/chat/pieces.d.ts +62 -0
  66. package/dist/chat/pieces.d.ts.map +1 -0
  67. package/dist/chat/pieces.js +1110 -0
  68. package/dist/chat/process.d.ts +20 -0
  69. package/dist/chat/process.d.ts.map +1 -0
  70. package/dist/chat/process.js +32 -0
  71. package/dist/chat/provider.d.ts +68 -0
  72. package/dist/chat/provider.d.ts.map +1 -0
  73. package/dist/chat/provider.js +619 -0
  74. package/dist/chat/question.d.ts +9 -0
  75. package/dist/chat/question.d.ts.map +1 -0
  76. package/dist/chat/question.js +69 -0
  77. package/dist/chat/questions.d.ts +31 -0
  78. package/dist/chat/questions.d.ts.map +1 -0
  79. package/dist/chat/questions.js +111 -0
  80. package/dist/chat/read.d.ts +5 -0
  81. package/dist/chat/read.d.ts.map +1 -0
  82. package/dist/chat/read.js +13 -0
  83. package/dist/chat/ready.d.ts +37 -0
  84. package/dist/chat/ready.d.ts.map +1 -0
  85. package/dist/chat/ready.js +93 -0
  86. package/dist/chat/room-file.d.ts +8 -0
  87. package/dist/chat/room-file.d.ts.map +1 -0
  88. package/dist/chat/room-file.js +67 -0
  89. package/dist/chat/steady.d.ts +3 -0
  90. package/dist/chat/steady.d.ts.map +1 -0
  91. package/dist/chat/steady.js +26 -0
  92. package/dist/chat/style.d.ts +4 -0
  93. package/dist/chat/style.d.ts.map +1 -0
  94. package/dist/chat/style.js +306 -0
  95. package/dist/chat.d.ts +15 -0
  96. package/dist/chat.d.ts.map +1 -0
  97. package/dist/chat.js +8 -0
  98. package/dist/client.d.ts +33 -13
  99. package/dist/client.d.ts.map +1 -1
  100. package/dist/client.js +81 -16
  101. package/dist/collection.d.ts +23 -13
  102. package/dist/collection.d.ts.map +1 -1
  103. package/dist/collection.js +367 -38
  104. package/dist/connection.d.ts +54 -16
  105. package/dist/connection.d.ts.map +1 -1
  106. package/dist/connection.js +2582 -486
  107. package/dist/conversation.d.ts +39 -12
  108. package/dist/conversation.d.ts.map +1 -1
  109. package/dist/conversation.js +546 -171
  110. package/dist/digest.d.ts +2 -0
  111. package/dist/digest.d.ts.map +1 -0
  112. package/dist/digest.js +100 -0
  113. package/dist/durability.d.ts +7 -1
  114. package/dist/durability.d.ts.map +1 -1
  115. package/dist/entry.d.ts +17 -0
  116. package/dist/entry.d.ts.map +1 -0
  117. package/dist/entry.js +157 -0
  118. package/dist/expectation.d.ts +21 -0
  119. package/dist/expectation.d.ts.map +1 -0
  120. package/dist/expectation.js +70 -0
  121. package/dist/failure.d.ts +13 -0
  122. package/dist/failure.d.ts.map +1 -0
  123. package/dist/failure.js +19 -0
  124. package/dist/fence.d.ts +6 -0
  125. package/dist/fence.d.ts.map +1 -0
  126. package/dist/fence.js +10 -0
  127. package/dist/file.d.ts +2 -10
  128. package/dist/file.d.ts.map +1 -1
  129. package/dist/file.js +3 -120
  130. package/dist/host.d.ts +15 -3
  131. package/dist/host.d.ts.map +1 -1
  132. package/dist/host.js +107 -21
  133. package/dist/identity.d.ts +5 -0
  134. package/dist/identity.d.ts.map +1 -1
  135. package/dist/identity.js +19 -1
  136. package/dist/index.d.ts +20 -10
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/index.js +7 -0
  139. package/dist/memory.d.ts +11 -4
  140. package/dist/memory.d.ts.map +1 -1
  141. package/dist/memory.js +92 -27
  142. package/dist/model.d.ts +7 -4
  143. package/dist/model.d.ts.map +1 -1
  144. package/dist/model.js +10 -1
  145. package/dist/observation.d.ts +7 -2
  146. package/dist/observation.d.ts.map +1 -1
  147. package/dist/observation.js +29 -12
  148. package/dist/open.d.ts +2 -0
  149. package/dist/open.d.ts.map +1 -0
  150. package/dist/open.js +1 -0
  151. package/dist/outcome.d.ts +57 -3
  152. package/dist/outcome.d.ts.map +1 -1
  153. package/dist/outcome.js +67 -1
  154. package/dist/overlay.d.ts +18 -5
  155. package/dist/overlay.d.ts.map +1 -1
  156. package/dist/overlay.js +271 -165
  157. package/dist/query.d.ts +61 -4
  158. package/dist/query.d.ts.map +1 -1
  159. package/dist/query.js +40 -7
  160. package/dist/reach.d.ts +13 -4
  161. package/dist/reach.d.ts.map +1 -1
  162. package/dist/reach.js +201 -47
  163. package/dist/react.d.ts +31 -20
  164. package/dist/react.d.ts.map +1 -1
  165. package/dist/react.js +13 -21
  166. package/dist/read-side.d.ts +18 -9
  167. package/dist/read-side.d.ts.map +1 -1
  168. package/dist/read-side.js +903 -157
  169. package/dist/readiness.d.ts +53 -0
  170. package/dist/readiness.d.ts.map +1 -0
  171. package/dist/readiness.js +33 -0
  172. package/dist/reads.d.ts +11 -0
  173. package/dist/reads.d.ts.map +1 -0
  174. package/dist/reads.js +98 -0
  175. package/dist/recovery.d.ts +25 -0
  176. package/dist/recovery.d.ts.map +1 -0
  177. package/dist/recovery.js +198 -0
  178. package/dist/refresh.d.ts +13 -3
  179. package/dist/refresh.d.ts.map +1 -1
  180. package/dist/refresh.js +73 -43
  181. package/dist/replica.d.ts +16 -8
  182. package/dist/replica.d.ts.map +1 -1
  183. package/dist/replica.js +198 -91
  184. package/dist/room-draft.d.ts +40 -9
  185. package/dist/room-draft.d.ts.map +1 -1
  186. package/dist/room-draft.js +153 -37
  187. package/dist/rows.d.ts +10 -13
  188. package/dist/rows.d.ts.map +1 -1
  189. package/dist/rows.js +19 -14
  190. package/dist/save.d.ts +72 -4
  191. package/dist/save.d.ts.map +1 -1
  192. package/dist/save.js +812 -145
  193. package/dist/search.d.ts +52 -8
  194. package/dist/search.d.ts.map +1 -1
  195. package/dist/search.js +242 -46
  196. package/dist/seed.d.ts +16 -0
  197. package/dist/seed.d.ts.map +1 -0
  198. package/dist/seed.js +75 -0
  199. package/dist/shared.d.ts +19 -0
  200. package/dist/shared.d.ts.map +1 -0
  201. package/dist/shared.js +461 -0
  202. package/dist/status.d.ts +6 -2
  203. package/dist/status.d.ts.map +1 -1
  204. package/dist/status.js +0 -8
  205. package/dist/store.d.ts +90 -23
  206. package/dist/store.d.ts.map +1 -1
  207. package/dist/store.js +675 -295
  208. package/dist/tables.d.ts +181 -0
  209. package/dist/tables.d.ts.map +1 -0
  210. package/dist/tables.js +309 -0
  211. package/dist/turn.d.ts +9 -0
  212. package/dist/turn.d.ts.map +1 -0
  213. package/dist/turn.js +67 -0
  214. package/dist/windows.d.ts +21 -0
  215. package/dist/windows.d.ts.map +1 -0
  216. package/dist/windows.js +84 -0
  217. package/dist/wire.d.ts +165 -33
  218. package/dist/wire.d.ts.map +1 -1
  219. package/dist/wire.js +67 -31
  220. package/package.json +30 -14
  221. package/dist/attachment.d.ts +0 -3
  222. package/dist/attachment.d.ts.map +0 -1
  223. package/dist/attachment.js +0 -8
package/dist/client.js CHANGED
@@ -1,5 +1,11 @@
1
1
  import { observed } from './observation.js';
2
+ import { runtimeError } from './failure.js';
2
3
  import { answer, AUTHORIZATION_ENDED, PORT_CLOSED, } from './wire.js';
4
+ // React renders an arrived value in a later task and opens what that render observes as it commits, so this many frames opening nothing mean the page drew what it observes.
5
+ const SETTLED_FRAMES = 2;
6
+ function refused(refusal) {
7
+ return runtimeError(refusal.code, refusal.code, refusal.retryable);
8
+ }
3
9
  export function connectMdRuntime(port) {
4
10
  let sequence = 0;
5
11
  let refusal = null;
@@ -7,6 +13,8 @@ export function connectMdRuntime(port) {
7
13
  const calls = new Map();
8
14
  const opening = new Map();
9
15
  const observations = new Map();
16
+ let drawing = null;
17
+ let settling = null;
10
18
  const send = (message) => {
11
19
  port.postMessage(message);
12
20
  };
@@ -25,7 +33,7 @@ export function connectMdRuntime(port) {
25
33
  if (topic === 'connection-refusal')
26
34
  handle.receive(reported);
27
35
  }
28
- const failure = new Error(reported.reason);
36
+ const failure = refused(reported);
29
37
  for (const [id, waiting] of opening) {
30
38
  if (waiting.topic === 'connection-refusal')
31
39
  waiting.settle(begin(id, waiting.topic, reported));
@@ -36,12 +44,12 @@ export function connectMdRuntime(port) {
36
44
  for (const waiting of calls.values())
37
45
  waiting.fail(failure);
38
46
  calls.clear();
47
+ drawing?.();
39
48
  }
40
- function end(reason) {
49
+ function end(failure) {
41
50
  if (ended !== null)
42
51
  return;
43
- ended = reason;
44
- const failure = new Error(reason);
52
+ ended = failure;
45
53
  for (const waiting of opening.values())
46
54
  waiting.fail(failure);
47
55
  opening.clear();
@@ -51,6 +59,7 @@ export function connectMdRuntime(port) {
51
59
  for (const { handle } of observations.values())
52
60
  handle.end();
53
61
  observations.clear();
62
+ drawing?.();
54
63
  }
55
64
  port.addEventListener('message', (event) => {
56
65
  const message = answer(event.data);
@@ -61,7 +70,11 @@ export function connectMdRuntime(port) {
61
70
  return;
62
71
  }
63
72
  if (message.kind === 'ended') {
64
- end(AUTHORIZATION_ENDED);
73
+ for (const { topic, handle } of observations.values()) {
74
+ if (topic === 'member')
75
+ handle.receive(null);
76
+ }
77
+ end(runtimeError('authorization-ended', AUTHORIZATION_ENDED));
65
78
  return;
66
79
  }
67
80
  if (message.kind === 'event') {
@@ -71,31 +84,34 @@ export function connectMdRuntime(port) {
71
84
  const waiting = opening.get(message.id);
72
85
  if (waiting !== undefined) {
73
86
  opening.delete(message.id);
74
- if (message.kind === 'failure')
75
- waiting.fail(new Error(message.message));
87
+ if (message.kind === 'failure') {
88
+ waiting.fail(runtimeError(message.code, message.message, message.retryable));
89
+ }
76
90
  else
77
91
  waiting.settle(begin(message.id, waiting.topic, message.value));
92
+ drawing?.();
78
93
  return;
79
94
  }
80
95
  const called = calls.get(message.id);
81
96
  if (called === undefined)
82
97
  return;
83
98
  calls.delete(message.id);
84
- if (message.kind === 'failure')
85
- called.fail(new Error(message.message));
99
+ if (message.kind === 'failure') {
100
+ called.fail(runtimeError(message.code, message.message, message.retryable));
101
+ }
86
102
  else
87
103
  called.settle(message.value);
88
104
  });
89
105
  port.addEventListener('close', () => {
90
- end(PORT_CLOSED);
106
+ end(runtimeError('port-closed', PORT_CLOSED));
91
107
  });
92
108
  port.start();
93
109
  send({ kind: 'hello' });
94
110
  function ask(member, input) {
95
111
  if (ended !== null)
96
- return Promise.reject(new Error(ended));
112
+ return Promise.reject(ended);
97
113
  if (refusal !== null)
98
- return Promise.reject(new Error(refusal.reason));
114
+ return Promise.reject(refused(refusal));
99
115
  const id = (sequence += 1);
100
116
  return new Promise((settle, fail) => {
101
117
  calls.set(id, { settle: settle, fail });
@@ -104,17 +120,47 @@ export function connectMdRuntime(port) {
104
120
  }
105
121
  function watch(topic, input) {
106
122
  if (ended !== null)
107
- return Promise.reject(new Error(ended));
123
+ return Promise.reject(ended);
108
124
  const id = (sequence += 1);
109
125
  if (refusal !== null) {
110
126
  return topic === 'connection-refusal'
111
127
  ? Promise.resolve(begin(id, topic, refusal))
112
- : Promise.reject(new Error(refusal.reason));
128
+ : Promise.reject(refused(refusal));
113
129
  }
114
130
  return new Promise((settle, fail) => {
115
131
  opening.set(id, { topic, settle, fail });
116
132
  send({ kind: 'observe', id, topic, input });
133
+ drawing?.();
134
+ });
135
+ }
136
+ function settled() {
137
+ if (settling !== null)
138
+ return settling;
139
+ settling = new Promise((resolve) => {
140
+ let moved = 0;
141
+ const check = () => {
142
+ moved += 1;
143
+ if (opening.size > 0)
144
+ return;
145
+ const at = moved;
146
+ const waited = (frames) => {
147
+ requestAnimationFrame(() => {
148
+ if (frames < SETTLED_FRAMES) {
149
+ waited(frames + 1);
150
+ return;
151
+ }
152
+ if (moved !== at || opening.size > 0)
153
+ return;
154
+ drawing = null;
155
+ resolve();
156
+ });
157
+ };
158
+ waited(1);
159
+ };
160
+ drawing = check;
161
+ check();
117
162
  });
163
+ return settling;
118
164
  }
119
165
  return {
120
166
  rooms: () => ask('rooms', []),
@@ -128,15 +174,18 @@ export function connectMdRuntime(port) {
128
174
  discard: (room, path, revision) => ask('roomDraft.discard', [room, path, revision]),
129
175
  },
130
176
  save: (room, roomDrafts) => ask('save', [room, roomDrafts]),
177
+ saveParts: (room, parts) => ask('saveParts', [room, parts]),
131
178
  presentation: {
132
179
  read: () => ask('presentation.read', []),
133
180
  write: (value) => ask('presentation.write', [value]),
181
+ edit: (members) => ask('presentation.edit', [members]),
134
182
  },
135
183
  conversation: {
136
184
  list: () => ask('conversation.list', []),
137
185
  read: (conversation, options) => ask('conversation.read', [conversation, options]),
138
186
  create: (input) => ask('conversation.create', [input]),
139
- send: (conversation) => ask('conversation.send', [conversation]),
187
+ send: (conversation, operation, draft) => ask('conversation.send', [conversation, operation, draft]),
188
+ attach: (room, file) => ask('conversation.attach', [room, file]),
140
189
  answer: (conversation, answer) => ask('conversation.answer', [conversation, answer]),
141
190
  interrupt: (conversation) => ask('conversation.interrupt', [conversation]),
142
191
  kill: (conversation) => ask('conversation.kill', [conversation]),
@@ -144,15 +193,31 @@ export function connectMdRuntime(port) {
144
193
  delete: (conversation) => ask('conversation.delete', [conversation]),
145
194
  },
146
195
  chatDraft: {
147
- write: (conversation, draft) => ask('chatDraft.write', [conversation, draft]),
196
+ write: (conversation, draft, revision) => ask('chatDraft.write', [conversation, draft, revision]),
197
+ prepend: (conversation, draft) => ask('chatDraft.prepend', [conversation, draft]),
148
198
  discard: (conversation) => ask('chatDraft.discard', [conversation]),
149
199
  },
150
200
  history: (locator, path, query) => ask('history', [locator, path, query]),
201
+ resolve: (room, path, destination) => ask('resolve', [room, path, destination]),
202
+ binaryFile: {
203
+ read: (room, path, revision) => ask('binaryFile.read', [room, path, revision]),
204
+ link: (room, path, revision) => ask('binaryFile.link', [room, path, revision]),
205
+ readReference: (reference) => ask('binaryFile.readReference', [reference]),
206
+ },
151
207
  call: (name, input) => ask('call', [name, input]),
152
208
  reached: (locator, roomVersion, path) => ask('reached', [locator, roomVersion, path]),
153
209
  log: () => ask('log', []),
154
210
  persistence: () => ask('persistence', []),
211
+ retry: () => ask('retry', []),
155
212
  observe: ((topic, ...input) => watch(topic, input)),
156
213
  reauthorize: () => ask('reauthorize', []),
214
+ settled,
157
215
  };
158
216
  }
217
+ const turns = new WeakMap();
218
+ export function inTurn(client, work) {
219
+ const turn = (turns.get(client) ?? Promise.resolve()).then(work);
220
+ turns.set(client, turn.then(() => undefined, () => undefined));
221
+ return turn;
222
+ }
223
+ export { unanswered } from './wire.js';
@@ -1,11 +1,14 @@
1
- import { type Document, type Validation } from '@agentshouse/mdmodel';
2
- import type { ModelState } from './model.js';
1
+ import { type Document, type Frontmatter, type Validation } from '@agentshouse/mdmodel';
2
+ import { type ModelState } from './model.js';
3
3
  import type { MdModelIdentity } from './adapter.js';
4
+ import { type Paths } from './shared.js';
4
5
  import type { Refused } from './transfer.js';
6
+ import { type Later } from './turn.js';
5
7
  export declare const MD_MODEL: MdModelIdentity;
6
8
  export type Collection = {
7
- documents: Readonly<Record<string, Document>>;
9
+ text: Readonly<Record<string, string>>;
8
10
  composition: Composition;
11
+ document(path: string): Document | undefined;
9
12
  };
10
13
  export type Composition = {
11
14
  model: ModelState;
@@ -15,16 +18,23 @@ export type Composition = {
15
18
  } | null;
16
19
  };
17
20
  export declare function governing(composition: Composition, path: string): ModelState;
18
- type Previous = {
19
- text: Readonly<Record<string, string>>;
20
- collection: Collection;
21
- };
22
- export declare function parseCollection(text: Readonly<Record<string, string>>, composition: Composition, previous?: Previous): Collection;
23
- export declare function readCollection(text: Readonly<Record<string, string>>, composition: Composition, previous?: Previous): {
24
- kind: 'read';
25
- collection: Collection;
26
- } | Refused;
21
+ export declare function collectionOf(text: Readonly<Record<string, string>>, composition: Composition, previous?: Collection): Collection;
22
+ export declare function collecting(text: Readonly<Record<string, string>>, composition: Composition, previous?: Collection): Generator<number, Collection, void>;
23
+ export declare function passingFrontmatter(collection: Collection, path: string): Frontmatter | undefined;
24
+ export declare function documentsOf(collection: Collection): Generator<number, Iterable<readonly [string, Document]>, void>;
25
+ export declare function unreadable(text: Readonly<Record<string, string>>, previous?: Readonly<Record<string, string>>): Generator<number, Refused | null, void>;
27
26
  export declare function validRoot(root: unknown): root is string;
28
- export declare function validateCollection(text: Readonly<Record<string, string>>, binaryTargets: readonly string[], composition: Composition): Validation;
27
+ export declare function validateCollection(text: Readonly<Record<string, string>>, binaryTargets: readonly string[], composition: Composition): Generator<number, Validation, void>;
28
+ type Held = {
29
+ text: Paths<string>;
30
+ binaries: Paths<unknown>;
31
+ };
32
+ export declare function indexReferrers(held: Held, composition: Composition): Later<void>;
33
+ export declare function referencesIndexed(held: Held, composition: Composition): boolean;
34
+ export declare function referring(held: Held, composition: Composition, targets: Iterable<string>): Generator<number, ReadonlySet<string> | null, void>;
35
+ export declare function available(composition: Composition): boolean;
36
+ export declare function changedCleanly(next: Held, previous: Held & {
37
+ composition: Composition;
38
+ }, composition: Composition): Generator<number, boolean, void>;
29
39
  export {};
30
40
  //# sourceMappingURL=collection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,QAAQ,EAEb,KAAK,UAAU,EAEhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAO,MAAM,QAAQ,EAAE,eAAwE,CAAC;AAIhG,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9C,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE;QAAE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;CACnE,CAAC;AASF,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAI5E;AAED,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC;AAanF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,QAAQ,GAClB,UAAU,CAOZ;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,QAAQ,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,GAAG,OAAO,CAQpD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAEvD;AAwBD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,WAAW,EAAE,WAAW,GACvB,UAAU,CA0BZ"}
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}