@agentshouse/mdruntime 0.1.0-ca7c26c6bc27e → 0.1.0-ca9afacd5aebd

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 (170) hide show
  1. package/AGENTS.md +144 -41
  2. package/README.md +21 -11
  3. package/dist/adapter.d.ts +71 -20
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/adapter.js +1 -9
  6. package/dist/attached-model.d.ts.map +1 -1
  7. package/dist/attached-model.js +15 -2
  8. package/dist/attempt.d.ts +16 -0
  9. package/dist/attempt.d.ts.map +1 -0
  10. package/dist/attempt.js +57 -0
  11. package/dist/binary.d.ts +23 -0
  12. package/dist/binary.d.ts.map +1 -0
  13. package/dist/binary.js +8 -0
  14. package/dist/bootstrap.d.ts +17 -5
  15. package/dist/bootstrap.d.ts.map +1 -1
  16. package/dist/bootstrap.js +89 -38
  17. package/dist/change-set.d.ts.map +1 -1
  18. package/dist/change-set.js +19 -12
  19. package/dist/change.d.ts +15 -0
  20. package/dist/change.d.ts.map +1 -1
  21. package/dist/change.js +26 -1
  22. package/dist/chat/acts.d.ts +34 -0
  23. package/dist/chat/acts.d.ts.map +1 -0
  24. package/dist/chat/acts.js +36 -0
  25. package/dist/chat/context.d.ts +3 -0
  26. package/dist/chat/context.d.ts.map +1 -0
  27. package/dist/chat/context.js +10 -0
  28. package/dist/chat/input.d.ts +9 -0
  29. package/dist/chat/input.d.ts.map +1 -0
  30. package/dist/chat/input.js +99 -0
  31. package/dist/chat/kit.d.ts +60 -0
  32. package/dist/chat/kit.d.ts.map +1 -0
  33. package/dist/chat/kit.js +123 -0
  34. package/dist/chat/lasting.d.ts +6 -0
  35. package/dist/chat/lasting.d.ts.map +1 -0
  36. package/dist/chat/lasting.js +19 -0
  37. package/dist/chat/list.d.ts +20 -0
  38. package/dist/chat/list.d.ts.map +1 -0
  39. package/dist/chat/list.js +59 -0
  40. package/dist/chat/markdown.d.ts +19 -0
  41. package/dist/chat/markdown.d.ts.map +1 -0
  42. package/dist/chat/markdown.js +187 -0
  43. package/dist/chat/message.d.ts +6 -0
  44. package/dist/chat/message.d.ts.map +1 -0
  45. package/dist/chat/message.js +192 -0
  46. package/dist/chat/messages.d.ts +21 -0
  47. package/dist/chat/messages.d.ts.map +1 -0
  48. package/dist/chat/messages.js +151 -0
  49. package/dist/chat/name.d.ts +6 -0
  50. package/dist/chat/name.d.ts.map +1 -0
  51. package/dist/chat/name.js +37 -0
  52. package/dist/chat/opened.d.ts +11 -0
  53. package/dist/chat/opened.d.ts.map +1 -0
  54. package/dist/chat/opened.js +17 -0
  55. package/dist/chat/overlay.d.ts +31 -0
  56. package/dist/chat/overlay.d.ts.map +1 -0
  57. package/dist/chat/overlay.js +97 -0
  58. package/dist/chat/parts.d.ts +57 -0
  59. package/dist/chat/parts.d.ts.map +1 -0
  60. package/dist/chat/parts.js +119 -0
  61. package/dist/chat/process.d.ts +20 -0
  62. package/dist/chat/process.d.ts.map +1 -0
  63. package/dist/chat/process.js +32 -0
  64. package/dist/chat/provider.d.ts +63 -0
  65. package/dist/chat/provider.d.ts.map +1 -0
  66. package/dist/chat/provider.js +645 -0
  67. package/dist/chat/question.d.ts +9 -0
  68. package/dist/chat/question.d.ts.map +1 -0
  69. package/dist/chat/question.js +80 -0
  70. package/dist/chat/questions.d.ts +31 -0
  71. package/dist/chat/questions.d.ts.map +1 -0
  72. package/dist/chat/questions.js +111 -0
  73. package/dist/chat/read.d.ts +5 -0
  74. package/dist/chat/read.d.ts.map +1 -0
  75. package/dist/chat/read.js +13 -0
  76. package/dist/chat/ready.d.ts +33 -0
  77. package/dist/chat/ready.d.ts.map +1 -0
  78. package/dist/chat/ready.js +91 -0
  79. package/dist/chat/style.d.ts +4 -0
  80. package/dist/chat/style.d.ts.map +1 -0
  81. package/dist/chat/style.js +302 -0
  82. package/dist/chat.d.ts +14 -0
  83. package/dist/chat.d.ts.map +1 -0
  84. package/dist/chat.js +8 -0
  85. package/dist/client.d.ts +17 -7
  86. package/dist/client.d.ts.map +1 -1
  87. package/dist/client.js +68 -25
  88. package/dist/collection.d.ts +6 -11
  89. package/dist/collection.d.ts.map +1 -1
  90. package/dist/collection.js +56 -19
  91. package/dist/connection.d.ts +25 -12
  92. package/dist/connection.d.ts.map +1 -1
  93. package/dist/connection.js +492 -185
  94. package/dist/conversation.d.ts +27 -8
  95. package/dist/conversation.d.ts.map +1 -1
  96. package/dist/conversation.js +210 -81
  97. package/dist/expectation.d.ts +21 -0
  98. package/dist/expectation.d.ts.map +1 -0
  99. package/dist/expectation.js +70 -0
  100. package/dist/failure.d.ts +13 -0
  101. package/dist/failure.d.ts.map +1 -0
  102. package/dist/failure.js +19 -0
  103. package/dist/host.d.ts +1 -0
  104. package/dist/host.d.ts.map +1 -1
  105. package/dist/host.js +12 -19
  106. package/dist/identity.d.ts +3 -0
  107. package/dist/identity.d.ts.map +1 -1
  108. package/dist/identity.js +13 -1
  109. package/dist/index.d.ts +9 -4
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +3 -0
  112. package/dist/memory.d.ts +5 -5
  113. package/dist/memory.d.ts.map +1 -1
  114. package/dist/memory.js +73 -27
  115. package/dist/model.d.ts +13 -8
  116. package/dist/model.d.ts.map +1 -1
  117. package/dist/model.js +6 -3
  118. package/dist/open.d.ts +2 -0
  119. package/dist/open.d.ts.map +1 -0
  120. package/dist/open.js +1 -0
  121. package/dist/outcome.d.ts +28 -3
  122. package/dist/outcome.d.ts.map +1 -1
  123. package/dist/outcome.js +41 -1
  124. package/dist/overlay.d.ts +14 -3
  125. package/dist/overlay.d.ts.map +1 -1
  126. package/dist/overlay.js +75 -37
  127. package/dist/paths.d.ts +0 -1
  128. package/dist/paths.d.ts.map +1 -1
  129. package/dist/paths.js +0 -16
  130. package/dist/query.d.ts +5 -1
  131. package/dist/query.d.ts.map +1 -1
  132. package/dist/query.js +74 -33
  133. package/dist/reach.d.ts +2 -0
  134. package/dist/reach.d.ts.map +1 -1
  135. package/dist/reach.js +51 -34
  136. package/dist/react.d.ts +41 -0
  137. package/dist/react.d.ts.map +1 -0
  138. package/dist/react.js +64 -0
  139. package/dist/read-side.d.ts.map +1 -1
  140. package/dist/read-side.js +111 -48
  141. package/dist/refresh.d.ts +10 -0
  142. package/dist/refresh.d.ts.map +1 -1
  143. package/dist/refresh.js +42 -38
  144. package/dist/replica.d.ts +9 -7
  145. package/dist/replica.d.ts.map +1 -1
  146. package/dist/replica.js +90 -64
  147. package/dist/room-draft.d.ts +26 -9
  148. package/dist/room-draft.d.ts.map +1 -1
  149. package/dist/room-draft.js +132 -23
  150. package/dist/rows.d.ts +7 -2
  151. package/dist/rows.d.ts.map +1 -1
  152. package/dist/rows.js +85 -40
  153. package/dist/save.d.ts +28 -3
  154. package/dist/save.d.ts.map +1 -1
  155. package/dist/save.js +429 -80
  156. package/dist/search.d.ts +3 -2
  157. package/dist/search.d.ts.map +1 -1
  158. package/dist/status.d.ts +2 -2
  159. package/dist/status.d.ts.map +1 -1
  160. package/dist/status.js +0 -8
  161. package/dist/store.d.ts +34 -9
  162. package/dist/store.d.ts.map +1 -1
  163. package/dist/store.js +273 -164
  164. package/dist/wire.d.ts +8 -15
  165. package/dist/wire.d.ts.map +1 -1
  166. package/dist/wire.js +16 -17
  167. package/package.json +23 -3
  168. package/dist/attachment.d.ts +0 -3
  169. package/dist/attachment.d.ts.map +0 -1
  170. package/dist/attachment.js +0 -8
