@y/y 14.0.0-rc.2 → 14.0.0-rc.21

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 (166) hide show
  1. package/README.md +36 -12
  2. package/dist/src/index.d.ts +24 -1
  3. package/dist/src/index.d.ts.map +1 -1
  4. package/dist/src/structs/AbstractStruct.d.ts +14 -17
  5. package/dist/src/structs/AbstractStruct.d.ts.map +1 -1
  6. package/dist/src/structs/GC.d.ts +9 -14
  7. package/dist/src/structs/GC.d.ts.map +1 -1
  8. package/dist/src/structs/Item.d.ts +569 -31
  9. package/dist/src/structs/Item.d.ts.map +1 -1
  10. package/dist/src/structs/Skip.d.ts +9 -11
  11. package/dist/src/structs/Skip.d.ts.map +1 -1
  12. package/dist/src/utils/BlockSet.d.ts +8 -7
  13. package/dist/src/utils/BlockSet.d.ts.map +1 -1
  14. package/dist/src/utils/Doc.d.ts +4 -9
  15. package/dist/src/utils/Doc.d.ts.map +1 -1
  16. package/dist/src/utils/ID.d.ts +0 -1
  17. package/dist/src/utils/ID.d.ts.map +1 -1
  18. package/dist/src/utils/RelativePosition.d.ts +2 -5
  19. package/dist/src/utils/RelativePosition.d.ts.map +1 -1
  20. package/dist/src/utils/Renderer.d.ts +144 -0
  21. package/dist/src/utils/Renderer.d.ts.map +1 -0
  22. package/dist/src/utils/Snapshot.d.ts +7 -11
  23. package/dist/src/utils/Snapshot.d.ts.map +1 -1
  24. package/dist/src/utils/StructStore.d.ts +45 -23
  25. package/dist/src/utils/StructStore.d.ts.map +1 -1
  26. package/dist/src/utils/Transaction.d.ts +11 -21
  27. package/dist/src/utils/Transaction.d.ts.map +1 -1
  28. package/dist/src/utils/UndoManager.d.ts +13 -14
  29. package/dist/src/utils/UndoManager.d.ts.map +1 -1
  30. package/dist/src/utils/UpdateDecoder.d.ts +1 -1
  31. package/dist/src/utils/UpdateDecoder.d.ts.map +1 -1
  32. package/dist/src/utils/UpdateEncoder.d.ts +0 -1
  33. package/dist/src/utils/UpdateEncoder.d.ts.map +1 -1
  34. package/dist/src/utils/YEvent.d.ts +22 -26
  35. package/dist/src/utils/YEvent.d.ts.map +1 -1
  36. package/dist/src/utils/content-helper.d.ts +2 -0
  37. package/dist/src/utils/content-helper.d.ts.map +1 -0
  38. package/dist/src/utils/delta-helpers.d.ts +2 -3
  39. package/dist/src/utils/delta-helpers.d.ts.map +1 -1
  40. package/dist/src/utils/encoding-helpers.d.ts +6 -0
  41. package/dist/src/utils/encoding-helpers.d.ts.map +1 -0
  42. package/dist/src/utils/encoding.d.ts +16 -18
  43. package/dist/src/utils/encoding.d.ts.map +1 -1
  44. package/dist/src/utils/ids.d.ts +331 -0
  45. package/dist/src/utils/ids.d.ts.map +1 -0
  46. package/dist/src/utils/isParentOf.d.ts +1 -2
  47. package/dist/src/utils/isParentOf.d.ts.map +1 -1
  48. package/dist/src/utils/logging.d.ts +0 -1
  49. package/dist/src/utils/logging.d.ts.map +1 -1
  50. package/dist/src/utils/meta.d.ts +15 -64
  51. package/dist/src/utils/meta.d.ts.map +1 -1
  52. package/dist/src/utils/renderer-helpers.d.ts +99 -0
  53. package/dist/src/utils/renderer-helpers.d.ts.map +1 -0
  54. package/dist/src/utils/schemas.d.ts +3 -0
  55. package/dist/src/utils/schemas.d.ts.map +1 -0
  56. package/dist/src/utils/transaction-helpers.d.ts +18 -0
  57. package/dist/src/utils/transaction-helpers.d.ts.map +1 -0
  58. package/dist/src/utils/updates.d.ts +19 -25
  59. package/dist/src/utils/updates.d.ts.map +1 -1
  60. package/dist/src/ytype.d.ts +144 -41
  61. package/dist/src/ytype.d.ts.map +1 -1
  62. package/global.d.ts +53 -0
  63. package/package.json +12 -16
  64. package/src/index.js +32 -124
  65. package/src/structs/AbstractStruct.js +21 -16
  66. package/src/structs/GC.js +15 -20
  67. package/src/structs/Item.js +992 -318
  68. package/src/structs/Skip.js +16 -19
  69. package/src/utils/BlockSet.js +20 -20
  70. package/src/utils/Doc.js +18 -29
  71. package/src/utils/ID.js +0 -2
  72. package/src/utils/RelativePosition.js +15 -25
  73. package/src/utils/{AttributionManager.js → Renderer.js} +42 -197
  74. package/src/utils/Snapshot.js +15 -37
  75. package/src/utils/StructStore.js +89 -227
  76. package/src/utils/Transaction.js +89 -321
  77. package/src/utils/UndoManager.js +157 -19
  78. package/src/utils/UpdateDecoder.js +2 -3
  79. package/src/utils/UpdateEncoder.js +0 -4
  80. package/src/utils/YEvent.js +20 -26
  81. package/src/utils/content-helper.js +0 -0
  82. package/src/utils/delta-helpers.js +21 -42
  83. package/src/utils/encoding-helpers.js +110 -0
  84. package/src/utils/encoding.js +197 -122
  85. package/src/utils/ids.js +1527 -0
  86. package/src/utils/isParentOf.js +2 -4
  87. package/src/utils/logging.js +0 -4
  88. package/src/utils/meta.js +57 -46
  89. package/src/utils/renderer-helpers.js +110 -0
  90. package/src/utils/schemas.js +3 -0
  91. package/src/utils/transaction-helpers.js +413 -0
  92. package/src/utils/updates.js +24 -146
  93. package/src/ytype.js +626 -255
  94. package/tests/testHelper.js +10 -12
  95. package/dist/src/internals.d.ts +0 -36
  96. package/dist/src/internals.d.ts.map +0 -1
  97. package/dist/src/structs/ContentAny.d.ts +0 -67
  98. package/dist/src/structs/ContentAny.d.ts.map +0 -1
  99. package/dist/src/structs/ContentBinary.d.ts +0 -64
  100. package/dist/src/structs/ContentBinary.d.ts.map +0 -1
  101. package/dist/src/structs/ContentDeleted.d.ts +0 -64
  102. package/dist/src/structs/ContentDeleted.d.ts.map +0 -1
  103. package/dist/src/structs/ContentDoc.d.ts +0 -72
  104. package/dist/src/structs/ContentDoc.d.ts.map +0 -1
  105. package/dist/src/structs/ContentEmbed.d.ts +0 -67
  106. package/dist/src/structs/ContentEmbed.d.ts.map +0 -1
  107. package/dist/src/structs/ContentFormat.d.ts +0 -69
  108. package/dist/src/structs/ContentFormat.d.ts.map +0 -1
  109. package/dist/src/structs/ContentJSON.d.ts +0 -70
  110. package/dist/src/structs/ContentJSON.d.ts.map +0 -1
  111. package/dist/src/structs/ContentString.d.ts +0 -70
  112. package/dist/src/structs/ContentString.d.ts.map +0 -1
  113. package/dist/src/structs/ContentType.d.ts +0 -77
  114. package/dist/src/structs/ContentType.d.ts.map +0 -1
  115. package/dist/src/utils/AttributionManager.d.ts +0 -238
  116. package/dist/src/utils/AttributionManager.d.ts.map +0 -1
  117. package/dist/src/utils/IdMap.d.ts +0 -164
  118. package/dist/src/utils/IdMap.d.ts.map +0 -1
  119. package/dist/src/utils/IdSet.d.ts +0 -163
  120. package/dist/src/utils/IdSet.d.ts.map +0 -1
  121. package/dist/tests/IdMap.tests.d.ts +0 -9
  122. package/dist/tests/IdMap.tests.d.ts.map +0 -1
  123. package/dist/tests/IdSet.tests.d.ts +0 -9
  124. package/dist/tests/IdSet.tests.d.ts.map +0 -1
  125. package/dist/tests/attribution.tests.d.ts +0 -9
  126. package/dist/tests/attribution.tests.d.ts.map +0 -1
  127. package/dist/tests/compatibility.tests.d.ts +0 -5
  128. package/dist/tests/compatibility.tests.d.ts.map +0 -1
  129. package/dist/tests/delta.tests.d.ts +0 -7
  130. package/dist/tests/delta.tests.d.ts.map +0 -1
  131. package/dist/tests/doc.tests.d.ts +0 -13
  132. package/dist/tests/doc.tests.d.ts.map +0 -1
  133. package/dist/tests/encoding.tests.d.ts +0 -5
  134. package/dist/tests/encoding.tests.d.ts.map +0 -1
  135. package/dist/tests/index.d.ts +0 -2
  136. package/dist/tests/index.d.ts.map +0 -1
  137. package/dist/tests/relativePositions.tests.d.ts +0 -11
  138. package/dist/tests/relativePositions.tests.d.ts.map +0 -1
  139. package/dist/tests/snapshot.tests.d.ts +0 -14
  140. package/dist/tests/snapshot.tests.d.ts.map +0 -1
  141. package/dist/tests/testHelper.d.ts +0 -171
  142. package/dist/tests/testHelper.d.ts.map +0 -1
  143. package/dist/tests/undo-redo.tests.d.ts +0 -27
  144. package/dist/tests/undo-redo.tests.d.ts.map +0 -1
  145. package/dist/tests/updates.tests.d.ts +0 -26
  146. package/dist/tests/updates.tests.d.ts.map +0 -1
  147. package/dist/tests/y-array.tests.d.ts +0 -43
  148. package/dist/tests/y-array.tests.d.ts.map +0 -1
  149. package/dist/tests/y-map.tests.d.ts +0 -42
  150. package/dist/tests/y-map.tests.d.ts.map +0 -1
  151. package/dist/tests/y-text.tests.d.ts +0 -49
  152. package/dist/tests/y-text.tests.d.ts.map +0 -1
  153. package/dist/tests/y-xml.tests.d.ts +0 -14
  154. package/dist/tests/y-xml.tests.d.ts.map +0 -1
  155. package/src/internals.js +0 -35
  156. package/src/structs/ContentAny.js +0 -115
  157. package/src/structs/ContentBinary.js +0 -93
  158. package/src/structs/ContentDeleted.js +0 -101
  159. package/src/structs/ContentDoc.js +0 -141
  160. package/src/structs/ContentEmbed.js +0 -98
  161. package/src/structs/ContentFormat.js +0 -105
  162. package/src/structs/ContentJSON.js +0 -119
  163. package/src/structs/ContentString.js +0 -113
  164. package/src/structs/ContentType.js +0 -152
  165. package/src/utils/IdMap.js +0 -673
  166. package/src/utils/IdSet.js +0 -825
