| 'use strict'; | ||
| var Skip = require('./Skip-vvIEGjAV.js'); | ||
| require('lib0/function'); | ||
| require('lib0/decoding'); | ||
| require('lib0/binary'); | ||
| require('lib0/map'); | ||
| /** eslint-env browser */ | ||
| const glo = /** @type {any} */ (typeof globalThis !== 'undefined' | ||
| ? globalThis | ||
| : typeof window !== 'undefined' | ||
| ? window | ||
| // @ts-ignore | ||
| : typeof global !== 'undefined' ? global : {}); | ||
| const importIdentifier = '__ $YJS$ __'; | ||
| if (glo[importIdentifier] === true) { | ||
| /** | ||
| * Dear reader of this message. Please take this seriously. | ||
| * | ||
| * If you see this message, make sure that you only import one version of Yjs. In many cases, | ||
| * your package manager installs two versions of Yjs that are used by different packages within your project. | ||
| * Another reason for this message is that some parts of your project use the commonjs version of Yjs | ||
| * and others use the EcmaScript version of Yjs. | ||
| * | ||
| * This often leads to issues that are hard to debug. We often need to perform constructor checks, | ||
| * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to | ||
| * do the constructor checks anymore - which might break the CRDT algorithm. | ||
| * | ||
| * https://github.com/yjs/yjs/issues/438 | ||
| */ | ||
| console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438'); | ||
| } | ||
| glo[importIdentifier] = true; | ||
| var Y = /*#__PURE__*/Object.freeze({ | ||
| __proto__: null, | ||
| AbsolutePosition: Skip.AbsolutePosition, | ||
| AbstractAttributionManager: Skip.AbstractAttributionManager, | ||
| AbstractConnector: Skip.AbstractConnector, | ||
| AbstractStruct: Skip.AbstractStruct, | ||
| AbstractType: Skip.AbstractType, | ||
| Array: Skip.YArray, | ||
| Attribution: Skip.AttributionItem, | ||
| ContentAny: Skip.ContentAny, | ||
| ContentBinary: Skip.ContentBinary, | ||
| ContentDeleted: Skip.ContentDeleted, | ||
| ContentDoc: Skip.ContentDoc, | ||
| ContentEmbed: Skip.ContentEmbed, | ||
| ContentFormat: Skip.ContentFormat, | ||
| ContentJSON: Skip.ContentJSON, | ||
| ContentString: Skip.ContentString, | ||
| ContentType: Skip.ContentType, | ||
| DiffAttributionManager: Skip.DiffAttributionManager, | ||
| Doc: Skip.Doc, | ||
| GC: Skip.GC, | ||
| ID: Skip.ID, | ||
| IdMap: Skip.IdMap, | ||
| IdSet: Skip.IdSet, | ||
| Item: Skip.Item, | ||
| Map: Skip.YMap, | ||
| RelativePosition: Skip.RelativePosition, | ||
| Skip: Skip.Skip, | ||
| Snapshot: Skip.Snapshot, | ||
| Text: Skip.YText, | ||
| Transaction: Skip.Transaction, | ||
| TwosetAttributionManager: Skip.TwosetAttributionManager, | ||
| UndoManager: Skip.UndoManager, | ||
| UpdateDecoderV1: Skip.UpdateDecoderV1, | ||
| UpdateDecoderV2: Skip.UpdateDecoderV2, | ||
| UpdateEncoderV1: Skip.UpdateEncoderV1, | ||
| UpdateEncoderV2: Skip.UpdateEncoderV2, | ||
| XmlElement: Skip.YXmlElement, | ||
| XmlFragment: Skip.YXmlFragment, | ||
| XmlHook: Skip.YXmlHook, | ||
| XmlText: Skip.YXmlText, | ||
| YEvent: Skip.YEvent, | ||
| applyUpdate: Skip.applyUpdate, | ||
| applyUpdateV2: Skip.applyUpdateV2, | ||
| cleanupYTextFormatting: Skip.cleanupYTextFormatting, | ||
| cloneDoc: Skip.cloneDoc, | ||
| compareIDs: Skip.compareIDs, | ||
| compareRelativePositions: Skip.compareRelativePositions, | ||
| convertUpdateFormatV1ToV2: Skip.convertUpdateFormatV1ToV2, | ||
| convertUpdateFormatV2ToV1: Skip.convertUpdateFormatV2ToV1, | ||
| createAbsolutePositionFromRelativePosition: Skip.createAbsolutePositionFromRelativePosition, | ||
| createAttributionItem: Skip.createAttributionItem, | ||
| createAttributionManagerFromDiff: Skip.createAttributionManagerFromDiff, | ||
| createDeleteSetFromStructStore: Skip.createDeleteSetFromStructStore, | ||
| createDocFromSnapshot: Skip.createDocFromSnapshot, | ||
| createID: Skip.createID, | ||
| createIdMap: Skip.createIdMap, | ||
| createIdMapFromIdSet: Skip.createIdMapFromIdSet, | ||
| createIdSet: Skip.createIdSet, | ||
| createInsertionSetFromStructStore: Skip.createInsertSetFromStructStore, | ||
| createRelativePositionFromJSON: Skip.createRelativePositionFromJSON, | ||
| createRelativePositionFromTypeIndex: Skip.createRelativePositionFromTypeIndex, | ||
| createSnapshot: Skip.createSnapshot, | ||
| decodeRelativePosition: Skip.decodeRelativePosition, | ||
| decodeSnapshot: Skip.decodeSnapshot, | ||
| decodeSnapshotV2: Skip.decodeSnapshotV2, | ||
| decodeStateVector: Skip.decodeStateVector, | ||
| decodeUpdate: Skip.decodeUpdate, | ||
| decodeUpdateV2: Skip.decodeUpdateV2, | ||
| diffIdMap: Skip.diffIdMap, | ||
| diffIdSet: Skip.diffIdSet, | ||
| diffUpdate: Skip.diffUpdate, | ||
| diffUpdateV2: Skip.diffUpdateV2, | ||
| emptySnapshot: Skip.emptySnapshot, | ||
| encodeIdMap: Skip.encodeIdMap, | ||
| encodeRelativePosition: Skip.encodeRelativePosition, | ||
| encodeSnapshot: Skip.encodeSnapshot, | ||
| encodeSnapshotV2: Skip.encodeSnapshotV2, | ||
| encodeStateAsUpdate: Skip.encodeStateAsUpdate, | ||
| encodeStateAsUpdateV2: Skip.encodeStateAsUpdateV2, | ||
| encodeStateVector: Skip.encodeStateVector, | ||
| encodeStateVectorFromUpdate: Skip.encodeStateVectorFromUpdate, | ||
| encodeStateVectorFromUpdateV2: Skip.encodeStateVectorFromUpdateV2, | ||
| equalIdSets: Skip.equalIdSets, | ||
| equalSnapshots: Skip.equalSnapshots, | ||
| findIndexSS: Skip.findIndexSS, | ||
| findRootTypeKey: Skip.findRootTypeKey, | ||
| getItem: Skip.getItem, | ||
| getItemCleanEnd: Skip.getItemCleanEnd, | ||
| getItemCleanStart: Skip.getItemCleanStart, | ||
| getState: Skip.getState, | ||
| getTypeChildren: Skip.getTypeChildren, | ||
| insertIntoIdMap: Skip.insertIntoIdMap, | ||
| insertIntoIdSet: Skip.insertIntoIdSet, | ||
| isParentOf: Skip.isParentOf, | ||
| iterateStructsByIdSet: Skip.iterateStructsByIdSet, | ||
| logType: Skip.logType, | ||
| logUpdate: Skip.logUpdate, | ||
| logUpdateV2: Skip.logUpdateV2, | ||
| mergeIdMaps: Skip.mergeIdMaps, | ||
| mergeIdSets: Skip.mergeIdSets, | ||
| mergeUpdates: Skip.mergeUpdates, | ||
| mergeUpdatesV2: Skip.mergeUpdatesV2, | ||
| noAttributionsManager: Skip.noAttributionsManager, | ||
| obfuscateUpdate: Skip.obfuscateUpdate, | ||
| obfuscateUpdateV2: Skip.obfuscateUpdateV2, | ||
| readIdMap: Skip.readIdMap, | ||
| readIdSet: Skip.readIdSet, | ||
| readUpdate: Skip.readUpdate, | ||
| readUpdateIdRanges: Skip.readUpdateIdRanges, | ||
| readUpdateIdRangesV2: Skip.readUpdateIdRangesV2, | ||
| readUpdateV2: Skip.readUpdateV2, | ||
| relativePositionToJSON: Skip.relativePositionToJSON, | ||
| snapshot: Skip.snapshot, | ||
| snapshotContainsUpdate: Skip.snapshotContainsUpdate, | ||
| transact: Skip.transact, | ||
| tryGc: Skip.tryGc, | ||
| typeListToArraySnapshot: Skip.typeListToArraySnapshot, | ||
| typeMapGetAllSnapshot: Skip.typeMapGetAllSnapshot, | ||
| typeMapGetSnapshot: Skip.typeMapGetSnapshot | ||
| }); | ||
| exports.Y = Y; | ||
| //# sourceMappingURL=index-DCSYR1ho.js.map |
| {"version":3,"file":"index-DCSYR1ho.js","sources":["../src/index.js"],"sourcesContent":["/** eslint-env browser */\n\nexport {\n Doc,\n Transaction,\n YArray as Array,\n YMap as Map,\n YText as Text,\n YXmlText as XmlText,\n YXmlHook as XmlHook,\n YXmlElement as XmlElement,\n YXmlFragment as XmlFragment,\n YEvent,\n Item,\n AbstractStruct,\n GC,\n Skip,\n ContentBinary,\n ContentDeleted,\n ContentDoc,\n ContentEmbed,\n ContentFormat,\n ContentJSON,\n ContentAny,\n ContentString,\n ContentType,\n AbstractType,\n getTypeChildren,\n createRelativePositionFromTypeIndex,\n createRelativePositionFromJSON,\n createAbsolutePositionFromRelativePosition,\n compareRelativePositions,\n AbsolutePosition,\n RelativePosition,\n ID,\n createID,\n compareIDs,\n getState,\n Snapshot,\n createSnapshot,\n cleanupYTextFormatting,\n snapshot,\n emptySnapshot,\n findRootTypeKey,\n findIndexSS,\n getItem,\n getItemCleanStart,\n getItemCleanEnd,\n typeListToArraySnapshot,\n typeMapGetSnapshot,\n typeMapGetAllSnapshot,\n createDocFromSnapshot,\n applyUpdate,\n applyUpdateV2,\n readUpdate,\n readUpdateV2,\n encodeStateAsUpdate,\n encodeStateAsUpdateV2,\n encodeStateVector,\n UndoManager,\n decodeSnapshot,\n encodeSnapshot,\n decodeSnapshotV2,\n encodeSnapshotV2,\n decodeStateVector,\n logUpdate,\n logUpdateV2,\n decodeUpdate,\n decodeUpdateV2,\n relativePositionToJSON,\n isParentOf,\n equalSnapshots,\n tryGc,\n transact,\n AbstractConnector,\n logType,\n mergeUpdates,\n mergeUpdatesV2,\n encodeStateVectorFromUpdate,\n encodeStateVectorFromUpdateV2,\n encodeRelativePosition,\n decodeRelativePosition,\n diffUpdate,\n diffUpdateV2,\n convertUpdateFormatV1ToV2,\n convertUpdateFormatV2ToV1,\n obfuscateUpdate,\n obfuscateUpdateV2,\n UpdateEncoderV1,\n UpdateEncoderV2,\n UpdateDecoderV1,\n UpdateDecoderV2,\n snapshotContainsUpdate,\n // idset\n IdSet,\n equalIdSets,\n createDeleteSetFromStructStore,\n IdMap,\n createIdMap,\n createAttributionItem,\n createInsertSetFromStructStore as createInsertionSetFromStructStore,\n diffIdMap,\n diffIdSet,\n AttributionItem as Attribution,\n encodeIdMap,\n createIdMapFromIdSet,\n TwosetAttributionManager,\n noAttributionsManager,\n AbstractAttributionManager,\n iterateStructsByIdSet,\n createAttributionManagerFromDiff,\n DiffAttributionManager,\n createIdSet,\n mergeIdSets,\n cloneDoc,\n readUpdateIdRanges,\n readUpdateIdRangesV2,\n insertIntoIdMap,\n insertIntoIdSet,\n mergeIdMaps,\n readIdMap,\n readIdSet\n} from './internals.js'\n\nconst glo = /** @type {any} */ (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined'\n ? window\n // @ts-ignore\n : typeof global !== 'undefined' ? global : {})\n\nconst importIdentifier = '__ $YJS$ __'\n\nif (glo[importIdentifier] === true) {\n /**\n * Dear reader of this message. Please take this seriously.\n *\n * If you see this message, make sure that you only import one version of Yjs. In many cases,\n * your package manager installs two versions of Yjs that are used by different packages within your project.\n * Another reason for this message is that some parts of your project use the commonjs version of Yjs\n * and others use the EcmaScript version of Yjs.\n *\n * This often leads to issues that are hard to debug. We often need to perform constructor checks,\n * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to\n * do the constructor checks anymore - which might break the CRDT algorithm.\n *\n * https://github.com/yjs/yjs/issues/438\n */\n console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438')\n}\nglo[importIdentifier] = true\n"],"names":[],"mappings":";;;;;;;;AAAA;;;AA4HA,MAAM,GAAG,uBAAuB,OAAO,UAAU,KAAK;AACtD,IAAI;AACJ,IAAI,OAAO,MAAM,KAAK;AACtB,MAAM;AACN;AACA,MAAM,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,EAAE;;AAEjD,MAAM,gBAAgB,GAAG;;AAEzB,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,KAAK,CAAC,2HAA2H;AAC3I;AACA,GAAG,CAAC,gBAAgB,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} |
| import { ah as AbsolutePosition, bF as AbstractAttributionManager, A as AbstractConnector, cx as AbstractStruct, bT as AbstractType, ce as YArray, bl as AttributionItem, cM as ContentAny, cA as ContentBinary, cC as ContentDeleted, cE as ContentDoc, cG as ContentEmbed, cI as ContentFormat, cK as ContentJSON, cO as ContentString, cY as ContentType, bJ as DiffAttributionManager, D as Doc, cz as GC, a6 as ID, bt as IdMap, b as IdSet, d3 as Item, cg as YMap, ae as RelativePosition, d8 as Skip, ar as Snapshot, cn as YText, aS as Transaction, bG as TwosetAttributionManager, aZ as UndoManager, U as UpdateDecoderV1, C as UpdateDecoderV2, F as UpdateEncoderV1, H as UpdateEncoderV2, cr as YXmlElement, cp as YXmlFragment, ct as YXmlHook, cv as YXmlText, bh as YEvent, Q as applyUpdate, P as applyUpdateV2, ck as cleanupYTextFormatting, y as cloneDoc, a7 as compareIDs, aq as compareRelativePositions, bf as convertUpdateFormatV1ToV2, bg as convertUpdateFormatV2ToV1, ap as createAbsolutePositionFromRelativePosition, bm as createAttributionItem, bK as createAttributionManagerFromDiff, q as createDeleteSetFromStructStore, aC as createDocFromSnapshot, a8 as createID, by as createIdMap, bs as createIdMapFromIdSet, p as createIdSet, s as createInsertSetFromStructStore, ag as createRelativePositionFromJSON, ak as createRelativePositionFromTypeIndex, ax as createSnapshot, ao as decodeRelativePosition, aw as decodeSnapshot, av as decodeSnapshotV2, W as decodeStateVector, b1 as decodeUpdate, b2 as decodeUpdateV2, bA as diffIdMap, j as diffIdSet, bb as diffUpdate, ba as diffUpdateV2, ay as emptySnapshot, bv as encodeIdMap, am as encodeRelativePosition, au as encodeSnapshot, at as encodeSnapshotV2, T as encodeStateAsUpdate, S as encodeStateAsUpdateV2, $ as encodeStateVector, b6 as encodeStateVectorFromUpdate, b5 as encodeStateVectorFromUpdateV2, v as equalIdSets, as as equalSnapshots, aK as findIndexSS, ab as findRootTypeKey, aM as getItem, aP as getItemCleanEnd, aO as getItemCleanStart, aH as getState, bR as getTypeChildren, bz as insertIntoIdMap, g as insertIntoIdSet, ac as isParentOf, i as iterateStructsByIdSet, ad as logType, a$ as logUpdate, b0 as logUpdateV2, br as mergeIdMaps, m as mergeIdSets, b4 as mergeUpdates, b9 as mergeUpdatesV2, bI as noAttributionsManager, bd as obfuscateUpdate, be as obfuscateUpdateV2, bw as readIdMap, t as readIdSet, O as readUpdate, b8 as readUpdateIdRanges, b7 as readUpdateIdRangesV2, N as readUpdateV2, af as relativePositionToJSON, az as snapshot, aE as snapshotContainsUpdate, aX as transact, aW as tryGc, bX as typeListToArraySnapshot, cc as typeMapGetAllSnapshot, cb as typeMapGetSnapshot } from './Skip-CPEp7KWv.js'; | ||
| import 'lib0/function'; | ||
| import 'lib0/decoding'; | ||
| import 'lib0/binary'; | ||
| import 'lib0/map'; | ||
| /** eslint-env browser */ | ||
| const glo = /** @type {any} */ (typeof globalThis !== 'undefined' | ||
| ? globalThis | ||
| : typeof window !== 'undefined' | ||
| ? window | ||
| // @ts-ignore | ||
| : typeof global !== 'undefined' ? global : {}); | ||
| const importIdentifier = '__ $YJS$ __'; | ||
| if (glo[importIdentifier] === true) { | ||
| /** | ||
| * Dear reader of this message. Please take this seriously. | ||
| * | ||
| * If you see this message, make sure that you only import one version of Yjs. In many cases, | ||
| * your package manager installs two versions of Yjs that are used by different packages within your project. | ||
| * Another reason for this message is that some parts of your project use the commonjs version of Yjs | ||
| * and others use the EcmaScript version of Yjs. | ||
| * | ||
| * This often leads to issues that are hard to debug. We often need to perform constructor checks, | ||
| * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to | ||
| * do the constructor checks anymore - which might break the CRDT algorithm. | ||
| * | ||
| * https://github.com/yjs/yjs/issues/438 | ||
| */ | ||
| console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438'); | ||
| } | ||
| glo[importIdentifier] = true; | ||
| var Y = /*#__PURE__*/Object.freeze({ | ||
| __proto__: null, | ||
| AbsolutePosition: AbsolutePosition, | ||
| AbstractAttributionManager: AbstractAttributionManager, | ||
| AbstractConnector: AbstractConnector, | ||
| AbstractStruct: AbstractStruct, | ||
| AbstractType: AbstractType, | ||
| Array: YArray, | ||
| Attribution: AttributionItem, | ||
| ContentAny: ContentAny, | ||
| ContentBinary: ContentBinary, | ||
| ContentDeleted: ContentDeleted, | ||
| ContentDoc: ContentDoc, | ||
| ContentEmbed: ContentEmbed, | ||
| ContentFormat: ContentFormat, | ||
| ContentJSON: ContentJSON, | ||
| ContentString: ContentString, | ||
| ContentType: ContentType, | ||
| DiffAttributionManager: DiffAttributionManager, | ||
| Doc: Doc, | ||
| GC: GC, | ||
| ID: ID, | ||
| IdMap: IdMap, | ||
| IdSet: IdSet, | ||
| Item: Item, | ||
| Map: YMap, | ||
| RelativePosition: RelativePosition, | ||
| Skip: Skip, | ||
| Snapshot: Snapshot, | ||
| Text: YText, | ||
| Transaction: Transaction, | ||
| TwosetAttributionManager: TwosetAttributionManager, | ||
| UndoManager: UndoManager, | ||
| UpdateDecoderV1: UpdateDecoderV1, | ||
| UpdateDecoderV2: UpdateDecoderV2, | ||
| UpdateEncoderV1: UpdateEncoderV1, | ||
| UpdateEncoderV2: UpdateEncoderV2, | ||
| XmlElement: YXmlElement, | ||
| XmlFragment: YXmlFragment, | ||
| XmlHook: YXmlHook, | ||
| XmlText: YXmlText, | ||
| YEvent: YEvent, | ||
| applyUpdate: applyUpdate, | ||
| applyUpdateV2: applyUpdateV2, | ||
| cleanupYTextFormatting: cleanupYTextFormatting, | ||
| cloneDoc: cloneDoc, | ||
| compareIDs: compareIDs, | ||
| compareRelativePositions: compareRelativePositions, | ||
| convertUpdateFormatV1ToV2: convertUpdateFormatV1ToV2, | ||
| convertUpdateFormatV2ToV1: convertUpdateFormatV2ToV1, | ||
| createAbsolutePositionFromRelativePosition: createAbsolutePositionFromRelativePosition, | ||
| createAttributionItem: createAttributionItem, | ||
| createAttributionManagerFromDiff: createAttributionManagerFromDiff, | ||
| createDeleteSetFromStructStore: createDeleteSetFromStructStore, | ||
| createDocFromSnapshot: createDocFromSnapshot, | ||
| createID: createID, | ||
| createIdMap: createIdMap, | ||
| createIdMapFromIdSet: createIdMapFromIdSet, | ||
| createIdSet: createIdSet, | ||
| createInsertionSetFromStructStore: createInsertSetFromStructStore, | ||
| createRelativePositionFromJSON: createRelativePositionFromJSON, | ||
| createRelativePositionFromTypeIndex: createRelativePositionFromTypeIndex, | ||
| createSnapshot: createSnapshot, | ||
| decodeRelativePosition: decodeRelativePosition, | ||
| decodeSnapshot: decodeSnapshot, | ||
| decodeSnapshotV2: decodeSnapshotV2, | ||
| decodeStateVector: decodeStateVector, | ||
| decodeUpdate: decodeUpdate, | ||
| decodeUpdateV2: decodeUpdateV2, | ||
| diffIdMap: diffIdMap, | ||
| diffIdSet: diffIdSet, | ||
| diffUpdate: diffUpdate, | ||
| diffUpdateV2: diffUpdateV2, | ||
| emptySnapshot: emptySnapshot, | ||
| encodeIdMap: encodeIdMap, | ||
| encodeRelativePosition: encodeRelativePosition, | ||
| encodeSnapshot: encodeSnapshot, | ||
| encodeSnapshotV2: encodeSnapshotV2, | ||
| encodeStateAsUpdate: encodeStateAsUpdate, | ||
| encodeStateAsUpdateV2: encodeStateAsUpdateV2, | ||
| encodeStateVector: encodeStateVector, | ||
| encodeStateVectorFromUpdate: encodeStateVectorFromUpdate, | ||
| encodeStateVectorFromUpdateV2: encodeStateVectorFromUpdateV2, | ||
| equalIdSets: equalIdSets, | ||
| equalSnapshots: equalSnapshots, | ||
| findIndexSS: findIndexSS, | ||
| findRootTypeKey: findRootTypeKey, | ||
| getItem: getItem, | ||
| getItemCleanEnd: getItemCleanEnd, | ||
| getItemCleanStart: getItemCleanStart, | ||
| getState: getState, | ||
| getTypeChildren: getTypeChildren, | ||
| insertIntoIdMap: insertIntoIdMap, | ||
| insertIntoIdSet: insertIntoIdSet, | ||
| isParentOf: isParentOf, | ||
| iterateStructsByIdSet: iterateStructsByIdSet, | ||
| logType: logType, | ||
| logUpdate: logUpdate, | ||
| logUpdateV2: logUpdateV2, | ||
| mergeIdMaps: mergeIdMaps, | ||
| mergeIdSets: mergeIdSets, | ||
| mergeUpdates: mergeUpdates, | ||
| mergeUpdatesV2: mergeUpdatesV2, | ||
| noAttributionsManager: noAttributionsManager, | ||
| obfuscateUpdate: obfuscateUpdate, | ||
| obfuscateUpdateV2: obfuscateUpdateV2, | ||
| readIdMap: readIdMap, | ||
| readIdSet: readIdSet, | ||
| readUpdate: readUpdate, | ||
| readUpdateIdRanges: readUpdateIdRanges, | ||
| readUpdateIdRangesV2: readUpdateIdRangesV2, | ||
| readUpdateV2: readUpdateV2, | ||
| relativePositionToJSON: relativePositionToJSON, | ||
| snapshot: snapshot, | ||
| snapshotContainsUpdate: snapshotContainsUpdate, | ||
| transact: transact, | ||
| tryGc: tryGc, | ||
| typeListToArraySnapshot: typeListToArraySnapshot, | ||
| typeMapGetAllSnapshot: typeMapGetAllSnapshot, | ||
| typeMapGetSnapshot: typeMapGetSnapshot | ||
| }); | ||
| export { Y }; | ||
| //# sourceMappingURL=index-RXUm_nlS.js.map |
| {"version":3,"file":"index-RXUm_nlS.js","sources":["../src/index.js"],"sourcesContent":["/** eslint-env browser */\n\nexport {\n Doc,\n Transaction,\n YArray as Array,\n YMap as Map,\n YText as Text,\n YXmlText as XmlText,\n YXmlHook as XmlHook,\n YXmlElement as XmlElement,\n YXmlFragment as XmlFragment,\n YEvent,\n Item,\n AbstractStruct,\n GC,\n Skip,\n ContentBinary,\n ContentDeleted,\n ContentDoc,\n ContentEmbed,\n ContentFormat,\n ContentJSON,\n ContentAny,\n ContentString,\n ContentType,\n AbstractType,\n getTypeChildren,\n createRelativePositionFromTypeIndex,\n createRelativePositionFromJSON,\n createAbsolutePositionFromRelativePosition,\n compareRelativePositions,\n AbsolutePosition,\n RelativePosition,\n ID,\n createID,\n compareIDs,\n getState,\n Snapshot,\n createSnapshot,\n cleanupYTextFormatting,\n snapshot,\n emptySnapshot,\n findRootTypeKey,\n findIndexSS,\n getItem,\n getItemCleanStart,\n getItemCleanEnd,\n typeListToArraySnapshot,\n typeMapGetSnapshot,\n typeMapGetAllSnapshot,\n createDocFromSnapshot,\n applyUpdate,\n applyUpdateV2,\n readUpdate,\n readUpdateV2,\n encodeStateAsUpdate,\n encodeStateAsUpdateV2,\n encodeStateVector,\n UndoManager,\n decodeSnapshot,\n encodeSnapshot,\n decodeSnapshotV2,\n encodeSnapshotV2,\n decodeStateVector,\n logUpdate,\n logUpdateV2,\n decodeUpdate,\n decodeUpdateV2,\n relativePositionToJSON,\n isParentOf,\n equalSnapshots,\n tryGc,\n transact,\n AbstractConnector,\n logType,\n mergeUpdates,\n mergeUpdatesV2,\n encodeStateVectorFromUpdate,\n encodeStateVectorFromUpdateV2,\n encodeRelativePosition,\n decodeRelativePosition,\n diffUpdate,\n diffUpdateV2,\n convertUpdateFormatV1ToV2,\n convertUpdateFormatV2ToV1,\n obfuscateUpdate,\n obfuscateUpdateV2,\n UpdateEncoderV1,\n UpdateEncoderV2,\n UpdateDecoderV1,\n UpdateDecoderV2,\n snapshotContainsUpdate,\n // idset\n IdSet,\n equalIdSets,\n createDeleteSetFromStructStore,\n IdMap,\n createIdMap,\n createAttributionItem,\n createInsertSetFromStructStore as createInsertionSetFromStructStore,\n diffIdMap,\n diffIdSet,\n AttributionItem as Attribution,\n encodeIdMap,\n createIdMapFromIdSet,\n TwosetAttributionManager,\n noAttributionsManager,\n AbstractAttributionManager,\n iterateStructsByIdSet,\n createAttributionManagerFromDiff,\n DiffAttributionManager,\n createIdSet,\n mergeIdSets,\n cloneDoc,\n readUpdateIdRanges,\n readUpdateIdRangesV2,\n insertIntoIdMap,\n insertIntoIdSet,\n mergeIdMaps,\n readIdMap,\n readIdSet\n} from './internals.js'\n\nconst glo = /** @type {any} */ (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined'\n ? window\n // @ts-ignore\n : typeof global !== 'undefined' ? global : {})\n\nconst importIdentifier = '__ $YJS$ __'\n\nif (glo[importIdentifier] === true) {\n /**\n * Dear reader of this message. Please take this seriously.\n *\n * If you see this message, make sure that you only import one version of Yjs. In many cases,\n * your package manager installs two versions of Yjs that are used by different packages within your project.\n * Another reason for this message is that some parts of your project use the commonjs version of Yjs\n * and others use the EcmaScript version of Yjs.\n *\n * This often leads to issues that are hard to debug. We often need to perform constructor checks,\n * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to\n * do the constructor checks anymore - which might break the CRDT algorithm.\n *\n * https://github.com/yjs/yjs/issues/438\n */\n console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438')\n}\nglo[importIdentifier] = true\n"],"names":[],"mappings":";;;;;;AAAA;;;AA4HA,MAAM,GAAG,uBAAuB,OAAO,UAAU,KAAK;AACtD,IAAI;AACJ,IAAI,OAAO,MAAM,KAAK;AACtB,MAAM;AACN;AACA,MAAM,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,EAAE;;AAEjD,MAAM,gBAAgB,GAAG;;AAEzB,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,KAAK,CAAC,2HAA2H;AAC3I;AACA,GAAG,CAAC,gBAAgB,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| 'use strict'; | ||
| var Skip = require('./Skip-C-88Cnkq.js'); | ||
| var Skip = require('./Skip-vvIEGjAV.js'); | ||
| require('lib0/observable'); | ||
@@ -5,0 +5,0 @@ require('lib0/array'); |
@@ -1,2 +0,2 @@ | ||
| export { ah as AbsolutePosition, bF as AbstractAttributionManager, A as AbstractConnector, d6 as AbstractContent, cx as AbstractStruct, bT as AbstractType, bO as ArraySearchMarker, bo as AttrRange, bq as AttrRanges, bE as AttributedContent, bl as AttributionItem, cM as ContentAny, cA as ContentBinary, cC as ContentDeleted, cE as ContentDoc, cG as ContentEmbed, cI as ContentFormat, cK as ContentJSON, cO as ContentString, cY as ContentType, z as DSDecoderV1, B as DSDecoderV2, bJ as DiffAttributionManager, D as Doc, a0 as EventHandler, cz as GC, a6 as ID, bt as IdMap, I as IdRange, a as IdRanges, b as IdSet, E as IdSetEncoderV1, G as IdSetEncoderV2, d3 as Item, ci as ItemTextListPosition, a_ as LazyStructReader, b3 as LazyStructWriter, M as MaybeIdRange, bH as NoAttributionsManager, ae as RelativePosition, d8 as Skip, ar as Snapshot, bL as SnapshotAttributionManager, aY as StackItem, bk as StructSet, aF as StructStore, aS as Transaction, bG as TwosetAttributionManager, aZ as UndoManager, U as UpdateDecoderV1, C as UpdateDecoderV2, F as UpdateEncoderV1, H as UpdateEncoderV2, ce as YArray, cR as YArrayRefID, bh as YEvent, cg as YMap, cS as YMapRefID, cn as YText, cT as YTextRefID, cr as YXmlElement, cU as YXmlElementRefID, cp as YXmlFragment, cV as YXmlFragmentRefID, ct as YXmlHook, cW as YXmlHookRefID, cv as YXmlText, cX as YXmlTextRefID, r as _createInsertSliceFromStructs, _ as _deleteRangeFromIdSet, h as _diffSet, e as _insertIntoIdSet, k as _intersectSets, aV as addChangedTypeToTransaction, a2 as addEventHandlerListener, aJ as addStruct, o as addStructToIdSet, n as addToIdSet, Q as applyUpdate, P as applyUpdateV2, bC as attributionJsonSchema, a5 as callEventHandlerListeners, bS as callTypeObservers, cl as cleanupYTextAfterTransaction, ck as cleanupYTextFormatting, y as cloneDoc, a7 as compareIDs, aq as compareRelativePositions, d5 as contentRefs, bc as convertUpdateFormat, bf as convertUpdateFormatV1ToV2, bg as convertUpdateFormatV2ToV1, ai as createAbsolutePosition, ap as createAbsolutePositionFromRelativePosition, bD as createAttributionFromAttributionItems, bm as createAttributionItem, bK as createAttributionManagerFromDiff, bM as createAttributionManagerFromSnapshots, q as createDeleteSetFromStructStore, aC as createDocFromSnapshot, a1 as createEventHandler, a8 as createID, by as createIdMap, bs as createIdMapFromIdSet, p as createIdSet, s as createInsertSetFromStructStore, cd as createMapIterator, bp as createMaybeAttrRange, c as createMaybeIdRange, aj as createRelativePosition, ag as createRelativePositionFromJSON, ak as createRelativePositionFromTypeIndex, ax as createSnapshot, bx as decodeIdMap, ao as decodeRelativePosition, aw as decodeSnapshot, av as decodeSnapshotV2, W as decodeStateVector, b1 as decodeUpdate, b2 as decodeUpdateV2, cm as deleteText, bA as diffIdMap, j as diffIdSet, bb as diffUpdate, ba as diffUpdateV2, ay as emptySnapshot, bv as encodeIdMap, am as encodeRelativePosition, au as encodeSnapshot, at as encodeSnapshotV2, T as encodeStateAsUpdate, S as encodeStateAsUpdateV2, $ as encodeStateVector, b6 as encodeStateVectorFromUpdate, b5 as encodeStateVectorFromUpdateV2, Z as encodeStateVectorV2, bU as equalAttrs, v as equalIdSets, as as equalSnapshots, aL as find, aN as findIndexCleanStart, f as findIndexInIdRanges, aK as findIndexSS, bP as findMarker, d as findRangeStartInIdRanges, ab as findRootTypeKey, c_ as followRedone, x as generateNewClientId, aM as getItem, aP as getItemCleanEnd, aO as getItemCleanStart, aH as getState, aG as getStateVector, bR as getTypeChildren, bn as idmapAttrsEqual, bz as insertIntoIdMap, g as insertIntoIdSet, cj as insertText, aI as integrityCheck, bB as intersectMaps, l as intersectSets, ac as isParentOf, aA as isVisible, aR as iterateStructs, i as iterateStructsByIdSet, c$ as keepItem, ad as logType, a$ as logUpdate, b0 as logUpdateV2, br as mergeIdMaps, m as mergeIdSets, b4 as mergeUpdates, b9 as mergeUpdatesV2, aU as nextID, bI as noAttributionsManager, bd as obfuscateUpdate, be as obfuscateUpdateV2, u as readAndApplyDeleteSet, cN as readContentAny, cB as readContentBinary, cD as readContentDeleted, cF as readContentDoc, cH as readContentEmbed, cJ as readContentFormat, cL as readContentJSON, cP as readContentString, cZ as readContentType, aa as readID, bw as readIdMap, t as readIdSet, d4 as readItemContent, an as readRelativePosition, V as readStateVector, bi as readStructSet, O as readUpdate, b8 as readUpdateIdRanges, b7 as readUpdateIdRangesV2, N as readUpdateV2, cf as readYArray, ch as readYMap, co as readYText, cs as readYXmlElement, cq as readYXmlFragment, cu as readYXmlHook, cw as readYXmlText, d2 as redoItem, af as relativePositionToJSON, a4 as removeAllEventHandlerListeners, a3 as removeEventHandlerListener, bj as removeRangesFromStructSet, aQ as replaceStruct, az as snapshot, aE as snapshotContainsUpdate, aD as snapshotContainsUpdateV2, d0 as splitItem, aB as splitSnapshotAffectedStructs, d1 as splitStruct, cy as structGCRefNumber, d7 as structSkipRefNumber, aX as transact, aW as tryGc, b_ as typeListCreateIterator, c4 as typeListDelete, bY as typeListForEach, b$ as typeListForEachSnapshot, c0 as typeListGet, c2 as typeListInsertGenerics, c1 as typeListInsertGenericsAfter, bZ as typeListMap, c3 as typeListPushGenerics, bV as typeListSlice, bW as typeListToArray, bX as typeListToArraySnapshot, c5 as typeMapDelete, c7 as typeMapGet, c8 as typeMapGetAll, cc as typeMapGetAllSnapshot, c9 as typeMapGetDelta, cb as typeMapGetSnapshot, ca as typeMapHas, c6 as typeMapSet, cQ as typeRefs, bQ as updateMarkerChanges, bN as warnPrematureAccess, J as writeClientsStructs, Y as writeDocumentStateVector, a9 as writeID, bu as writeIdMap, w as writeIdSet, al as writeRelativePosition, R as writeStateAsUpdate, X as writeStateVector, K as writeStructsFromIdSet, L as writeStructsFromTransaction, aT as writeUpdateMessageFromTransaction } from './Skip-B3PEROiW.js'; | ||
| export { ah as AbsolutePosition, bF as AbstractAttributionManager, A as AbstractConnector, d6 as AbstractContent, cx as AbstractStruct, bT as AbstractType, bO as ArraySearchMarker, bo as AttrRange, bq as AttrRanges, bE as AttributedContent, bl as AttributionItem, cM as ContentAny, cA as ContentBinary, cC as ContentDeleted, cE as ContentDoc, cG as ContentEmbed, cI as ContentFormat, cK as ContentJSON, cO as ContentString, cY as ContentType, z as DSDecoderV1, B as DSDecoderV2, bJ as DiffAttributionManager, D as Doc, a0 as EventHandler, cz as GC, a6 as ID, bt as IdMap, I as IdRange, a as IdRanges, b as IdSet, E as IdSetEncoderV1, G as IdSetEncoderV2, d3 as Item, ci as ItemTextListPosition, a_ as LazyStructReader, b3 as LazyStructWriter, M as MaybeIdRange, bH as NoAttributionsManager, ae as RelativePosition, d8 as Skip, ar as Snapshot, bL as SnapshotAttributionManager, aY as StackItem, bk as StructSet, aF as StructStore, aS as Transaction, bG as TwosetAttributionManager, aZ as UndoManager, U as UpdateDecoderV1, C as UpdateDecoderV2, F as UpdateEncoderV1, H as UpdateEncoderV2, ce as YArray, cR as YArrayRefID, bh as YEvent, cg as YMap, cS as YMapRefID, cn as YText, cT as YTextRefID, cr as YXmlElement, cU as YXmlElementRefID, cp as YXmlFragment, cV as YXmlFragmentRefID, ct as YXmlHook, cW as YXmlHookRefID, cv as YXmlText, cX as YXmlTextRefID, r as _createInsertSliceFromStructs, _ as _deleteRangeFromIdSet, h as _diffSet, e as _insertIntoIdSet, k as _intersectSets, aV as addChangedTypeToTransaction, a2 as addEventHandlerListener, aJ as addStruct, o as addStructToIdSet, n as addToIdSet, Q as applyUpdate, P as applyUpdateV2, bC as attributionJsonSchema, a5 as callEventHandlerListeners, bS as callTypeObservers, cl as cleanupYTextAfterTransaction, ck as cleanupYTextFormatting, y as cloneDoc, a7 as compareIDs, aq as compareRelativePositions, d5 as contentRefs, bc as convertUpdateFormat, bf as convertUpdateFormatV1ToV2, bg as convertUpdateFormatV2ToV1, ai as createAbsolutePosition, ap as createAbsolutePositionFromRelativePosition, bD as createAttributionFromAttributionItems, bm as createAttributionItem, bK as createAttributionManagerFromDiff, bM as createAttributionManagerFromSnapshots, q as createDeleteSetFromStructStore, aC as createDocFromSnapshot, a1 as createEventHandler, a8 as createID, by as createIdMap, bs as createIdMapFromIdSet, p as createIdSet, s as createInsertSetFromStructStore, cd as createMapIterator, bp as createMaybeAttrRange, c as createMaybeIdRange, aj as createRelativePosition, ag as createRelativePositionFromJSON, ak as createRelativePositionFromTypeIndex, ax as createSnapshot, bx as decodeIdMap, ao as decodeRelativePosition, aw as decodeSnapshot, av as decodeSnapshotV2, W as decodeStateVector, b1 as decodeUpdate, b2 as decodeUpdateV2, cm as deleteText, bA as diffIdMap, j as diffIdSet, bb as diffUpdate, ba as diffUpdateV2, ay as emptySnapshot, bv as encodeIdMap, am as encodeRelativePosition, au as encodeSnapshot, at as encodeSnapshotV2, T as encodeStateAsUpdate, S as encodeStateAsUpdateV2, $ as encodeStateVector, b6 as encodeStateVectorFromUpdate, b5 as encodeStateVectorFromUpdateV2, Z as encodeStateVectorV2, bU as equalAttrs, v as equalIdSets, as as equalSnapshots, aL as find, aN as findIndexCleanStart, f as findIndexInIdRanges, aK as findIndexSS, bP as findMarker, d as findRangeStartInIdRanges, ab as findRootTypeKey, c_ as followRedone, x as generateNewClientId, aM as getItem, aP as getItemCleanEnd, aO as getItemCleanStart, aH as getState, aG as getStateVector, bR as getTypeChildren, bn as idmapAttrsEqual, bz as insertIntoIdMap, g as insertIntoIdSet, cj as insertText, aI as integrityCheck, bB as intersectMaps, l as intersectSets, ac as isParentOf, aA as isVisible, aR as iterateStructs, i as iterateStructsByIdSet, c$ as keepItem, ad as logType, a$ as logUpdate, b0 as logUpdateV2, br as mergeIdMaps, m as mergeIdSets, b4 as mergeUpdates, b9 as mergeUpdatesV2, aU as nextID, bI as noAttributionsManager, bd as obfuscateUpdate, be as obfuscateUpdateV2, u as readAndApplyDeleteSet, cN as readContentAny, cB as readContentBinary, cD as readContentDeleted, cF as readContentDoc, cH as readContentEmbed, cJ as readContentFormat, cL as readContentJSON, cP as readContentString, cZ as readContentType, aa as readID, bw as readIdMap, t as readIdSet, d4 as readItemContent, an as readRelativePosition, V as readStateVector, bi as readStructSet, O as readUpdate, b8 as readUpdateIdRanges, b7 as readUpdateIdRangesV2, N as readUpdateV2, cf as readYArray, ch as readYMap, co as readYText, cs as readYXmlElement, cq as readYXmlFragment, cu as readYXmlHook, cw as readYXmlText, d2 as redoItem, af as relativePositionToJSON, a4 as removeAllEventHandlerListeners, a3 as removeEventHandlerListener, bj as removeRangesFromStructSet, aQ as replaceStruct, az as snapshot, aE as snapshotContainsUpdate, aD as snapshotContainsUpdateV2, d0 as splitItem, aB as splitSnapshotAffectedStructs, d1 as splitStruct, cy as structGCRefNumber, d7 as structSkipRefNumber, aX as transact, aW as tryGc, b_ as typeListCreateIterator, c4 as typeListDelete, bY as typeListForEach, b$ as typeListForEachSnapshot, c0 as typeListGet, c2 as typeListInsertGenerics, c1 as typeListInsertGenericsAfter, bZ as typeListMap, c3 as typeListPushGenerics, bV as typeListSlice, bW as typeListToArray, bX as typeListToArraySnapshot, c5 as typeMapDelete, c7 as typeMapGet, c8 as typeMapGetAll, cc as typeMapGetAllSnapshot, c9 as typeMapGetDelta, cb as typeMapGetSnapshot, ca as typeMapHas, c6 as typeMapSet, cQ as typeRefs, bQ as updateMarkerChanges, bN as warnPrematureAccess, J as writeClientsStructs, Y as writeDocumentStateVector, a9 as writeID, bu as writeIdMap, w as writeIdSet, al as writeRelativePosition, R as writeStateAsUpdate, X as writeStateVector, K as writeStructsFromIdSet, L as writeStructsFromTransaction, aT as writeUpdateMessageFromTransaction } from './Skip-CPEp7KWv.js'; | ||
| import 'lib0/observable'; | ||
@@ -3,0 +3,0 @@ import 'lib0/array'; |
@@ -1,2 +0,2 @@ | ||
| export { Doc, Transaction, YArray as Array, YMap as Map, YText as Text, YXmlText as XmlText, YXmlHook as XmlHook, YXmlElement as XmlElement, YXmlFragment as XmlFragment, YEvent, Item, AbstractStruct, GC, Skip, ContentBinary, ContentDeleted, ContentDoc, ContentEmbed, ContentFormat, ContentJSON, ContentAny, ContentString, ContentType, AbstractType, getTypeChildren, createRelativePositionFromTypeIndex, createRelativePositionFromJSON, createAbsolutePositionFromRelativePosition, compareRelativePositions, AbsolutePosition, RelativePosition, ID, createID, compareIDs, getState, Snapshot, createSnapshot, cleanupYTextFormatting, snapshot, emptySnapshot, findRootTypeKey, findIndexSS, getItem, getItemCleanStart, getItemCleanEnd, typeListToArraySnapshot, typeMapGetSnapshot, typeMapGetAllSnapshot, createDocFromSnapshot, applyUpdate, applyUpdateV2, readUpdate, readUpdateV2, encodeStateAsUpdate, encodeStateAsUpdateV2, encodeStateVector, UndoManager, decodeSnapshot, encodeSnapshot, decodeSnapshotV2, encodeSnapshotV2, decodeStateVector, logUpdate, logUpdateV2, decodeUpdate, decodeUpdateV2, relativePositionToJSON, isParentOf, equalSnapshots, tryGc, transact, AbstractConnector, logType, mergeUpdates, mergeUpdatesV2, encodeStateVectorFromUpdate, encodeStateVectorFromUpdateV2, encodeRelativePosition, decodeRelativePosition, diffUpdate, diffUpdateV2, convertUpdateFormatV1ToV2, convertUpdateFormatV2ToV1, obfuscateUpdate, obfuscateUpdateV2, UpdateEncoderV1, UpdateEncoderV2, UpdateDecoderV1, UpdateDecoderV2, snapshotContainsUpdate, IdSet, equalIdSets, createDeleteSetFromStructStore, IdMap, createIdMap, createAttributionItem, createInsertSetFromStructStore as createInsertionSetFromStructStore, diffIdMap, diffIdSet, AttributionItem as Attribution, encodeIdMap, createIdMapFromIdSet, TwosetAttributionManager, noAttributionsManager, AbstractAttributionManager, iterateStructsByIdSet, createAttributionManagerFromDiff, DiffAttributionManager, createIdSet, mergeIdSets, cloneDoc, readUpdateIdRanges, readUpdateIdRangesV2 } from "./internals.js"; | ||
| export { Doc, Transaction, YArray as Array, YMap as Map, YText as Text, YXmlText as XmlText, YXmlHook as XmlHook, YXmlElement as XmlElement, YXmlFragment as XmlFragment, YEvent, Item, AbstractStruct, GC, Skip, ContentBinary, ContentDeleted, ContentDoc, ContentEmbed, ContentFormat, ContentJSON, ContentAny, ContentString, ContentType, AbstractType, getTypeChildren, createRelativePositionFromTypeIndex, createRelativePositionFromJSON, createAbsolutePositionFromRelativePosition, compareRelativePositions, AbsolutePosition, RelativePosition, ID, createID, compareIDs, getState, Snapshot, createSnapshot, cleanupYTextFormatting, snapshot, emptySnapshot, findRootTypeKey, findIndexSS, getItem, getItemCleanStart, getItemCleanEnd, typeListToArraySnapshot, typeMapGetSnapshot, typeMapGetAllSnapshot, createDocFromSnapshot, applyUpdate, applyUpdateV2, readUpdate, readUpdateV2, encodeStateAsUpdate, encodeStateAsUpdateV2, encodeStateVector, UndoManager, decodeSnapshot, encodeSnapshot, decodeSnapshotV2, encodeSnapshotV2, decodeStateVector, logUpdate, logUpdateV2, decodeUpdate, decodeUpdateV2, relativePositionToJSON, isParentOf, equalSnapshots, tryGc, transact, AbstractConnector, logType, mergeUpdates, mergeUpdatesV2, encodeStateVectorFromUpdate, encodeStateVectorFromUpdateV2, encodeRelativePosition, decodeRelativePosition, diffUpdate, diffUpdateV2, convertUpdateFormatV1ToV2, convertUpdateFormatV2ToV1, obfuscateUpdate, obfuscateUpdateV2, UpdateEncoderV1, UpdateEncoderV2, UpdateDecoderV1, UpdateDecoderV2, snapshotContainsUpdate, IdSet, equalIdSets, createDeleteSetFromStructStore, IdMap, createIdMap, createAttributionItem, createInsertSetFromStructStore as createInsertionSetFromStructStore, diffIdMap, diffIdSet, AttributionItem as Attribution, encodeIdMap, createIdMapFromIdSet, TwosetAttributionManager, noAttributionsManager, AbstractAttributionManager, iterateStructsByIdSet, createAttributionManagerFromDiff, DiffAttributionManager, createIdSet, mergeIdSets, cloneDoc, readUpdateIdRanges, readUpdateIdRangesV2, insertIntoIdMap, insertIntoIdSet, mergeIdMaps, readIdMap, readIdSet } from "./internals.js"; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -74,2 +74,15 @@ /** | ||
| /** | ||
| * Render the difference to another ydoc (which can be empty) and highlight the differences with | ||
| * attributions. | ||
| * | ||
| * Note that deleted content that was not deleted in prevYdoc is rendered as an insertion with the | ||
| * attribution `{ isDeleted: true, .. }`. | ||
| * | ||
| * @param {AbstractAttributionManager} am | ||
| * @return {delta.ArrayDelta<import('./AbstractType.js').TypeToDelta<T>>} The Delta representation of this type. | ||
| * | ||
| * @public | ||
| */ | ||
| public getContentDeep(am?: AbstractAttributionManager): delta.ArrayDelta<import("./AbstractType.js").TypeToDelta<T>>; | ||
| /** | ||
| * Returns a portion of this YArray into a JavaScript Array selected | ||
@@ -113,4 +126,5 @@ * from start to end (end not included). | ||
| import { AbstractType } from '../internals.js'; | ||
| import { AbstractAttributionManager } from '../internals.js'; | ||
| import { UpdateDecoderV1 } from '../internals.js'; | ||
| import { UpdateDecoderV2 } from '../internals.js'; | ||
| //# sourceMappingURL=YArray.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"YArray.d.ts","sourceRoot":"","sources":["../../../src/types/YArray.js"],"names":[],"mappings":"AAwBA;;;;;GAKG;AAGH,oBANkD,CAAC,SAAtC,OAAQ,mBAAmB,EAAE,MAAO,kEAEjC,QAAQ,CAAC,CAAC;IAkBxB;;;;;OAKG;IACH,wBAJa,OAAQ,mBAAmB,EAAE,MAAO,SACtC,KAAK,CAAC,GAAC,CAAC,GACP,MAAM,CAAC,GAAC,CAAC,CASpB;IA1BD,cAWC;IATC;;;OAGG;IACH,uBAAwB;IAyD1B,qBAGC;IAED;;;;;;;;;;;;;;;OAeG;IACH,cAHW,MAAM,WACN,KAAK,CAAC,CAAC,CAAC,QAUlB;IAED;;;;;;OAMG;IACH,cAJW,KAAK,CAAC,CAAC,CAAC,QAYlB;IAED;;;;OAIG;IACH,iBAFW,KAAK,CAAC,CAAC,CAAC,QAIlB;IAED;;;;;OAKG;IACH,cAHW,MAAM,WACN,MAAM,QAUhB;IAED;;;;;OAKG;IACH,WAHW,MAAM,GACL,CAAC,CAIZ;IAED;;;;OAIG;IACH,WAFY,KAAK,CAAC,CAAC,CAAC,CAInB;IAkBD;;;;;;;OAOG;IACH,cAJW,MAAM,QACN,MAAM,GACL,KAAK,CAAC,CAAC,CAAC,CAInB;IAED;;;;OAIG;IACH,UAFY,KAAK,CAAC,GAAG,CAAC,CAIrB;IAED;;;;;;;;OAQG;IACH,IALa,CAAC,KACH,CAAS,IAAC,EAAD,CAAC,EAAC,IAAM,EAAN,MAAM,EAAC,IAAS,EAAT,MAAM,CAAC,CAAC,CAAC,KAAE,CAAC,GAC7B,KAAK,CAAC,CAAC,CAAC,CAKnB;IAED;;;;OAIG;IACH,WAFW,CAAS,IAAC,EAAD,CAAC,EAAC,IAAM,EAAN,MAAM,EAAC,IAAS,EAAT,MAAM,CAAC,CAAC,CAAC,KAAE,IAAI,QAI3C;IAED;;OAEG;IACH,qBAFY,gBAAgB,CAAC,CAAC,CAAC,CAI9B;CAQF;AASM,qCANI,eAAe,GAAG,eAAe,GAChC,OAAO,mBAAmB,EAAE,KAAK,CAKK;uBAvP3B,YAAY;6BAF5B,iBAAiB;gCAAjB,iBAAiB;gCAAjB,iBAAiB"} | ||
| {"version":3,"file":"YArray.d.ts","sourceRoot":"","sources":["../../../src/types/YArray.js"],"names":[],"mappings":"AAwBA;;;;;GAKG;AAGH,oBANkD,CAAC,SAAtC,OAAQ,mBAAmB,EAAE,MAAO,kEAEjC,QAAQ,CAAC,CAAC;IAkBxB;;;;;OAKG;IACH,wBAJa,OAAQ,mBAAmB,EAAE,MAAO,SACtC,KAAK,CAAC,GAAC,CAAC,GACP,MAAM,CAAC,GAAC,CAAC,CASpB;IA1BD,cAWC;IATC;;;OAGG;IACH,uBAAwB;IAyD1B,qBAGC;IAED;;;;;;;;;;;;;;;OAeG;IACH,cAHW,MAAM,WACN,KAAK,CAAC,CAAC,CAAC,QAUlB;IAED;;;;;;OAMG;IACH,cAJW,KAAK,CAAC,CAAC,CAAC,QAYlB;IAED;;;;OAIG;IACH,iBAFW,KAAK,CAAC,CAAC,CAAC,QAIlB;IAED;;;;;OAKG;IACH,cAHW,MAAM,WACN,MAAM,QAUhB;IAED;;;;;OAKG;IACH,WAHW,MAAM,GACL,CAAC,CAIZ;IAED;;;;OAIG;IACH,WAFY,KAAK,CAAC,CAAC,CAAC,CAInB;IAED;;;;;;;;;;;OAWG;IACH,2BALW,0BAA0B,GACzB,KAAK,CAAC,UAAU,CAAC,OAAO,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAMvE;IAED;;;;;;;OAOG;IACH,cAJW,MAAM,QACN,MAAM,GACL,KAAK,CAAC,CAAC,CAAC,CAInB;IAED;;;;OAIG;IACH,UAFY,KAAK,CAAC,GAAG,CAAC,CAIrB;IAED;;;;;;;;OAQG;IACH,IALa,CAAC,KACH,CAAS,IAAC,EAAD,CAAC,EAAC,IAAM,EAAN,MAAM,EAAC,IAAS,EAAT,MAAM,CAAC,CAAC,CAAC,KAAE,CAAC,GAC7B,KAAK,CAAC,CAAC,CAAC,CAKnB;IAED;;;;OAIG;IACH,WAFW,CAAS,IAAC,EAAD,CAAC,EAAC,IAAM,EAAN,MAAM,EAAC,IAAS,EAAT,MAAM,CAAC,CAAC,CAAC,KAAE,IAAI,QAI3C;IAED;;OAEG;IACH,qBAFY,gBAAgB,CAAC,CAAC,CAAC,CAI9B;CAQF;AASM,qCANI,eAAe,GAAG,eAAe,GAChC,OAAO,mBAAmB,EAAE,KAAK,CAKK;uBAvP3B,YAAY;6BAF5B,iBAAiB;2CAAjB,iBAAiB;gCAAjB,iBAAiB;gCAAjB,iBAAiB"} |
@@ -10,3 +10,3 @@ export const attributionJsonSchema: s.Schema<{ | ||
| formatAt?: number | undefined; | ||
| } & {}>; | ||
| }>; | ||
| export function createAttributionFromAttributionItems(attrs: Array<import("./IdMap.js").AttributionItem<any>> | null, deleted: boolean): Attribution | null; | ||
@@ -13,0 +13,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"AttributionManager.d.ts","sourceRoot":"","sources":["../../../src/utils/AttributionManager.js"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"AttributionManager.d.ts","sourceRoot":"","sources":["../../../src/utils/AttributionManager.js"],"names":[],"mappings":"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"} |
| /** | ||
| * @todo rename this to `Attribute` | ||
| * @template V | ||
@@ -3,0 +4,0 @@ */ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"IdMap.d.ts","sourceRoot":"","sources":["../../../src/utils/IdMap.js"],"names":[],"mappings":"AAiBA;;GAEG;AACH,6BAFa,CAAC;IAGZ;;;OAGG;IACH,kBAHW,MAAM,OACN,CAAC,EAKX;IAFC,aAAgB;IAChB,OAAc;IAGhB,eAKC;CACF;AAkBM,sCALM,CAAC,QACH,MAAM,OACN,CAAC,GACA,eAAe,CAAC,CAAC,CAAC,CAEoD;AAe3E,wCAHI,KAAK,CAAC,GAAC,CAAC,KACR,KAAK,CAAC,GAAC,CAAC,WAEgF;AASnG;;GAEG;AACH,uBAFa,KAAK;IAGhB;;;;OAIG;IACH,mBAJW,MAAM,OACN,MAAM,SACN,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAevC;IAZC;;OAEG;IACH,uBAAkB;IAClB;;OAEG;IACH,qBAAc;IACd;;OAEG;IACH,yCAAkB;IAGpB;;;OAGG;IACH,gBAHW,MAAM,OACN,MAAM,oBAIhB;CACF;AAeM,qCAPM,KAAK,SAEP,MAAM,OACN,MAAM,SACN,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAC,GAC7B,cAAc,CAAC,KAAK,CAAC,CAE+E;AAEhH;;;;GAIG;AACH,wBAFa,KAAK;IAGhB;;OAEG;IACH,iBAFW,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAQjC;IALC,gBAAmB;IACnB;;OAEG;IACH,aAAe;IAGjB,0BAEC;IAED;;;;OAIG;IACH,WAJW,MAAM,UACN,MAAM,SACN,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,QAMvC;IAED;;OAEG;IACH,6BA2EC;CACF;AAUM,sCAHI,KAAK,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC,GACd,KAAK,CAAC,GAAC,CAAC,CAgCnB;AAMM,4CAHI,KAAK,SACL,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,cAsBrC;AAED;;GAEG;AACH,mBAFa,KAAK;IAId;;OAEG;IACH,SAFU,GAAG,CAAC,MAAM,EAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAEf;IACxB;;OAEG;IACH,QAFU,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAEtB;IACvB;;OAEG;IACH,OAFU,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAEf;IAGxB;;OAEG;IACH,WAFW,CAAC,SAAS,EAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAC,MAAM,KAAK,IAAI,QAQ7D;IAED;;;OAGG;IACH,UAHW,EAAE,GACD,OAAO,CAIlB;IAED;;;;OAIG;IACH,YAJW,MAAM,SACN,MAAM,GACL,OAAO,CAQlB;IAED;;;;;;OAMG;IACH,YAJW,EAAE,OACF,MAAM,GACL,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAIvC;IAED;;;;;;;OAOG;IACH,cALW,MAAM,SACN,MAAM,OACN,MAAM,GACL,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CA6CvC;IAED;;;;;OAKG;IACH,YALW,MAAM,SACN,MAAM,OACN,MAAM,SACN,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,QAWvC;IAED;;;;OAIG;IACH,eAJW,MAAM,SACN,MAAM,OACN,MAAM,QAIhB;CACF;AAaM,2BAPM,IAAI,WACN,cAAc,GAAG,cAAc,SAC/B,KAAK,CAAC,IAAI,CAAC,QA0DrB;AAKM,mCAFI,KAAK,CAAC,GAAG,CAAC,2BAMpB;AASM,mCANI,WAAW,GAAG,WAAW,GACxB,KAAK,CAAC,GAAG,CAAC,CAuDrB;AAMM,kCAHI,UAAU,GACT,KAAK,CAAC,GAAG,CAAC,CAEqE;AAgBpF,0CAAqC;AAE5C;;;;GAIG;AACH,sFAA+C;AAWxC,0BALmB,IAAI,SAAhB,KAAK,CAAC,GAAG,CAAE,OACd,IAAI,WACJ,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GACjB,IAAI,CAOf;AAED,wNAA2C;2BAlgB9B,KAAK,IACL;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAC,CAAA;CAAE;sBAzG3E,iBAAiB;mBAAjB,iBAAiB;+BAAjB,iBAAiB;+BAAjB,iBAAiB;4BAAjB,iBAAiB;4BAAjB,iBAAiB"} | ||
| {"version":3,"file":"IdMap.d.ts","sourceRoot":"","sources":["../../../src/utils/IdMap.js"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,6BAFa,CAAC;IAGZ;;;OAGG;IACH,kBAHW,MAAM,OACN,CAAC,EAKX;IAFC,aAAgB;IAChB,OAAc;IAGhB,eAKC;CACF;AAmBM,sCALM,CAAC,QACH,MAAM,OACN,CAAC,GACA,eAAe,CAAC,CAAC,CAAC,CAEoD;AAe3E,wCAHI,KAAK,CAAC,GAAC,CAAC,KACR,KAAK,CAAC,GAAC,CAAC,WAEgF;AASnG;;GAEG;AACH,uBAFa,KAAK;IAGhB;;;;OAIG;IACH,mBAJW,MAAM,OACN,MAAM,SACN,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAevC;IAZC;;OAEG;IACH,uBAAkB;IAClB;;OAEG;IACH,qBAAc;IACd;;OAEG;IACH,yCAAkB;IAGpB;;;OAGG;IACH,gBAHW,MAAM,OACN,MAAM,oBAIhB;CACF;AAeM,qCAPM,KAAK,SAEP,MAAM,OACN,MAAM,SACN,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAC,GAC7B,cAAc,CAAC,KAAK,CAAC,CAE+E;AAEhH;;;;GAIG;AACH,wBAFa,KAAK;IAGhB;;OAEG;IACH,iBAFW,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAQjC;IALC,gBAAmB;IACnB;;OAEG;IACH,aAAe;IAGjB,0BAEC;IAED;;;;OAIG;IACH,WAJW,MAAM,UACN,MAAM,SACN,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,QAMvC;IAED;;OAEG;IACH,6BA2EC;CACF;AAUM,sCAHI,KAAK,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC,GACd,KAAK,CAAC,GAAC,CAAC,CAgCnB;AAMM,4CAHI,KAAK,SACL,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,cAsBrC;AAED;;GAEG;AACH,mBAFa,KAAK;IAId;;OAEG;IACH,SAFU,GAAG,CAAC,MAAM,EAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAEf;IACxB;;OAEG;IACH,QAFU,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAEtB;IACvB;;OAEG;IACH,OAFU,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAEf;IAGxB;;OAEG;IACH,WAFW,CAAC,SAAS,EAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAC,MAAM,KAAK,IAAI,QAQ7D;IAED;;;OAGG;IACH,UAHW,EAAE,GACD,OAAO,CAIlB;IAED;;;;OAIG;IACH,YAJW,MAAM,SACN,MAAM,GACL,OAAO,CAQlB;IAED;;;;;;OAMG;IACH,YAJW,EAAE,OACF,MAAM,GACL,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAIvC;IAED;;;;;;;OAOG;IACH,cALW,MAAM,SACN,MAAM,OACN,MAAM,GACL,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CA6CvC;IAED;;;;;OAKG;IACH,YALW,MAAM,SACN,MAAM,OACN,MAAM,SACN,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,QAWvC;IAED;;;;OAIG;IACH,eAJW,MAAM,SACN,MAAM,OACN,MAAM,QAIhB;CACF;AAaM,2BAPM,IAAI,WACN,cAAc,GAAG,cAAc,SAC/B,KAAK,CAAC,IAAI,CAAC,QA0DrB;AAKM,mCAFI,KAAK,CAAC,GAAG,CAAC,2BAMpB;AASM,mCANI,WAAW,GAAG,WAAW,GACxB,KAAK,CAAC,GAAG,CAAC,CAuDrB;AAMM,kCAHI,UAAU,GACT,KAAK,CAAC,GAAG,CAAC,CAEqE;AAgBpF,0CAAqC;AAE5C;;;;GAIG;AACH,sFAA+C;AAWxC,0BALmB,IAAI,SAAhB,KAAK,CAAC,GAAG,CAAE,OACd,IAAI,WACJ,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GACjB,IAAI,CAOf;AAED,wNAA2C;2BAlgB9B,KAAK,IACL;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAC,CAAA;CAAE;sBA3G3E,iBAAiB;mBAAjB,iBAAiB;+BAAjB,iBAAiB;+BAAjB,iBAAiB;4BAAjB,iBAAiB;4BAAjB,iBAAiB"} |
@@ -10,7 +10,7 @@ 'use strict'; | ||
| var map = require('lib0/map'); | ||
| var yjs = require('./index-DHAwYOkK.js'); | ||
| var yjs = require('./index-DCSYR1ho.js'); | ||
| var math = require('lib0/math'); | ||
| var list = require('lib0/list'); | ||
| var delta = require('lib0/delta'); | ||
| var Skip = require('./Skip-C-88Cnkq.js'); | ||
| var Skip = require('./Skip-vvIEGjAV.js'); | ||
| require('lib0/function'); | ||
@@ -507,3 +507,4 @@ require('lib0/binary'); | ||
| const userMapValues = users.map(u => u.getMap('map').toJSON()); | ||
| users[0].get('xml', Skip.YXmlElement); | ||
| // @todo fix type error here | ||
| // @ts-ignore | ||
| const userXmlValues = users.map(u => /** @type {Y.XmlElement} */ (u.get('xml', Skip.YXmlElement)).toString()); | ||
@@ -736,2 +737,4 @@ const userTextValues = users.map(u => u.getText('text').getContentDeep()); | ||
| exports.getTypeChildren = Skip.getTypeChildren; | ||
| exports.insertIntoIdMap = Skip.insertIntoIdMap; | ||
| exports.insertIntoIdSet = Skip.insertIntoIdSet; | ||
| exports.isParentOf = Skip.isParentOf; | ||
@@ -742,2 +745,3 @@ exports.iterateStructsByIdSet = Skip.iterateStructsByIdSet; | ||
| exports.logUpdateV2 = Skip.logUpdateV2; | ||
| exports.mergeIdMaps = Skip.mergeIdMaps; | ||
| exports.mergeIdSets = Skip.mergeIdSets; | ||
@@ -749,2 +753,4 @@ exports.mergeUpdates = Skip.mergeUpdates; | ||
| exports.obfuscateUpdateV2 = Skip.obfuscateUpdateV2; | ||
| exports.readIdMap = Skip.readIdMap; | ||
| exports.readIdSet = Skip.readIdSet; | ||
| exports.readUpdate = Skip.readUpdate; | ||
@@ -751,0 +757,0 @@ exports.readUpdateIdRanges = Skip.readUpdateIdRanges; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"testHelper.cjs","sources":["../tests/testHelper.js"],"sourcesContent":["import * as t from 'lib0/testing'\nimport * as prng from 'lib0/prng'\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as syncProtocol from '@y/protocols/sync'\nimport * as object from 'lib0/object'\nimport * as map from 'lib0/map'\nimport * as Y from '../src/index.js'\nimport * as math from 'lib0/math'\nimport * as list from 'lib0/list'\nimport * as delta from 'lib0/delta'\nimport {\n createIdSet, createIdMap, addToIdSet, encodeIdMap\n} from '../src/internals.js'\n\nexport * from '../src/index.js'\n\nif (typeof window !== 'undefined') {\n // @ts-ignore\n window.Y = Y // eslint-disable-line\n}\n\n/**\n * @param {TestYInstance} y // publish message created by `y` to all other online clients\n * @param {Uint8Array} m\n */\nconst broadcastMessage = (y, m) => {\n if (y.tc.onlineConns.has(y)) {\n y.tc.onlineConns.forEach(remoteYInstance => {\n if (remoteYInstance !== y) {\n remoteYInstance._receive(m, y)\n }\n })\n }\n}\n\nexport let useV2 = false\n\nexport const encV1 = {\n encodeStateAsUpdate: Y.encodeStateAsUpdate,\n mergeUpdates: Y.mergeUpdates,\n applyUpdate: Y.applyUpdate,\n logUpdate: Y.logUpdate,\n updateEventName: /** @type {'update'} */ ('update'),\n diffUpdate: Y.diffUpdate\n}\n\nexport const encV2 = {\n encodeStateAsUpdate: Y.encodeStateAsUpdateV2,\n mergeUpdates: Y.mergeUpdatesV2,\n applyUpdate: Y.applyUpdateV2,\n logUpdate: Y.logUpdateV2,\n updateEventName: /** @type {'updateV2'} */ ('updateV2'),\n diffUpdate: Y.diffUpdateV2\n}\n\nexport let enc = encV1\n\nconst useV1Encoding = () => {\n useV2 = false\n enc = encV1\n}\n\nconst useV2Encoding = () => {\n console.error('sync protocol doesnt support v2 protocol yet, fallback to v1 encoding') // @Todo\n useV2 = false\n enc = encV1\n}\n\nexport class TestYInstance extends Y.Doc {\n /**\n * @param {TestConnector} testConnector\n * @param {number} clientID\n */\n constructor (testConnector, clientID) {\n super()\n this.userID = clientID // overwriting clientID\n /**\n * @type {TestConnector}\n */\n this.tc = testConnector\n /**\n * @type {Map<TestYInstance, Array<Uint8Array>>}\n */\n this.receiving = new Map()\n testConnector.allConns.add(this)\n /**\n * The list of received updates.\n * We are going to merge them later using Y.mergeUpdates and check if the resulting document is correct.\n * @type {Array<Uint8Array<ArrayBuffer>>}\n */\n this.updates = []\n // set up observe on local model\n this.on(enc.updateEventName, (update, origin) => {\n if (origin !== testConnector) {\n const encoder = encoding.createEncoder()\n syncProtocol.writeUpdate(encoder, update)\n broadcastMessage(this, encoding.toUint8Array(encoder))\n }\n this.updates.push(update)\n })\n this.connect()\n }\n\n /**\n * Disconnect from TestConnector.\n */\n disconnect () {\n this.receiving = new Map()\n this.tc.onlineConns.delete(this)\n }\n\n /**\n * Append yourself to the list of known Y instances in testconnector.\n * Also initiate sync with all clients.\n */\n connect () {\n if (!this.tc.onlineConns.has(this)) {\n this.tc.onlineConns.add(this)\n const encoder = encoding.createEncoder()\n syncProtocol.writeSyncStep1(encoder, this)\n // publish SyncStep1\n broadcastMessage(this, encoding.toUint8Array(encoder))\n this.tc.onlineConns.forEach(remoteYInstance => {\n if (remoteYInstance !== this) {\n // remote instance sends instance to this instance\n const encoder = encoding.createEncoder()\n syncProtocol.writeSyncStep1(encoder, remoteYInstance)\n this._receive(encoding.toUint8Array(encoder), remoteYInstance)\n }\n })\n }\n }\n\n /**\n * Receive a message from another client. This message is only appended to the list of receiving messages.\n * TestConnector decides when this client actually reads this message.\n *\n * @param {Uint8Array} message\n * @param {TestYInstance} remoteClient\n */\n _receive (message, remoteClient) {\n map.setIfUndefined(this.receiving, remoteClient, () => /** @type {Array<Uint8Array>} */ ([])).push(message)\n }\n}\n\n/**\n * Keeps track of TestYInstances.\n *\n * The TestYInstances add/remove themselves from the list of connections maiained in this object.\n * I think it makes sense. Deal with it.\n */\nexport class TestConnector {\n /**\n * @param {prng.PRNG} gen\n */\n constructor (gen) {\n /**\n * @type {Set<TestYInstance>}\n */\n this.allConns = new Set()\n /**\n * @type {Set<TestYInstance>}\n */\n this.onlineConns = new Set()\n /**\n * @type {prng.PRNG}\n */\n this.prng = gen\n }\n\n /**\n * Create a new Y instance and add it to the list of connections\n * @param {number} clientID\n */\n createY (clientID) {\n return new TestYInstance(this, clientID)\n }\n\n /**\n * Choose random connection and flush a random message from a random sender.\n *\n * If this function was unable to flush a message, because there are no more messages to flush, it returns false. true otherwise.\n * @return {boolean}\n */\n flushRandomMessage () {\n const gen = this.prng\n const conns = Array.from(this.onlineConns).filter(conn => conn.receiving.size > 0)\n if (conns.length > 0) {\n const receiver = prng.oneOf(gen, conns)\n const [sender, messages] = prng.oneOf(gen, Array.from(receiver.receiving))\n const m = messages.shift()\n if (messages.length === 0) {\n receiver.receiving.delete(sender)\n }\n if (m === undefined) {\n return this.flushRandomMessage()\n }\n const encoder = encoding.createEncoder()\n // console.log('receive (' + sender.userID + '->' + receiver.userID + '):\\n', syncProtocol.stringifySyncMessage(decoding.createDecoder(m), receiver))\n // do not publish data created when this function is executed (could be ss2 or update message)\n syncProtocol.readSyncMessage(decoding.createDecoder(m), encoder, receiver, receiver.tc)\n if (encoding.length(encoder) > 0) {\n // send reply message\n sender._receive(encoding.toUint8Array(encoder), receiver)\n }\n return true\n }\n return false\n }\n\n /**\n * @return {boolean} True iff this function actually flushed something\n */\n flushAllMessages () {\n let didSomething = false\n while (this.flushRandomMessage()) {\n didSomething = true\n }\n return didSomething\n }\n\n reconnectAll () {\n this.allConns.forEach(conn => conn.connect())\n }\n\n disconnectAll () {\n this.allConns.forEach(conn => conn.disconnect())\n }\n\n syncAll () {\n this.reconnectAll()\n this.flushAllMessages()\n }\n\n /**\n * @return {boolean} Whether it was possible to disconnect a random connection.\n */\n disconnectRandom () {\n if (this.onlineConns.size === 0) {\n return false\n }\n prng.oneOf(this.prng, Array.from(this.onlineConns)).disconnect()\n return true\n }\n\n /**\n * @return {boolean} Whether it was possible to reconnect a random connection.\n */\n reconnectRandom () {\n /**\n * @type {Array<TestYInstance>}\n */\n const reconnectable = []\n this.allConns.forEach(conn => {\n if (!this.onlineConns.has(conn)) {\n reconnectable.push(conn)\n }\n })\n if (reconnectable.length === 0) {\n return false\n }\n prng.oneOf(this.prng, reconnectable).connect()\n return true\n }\n}\n\n/**\n * @template T\n * @param {t.TestCase} tc\n * @param {{users?:number}} conf\n * @param {InitTestObjectCallback<T>} [initTestObject]\n * @return {{testObjects:Array<any>,testConnector:TestConnector,users:Array<TestYInstance>,array0:Y.Array<any>,array1:Y.Array<any>,array2:Y.Array<any>,map0:Y.Map<any>,map1:Y.Map<any>,map2:Y.Map<any>,map3:Y.Map<any>,text0:Y.Text,text1:Y.Text,text2:Y.Text,xml0:Y.XmlElement,xml1:Y.XmlElement,xml2:Y.XmlElement}}\n */\nexport const init = (tc, { users = 5 } = {}, initTestObject) => {\n /**\n * @type {Object<string,any>}\n */\n const result = {\n users: []\n }\n const gen = tc.prng\n // choose an encoding approach at random\n if (prng.bool(gen)) {\n useV2Encoding()\n } else {\n useV1Encoding()\n }\n\n const testConnector = new TestConnector(gen)\n result.testConnector = testConnector\n for (let i = 0; i < users; i++) {\n const y = testConnector.createY(i)\n y.clientID = i\n result.users.push(y)\n result['array' + i] = y.getArray('array')\n result['map' + i] = y.getMap('map')\n result['xml' + i] = y.get('xml', Y.XmlElement)\n result['text' + i] = y.getText('text')\n }\n testConnector.syncAll()\n result.testObjects = result.users.map(initTestObject || (() => null))\n useV1Encoding()\n return /** @type {any} */ (result)\n}\n\n/**\n * @param {Y.IdSet} idSet1\n * @param {Y.IdSet} idSet2\n */\nexport const compareIdSets = (idSet1, idSet2) => {\n t.assert(idSet1.clients.size === idSet2.clients.size)\n for (const [client, _items1] of idSet1.clients.entries()) {\n const items1 = _items1.getIds()\n const items2 = idSet2.clients.get(client)?.getIds()\n t.assert(items2 !== undefined && items1.length === items2.length)\n for (let i = 0; i < items1.length; i++) {\n const di1 = items1[i]\n const di2 = /** @type {Array<import('../src/utils/IdSet.js').IdRange>} */ (items2)[i]\n t.assert(di1.clock === di2.clock && di1.len === di2.len)\n }\n }\n return true\n}\n\n/**\n * only use for testing\n *\n * @template T\n * @param {Array<Y.Attribution<T>>} attrs\n * @param {Y.Attribution<T>} attr\n *\n */\nconst _idmapAttrsHas = (attrs, attr) => {\n const hash = attr.hash()\n return attrs.find(a => a.hash() === hash)\n}\n\n/**\n * only use for testing\n *\n * @template T\n * @param {Array<Y.Attribution<T>>} a\n * @param {Array<Y.Attribution<T>>} b\n */\nexport const _idmapAttrsEqual = (a, b) => a.length === b.length && a.every(v => _idmapAttrsHas(b, v))\n\n/**\n * Ensure that all attributes exist. Also create a copy and compare it to the original.\n *\n * @template T\n * @param {Y.IdMap<T>} idmap\n */\nexport const validateIdMap = idmap => {\n const copy = Y.createIdMap()\n idmap.clients.forEach((ranges, client) => {\n ranges.getIds().forEach(range => {\n range.attrs.forEach(attr => {\n t.assert(idmap.attrs.has(attr))\n t.assert(idmap.attrsH.get(attr.hash()) === attr)\n copy.add(client, range.clock, range.len, range.attrs.slice())\n })\n })\n t.assert(copy.clients.get(client)?.getIds().length === ranges.getIds().length)\n })\n t.assert(idmap.attrsH.size === idmap.attrs.size)\n}\n\n/**\n * @template T\n * @param {Y.IdMap<T>} idmap1\n * @param {Y.IdMap<T>} idmap2\n */\nexport const compareIdmaps = (idmap1, idmap2) => {\n t.assert(idmap1.clients.size === idmap2.clients.size)\n for (const [client, _items1] of idmap1.clients.entries()) {\n const items1 = _items1.getIds()\n const items2 = idmap2.clients.get(client)?.getIds()\n t.assert(items2 !== undefined && items1.length === items2.length)\n for (let i = 0; i < items1.length; i++) {\n const di1 = items1[i]\n const di2 = /** @type {Array<import('../src/utils/IdMap.js').AttrRange<T>>} */ (items2)[i]\n t.assert(di1.clock === di2.clock && di1.len === di2.len && _idmapAttrsEqual(di1.attrs, di2.attrs))\n }\n }\n validateIdMap(idmap1)\n validateIdMap(idmap2)\n}\n\n/**\n * @param {prng.PRNG} gen\n * @param {number} clients\n * @param {number} clockRange (max clock - exclusive - by each client)\n */\nexport const createRandomIdSet = (gen, clients, clockRange) => {\n const maxOpLen = 5\n const numOfOps = math.ceil((clients * clockRange) / maxOpLen)\n const idset = createIdSet()\n for (let i = 0; i < numOfOps; i++) {\n const client = prng.uint32(gen, 0, clients - 1)\n const clockStart = prng.uint32(gen, 0, clockRange)\n const len = prng.uint32(gen, 0, clockRange - clockStart)\n addToIdSet(idset, client, clockStart, len)\n }\n if (idset.clients.size === clients && clients > 1 && prng.bool(gen)) {\n idset.clients.delete(prng.uint32(gen, 0, clients))\n }\n return idset\n}\n\n/**\n * @template T\n * @param {prng.PRNG} gen\n * @param {number} clients\n * @param {number} clockRange (max clock - exclusive - by each client)\n * @param {Array<T>} attrChoices (max clock - exclusive - by each client)\n * @return {Y.IdMap<T>}\n */\nexport const createRandomIdMap = (gen, clients, clockRange, attrChoices) => {\n const maxOpLen = 5\n const numOfOps = math.ceil((clients * clockRange) / maxOpLen)\n const idMap = createIdMap()\n for (let i = 0; i < numOfOps; i++) {\n const client = prng.uint32(gen, 0, clients - 1)\n const clockStart = prng.uint32(gen, 0, clockRange)\n const len = prng.uint32(gen, 0, clockRange - clockStart)\n const attrs = [prng.oneOf(gen, attrChoices)]\n // maybe add another attr\n if (prng.bool(gen)) {\n const a = prng.oneOf(gen, attrChoices)\n if (attrs.find(attr => attr === a) == null) {\n attrs.push(a)\n }\n }\n idMap.add(client, clockStart, len, attrs.map(v => Y.createAttributionItem('', v)))\n }\n t.info(`Created IdMap with ${numOfOps} ranges and ${attrChoices.length} different attributes. Encoded size: ${encodeIdMap(idMap).byteLength}`)\n return idMap\n}\n\n/**\n * 1. reconnect and flush all\n * 2. user 0 gc\n * 3. get type content\n * 4. disconnect & reconnect all (so gc is propagated)\n * 5. compare os, ds, ss\n *\n * @param {Array<TestYInstance>} users\n */\nexport const compare = users => {\n users.forEach(u => u.connect())\n while (users[0].tc.flushAllMessages()) {} // eslint-disable-line\n // For each document, merge all received document updates with Y.mergeUpdates and create a new document which will be added to the list of \"users\"\n // This ensures that mergeUpdates works correctly\n const mergedDocs = users.map(user => {\n const ydoc = new Y.Doc()\n enc.applyUpdate(ydoc, enc.mergeUpdates(user.updates))\n return ydoc\n })\n users.push(.../** @type {any} */(mergedDocs))\n const userArrayValues = users.map(u => u.getArray('array').toJSON())\n const userMapValues = users.map(u => u.getMap('map').toJSON())\n const q = users[0].get('xml', Y.XmlElement)\n const userXmlValues = users.map(u => /** @type {Y.XmlElement} */ (u.get('xml', Y.XmlElement)).toString())\n const userTextValues = users.map(u => u.getText('text').getContentDeep())\n for (const u of users) {\n t.assert(u.store.pendingDs === null)\n t.assert(u.store.pendingStructs === null)\n }\n // Test Array iterator\n t.compare(users[0].getArray('array').toArray(), Array.from(users[0].getArray('array')))\n // Test Map iterator\n const ymapkeys = Array.from(users[0].getMap('map').keys())\n t.assert(ymapkeys.length === Object.keys(userMapValues[0]).length)\n ymapkeys.forEach(key => t.assert(object.hasProperty(userMapValues[0], key)))\n /**\n * @type {Object<string,any>}\n */\n const mapRes = {}\n for (const [k, v] of users[0].getMap('map')) {\n mapRes[k] = v instanceof Y.AbstractType ? v.toJSON() : v\n }\n t.compare(userMapValues[0], mapRes)\n // Compare all users\n for (let i = 0; i < users.length - 1; i++) {\n t.compare(userArrayValues[i].length, users[i].getArray('array').length)\n t.compare(userArrayValues[i], userArrayValues[i + 1])\n t.compare(userMapValues[i], userMapValues[i + 1])\n t.compare(userXmlValues[i], userXmlValues[i + 1])\n t.compare(list.toArray(userTextValues[i].children).map(a => (delta.$textOp.check(a) || delta.$insertOp.check(a)) ? a.insert.length : 0).reduce((a, b) => a + b, 0), users[i].getText('text').length)\n t.compare(userTextValues[i], userTextValues[i + 1], '', (_constructor, a, b) => {\n if (a instanceof Y.AbstractType) {\n t.compare(a.toJSON(), b.toJSON())\n } else if (a !== b) {\n t.fail('Deltas dont match')\n }\n return true\n })\n t.compare(Y.encodeStateVector(users[i]), Y.encodeStateVector(users[i + 1]))\n Y.equalIdSets(Y.createDeleteSetFromStructStore(users[i].store), Y.createDeleteSetFromStructStore(users[i + 1].store))\n compareStructStores(users[i].store, users[i + 1].store)\n t.compare(Y.encodeSnapshot(Y.snapshot(users[i])), Y.encodeSnapshot(Y.snapshot(users[i + 1])))\n }\n users.forEach(user => {\n compareIdSets(user.store.ds, Y.createDeleteSetFromStructStore(user.store))\n })\n users.map(u => u.destroy())\n}\n\n/**\n * @param {Y.Item?} a\n * @param {Y.Item?} b\n * @return {boolean}\n */\nexport const compareItemIDs = (a, b) => a === b || (a !== null && b != null && Y.compareIDs(a.id, b.id))\n\n/**\n * @param {import('../src/internals.js').StructStore} ss1\n * @param {import('../src/internals.js').StructStore} ss2\n */\nexport const compareStructStores = (ss1, ss2) => {\n t.assert(ss1.clients.size === ss2.clients.size)\n for (const [client, structs1] of ss1.clients) {\n const structs2 = /** @type {Array<Y.AbstractStruct>} */ (ss2.clients.get(client))\n t.assert(structs2 !== undefined && structs1.length === structs2.length)\n for (let i = 0; i < structs1.length; i++) {\n const s1 = structs1[i]\n const s2 = structs2[i]\n // checks for abstract struct\n if (\n s1.constructor !== s2.constructor ||\n !Y.compareIDs(s1.id, s2.id) ||\n s1.deleted !== s2.deleted ||\n // @ts-ignore\n s1.length !== s2.length\n ) {\n t.fail('Structs dont match')\n }\n if (s1 instanceof Y.Item) {\n if (\n !(s2 instanceof Y.Item) ||\n !((s1.left === null && s2.left === null) || (s1.left !== null && s2.left !== null && Y.compareIDs(s1.left.lastId, s2.left.lastId))) ||\n !compareItemIDs(s1.right, s2.right) ||\n !Y.compareIDs(s1.origin, s2.origin) ||\n !Y.compareIDs(s1.rightOrigin, s2.rightOrigin) ||\n s1.parentSub !== s2.parentSub\n ) {\n return t.fail('Items dont match')\n }\n // make sure that items are connected correctly\n t.assert(s1.left === null || s1.left.right === s1)\n t.assert(s1.right === null || s1.right.left === s1)\n t.assert(s2.left === null || s2.left.right === s2)\n t.assert(s2.right === null || s2.right.left === s2)\n }\n }\n }\n}\n\n/**\n * @template T\n * @callback InitTestObjectCallback\n * @param {TestYInstance} y\n * @return {T}\n */\n\n/**\n * @template T\n * @param {t.TestCase} tc\n * @param {Array<function(Y.Doc,prng.PRNG,T):void>} mods\n * @param {number} iterations\n * @param {InitTestObjectCallback<T>} [initTestObject]\n */\nexport const applyRandomTests = (tc, mods, iterations, initTestObject) => {\n const gen = tc.prng\n const result = init(tc, { users: 5 }, initTestObject)\n const { testConnector, users } = result\n for (let i = 0; i < iterations; i++) {\n if (prng.int32(gen, 0, 100) <= 2) {\n // 2% chance to disconnect/reconnect a random user\n if (prng.bool(gen)) {\n testConnector.disconnectRandom()\n } else {\n testConnector.reconnectRandom()\n }\n } else if (prng.int32(gen, 0, 100) <= 1) {\n // 1% chance to flush all\n testConnector.flushAllMessages()\n } else if (prng.int32(gen, 0, 100) <= 50) {\n // 50% chance to flush a random message\n testConnector.flushRandomMessage()\n }\n const user = prng.int32(gen, 0, users.length - 1)\n const test = prng.oneOf(gen, mods)\n test(users[user], gen, result.testObjects[user])\n }\n compare(users)\n return result\n}\n"],"names":["Y","useV2","Y.encodeStateAsUpdate","Y.mergeUpdates","Y.applyUpdate","Y.logUpdate","Y.diffUpdate","Y.encodeStateAsUpdateV2","Y.mergeUpdatesV2","Y.applyUpdateV2","Y.logUpdateV2","Y.diffUpdateV2","enc","Y.Doc","encoding","syncProtocol","map","prng","decoding","Y.XmlElement","t","Y.createIdMap","math","createIdSet","addToIdSet","createIdMap","Y.createAttributionItem","encodeIdMap","object","Y.AbstractType","list","delta","Y.encodeStateVector","Y.equalIdSets","Y.createDeleteSetFromStructStore","Y.encodeSnapshot","Y.snapshot","Y.compareIDs","Y.Item"],"mappings":"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"} | ||
| {"version":3,"file":"testHelper.cjs","sources":["../tests/testHelper.js"],"sourcesContent":["import * as t from 'lib0/testing'\nimport * as prng from 'lib0/prng'\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as syncProtocol from '@y/protocols/sync'\nimport * as object from 'lib0/object'\nimport * as map from 'lib0/map'\nimport * as Y from '../src/index.js'\nimport * as math from 'lib0/math'\nimport * as list from 'lib0/list'\nimport * as delta from 'lib0/delta'\nimport {\n createIdSet, createIdMap, addToIdSet, encodeIdMap\n} from '../src/internals.js'\n\nexport * from '../src/index.js'\n\nif (typeof window !== 'undefined') {\n // @ts-ignore\n window.Y = Y // eslint-disable-line\n}\n\n/**\n * @param {TestYInstance} y // publish message created by `y` to all other online clients\n * @param {Uint8Array} m\n */\nconst broadcastMessage = (y, m) => {\n if (y.tc.onlineConns.has(y)) {\n y.tc.onlineConns.forEach(remoteYInstance => {\n if (remoteYInstance !== y) {\n remoteYInstance._receive(m, y)\n }\n })\n }\n}\n\nexport let useV2 = false\n\nexport const encV1 = {\n encodeStateAsUpdate: Y.encodeStateAsUpdate,\n mergeUpdates: Y.mergeUpdates,\n applyUpdate: Y.applyUpdate,\n logUpdate: Y.logUpdate,\n updateEventName: /** @type {'update'} */ ('update'),\n diffUpdate: Y.diffUpdate\n}\n\nexport const encV2 = {\n encodeStateAsUpdate: Y.encodeStateAsUpdateV2,\n mergeUpdates: Y.mergeUpdatesV2,\n applyUpdate: Y.applyUpdateV2,\n logUpdate: Y.logUpdateV2,\n updateEventName: /** @type {'updateV2'} */ ('updateV2'),\n diffUpdate: Y.diffUpdateV2\n}\n\nexport let enc = encV1\n\nconst useV1Encoding = () => {\n useV2 = false\n enc = encV1\n}\n\nconst useV2Encoding = () => {\n console.error('sync protocol doesnt support v2 protocol yet, fallback to v1 encoding') // @Todo\n useV2 = false\n enc = encV1\n}\n\nexport class TestYInstance extends Y.Doc {\n /**\n * @param {TestConnector} testConnector\n * @param {number} clientID\n */\n constructor (testConnector, clientID) {\n super()\n this.userID = clientID // overwriting clientID\n /**\n * @type {TestConnector}\n */\n this.tc = testConnector\n /**\n * @type {Map<TestYInstance, Array<Uint8Array>>}\n */\n this.receiving = new Map()\n testConnector.allConns.add(this)\n /**\n * The list of received updates.\n * We are going to merge them later using Y.mergeUpdates and check if the resulting document is correct.\n * @type {Array<Uint8Array<ArrayBuffer>>}\n */\n this.updates = []\n // set up observe on local model\n this.on(enc.updateEventName, (update, origin) => {\n if (origin !== testConnector) {\n const encoder = encoding.createEncoder()\n syncProtocol.writeUpdate(encoder, update)\n broadcastMessage(this, encoding.toUint8Array(encoder))\n }\n this.updates.push(update)\n })\n this.connect()\n }\n\n /**\n * Disconnect from TestConnector.\n */\n disconnect () {\n this.receiving = new Map()\n this.tc.onlineConns.delete(this)\n }\n\n /**\n * Append yourself to the list of known Y instances in testconnector.\n * Also initiate sync with all clients.\n */\n connect () {\n if (!this.tc.onlineConns.has(this)) {\n this.tc.onlineConns.add(this)\n const encoder = encoding.createEncoder()\n syncProtocol.writeSyncStep1(encoder, this)\n // publish SyncStep1\n broadcastMessage(this, encoding.toUint8Array(encoder))\n this.tc.onlineConns.forEach(remoteYInstance => {\n if (remoteYInstance !== this) {\n // remote instance sends instance to this instance\n const encoder = encoding.createEncoder()\n syncProtocol.writeSyncStep1(encoder, remoteYInstance)\n this._receive(encoding.toUint8Array(encoder), remoteYInstance)\n }\n })\n }\n }\n\n /**\n * Receive a message from another client. This message is only appended to the list of receiving messages.\n * TestConnector decides when this client actually reads this message.\n *\n * @param {Uint8Array} message\n * @param {TestYInstance} remoteClient\n */\n _receive (message, remoteClient) {\n map.setIfUndefined(this.receiving, remoteClient, () => /** @type {Array<Uint8Array>} */ ([])).push(message)\n }\n}\n\n/**\n * Keeps track of TestYInstances.\n *\n * The TestYInstances add/remove themselves from the list of connections maiained in this object.\n * I think it makes sense. Deal with it.\n */\nexport class TestConnector {\n /**\n * @param {prng.PRNG} gen\n */\n constructor (gen) {\n /**\n * @type {Set<TestYInstance>}\n */\n this.allConns = new Set()\n /**\n * @type {Set<TestYInstance>}\n */\n this.onlineConns = new Set()\n /**\n * @type {prng.PRNG}\n */\n this.prng = gen\n }\n\n /**\n * Create a new Y instance and add it to the list of connections\n * @param {number} clientID\n */\n createY (clientID) {\n return new TestYInstance(this, clientID)\n }\n\n /**\n * Choose random connection and flush a random message from a random sender.\n *\n * If this function was unable to flush a message, because there are no more messages to flush, it returns false. true otherwise.\n * @return {boolean}\n */\n flushRandomMessage () {\n const gen = this.prng\n const conns = Array.from(this.onlineConns).filter(conn => conn.receiving.size > 0)\n if (conns.length > 0) {\n const receiver = prng.oneOf(gen, conns)\n const [sender, messages] = prng.oneOf(gen, Array.from(receiver.receiving))\n const m = messages.shift()\n if (messages.length === 0) {\n receiver.receiving.delete(sender)\n }\n if (m === undefined) {\n return this.flushRandomMessage()\n }\n const encoder = encoding.createEncoder()\n // console.log('receive (' + sender.userID + '->' + receiver.userID + '):\\n', syncProtocol.stringifySyncMessage(decoding.createDecoder(m), receiver))\n // do not publish data created when this function is executed (could be ss2 or update message)\n syncProtocol.readSyncMessage(decoding.createDecoder(m), encoder, receiver, receiver.tc)\n if (encoding.length(encoder) > 0) {\n // send reply message\n sender._receive(encoding.toUint8Array(encoder), receiver)\n }\n return true\n }\n return false\n }\n\n /**\n * @return {boolean} True iff this function actually flushed something\n */\n flushAllMessages () {\n let didSomething = false\n while (this.flushRandomMessage()) {\n didSomething = true\n }\n return didSomething\n }\n\n reconnectAll () {\n this.allConns.forEach(conn => conn.connect())\n }\n\n disconnectAll () {\n this.allConns.forEach(conn => conn.disconnect())\n }\n\n syncAll () {\n this.reconnectAll()\n this.flushAllMessages()\n }\n\n /**\n * @return {boolean} Whether it was possible to disconnect a random connection.\n */\n disconnectRandom () {\n if (this.onlineConns.size === 0) {\n return false\n }\n prng.oneOf(this.prng, Array.from(this.onlineConns)).disconnect()\n return true\n }\n\n /**\n * @return {boolean} Whether it was possible to reconnect a random connection.\n */\n reconnectRandom () {\n /**\n * @type {Array<TestYInstance>}\n */\n const reconnectable = []\n this.allConns.forEach(conn => {\n if (!this.onlineConns.has(conn)) {\n reconnectable.push(conn)\n }\n })\n if (reconnectable.length === 0) {\n return false\n }\n prng.oneOf(this.prng, reconnectable).connect()\n return true\n }\n}\n\n/**\n * @template T\n * @param {t.TestCase} tc\n * @param {{users?:number}} conf\n * @param {InitTestObjectCallback<T>} [initTestObject]\n * @return {{testObjects:Array<any>,testConnector:TestConnector,users:Array<TestYInstance>,array0:Y.Array<any>,array1:Y.Array<any>,array2:Y.Array<any>,map0:Y.Map<any>,map1:Y.Map<any>,map2:Y.Map<any>,map3:Y.Map<any>,text0:Y.Text,text1:Y.Text,text2:Y.Text,xml0:Y.XmlElement,xml1:Y.XmlElement,xml2:Y.XmlElement}}\n */\nexport const init = (tc, { users = 5 } = {}, initTestObject) => {\n /**\n * @type {Object<string,any>}\n */\n const result = {\n users: []\n }\n const gen = tc.prng\n // choose an encoding approach at random\n if (prng.bool(gen)) {\n useV2Encoding()\n } else {\n useV1Encoding()\n }\n\n const testConnector = new TestConnector(gen)\n result.testConnector = testConnector\n for (let i = 0; i < users; i++) {\n const y = testConnector.createY(i)\n y.clientID = i\n result.users.push(y)\n result['array' + i] = y.getArray('array')\n result['map' + i] = y.getMap('map')\n result['xml' + i] = y.get('xml', Y.XmlElement)\n result['text' + i] = y.getText('text')\n }\n testConnector.syncAll()\n result.testObjects = result.users.map(initTestObject || (() => null))\n useV1Encoding()\n return /** @type {any} */ (result)\n}\n\n/**\n * @param {Y.IdSet} idSet1\n * @param {Y.IdSet} idSet2\n */\nexport const compareIdSets = (idSet1, idSet2) => {\n t.assert(idSet1.clients.size === idSet2.clients.size)\n for (const [client, _items1] of idSet1.clients.entries()) {\n const items1 = _items1.getIds()\n const items2 = idSet2.clients.get(client)?.getIds()\n t.assert(items2 !== undefined && items1.length === items2.length)\n for (let i = 0; i < items1.length; i++) {\n const di1 = items1[i]\n const di2 = /** @type {Array<import('../src/utils/IdSet.js').IdRange>} */ (items2)[i]\n t.assert(di1.clock === di2.clock && di1.len === di2.len)\n }\n }\n return true\n}\n\n/**\n * only use for testing\n *\n * @template T\n * @param {Array<Y.Attribution<T>>} attrs\n * @param {Y.Attribution<T>} attr\n *\n */\nconst _idmapAttrsHas = (attrs, attr) => {\n const hash = attr.hash()\n return attrs.find(a => a.hash() === hash)\n}\n\n/**\n * only use for testing\n *\n * @template T\n * @param {Array<Y.Attribution<T>>} a\n * @param {Array<Y.Attribution<T>>} b\n */\nexport const _idmapAttrsEqual = (a, b) => a.length === b.length && a.every(v => _idmapAttrsHas(b, v))\n\n/**\n * Ensure that all attributes exist. Also create a copy and compare it to the original.\n *\n * @template T\n * @param {Y.IdMap<T>} idmap\n */\nexport const validateIdMap = idmap => {\n const copy = Y.createIdMap()\n idmap.clients.forEach((ranges, client) => {\n ranges.getIds().forEach(range => {\n range.attrs.forEach(attr => {\n t.assert(idmap.attrs.has(attr))\n t.assert(idmap.attrsH.get(attr.hash()) === attr)\n copy.add(client, range.clock, range.len, range.attrs.slice())\n })\n })\n t.assert(copy.clients.get(client)?.getIds().length === ranges.getIds().length)\n })\n t.assert(idmap.attrsH.size === idmap.attrs.size)\n}\n\n/**\n * @template T\n * @param {Y.IdMap<T>} idmap1\n * @param {Y.IdMap<T>} idmap2\n */\nexport const compareIdmaps = (idmap1, idmap2) => {\n t.assert(idmap1.clients.size === idmap2.clients.size)\n for (const [client, _items1] of idmap1.clients.entries()) {\n const items1 = _items1.getIds()\n const items2 = idmap2.clients.get(client)?.getIds()\n t.assert(items2 !== undefined && items1.length === items2.length)\n for (let i = 0; i < items1.length; i++) {\n const di1 = items1[i]\n const di2 = /** @type {Array<import('../src/utils/IdMap.js').AttrRange<T>>} */ (items2)[i]\n t.assert(di1.clock === di2.clock && di1.len === di2.len && _idmapAttrsEqual(di1.attrs, di2.attrs))\n }\n }\n validateIdMap(idmap1)\n validateIdMap(idmap2)\n}\n\n/**\n * @param {prng.PRNG} gen\n * @param {number} clients\n * @param {number} clockRange (max clock - exclusive - by each client)\n */\nexport const createRandomIdSet = (gen, clients, clockRange) => {\n const maxOpLen = 5\n const numOfOps = math.ceil((clients * clockRange) / maxOpLen)\n const idset = createIdSet()\n for (let i = 0; i < numOfOps; i++) {\n const client = prng.uint32(gen, 0, clients - 1)\n const clockStart = prng.uint32(gen, 0, clockRange)\n const len = prng.uint32(gen, 0, clockRange - clockStart)\n addToIdSet(idset, client, clockStart, len)\n }\n if (idset.clients.size === clients && clients > 1 && prng.bool(gen)) {\n idset.clients.delete(prng.uint32(gen, 0, clients))\n }\n return idset\n}\n\n/**\n * @template T\n * @param {prng.PRNG} gen\n * @param {number} clients\n * @param {number} clockRange (max clock - exclusive - by each client)\n * @param {Array<T>} attrChoices (max clock - exclusive - by each client)\n * @return {Y.IdMap<T>}\n */\nexport const createRandomIdMap = (gen, clients, clockRange, attrChoices) => {\n const maxOpLen = 5\n const numOfOps = math.ceil((clients * clockRange) / maxOpLen)\n const idMap = createIdMap()\n for (let i = 0; i < numOfOps; i++) {\n const client = prng.uint32(gen, 0, clients - 1)\n const clockStart = prng.uint32(gen, 0, clockRange)\n const len = prng.uint32(gen, 0, clockRange - clockStart)\n const attrs = [prng.oneOf(gen, attrChoices)]\n // maybe add another attr\n if (prng.bool(gen)) {\n const a = prng.oneOf(gen, attrChoices)\n if (attrs.find(attr => attr === a) == null) {\n attrs.push(a)\n }\n }\n idMap.add(client, clockStart, len, attrs.map(v => Y.createAttributionItem('', v)))\n }\n t.info(`Created IdMap with ${numOfOps} ranges and ${attrChoices.length} different attributes. Encoded size: ${encodeIdMap(idMap).byteLength}`)\n return idMap\n}\n\n/**\n * 1. reconnect and flush all\n * 2. user 0 gc\n * 3. get type content\n * 4. disconnect & reconnect all (so gc is propagated)\n * 5. compare os, ds, ss\n *\n * @param {Array<TestYInstance>} users\n */\nexport const compare = users => {\n users.forEach(u => u.connect())\n while (users[0].tc.flushAllMessages()) {} // eslint-disable-line\n // For each document, merge all received document updates with Y.mergeUpdates and create a new document which will be added to the list of \"users\"\n // This ensures that mergeUpdates works correctly\n const mergedDocs = users.map(user => {\n const ydoc = new Y.Doc()\n enc.applyUpdate(ydoc, enc.mergeUpdates(user.updates))\n return ydoc\n })\n users.push(.../** @type {any} */(mergedDocs))\n const userArrayValues = users.map(u => u.getArray('array').toJSON())\n const userMapValues = users.map(u => u.getMap('map').toJSON())\n // @todo fix type error here\n // @ts-ignore\n const userXmlValues = users.map(u => /** @type {Y.XmlElement} */ (u.get('xml', Y.XmlElement)).toString())\n const userTextValues = users.map(u => u.getText('text').getContentDeep())\n for (const u of users) {\n t.assert(u.store.pendingDs === null)\n t.assert(u.store.pendingStructs === null)\n }\n // Test Array iterator\n t.compare(users[0].getArray('array').toArray(), Array.from(users[0].getArray('array')))\n // Test Map iterator\n const ymapkeys = Array.from(users[0].getMap('map').keys())\n t.assert(ymapkeys.length === Object.keys(userMapValues[0]).length)\n ymapkeys.forEach(key => t.assert(object.hasProperty(userMapValues[0], key)))\n /**\n * @type {Object<string,any>}\n */\n const mapRes = {}\n for (const [k, v] of users[0].getMap('map')) {\n mapRes[k] = v instanceof Y.AbstractType ? v.toJSON() : v\n }\n t.compare(userMapValues[0], mapRes)\n // Compare all users\n for (let i = 0; i < users.length - 1; i++) {\n t.compare(userArrayValues[i].length, users[i].getArray('array').length)\n t.compare(userArrayValues[i], userArrayValues[i + 1])\n t.compare(userMapValues[i], userMapValues[i + 1])\n t.compare(userXmlValues[i], userXmlValues[i + 1])\n t.compare(list.toArray(userTextValues[i].children).map(a => (delta.$textOp.check(a) || delta.$insertOp.check(a)) ? a.insert.length : 0).reduce((a, b) => a + b, 0), users[i].getText('text').length)\n t.compare(userTextValues[i], userTextValues[i + 1], '', (_constructor, a, b) => {\n if (a instanceof Y.AbstractType) {\n t.compare(a.toJSON(), b.toJSON())\n } else if (a !== b) {\n t.fail('Deltas dont match')\n }\n return true\n })\n t.compare(Y.encodeStateVector(users[i]), Y.encodeStateVector(users[i + 1]))\n Y.equalIdSets(Y.createDeleteSetFromStructStore(users[i].store), Y.createDeleteSetFromStructStore(users[i + 1].store))\n compareStructStores(users[i].store, users[i + 1].store)\n t.compare(Y.encodeSnapshot(Y.snapshot(users[i])), Y.encodeSnapshot(Y.snapshot(users[i + 1])))\n }\n users.forEach(user => {\n compareIdSets(user.store.ds, Y.createDeleteSetFromStructStore(user.store))\n })\n users.map(u => u.destroy())\n}\n\n/**\n * @param {Y.Item?} a\n * @param {Y.Item?} b\n * @return {boolean}\n */\nexport const compareItemIDs = (a, b) => a === b || (a !== null && b != null && Y.compareIDs(a.id, b.id))\n\n/**\n * @param {import('../src/internals.js').StructStore} ss1\n * @param {import('../src/internals.js').StructStore} ss2\n */\nexport const compareStructStores = (ss1, ss2) => {\n t.assert(ss1.clients.size === ss2.clients.size)\n for (const [client, structs1] of ss1.clients) {\n const structs2 = /** @type {Array<Y.AbstractStruct>} */ (ss2.clients.get(client))\n t.assert(structs2 !== undefined && structs1.length === structs2.length)\n for (let i = 0; i < structs1.length; i++) {\n const s1 = structs1[i]\n const s2 = structs2[i]\n // checks for abstract struct\n if (\n s1.constructor !== s2.constructor ||\n !Y.compareIDs(s1.id, s2.id) ||\n s1.deleted !== s2.deleted ||\n // @ts-ignore\n s1.length !== s2.length\n ) {\n t.fail('Structs dont match')\n }\n if (s1 instanceof Y.Item) {\n if (\n !(s2 instanceof Y.Item) ||\n !((s1.left === null && s2.left === null) || (s1.left !== null && s2.left !== null && Y.compareIDs(s1.left.lastId, s2.left.lastId))) ||\n !compareItemIDs(s1.right, s2.right) ||\n !Y.compareIDs(s1.origin, s2.origin) ||\n !Y.compareIDs(s1.rightOrigin, s2.rightOrigin) ||\n s1.parentSub !== s2.parentSub\n ) {\n return t.fail('Items dont match')\n }\n // make sure that items are connected correctly\n t.assert(s1.left === null || s1.left.right === s1)\n t.assert(s1.right === null || s1.right.left === s1)\n t.assert(s2.left === null || s2.left.right === s2)\n t.assert(s2.right === null || s2.right.left === s2)\n }\n }\n }\n}\n\n/**\n * @template T\n * @callback InitTestObjectCallback\n * @param {TestYInstance} y\n * @return {T}\n */\n\n/**\n * @template T\n * @param {t.TestCase} tc\n * @param {Array<function(Y.Doc,prng.PRNG,T):void>} mods\n * @param {number} iterations\n * @param {InitTestObjectCallback<T>} [initTestObject]\n */\nexport const applyRandomTests = (tc, mods, iterations, initTestObject) => {\n const gen = tc.prng\n const result = init(tc, { users: 5 }, initTestObject)\n const { testConnector, users } = result\n for (let i = 0; i < iterations; i++) {\n if (prng.int32(gen, 0, 100) <= 2) {\n // 2% chance to disconnect/reconnect a random user\n if (prng.bool(gen)) {\n testConnector.disconnectRandom()\n } else {\n testConnector.reconnectRandom()\n }\n } else if (prng.int32(gen, 0, 100) <= 1) {\n // 1% chance to flush all\n testConnector.flushAllMessages()\n } else if (prng.int32(gen, 0, 100) <= 50) {\n // 50% chance to flush a random message\n testConnector.flushRandomMessage()\n }\n const user = prng.int32(gen, 0, users.length - 1)\n const test = prng.oneOf(gen, mods)\n test(users[user], gen, result.testObjects[user])\n }\n compare(users)\n return result\n}\n"],"names":["Y","useV2","Y.encodeStateAsUpdate","Y.mergeUpdates","Y.applyUpdate","Y.logUpdate","Y.diffUpdate","Y.encodeStateAsUpdateV2","Y.mergeUpdatesV2","Y.applyUpdateV2","Y.logUpdateV2","Y.diffUpdateV2","enc","Y.Doc","encoding","syncProtocol","map","prng","decoding","Y.XmlElement","t","Y.createIdMap","math","createIdSet","addToIdSet","createIdMap","Y.createAttributionItem","encodeIdMap","object","Y.AbstractType","list","delta","Y.encodeStateVector","Y.equalIdSets","Y.createDeleteSetFromStructStore","Y.encodeSnapshot","Y.snapshot","Y.compareIDs","Y.Item"],"mappings":"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"} |
@@ -8,8 +8,8 @@ import * as t from 'lib0/testing'; | ||
| import * as map from 'lib0/map'; | ||
| import { Y } from './index-C421fONL.js'; | ||
| import { Y } from './index-RXUm_nlS.js'; | ||
| import * as math from 'lib0/math'; | ||
| import * as list from 'lib0/list'; | ||
| import * as delta from 'lib0/delta'; | ||
| import { bb as diffUpdate, a$ as logUpdate, Q as applyUpdate, b4 as mergeUpdates, T as encodeStateAsUpdate, ba as diffUpdateV2, b0 as logUpdateV2, P as applyUpdateV2, b9 as mergeUpdatesV2, S as encodeStateAsUpdateV2, a7 as compareIDs, D as Doc, cr as YXmlElement, by as createIdMap, n as addToIdSet, p as createIdSet, bm as createAttributionItem, bv as encodeIdMap, bT as AbstractType, $ as encodeStateVector, v as equalIdSets, q as createDeleteSetFromStructStore, au as encodeSnapshot, az as snapshot, d3 as Item } from './Skip-B3PEROiW.js'; | ||
| export { ah as AbsolutePosition, bF as AbstractAttributionManager, A as AbstractConnector, cx as AbstractStruct, ce as Array, bl as Attribution, cM as ContentAny, cA as ContentBinary, cC as ContentDeleted, cE as ContentDoc, cG as ContentEmbed, cI as ContentFormat, cK as ContentJSON, cO as ContentString, cY as ContentType, bJ as DiffAttributionManager, cz as GC, a6 as ID, bt as IdMap, b as IdSet, cg as Map, ae as RelativePosition, d8 as Skip, ar as Snapshot, cn as Text, aS as Transaction, bG as TwosetAttributionManager, aZ as UndoManager, U as UpdateDecoderV1, C as UpdateDecoderV2, F as UpdateEncoderV1, H as UpdateEncoderV2, cp as XmlFragment, ct as XmlHook, cv as XmlText, bh as YEvent, ck as cleanupYTextFormatting, y as cloneDoc, aq as compareRelativePositions, bf as convertUpdateFormatV1ToV2, bg as convertUpdateFormatV2ToV1, ap as createAbsolutePositionFromRelativePosition, bK as createAttributionManagerFromDiff, aC as createDocFromSnapshot, a8 as createID, bs as createIdMapFromIdSet, s as createInsertionSetFromStructStore, ag as createRelativePositionFromJSON, ak as createRelativePositionFromTypeIndex, ax as createSnapshot, ao as decodeRelativePosition, aw as decodeSnapshot, av as decodeSnapshotV2, W as decodeStateVector, b1 as decodeUpdate, b2 as decodeUpdateV2, bA as diffIdMap, j as diffIdSet, ay as emptySnapshot, am as encodeRelativePosition, at as encodeSnapshotV2, b6 as encodeStateVectorFromUpdate, b5 as encodeStateVectorFromUpdateV2, as as equalSnapshots, aK as findIndexSS, ab as findRootTypeKey, aM as getItem, aP as getItemCleanEnd, aO as getItemCleanStart, aH as getState, bR as getTypeChildren, ac as isParentOf, i as iterateStructsByIdSet, ad as logType, m as mergeIdSets, bI as noAttributionsManager, bd as obfuscateUpdate, be as obfuscateUpdateV2, O as readUpdate, b8 as readUpdateIdRanges, b7 as readUpdateIdRangesV2, N as readUpdateV2, af as relativePositionToJSON, aE as snapshotContainsUpdate, aX as transact, aW as tryGc, bX as typeListToArraySnapshot, cc as typeMapGetAllSnapshot, cb as typeMapGetSnapshot } from './Skip-B3PEROiW.js'; | ||
| import { bb as diffUpdate, a$ as logUpdate, Q as applyUpdate, b4 as mergeUpdates, T as encodeStateAsUpdate, ba as diffUpdateV2, b0 as logUpdateV2, P as applyUpdateV2, b9 as mergeUpdatesV2, S as encodeStateAsUpdateV2, a7 as compareIDs, D as Doc, cr as YXmlElement, by as createIdMap, n as addToIdSet, p as createIdSet, bm as createAttributionItem, bv as encodeIdMap, bT as AbstractType, $ as encodeStateVector, v as equalIdSets, q as createDeleteSetFromStructStore, au as encodeSnapshot, az as snapshot, d3 as Item } from './Skip-CPEp7KWv.js'; | ||
| export { ah as AbsolutePosition, bF as AbstractAttributionManager, A as AbstractConnector, cx as AbstractStruct, ce as Array, bl as Attribution, cM as ContentAny, cA as ContentBinary, cC as ContentDeleted, cE as ContentDoc, cG as ContentEmbed, cI as ContentFormat, cK as ContentJSON, cO as ContentString, cY as ContentType, bJ as DiffAttributionManager, cz as GC, a6 as ID, bt as IdMap, b as IdSet, cg as Map, ae as RelativePosition, d8 as Skip, ar as Snapshot, cn as Text, aS as Transaction, bG as TwosetAttributionManager, aZ as UndoManager, U as UpdateDecoderV1, C as UpdateDecoderV2, F as UpdateEncoderV1, H as UpdateEncoderV2, cp as XmlFragment, ct as XmlHook, cv as XmlText, bh as YEvent, ck as cleanupYTextFormatting, y as cloneDoc, aq as compareRelativePositions, bf as convertUpdateFormatV1ToV2, bg as convertUpdateFormatV2ToV1, ap as createAbsolutePositionFromRelativePosition, bK as createAttributionManagerFromDiff, aC as createDocFromSnapshot, a8 as createID, bs as createIdMapFromIdSet, s as createInsertionSetFromStructStore, ag as createRelativePositionFromJSON, ak as createRelativePositionFromTypeIndex, ax as createSnapshot, ao as decodeRelativePosition, aw as decodeSnapshot, av as decodeSnapshotV2, W as decodeStateVector, b1 as decodeUpdate, b2 as decodeUpdateV2, bA as diffIdMap, j as diffIdSet, ay as emptySnapshot, am as encodeRelativePosition, at as encodeSnapshotV2, b6 as encodeStateVectorFromUpdate, b5 as encodeStateVectorFromUpdateV2, as as equalSnapshots, aK as findIndexSS, ab as findRootTypeKey, aM as getItem, aP as getItemCleanEnd, aO as getItemCleanStart, aH as getState, bR as getTypeChildren, bz as insertIntoIdMap, g as insertIntoIdSet, ac as isParentOf, i as iterateStructsByIdSet, ad as logType, br as mergeIdMaps, m as mergeIdSets, bI as noAttributionsManager, bd as obfuscateUpdate, be as obfuscateUpdateV2, bw as readIdMap, t as readIdSet, O as readUpdate, b8 as readUpdateIdRanges, b7 as readUpdateIdRangesV2, N as readUpdateV2, af as relativePositionToJSON, aE as snapshotContainsUpdate, aX as transact, aW as tryGc, bX as typeListToArraySnapshot, cc as typeMapGetAllSnapshot, cb as typeMapGetSnapshot } from './Skip-CPEp7KWv.js'; | ||
| import 'lib0/function'; | ||
@@ -478,3 +478,4 @@ import 'lib0/binary'; | ||
| const userMapValues = users.map(u => u.getMap('map').toJSON()); | ||
| users[0].get('xml', YXmlElement); | ||
| // @todo fix type error here | ||
| // @ts-ignore | ||
| const userXmlValues = users.map(u => /** @type {Y.XmlElement} */ (u.get('xml', YXmlElement)).toString()); | ||
@@ -481,0 +482,0 @@ const userTextValues = users.map(u => u.getText('text').getContentDeep()); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"testHelper.mjs","sources":["../tests/testHelper.js"],"sourcesContent":["import * as t from 'lib0/testing'\nimport * as prng from 'lib0/prng'\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as syncProtocol from '@y/protocols/sync'\nimport * as object from 'lib0/object'\nimport * as map from 'lib0/map'\nimport * as Y from '../src/index.js'\nimport * as math from 'lib0/math'\nimport * as list from 'lib0/list'\nimport * as delta from 'lib0/delta'\nimport {\n createIdSet, createIdMap, addToIdSet, encodeIdMap\n} from '../src/internals.js'\n\nexport * from '../src/index.js'\n\nif (typeof window !== 'undefined') {\n // @ts-ignore\n window.Y = Y // eslint-disable-line\n}\n\n/**\n * @param {TestYInstance} y // publish message created by `y` to all other online clients\n * @param {Uint8Array} m\n */\nconst broadcastMessage = (y, m) => {\n if (y.tc.onlineConns.has(y)) {\n y.tc.onlineConns.forEach(remoteYInstance => {\n if (remoteYInstance !== y) {\n remoteYInstance._receive(m, y)\n }\n })\n }\n}\n\nexport let useV2 = false\n\nexport const encV1 = {\n encodeStateAsUpdate: Y.encodeStateAsUpdate,\n mergeUpdates: Y.mergeUpdates,\n applyUpdate: Y.applyUpdate,\n logUpdate: Y.logUpdate,\n updateEventName: /** @type {'update'} */ ('update'),\n diffUpdate: Y.diffUpdate\n}\n\nexport const encV2 = {\n encodeStateAsUpdate: Y.encodeStateAsUpdateV2,\n mergeUpdates: Y.mergeUpdatesV2,\n applyUpdate: Y.applyUpdateV2,\n logUpdate: Y.logUpdateV2,\n updateEventName: /** @type {'updateV2'} */ ('updateV2'),\n diffUpdate: Y.diffUpdateV2\n}\n\nexport let enc = encV1\n\nconst useV1Encoding = () => {\n useV2 = false\n enc = encV1\n}\n\nconst useV2Encoding = () => {\n console.error('sync protocol doesnt support v2 protocol yet, fallback to v1 encoding') // @Todo\n useV2 = false\n enc = encV1\n}\n\nexport class TestYInstance extends Y.Doc {\n /**\n * @param {TestConnector} testConnector\n * @param {number} clientID\n */\n constructor (testConnector, clientID) {\n super()\n this.userID = clientID // overwriting clientID\n /**\n * @type {TestConnector}\n */\n this.tc = testConnector\n /**\n * @type {Map<TestYInstance, Array<Uint8Array>>}\n */\n this.receiving = new Map()\n testConnector.allConns.add(this)\n /**\n * The list of received updates.\n * We are going to merge them later using Y.mergeUpdates and check if the resulting document is correct.\n * @type {Array<Uint8Array<ArrayBuffer>>}\n */\n this.updates = []\n // set up observe on local model\n this.on(enc.updateEventName, (update, origin) => {\n if (origin !== testConnector) {\n const encoder = encoding.createEncoder()\n syncProtocol.writeUpdate(encoder, update)\n broadcastMessage(this, encoding.toUint8Array(encoder))\n }\n this.updates.push(update)\n })\n this.connect()\n }\n\n /**\n * Disconnect from TestConnector.\n */\n disconnect () {\n this.receiving = new Map()\n this.tc.onlineConns.delete(this)\n }\n\n /**\n * Append yourself to the list of known Y instances in testconnector.\n * Also initiate sync with all clients.\n */\n connect () {\n if (!this.tc.onlineConns.has(this)) {\n this.tc.onlineConns.add(this)\n const encoder = encoding.createEncoder()\n syncProtocol.writeSyncStep1(encoder, this)\n // publish SyncStep1\n broadcastMessage(this, encoding.toUint8Array(encoder))\n this.tc.onlineConns.forEach(remoteYInstance => {\n if (remoteYInstance !== this) {\n // remote instance sends instance to this instance\n const encoder = encoding.createEncoder()\n syncProtocol.writeSyncStep1(encoder, remoteYInstance)\n this._receive(encoding.toUint8Array(encoder), remoteYInstance)\n }\n })\n }\n }\n\n /**\n * Receive a message from another client. This message is only appended to the list of receiving messages.\n * TestConnector decides when this client actually reads this message.\n *\n * @param {Uint8Array} message\n * @param {TestYInstance} remoteClient\n */\n _receive (message, remoteClient) {\n map.setIfUndefined(this.receiving, remoteClient, () => /** @type {Array<Uint8Array>} */ ([])).push(message)\n }\n}\n\n/**\n * Keeps track of TestYInstances.\n *\n * The TestYInstances add/remove themselves from the list of connections maiained in this object.\n * I think it makes sense. Deal with it.\n */\nexport class TestConnector {\n /**\n * @param {prng.PRNG} gen\n */\n constructor (gen) {\n /**\n * @type {Set<TestYInstance>}\n */\n this.allConns = new Set()\n /**\n * @type {Set<TestYInstance>}\n */\n this.onlineConns = new Set()\n /**\n * @type {prng.PRNG}\n */\n this.prng = gen\n }\n\n /**\n * Create a new Y instance and add it to the list of connections\n * @param {number} clientID\n */\n createY (clientID) {\n return new TestYInstance(this, clientID)\n }\n\n /**\n * Choose random connection and flush a random message from a random sender.\n *\n * If this function was unable to flush a message, because there are no more messages to flush, it returns false. true otherwise.\n * @return {boolean}\n */\n flushRandomMessage () {\n const gen = this.prng\n const conns = Array.from(this.onlineConns).filter(conn => conn.receiving.size > 0)\n if (conns.length > 0) {\n const receiver = prng.oneOf(gen, conns)\n const [sender, messages] = prng.oneOf(gen, Array.from(receiver.receiving))\n const m = messages.shift()\n if (messages.length === 0) {\n receiver.receiving.delete(sender)\n }\n if (m === undefined) {\n return this.flushRandomMessage()\n }\n const encoder = encoding.createEncoder()\n // console.log('receive (' + sender.userID + '->' + receiver.userID + '):\\n', syncProtocol.stringifySyncMessage(decoding.createDecoder(m), receiver))\n // do not publish data created when this function is executed (could be ss2 or update message)\n syncProtocol.readSyncMessage(decoding.createDecoder(m), encoder, receiver, receiver.tc)\n if (encoding.length(encoder) > 0) {\n // send reply message\n sender._receive(encoding.toUint8Array(encoder), receiver)\n }\n return true\n }\n return false\n }\n\n /**\n * @return {boolean} True iff this function actually flushed something\n */\n flushAllMessages () {\n let didSomething = false\n while (this.flushRandomMessage()) {\n didSomething = true\n }\n return didSomething\n }\n\n reconnectAll () {\n this.allConns.forEach(conn => conn.connect())\n }\n\n disconnectAll () {\n this.allConns.forEach(conn => conn.disconnect())\n }\n\n syncAll () {\n this.reconnectAll()\n this.flushAllMessages()\n }\n\n /**\n * @return {boolean} Whether it was possible to disconnect a random connection.\n */\n disconnectRandom () {\n if (this.onlineConns.size === 0) {\n return false\n }\n prng.oneOf(this.prng, Array.from(this.onlineConns)).disconnect()\n return true\n }\n\n /**\n * @return {boolean} Whether it was possible to reconnect a random connection.\n */\n reconnectRandom () {\n /**\n * @type {Array<TestYInstance>}\n */\n const reconnectable = []\n this.allConns.forEach(conn => {\n if (!this.onlineConns.has(conn)) {\n reconnectable.push(conn)\n }\n })\n if (reconnectable.length === 0) {\n return false\n }\n prng.oneOf(this.prng, reconnectable).connect()\n return true\n }\n}\n\n/**\n * @template T\n * @param {t.TestCase} tc\n * @param {{users?:number}} conf\n * @param {InitTestObjectCallback<T>} [initTestObject]\n * @return {{testObjects:Array<any>,testConnector:TestConnector,users:Array<TestYInstance>,array0:Y.Array<any>,array1:Y.Array<any>,array2:Y.Array<any>,map0:Y.Map<any>,map1:Y.Map<any>,map2:Y.Map<any>,map3:Y.Map<any>,text0:Y.Text,text1:Y.Text,text2:Y.Text,xml0:Y.XmlElement,xml1:Y.XmlElement,xml2:Y.XmlElement}}\n */\nexport const init = (tc, { users = 5 } = {}, initTestObject) => {\n /**\n * @type {Object<string,any>}\n */\n const result = {\n users: []\n }\n const gen = tc.prng\n // choose an encoding approach at random\n if (prng.bool(gen)) {\n useV2Encoding()\n } else {\n useV1Encoding()\n }\n\n const testConnector = new TestConnector(gen)\n result.testConnector = testConnector\n for (let i = 0; i < users; i++) {\n const y = testConnector.createY(i)\n y.clientID = i\n result.users.push(y)\n result['array' + i] = y.getArray('array')\n result['map' + i] = y.getMap('map')\n result['xml' + i] = y.get('xml', Y.XmlElement)\n result['text' + i] = y.getText('text')\n }\n testConnector.syncAll()\n result.testObjects = result.users.map(initTestObject || (() => null))\n useV1Encoding()\n return /** @type {any} */ (result)\n}\n\n/**\n * @param {Y.IdSet} idSet1\n * @param {Y.IdSet} idSet2\n */\nexport const compareIdSets = (idSet1, idSet2) => {\n t.assert(idSet1.clients.size === idSet2.clients.size)\n for (const [client, _items1] of idSet1.clients.entries()) {\n const items1 = _items1.getIds()\n const items2 = idSet2.clients.get(client)?.getIds()\n t.assert(items2 !== undefined && items1.length === items2.length)\n for (let i = 0; i < items1.length; i++) {\n const di1 = items1[i]\n const di2 = /** @type {Array<import('../src/utils/IdSet.js').IdRange>} */ (items2)[i]\n t.assert(di1.clock === di2.clock && di1.len === di2.len)\n }\n }\n return true\n}\n\n/**\n * only use for testing\n *\n * @template T\n * @param {Array<Y.Attribution<T>>} attrs\n * @param {Y.Attribution<T>} attr\n *\n */\nconst _idmapAttrsHas = (attrs, attr) => {\n const hash = attr.hash()\n return attrs.find(a => a.hash() === hash)\n}\n\n/**\n * only use for testing\n *\n * @template T\n * @param {Array<Y.Attribution<T>>} a\n * @param {Array<Y.Attribution<T>>} b\n */\nexport const _idmapAttrsEqual = (a, b) => a.length === b.length && a.every(v => _idmapAttrsHas(b, v))\n\n/**\n * Ensure that all attributes exist. Also create a copy and compare it to the original.\n *\n * @template T\n * @param {Y.IdMap<T>} idmap\n */\nexport const validateIdMap = idmap => {\n const copy = Y.createIdMap()\n idmap.clients.forEach((ranges, client) => {\n ranges.getIds().forEach(range => {\n range.attrs.forEach(attr => {\n t.assert(idmap.attrs.has(attr))\n t.assert(idmap.attrsH.get(attr.hash()) === attr)\n copy.add(client, range.clock, range.len, range.attrs.slice())\n })\n })\n t.assert(copy.clients.get(client)?.getIds().length === ranges.getIds().length)\n })\n t.assert(idmap.attrsH.size === idmap.attrs.size)\n}\n\n/**\n * @template T\n * @param {Y.IdMap<T>} idmap1\n * @param {Y.IdMap<T>} idmap2\n */\nexport const compareIdmaps = (idmap1, idmap2) => {\n t.assert(idmap1.clients.size === idmap2.clients.size)\n for (const [client, _items1] of idmap1.clients.entries()) {\n const items1 = _items1.getIds()\n const items2 = idmap2.clients.get(client)?.getIds()\n t.assert(items2 !== undefined && items1.length === items2.length)\n for (let i = 0; i < items1.length; i++) {\n const di1 = items1[i]\n const di2 = /** @type {Array<import('../src/utils/IdMap.js').AttrRange<T>>} */ (items2)[i]\n t.assert(di1.clock === di2.clock && di1.len === di2.len && _idmapAttrsEqual(di1.attrs, di2.attrs))\n }\n }\n validateIdMap(idmap1)\n validateIdMap(idmap2)\n}\n\n/**\n * @param {prng.PRNG} gen\n * @param {number} clients\n * @param {number} clockRange (max clock - exclusive - by each client)\n */\nexport const createRandomIdSet = (gen, clients, clockRange) => {\n const maxOpLen = 5\n const numOfOps = math.ceil((clients * clockRange) / maxOpLen)\n const idset = createIdSet()\n for (let i = 0; i < numOfOps; i++) {\n const client = prng.uint32(gen, 0, clients - 1)\n const clockStart = prng.uint32(gen, 0, clockRange)\n const len = prng.uint32(gen, 0, clockRange - clockStart)\n addToIdSet(idset, client, clockStart, len)\n }\n if (idset.clients.size === clients && clients > 1 && prng.bool(gen)) {\n idset.clients.delete(prng.uint32(gen, 0, clients))\n }\n return idset\n}\n\n/**\n * @template T\n * @param {prng.PRNG} gen\n * @param {number} clients\n * @param {number} clockRange (max clock - exclusive - by each client)\n * @param {Array<T>} attrChoices (max clock - exclusive - by each client)\n * @return {Y.IdMap<T>}\n */\nexport const createRandomIdMap = (gen, clients, clockRange, attrChoices) => {\n const maxOpLen = 5\n const numOfOps = math.ceil((clients * clockRange) / maxOpLen)\n const idMap = createIdMap()\n for (let i = 0; i < numOfOps; i++) {\n const client = prng.uint32(gen, 0, clients - 1)\n const clockStart = prng.uint32(gen, 0, clockRange)\n const len = prng.uint32(gen, 0, clockRange - clockStart)\n const attrs = [prng.oneOf(gen, attrChoices)]\n // maybe add another attr\n if (prng.bool(gen)) {\n const a = prng.oneOf(gen, attrChoices)\n if (attrs.find(attr => attr === a) == null) {\n attrs.push(a)\n }\n }\n idMap.add(client, clockStart, len, attrs.map(v => Y.createAttributionItem('', v)))\n }\n t.info(`Created IdMap with ${numOfOps} ranges and ${attrChoices.length} different attributes. Encoded size: ${encodeIdMap(idMap).byteLength}`)\n return idMap\n}\n\n/**\n * 1. reconnect and flush all\n * 2. user 0 gc\n * 3. get type content\n * 4. disconnect & reconnect all (so gc is propagated)\n * 5. compare os, ds, ss\n *\n * @param {Array<TestYInstance>} users\n */\nexport const compare = users => {\n users.forEach(u => u.connect())\n while (users[0].tc.flushAllMessages()) {} // eslint-disable-line\n // For each document, merge all received document updates with Y.mergeUpdates and create a new document which will be added to the list of \"users\"\n // This ensures that mergeUpdates works correctly\n const mergedDocs = users.map(user => {\n const ydoc = new Y.Doc()\n enc.applyUpdate(ydoc, enc.mergeUpdates(user.updates))\n return ydoc\n })\n users.push(.../** @type {any} */(mergedDocs))\n const userArrayValues = users.map(u => u.getArray('array').toJSON())\n const userMapValues = users.map(u => u.getMap('map').toJSON())\n const q = users[0].get('xml', Y.XmlElement)\n const userXmlValues = users.map(u => /** @type {Y.XmlElement} */ (u.get('xml', Y.XmlElement)).toString())\n const userTextValues = users.map(u => u.getText('text').getContentDeep())\n for (const u of users) {\n t.assert(u.store.pendingDs === null)\n t.assert(u.store.pendingStructs === null)\n }\n // Test Array iterator\n t.compare(users[0].getArray('array').toArray(), Array.from(users[0].getArray('array')))\n // Test Map iterator\n const ymapkeys = Array.from(users[0].getMap('map').keys())\n t.assert(ymapkeys.length === Object.keys(userMapValues[0]).length)\n ymapkeys.forEach(key => t.assert(object.hasProperty(userMapValues[0], key)))\n /**\n * @type {Object<string,any>}\n */\n const mapRes = {}\n for (const [k, v] of users[0].getMap('map')) {\n mapRes[k] = v instanceof Y.AbstractType ? v.toJSON() : v\n }\n t.compare(userMapValues[0], mapRes)\n // Compare all users\n for (let i = 0; i < users.length - 1; i++) {\n t.compare(userArrayValues[i].length, users[i].getArray('array').length)\n t.compare(userArrayValues[i], userArrayValues[i + 1])\n t.compare(userMapValues[i], userMapValues[i + 1])\n t.compare(userXmlValues[i], userXmlValues[i + 1])\n t.compare(list.toArray(userTextValues[i].children).map(a => (delta.$textOp.check(a) || delta.$insertOp.check(a)) ? a.insert.length : 0).reduce((a, b) => a + b, 0), users[i].getText('text').length)\n t.compare(userTextValues[i], userTextValues[i + 1], '', (_constructor, a, b) => {\n if (a instanceof Y.AbstractType) {\n t.compare(a.toJSON(), b.toJSON())\n } else if (a !== b) {\n t.fail('Deltas dont match')\n }\n return true\n })\n t.compare(Y.encodeStateVector(users[i]), Y.encodeStateVector(users[i + 1]))\n Y.equalIdSets(Y.createDeleteSetFromStructStore(users[i].store), Y.createDeleteSetFromStructStore(users[i + 1].store))\n compareStructStores(users[i].store, users[i + 1].store)\n t.compare(Y.encodeSnapshot(Y.snapshot(users[i])), Y.encodeSnapshot(Y.snapshot(users[i + 1])))\n }\n users.forEach(user => {\n compareIdSets(user.store.ds, Y.createDeleteSetFromStructStore(user.store))\n })\n users.map(u => u.destroy())\n}\n\n/**\n * @param {Y.Item?} a\n * @param {Y.Item?} b\n * @return {boolean}\n */\nexport const compareItemIDs = (a, b) => a === b || (a !== null && b != null && Y.compareIDs(a.id, b.id))\n\n/**\n * @param {import('../src/internals.js').StructStore} ss1\n * @param {import('../src/internals.js').StructStore} ss2\n */\nexport const compareStructStores = (ss1, ss2) => {\n t.assert(ss1.clients.size === ss2.clients.size)\n for (const [client, structs1] of ss1.clients) {\n const structs2 = /** @type {Array<Y.AbstractStruct>} */ (ss2.clients.get(client))\n t.assert(structs2 !== undefined && structs1.length === structs2.length)\n for (let i = 0; i < structs1.length; i++) {\n const s1 = structs1[i]\n const s2 = structs2[i]\n // checks for abstract struct\n if (\n s1.constructor !== s2.constructor ||\n !Y.compareIDs(s1.id, s2.id) ||\n s1.deleted !== s2.deleted ||\n // @ts-ignore\n s1.length !== s2.length\n ) {\n t.fail('Structs dont match')\n }\n if (s1 instanceof Y.Item) {\n if (\n !(s2 instanceof Y.Item) ||\n !((s1.left === null && s2.left === null) || (s1.left !== null && s2.left !== null && Y.compareIDs(s1.left.lastId, s2.left.lastId))) ||\n !compareItemIDs(s1.right, s2.right) ||\n !Y.compareIDs(s1.origin, s2.origin) ||\n !Y.compareIDs(s1.rightOrigin, s2.rightOrigin) ||\n s1.parentSub !== s2.parentSub\n ) {\n return t.fail('Items dont match')\n }\n // make sure that items are connected correctly\n t.assert(s1.left === null || s1.left.right === s1)\n t.assert(s1.right === null || s1.right.left === s1)\n t.assert(s2.left === null || s2.left.right === s2)\n t.assert(s2.right === null || s2.right.left === s2)\n }\n }\n }\n}\n\n/**\n * @template T\n * @callback InitTestObjectCallback\n * @param {TestYInstance} y\n * @return {T}\n */\n\n/**\n * @template T\n * @param {t.TestCase} tc\n * @param {Array<function(Y.Doc,prng.PRNG,T):void>} mods\n * @param {number} iterations\n * @param {InitTestObjectCallback<T>} [initTestObject]\n */\nexport const applyRandomTests = (tc, mods, iterations, initTestObject) => {\n const gen = tc.prng\n const result = init(tc, { users: 5 }, initTestObject)\n const { testConnector, users } = result\n for (let i = 0; i < iterations; i++) {\n if (prng.int32(gen, 0, 100) <= 2) {\n // 2% chance to disconnect/reconnect a random user\n if (prng.bool(gen)) {\n testConnector.disconnectRandom()\n } else {\n testConnector.reconnectRandom()\n }\n } else if (prng.int32(gen, 0, 100) <= 1) {\n // 1% chance to flush all\n testConnector.flushAllMessages()\n } else if (prng.int32(gen, 0, 100) <= 50) {\n // 50% chance to flush a random message\n testConnector.flushRandomMessage()\n }\n const user = prng.int32(gen, 0, users.length - 1)\n const test = prng.oneOf(gen, mods)\n test(users[user], gen, result.testObjects[user])\n }\n compare(users)\n return result\n}\n"],"names":["Y.encodeStateAsUpdate","Y.mergeUpdates","Y.applyUpdate","Y.logUpdate","Y.diffUpdate","Y.encodeStateAsUpdateV2","Y.mergeUpdatesV2","Y.applyUpdateV2","Y.logUpdateV2","Y.diffUpdateV2","Y.Doc","Y.XmlElement","Y.createIdMap","Y.createAttributionItem","Y.AbstractType","Y.encodeStateVector","Y.equalIdSets","Y.createDeleteSetFromStructStore","Y.encodeSnapshot","Y.snapshot","Y.compareIDs","Y.Item"],"mappings":"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"} | ||
| {"version":3,"file":"testHelper.mjs","sources":["../tests/testHelper.js"],"sourcesContent":["import * as t from 'lib0/testing'\nimport * as prng from 'lib0/prng'\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as syncProtocol from '@y/protocols/sync'\nimport * as object from 'lib0/object'\nimport * as map from 'lib0/map'\nimport * as Y from '../src/index.js'\nimport * as math from 'lib0/math'\nimport * as list from 'lib0/list'\nimport * as delta from 'lib0/delta'\nimport {\n createIdSet, createIdMap, addToIdSet, encodeIdMap\n} from '../src/internals.js'\n\nexport * from '../src/index.js'\n\nif (typeof window !== 'undefined') {\n // @ts-ignore\n window.Y = Y // eslint-disable-line\n}\n\n/**\n * @param {TestYInstance} y // publish message created by `y` to all other online clients\n * @param {Uint8Array} m\n */\nconst broadcastMessage = (y, m) => {\n if (y.tc.onlineConns.has(y)) {\n y.tc.onlineConns.forEach(remoteYInstance => {\n if (remoteYInstance !== y) {\n remoteYInstance._receive(m, y)\n }\n })\n }\n}\n\nexport let useV2 = false\n\nexport const encV1 = {\n encodeStateAsUpdate: Y.encodeStateAsUpdate,\n mergeUpdates: Y.mergeUpdates,\n applyUpdate: Y.applyUpdate,\n logUpdate: Y.logUpdate,\n updateEventName: /** @type {'update'} */ ('update'),\n diffUpdate: Y.diffUpdate\n}\n\nexport const encV2 = {\n encodeStateAsUpdate: Y.encodeStateAsUpdateV2,\n mergeUpdates: Y.mergeUpdatesV2,\n applyUpdate: Y.applyUpdateV2,\n logUpdate: Y.logUpdateV2,\n updateEventName: /** @type {'updateV2'} */ ('updateV2'),\n diffUpdate: Y.diffUpdateV2\n}\n\nexport let enc = encV1\n\nconst useV1Encoding = () => {\n useV2 = false\n enc = encV1\n}\n\nconst useV2Encoding = () => {\n console.error('sync protocol doesnt support v2 protocol yet, fallback to v1 encoding') // @Todo\n useV2 = false\n enc = encV1\n}\n\nexport class TestYInstance extends Y.Doc {\n /**\n * @param {TestConnector} testConnector\n * @param {number} clientID\n */\n constructor (testConnector, clientID) {\n super()\n this.userID = clientID // overwriting clientID\n /**\n * @type {TestConnector}\n */\n this.tc = testConnector\n /**\n * @type {Map<TestYInstance, Array<Uint8Array>>}\n */\n this.receiving = new Map()\n testConnector.allConns.add(this)\n /**\n * The list of received updates.\n * We are going to merge them later using Y.mergeUpdates and check if the resulting document is correct.\n * @type {Array<Uint8Array<ArrayBuffer>>}\n */\n this.updates = []\n // set up observe on local model\n this.on(enc.updateEventName, (update, origin) => {\n if (origin !== testConnector) {\n const encoder = encoding.createEncoder()\n syncProtocol.writeUpdate(encoder, update)\n broadcastMessage(this, encoding.toUint8Array(encoder))\n }\n this.updates.push(update)\n })\n this.connect()\n }\n\n /**\n * Disconnect from TestConnector.\n */\n disconnect () {\n this.receiving = new Map()\n this.tc.onlineConns.delete(this)\n }\n\n /**\n * Append yourself to the list of known Y instances in testconnector.\n * Also initiate sync with all clients.\n */\n connect () {\n if (!this.tc.onlineConns.has(this)) {\n this.tc.onlineConns.add(this)\n const encoder = encoding.createEncoder()\n syncProtocol.writeSyncStep1(encoder, this)\n // publish SyncStep1\n broadcastMessage(this, encoding.toUint8Array(encoder))\n this.tc.onlineConns.forEach(remoteYInstance => {\n if (remoteYInstance !== this) {\n // remote instance sends instance to this instance\n const encoder = encoding.createEncoder()\n syncProtocol.writeSyncStep1(encoder, remoteYInstance)\n this._receive(encoding.toUint8Array(encoder), remoteYInstance)\n }\n })\n }\n }\n\n /**\n * Receive a message from another client. This message is only appended to the list of receiving messages.\n * TestConnector decides when this client actually reads this message.\n *\n * @param {Uint8Array} message\n * @param {TestYInstance} remoteClient\n */\n _receive (message, remoteClient) {\n map.setIfUndefined(this.receiving, remoteClient, () => /** @type {Array<Uint8Array>} */ ([])).push(message)\n }\n}\n\n/**\n * Keeps track of TestYInstances.\n *\n * The TestYInstances add/remove themselves from the list of connections maiained in this object.\n * I think it makes sense. Deal with it.\n */\nexport class TestConnector {\n /**\n * @param {prng.PRNG} gen\n */\n constructor (gen) {\n /**\n * @type {Set<TestYInstance>}\n */\n this.allConns = new Set()\n /**\n * @type {Set<TestYInstance>}\n */\n this.onlineConns = new Set()\n /**\n * @type {prng.PRNG}\n */\n this.prng = gen\n }\n\n /**\n * Create a new Y instance and add it to the list of connections\n * @param {number} clientID\n */\n createY (clientID) {\n return new TestYInstance(this, clientID)\n }\n\n /**\n * Choose random connection and flush a random message from a random sender.\n *\n * If this function was unable to flush a message, because there are no more messages to flush, it returns false. true otherwise.\n * @return {boolean}\n */\n flushRandomMessage () {\n const gen = this.prng\n const conns = Array.from(this.onlineConns).filter(conn => conn.receiving.size > 0)\n if (conns.length > 0) {\n const receiver = prng.oneOf(gen, conns)\n const [sender, messages] = prng.oneOf(gen, Array.from(receiver.receiving))\n const m = messages.shift()\n if (messages.length === 0) {\n receiver.receiving.delete(sender)\n }\n if (m === undefined) {\n return this.flushRandomMessage()\n }\n const encoder = encoding.createEncoder()\n // console.log('receive (' + sender.userID + '->' + receiver.userID + '):\\n', syncProtocol.stringifySyncMessage(decoding.createDecoder(m), receiver))\n // do not publish data created when this function is executed (could be ss2 or update message)\n syncProtocol.readSyncMessage(decoding.createDecoder(m), encoder, receiver, receiver.tc)\n if (encoding.length(encoder) > 0) {\n // send reply message\n sender._receive(encoding.toUint8Array(encoder), receiver)\n }\n return true\n }\n return false\n }\n\n /**\n * @return {boolean} True iff this function actually flushed something\n */\n flushAllMessages () {\n let didSomething = false\n while (this.flushRandomMessage()) {\n didSomething = true\n }\n return didSomething\n }\n\n reconnectAll () {\n this.allConns.forEach(conn => conn.connect())\n }\n\n disconnectAll () {\n this.allConns.forEach(conn => conn.disconnect())\n }\n\n syncAll () {\n this.reconnectAll()\n this.flushAllMessages()\n }\n\n /**\n * @return {boolean} Whether it was possible to disconnect a random connection.\n */\n disconnectRandom () {\n if (this.onlineConns.size === 0) {\n return false\n }\n prng.oneOf(this.prng, Array.from(this.onlineConns)).disconnect()\n return true\n }\n\n /**\n * @return {boolean} Whether it was possible to reconnect a random connection.\n */\n reconnectRandom () {\n /**\n * @type {Array<TestYInstance>}\n */\n const reconnectable = []\n this.allConns.forEach(conn => {\n if (!this.onlineConns.has(conn)) {\n reconnectable.push(conn)\n }\n })\n if (reconnectable.length === 0) {\n return false\n }\n prng.oneOf(this.prng, reconnectable).connect()\n return true\n }\n}\n\n/**\n * @template T\n * @param {t.TestCase} tc\n * @param {{users?:number}} conf\n * @param {InitTestObjectCallback<T>} [initTestObject]\n * @return {{testObjects:Array<any>,testConnector:TestConnector,users:Array<TestYInstance>,array0:Y.Array<any>,array1:Y.Array<any>,array2:Y.Array<any>,map0:Y.Map<any>,map1:Y.Map<any>,map2:Y.Map<any>,map3:Y.Map<any>,text0:Y.Text,text1:Y.Text,text2:Y.Text,xml0:Y.XmlElement,xml1:Y.XmlElement,xml2:Y.XmlElement}}\n */\nexport const init = (tc, { users = 5 } = {}, initTestObject) => {\n /**\n * @type {Object<string,any>}\n */\n const result = {\n users: []\n }\n const gen = tc.prng\n // choose an encoding approach at random\n if (prng.bool(gen)) {\n useV2Encoding()\n } else {\n useV1Encoding()\n }\n\n const testConnector = new TestConnector(gen)\n result.testConnector = testConnector\n for (let i = 0; i < users; i++) {\n const y = testConnector.createY(i)\n y.clientID = i\n result.users.push(y)\n result['array' + i] = y.getArray('array')\n result['map' + i] = y.getMap('map')\n result['xml' + i] = y.get('xml', Y.XmlElement)\n result['text' + i] = y.getText('text')\n }\n testConnector.syncAll()\n result.testObjects = result.users.map(initTestObject || (() => null))\n useV1Encoding()\n return /** @type {any} */ (result)\n}\n\n/**\n * @param {Y.IdSet} idSet1\n * @param {Y.IdSet} idSet2\n */\nexport const compareIdSets = (idSet1, idSet2) => {\n t.assert(idSet1.clients.size === idSet2.clients.size)\n for (const [client, _items1] of idSet1.clients.entries()) {\n const items1 = _items1.getIds()\n const items2 = idSet2.clients.get(client)?.getIds()\n t.assert(items2 !== undefined && items1.length === items2.length)\n for (let i = 0; i < items1.length; i++) {\n const di1 = items1[i]\n const di2 = /** @type {Array<import('../src/utils/IdSet.js').IdRange>} */ (items2)[i]\n t.assert(di1.clock === di2.clock && di1.len === di2.len)\n }\n }\n return true\n}\n\n/**\n * only use for testing\n *\n * @template T\n * @param {Array<Y.Attribution<T>>} attrs\n * @param {Y.Attribution<T>} attr\n *\n */\nconst _idmapAttrsHas = (attrs, attr) => {\n const hash = attr.hash()\n return attrs.find(a => a.hash() === hash)\n}\n\n/**\n * only use for testing\n *\n * @template T\n * @param {Array<Y.Attribution<T>>} a\n * @param {Array<Y.Attribution<T>>} b\n */\nexport const _idmapAttrsEqual = (a, b) => a.length === b.length && a.every(v => _idmapAttrsHas(b, v))\n\n/**\n * Ensure that all attributes exist. Also create a copy and compare it to the original.\n *\n * @template T\n * @param {Y.IdMap<T>} idmap\n */\nexport const validateIdMap = idmap => {\n const copy = Y.createIdMap()\n idmap.clients.forEach((ranges, client) => {\n ranges.getIds().forEach(range => {\n range.attrs.forEach(attr => {\n t.assert(idmap.attrs.has(attr))\n t.assert(idmap.attrsH.get(attr.hash()) === attr)\n copy.add(client, range.clock, range.len, range.attrs.slice())\n })\n })\n t.assert(copy.clients.get(client)?.getIds().length === ranges.getIds().length)\n })\n t.assert(idmap.attrsH.size === idmap.attrs.size)\n}\n\n/**\n * @template T\n * @param {Y.IdMap<T>} idmap1\n * @param {Y.IdMap<T>} idmap2\n */\nexport const compareIdmaps = (idmap1, idmap2) => {\n t.assert(idmap1.clients.size === idmap2.clients.size)\n for (const [client, _items1] of idmap1.clients.entries()) {\n const items1 = _items1.getIds()\n const items2 = idmap2.clients.get(client)?.getIds()\n t.assert(items2 !== undefined && items1.length === items2.length)\n for (let i = 0; i < items1.length; i++) {\n const di1 = items1[i]\n const di2 = /** @type {Array<import('../src/utils/IdMap.js').AttrRange<T>>} */ (items2)[i]\n t.assert(di1.clock === di2.clock && di1.len === di2.len && _idmapAttrsEqual(di1.attrs, di2.attrs))\n }\n }\n validateIdMap(idmap1)\n validateIdMap(idmap2)\n}\n\n/**\n * @param {prng.PRNG} gen\n * @param {number} clients\n * @param {number} clockRange (max clock - exclusive - by each client)\n */\nexport const createRandomIdSet = (gen, clients, clockRange) => {\n const maxOpLen = 5\n const numOfOps = math.ceil((clients * clockRange) / maxOpLen)\n const idset = createIdSet()\n for (let i = 0; i < numOfOps; i++) {\n const client = prng.uint32(gen, 0, clients - 1)\n const clockStart = prng.uint32(gen, 0, clockRange)\n const len = prng.uint32(gen, 0, clockRange - clockStart)\n addToIdSet(idset, client, clockStart, len)\n }\n if (idset.clients.size === clients && clients > 1 && prng.bool(gen)) {\n idset.clients.delete(prng.uint32(gen, 0, clients))\n }\n return idset\n}\n\n/**\n * @template T\n * @param {prng.PRNG} gen\n * @param {number} clients\n * @param {number} clockRange (max clock - exclusive - by each client)\n * @param {Array<T>} attrChoices (max clock - exclusive - by each client)\n * @return {Y.IdMap<T>}\n */\nexport const createRandomIdMap = (gen, clients, clockRange, attrChoices) => {\n const maxOpLen = 5\n const numOfOps = math.ceil((clients * clockRange) / maxOpLen)\n const idMap = createIdMap()\n for (let i = 0; i < numOfOps; i++) {\n const client = prng.uint32(gen, 0, clients - 1)\n const clockStart = prng.uint32(gen, 0, clockRange)\n const len = prng.uint32(gen, 0, clockRange - clockStart)\n const attrs = [prng.oneOf(gen, attrChoices)]\n // maybe add another attr\n if (prng.bool(gen)) {\n const a = prng.oneOf(gen, attrChoices)\n if (attrs.find(attr => attr === a) == null) {\n attrs.push(a)\n }\n }\n idMap.add(client, clockStart, len, attrs.map(v => Y.createAttributionItem('', v)))\n }\n t.info(`Created IdMap with ${numOfOps} ranges and ${attrChoices.length} different attributes. Encoded size: ${encodeIdMap(idMap).byteLength}`)\n return idMap\n}\n\n/**\n * 1. reconnect and flush all\n * 2. user 0 gc\n * 3. get type content\n * 4. disconnect & reconnect all (so gc is propagated)\n * 5. compare os, ds, ss\n *\n * @param {Array<TestYInstance>} users\n */\nexport const compare = users => {\n users.forEach(u => u.connect())\n while (users[0].tc.flushAllMessages()) {} // eslint-disable-line\n // For each document, merge all received document updates with Y.mergeUpdates and create a new document which will be added to the list of \"users\"\n // This ensures that mergeUpdates works correctly\n const mergedDocs = users.map(user => {\n const ydoc = new Y.Doc()\n enc.applyUpdate(ydoc, enc.mergeUpdates(user.updates))\n return ydoc\n })\n users.push(.../** @type {any} */(mergedDocs))\n const userArrayValues = users.map(u => u.getArray('array').toJSON())\n const userMapValues = users.map(u => u.getMap('map').toJSON())\n // @todo fix type error here\n // @ts-ignore\n const userXmlValues = users.map(u => /** @type {Y.XmlElement} */ (u.get('xml', Y.XmlElement)).toString())\n const userTextValues = users.map(u => u.getText('text').getContentDeep())\n for (const u of users) {\n t.assert(u.store.pendingDs === null)\n t.assert(u.store.pendingStructs === null)\n }\n // Test Array iterator\n t.compare(users[0].getArray('array').toArray(), Array.from(users[0].getArray('array')))\n // Test Map iterator\n const ymapkeys = Array.from(users[0].getMap('map').keys())\n t.assert(ymapkeys.length === Object.keys(userMapValues[0]).length)\n ymapkeys.forEach(key => t.assert(object.hasProperty(userMapValues[0], key)))\n /**\n * @type {Object<string,any>}\n */\n const mapRes = {}\n for (const [k, v] of users[0].getMap('map')) {\n mapRes[k] = v instanceof Y.AbstractType ? v.toJSON() : v\n }\n t.compare(userMapValues[0], mapRes)\n // Compare all users\n for (let i = 0; i < users.length - 1; i++) {\n t.compare(userArrayValues[i].length, users[i].getArray('array').length)\n t.compare(userArrayValues[i], userArrayValues[i + 1])\n t.compare(userMapValues[i], userMapValues[i + 1])\n t.compare(userXmlValues[i], userXmlValues[i + 1])\n t.compare(list.toArray(userTextValues[i].children).map(a => (delta.$textOp.check(a) || delta.$insertOp.check(a)) ? a.insert.length : 0).reduce((a, b) => a + b, 0), users[i].getText('text').length)\n t.compare(userTextValues[i], userTextValues[i + 1], '', (_constructor, a, b) => {\n if (a instanceof Y.AbstractType) {\n t.compare(a.toJSON(), b.toJSON())\n } else if (a !== b) {\n t.fail('Deltas dont match')\n }\n return true\n })\n t.compare(Y.encodeStateVector(users[i]), Y.encodeStateVector(users[i + 1]))\n Y.equalIdSets(Y.createDeleteSetFromStructStore(users[i].store), Y.createDeleteSetFromStructStore(users[i + 1].store))\n compareStructStores(users[i].store, users[i + 1].store)\n t.compare(Y.encodeSnapshot(Y.snapshot(users[i])), Y.encodeSnapshot(Y.snapshot(users[i + 1])))\n }\n users.forEach(user => {\n compareIdSets(user.store.ds, Y.createDeleteSetFromStructStore(user.store))\n })\n users.map(u => u.destroy())\n}\n\n/**\n * @param {Y.Item?} a\n * @param {Y.Item?} b\n * @return {boolean}\n */\nexport const compareItemIDs = (a, b) => a === b || (a !== null && b != null && Y.compareIDs(a.id, b.id))\n\n/**\n * @param {import('../src/internals.js').StructStore} ss1\n * @param {import('../src/internals.js').StructStore} ss2\n */\nexport const compareStructStores = (ss1, ss2) => {\n t.assert(ss1.clients.size === ss2.clients.size)\n for (const [client, structs1] of ss1.clients) {\n const structs2 = /** @type {Array<Y.AbstractStruct>} */ (ss2.clients.get(client))\n t.assert(structs2 !== undefined && structs1.length === structs2.length)\n for (let i = 0; i < structs1.length; i++) {\n const s1 = structs1[i]\n const s2 = structs2[i]\n // checks for abstract struct\n if (\n s1.constructor !== s2.constructor ||\n !Y.compareIDs(s1.id, s2.id) ||\n s1.deleted !== s2.deleted ||\n // @ts-ignore\n s1.length !== s2.length\n ) {\n t.fail('Structs dont match')\n }\n if (s1 instanceof Y.Item) {\n if (\n !(s2 instanceof Y.Item) ||\n !((s1.left === null && s2.left === null) || (s1.left !== null && s2.left !== null && Y.compareIDs(s1.left.lastId, s2.left.lastId))) ||\n !compareItemIDs(s1.right, s2.right) ||\n !Y.compareIDs(s1.origin, s2.origin) ||\n !Y.compareIDs(s1.rightOrigin, s2.rightOrigin) ||\n s1.parentSub !== s2.parentSub\n ) {\n return t.fail('Items dont match')\n }\n // make sure that items are connected correctly\n t.assert(s1.left === null || s1.left.right === s1)\n t.assert(s1.right === null || s1.right.left === s1)\n t.assert(s2.left === null || s2.left.right === s2)\n t.assert(s2.right === null || s2.right.left === s2)\n }\n }\n }\n}\n\n/**\n * @template T\n * @callback InitTestObjectCallback\n * @param {TestYInstance} y\n * @return {T}\n */\n\n/**\n * @template T\n * @param {t.TestCase} tc\n * @param {Array<function(Y.Doc,prng.PRNG,T):void>} mods\n * @param {number} iterations\n * @param {InitTestObjectCallback<T>} [initTestObject]\n */\nexport const applyRandomTests = (tc, mods, iterations, initTestObject) => {\n const gen = tc.prng\n const result = init(tc, { users: 5 }, initTestObject)\n const { testConnector, users } = result\n for (let i = 0; i < iterations; i++) {\n if (prng.int32(gen, 0, 100) <= 2) {\n // 2% chance to disconnect/reconnect a random user\n if (prng.bool(gen)) {\n testConnector.disconnectRandom()\n } else {\n testConnector.reconnectRandom()\n }\n } else if (prng.int32(gen, 0, 100) <= 1) {\n // 1% chance to flush all\n testConnector.flushAllMessages()\n } else if (prng.int32(gen, 0, 100) <= 50) {\n // 50% chance to flush a random message\n testConnector.flushRandomMessage()\n }\n const user = prng.int32(gen, 0, users.length - 1)\n const test = prng.oneOf(gen, mods)\n test(users[user], gen, result.testObjects[user])\n }\n compare(users)\n return result\n}\n"],"names":["Y.encodeStateAsUpdate","Y.mergeUpdates","Y.applyUpdate","Y.logUpdate","Y.diffUpdate","Y.encodeStateAsUpdateV2","Y.mergeUpdatesV2","Y.applyUpdateV2","Y.logUpdateV2","Y.diffUpdateV2","Y.Doc","Y.XmlElement","Y.createIdMap","Y.createAttributionItem","Y.AbstractType","Y.encodeStateVector","Y.equalIdSets","Y.createDeleteSetFromStructStore","Y.encodeSnapshot","Y.snapshot","Y.compareIDs","Y.Item"],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"testHelper.d.ts","sourceRoot":"","sources":["../../tests/testHelper.js"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"testHelper.d.ts","sourceRoot":"","sources":["../../tests/testHelper.js"],"names":[],"mappings":"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"} |
+7
-2
| 'use strict'; | ||
| var Skip = require('./Skip-C-88Cnkq.js'); | ||
| var Skip = require('./Skip-vvIEGjAV.js'); | ||
| require('lib0/function'); | ||
@@ -8,3 +8,3 @@ require('lib0/decoding'); | ||
| require('lib0/map'); | ||
| require('./index-DHAwYOkK.js'); | ||
| require('./index-DCSYR1ho.js'); | ||
| require('lib0/observable'); | ||
@@ -122,2 +122,4 @@ require('lib0/array'); | ||
| exports.getTypeChildren = Skip.getTypeChildren; | ||
| exports.insertIntoIdMap = Skip.insertIntoIdMap; | ||
| exports.insertIntoIdSet = Skip.insertIntoIdSet; | ||
| exports.isParentOf = Skip.isParentOf; | ||
@@ -128,2 +130,3 @@ exports.iterateStructsByIdSet = Skip.iterateStructsByIdSet; | ||
| exports.logUpdateV2 = Skip.logUpdateV2; | ||
| exports.mergeIdMaps = Skip.mergeIdMaps; | ||
| exports.mergeIdSets = Skip.mergeIdSets; | ||
@@ -135,2 +138,4 @@ exports.mergeUpdates = Skip.mergeUpdates; | ||
| exports.obfuscateUpdateV2 = Skip.obfuscateUpdateV2; | ||
| exports.readIdMap = Skip.readIdMap; | ||
| exports.readIdSet = Skip.readIdSet; | ||
| exports.readUpdate = Skip.readUpdate; | ||
@@ -137,0 +142,0 @@ exports.readUpdateIdRanges = Skip.readUpdateIdRanges; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"yjs.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} | ||
| {"version":3,"file":"yjs.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} |
+2
-2
@@ -1,2 +0,2 @@ | ||
| export { ah as AbsolutePosition, bF as AbstractAttributionManager, A as AbstractConnector, cx as AbstractStruct, bT as AbstractType, ce as Array, bl as Attribution, cM as ContentAny, cA as ContentBinary, cC as ContentDeleted, cE as ContentDoc, cG as ContentEmbed, cI as ContentFormat, cK as ContentJSON, cO as ContentString, cY as ContentType, bJ as DiffAttributionManager, D as Doc, cz as GC, a6 as ID, bt as IdMap, b as IdSet, d3 as Item, cg as Map, ae as RelativePosition, d8 as Skip, ar as Snapshot, cn as Text, aS as Transaction, bG as TwosetAttributionManager, aZ as UndoManager, U as UpdateDecoderV1, C as UpdateDecoderV2, F as UpdateEncoderV1, H as UpdateEncoderV2, cr as XmlElement, cp as XmlFragment, ct as XmlHook, cv as XmlText, bh as YEvent, Q as applyUpdate, P as applyUpdateV2, ck as cleanupYTextFormatting, y as cloneDoc, a7 as compareIDs, aq as compareRelativePositions, bf as convertUpdateFormatV1ToV2, bg as convertUpdateFormatV2ToV1, ap as createAbsolutePositionFromRelativePosition, bm as createAttributionItem, bK as createAttributionManagerFromDiff, q as createDeleteSetFromStructStore, aC as createDocFromSnapshot, a8 as createID, by as createIdMap, bs as createIdMapFromIdSet, p as createIdSet, s as createInsertionSetFromStructStore, ag as createRelativePositionFromJSON, ak as createRelativePositionFromTypeIndex, ax as createSnapshot, ao as decodeRelativePosition, aw as decodeSnapshot, av as decodeSnapshotV2, W as decodeStateVector, b1 as decodeUpdate, b2 as decodeUpdateV2, bA as diffIdMap, j as diffIdSet, bb as diffUpdate, ba as diffUpdateV2, ay as emptySnapshot, bv as encodeIdMap, am as encodeRelativePosition, au as encodeSnapshot, at as encodeSnapshotV2, T as encodeStateAsUpdate, S as encodeStateAsUpdateV2, $ as encodeStateVector, b6 as encodeStateVectorFromUpdate, b5 as encodeStateVectorFromUpdateV2, v as equalIdSets, as as equalSnapshots, aK as findIndexSS, ab as findRootTypeKey, aM as getItem, aP as getItemCleanEnd, aO as getItemCleanStart, aH as getState, bR as getTypeChildren, ac as isParentOf, i as iterateStructsByIdSet, ad as logType, a$ as logUpdate, b0 as logUpdateV2, m as mergeIdSets, b4 as mergeUpdates, b9 as mergeUpdatesV2, bI as noAttributionsManager, bd as obfuscateUpdate, be as obfuscateUpdateV2, O as readUpdate, b8 as readUpdateIdRanges, b7 as readUpdateIdRangesV2, N as readUpdateV2, af as relativePositionToJSON, az as snapshot, aE as snapshotContainsUpdate, aX as transact, aW as tryGc, bX as typeListToArraySnapshot, cc as typeMapGetAllSnapshot, cb as typeMapGetSnapshot } from './Skip-B3PEROiW.js'; | ||
| export { ah as AbsolutePosition, bF as AbstractAttributionManager, A as AbstractConnector, cx as AbstractStruct, bT as AbstractType, ce as Array, bl as Attribution, cM as ContentAny, cA as ContentBinary, cC as ContentDeleted, cE as ContentDoc, cG as ContentEmbed, cI as ContentFormat, cK as ContentJSON, cO as ContentString, cY as ContentType, bJ as DiffAttributionManager, D as Doc, cz as GC, a6 as ID, bt as IdMap, b as IdSet, d3 as Item, cg as Map, ae as RelativePosition, d8 as Skip, ar as Snapshot, cn as Text, aS as Transaction, bG as TwosetAttributionManager, aZ as UndoManager, U as UpdateDecoderV1, C as UpdateDecoderV2, F as UpdateEncoderV1, H as UpdateEncoderV2, cr as XmlElement, cp as XmlFragment, ct as XmlHook, cv as XmlText, bh as YEvent, Q as applyUpdate, P as applyUpdateV2, ck as cleanupYTextFormatting, y as cloneDoc, a7 as compareIDs, aq as compareRelativePositions, bf as convertUpdateFormatV1ToV2, bg as convertUpdateFormatV2ToV1, ap as createAbsolutePositionFromRelativePosition, bm as createAttributionItem, bK as createAttributionManagerFromDiff, q as createDeleteSetFromStructStore, aC as createDocFromSnapshot, a8 as createID, by as createIdMap, bs as createIdMapFromIdSet, p as createIdSet, s as createInsertionSetFromStructStore, ag as createRelativePositionFromJSON, ak as createRelativePositionFromTypeIndex, ax as createSnapshot, ao as decodeRelativePosition, aw as decodeSnapshot, av as decodeSnapshotV2, W as decodeStateVector, b1 as decodeUpdate, b2 as decodeUpdateV2, bA as diffIdMap, j as diffIdSet, bb as diffUpdate, ba as diffUpdateV2, ay as emptySnapshot, bv as encodeIdMap, am as encodeRelativePosition, au as encodeSnapshot, at as encodeSnapshotV2, T as encodeStateAsUpdate, S as encodeStateAsUpdateV2, $ as encodeStateVector, b6 as encodeStateVectorFromUpdate, b5 as encodeStateVectorFromUpdateV2, v as equalIdSets, as as equalSnapshots, aK as findIndexSS, ab as findRootTypeKey, aM as getItem, aP as getItemCleanEnd, aO as getItemCleanStart, aH as getState, bR as getTypeChildren, bz as insertIntoIdMap, g as insertIntoIdSet, ac as isParentOf, i as iterateStructsByIdSet, ad as logType, a$ as logUpdate, b0 as logUpdateV2, br as mergeIdMaps, m as mergeIdSets, b4 as mergeUpdates, b9 as mergeUpdatesV2, bI as noAttributionsManager, bd as obfuscateUpdate, be as obfuscateUpdateV2, bw as readIdMap, t as readIdSet, O as readUpdate, b8 as readUpdateIdRanges, b7 as readUpdateIdRangesV2, N as readUpdateV2, af as relativePositionToJSON, az as snapshot, aE as snapshotContainsUpdate, aX as transact, aW as tryGc, bX as typeListToArraySnapshot, cc as typeMapGetAllSnapshot, cb as typeMapGetSnapshot } from './Skip-CPEp7KWv.js'; | ||
| import 'lib0/function'; | ||
@@ -6,3 +6,3 @@ import 'lib0/decoding'; | ||
| import 'lib0/map'; | ||
| import './index-C421fONL.js'; | ||
| import './index-RXUm_nlS.js'; | ||
| import 'lib0/observable'; | ||
@@ -9,0 +9,0 @@ import 'lib0/array'; |
+3
-3
| { | ||
| "name": "yjs", | ||
| "version": "14.0.0-11", | ||
| "version": "14.0.0-12", | ||
| "description": "Shared Editing Library", | ||
@@ -18,3 +18,3 @@ "main": "./dist/yjs.cjs", | ||
| "test-extensive": "node ./tests/index.js --production --repetition-time 10000", | ||
| "dist": "npm run clean && rollup -c && tsc --skipLibCheck", | ||
| "dist": "npm run clean && rollup -c && (tsc || true)", | ||
| "watch": "rollup -wc", | ||
@@ -86,3 +86,3 @@ "lint": "markdownlint README.md && standard && tsc", | ||
| "dependencies": { | ||
| "lib0": "^0.2.115-2" | ||
| "lib0": "^0.2.115-4" | ||
| }, | ||
@@ -89,0 +89,0 @@ "devDependencies": { |
+6
-1
@@ -117,3 +117,8 @@ /** eslint-env browser */ | ||
| readUpdateIdRanges, | ||
| readUpdateIdRangesV2 | ||
| readUpdateIdRangesV2, | ||
| insertIntoIdMap, | ||
| insertIntoIdSet, | ||
| mergeIdMaps, | ||
| readIdMap, | ||
| readIdSet | ||
| } from './internals.js' | ||
@@ -120,0 +125,0 @@ |
@@ -687,3 +687,3 @@ import { | ||
| } | ||
| return /** @type {any} */ (d.done()) | ||
| return /** @type {any} */ (d.done(false)) | ||
| } | ||
@@ -690,0 +690,0 @@ |
@@ -19,2 +19,3 @@ import { | ||
| /** | ||
| * @todo rename this to `Attribute` | ||
| * @template V | ||
@@ -51,2 +52,3 @@ */ | ||
| /** | ||
| * @todo rename this to `createAttribute` | ||
| * @template V | ||
@@ -53,0 +55,0 @@ * @param {string} name |
@@ -136,3 +136,3 @@ import { | ||
| get delta () { | ||
| return /** @type {any} */ (this._delta ?? (this._delta = this.getDelta())) | ||
| return /** @type {any} */ (this._delta ?? (this._delta = this.getDelta().done())) | ||
| } | ||
@@ -139,0 +139,0 @@ |
@@ -463,3 +463,4 @@ import * as t from 'lib0/testing' | ||
| const userMapValues = users.map(u => u.getMap('map').toJSON()) | ||
| const q = users[0].get('xml', Y.XmlElement) | ||
| // @todo fix type error here | ||
| // @ts-ignore | ||
| const userXmlValues = users.map(u => /** @type {Y.XmlElement} */ (u.get('xml', Y.XmlElement)).toString()) | ||
@@ -466,0 +467,0 @@ const userTextValues = users.map(u => u.getText('text').getContentDeep()) |
| import { ah as AbsolutePosition, bF as AbstractAttributionManager, A as AbstractConnector, cx as AbstractStruct, bT as AbstractType, ce as YArray, bl as AttributionItem, cM as ContentAny, cA as ContentBinary, cC as ContentDeleted, cE as ContentDoc, cG as ContentEmbed, cI as ContentFormat, cK as ContentJSON, cO as ContentString, cY as ContentType, bJ as DiffAttributionManager, D as Doc, cz as GC, a6 as ID, bt as IdMap, b as IdSet, d3 as Item, cg as YMap, ae as RelativePosition, d8 as Skip, ar as Snapshot, cn as YText, aS as Transaction, bG as TwosetAttributionManager, aZ as UndoManager, U as UpdateDecoderV1, C as UpdateDecoderV2, F as UpdateEncoderV1, H as UpdateEncoderV2, cr as YXmlElement, cp as YXmlFragment, ct as YXmlHook, cv as YXmlText, bh as YEvent, Q as applyUpdate, P as applyUpdateV2, ck as cleanupYTextFormatting, y as cloneDoc, a7 as compareIDs, aq as compareRelativePositions, bf as convertUpdateFormatV1ToV2, bg as convertUpdateFormatV2ToV1, ap as createAbsolutePositionFromRelativePosition, bm as createAttributionItem, bK as createAttributionManagerFromDiff, q as createDeleteSetFromStructStore, aC as createDocFromSnapshot, a8 as createID, by as createIdMap, bs as createIdMapFromIdSet, p as createIdSet, s as createInsertSetFromStructStore, ag as createRelativePositionFromJSON, ak as createRelativePositionFromTypeIndex, ax as createSnapshot, ao as decodeRelativePosition, aw as decodeSnapshot, av as decodeSnapshotV2, W as decodeStateVector, b1 as decodeUpdate, b2 as decodeUpdateV2, bA as diffIdMap, j as diffIdSet, bb as diffUpdate, ba as diffUpdateV2, ay as emptySnapshot, bv as encodeIdMap, am as encodeRelativePosition, au as encodeSnapshot, at as encodeSnapshotV2, T as encodeStateAsUpdate, S as encodeStateAsUpdateV2, $ as encodeStateVector, b6 as encodeStateVectorFromUpdate, b5 as encodeStateVectorFromUpdateV2, v as equalIdSets, as as equalSnapshots, aK as findIndexSS, ab as findRootTypeKey, aM as getItem, aP as getItemCleanEnd, aO as getItemCleanStart, aH as getState, bR as getTypeChildren, ac as isParentOf, i as iterateStructsByIdSet, ad as logType, a$ as logUpdate, b0 as logUpdateV2, m as mergeIdSets, b4 as mergeUpdates, b9 as mergeUpdatesV2, bI as noAttributionsManager, bd as obfuscateUpdate, be as obfuscateUpdateV2, O as readUpdate, b8 as readUpdateIdRanges, b7 as readUpdateIdRangesV2, N as readUpdateV2, af as relativePositionToJSON, az as snapshot, aE as snapshotContainsUpdate, aX as transact, aW as tryGc, bX as typeListToArraySnapshot, cc as typeMapGetAllSnapshot, cb as typeMapGetSnapshot } from './Skip-B3PEROiW.js'; | ||
| import 'lib0/function'; | ||
| import 'lib0/decoding'; | ||
| import 'lib0/binary'; | ||
| import 'lib0/map'; | ||
| /** eslint-env browser */ | ||
| const glo = /** @type {any} */ (typeof globalThis !== 'undefined' | ||
| ? globalThis | ||
| : typeof window !== 'undefined' | ||
| ? window | ||
| // @ts-ignore | ||
| : typeof global !== 'undefined' ? global : {}); | ||
| const importIdentifier = '__ $YJS$ __'; | ||
| if (glo[importIdentifier] === true) { | ||
| /** | ||
| * Dear reader of this message. Please take this seriously. | ||
| * | ||
| * If you see this message, make sure that you only import one version of Yjs. In many cases, | ||
| * your package manager installs two versions of Yjs that are used by different packages within your project. | ||
| * Another reason for this message is that some parts of your project use the commonjs version of Yjs | ||
| * and others use the EcmaScript version of Yjs. | ||
| * | ||
| * This often leads to issues that are hard to debug. We often need to perform constructor checks, | ||
| * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to | ||
| * do the constructor checks anymore - which might break the CRDT algorithm. | ||
| * | ||
| * https://github.com/yjs/yjs/issues/438 | ||
| */ | ||
| console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438'); | ||
| } | ||
| glo[importIdentifier] = true; | ||
| var Y = /*#__PURE__*/Object.freeze({ | ||
| __proto__: null, | ||
| AbsolutePosition: AbsolutePosition, | ||
| AbstractAttributionManager: AbstractAttributionManager, | ||
| AbstractConnector: AbstractConnector, | ||
| AbstractStruct: AbstractStruct, | ||
| AbstractType: AbstractType, | ||
| Array: YArray, | ||
| Attribution: AttributionItem, | ||
| ContentAny: ContentAny, | ||
| ContentBinary: ContentBinary, | ||
| ContentDeleted: ContentDeleted, | ||
| ContentDoc: ContentDoc, | ||
| ContentEmbed: ContentEmbed, | ||
| ContentFormat: ContentFormat, | ||
| ContentJSON: ContentJSON, | ||
| ContentString: ContentString, | ||
| ContentType: ContentType, | ||
| DiffAttributionManager: DiffAttributionManager, | ||
| Doc: Doc, | ||
| GC: GC, | ||
| ID: ID, | ||
| IdMap: IdMap, | ||
| IdSet: IdSet, | ||
| Item: Item, | ||
| Map: YMap, | ||
| RelativePosition: RelativePosition, | ||
| Skip: Skip, | ||
| Snapshot: Snapshot, | ||
| Text: YText, | ||
| Transaction: Transaction, | ||
| TwosetAttributionManager: TwosetAttributionManager, | ||
| UndoManager: UndoManager, | ||
| UpdateDecoderV1: UpdateDecoderV1, | ||
| UpdateDecoderV2: UpdateDecoderV2, | ||
| UpdateEncoderV1: UpdateEncoderV1, | ||
| UpdateEncoderV2: UpdateEncoderV2, | ||
| XmlElement: YXmlElement, | ||
| XmlFragment: YXmlFragment, | ||
| XmlHook: YXmlHook, | ||
| XmlText: YXmlText, | ||
| YEvent: YEvent, | ||
| applyUpdate: applyUpdate, | ||
| applyUpdateV2: applyUpdateV2, | ||
| cleanupYTextFormatting: cleanupYTextFormatting, | ||
| cloneDoc: cloneDoc, | ||
| compareIDs: compareIDs, | ||
| compareRelativePositions: compareRelativePositions, | ||
| convertUpdateFormatV1ToV2: convertUpdateFormatV1ToV2, | ||
| convertUpdateFormatV2ToV1: convertUpdateFormatV2ToV1, | ||
| createAbsolutePositionFromRelativePosition: createAbsolutePositionFromRelativePosition, | ||
| createAttributionItem: createAttributionItem, | ||
| createAttributionManagerFromDiff: createAttributionManagerFromDiff, | ||
| createDeleteSetFromStructStore: createDeleteSetFromStructStore, | ||
| createDocFromSnapshot: createDocFromSnapshot, | ||
| createID: createID, | ||
| createIdMap: createIdMap, | ||
| createIdMapFromIdSet: createIdMapFromIdSet, | ||
| createIdSet: createIdSet, | ||
| createInsertionSetFromStructStore: createInsertSetFromStructStore, | ||
| createRelativePositionFromJSON: createRelativePositionFromJSON, | ||
| createRelativePositionFromTypeIndex: createRelativePositionFromTypeIndex, | ||
| createSnapshot: createSnapshot, | ||
| decodeRelativePosition: decodeRelativePosition, | ||
| decodeSnapshot: decodeSnapshot, | ||
| decodeSnapshotV2: decodeSnapshotV2, | ||
| decodeStateVector: decodeStateVector, | ||
| decodeUpdate: decodeUpdate, | ||
| decodeUpdateV2: decodeUpdateV2, | ||
| diffIdMap: diffIdMap, | ||
| diffIdSet: diffIdSet, | ||
| diffUpdate: diffUpdate, | ||
| diffUpdateV2: diffUpdateV2, | ||
| emptySnapshot: emptySnapshot, | ||
| encodeIdMap: encodeIdMap, | ||
| encodeRelativePosition: encodeRelativePosition, | ||
| encodeSnapshot: encodeSnapshot, | ||
| encodeSnapshotV2: encodeSnapshotV2, | ||
| encodeStateAsUpdate: encodeStateAsUpdate, | ||
| encodeStateAsUpdateV2: encodeStateAsUpdateV2, | ||
| encodeStateVector: encodeStateVector, | ||
| encodeStateVectorFromUpdate: encodeStateVectorFromUpdate, | ||
| encodeStateVectorFromUpdateV2: encodeStateVectorFromUpdateV2, | ||
| equalIdSets: equalIdSets, | ||
| equalSnapshots: equalSnapshots, | ||
| findIndexSS: findIndexSS, | ||
| findRootTypeKey: findRootTypeKey, | ||
| getItem: getItem, | ||
| getItemCleanEnd: getItemCleanEnd, | ||
| getItemCleanStart: getItemCleanStart, | ||
| getState: getState, | ||
| getTypeChildren: getTypeChildren, | ||
| isParentOf: isParentOf, | ||
| iterateStructsByIdSet: iterateStructsByIdSet, | ||
| logType: logType, | ||
| logUpdate: logUpdate, | ||
| logUpdateV2: logUpdateV2, | ||
| mergeIdSets: mergeIdSets, | ||
| mergeUpdates: mergeUpdates, | ||
| mergeUpdatesV2: mergeUpdatesV2, | ||
| noAttributionsManager: noAttributionsManager, | ||
| obfuscateUpdate: obfuscateUpdate, | ||
| obfuscateUpdateV2: obfuscateUpdateV2, | ||
| readUpdate: readUpdate, | ||
| readUpdateIdRanges: readUpdateIdRanges, | ||
| readUpdateIdRangesV2: readUpdateIdRangesV2, | ||
| readUpdateV2: readUpdateV2, | ||
| relativePositionToJSON: relativePositionToJSON, | ||
| snapshot: snapshot, | ||
| snapshotContainsUpdate: snapshotContainsUpdate, | ||
| transact: transact, | ||
| tryGc: tryGc, | ||
| typeListToArraySnapshot: typeListToArraySnapshot, | ||
| typeMapGetAllSnapshot: typeMapGetAllSnapshot, | ||
| typeMapGetSnapshot: typeMapGetSnapshot | ||
| }); | ||
| export { Y }; | ||
| //# sourceMappingURL=index-C421fONL.js.map |
| {"version":3,"file":"index-C421fONL.js","sources":["../src/index.js"],"sourcesContent":["/** eslint-env browser */\n\nexport {\n Doc,\n Transaction,\n YArray as Array,\n YMap as Map,\n YText as Text,\n YXmlText as XmlText,\n YXmlHook as XmlHook,\n YXmlElement as XmlElement,\n YXmlFragment as XmlFragment,\n YEvent,\n Item,\n AbstractStruct,\n GC,\n Skip,\n ContentBinary,\n ContentDeleted,\n ContentDoc,\n ContentEmbed,\n ContentFormat,\n ContentJSON,\n ContentAny,\n ContentString,\n ContentType,\n AbstractType,\n getTypeChildren,\n createRelativePositionFromTypeIndex,\n createRelativePositionFromJSON,\n createAbsolutePositionFromRelativePosition,\n compareRelativePositions,\n AbsolutePosition,\n RelativePosition,\n ID,\n createID,\n compareIDs,\n getState,\n Snapshot,\n createSnapshot,\n cleanupYTextFormatting,\n snapshot,\n emptySnapshot,\n findRootTypeKey,\n findIndexSS,\n getItem,\n getItemCleanStart,\n getItemCleanEnd,\n typeListToArraySnapshot,\n typeMapGetSnapshot,\n typeMapGetAllSnapshot,\n createDocFromSnapshot,\n applyUpdate,\n applyUpdateV2,\n readUpdate,\n readUpdateV2,\n encodeStateAsUpdate,\n encodeStateAsUpdateV2,\n encodeStateVector,\n UndoManager,\n decodeSnapshot,\n encodeSnapshot,\n decodeSnapshotV2,\n encodeSnapshotV2,\n decodeStateVector,\n logUpdate,\n logUpdateV2,\n decodeUpdate,\n decodeUpdateV2,\n relativePositionToJSON,\n isParentOf,\n equalSnapshots,\n tryGc,\n transact,\n AbstractConnector,\n logType,\n mergeUpdates,\n mergeUpdatesV2,\n encodeStateVectorFromUpdate,\n encodeStateVectorFromUpdateV2,\n encodeRelativePosition,\n decodeRelativePosition,\n diffUpdate,\n diffUpdateV2,\n convertUpdateFormatV1ToV2,\n convertUpdateFormatV2ToV1,\n obfuscateUpdate,\n obfuscateUpdateV2,\n UpdateEncoderV1,\n UpdateEncoderV2,\n UpdateDecoderV1,\n UpdateDecoderV2,\n snapshotContainsUpdate,\n // idset\n IdSet,\n equalIdSets,\n createDeleteSetFromStructStore,\n IdMap,\n createIdMap,\n createAttributionItem,\n createInsertSetFromStructStore as createInsertionSetFromStructStore,\n diffIdMap,\n diffIdSet,\n AttributionItem as Attribution,\n encodeIdMap,\n createIdMapFromIdSet,\n TwosetAttributionManager,\n noAttributionsManager,\n AbstractAttributionManager,\n iterateStructsByIdSet,\n createAttributionManagerFromDiff,\n DiffAttributionManager,\n createIdSet,\n mergeIdSets,\n cloneDoc,\n readUpdateIdRanges,\n readUpdateIdRangesV2\n} from './internals.js'\n\nconst glo = /** @type {any} */ (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined'\n ? window\n // @ts-ignore\n : typeof global !== 'undefined' ? global : {})\n\nconst importIdentifier = '__ $YJS$ __'\n\nif (glo[importIdentifier] === true) {\n /**\n * Dear reader of this message. Please take this seriously.\n *\n * If you see this message, make sure that you only import one version of Yjs. In many cases,\n * your package manager installs two versions of Yjs that are used by different packages within your project.\n * Another reason for this message is that some parts of your project use the commonjs version of Yjs\n * and others use the EcmaScript version of Yjs.\n *\n * This often leads to issues that are hard to debug. We often need to perform constructor checks,\n * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to\n * do the constructor checks anymore - which might break the CRDT algorithm.\n *\n * https://github.com/yjs/yjs/issues/438\n */\n console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438')\n}\nglo[importIdentifier] = true\n"],"names":[],"mappings":";;;;;;AAAA;;;AAuHA,MAAM,GAAG,uBAAuB,OAAO,UAAU,KAAK;AACtD,IAAI;AACJ,IAAI,OAAO,MAAM,KAAK;AACtB,MAAM;AACN;AACA,MAAM,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,EAAE;;AAEjD,MAAM,gBAAgB,GAAG;;AAEzB,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,KAAK,CAAC,2HAA2H;AAC3I;AACA,GAAG,CAAC,gBAAgB,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} |
| 'use strict'; | ||
| var Skip = require('./Skip-C-88Cnkq.js'); | ||
| require('lib0/function'); | ||
| require('lib0/decoding'); | ||
| require('lib0/binary'); | ||
| require('lib0/map'); | ||
| /** eslint-env browser */ | ||
| const glo = /** @type {any} */ (typeof globalThis !== 'undefined' | ||
| ? globalThis | ||
| : typeof window !== 'undefined' | ||
| ? window | ||
| // @ts-ignore | ||
| : typeof global !== 'undefined' ? global : {}); | ||
| const importIdentifier = '__ $YJS$ __'; | ||
| if (glo[importIdentifier] === true) { | ||
| /** | ||
| * Dear reader of this message. Please take this seriously. | ||
| * | ||
| * If you see this message, make sure that you only import one version of Yjs. In many cases, | ||
| * your package manager installs two versions of Yjs that are used by different packages within your project. | ||
| * Another reason for this message is that some parts of your project use the commonjs version of Yjs | ||
| * and others use the EcmaScript version of Yjs. | ||
| * | ||
| * This often leads to issues that are hard to debug. We often need to perform constructor checks, | ||
| * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to | ||
| * do the constructor checks anymore - which might break the CRDT algorithm. | ||
| * | ||
| * https://github.com/yjs/yjs/issues/438 | ||
| */ | ||
| console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438'); | ||
| } | ||
| glo[importIdentifier] = true; | ||
| var Y = /*#__PURE__*/Object.freeze({ | ||
| __proto__: null, | ||
| AbsolutePosition: Skip.AbsolutePosition, | ||
| AbstractAttributionManager: Skip.AbstractAttributionManager, | ||
| AbstractConnector: Skip.AbstractConnector, | ||
| AbstractStruct: Skip.AbstractStruct, | ||
| AbstractType: Skip.AbstractType, | ||
| Array: Skip.YArray, | ||
| Attribution: Skip.AttributionItem, | ||
| ContentAny: Skip.ContentAny, | ||
| ContentBinary: Skip.ContentBinary, | ||
| ContentDeleted: Skip.ContentDeleted, | ||
| ContentDoc: Skip.ContentDoc, | ||
| ContentEmbed: Skip.ContentEmbed, | ||
| ContentFormat: Skip.ContentFormat, | ||
| ContentJSON: Skip.ContentJSON, | ||
| ContentString: Skip.ContentString, | ||
| ContentType: Skip.ContentType, | ||
| DiffAttributionManager: Skip.DiffAttributionManager, | ||
| Doc: Skip.Doc, | ||
| GC: Skip.GC, | ||
| ID: Skip.ID, | ||
| IdMap: Skip.IdMap, | ||
| IdSet: Skip.IdSet, | ||
| Item: Skip.Item, | ||
| Map: Skip.YMap, | ||
| RelativePosition: Skip.RelativePosition, | ||
| Skip: Skip.Skip, | ||
| Snapshot: Skip.Snapshot, | ||
| Text: Skip.YText, | ||
| Transaction: Skip.Transaction, | ||
| TwosetAttributionManager: Skip.TwosetAttributionManager, | ||
| UndoManager: Skip.UndoManager, | ||
| UpdateDecoderV1: Skip.UpdateDecoderV1, | ||
| UpdateDecoderV2: Skip.UpdateDecoderV2, | ||
| UpdateEncoderV1: Skip.UpdateEncoderV1, | ||
| UpdateEncoderV2: Skip.UpdateEncoderV2, | ||
| XmlElement: Skip.YXmlElement, | ||
| XmlFragment: Skip.YXmlFragment, | ||
| XmlHook: Skip.YXmlHook, | ||
| XmlText: Skip.YXmlText, | ||
| YEvent: Skip.YEvent, | ||
| applyUpdate: Skip.applyUpdate, | ||
| applyUpdateV2: Skip.applyUpdateV2, | ||
| cleanupYTextFormatting: Skip.cleanupYTextFormatting, | ||
| cloneDoc: Skip.cloneDoc, | ||
| compareIDs: Skip.compareIDs, | ||
| compareRelativePositions: Skip.compareRelativePositions, | ||
| convertUpdateFormatV1ToV2: Skip.convertUpdateFormatV1ToV2, | ||
| convertUpdateFormatV2ToV1: Skip.convertUpdateFormatV2ToV1, | ||
| createAbsolutePositionFromRelativePosition: Skip.createAbsolutePositionFromRelativePosition, | ||
| createAttributionItem: Skip.createAttributionItem, | ||
| createAttributionManagerFromDiff: Skip.createAttributionManagerFromDiff, | ||
| createDeleteSetFromStructStore: Skip.createDeleteSetFromStructStore, | ||
| createDocFromSnapshot: Skip.createDocFromSnapshot, | ||
| createID: Skip.createID, | ||
| createIdMap: Skip.createIdMap, | ||
| createIdMapFromIdSet: Skip.createIdMapFromIdSet, | ||
| createIdSet: Skip.createIdSet, | ||
| createInsertionSetFromStructStore: Skip.createInsertSetFromStructStore, | ||
| createRelativePositionFromJSON: Skip.createRelativePositionFromJSON, | ||
| createRelativePositionFromTypeIndex: Skip.createRelativePositionFromTypeIndex, | ||
| createSnapshot: Skip.createSnapshot, | ||
| decodeRelativePosition: Skip.decodeRelativePosition, | ||
| decodeSnapshot: Skip.decodeSnapshot, | ||
| decodeSnapshotV2: Skip.decodeSnapshotV2, | ||
| decodeStateVector: Skip.decodeStateVector, | ||
| decodeUpdate: Skip.decodeUpdate, | ||
| decodeUpdateV2: Skip.decodeUpdateV2, | ||
| diffIdMap: Skip.diffIdMap, | ||
| diffIdSet: Skip.diffIdSet, | ||
| diffUpdate: Skip.diffUpdate, | ||
| diffUpdateV2: Skip.diffUpdateV2, | ||
| emptySnapshot: Skip.emptySnapshot, | ||
| encodeIdMap: Skip.encodeIdMap, | ||
| encodeRelativePosition: Skip.encodeRelativePosition, | ||
| encodeSnapshot: Skip.encodeSnapshot, | ||
| encodeSnapshotV2: Skip.encodeSnapshotV2, | ||
| encodeStateAsUpdate: Skip.encodeStateAsUpdate, | ||
| encodeStateAsUpdateV2: Skip.encodeStateAsUpdateV2, | ||
| encodeStateVector: Skip.encodeStateVector, | ||
| encodeStateVectorFromUpdate: Skip.encodeStateVectorFromUpdate, | ||
| encodeStateVectorFromUpdateV2: Skip.encodeStateVectorFromUpdateV2, | ||
| equalIdSets: Skip.equalIdSets, | ||
| equalSnapshots: Skip.equalSnapshots, | ||
| findIndexSS: Skip.findIndexSS, | ||
| findRootTypeKey: Skip.findRootTypeKey, | ||
| getItem: Skip.getItem, | ||
| getItemCleanEnd: Skip.getItemCleanEnd, | ||
| getItemCleanStart: Skip.getItemCleanStart, | ||
| getState: Skip.getState, | ||
| getTypeChildren: Skip.getTypeChildren, | ||
| isParentOf: Skip.isParentOf, | ||
| iterateStructsByIdSet: Skip.iterateStructsByIdSet, | ||
| logType: Skip.logType, | ||
| logUpdate: Skip.logUpdate, | ||
| logUpdateV2: Skip.logUpdateV2, | ||
| mergeIdSets: Skip.mergeIdSets, | ||
| mergeUpdates: Skip.mergeUpdates, | ||
| mergeUpdatesV2: Skip.mergeUpdatesV2, | ||
| noAttributionsManager: Skip.noAttributionsManager, | ||
| obfuscateUpdate: Skip.obfuscateUpdate, | ||
| obfuscateUpdateV2: Skip.obfuscateUpdateV2, | ||
| readUpdate: Skip.readUpdate, | ||
| readUpdateIdRanges: Skip.readUpdateIdRanges, | ||
| readUpdateIdRangesV2: Skip.readUpdateIdRangesV2, | ||
| readUpdateV2: Skip.readUpdateV2, | ||
| relativePositionToJSON: Skip.relativePositionToJSON, | ||
| snapshot: Skip.snapshot, | ||
| snapshotContainsUpdate: Skip.snapshotContainsUpdate, | ||
| transact: Skip.transact, | ||
| tryGc: Skip.tryGc, | ||
| typeListToArraySnapshot: Skip.typeListToArraySnapshot, | ||
| typeMapGetAllSnapshot: Skip.typeMapGetAllSnapshot, | ||
| typeMapGetSnapshot: Skip.typeMapGetSnapshot | ||
| }); | ||
| exports.Y = Y; | ||
| //# sourceMappingURL=index-DHAwYOkK.js.map |
| {"version":3,"file":"index-DHAwYOkK.js","sources":["../src/index.js"],"sourcesContent":["/** eslint-env browser */\n\nexport {\n Doc,\n Transaction,\n YArray as Array,\n YMap as Map,\n YText as Text,\n YXmlText as XmlText,\n YXmlHook as XmlHook,\n YXmlElement as XmlElement,\n YXmlFragment as XmlFragment,\n YEvent,\n Item,\n AbstractStruct,\n GC,\n Skip,\n ContentBinary,\n ContentDeleted,\n ContentDoc,\n ContentEmbed,\n ContentFormat,\n ContentJSON,\n ContentAny,\n ContentString,\n ContentType,\n AbstractType,\n getTypeChildren,\n createRelativePositionFromTypeIndex,\n createRelativePositionFromJSON,\n createAbsolutePositionFromRelativePosition,\n compareRelativePositions,\n AbsolutePosition,\n RelativePosition,\n ID,\n createID,\n compareIDs,\n getState,\n Snapshot,\n createSnapshot,\n cleanupYTextFormatting,\n snapshot,\n emptySnapshot,\n findRootTypeKey,\n findIndexSS,\n getItem,\n getItemCleanStart,\n getItemCleanEnd,\n typeListToArraySnapshot,\n typeMapGetSnapshot,\n typeMapGetAllSnapshot,\n createDocFromSnapshot,\n applyUpdate,\n applyUpdateV2,\n readUpdate,\n readUpdateV2,\n encodeStateAsUpdate,\n encodeStateAsUpdateV2,\n encodeStateVector,\n UndoManager,\n decodeSnapshot,\n encodeSnapshot,\n decodeSnapshotV2,\n encodeSnapshotV2,\n decodeStateVector,\n logUpdate,\n logUpdateV2,\n decodeUpdate,\n decodeUpdateV2,\n relativePositionToJSON,\n isParentOf,\n equalSnapshots,\n tryGc,\n transact,\n AbstractConnector,\n logType,\n mergeUpdates,\n mergeUpdatesV2,\n encodeStateVectorFromUpdate,\n encodeStateVectorFromUpdateV2,\n encodeRelativePosition,\n decodeRelativePosition,\n diffUpdate,\n diffUpdateV2,\n convertUpdateFormatV1ToV2,\n convertUpdateFormatV2ToV1,\n obfuscateUpdate,\n obfuscateUpdateV2,\n UpdateEncoderV1,\n UpdateEncoderV2,\n UpdateDecoderV1,\n UpdateDecoderV2,\n snapshotContainsUpdate,\n // idset\n IdSet,\n equalIdSets,\n createDeleteSetFromStructStore,\n IdMap,\n createIdMap,\n createAttributionItem,\n createInsertSetFromStructStore as createInsertionSetFromStructStore,\n diffIdMap,\n diffIdSet,\n AttributionItem as Attribution,\n encodeIdMap,\n createIdMapFromIdSet,\n TwosetAttributionManager,\n noAttributionsManager,\n AbstractAttributionManager,\n iterateStructsByIdSet,\n createAttributionManagerFromDiff,\n DiffAttributionManager,\n createIdSet,\n mergeIdSets,\n cloneDoc,\n readUpdateIdRanges,\n readUpdateIdRangesV2\n} from './internals.js'\n\nconst glo = /** @type {any} */ (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined'\n ? window\n // @ts-ignore\n : typeof global !== 'undefined' ? global : {})\n\nconst importIdentifier = '__ $YJS$ __'\n\nif (glo[importIdentifier] === true) {\n /**\n * Dear reader of this message. Please take this seriously.\n *\n * If you see this message, make sure that you only import one version of Yjs. In many cases,\n * your package manager installs two versions of Yjs that are used by different packages within your project.\n * Another reason for this message is that some parts of your project use the commonjs version of Yjs\n * and others use the EcmaScript version of Yjs.\n *\n * This often leads to issues that are hard to debug. We often need to perform constructor checks,\n * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to\n * do the constructor checks anymore - which might break the CRDT algorithm.\n *\n * https://github.com/yjs/yjs/issues/438\n */\n console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438')\n}\nglo[importIdentifier] = true\n"],"names":[],"mappings":";;;;;;;;AAAA;;;AAuHA,MAAM,GAAG,uBAAuB,OAAO,UAAU,KAAK;AACtD,IAAI;AACJ,IAAI,OAAO,MAAM,KAAK;AACtB,MAAM;AACN;AACA,MAAM,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,EAAE;;AAEjD,MAAM,gBAAgB,GAAG;;AAEzB,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,KAAK,CAAC,2HAA2H;AAC3I;AACA,GAAG,CAAC,gBAAgB,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
2871682
0.09%41428
0.12%Updated