package/dist/replica.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import { type ChangeBatch } from './change.js';
2
2
  import { type Collection, type Composition } from './collection.js';
3
3
  import { type Layer } from './overlay.js';
4
- import { type Rewriting } from './save.js';
5
- import type { RoomAttachment } from './adapter.js';
4
+ import type { MutationResult } from './adapter.js';
6
5
  import type { ReplicaRecord } from './store.js';
7
6
  import type { Refused } from './transfer.js';
8
7
  export type ConfirmedLayer = {
@@ -30,15 +29,18 @@ type ReplayStep = {
30
29
  collection?: Collection;
31
30
  };
32
31
  export declare function compositionOf(record: ReplicaRecord): Composition;
33
- export declare function readConfirmed(record: ReplicaRecord, previous?: ConfirmedLayer): Staged;
32
+ export declare function confirmedOf(record: ReplicaRecord, previous?: ConfirmedLayer): ConfirmedLayer;
34
33
  export declare function sameMembership(record: ReplicaRecord, other: ReplicaRecord): boolean;
35
34
  export declare function readStaged(record: ReplicaRecord, previous?: ConfirmedLayer): Staged;
36
35
  export declare function readReclassified(record: ReplicaRecord, previous: ConfirmedLayer): Staged | {
37
36
  kind: 'deferred';
38
37
  };
39
- export declare function applyReturned(confirmed: ConfirmedLayer, documents: Readonly<Record<string, string>>, revisions: Readonly<Record<string, string>>, removals: readonly string[], attachments: readonly RoomAttachment[] | undefined, roomVersion: string, writtenAt: string): Staged;
40
- export declare function replicaOf(confirmed: ConfirmedLayer, queue: readonly ChangeBatch[], rewriting: Rewriting, previous?: Replica): Replica;
41
- export declare function landed(batch: ChangeBatch, confirmed: ConfirmedLayer): boolean;
42
- export declare function withdrawals(confirmed: ConfirmedLayer, queue: readonly ChangeBatch[], withdrawable: (batch: ChangeBatch) => boolean, rewriting: Rewriting): readonly ChangeBatch[];
38
+ type Accepted = Extract<MutationResult, {
39
+ kind: 'accepted';
40
+ }>;
41
+ export declare function applyReturned(confirmed: ConfirmedLayer, submitted: ChangeBatch, accepted: Accepted, roomVersion: string, writtenAt: string): Staged;
42
+ export declare function replicaOf(confirmed: ConfirmedLayer, queue: readonly ChangeBatch[], previous?: Replica): Replica;
43
+ export declare function landed(batch: ChangeBatch, confirmed: ConfirmedLayer, current?: Readonly<Record<string, string>>): boolean;
44
+ export declare function withdrawals(confirmed: ConfirmedLayer, queue: readonly ChangeBatch[], withdrawable: (batch: ChangeBatch) => boolean, local: boolean): readonly ChangeBatch[];
43
45
  export {};
44
46
  //# sourceMappingURL=replica.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"replica.d.ts","sourceRoot":"","sources":["../src/replica.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,WAAW,EAAqB,MAAM,aAAa,CAAC;AAC1F,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAA0C,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG;IACjC,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,GAAG,OAAO,CAAC;AAE7E,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;CAC/B,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAQhE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,CAWtF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAKnF;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,CAkBnF;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,cAAc,GACvB,MAAM,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAM/B;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3C,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3C,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,WAAW,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,EAClD,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CAmCR;AAsDD,wBAAgB,SAAS,CACvB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,OAAO,GACjB,OAAO,CA4CT;AAkFD,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAa7E;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,YAAY,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,EAC7C,SAAS,EAAE,SAAS,GACnB,SAAS,WAAW,EAAE,CAoBxB"}
1
+ {"version":3,"file":"replica.d.ts","sourceRoot":"","sources":["../src/replica.ts"],"names":[],"mappings":"AACA,OAAO,EAAmC,KAAK,WAAW,EAAqB,MAAM,aAAa,CAAC;AACnG,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAA2D,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAEnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG;IACjC,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,GAAG,OAAO,CAAC;AAE7E,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;CAC/B,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAQhE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,CAK5F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAKnF;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,CA2BnF;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,cAAc,GACvB,MAAM,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAW/B;AAiCD,KAAK,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC;AAE9D,wBAAgB,aAAa,CAC3B,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CA+BR;AAgDD,wBAAgB,SAAS,CACvB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,QAAQ,CAAC,EAAE,OAAO,GACjB,OAAO,CA8BT;AA0ED,wBAAgB,MAAM,CACpB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,cAAc,EACzB,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAC7C,OAAO,CAiBT;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,YAAY,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,EAC7C,KAAK,EAAE,OAAO,GACb,SAAS,WAAW,EAAE,CA2BxB"}
package/dist/replica.js CHANGED
@@ -1,10 +1,8 @@
1
- import { parse } from '@agentshouse/mdmodel';
2
- import { immutable } from './change.js';
3
- import { parseCollection, readCollection, validateCollection, } from './collection.js';
1
+ import { equalValue, parse } from '@agentshouse/mdmodel';
2
+ import { immutable, landing } from './change.js';
3
+ import { collectionOf, unreadable, validateCollection, } from './collection.js';
4
4
  import { overlay, overlayChanged, sameLayerText } from './overlay.js';
5
5
  import { providerRewritten } from './save.js';
6
- import { equalValue } from './room-draft.js';
7
- import { declaredAttachments } from './attachment.js';
8
6
  export function compositionOf(record) {
9
7
  return {
10
8
  model: record.model,
@@ -13,40 +11,77 @@ export function compositionOf(record) {
13
11
  : { roots: record.typedSelection.roots, model: record.selectionModel },
14
12
  };
15
13
  }
16
- export function readConfirmed(record, previous) {
17
- const read = readCollection(record.documents, compositionOf(record), previous === undefined
18
- ? undefined
19
- : { text: previous.record.documents, collection: previous.collection });
20
- return read.kind === 'read'
21
- ? { kind: 'staged', confirmed: { record, collection: read.collection } }
22
- : read;
14
+ export function confirmedOf(record, previous) {
15
+ return {
16
+ record,
17
+ collection: collectionOf(record.documents, compositionOf(record), previous?.collection),
18
+ };
23
19
  }
24
20
  export function sameMembership(record, other) {
25
21
  return (JSON.stringify(record.typedSelection?.roots ?? null) ===
26
22
  JSON.stringify(other.typedSelection?.roots ?? null));
27
23
  }
28
24
  export function readStaged(record, previous) {
29
- if ((record.model.status !== 'unavailable' || record.selectionModel.status !== 'unavailable') &&
30
- (previous === undefined ||
31
- !sameLayerText(record, previous.record) ||
32
- record.model !== previous.record.model ||
33
- record.selectionModel !== previous.record.selectionModel)) {
34
- const verdict = validateCollection(record.documents, record.binaryTargets, compositionOf(record));
25
+ const textChanged = previous === undefined || !sameLayerText(record, previous.record);
26
+ const modeled = record.model.status !== 'unavailable' || record.selectionModel.status !== 'unavailable';
27
+ if (modeled &&
28
+ (textChanged ||
29
+ record.model !== previous?.record.model ||
30
+ record.selectionModel !== previous?.record.selectionModel)) {
31
+ const verdict = validateCollection(record.documents, Object.keys(record.binaries), compositionOf(record));
35
32
  if (verdict.verdict === 'refuse' && verdict.rule !== 'model-unavailable') {
36
33
  return { kind: 'refused', refusal: verdict };
37
34
  }
35
+ if (verdict.verdict === 'refuse') {
36
+ const refused = unreadable(record.documents, previous?.record.documents);
37
+ if (refused !== null)
38
+ return refused;
39
+ }
38
40
  }
39
- return readConfirmed(record, previous);
41
+ else if (textChanged) {
42
+ const refused = unreadable(record.documents, previous?.record.documents);
43
+ if (refused !== null)
44
+ return refused;
45
+ }
46
+ return { kind: 'staged', confirmed: confirmedOf(record, previous) };
40
47
  }
41
48
  export function readReclassified(record, previous) {
42
- const verdict = validateCollection(record.documents, record.binaryTargets, compositionOf(record));
49
+ const verdict = validateCollection(record.documents, Object.keys(record.binaries), compositionOf(record));
43
50
  if (verdict.verdict !== 'refuse')
44
- return readConfirmed(record, previous);
51
+ return { kind: 'staged', confirmed: confirmedOf(record, previous) };
45
52
  return verdict.rule === 'model-unavailable'
46
53
  ? { kind: 'deferred' }
47
54
  : { kind: 'refused', refusal: verdict };
48
55
  }
49
- export function applyReturned(confirmed, documents, revisions, removals, attachments, roomVersion, writtenAt) {
56
+ function returnedBinaries(held, submitted, accepted) {
57
+ const binaries = { ...held };
58
+ for (const change of submitted.changes) {
59
+ if (change.kind !== 'move')
60
+ continue;
61
+ const moved = binaries[change.path];
62
+ if (moved === undefined || accepted.revisions[change.to] === undefined)
63
+ continue;
64
+ binaries[change.to] = moved;
65
+ delete binaries[change.path];
66
+ }
67
+ for (const [path, fileRef] of Object.entries(accepted.fileRefs ?? {})) {
68
+ const written = submitted.changes.find((change, index) => change.kind === 'binary' && landing(submitted.changes, index, change.path) === path);
69
+ if (written === undefined)
70
+ continue;
71
+ binaries[path] = {
72
+ state: 'accepted',
73
+ fileRef,
74
+ byteLength: written.byteLength,
75
+ mediaType: written.mediaType,
76
+ sha256: written.sha256,
77
+ };
78
+ }
79
+ for (const path of accepted.removals)
80
+ delete binaries[path];
81
+ return binaries;
82
+ }
83
+ export function applyReturned(confirmed, submitted, accepted, roomVersion, writtenAt) {
84
+ const { documents, revisions, changes, removals } = accepted;
50
85
  const nextDocuments = { ...confirmed.record.documents, ...documents };
51
86
  const nextRevisions = { ...confirmed.record.revisions, ...revisions };
52
87
  const nextChanges = { ...confirmed.record.changes };
@@ -54,17 +89,16 @@ export function applyReturned(confirmed, documents, revisions, removals, attachm
54
89
  ...confirmed.record.written,
55
90
  ...Object.fromEntries(Object.keys(documents).map((path) => [path, writtenAt])),
56
91
  };
57
- const binaryTargets = new Set(confirmed.record.binaryTargets);
58
92
  for (const [path, revision] of Object.entries(revisions)) {
59
93
  if (confirmed.record.revisions[path] !== revision)
60
94
  delete nextChanges[path];
61
95
  }
96
+ Object.assign(nextChanges, changes);
62
97
  for (const path of removals) {
63
98
  delete nextDocuments[path];
64
99
  delete nextRevisions[path];
65
100
  delete nextChanges[path];
66
101
  delete nextWritten[path];
67
- binaryTargets.delete(path);
68
102
  }
69
103
  return readStaged({
70
104
  ...confirmed.record,
@@ -73,10 +107,7 @@ export function applyReturned(confirmed, documents, revisions, removals, attachm
73
107
  revisions: nextRevisions,
74
108
  changes: nextChanges,
75
109
  written: nextWritten,
76
- binaryTargets: [...binaryTargets].sort(),
77
- attachments: attachments === undefined
78
- ? confirmed.record.attachments
79
- : declaredAttachments([attachments]),
110
+ binaries: returnedBinaries(confirmed.record.binaries, submitted, accepted),
80
111
  }, confirmed);
81
112
  }
82
113
  function predicted(confirmed, batches, previous) {
@@ -97,9 +128,7 @@ function predicted(confirmed, batches, previous) {
97
128
  const collection = hasMove
98
129
  ? reuseRewrite
99
130
  ? old.collection
100
- : parseCollection(before.documents, composition, old?.collection === undefined
101
- ? { text: confirmed.record.documents, collection: confirmed.collection }
102
- : { text: old.before.documents, collection: old.collection })
131
+ : collectionOf(before.documents, composition, old?.collection ?? confirmed.collection)
103
132
  : undefined;
104
133
  const effective = collection === undefined
105
134
  ? batch
@@ -120,7 +149,7 @@ function predicted(confirmed, batches, previous) {
120
149
  }
121
150
  return { layer, replay };
122
151
  }
123
- export function replicaOf(confirmed, queue, rewriting, previous) {
152
+ export function replicaOf(confirmed, queue, previous) {
124
153
  const batches = Object.freeze(queue.map(immutable));
125
154
  if (batches.length === 0) {
126
155
  return {
@@ -128,7 +157,7 @@ export function replicaOf(confirmed, queue, rewriting, previous) {
128
157
  queue: batches,
129
158
  visible: {
130
159
  documents: confirmed.record.documents,
131
- binaryTargets: confirmed.record.binaryTargets,
160
+ binaries: confirmed.record.binaries,
132
161
  revisions: confirmed.record.revisions,
133
162
  changes: confirmed.record.changes,
134
163
  collection: confirmed.collection,
@@ -136,26 +165,19 @@ export function replicaOf(confirmed, queue, rewriting, previous) {
136
165
  replay: [],
137
166
  };
138
167
  }
139
- const predictedState = rewriting === 'provider' ? predicted(confirmed, batches, previous) : null;
140
- const layer = rewriting === 'provider'
141
- ? predictedState.layer
142
- : previous === undefined
143
- ? overlay(confirmed.record, batches)
144
- : overlayChanged(confirmed.record, batches, previous.confirmed.record, previous.queue, previous.visible);
168
+ const { layer, replay } = predicted(confirmed, batches, previous);
145
169
  return {
146
170
  confirmed,
147
171
  queue: batches,
148
- replay: predictedState?.replay ?? [],
172
+ replay,
149
173
  visible: {
150
174
  ...layer,
151
- collection: parseCollection(layer.documents, compositionOf(confirmed.record), previous === undefined
152
- ? undefined
153
- : { text: previous.visible.documents, collection: previous.visible.collection }),
175
+ collection: collectionOf(layer.documents, compositionOf(confirmed.record), previous?.visible.collection ?? confirmed.collection),
154
176
  },
155
177
  };
156
178
  }
157
179
  function present(layer, path) {
158
- return layer.documents[path] !== undefined || layer.binaryTargets.includes(path);
180
+ return layer.documents[path] !== undefined || layer.binaries[path] !== undefined;
159
181
  }
160
182
  function holds(layer, preconditions) {
161
183
  const parsed = new Map();
@@ -176,6 +198,8 @@ function holds(layer, preconditions) {
176
198
  if (precondition.kind === 'revision') {
177
199
  return present(layer, path) && layer.revisions[path] === precondition.revision;
178
200
  }
201
+ if (precondition.kind === 'content')
202
+ return layer.documents[path] === precondition.content;
179
203
  const document = documentAt(path);
180
204
  if (document === null)
181
205
  return false;
@@ -220,36 +244,30 @@ function effects(change) {
220
244
  { kind: 'present', path: change.to },
221
245
  ];
222
246
  }
247
+ if (change.kind === 'binary')
248
+ return [{ kind: 'present', path }];
223
249
  return [{ kind: 'absent', path }];
224
250
  }
225
- function after(changes, index, path) {
226
- let at = path;
227
- for (const change of changes.slice(index + 1)) {
228
- if (change.path !== at)
229
- continue;
230
- if (change.kind === 'remove')
231
- return null;
232
- if (change.kind === 'move')
233
- at = change.to;
234
- }
235
- return at;
236
- }
237
- export function landed(batch, confirmed) {
238
- const layer = confirmed.record;
251
+ export function landed(batch, confirmed, current = {}) {
252
+ const layer = { ...confirmed.record, documents: { ...confirmed.record.documents, ...current } };
239
253
  return batch.changes.every((change, index) => {
240
254
  if (change.kind === 'replace' || (change.kind === 'create' && 'content' in change)) {
241
- const at = after(batch.changes, index, change.path);
255
+ const at = landing(batch.changes, index, change.path);
242
256
  return at === null || layer.documents[at] === change.content;
243
257
  }
258
+ if (change.kind === 'binary') {
259
+ const at = landing(batch.changes, index, change.path);
260
+ return at === null || layer.binaries[at]?.sha256 === change.sha256;
261
+ }
244
262
  return effects(change).every((effect) => {
245
263
  if (effect.kind === 'absent')
246
264
  return holds(layer, [effect]);
247
- const at = after(batch.changes, index, effect.path);
265
+ const at = landing(batch.changes, index, effect.path);
248
266
  return at === null || holds(layer, [{ ...effect, path: at }]);
249
267
  });
250
268
  });
251
269
  }
252
- export function withdrawals(confirmed, queue, withdrawable, rewriting) {
270
+ export function withdrawals(confirmed, queue, withdrawable, local) {
253
271
  if (!queue.some(withdrawable))
254
272
  return [];
255
273
  const composition = compositionOf(confirmed.record);
@@ -260,13 +278,21 @@ export function withdrawals(confirmed, queue, withdrawable, rewriting) {
260
278
  withdrawn.push(batch);
261
279
  continue;
262
280
  }
263
- const effective = rewriting === 'provider' && batch.changes.some((change) => change.kind === 'move')
281
+ const effective = batch.changes.some((change) => change.kind === 'move')
264
282
  ? providerRewritten(batch, {
265
283
  ...layer,
266
- collection: parseCollection(layer.documents, composition),
284
+ collection: collectionOf(layer.documents, composition),
267
285
  })
268
286
  : batch;
269
- layer = overlay(layer, [effective]);
287
+ let unapplied = false;
288
+ const next = overlay(layer, [effective], () => {
289
+ unapplied = true;
290
+ });
291
+ if (local && unapplied) {
292
+ withdrawn.push(batch);
293
+ continue;
294
+ }
295
+ layer = next;
270
296
  }
271
297
  return withdrawn;
272
298
  }
@@ -1,4 +1,5 @@
1
1
  import type { ProviderRefusal } from './adapter.js';
2
+ import type { Open } from './open.js';
2
3
  import type { Change, Precondition } from './change.js';
3
4
  import type { VisibleLayer } from './replica.js';
4
5
  export type FieldValue = {
@@ -36,6 +37,17 @@ export type RoomDraftParts = {
36
37
  readonly removal?: {
37
38
  readonly base?: string | null;
38
39
  };
40
+ readonly file?: {
41
+ readonly blob: Blob;
42
+ };
43
+ };
44
+ export type HeldFile = {
45
+ readonly blob: Blob;
46
+ readonly localId: string;
47
+ readonly byteLength: number;
48
+ readonly mediaType: string;
49
+ readonly sha256: string;
50
+ readonly base: string | null;
39
51
  };
40
52
  type HeldParts = {
41
53
  readonly fields?: Readonly<Record<string, {
@@ -62,6 +74,7 @@ type HeldParts = {
62
74
  readonly removal?: {
63
75
  readonly base: string | null;
64
76
  };
77
+ readonly file?: HeldFile;
65
78
  };
66
79
  type ChangedUnderneath = {
67
80
  readonly fields?: Readonly<Record<string, FieldValue>>;
@@ -71,14 +84,12 @@ type ChangedUnderneath = {
71
84
  readonly creation?: string;
72
85
  readonly move?: string | null;
73
86
  readonly removal?: string | null;
87
+ readonly file?: string | null;
74
88
  };
75
- export type ReturnReason = (ProviderRefusal & {
76
- readonly kind: 'conflicted' | 'rejected';
77
- }) | {
78
- readonly kind: 'expired';
79
- } | {
80
- readonly kind: 'withdrawn';
89
+ export type ReturnReason = ProviderRefusal & {
90
+ readonly kind: 'conflicted' | 'rejected' | 'expired' | 'withdrawn';
81
91
  };
92
+ export declare function returnedBy(kind: 'expired' | 'withdrawn'): ReturnReason;
82
93
  export type RoomDraft = {
83
94
  readonly room: string;
84
95
  readonly path: string;
@@ -92,11 +103,14 @@ export type RoomDraftWrite = {
92
103
  readonly roomDraft: RoomDraft | null;
93
104
  } | {
94
105
  readonly outcome: 'stale';
106
+ readonly code: string;
107
+ readonly retryable: boolean;
95
108
  readonly current: RoomDraft | null;
96
109
  };
110
+ export declare function staleWrite(current: RoomDraft | null): RoomDraftWrite;
97
111
  export type ChangedPart = {
98
112
  readonly path: string;
99
- readonly part: 'field' | 'section' | 'preamble' | 'markdown' | 'creation' | 'move' | 'removal';
113
+ readonly part: Open<'field' | 'section' | 'preamble' | 'markdown' | 'creation' | 'move' | 'removal' | 'file'>;
100
114
  readonly name?: string;
101
115
  };
102
116
  export type RoomDraftRecord = {
@@ -111,9 +125,10 @@ export type SavedDraft = {
111
125
  readonly parts: HeldParts;
112
126
  };
113
127
  export declare function readParts(value: unknown): RoomDraftParts;
114
- export declare function held(current: HeldParts | undefined, parts: RoomDraftParts): HeldParts;
115
- export declare function equalValue(left: unknown, right: unknown): boolean;
128
+ export declare function held(current: HeldParts | undefined, parts: RoomDraftParts, file?: HeldFile): HeldParts;
116
129
  export declare function underneath(parts: HeldParts, path: string, visible: VisibleLayer | undefined): ChangedUnderneath;
130
+ export declare function heldFile(blob: Blob, base: string | null): Promise<HeldFile>;
131
+ export declare function binaryBase(visible: VisibleLayer | undefined, path: string): string | null;
117
132
  export declare function changedParts(path: string, report: ChangedUnderneath): readonly ChangedPart[];
118
133
  export declare function returnedInto(existing: HeldParts | undefined, returned: HeldParts): HeldParts;
119
134
  export declare function moveTarget(move: {
@@ -123,5 +138,7 @@ export declare function changesOf(path: string, parts: HeldParts): {
123
138
  changes: readonly Change[];
124
139
  bases: readonly Precondition[];
125
140
  };
141
+ export declare function joinedDraft(carried: SavedDraft, saved: readonly SavedDraft[]): SavedDraft;
142
+ export declare function withdrawnDrafts(drafts: readonly SavedDraft[], changes: readonly Change[]): readonly SavedDraft[];
126
143
  export {};
127
144
  //# sourceMappingURL=room-draft.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"room-draft.d.ts","sourceRoot":"","sources":["../src/room-draft.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC;AAE5D,MAAM,MAAM,iBAAiB,GACzB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD,GACD;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CACxB,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC,CACxE,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjG,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACtD,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CACxB,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,CACvE,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAChG,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACrD,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB,CAAC,eAAe,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAA;CAAE,CAAC,GAChE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAEnC,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAsE9E,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CA4BxD;AAwBD,wBAAgB,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,CA4CrF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAQjE;AAOD,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,GAAG,SAAS,GAChC,iBAAiB,CA6BnB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,SAAS,WAAW,EAAE,CAU5F;AAsCD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,CAyB5F;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGhE;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,GACf;IAAE,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,CAkChE"}
1
+ {"version":3,"file":"room-draft.d.ts","sourceRoot":"","sources":["../src/room-draft.ts"],"names":[],"mappings":"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"}