@y/y 14.0.0-18 → 14.0.0-20

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 (129) hide show
  1. package/README.md +7 -5
  2. package/dist/src/index.d.ts +2 -1
  3. package/dist/src/internals.d.ts +2 -9
  4. package/dist/src/structs/ContentType.d.ts +6 -12
  5. package/dist/src/structs/ContentType.d.ts.map +1 -1
  6. package/dist/src/structs/Item.d.ts +5 -6
  7. package/dist/src/structs/Item.d.ts.map +1 -1
  8. package/dist/src/utils/AttributionManager.d.ts +20 -6
  9. package/dist/src/utils/AttributionManager.d.ts.map +1 -1
  10. package/dist/src/utils/Doc.d.ts +7 -70
  11. package/dist/src/utils/Doc.d.ts.map +1 -1
  12. package/dist/src/utils/ID.d.ts +2 -2
  13. package/dist/src/utils/ID.d.ts.map +1 -1
  14. package/dist/src/utils/IdMap.d.ts +19 -16
  15. package/dist/src/utils/IdMap.d.ts.map +1 -1
  16. package/dist/src/utils/IdSet.d.ts +2 -2
  17. package/dist/src/utils/IdSet.d.ts.map +1 -1
  18. package/dist/src/utils/RelativePosition.d.ts +8 -8
  19. package/dist/src/utils/RelativePosition.d.ts.map +1 -1
  20. package/dist/src/utils/Transaction.d.ts +9 -5
  21. package/dist/src/utils/Transaction.d.ts.map +1 -1
  22. package/dist/src/utils/UndoManager.d.ts +14 -12
  23. package/dist/src/utils/UndoManager.d.ts.map +1 -1
  24. package/dist/src/utils/UpdateEncoder.d.ts +2 -0
  25. package/dist/src/utils/UpdateEncoder.d.ts.map +1 -1
  26. package/dist/src/utils/YEvent.d.ts +21 -42
  27. package/dist/src/utils/YEvent.d.ts.map +1 -1
  28. package/dist/src/utils/isParentOf.d.ts +1 -1
  29. package/dist/src/utils/isParentOf.d.ts.map +1 -1
  30. package/dist/src/utils/logging.d.ts +2 -2
  31. package/dist/src/utils/logging.d.ts.map +1 -1
  32. package/dist/src/utils/meta.d.ts +43 -0
  33. package/dist/src/utils/meta.d.ts.map +1 -0
  34. package/dist/src/utils/ts.d.ts +4 -0
  35. package/dist/src/utils/ts.d.ts.map +1 -0
  36. package/dist/src/utils/updates.d.ts +3 -9
  37. package/dist/src/utils/updates.d.ts.map +1 -1
  38. package/dist/src/ytype.d.ts +498 -0
  39. package/dist/src/ytype.d.ts.map +1 -0
  40. package/dist/tests/IdMap.tests.d.ts.map +1 -1
  41. package/dist/tests/attribution.tests.d.ts +1 -0
  42. package/dist/tests/attribution.tests.d.ts.map +1 -1
  43. package/dist/tests/compatibility.tests.d.ts.map +1 -1
  44. package/dist/tests/doc.tests.d.ts.map +1 -1
  45. package/dist/tests/relativePositions.tests.d.ts +9 -9
  46. package/dist/tests/relativePositions.tests.d.ts.map +1 -1
  47. package/dist/tests/snapshot.tests.d.ts.map +1 -1
  48. package/dist/tests/testHelper.d.ts +28 -27
  49. package/dist/tests/testHelper.d.ts.map +1 -1
  50. package/dist/tests/undo-redo.tests.d.ts.map +1 -1
  51. package/dist/tests/updates.tests.d.ts +1 -1
  52. package/dist/tests/updates.tests.d.ts.map +1 -1
  53. package/dist/tests/y-array.tests.d.ts +0 -2
  54. package/dist/tests/y-array.tests.d.ts.map +1 -1
  55. package/dist/tests/y-map.tests.d.ts +0 -3
  56. package/dist/tests/y-map.tests.d.ts.map +1 -1
  57. package/dist/tests/y-text.tests.d.ts +1 -1
  58. package/dist/tests/y-text.tests.d.ts.map +1 -1
  59. package/dist/tests/y-xml.tests.d.ts +0 -1
  60. package/dist/tests/y-xml.tests.d.ts.map +1 -1
  61. package/package.json +16 -16
  62. package/src/index.js +152 -0
  63. package/src/internals.js +35 -0
  64. package/src/structs/AbstractStruct.js +59 -0
  65. package/src/structs/ContentAny.js +115 -0
  66. package/src/structs/ContentBinary.js +93 -0
  67. package/src/structs/ContentDeleted.js +101 -0
  68. package/src/structs/ContentDoc.js +141 -0
  69. package/src/structs/ContentEmbed.js +98 -0
  70. package/src/structs/ContentFormat.js +105 -0
  71. package/src/structs/ContentJSON.js +119 -0
  72. package/src/structs/ContentString.js +113 -0
  73. package/src/structs/ContentType.js +152 -0
  74. package/src/structs/GC.js +80 -0
  75. package/src/structs/Item.js +841 -0
  76. package/src/structs/Skip.js +75 -0
  77. package/src/utils/AttributionManager.js +653 -0
  78. package/src/utils/Doc.js +266 -0
  79. package/src/utils/EventHandler.js +87 -0
  80. package/src/utils/ID.js +89 -0
  81. package/src/utils/IdMap.js +673 -0
  82. package/src/utils/IdSet.js +825 -0
  83. package/src/utils/RelativePosition.js +352 -0
  84. package/src/utils/Snapshot.js +220 -0
  85. package/src/utils/StructSet.js +137 -0
  86. package/src/utils/StructStore.js +289 -0
  87. package/src/utils/Transaction.js +671 -0
  88. package/src/utils/UndoManager.js +406 -0
  89. package/src/utils/UpdateDecoder.js +281 -0
  90. package/src/utils/UpdateEncoder.js +327 -0
  91. package/src/utils/YEvent.js +189 -0
  92. package/src/utils/delta-helpers.js +54 -0
  93. package/src/utils/encoding.js +623 -0
  94. package/src/utils/isParentOf.js +21 -0
  95. package/src/utils/logging.js +21 -0
  96. package/src/utils/meta.js +97 -0
  97. package/src/utils/ts.js +3 -0
  98. package/src/utils/updates.js +711 -0
  99. package/src/ytype.js +1962 -0
  100. package/dist/Skip-wRT7BKFP.js +0 -11877
  101. package/dist/Skip-wRT7BKFP.js.map +0 -1
  102. package/dist/index-BV-j5wdP.js +0 -163
  103. package/dist/index-BV-j5wdP.js.map +0 -1
  104. package/dist/internals.js +0 -25
  105. package/dist/internals.js.map +0 -1
  106. package/dist/src/types/AbstractType.d.ts +0 -239
  107. package/dist/src/types/AbstractType.d.ts.map +0 -1
  108. package/dist/src/types/YArray.d.ts +0 -128
  109. package/dist/src/types/YArray.d.ts.map +0 -1
  110. package/dist/src/types/YMap.d.ts +0 -112
  111. package/dist/src/types/YMap.d.ts.map +0 -1
  112. package/dist/src/types/YText.d.ts +0 -216
  113. package/dist/src/types/YText.d.ts.map +0 -1
  114. package/dist/src/types/YXmlElement.d.ts +0 -106
  115. package/dist/src/types/YXmlElement.d.ts.map +0 -1
  116. package/dist/src/types/YXmlFragment.d.ts +0 -143
  117. package/dist/src/types/YXmlFragment.d.ts.map +0 -1
  118. package/dist/src/types/YXmlHook.d.ts +0 -32
  119. package/dist/src/types/YXmlHook.d.ts.map +0 -1
  120. package/dist/src/types/YXmlText.d.ts +0 -34
  121. package/dist/src/types/YXmlText.d.ts.map +0 -1
  122. package/dist/src/utils/AbstractConnector.d.ts +0 -20
  123. package/dist/src/utils/AbstractConnector.d.ts.map +0 -1
  124. package/dist/src/utils/types.d.ts +0 -7
  125. package/dist/src/utils/types.d.ts.map +0 -1
  126. package/dist/testHelper.js +0 -617
  127. package/dist/testHelper.js.map +0 -1
  128. package/dist/yjs.js +0 -26
  129. package/dist/yjs.js.map +0 -1
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Meta API for describing Yjs documents
3
+ */
4
+
5
+ import * as idmap from './IdMap.js'
6
+ import * as idset from './IdSet.js'
7
+ import { IdSetEncoderV2 } from './UpdateEncoder.js'
8
+
9
+ /**
10
+ * @typedef {{ inserts: import('./IdSet.js').IdSet, deletes: import('./IdSet.js').IdSet }} ContentIds
11
+ */
12
+
13
+ /**
14
+ * @typedef {{ inserts: import('./IdMap.js').IdMap<any>, deletes: import('./IdMap.js').IdMap<any> }} ContentMap
15
+ */
16
+
17
+ /**
18
+ * @param {import('./IdSet.js').IdSet} inserts
19
+ * @param {import('./IdSet.js').IdSet} deletes
20
+ */
21
+ export const createContentIds = (inserts, deletes) => ({ inserts, deletes })
22
+
23
+ /**
24
+ * @param {ContentMap} contentMap
25
+ */
26
+ export const createContentIdsFromContentMap = contentMap => createContentIds(
27
+ idmap.createIdSetFromIdMap(contentMap.inserts),
28
+ idmap.createIdSetFromIdMap(contentMap.deletes)
29
+ )
30
+
31
+ /**
32
+ * @param {import('./Doc.js').Doc} ydoc
33
+ */
34
+ export const createContentIdsFromDoc = ydoc => createContentIds(
35
+ idset.createInsertSetFromStructStore(ydoc.store, false),
36
+ idset.createDeleteSetFromStructStore(ydoc.store)
37
+ )
38
+
39
+ /**
40
+ * @param {import('./Doc.js').Doc} ydocPrev
41
+ * @param {import('./Doc.js').Doc} ydocNext
42
+ */
43
+ export const createContentIdsFromDocDiff = (ydocPrev, ydocNext) =>
44
+ excludeContentIds(createContentIdsFromDoc(ydocPrev), createContentIdsFromDoc(ydocNext))
45
+
46
+ /**
47
+ * @param {ContentIds} content
48
+ * @param {ContentIds} excludeContent
49
+ */
50
+ export const excludeContentIds = (content, excludeContent) =>
51
+ createContentIds(idset.diffIdSet(content.inserts, excludeContent.inserts), idset.diffIdSet(content.deletes, excludeContent.deletes))
52
+
53
+ /**
54
+ * @param {import('./IdMap.js').IdMap<any>} inserts
55
+ * @param {import('./IdMap.js').IdMap<any>} deletes
56
+ */
57
+ export const createContentMap = (inserts, deletes) => ({ inserts, deletes })
58
+
59
+ /**
60
+ * @param {ContentIds} contentIds
61
+ * @param {Array<idmap.ContentAttribute<any>>} insertAttrs
62
+ * @param {Array<idmap.ContentAttribute<any>>} [deleteAttrs]
63
+ */
64
+ export const createContentMapFromContentIds = (contentIds, insertAttrs, deleteAttrs = insertAttrs) => createContentMap(
65
+ idmap.createIdMapFromIdSet(contentIds.inserts, insertAttrs),
66
+ idmap.createIdMapFromIdSet(contentIds.deletes, deleteAttrs)
67
+ )
68
+
69
+ /**
70
+ * @param {import('./UpdateEncoder.js').IdSetEncoder} encoder
71
+ * @param {ContentIds} contentIds
72
+ */
73
+ export const writeContentIds = (encoder, contentIds) => {
74
+ idset.writeIdSet(encoder, contentIds.inserts)
75
+ idset.writeIdSet(encoder, contentIds.deletes)
76
+ }
77
+
78
+ /**
79
+ * @param {ContentIds} contentIds
80
+ */
81
+ export const encodeContentIds = contentIds => writeContentIds(new IdSetEncoderV2(), contentIds)
82
+
83
+ /**
84
+ * @todo this encoding needs to be heavily optimized for production
85
+ *
86
+ * @param {import('./UpdateEncoder.js').IdSetEncoder} encoder
87
+ * @param {ContentMap} contentMap
88
+ */
89
+ export const writeContentMap = (encoder, contentMap) => {
90
+ idmap.writeIdMap(encoder, contentMap.inserts)
91
+ idmap.writeIdMap(encoder, contentMap.deletes)
92
+ }
93
+
94
+ /**
95
+ * @param {ContentMap} contentMap
96
+ */
97
+ export const encodeContentMap = contentMap => writeContentMap(new IdSetEncoderV2(), contentMap)
@@ -0,0 +1,3 @@
1
+ /**
2
+ * @typedef {Object<string,any>|Array<any>|number|null|string|Uint8Array|BigInt|import('../ytype.js').YType} YValue
3
+ */