@@ -1,70 +0,0 @@
1
- /**
2
- * @private
3
- */
4
- export class ContentString {
5
- /**
6
- * @param {string} str
7
- */
8
- constructor(str: string);
9
- /**
10
- * @type {string}
11
- */
12
- str: string;
13
- /**
14
- * @return {number}
15
- */
16
- getLength(): number;
17
- /**
18
- * @return {Array<any>}
19
- */
20
- getContent(): Array<any>;
21
- /**
22
- * @return {boolean}
23
- */
24
- isCountable(): boolean;
25
- /**
26
- * @return {ContentString}
27
- */
28
- copy(): ContentString;
29
- /**
30
- * @param {number} offset
31
- * @return {ContentString}
32
- */
33
- splice(offset: number): ContentString;
34
- /**
35
- * @param {ContentString} right
36
- * @return {boolean}
37
- */
38
- mergeWith(right: ContentString): boolean;
39
- /**
40
- * @param {Transaction} transaction
41
- * @param {Item} item
42
- */
43
- integrate(transaction: Transaction, item: Item): void;
44
- /**
45
- * @param {Transaction} transaction
46
- */
47
- delete(transaction: Transaction): void;
48
- /**
49
- * @param {Transaction} _tr
50
- */
51
- gc(_tr: Transaction): void;
52
- /**
53
- * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder
54
- * @param {number} offset
55
- * @param {number} offsetEnd
56
- */
57
- write(encoder: UpdateEncoderV1 | UpdateEncoderV2, offset: number, offsetEnd: number): void;
58
- /**
59
- * @return {number}
60
- */
61
- getRef(): number;
62
- }
63
- export function readContentString(decoder: UpdateDecoderV1 | UpdateDecoderV2): ContentString;
64
- import { Transaction } from '../internals.js';
65
- import { Item } from '../internals.js';
66
- import { UpdateEncoderV1 } from '../internals.js';
67
- import { UpdateEncoderV2 } from '../internals.js';
68
- import { UpdateDecoderV1 } from '../internals.js';
69
- import { UpdateDecoderV2 } from '../internals.js';
70
- //# sourceMappingURL=ContentString.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentString.d.ts","sourceRoot":"","sources":["../../../src/structs/ContentString.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IACE;;OAEG;IACH,iBAFW,MAAM,EAOhB;IAJC;;OAEG;IACH,KAFU,MAAM,CAEF;IAGhB;;OAEG;IACH,aAFY,MAAM,CAIjB;IAED;;OAEG;IACH,cAFY,KAAK,CAAC,GAAG,CAAC,CAIrB;IAED;;OAEG;IACH,eAFY,OAAO,CAIlB;IAED;;OAEG;IACH,QAFY,aAAa,CAIxB;IAED;;;OAGG;IACH,eAHW,MAAM,GACL,aAAa,CAiBxB;IAED;;;OAGG;IACH,iBAHW,aAAa,GACZ,OAAO,CAKlB;IAED;;;OAGG;IACH,uBAHW,WAAW,QACX,IAAI,QAEiB;IAChC;;OAEG;IACH,oBAFW,WAAW,QAEC;IACvB;;OAEG;IACH,QAFW,WAAW,QAEX;IACX;;;;OAIG;IACH,eAJW,eAAe,GAAG,eAAe,UACjC,MAAM,aACN,MAAM,QAIhB;IAED;;OAEG;IACH,UAFY,MAAM,CAIjB;CACF;AAQM,2CAHI,eAAe,GAAG,eAAe,GAChC,aAAa,CAE0D;4BA9G5E,iBAAiB;qBAAjB,iBAAiB;gCAAjB,iBAAiB;gCAAjB,iBAAiB;gCAAjB,iBAAiB;gCAAjB,iBAAiB"}
@@ -1,77 +0,0 @@
1
- export const YArrayRefID: 0;
2
- export const YMapRefID: 1;
3
- export const YTextRefID: 2;
4
- export const YXmlElementRefID: 3;
5
- export const YXmlFragmentRefID: 4;
6
- export const YXmlHookRefID: 5;
7
- export const YXmlTextRefID: 6;
8
- /**
9
- * @private
10
- */
11
- export class ContentType {
12
- /**
13
- * @param {import('../ytype.js').YType} type
14
- */
15
- constructor(type: import("../ytype.js").YType);
16
- /**
17
- * @type {import('../ytype.js').YType}
18
- */
19
- type: import("../ytype.js").YType;
20
- /**
21
- * @return {number}
22
- */
23
- getLength(): number;
24
- /**
25
- * @return {Array<any>}
26
- */
27
- getContent(): Array<any>;
28
- /**
29
- * @return {boolean}
30
- */
31
- isCountable(): boolean;
32
- /**
33
- * @return {ContentType}
34
- */
35
- copy(): ContentType;
36
- /**
37
- * @param {number} _offset
38
- * @return {ContentType}
39
- */
40
- splice(_offset: number): ContentType;
41
- /**
42
- * @param {ContentType} _right
43
- * @return {boolean}
44
- */
45
- mergeWith(_right: ContentType): boolean;
46
- /**
47
- * @param {Transaction} transaction
48
- * @param {Item} item
49
- */
50
- integrate(transaction: Transaction, item: Item): void;
51
- /**
52
- * @param {Transaction} transaction
53
- */
54
- delete(transaction: Transaction): void;
55
- /**
56
- * @param {Transaction} tr
57
- */
58
- gc(tr: Transaction): void;
59
- /**
60
- * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder
61
- * @param {number} _offset
62
- * @param {number} _offsetEnd
63
- */
64
- write(encoder: UpdateEncoderV1 | UpdateEncoderV2, _offset: number, _offsetEnd: number): void;
65
- /**
66
- * @return {number}
67
- */
68
- getRef(): number;
69
- }
70
- export function readContentType(decoder: UpdateDecoderV1 | UpdateDecoderV2): ContentType;
71
- import { Transaction } from '../internals.js';
72
- import { Item } from '../internals.js';
73
- import { UpdateEncoderV1 } from '../internals.js';
74
- import { UpdateEncoderV2 } from '../internals.js';
75
- import { UpdateDecoderV1 } from '../internals.js';
76
- import { UpdateDecoderV2 } from '../internals.js';
77
- //# sourceMappingURL=ContentType.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentType.d.ts","sourceRoot":"","sources":["../../../src/structs/ContentType.js"],"names":[],"mappings":"AAOA,0BAA2B,CAAC,CAAA;AAC5B,wBAAyB,CAAC,CAAA;AAC1B,yBAA0B,CAAC,CAAA;AAC3B,+BAAgC,CAAC,CAAA;AACjC,gCAAiC,CAAC,CAAA;AAClC,4BAA6B,CAAC,CAAA;AAC9B,4BAA6B,CAAC,CAAA;AAE9B;;GAEG;AACH;IACE;;OAEG;IACH,kBAFW,OAAO,aAAa,EAAE,KAAK,EAOrC;IAJC;;OAEG;IACH,MAFU,OAAO,aAAa,EAAE,KAAK,CAErB;IAGlB;;OAEG;IACH,aAFY,MAAM,CAIjB;IAED;;OAEG;IACH,cAFY,KAAK,CAAC,GAAG,CAAC,CAIrB;IAED;;OAEG;IACH,eAFY,OAAO,CAIlB;IAED;;OAEG;IACH,QAFY,WAAW,CAItB;IAED;;;OAGG;IACH,gBAHW,MAAM,GACL,WAAW,CAItB;IAED;;;OAGG;IACH,kBAHW,WAAW,GACV,OAAO,CAIlB;IAED;;;OAGG;IACH,uBAHW,WAAW,QACX,IAAI,QAId;IAED;;OAEG;IACH,oBAFW,WAAW,QAyBrB;IAED;;OAEG;IACH,OAFW,WAAW,QAgBrB;IAED;;;;OAIG;IACH,eAJW,eAAe,GAAG,eAAe,WACjC,MAAM,cACN,MAAM,QAIhB;IAED;;OAEG;IACH,UAFY,MAAM,CAIjB;CACF;AAQM,yCAHI,eAAe,GAAG,eAAe,GAChC,WAAW,CAEsD;4BArJtE,iBAAiB;qBAAjB,iBAAiB;gCAAjB,iBAAiB;gCAAjB,iBAAiB;gCAAjB,iBAAiB;gCAAjB,iBAAiB"}
@@ -1,238 +0,0 @@
1
- export const attributionJsonSchema: s.Schema<{
2
- insert?: string[] | undefined;
3
- insertedAt?: number | undefined;
4
- delete?: string[] | undefined;
5
- deletedAt?: number | undefined;
6
- format?: {
7
- [x: string]: string[];
8
- } | undefined;
9
- formatAt?: number | undefined;
10
- }>;
11
- export function createAttributionFromAttributionItems(attrs: Array<import("./IdMap.js").ContentAttribute<any>> | null, deleted: boolean): Attribution | null;
12
- /**
13
- * @template T
14
- */
15
- export class AttributedContent<T> {
16
- /**
17
- * @param {AbstractContent} content
18
- * @param {number} clock
19
- * @param {boolean} deleted
20
- * @param {Array<import('./IdMap.js').ContentAttribute<T>> | null} attrs
21
- * @param {0|1|2} renderBehavior
22
- */
23
- constructor(content: AbstractContent, clock: number, deleted: boolean, attrs: Array<import("./IdMap.js").ContentAttribute<T>> | null, renderBehavior: 0 | 1 | 2);
24
- content: AbstractContent;
25
- clock: number;
26
- deleted: boolean;
27
- attrs: import("./IdMap.js").ContentAttribute<T>[] | null;
28
- render: boolean;
29
- }
30
- /**
31
- * Abstract class for associating Attributions to content / changes
32
- *
33
- * Should fire an event when the attributions changed _after_ the original change happens. This
34
- * Event will be used to update the attribution on the current content.
35
- *
36
- * @extends {ObservableV2<{change:(idset:IdSet,origin:any,local:boolean)=>void}>}
37
- */
38
- export class AbstractAttributionManager extends ObservableV2<{
39
- change: (idset: IdSet, origin: any, local: boolean) => void;
40
- }> {
41
- constructor();
42
- /**
43
- * @param {Array<AttributedContent<any>>} _contents - where to write the result
44
- * @param {number} _client
45
- * @param {number} _clock
46
- * @param {boolean} _deleted
47
- * @param {AbstractContent} _content
48
- * @param {0|1|2} _shouldRender - 0: if undeleted or attributed, render as a retain operation. 1: render only if undeleted or attributed. 2: render as insert operation (if unattributed and deleted, render as delete).
49
- */
50
- readContent(_contents: Array<AttributedContent<any>>, _client: number, _clock: number, _deleted: boolean, _content: AbstractContent, _shouldRender: 0 | 1 | 2): void;
51
- /**
52
- * Calculate the length of the attributed content. This is used by iterators that walk through the
53
- * content.
54
- *
55
- * If the content is not countable, it should return 0.
56
- *
57
- * @param {Item} _item
58
- * @return {number}
59
- */
60
- contentLength(_item: Item): number;
61
- }
62
- /**
63
- * @implements AbstractAttributionManager
64
- *
65
- * @extends {ObservableV2<{change:(idset:IdSet,origin:any,local:boolean)=>void}>}
66
- */
67
- export class TwosetAttributionManager extends ObservableV2<{
68
- change: (idset: IdSet, origin: any, local: boolean) => void;
69
- }> implements AbstractAttributionManager {
70
- /**
71
- * @param {IdMap<any>} inserts
72
- * @param {IdMap<any>} deletes
73
- */
74
- constructor(inserts: IdMap<any>, deletes: IdMap<any>);
75
- inserts: IdMap<any>;
76
- deletes: IdMap<any>;
77
- /**
78
- * @param {Array<AttributedContent<any>>} contents - where to write the result
79
- * @param {number} client
80
- * @param {number} clock
81
- * @param {boolean} deleted
82
- * @param {AbstractContent} content
83
- * @param {0|1|2} shouldRender - whether this should render or just result in a `retain` operation
84
- */
85
- readContent(contents: Array<AttributedContent<any>>, client: number, clock: number, deleted: boolean, content: AbstractContent, shouldRender: 0 | 1 | 2): void;
86
- /**
87
- * @param {Item} item
88
- * @return {number}
89
- */
90
- contentLength(item: Item): number;
91
- }
92
- /**
93
- * Abstract class for associating Attributions to content / changes
94
- *
95
- * @implements AbstractAttributionManager
96
- *
97
- * @extends {ObservableV2<{change:(idset:IdSet,origin:any,local:boolean)=>void}>}
98
- */
99
- export class NoAttributionsManager extends ObservableV2<{
100
- change: (idset: IdSet, origin: any, local: boolean) => void;
101
- }> implements AbstractAttributionManager {
102
- constructor();
103
- /**
104
- * @param {Array<AttributedContent<any>>} contents - where to write the result
105
- * @param {number} _client
106
- * @param {number} clock
107
- * @param {boolean} deleted
108
- * @param {AbstractContent} content
109
- * @param {0|1|2} shouldRender - whether this should render or just result in a `retain` operation
110
- */
111
- readContent(contents: Array<AttributedContent<any>>, _client: number, clock: number, deleted: boolean, content: AbstractContent, shouldRender: 0 | 1 | 2): void;
112
- /**
113
- * @param {Item} item
114
- * @return {number}
115
- */
116
- contentLength(item: Item): number;
117
- }
118
- export const noAttributionsManager: NoAttributionsManager;
119
- export class Attributions {
120
- inserts: IdMap<any>;
121
- deletes: IdMap<any>;
122
- }
123
- /**
124
- * @implements AbstractAttributionManager
125
- *
126
- * @extends {ObservableV2<{change:(idset:IdSet,origin:any,local:boolean)=>void}>}
127
- */
128
- export class DiffAttributionManager extends ObservableV2<{
129
- change: (idset: IdSet, origin: any, local: boolean) => void;
130
- }> implements AbstractAttributionManager {
131
- /**
132
- * @param {Doc} prevDoc
133
- * @param {Doc} nextDoc
134
- * @param {Object} [options] - options for the attribution manager
135
- * @param {Attributions?} [options.attrs] - the attributes to apply to the diff
136
- */
137
- constructor(prevDoc: Doc, nextDoc: Doc, { attrs }?: {
138
- attrs?: Attributions | null | undefined;
139
- });
140
- inserts: IdMap<any>;
141
- deletes: IdMap<any>;
142
- _prevDoc: Doc;
143
- _prevDocStore: StructStore;
144
- _nextDoc: Doc;
145
- _nextBOH: (arg0: Transaction, arg1: Doc) => void;
146
- _prevBOH: (arg0: Transaction, arg1: Doc) => void;
147
- _prevUpdateListener: (arg0: Uint8Array<ArrayBuffer>, arg1: any, arg2: Doc, arg3: Transaction) => void;
148
- _ndUpdateListener: (arg0: Uint8Array<ArrayBuffer>, arg1: any, arg2: Doc, arg3: Transaction) => void;
149
- _afterTrListener: (arg0: Transaction, arg1: Doc) => void;
150
- suggestionMode: boolean;
151
- /**
152
- * Optionally limit origins that may sync changes to the main doc if suggestion-mode is
153
- * disabled.
154
- *
155
- * @type {Array<any>?}
156
- */
157
- suggestionOrigins: Array<any> | null;
158
- _destroyHandler: (arg0: Doc) => void;
159
- acceptAllChanges(): void;
160
- rejectAllChanges(): void;
161
- /**
162
- * @param {ID} start
163
- * @param {ID} end
164
- */
165
- acceptChanges(start: ID, end?: ID): void;
166
- /**
167
- * @param {ID} start
168
- * @param {ID} end
169
- */
170
- rejectChanges(start: ID, end?: ID): void;
171
- /**
172
- * @param {Array<AttributedContent<any>>} contents - where to write the result
173
- * @param {number} client
174
- * @param {number} clock
175
- * @param {boolean} deleted
176
- * @param {AbstractContent} _content
177
- * @param {0|1|2} shouldRender - whether this should render or just result in a `retain` operation
178
- */
179
- readContent(contents: Array<AttributedContent<any>>, client: number, clock: number, deleted: boolean, _content: AbstractContent, shouldRender: 0 | 1 | 2): void;
180
- /**
181
- * @param {Item} item
182
- * @return {number}
183
- */
184
- contentLength(item: Item): number;
185
- }
186
- export function createAttributionManagerFromDiff(prevDoc: Doc, nextDoc: Doc, options?: {
187
- attrs?: import("./meta.js").ContentMap | null | undefined;
188
- }): DiffAttributionManager;
189
- /**
190
- * Intended for projects that used the v13 snapshot feature. With this AttributionManager you can
191
- * read content similar to the previous snapshot api. Requires that `ydoc.gc` is turned off.
192
- *
193
- * @implements AbstractAttributionManager
194
- *
195
- * @extends {ObservableV2<{change:(idset:IdSet,origin:any,local:boolean)=>void}>}
196
- */
197
- export class SnapshotAttributionManager extends ObservableV2<{
198
- change: (idset: IdSet, origin: any, local: boolean) => void;
199
- }> implements AbstractAttributionManager {
200
- /**
201
- * @param {Snapshot} prevSnapshot
202
- * @param {Snapshot} nextSnapshot
203
- * @param {Object} [options] - options for the attribution manager
204
- * @param {Array<import('./IdMap.js').ContentAttribute<any>>} [options.attrs] - the attributes to apply to the diff
205
- */
206
- constructor(prevSnapshot: Snapshot, nextSnapshot: Snapshot);
207
- prevSnapshot: Snapshot;
208
- nextSnapshot: Snapshot;
209
- attrs: IdMap<any>;
210
- /**
211
- * @param {Array<AttributedContent<any>>} contents - where to write the result
212
- * @param {number} client
213
- * @param {number} clock
214
- * @param {boolean} _deleted
215
- * @param {AbstractContent} content
216
- * @param {0|1|2} shouldRender - whether this should render or just result in a `retain` operation
217
- */
218
- readContent(contents: Array<AttributedContent<any>>, client: number, clock: number, _deleted: boolean, content: AbstractContent, shouldRender: 0 | 1 | 2): void;
219
- /**
220
- * @param {Item} item
221
- * @return {number}
222
- */
223
- contentLength(item: Item): number;
224
- }
225
- export function createAttributionManagerFromSnapshots(prevSnapshot: Snapshot, nextSnapshot?: Snapshot): SnapshotAttributionManager;
226
- export type Attribution = s.Unwrap<typeof attributionJsonSchema>;
227
- import * as s from 'lib0/schema';
228
- import { AbstractContent } from '../internals.js';
229
- import { IdSet } from '../internals.js';
230
- import { ObservableV2 } from 'lib0/observable';
231
- import { Item } from '../internals.js';
232
- import { IdMap } from '../internals.js';
233
- import { Doc } from '../internals.js';
234
- import { StructStore } from '../internals.js';
235
- import { Transaction } from '../internals.js';
236
- import { ID } from '../internals.js';
237
- import { Snapshot } from '../internals.js';
238
- //# sourceMappingURL=AttributionManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AttributionManager.d.ts","sourceRoot":"","sources":["../../../src/utils/AttributionManager.js"],"names":[],"mappings":"AAqCA;;;;;;;;;GAOE;AAcK,6DAJI,KAAK,CAAC,OAAO,YAAY,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAC,WAClD,OAAO,GACN,WAAW,OAAC,CAgCvB;AAED;;GAEG;AACH,+BAFa,CAAC;IAGZ;;;;;;OAMG;IACH,qBANW,eAAe,SACf,MAAM,WACN,OAAO,SACP,KAAK,CAAC,OAAO,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,kBACtD,CAAC,GAAC,CAAC,GAAC,CAAC,EAQf;IALC,yBAAsB;IACtB,cAAkB;IAClB,iBAAsB;IACtB,yDAAkB;IAClB,gBAAwG;CAE3G;AAED;;;;;;;GAOG;AACH;YAFkC,CAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,KAAK,EAAC,OAAO,KAAG,IAAI;;;IAG5E;;;;;;;OAOG;IACH,uBAPW,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAC7B,MAAM,UACN,MAAM,YACN,OAAO,YACP,eAAe,iBACf,CAAC,GAAC,CAAC,GAAC,CAAC,QAIf;IAED;;;;;;;;OAQG;IACH,qBAHW,IAAI,GACH,MAAM,CAIjB;CACF;AAED;;;;GAIG;AACH;YAFkC,CAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,KAAK,EAAC,OAAO,KAAG,IAAI;cAF/D,0BAA0B;IAKvC;;;OAGG;IACH,qBAHW,KAAK,CAAC,GAAG,CAAC,WACV,KAAK,CAAC,GAAG,CAAC,EAMpB;IAFC,oBAAsB;IACtB,oBAAsB;IAGxB;;;;;;;OAOG;IACH,sBAPW,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAC7B,MAAM,SACN,MAAM,WACN,OAAO,WACP,eAAe,gBACf,CAAC,GAAC,CAAC,GAAC,CAAC,QAcf;IAED;;;OAGG;IACH,oBAHW,IAAI,GACH,MAAM,CAUjB;CACF;AAED;;;;;;GAMG;AACH;YAFkC,CAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,KAAK,EAAC,OAAO,KAAG,IAAI;cAF/D,0BAA0B;;IAKvC;;;;;;;OAOG;IACH,sBAPW,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAC7B,MAAM,SACN,MAAM,WACN,OAAO,WACP,eAAe,gBACf,CAAC,GAAC,CAAC,GAAC,CAAC,QAMf;IAED;;;OAGG;IACH,oBAHW,IAAI,GACH,MAAM,CAIjB;CACF;AAED,0DAAgE;AAkHhE;IAEI,oBAA4B;IAC5B,oBAA4B;CAE/B;AASD;;;;GAIG;AACH;YAFkC,CAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,KAAK,EAAC,OAAO,KAAG,IAAI;cAF/D,0BAA0B;IAKvC;;;;;OAKG;IACH,qBALW,GAAG,WACH,GAAG,cAEX;QAAgC,KAAK;KACvC,EAiFA;IA1EC,oBAA+F;IAC/F,oBAA6F;IAC7F,cAAuB;IACvB,2BAAkC;IAClC,cAAuB;IAEvB,iDAQE;IACF,iDAqBE;IAGF,sGAEE;IACF,oGAKE;IACF,yDAeE;IACF,wBAA0B;IAC1B;;;;;OAKG;IACH,mBAFU,KAAK,CAAC,GAAG,CAAC,OAAC,CAEQ;IAC7B,qCAAqE;IAevE,yBAEC;IAED,yBAQC;IAED;;;OAGG;IACH,qBAHW,EAAE,QACF,EAAE,QAQZ;IAED;;;OAGG;IACH,qBAHW,EAAE,QACF,EAAE,QAcZ;IAED;;;;;;;OAOG;IACH,sBAPW,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAC7B,MAAM,SACN,MAAM,WACN,OAAO,YACP,eAAe,gBACf,CAAC,GAAC,CAAC,GAAC,CAAC,QAkCf;IAED;;;OAGG;IACH,oBAHW,IAAI,GACH,MAAM,CAYjB;CACF;AAUM,0DALI,GAAG,WACH,GAAG,YAEX;IAAkD,KAAK;CACzD,0BACmI;AAEpI;;;;;;;GAOG;AACH;YAFkC,CAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,KAAK,EAAC,OAAO,KAAG,IAAI;cAF/D,0BAA0B;IAKvC;;;;;OAKG;IACH,0BALW,QAAQ,gBACR,QAAQ,EAgBlB;IAVC,uBAAgC;IAChC,uBAAgC;IAQhC,kBAAwE;IAG1E;;;;;;;OAOG;IACH,sBAPW,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAC7B,MAAM,SACN,MAAM,YACN,OAAO,WACP,eAAe,gBACf,CAAC,GAAC,CAAC,GAAC,CAAC,QAsBf;IAED;;;OAGG;IACH,oBAHW,IAAI,GACH,MAAM,CASjB;CACF;AAMM,oEAHI,QAAQ,iBACR,QAAQ,8BAE2I;0BA3lBjJ,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC;mBAdhC,aAAa;gCALzB,iBAAiB;sBAAjB,iBAAiB;6BAGK,iBAAiB;qBAHvC,iBAAiB;sBAAjB,iBAAiB;oBAAjB,iBAAiB;4BAAjB,iBAAiB;4BAAjB,iBAAiB;mBAAjB,iBAAiB;yBAAjB,iBAAiB"}
@@ -1,164 +0,0 @@
1
- /**
2
- * @todo rename this to `Attribute`
3
- * @template V
4
- */
5
- export class ContentAttribute<V> {
6
- /**
7
- * @param {string} name
8
- * @param {V} val
9
- */
10
- constructor(name: string, val: V);
11
- name: string;
12
- val: V;
13
- hash(): string;
14
- }
15
- export function createContentAttribute<V>(name: string, val: V): ContentAttribute<V>;
16
- export function idmapAttrsEqual<T_1>(a: Array<T_1>, b: Array<T_1>): boolean;
17
- /**
18
- * @template Attrs
19
- */
20
- export class AttrRange<Attrs> {
21
- /**
22
- * @param {number} clock
23
- * @param {number} len
24
- * @param {Array<ContentAttribute<Attrs>>} attrs
25
- */
26
- constructor(clock: number, len: number, attrs: Array<ContentAttribute<Attrs>>);
27
- /**
28
- * @readonly
29
- */
30
- readonly clock: number;
31
- /**
32
- * @readonly
33
- */
34
- readonly len: number;
35
- /**
36
- * @readonly
37
- */
38
- readonly attrs: ContentAttribute<Attrs>[];
39
- /**
40
- * @param {number} clock
41
- * @param {number} len
42
- */
43
- copyWith(clock: number, len: number): AttrRange<Attrs>;
44
- }
45
- export function createMaybeAttrRange<Attrs>(clock: number, len: number, attrs: Array<ContentAttribute<Attrs>> | null): MaybeAttrRange<Attrs>;
46
- /**
47
- * Whenever this is instantiated, it must receive a fresh array of ops, not something copied.
48
- *
49
- * @template Attrs
50
- */
51
- export class AttrRanges<Attrs> {
52
- /**
53
- * @param {Array<AttrRange<Attrs>>} ids
54
- */
55
- constructor(ids: Array<AttrRange<Attrs>>);
56
- sorted: boolean;
57
- /**
58
- * @private
59
- */
60
- private _ids;
61
- copy(): AttrRanges<Attrs>;
62
- /**
63
- * @param {number} clock
64
- * @param {number} length
65
- * @param {Array<ContentAttribute<Attrs>>} attrs
66
- */
67
- add(clock: number, length: number, attrs: Array<ContentAttribute<Attrs>>): void;
68
- /**
69
- * Return the list of id ranges, sorted and merged.
70
- */
71
- getIds(): AttrRange<Attrs>[];
72
- }
73
- export function mergeIdMaps<T_1>(ams: Array<IdMap<T_1>>): IdMap<T_1>;
74
- export function createIdMapFromIdSet(idset: IdSet, attrs: Array<ContentAttribute<any>>): IdMap<any>;
75
- export function createIdSetFromIdMap(idmap: IdMap<any>): IdSet;
76
- /**
77
- * @template Attrs
78
- */
79
- export class IdMap<Attrs> {
80
- /**
81
- * @type {Map<number,AttrRanges<Attrs>>}
82
- */
83
- clients: Map<number, AttrRanges<Attrs>>;
84
- /**
85
- * @type {Map<string, ContentAttribute<Attrs>>}
86
- */
87
- attrsH: Map<string, ContentAttribute<Attrs>>;
88
- /**
89
- * @type {Set<ContentAttribute<Attrs>>}
90
- */
91
- attrs: Set<ContentAttribute<Attrs>>;
92
- /**
93
- * @param {(attrRange:AttrRange<Attrs>, client:number) => void} f
94
- */
95
- forEach(f: (attrRange: AttrRange<Attrs>, client: number) => void): void;
96
- isEmpty(): boolean;
97
- /**
98
- * @param {ID} id
99
- * @return {boolean}
100
- */
101
- hasId(id: ID): boolean;
102
- /**
103
- * @param {number} client
104
- * @param {number} clock
105
- * @return {boolean}
106
- */
107
- has(client: number, clock: number): boolean;
108
- /**
109
- * Return attributions for a slice of ids.
110
- *
111
- * @param {ID} id
112
- * @param {number} len
113
- * @return {Array<MaybeAttrRange<Attrs>>}
114
- */
115
- sliceId(id: ID, len: number): Array<MaybeAttrRange<Attrs>>;
116
- /**
117
- * Return attributions for a slice of ids.
118
- *
119
- * @param {number} client
120
- * @param {number} clock
121
- * @param {number} len
122
- * @return {Array<MaybeAttrRange<Attrs>>}
123
- */
124
- slice(client: number, clock: number, len: number): Array<MaybeAttrRange<Attrs>>;
125
- /**
126
- * @param {number} client
127
- * @param {number} clock
128
- * @param {number} len
129
- * @param {Array<ContentAttribute<Attrs>>} attrs
130
- */
131
- add(client: number, clock: number, len: number, attrs: Array<ContentAttribute<Attrs>>): void;
132
- /**
133
- * @param {number} client
134
- * @param {number} clock
135
- * @param {number} len
136
- */
137
- delete(client: number, clock: number, len: number): void;
138
- }
139
- export function writeIdMap<Attr>(encoder: IdSetEncoderV1 | IdSetEncoderV2, idmap: IdMap<Attr>): void;
140
- export function encodeIdMap(idmap: IdMap<any>): Uint8Array<ArrayBuffer>;
141
- export function readIdMap(decoder: IdSetDecoderV1 | IdSetDecoderV2): IdMap<any>;
142
- export function decodeIdMap(data: Uint8Array): IdMap<any>;
143
- export function createIdMap(): IdMap<any>;
144
- /**
145
- * @template T
146
- * @param {IdMap<T>} dest
147
- * @param {IdMap<T>} src
148
- */
149
- export const insertIntoIdMap: <S extends IdSet | IdMap<any>>(dest: S, src: S) => void;
150
- export function diffIdMap<ISet extends IdMap<any>>(set: ISet, exclude: IdSet | IdMap<any>): ISet;
151
- export const intersectMaps: <SetA extends IdSet | IdMap<any>, SetB extends IdSet | IdMap<any>>(setA: SetA, setB: SetB) => SetA extends IdMap<infer A> ? (SetB extends IdMap<infer B> ? IdMap<A | B> : IdMap<A>) : IdSet;
152
- export function filterIdMap<Attrs>(idmap: IdMap<Attrs>, predicate: (attr: Array<ContentAttribute<Attrs>>) => boolean): IdMap<Attrs>;
153
- export type MaybeAttrRange<Attrs> = {
154
- clock: number;
155
- len: number;
156
- attrs: Array<ContentAttribute<Attrs>> | null;
157
- };
158
- import { IdSet } from '../internals.js';
159
- import { ID } from '../internals.js';
160
- import { IdSetEncoderV1 } from '../internals.js';
161
- import { IdSetEncoderV2 } from '../internals.js';
162
- import { IdSetDecoderV1 } from '../internals.js';
163
- import { IdSetDecoderV2 } from '../internals.js';
164
- //# sourceMappingURL=IdMap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IdMap.d.ts","sourceRoot":"","sources":["../../../src/utils/IdMap.js"],"names":[],"mappings":"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"}