@agentshouse/mdruntime 0.1.0-cf24798931067 → 0.1.0-cf281e8224a5d

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 (335) hide show
  1. package/README.md +22 -10
  2. package/dist/acceptance.d.ts +6 -0
  3. package/dist/acceptance.d.ts.map +1 -0
  4. package/dist/acceptance.js +385 -0
  5. package/dist/actions.d.ts +20 -0
  6. package/dist/actions.d.ts.map +1 -0
  7. package/dist/actions.js +251 -0
  8. package/dist/adapter.d.ts +177 -54
  9. package/dist/adapter.d.ts.map +1 -1
  10. package/dist/attached-model.d.ts +7 -10
  11. package/dist/attached-model.d.ts.map +1 -1
  12. package/dist/attached-model.js +40 -41
  13. package/dist/attempt.d.ts.map +1 -1
  14. package/dist/attempt.js +14 -1
  15. package/dist/binary.d.ts +18 -0
  16. package/dist/binary.d.ts.map +1 -0
  17. package/dist/binary.js +8 -0
  18. package/dist/bootstrap.d.ts +31 -11
  19. package/dist/bootstrap.d.ts.map +1 -1
  20. package/dist/bootstrap.js +324 -92
  21. package/dist/cell.d.ts +6 -0
  22. package/dist/cell.d.ts.map +1 -0
  23. package/dist/cell.js +9 -0
  24. package/dist/chain.d.ts +12 -0
  25. package/dist/chain.d.ts.map +1 -0
  26. package/dist/chain.js +64 -0
  27. package/dist/change-set.d.ts +9 -14
  28. package/dist/change-set.d.ts.map +1 -1
  29. package/dist/change-set.js +11 -62
  30. package/dist/change.d.ts +42 -0
  31. package/dist/change.d.ts.map +1 -1
  32. package/dist/change.js +36 -0
  33. package/dist/chat-types.d.ts +5 -0
  34. package/dist/chat-types.d.ts.map +1 -0
  35. package/dist/chat-types.js +13 -0
  36. package/dist/client.d.ts +50 -15
  37. package/dist/client.d.ts.map +1 -1
  38. package/dist/client.js +110 -9
  39. package/dist/collection.d.ts +11 -7
  40. package/dist/collection.d.ts.map +1 -1
  41. package/dist/collection.js +38 -79
  42. package/dist/compile.d.ts +16 -0
  43. package/dist/compile.d.ts.map +1 -0
  44. package/dist/compile.js +711 -0
  45. package/dist/connection.d.ts +8 -111
  46. package/dist/connection.d.ts.map +1 -1
  47. package/dist/connection.js +104 -2219
  48. package/dist/context.d.ts +2 -0
  49. package/dist/context.d.ts.map +1 -0
  50. package/dist/context.js +7 -0
  51. package/dist/conversation-live.d.ts +136 -0
  52. package/dist/conversation-live.d.ts.map +1 -0
  53. package/dist/conversation-live.js +248 -0
  54. package/dist/conversation-row.d.ts +33 -0
  55. package/dist/conversation-row.d.ts.map +1 -0
  56. package/dist/conversation-row.js +53 -0
  57. package/dist/conversation.d.ts +57 -40
  58. package/dist/conversation.d.ts.map +1 -1
  59. package/dist/conversation.js +992 -543
  60. package/dist/digest.d.ts +7 -0
  61. package/dist/digest.d.ts.map +1 -0
  62. package/dist/digest.js +113 -0
  63. package/dist/discovery.d.ts +10 -0
  64. package/dist/discovery.d.ts.map +1 -0
  65. package/dist/discovery.js +175 -0
  66. package/dist/durability.d.ts +19 -1
  67. package/dist/durability.d.ts.map +1 -1
  68. package/dist/durability.js +5 -0
  69. package/dist/entry.d.ts +20 -0
  70. package/dist/entry.d.ts.map +1 -0
  71. package/dist/entry.js +161 -0
  72. package/dist/expectation.d.ts +4 -2
  73. package/dist/expectation.d.ts.map +1 -1
  74. package/dist/expectation.js +33 -11
  75. package/dist/figures.d.ts +49 -0
  76. package/dist/figures.d.ts.map +1 -0
  77. package/dist/figures.js +197 -0
  78. package/dist/file.d.ts +2 -19
  79. package/dist/file.d.ts.map +1 -1
  80. package/dist/file.js +7 -122
  81. package/dist/holdings.d.ts +29 -0
  82. package/dist/holdings.d.ts.map +1 -0
  83. package/dist/holdings.js +95 -0
  84. package/dist/host.d.ts +12 -3
  85. package/dist/host.d.ts.map +1 -1
  86. package/dist/host.js +132 -18
  87. package/dist/identity.d.ts +1 -0
  88. package/dist/identity.d.ts.map +1 -1
  89. package/dist/identity.js +3 -0
  90. package/dist/index.d.ts +35 -10
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +13 -0
  93. package/dist/install.d.ts +56 -0
  94. package/dist/install.d.ts.map +1 -0
  95. package/dist/install.js +554 -0
  96. package/dist/job.d.ts +33 -0
  97. package/dist/job.d.ts.map +1 -0
  98. package/dist/job.js +54 -0
  99. package/dist/lifecycle.d.ts +7 -0
  100. package/dist/lifecycle.d.ts.map +1 -0
  101. package/dist/lifecycle.js +268 -0
  102. package/dist/listing.d.ts +53 -0
  103. package/dist/listing.d.ts.map +1 -0
  104. package/dist/listing.js +176 -0
  105. package/dist/live.d.ts +23 -0
  106. package/dist/live.d.ts.map +1 -0
  107. package/dist/live.js +163 -0
  108. package/dist/locks.d.ts +9 -0
  109. package/dist/locks.d.ts.map +1 -0
  110. package/dist/locks.js +61 -0
  111. package/dist/log.d.ts +1 -0
  112. package/dist/log.d.ts.map +1 -1
  113. package/dist/lost.d.ts +5 -0
  114. package/dist/lost.d.ts.map +1 -0
  115. package/dist/lost.js +61 -0
  116. package/dist/media.d.ts +8 -0
  117. package/dist/media.d.ts.map +1 -0
  118. package/dist/media.js +218 -0
  119. package/dist/memory.d.ts +21 -7
  120. package/dist/memory.d.ts.map +1 -1
  121. package/dist/memory.js +271 -91
  122. package/dist/messages.d.ts +52 -0
  123. package/dist/messages.d.ts.map +1 -0
  124. package/dist/messages.js +162 -0
  125. package/dist/model.d.ts +11 -11
  126. package/dist/model.d.ts.map +1 -1
  127. package/dist/model.js +7 -10
  128. package/dist/models.d.ts +14 -0
  129. package/dist/models.d.ts.map +1 -0
  130. package/dist/models.js +195 -0
  131. package/dist/name.d.ts +4 -0
  132. package/dist/name.d.ts.map +1 -0
  133. package/dist/name.js +122 -0
  134. package/dist/observation.d.ts +22 -4
  135. package/dist/observation.d.ts.map +1 -1
  136. package/dist/observation.js +127 -26
  137. package/dist/opened.d.ts +22 -0
  138. package/dist/opened.d.ts.map +1 -0
  139. package/dist/opened.js +107 -0
  140. package/dist/opening.d.ts +4 -0
  141. package/dist/opening.d.ts.map +1 -0
  142. package/dist/opening.js +57 -0
  143. package/dist/outcome.d.ts +56 -5
  144. package/dist/outcome.d.ts.map +1 -1
  145. package/dist/outcome.js +49 -0
  146. package/dist/overlay.d.ts +16 -5
  147. package/dist/overlay.d.ts.map +1 -1
  148. package/dist/overlay.js +140 -177
  149. package/dist/{chat/parts.d.ts → parts.d.ts} +12 -9
  150. package/dist/parts.d.ts.map +1 -0
  151. package/dist/{chat/parts.js → parts.js} +53 -46
  152. package/dist/paths.d.ts +2 -0
  153. package/dist/paths.d.ts.map +1 -1
  154. package/dist/paths.js +26 -0
  155. package/dist/preparation.d.ts +20 -0
  156. package/dist/preparation.d.ts.map +1 -0
  157. package/dist/preparation.js +226 -0
  158. package/dist/queries.d.ts +16 -0
  159. package/dist/queries.d.ts.map +1 -0
  160. package/dist/queries.js +272 -0
  161. package/dist/query.d.ts +51 -183
  162. package/dist/query.d.ts.map +1 -1
  163. package/dist/query.js +3 -464
  164. package/dist/{chat/questions.d.ts → questions.d.ts} +5 -2
  165. package/dist/questions.d.ts.map +1 -0
  166. package/dist/{chat/questions.js → questions.js} +13 -2
  167. package/dist/reach.d.ts +21 -5
  168. package/dist/reach.d.ts.map +1 -1
  169. package/dist/reach.js +291 -69
  170. package/dist/react.d.ts +20 -6
  171. package/dist/react.d.ts.map +1 -1
  172. package/dist/react.js +17 -18
  173. package/dist/{chat/read.d.ts → read.d.ts} +2 -0
  174. package/dist/read.d.ts.map +1 -0
  175. package/dist/{chat/read.js → read.js} +4 -0
  176. package/dist/readiness.d.ts +49 -0
  177. package/dist/readiness.d.ts.map +1 -0
  178. package/dist/readiness.js +27 -0
  179. package/dist/reads.d.ts +37 -0
  180. package/dist/reads.d.ts.map +1 -0
  181. package/dist/reads.js +171 -0
  182. package/dist/recovery.d.ts +26 -0
  183. package/dist/recovery.d.ts.map +1 -0
  184. package/dist/recovery.js +232 -0
  185. package/dist/refresh.d.ts +17 -14
  186. package/dist/refresh.d.ts.map +1 -1
  187. package/dist/refresh.js +143 -56
  188. package/dist/refusal.d.ts +5 -0
  189. package/dist/refusal.d.ts.map +1 -0
  190. package/dist/refusal.js +55 -0
  191. package/dist/replica.d.ts +59 -33
  192. package/dist/replica.d.ts.map +1 -1
  193. package/dist/replica.js +342 -158
  194. package/dist/room-draft.d.ts +54 -8
  195. package/dist/room-draft.d.ts.map +1 -1
  196. package/dist/room-draft.js +268 -63
  197. package/dist/room-drafts.d.ts +24 -0
  198. package/dist/room-drafts.d.ts.map +1 -0
  199. package/dist/room-drafts.js +217 -0
  200. package/dist/rows.d.ts +30 -35
  201. package/dist/rows.d.ts.map +1 -1
  202. package/dist/rows.js +59 -124
  203. package/dist/runtime.d.ts +43 -0
  204. package/dist/runtime.d.ts.map +1 -0
  205. package/dist/runtime.js +1 -0
  206. package/dist/save.d.ts +74 -3
  207. package/dist/save.d.ts.map +1 -1
  208. package/dist/save.js +812 -153
  209. package/dist/saves.d.ts +70 -0
  210. package/dist/saves.d.ts.map +1 -0
  211. package/dist/saves.js +1005 -0
  212. package/dist/search.d.ts +15 -55
  213. package/dist/search.d.ts.map +1 -1
  214. package/dist/search.js +10 -121
  215. package/dist/seed.d.ts +25 -0
  216. package/dist/seed.d.ts.map +1 -0
  217. package/dist/seed.js +145 -0
  218. package/dist/shared.d.ts +10 -0
  219. package/dist/shared.d.ts.map +1 -0
  220. package/dist/shared.js +339 -0
  221. package/dist/shown.d.ts +31 -0
  222. package/dist/shown.d.ts.map +1 -0
  223. package/dist/shown.js +292 -0
  224. package/dist/socket/admission.d.ts +7 -0
  225. package/dist/socket/admission.d.ts.map +1 -0
  226. package/dist/socket/admission.js +39 -0
  227. package/dist/socket/answers.d.ts +6 -0
  228. package/dist/socket/answers.d.ts.map +1 -0
  229. package/dist/socket/answers.js +20 -0
  230. package/dist/socket/lanes.d.ts +20 -0
  231. package/dist/socket/lanes.d.ts.map +1 -0
  232. package/dist/socket/lanes.js +77 -0
  233. package/dist/socket/reads.d.ts +10 -0
  234. package/dist/socket/reads.d.ts.map +1 -0
  235. package/dist/socket/reads.js +31 -0
  236. package/dist/socket/rooms.d.ts +44 -0
  237. package/dist/socket/rooms.d.ts.map +1 -0
  238. package/dist/socket/rooms.js +90 -0
  239. package/dist/socket/session.d.ts +38 -0
  240. package/dist/socket/session.d.ts.map +1 -0
  241. package/dist/socket/session.js +23 -0
  242. package/dist/socket.d.ts +70 -0
  243. package/dist/socket.d.ts.map +1 -0
  244. package/dist/socket.js +175 -0
  245. package/dist/source.d.ts +61 -0
  246. package/dist/source.d.ts.map +1 -0
  247. package/dist/source.js +82 -0
  248. package/dist/status.d.ts +5 -2
  249. package/dist/status.d.ts.map +1 -1
  250. package/dist/status.js +3 -7
  251. package/dist/store/fences.d.ts +16 -0
  252. package/dist/store/fences.d.ts.map +1 -0
  253. package/dist/store/fences.js +26 -0
  254. package/dist/store/installs.d.ts +30 -0
  255. package/dist/store/installs.d.ts.map +1 -0
  256. package/dist/store/installs.js +34 -0
  257. package/dist/store/readiness.d.ts +10 -0
  258. package/dist/store/readiness.d.ts.map +1 -0
  259. package/dist/store/readiness.js +52 -0
  260. package/dist/store/records.d.ts +212 -0
  261. package/dist/store/records.d.ts.map +1 -0
  262. package/dist/store/records.js +431 -0
  263. package/dist/store/room-held.d.ts +8 -0
  264. package/dist/store/room-held.d.ts.map +1 -0
  265. package/dist/store/room-held.js +17 -0
  266. package/dist/store/space.d.ts +11 -0
  267. package/dist/store/space.d.ts.map +1 -0
  268. package/dist/store/space.js +41 -0
  269. package/dist/store/watchers.d.ts +17 -0
  270. package/dist/store/watchers.d.ts.map +1 -0
  271. package/dist/store/watchers.js +56 -0
  272. package/dist/store/writes.d.ts +24 -0
  273. package/dist/store/writes.d.ts.map +1 -0
  274. package/dist/store/writes.js +125 -0
  275. package/dist/store.d.ts +106 -117
  276. package/dist/store.d.ts.map +1 -1
  277. package/dist/store.js +137 -496
  278. package/dist/stored.d.ts +156 -0
  279. package/dist/stored.d.ts.map +1 -0
  280. package/dist/stored.js +649 -0
  281. package/dist/surface.d.ts +88 -0
  282. package/dist/surface.d.ts.map +1 -0
  283. package/dist/surface.js +223 -0
  284. package/dist/sync.d.ts +19 -0
  285. package/dist/sync.d.ts.map +1 -0
  286. package/dist/sync.js +532 -0
  287. package/dist/tables.d.ts +416 -0
  288. package/dist/tables.d.ts.map +1 -0
  289. package/dist/tables.js +740 -0
  290. package/dist/tallies.d.ts +18 -0
  291. package/dist/tallies.d.ts.map +1 -0
  292. package/dist/tallies.js +129 -0
  293. package/dist/transfer.d.ts +0 -5
  294. package/dist/transfer.d.ts.map +1 -1
  295. package/dist/turn.d.ts +9 -0
  296. package/dist/turn.d.ts.map +1 -0
  297. package/dist/turn.js +75 -0
  298. package/dist/validation.d.ts +29 -0
  299. package/dist/validation.d.ts.map +1 -0
  300. package/dist/validation.js +104 -0
  301. package/dist/windows.d.ts +11 -0
  302. package/dist/windows.d.ts.map +1 -0
  303. package/dist/windows.js +16 -0
  304. package/dist/wire.d.ts +181 -31
  305. package/dist/wire.d.ts.map +1 -1
  306. package/dist/wire.js +62 -29
  307. package/package.json +26 -15
  308. package/AGENTS.md +0 -290
  309. package/dist/attachment.d.ts +0 -3
  310. package/dist/attachment.d.ts.map +0 -1
  311. package/dist/attachment.js +0 -8
  312. package/dist/chat/acts.d.ts +0 -34
  313. package/dist/chat/acts.d.ts.map +0 -1
  314. package/dist/chat/acts.js +0 -36
  315. package/dist/chat/messages.d.ts +0 -21
  316. package/dist/chat/messages.d.ts.map +0 -1
  317. package/dist/chat/messages.js +0 -151
  318. package/dist/chat/overlay.d.ts +0 -31
  319. package/dist/chat/overlay.d.ts.map +0 -1
  320. package/dist/chat/overlay.js +0 -97
  321. package/dist/chat/parts.d.ts.map +0 -1
  322. package/dist/chat/process.d.ts +0 -20
  323. package/dist/chat/process.d.ts.map +0 -1
  324. package/dist/chat/process.js +0 -32
  325. package/dist/chat/provider.d.ts +0 -57
  326. package/dist/chat/provider.d.ts.map +0 -1
  327. package/dist/chat/provider.js +0 -637
  328. package/dist/chat/questions.d.ts.map +0 -1
  329. package/dist/chat/read.d.ts.map +0 -1
  330. package/dist/chat.d.ts +0 -7
  331. package/dist/chat.d.ts.map +0 -1
  332. package/dist/chat.js +0 -2
  333. package/dist/read-side.d.ts +0 -18
  334. package/dist/read-side.d.ts.map +0 -1
  335. package/dist/read-side.js +0 -433
@@ -1,78 +1,25 @@
1
- import { passingDocument } from './collection.js';
2
- import { sameChange } from './overlay.js';
3
- import { beneath } from './paths.js';
4
- import { compositionOf, sameMembership } from './replica.js';
5
- import { markdownPath, rowsOf } from './rows.js';
6
- function rowsAt(locator, replica, path) {
7
- if (replica === null)
8
- return [];
9
- const visible = replica.visible;
10
- const document = markdownPath(path) ? passingDocument(visible.collection, path) : null;
11
- const held = visible.documents[path] !== undefined && document !== undefined;
12
- if (!held && !visible.binaryTargets.includes(path))
13
- return [];
14
- return rowsOf(locator, path, document ?? null, compositionOf(replica.confirmed.record), visible.changes[path] ?? null);
15
- }
16
- function modelShape(model) {
17
- return model.status === 'unavailable' ? 'unavailable' : JSON.stringify(model.types);
18
- }
19
- export function changeSet(locator, before, after, changed = {}) {
20
- const paths = new Set([
21
- ...Object.keys(before?.visible.documents ?? {}),
22
- ...Object.keys(after?.visible.documents ?? {}),
23
- ...(before?.visible.binaryTargets ?? []),
24
- ...(after?.visible.binaryTargets ?? []),
25
- ]);
26
- const documents = [];
27
- const oldRoom = before?.confirmed.record;
28
- const newRoom = after?.confirmed.record;
29
- const collectionChanged = oldRoom !== undefined &&
30
- newRoom !== undefined &&
31
- modelShape(oldRoom.model) !== modelShape(newRoom.model);
32
- const selectionChanged = oldRoom !== undefined &&
33
- newRoom !== undefined &&
34
- modelShape(oldRoom.selectionModel) !== modelShape(newRoom.selectionModel);
35
- const reclassified = oldRoom !== undefined && newRoom !== undefined && !sameMembership(oldRoom, newRoom);
36
- for (const path of paths) {
37
- const selected = newRoom?.typedSelection?.roots.some((root) => beneath(root, path)) ?? false;
38
- const retyped = selected ? selectionChanged : collectionChanged;
39
- if (before?.visible.documents[path] === after?.visible.documents[path] &&
40
- before?.visible.binaryTargets.includes(path) ===
41
- after?.visible.binaryTargets.includes(path) &&
42
- before?.visible.revisions[path] === after?.visible.revisions[path] &&
43
- sameChange(before?.visible.changes[path], after?.visible.changes[path]) &&
44
- !retyped &&
45
- !reclassified)
46
- continue;
47
- documents.push({
48
- locator,
49
- path,
50
- get before() {
51
- return rowsAt(locator, before, path);
52
- },
53
- get after() {
54
- return rowsAt(locator, after, path);
55
- },
56
- });
57
- }
1
+ export function changeSet(locator, changed = {}) {
2
+ const documents = changed.documents;
58
3
  return {
59
- documents,
4
+ documents: documents === undefined
5
+ ? []
6
+ : documents === null
7
+ ? [{ locator, path: null }]
8
+ : documents.map((path) => ({ locator, path })),
60
9
  drafts: (changed.drafts ?? []).map((path) => ({ locator, path })),
61
10
  rooms: changed.room ? [locator] : [],
62
11
  queues: changed.queue ? [locator] : [],
63
12
  presentations: changed.presentation === undefined ? [] : [changed.presentation],
64
- messages: [],
65
13
  conversations: [],
66
14
  };
67
15
  }
68
- export function conversationChangeSet(messages, conversations) {
16
+ export function conversationChangeSet(conversations) {
69
17
  return {
70
18
  documents: [],
71
19
  drafts: [],
72
20
  rooms: [],
73
21
  queues: [],
74
22
  presentations: [],
75
- messages,
76
23
  conversations: [...new Set(conversations)],
77
24
  };
78
25
  }
@@ -83,7 +30,9 @@ export function mergeChangeSets(sets) {
83
30
  rooms: [...new Set(sets.flatMap((set) => set.rooms))],
84
31
  queues: [...new Set(sets.flatMap((set) => set.queues))],
85
32
  presentations: [...new Set(sets.flatMap((set) => set.presentations))],
86
- messages: sets.flatMap((set) => set.messages),
87
33
  conversations: [...new Set(sets.flatMap((set) => set.conversations))],
88
34
  };
89
35
  }
36
+ export function touches(set, locator, path) {
37
+ return set.documents.some((change) => change.locator === locator && (change.path === null || change.path === path));
38
+ }
package/dist/change.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { BinaryFile, HeadChange } from './adapter.js';
1
2
  export type Change = {
2
3
  readonly kind: 'field';
3
4
  readonly path: string;
@@ -25,6 +26,13 @@ export type Change = {
25
26
  readonly kind: 'replace';
26
27
  readonly path: string;
27
28
  readonly content: string;
29
+ } | {
30
+ readonly kind: 'binary';
31
+ readonly path: string;
32
+ readonly localId: string;
33
+ readonly byteLength: number;
34
+ readonly mediaType: string;
35
+ readonly sha256: string;
28
36
  } | {
29
37
  readonly kind: 'move';
30
38
  readonly path: string;
@@ -32,6 +40,33 @@ export type Change = {
32
40
  } | {
33
41
  readonly kind: 'remove';
34
42
  readonly path: string;
43
+ } | (Arriving & {
44
+ readonly content: string;
45
+ }) | (Arriving & {
46
+ readonly binary: BinaryFile;
47
+ });
48
+ type Arriving = {
49
+ readonly kind: 'arrival';
50
+ readonly path: string;
51
+ readonly revision?: string;
52
+ readonly fileId?: string;
53
+ readonly created?: string;
54
+ readonly change?: HeadChange;
55
+ };
56
+ export type RoomMove = {
57
+ readonly source: {
58
+ readonly room: string;
59
+ readonly baseRoomVersion: string;
60
+ };
61
+ readonly destination: {
62
+ readonly room: string;
63
+ readonly baseRoomVersion: string;
64
+ readonly handle: string;
65
+ };
66
+ readonly moves: readonly {
67
+ readonly path: string;
68
+ readonly to: string;
69
+ }[];
35
70
  };
36
71
  export type Precondition = {
37
72
  readonly kind: 'field';
@@ -73,6 +108,13 @@ export type ChangeBatch = {
73
108
  readonly changes: readonly Change[];
74
109
  readonly preconditions: readonly Precondition[];
75
110
  readonly writtenBy?: WrittenBy;
111
+ readonly between?: RoomMove;
76
112
  };
77
113
  export declare function immutable(batch: ChangeBatch): ChangeBatch;
114
+ export declare function partnerOf(batch: ChangeBatch, locator: string): string | null;
115
+ export declare function leaving(batch: ChangeBatch, locator: string): boolean;
116
+ export declare function landing(changes: readonly Change[], index: number, path: string): string | null;
117
+ export declare function departure(changes: readonly Change[], index: number): string;
118
+ export declare function queuedFile(batch: ChangeBatch, path: string, localId: string): number;
119
+ export {};
78
120
  //# sourceMappingURL=change.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../src/change.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../src/change.ts"],"names":[],"mappings":"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"}
package/dist/change.js CHANGED
@@ -11,3 +11,39 @@ function frozen(value) {
11
11
  export function immutable(batch) {
12
12
  return frozen(batch);
13
13
  }
14
+ export function partnerOf(batch, locator) {
15
+ const between = batch.between;
16
+ if (between === undefined)
17
+ return null;
18
+ return between.source.room === locator ? between.destination.room : between.source.room;
19
+ }
20
+ export function leaving(batch, locator) {
21
+ return batch.between?.source.room === locator;
22
+ }
23
+ export function landing(changes, index, path) {
24
+ let at = path;
25
+ for (let next = index + 1; next < changes.length; next += 1) {
26
+ const change = changes[next];
27
+ if (change.path !== at)
28
+ continue;
29
+ if (change.kind === 'remove')
30
+ return null;
31
+ if (change.kind === 'move')
32
+ at = change.to;
33
+ }
34
+ return at;
35
+ }
36
+ export function departure(changes, index) {
37
+ let at = changes[index].path;
38
+ for (let earlier = index - 1; earlier >= 0; earlier -= 1) {
39
+ const change = changes[earlier];
40
+ if (change.kind === 'move' && change.to === at)
41
+ at = change.path;
42
+ }
43
+ return at;
44
+ }
45
+ export function queuedFile(batch, path, localId) {
46
+ return batch.changes.findIndex((change, index) => change.kind === 'binary' &&
47
+ change.localId === localId &&
48
+ landing(batch.changes, index, change.path) === path);
49
+ }
@@ -0,0 +1,5 @@
1
+ export declare const CHAT_TYPE = "chat";
2
+ export declare const CHAT_MESSAGE_TYPE = "chat-message";
3
+ export declare function keptFile(line: string): string | null;
4
+ export declare function keptLines(body: string): string[];
5
+ //# sourceMappingURL=chat-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-types.d.ts","sourceRoot":"","sources":["../src/chat-types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,SAAS,CAAC;AAEhC,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAMhD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKhD"}
@@ -0,0 +1,13 @@
1
+ export const CHAT_TYPE = 'chat';
2
+ export const CHAT_MESSAGE_TYPE = 'chat-message';
3
+ const KEPT_LINE = /^\[([^\]\n]+)\]\(\1\)$/u;
4
+ const TOO_BIG_LINE = /^\[too big to keep: [^\n]*\]$/u;
5
+ export function keptFile(line) {
6
+ return KEPT_LINE.exec(line)?.[1] ?? null;
7
+ }
8
+ export function keptLines(body) {
9
+ const trimmed = body.replace(/\n+$/u, '');
10
+ const at = trimmed.lastIndexOf('\n\n');
11
+ const lines = (at === -1 ? trimmed : trimmed.slice(at + 2)).split('\n');
12
+ return lines.every((line) => keptFile(line) !== null || TOO_BIG_LINE.test(line)) ? lines : [];
13
+ }
package/dist/client.d.ts CHANGED
@@ -1,73 +1,108 @@
1
- import type { AppRoom, ConnectionRefusal, HistoryQuery, RoomSchemas, SavedRoomDraft, SaveResult } from './connection.js';
1
+ import type { DocumentQuery, GroupQuery } from '@agentshouse/mdmodel';
2
+ import type { HistoryQuery } from './actions.js';
3
+ import type { AppRoom } from './listing.js';
4
+ import type { ConnectionRefusal } from './socket.js';
5
+ import type { RoomSchemas } from './surface.js';
6
+ import type { SavedParts, SavedRoomDraft, SaveResult } from './saves.js';
2
7
  import type { Member, ServiceMode } from './adapter.js';
3
- import type { ChatDraft, ConversationAgent, ConversationEntry, ConversationOptions, ConversationView } from './conversation.js';
8
+ import type { UnsentWork } from './durability.js';
9
+ import type { ChatDraft, ConversationAgent, ConversationAnswer, ConversationEntry, ConversationOptions, ConversationRead, ConversationView } from './conversation.js';
4
10
  import { type Observation } from './observation.js';
5
- import type { CallResult, HistoryAnswer, QueueEntry } from './outcome.js';
6
- import type { DocumentQuery, DocumentResult, GroupQuery, GroupResult } from './query.js';
11
+ import type { AttachAnswer, BinaryAnswer, CallResult, DownloadAnswer, HistoryAnswer, Offline, QueueEntry, Resolution } from './outcome.js';
12
+ import type { FiguresResult } from './figures.js';
13
+ import type { Holdings } from './holdings.js';
14
+ import type { DocumentResult, GroupResult, PendingResult } from './query.js';
7
15
  import type { RoomDraft, RoomDraftParts, RoomDraftWrite } from './room-draft.js';
8
16
  import type { SearchRequest, SearchResult } from './search.js';
17
+ import type { Readiness } from './readiness.js';
18
+ import type { ObservedRead } from './reads.js';
9
19
  import type { SyncStatus } from './status.js';
10
20
  import { type RuntimePort } from './wire.js';
21
+ export type BuildFile = (name: string) => Promise<Blob | null>;
11
22
  export type MdRuntimeClient = {
23
+ buildFile(name: string): Promise<Blob | null>;
12
24
  rooms(): Promise<readonly AppRoom[]>;
13
25
  query: {
14
- (query: DocumentQuery): Promise<DocumentResult>;
15
- (query: GroupQuery): Promise<GroupResult>;
26
+ (query: DocumentQuery): Promise<DocumentResult | PendingResult>;
27
+ (query: GroupQuery): Promise<GroupResult | PendingResult>;
16
28
  };
17
29
  search(request: SearchRequest): Promise<SearchResult>;
18
30
  types(locator: string): Promise<RoomSchemas>;
19
31
  roomDraft: {
20
32
  list(): Promise<readonly RoomDraft[]>;
21
33
  read(room: string, path: string): Promise<RoomDraft | null>;
22
- write(room: string, path: string, revision: string | null, parts: RoomDraftParts): Promise<RoomDraftWrite>;
34
+ write(room: string, path: string, revision: string | null, parts: RoomDraftParts, next?: string): Promise<RoomDraftWrite>;
23
35
  discard(room: string, path: string, revision: string): Promise<RoomDraftWrite>;
24
36
  };
25
37
  save(room: string, roomDrafts: readonly SavedRoomDraft[]): Promise<SaveResult>;
38
+ saveParts(room: string, parts: readonly SavedParts[]): Promise<SaveResult>;
26
39
  presentation: {
27
40
  read(): Promise<unknown>;
28
41
  write(value: unknown): Promise<void>;
42
+ edit(members: Readonly<Record<string, unknown>>): Promise<void>;
29
43
  };
30
44
  conversation: {
31
45
  list(): Promise<readonly ConversationEntry[]>;
32
- read(conversation: string, options?: ConversationOptions): Promise<ConversationView>;
46
+ read(conversation: string, options?: ConversationRead): Promise<ConversationView>;
33
47
  create(input: unknown): Promise<CallResult>;
34
- send(conversation: string): Promise<CallResult>;
35
- answer(conversation: string, answer: unknown): Promise<CallResult>;
48
+ send(conversation: string, operation?: string, draft?: ChatDraft): Promise<CallResult | Offline>;
49
+ answer(conversation: string, answer: ConversationAnswer): Promise<CallResult>;
36
50
  interrupt(conversation: string): Promise<CallResult>;
37
51
  kill(conversation: string): Promise<CallResult>;
38
- cancel(conversation: string, turn: string): Promise<CallResult>;
39
52
  delete(conversation: string): Promise<CallResult>;
40
53
  };
41
54
  chatDraft: {
42
55
  write(conversation: string, draft: ChatDraft, revision?: string): Promise<void>;
56
+ prepend(conversation: string, draft: ChatDraft): Promise<void>;
43
57
  discard(conversation: string): Promise<void>;
44
58
  };
45
59
  history(locator: string, path: string, query?: HistoryQuery): Promise<HistoryAnswer>;
60
+ resolve(room: string, path: string, destination: string): Promise<Resolution>;
61
+ binaryFile: {
62
+ read(room: string, path: string, revision?: string): Promise<BinaryAnswer>;
63
+ attach(room: string, file: File): Promise<AttachAnswer>;
64
+ download(room: string, path: string, revision?: string): Promise<DownloadAnswer>;
65
+ };
46
66
  call(name: string, input: unknown): Promise<CallResult>;
47
67
  reached(locator: string, roomVersion: string, path?: string): Promise<boolean>;
48
68
  log(): Promise<string>;
49
69
  persistence(): Promise<boolean>;
70
+ retry(): Promise<void>;
71
+ cleanUp(): Promise<number>;
72
+ unsent(): Promise<readonly UnsentWork[]>;
73
+ reset(): Promise<void>;
74
+ readAgain(): Promise<void>;
50
75
  observe: {
51
76
  (topic: 'deployment-facts'): Promise<Observation<unknown>>;
52
77
  (topic: 'rooms'): Promise<Observation<readonly AppRoom[]>>;
78
+ (topic: 'readiness'): Promise<Observation<Readiness>>;
53
79
  (topic: 'connection-refusal'): Promise<Observation<ConnectionRefusal | null>>;
54
80
  (topic: 'storage-loss'): Promise<Observation<string | null>>;
55
81
  (topic: 'sync-status'): Promise<Observation<SyncStatus>>;
56
82
  (topic: 'service-mode'): Promise<Observation<ServiceMode>>;
57
83
  (topic: 'member'): Promise<Observation<Member | null>>;
58
- (topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult>>;
59
- (topic: 'query', query: GroupQuery): Promise<Observation<GroupResult>>;
84
+ (topic: 'authority-changes'): Promise<Observation<number>>;
85
+ (topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult | PendingResult>>;
86
+ (topic: 'query', query: GroupQuery): Promise<Observation<GroupResult | PendingResult>>;
60
87
  (topic: 'queue', locator: string): Promise<Observation<readonly QueueEntry[]>>;
61
88
  (topic: 'room-drafts'): Promise<Observation<readonly RoomDraft[]>>;
62
89
  (topic: 'presentation'): Promise<Observation<unknown>>;
63
90
  (topic: 'conversation', conversation: string, options: ConversationOptions): Promise<Observation<ConversationView>>;
64
91
  (topic: 'conversations'): Promise<Observation<readonly ConversationEntry[]>>;
65
92
  (topic: 'agents'): Promise<Observation<readonly ConversationAgent[]>>;
93
+ (topic: 'figures'): Promise<Observation<FiguresResult>>;
94
+ (topic: 'holdings'): Promise<Observation<Holdings>>;
95
+ (topic: 'read', name: string, input: unknown): Promise<Observation<ObservedRead>>;
66
96
  };
67
97
  reauthorize(): Promise<void>;
68
98
  settled(): Promise<void>;
69
99
  };
70
- export declare function connectMdRuntime(port: RuntimePort): MdRuntimeClient;
100
+ export declare function connectMdRuntime(port: RuntimePort, buildFile?: BuildFile): MdRuntimeClient;
101
+ export declare function inTurn(client: MdRuntimeClient, work: () => Promise<void>): Promise<void>;
102
+ export { chainedWindows, type WindowAnswer, type WindowChain } from './chain.js';
103
+ export { roomDraftRevision } from './identity.js';
104
+ export { defineRoomMedia, ROOM_MEDIA } from './media.js';
71
105
  export type { Observation } from './observation.js';
72
- export type { RuntimePort } from './wire.js';
106
+ export type { Open } from './open.js';
107
+ export { unanswered, type RuntimePort, type WireMember } from './wire.js';
73
108
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,10 +1,30 @@
1
+ import { shownBy } from './media.js';
1
2
  import { observed } from './observation.js';
2
3
  import { runtimeError } from './failure.js';
3
4
  import { answer, AUTHORIZATION_ENDED, PORT_CLOSED, } from './wire.js';
5
+ // 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.
6
+ const SETTLED_FRAMES = 2;
7
+ // A browser reads a download's address only after the click that hands it returns, so a copy's address is released a minute later.
8
+ const HANDED_COPY_MS = 60_000;
9
+ const PAGE = /\.html?$/iu;
10
+ const STARTED = { kind: 'started' };
11
+ const BLOCKED = {
12
+ kind: 'blocked',
13
+ code: 'popup-blocked',
14
+ fields: {},
15
+ retryable: true,
16
+ };
17
+ function handed(url, name) {
18
+ const anchor = document.createElement('a');
19
+ anchor.href = url;
20
+ anchor.download = name;
21
+ anchor.click();
22
+ }
4
23
  function refused(refusal) {
5
- return runtimeError(refusal.code, refusal.code, refusal.retryable);
24
+ return runtimeError(refusal.code);
6
25
  }
7
- export function connectMdRuntime(port) {
26
+ const UNBUILT = () => Promise.resolve(null);
27
+ export function connectMdRuntime(port, buildFile = UNBUILT) {
8
28
  let sequence = 0;
9
29
  let refusal = null;
10
30
  let ended = null;
@@ -131,6 +151,57 @@ export function connectMdRuntime(port) {
131
151
  drawing?.();
132
152
  });
133
153
  }
154
+ function streamed(answer) {
155
+ if (answer.kind !== 'binary')
156
+ return answer;
157
+ const { file, byteLength, mediaType } = answer;
158
+ let part = 0;
159
+ let received = 0;
160
+ const stream = new ReadableStream({
161
+ async pull(controller) {
162
+ const bytes = await ask('binaryFile.part', [file, part]);
163
+ if (bytes === null) {
164
+ if (received === byteLength)
165
+ controller.close();
166
+ else
167
+ controller.error(runtimeError('binary-file-absent', 'The file ended early'));
168
+ return;
169
+ }
170
+ part += 1;
171
+ received += bytes.byteLength;
172
+ controller.enqueue(bytes);
173
+ },
174
+ }, { highWaterMark: 0 });
175
+ return { kind: 'binary', stream, byteLength, mediaType };
176
+ }
177
+ async function download(room, path, revision) {
178
+ const tab = PAGE.test(path) ? globalThis.open('', '_blank') : null;
179
+ const linked = await ask('binaryFile.link', [room, path, revision]);
180
+ if (linked.kind === 'link' && PAGE.test(linked.name)) {
181
+ const away = tab ?? globalThis.open('', '_blank');
182
+ if (away === null)
183
+ return BLOCKED;
184
+ away.location.replace(linked.url);
185
+ return STARTED;
186
+ }
187
+ tab?.close();
188
+ if (linked.kind === 'link') {
189
+ handed(linked.url, linked.name);
190
+ return STARTED;
191
+ }
192
+ if (linked.kind !== 'absent')
193
+ return linked;
194
+ const read = streamed(await ask('binaryFile.read', [room, path, revision]));
195
+ if (read.kind !== 'binary')
196
+ return read;
197
+ const copy = await new Response(read.stream, {
198
+ headers: { 'content-type': read.mediaType },
199
+ }).blob();
200
+ const url = URL.createObjectURL(copy);
201
+ handed(url, path.slice(path.lastIndexOf('/') + 1));
202
+ setTimeout(() => URL.revokeObjectURL(url), HANDED_COPY_MS);
203
+ return STARTED;
204
+ }
134
205
  function settled() {
135
206
  if (settling !== null)
136
207
  return settling;
@@ -141,21 +212,28 @@ export function connectMdRuntime(port) {
141
212
  if (opening.size > 0)
142
213
  return;
143
214
  const at = moved;
144
- requestAnimationFrame(() => {
215
+ const waited = (frames) => {
145
216
  requestAnimationFrame(() => {
217
+ if (frames < SETTLED_FRAMES) {
218
+ waited(frames + 1);
219
+ return;
220
+ }
146
221
  if (moved !== at || opening.size > 0)
147
222
  return;
148
223
  drawing = null;
149
224
  resolve();
150
225
  });
151
- });
226
+ };
227
+ waited(1);
152
228
  };
153
229
  drawing = check;
154
230
  check();
155
231
  });
156
232
  return settling;
157
233
  }
158
- return {
234
+ const show = (room, path, revision) => ask('binaryFile.show', [room, path, revision]).then((shown) => streamed(shown));
235
+ return shownBy(show, {
236
+ buildFile,
159
237
  rooms: () => ask('rooms', []),
160
238
  query: ((query) => ask('query', [query])),
161
239
  search: (request) => ask('search', [request]),
@@ -163,36 +241,59 @@ export function connectMdRuntime(port) {
163
241
  roomDraft: {
164
242
  list: () => ask('roomDraft.list', []),
165
243
  read: (room, path) => ask('roomDraft.read', [room, path]),
166
- write: (room, path, revision, parts) => ask('roomDraft.write', [room, path, revision, parts]),
244
+ write: (room, path, revision, parts, next) => ask('roomDraft.write', next === undefined ? [room, path, revision, parts] : [room, path, revision, parts, next]),
167
245
  discard: (room, path, revision) => ask('roomDraft.discard', [room, path, revision]),
168
246
  },
169
247
  save: (room, roomDrafts) => ask('save', [room, roomDrafts]),
248
+ saveParts: (room, parts) => ask('saveParts', [room, parts]),
170
249
  presentation: {
171
250
  read: () => ask('presentation.read', []),
172
251
  write: (value) => ask('presentation.write', [value]),
252
+ edit: (members) => ask('presentation.edit', [members]),
173
253
  },
174
254
  conversation: {
175
255
  list: () => ask('conversation.list', []),
176
256
  read: (conversation, options) => ask('conversation.read', [conversation, options]),
177
257
  create: (input) => ask('conversation.create', [input]),
178
- send: (conversation) => ask('conversation.send', [conversation]),
258
+ send: (conversation, operation, draft) => ask('conversation.send', [conversation, operation, draft]),
179
259
  answer: (conversation, answer) => ask('conversation.answer', [conversation, answer]),
180
260
  interrupt: (conversation) => ask('conversation.interrupt', [conversation]),
181
261
  kill: (conversation) => ask('conversation.kill', [conversation]),
182
- cancel: (conversation, turn) => ask('conversation.cancel', [conversation, turn]),
183
262
  delete: (conversation) => ask('conversation.delete', [conversation]),
184
263
  },
185
264
  chatDraft: {
186
265
  write: (conversation, draft, revision) => ask('chatDraft.write', [conversation, draft, revision]),
266
+ prepend: (conversation, draft) => ask('chatDraft.prepend', [conversation, draft]),
187
267
  discard: (conversation) => ask('chatDraft.discard', [conversation]),
188
268
  },
189
269
  history: (locator, path, query) => ask('history', [locator, path, query]),
270
+ resolve: (room, path, destination) => ask('resolve', [room, path, destination]),
271
+ binaryFile: {
272
+ read: (room, path, revision) => ask('binaryFile.read', [room, path, revision]).then((read) => streamed(read)),
273
+ attach: (room, file) => ask('binaryFile.attach', [room, file]),
274
+ download,
275
+ },
190
276
  call: (name, input) => ask('call', [name, input]),
191
277
  reached: (locator, roomVersion, path) => ask('reached', [locator, roomVersion, path]),
192
278
  log: () => ask('log', []),
193
279
  persistence: () => ask('persistence', []),
280
+ retry: () => ask('retry', []),
281
+ cleanUp: () => ask('cleanUp', []),
282
+ unsent: () => ask('unsent', []),
283
+ reset: () => ask('reset', []),
284
+ readAgain: () => ask('readAgain', []),
194
285
  observe: ((topic, ...input) => watch(topic, input)),
195
286
  reauthorize: () => ask('reauthorize', []),
196
287
  settled,
197
- };
288
+ });
289
+ }
290
+ const turns = new WeakMap();
291
+ export function inTurn(client, work) {
292
+ const turn = (turns.get(client) ?? Promise.resolve()).then(work);
293
+ turns.set(client, turn.then(() => undefined, () => undefined));
294
+ return turn;
198
295
  }
296
+ export { chainedWindows } from './chain.js';
297
+ export { roomDraftRevision } from './identity.js';
298
+ export { defineRoomMedia, ROOM_MEDIA } from './media.js';
299
+ export { unanswered } from './wire.js';
@@ -1,7 +1,6 @@
1
- import { type Document, type Validation } from '@agentshouse/mdmodel';
1
+ import { type Document, type TypedPath } from '@agentshouse/mdmodel';
2
2
  import type { ModelState } from './model.js';
3
3
  import type { MdModelIdentity } from './adapter.js';
4
- import type { Refused } from './transfer.js';
5
4
  export declare const MD_MODEL: MdModelIdentity;
6
5
  export type Collection = {
7
6
  text: Readonly<Record<string, string>>;
@@ -14,12 +13,17 @@ export type Composition = {
14
13
  roots: readonly string[];
15
14
  model: ModelState;
16
15
  } | null;
16
+ typedPaths: readonly TypedPath[];
17
17
  };
18
+ export type Composed = {
19
+ readonly composition: Composition;
20
+ readonly fingerprint: string;
21
+ };
22
+ export declare function composedOf(composition: Composition): Composed;
23
+ export declare function selected(composition: Composition, path: string): boolean;
18
24
  export declare function governing(composition: Composition, path: string): ModelState;
19
- export declare function collectionOf(text: Readonly<Record<string, string>>, composition: Composition, previous?: Collection): Collection;
20
- export declare function passingDocument(collection: Collection, path: string): Document | undefined;
21
- export declare function documentsOf(collection: Collection): Generator<readonly [string, Document]>;
22
- export declare function unreadable(text: Readonly<Record<string, string>>, previous?: Readonly<Record<string, string>>): Refused | null;
25
+ export declare function collectionOf(text: Readonly<Record<string, string>>, composition: Composition): Collection;
26
+ export declare function documentsOf(collection: Collection): Generator<number, Iterable<readonly [string, Document]>, void>;
23
27
  export declare function validRoot(root: unknown): root is string;
24
- export declare function validateCollection(text: Readonly<Record<string, string>>, binaryTargets: readonly string[], composition: Composition): Validation;
28
+ export declare function available(composition: Composition): boolean;
25
29
  //# 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,EACb,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,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC9C,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;AAID,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,UAAU,GACpB,UAAU,CAsBZ;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAO1F;AAED,wBAAiB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAY3F;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC1C,OAAO,GAAG,IAAI,CAOhB;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":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD,eAAO,MAAM,QAAQ,EAAE,eAAwE,CAAC;AAEhG,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC9C,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;IAClE,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAc3F,wBAAgB,UAAU,CAAC,WAAW,EAAE,WAAW,GAAG,QAAQ,CAS7D;AAED,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKxE;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAI5E;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,WAAW,EAAE,WAAW,GACvB,UAAU,CAcZ;AAED,wBAAiB,WAAW,CAC1B,UAAU,EAAE,UAAU,GACrB,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAQhE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAEvD;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAE3D"}