diff --git a/experimental/dds/tree2/src/core/tree/visitDelta.ts b/experimental/dds/tree2/src/core/tree/visitDelta.ts index c72056a7e625..01b997afdf75 100644 --- a/experimental/dds/tree2/src/core/tree/visitDelta.ts +++ b/experimental/dds/tree2/src/core/tree/visitDelta.ts @@ -253,7 +253,7 @@ function secondPass(delta: Delta.MarkList, visitor: DeltaVisitor, config: PassCo extractFromOpaque(mark.moveId), mark.count, ); - assert(entry !== undefined, "Expected a move out for this move in"); + assert(entry !== undefined, 0x6d7 /* Expected a move out for this move in */); visitor.onMoveIn(index, entry.length, entry.value); let endIndex = index + entry.length; @@ -278,7 +278,7 @@ function secondPass(delta: Delta.MarkList, visitor: DeltaVisitor, config: PassCo assert( entry !== undefined && entry.start === nextId, - "Expected a move out for the remaining portion of this move in", + 0x6d8 /* Expected a move out for the remaining portion of this move in */, ); lastEntryId = entry.start + entry.length - 1; diff --git a/experimental/dds/tree2/src/feature-libraries/editable-tree/editableTree.ts b/experimental/dds/tree2/src/feature-libraries/editable-tree/editableTree.ts index cda0e19dffce..807b5d143f81 100644 --- a/experimental/dds/tree2/src/feature-libraries/editable-tree/editableTree.ts +++ b/experimental/dds/tree2/src/feature-libraries/editable-tree/editableTree.ts @@ -290,7 +290,7 @@ const nodeProxyHandler: AdaptingProxyHandler = { const fieldKey: FieldKey = brand(key); if (fieldKey === localNodeKeySymbol) { // TODO: this is not very type safe. Can we do better? - assert(typeof key === "number", "Invalid local node key"); + assert(typeof key === "number", 0x6d9 /* Invalid local node key */); const localNodeKey = key as unknown as LocalNodeKey; const stableNodeKey = target.context.nodeKeys.stabilizeNodeKey(localNodeKey); target.getField(fieldKey).content = stableNodeKey; diff --git a/experimental/dds/tree2/src/feature-libraries/editable-tree/editableTreeBinder.ts b/experimental/dds/tree2/src/feature-libraries/editable-tree/editableTreeBinder.ts index 0a3845f4d262..65af7b264559 100644 --- a/experimental/dds/tree2/src/feature-libraries/editable-tree/editableTreeBinder.ts +++ b/experimental/dds/tree2/src/feature-libraries/editable-tree/editableTreeBinder.ts @@ -334,7 +334,7 @@ abstract class AbstractPathVisitor implements PathVisitor { listeners: new Set(), children: new Map(), }; - assert(contextRoots !== undefined, "expected contextRoots to be defined"); + assert(contextRoots !== undefined, 0x6da /* expected contextRoots to be defined */); contextRoots.set(tree.field, newRoot); this.bindTree(contextType, tree, listener, newRoot); } else { @@ -387,7 +387,7 @@ abstract class AbstractPathVisitor implements PathVisitor { foundTree.listeners.delete(listener); } else { tree.children.forEach((childTree, fieldKey) => { - assert(foundTree !== undefined, "expected foundTree to be defined"); + assert(foundTree !== undefined, 0x6db /* expected foundTree to be defined */); const childCallTree = foundTree.children.get(fieldKey); if (childCallTree !== undefined) { this.unregisterListener(contextType, childTree, listener, childCallTree); @@ -666,7 +666,7 @@ class AbstractDataBinder< const newVisitor = this.visitorFactory(anchor); this.unregisterHandles.add( anchor[on]("subtreeChanging", (upPath: UpPath) => { - assert(newVisitor !== undefined, "visitor expected to be defined"); + assert(newVisitor !== undefined, 0x6dc /* visitor expected to be defined */); if (!this.visitorLocations.has(newVisitor)) { this.visitorLocations.set(newVisitor, upPath); } @@ -728,8 +728,8 @@ class BufferingDataBinder> const compareFn = (a: BufferingPathVisitor, b: BufferingPathVisitor) => { const pathA = this.visitorLocations.get(a); const pathB = this.visitorLocations.get(b); - assert(pathA !== undefined, "pathA expected to be defined"); - assert(pathB !== undefined, "pathB expected to be defined"); + assert(pathA !== undefined, 0x6dd /* pathA expected to be defined */); + assert(pathB !== undefined, 0x6de /* pathB expected to be defined */); return sortFn(pathA, pathB); }; const sortedVisitors: BufferingPathVisitor[] = nativeSort(unsortedVisitors, compareFn); diff --git a/experimental/dds/tree2/src/feature-libraries/editable-tree/utilities.ts b/experimental/dds/tree2/src/feature-libraries/editable-tree/utilities.ts index d93cfd93ffd3..bc4ecd9cf068 100644 --- a/experimental/dds/tree2/src/feature-libraries/editable-tree/utilities.ts +++ b/experimental/dds/tree2/src/feature-libraries/editable-tree/utilities.ts @@ -90,13 +90,13 @@ export function getStableNodeKey( const field = node[getField](nodeKeyFieldKeySymbol); assert( field.fieldSchema.kind.identifier === FieldKinds.nodeKey.identifier, - "Invalid node key field kind", + 0x6df /* Invalid node key field kind */, ); const nodeKeyNode = field.getNode(0); const id = nodeKeyNode[valueSymbol]; assert( typeof id === "string" && isStableId(id), - "Malformed value encountered in node key field", + 0x6e0 /* Malformed value encountered in node key field */, ); return brand(id); } diff --git a/experimental/dds/tree2/src/feature-libraries/node-key/nodeKeyIndex.ts b/experimental/dds/tree2/src/feature-libraries/node-key/nodeKeyIndex.ts index 5b892211d510..44a1a7eaae37 100644 --- a/experimental/dds/tree2/src/feature-libraries/node-key/nodeKeyIndex.ts +++ b/experimental/dds/tree2/src/feature-libraries/node-key/nodeKeyIndex.ts @@ -50,7 +50,7 @@ export class NodeKeyIndex this.nodes.clear(); for (let i = 0; i < context.root.length; i++) { for (const [id, node] of this.findKeys(context.root.getNode(i))) { - assert(!this.nodes.has(id), "Encountered duplicate node key"); + assert(!this.nodes.has(id), 0x6e1 /* Encountered duplicate node key */); this.nodes.set(id, node); } } @@ -107,12 +107,12 @@ export class NodeKeyIndex assert( node[typeSymbol].extraGlobalFields || node[typeSymbol].globalFields.has(this.fieldKey), - "Found node key that is not in schema", + 0x6e2 /* Found node key that is not in schema */, ); } else { assert( !node[typeSymbol].globalFields.has(this.fieldKey), - "Node key absent but required by schema", + 0x6e3 /* Node key absent but required by schema */, ); } diff --git a/experimental/dds/tree2/src/feature-libraries/node-key/nodeKeyManager.ts b/experimental/dds/tree2/src/feature-libraries/node-key/nodeKeyManager.ts index 6c105922b580..263f59224e78 100644 --- a/experimental/dds/tree2/src/feature-libraries/node-key/nodeKeyManager.ts +++ b/experimental/dds/tree2/src/feature-libraries/node-key/nodeKeyManager.ts @@ -43,7 +43,7 @@ export function createNodeKeyManager(idCompressor?: IIdCompressor | undefined): generateLocalNodeKey: () => { assert( idCompressor !== undefined, - "Runtime IdCompressor must be available to generate local node keys", + 0x6e4 /* Runtime IdCompressor must be available to generate local node keys */, ); return brand(idCompressor.generateCompressedId()); }, @@ -51,7 +51,7 @@ export function createNodeKeyManager(idCompressor?: IIdCompressor | undefined): localizeNodeKey: (key: StableNodeKey) => { assert( idCompressor !== undefined, - "Runtime IdCompressor must be available to convert node keys", + 0x6e5 /* Runtime IdCompressor must be available to convert node keys */, ); return brand(idCompressor.recompress(key)); }, @@ -59,7 +59,7 @@ export function createNodeKeyManager(idCompressor?: IIdCompressor | undefined): stabilizeNodeKey: (key: LocalNodeKey) => { assert( idCompressor !== undefined, - "Runtime IdCompressor must be available to convert node keys", + 0x6e6 /* Runtime IdCompressor must be available to convert node keys */, ); return brand( // TODO: The assert below is required for type safety but is maybe slow @@ -98,8 +98,8 @@ class MockNodeKeyManager implements NodeKeyManager { } private createMockStableId(offset: number): StableId { - assert(offset >= 0, "UUID offset may not be negative"); - assert(offset < 281_474_976_710_656, "UUID offset must be at most 16^12"); + assert(offset >= 0, 0x6e7 /* UUID offset may not be negative */); + assert(offset < 281_474_976_710_656, 0x6e8 /* UUID offset must be at most 16^12 */); return assertIsStableId( `a110ca7e-add1-4000-8000-${Math.round(offset).toString(16).padStart(12, "0")}`, ); diff --git a/experimental/dds/tree2/src/feature-libraries/sequence-field/compose.ts b/experimental/dds/tree2/src/feature-libraries/sequence-field/compose.ts index 99af9fee728c..43cc169e514b 100644 --- a/experimental/dds/tree2/src/feature-libraries/sequence-field/compose.ts +++ b/experimental/dds/tree2/src/feature-libraries/sequence-field/compose.ts @@ -669,13 +669,13 @@ function getReplacementMark( const lastEffectId = effect.start + effect.length - 1; assert( effect.start <= id && lastEffectId >= lastTargetId, - "Expected effect to cover entire mark", + 0x6e9 /* Expected effect to cover entire mark */, ); let mark = effect.value.mark; assert( getMarkLength(mark) === effect.length, - "Expected replacement mark to be same length as number of cells replaced", + 0x6ea /* Expected replacement mark to be same length as number of cells replaced */, ); // The existing effect may cover more cells than the area we are querying. @@ -737,7 +737,7 @@ function setReplacementMark( if (effect !== undefined) { assert( effect.start <= id && effect.start + effect.length >= (id as number) + count, - "Expected effect to cover entire mark", + 0x6eb /* Expected effect to cover entire mark */, ); newEffect = { ...effect.value, mark }; } else { @@ -891,7 +891,7 @@ function setModifyAfter( if (effect !== undefined) { assert( effect.start <= id && effect.start + effect.length >= (id as number) + count, - "Expected effect to cover entire mark", + 0x6ec /* Expected effect to cover entire mark */, ); const nodeChange = effect.value.modifyAfter !== undefined diff --git a/experimental/dds/tree2/src/feature-libraries/sequence-field/invert.ts b/experimental/dds/tree2/src/feature-libraries/sequence-field/invert.ts index 207e84e5bfb2..334fae6ec7c9 100644 --- a/experimental/dds/tree2/src/feature-libraries/sequence-field/invert.ts +++ b/experimental/dds/tree2/src/feature-libraries/sequence-field/invert.ts @@ -178,7 +178,10 @@ function invertMark( return [invertModifyOrSkip(mark.count, mark.changes, inputIndex, invertChild)]; } if (mark.changes !== undefined) { - assert(mark.count === 1, "Mark with changes can only target a single cell"); + assert( + mark.count === 1, + 0x6ed /* Mark with changes can only target a single cell */, + ); crossFieldManager.set( CrossFieldTarget.Destination, mark.revision ?? revision, diff --git a/experimental/dds/tree2/src/feature-libraries/sequence-field/moveEffectTable.ts b/experimental/dds/tree2/src/feature-libraries/sequence-field/moveEffectTable.ts index 686860a22d06..64d785af7cfa 100644 --- a/experimental/dds/tree2/src/feature-libraries/sequence-field/moveEffectTable.ts +++ b/experimental/dds/tree2/src/feature-libraries/sequence-field/moveEffectTable.ts @@ -325,7 +325,7 @@ export function getModifyAfter( if (effect?.value.modifyAfter !== undefined) { assert( effect.start <= id && effect.start + effect.length >= (id as number) + count, - "Expected effect to cover entire mark", + 0x6ee /* Expected effect to cover entire mark */, ); if (consumeEffect) { const newEffect = { ...effect.value }; @@ -355,7 +355,7 @@ function getPairedMarkStatus( if (effect?.value.pairedMarkStatus !== undefined) { assert( effect.start <= id && effect.start + effect.length >= (id as number) + count, - "Expected effect to cover entire mark", + 0x6ef /* Expected effect to cover entire mark */, ); if (consumeEffect) { const newEffect = { ...effect.value }; diff --git a/experimental/dds/tree2/src/feature-libraries/sequence-field/rebase.ts b/experimental/dds/tree2/src/feature-libraries/sequence-field/rebase.ts index 5b45bc0825f6..351abad0184d 100644 --- a/experimental/dds/tree2/src/feature-libraries/sequence-field/rebase.ts +++ b/experimental/dds/tree2/src/feature-libraries/sequence-field/rebase.ts @@ -345,7 +345,7 @@ function rebaseMark( if (markEmptiesCells(baseMark)) { const moveId = getMarkMoveId(baseMark); if (moveId !== undefined) { - assert(isMoveMark(baseMark), "Only move marks have move IDs"); + assert(isMoveMark(baseMark), 0x6f0 /* Only move marks have move IDs */); if (markFollowsMoves(rebasedMark)) { sendMarkToDest(rebasedMark, moveEffects, baseRevision, moveId, baseMark.count); return { count: 0 }; @@ -460,7 +460,7 @@ function sendMarkToDest( if (effect !== undefined) { assert( effect.start <= id && effect.start + effect.length >= (id as number) + count, - "Expected effect to cover entire mark", + 0x6f1 /* Expected effect to cover entire mark */, ); newEffect = { ...effect.value, movedMark: mark }; } else { @@ -486,7 +486,7 @@ function setPairedMarkStatus( if (effect !== undefined) { assert( effect.start <= id && effect.start + effect.length >= (id as number) + count, - "Expected effect to cover entire mark", + 0x6f2 /* Expected effect to cover entire mark */, ); newEffect = { ...effect.value, pairedMarkStatus: status }; } else { @@ -655,7 +655,7 @@ function getMovedMark( if (effect?.value.movedMark !== undefined) { assert( effect.start <= id && effect.start + effect.length >= (id as number) + count, - "Expected effect to cover entire mark", + 0x6f3 /* Expected effect to cover entire mark */, ); const newEffect = { ...effect.value }; delete newEffect.movedMark; diff --git a/packages/loader/driver-utils/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts b/packages/loader/driver-utils/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts index b0b86a0ee0db..a083ce266ef2 100644 --- a/packages/loader/driver-utils/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts +++ b/packages/loader/driver-utils/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts @@ -82,7 +82,7 @@ export class DocumentStorageServiceCompressionAdapter extends DocumentStorageSer return blob; } } - assert(algorithm < 0x10, "Algorithm should be less than 0x10"); + assert(algorithm < 0x10, 0x6f5 /* Algorithm should be less than 0x10 */); const blobView = new Uint8Array(blob); const blobLength = blobView.length; const newBlob = new Uint8Array(blobLength + 1); @@ -241,7 +241,7 @@ export class DocumentStorageServiceCompressionAdapter extends DocumentStorageSer config: ICompressionStorageConfig, context?: ISummaryContext, ): SummaryObject { - assert(typeof input === "object", "input must be a non-null object"); + assert(typeof input === "object", 0x6f6 /* input must be a non-null object */); const maybeReplaced = isEncode ? encoder(input, config) : decoder(input); if (maybeReplaced !== input) { @@ -277,7 +277,7 @@ export class DocumentStorageServiceCompressionAdapter extends DocumentStorageSer * @returns - The summary tree containing the metadata blob. */ private static findMetadataHolderSummary(summary: ISummaryTree): ISummaryTree | undefined { - assert(typeof summary === "object", "summary must be a non-null object"); + assert(typeof summary === "object", 0x6f7 /* summary must be a non-null object */); for (const key of Object.keys(summary.tree)) { const value = summary.tree[key]; @@ -302,7 +302,7 @@ export class DocumentStorageServiceCompressionAdapter extends DocumentStorageSer */ private static getMetadataHolderTree(summary: ISummaryTree) { const metadataHolder = this.findMetadataHolderSummary(summary); - assert(metadataHolder !== undefined, "metadataHolder must be a non-null object"); + assert(metadataHolder !== undefined, 0x6f8 /* metadataHolder must be a non-null object */); const metadataHolderTree = metadataHolder.tree; return metadataHolderTree; } @@ -328,7 +328,7 @@ export class DocumentStorageServiceCompressionAdapter extends DocumentStorageSer * @returns - True if the compression markup blob is found, otherwise false. */ private static hasCompressionMarkup(snapshot: ISnapshotTree): boolean { - assert(typeof snapshot === "object", "snapshot must be a non-null object"); + assert(typeof snapshot === "object", 0x6f9 /* snapshot must be a non-null object */); for (const key of Object.keys(snapshot.blobs)) { if (key === metadataBlobName) { const value = snapshot.blobs[blobHeadersBlobName]; diff --git a/packages/loader/driver-utils/src/adapters/predefinedAdapters.ts b/packages/loader/driver-utils/src/adapters/predefinedAdapters.ts index d95112572a6e..41ce2dfd7211 100644 --- a/packages/loader/driver-utils/src/adapters/predefinedAdapters.ts +++ b/packages/loader/driver-utils/src/adapters/predefinedAdapters.ts @@ -30,7 +30,7 @@ export function applyStorageCompression( documentServiceFactory, ); } else { - assert(isCompressionConfig(config), "Invalid compression config"); + assert(isCompressionConfig(config), 0x6f4 /* Invalid compression config */); return applyStorageCompressionInternal( DocumentServiceFactoryCompressionAdapter, documentServiceFactory, diff --git a/packages/runtime/container-runtime/src/opLifecycle/outbox.ts b/packages/runtime/container-runtime/src/opLifecycle/outbox.ts index 7e1fd8d655e8..764c6b889792 100644 --- a/packages/runtime/container-runtime/src/opLifecycle/outbox.ts +++ b/packages/runtime/container-runtime/src/opLifecycle/outbox.ts @@ -245,7 +245,7 @@ export class Outbox { const rawBatch = batchManager.popBatch(); if (rawBatch.hasReentrantOps === true && this.params.config.enableBatchRebasing) { - assert(!this.rebasing, "A rebased batch should never have reentrant ops"); + assert(!this.rebasing, 0x6fa /* A rebased batch should never have reentrant ops */); // If a batch contains reentrant ops (ops created as a result from processing another op) // it needs to be rebased so that we can ensure consistent reference sequence numbers // and eventual consistency at the DDS level. @@ -266,7 +266,7 @@ export class Outbox { * @param rawBatch - the batch to be rebased */ private rebase(rawBatch: IBatch, batchManager: BatchManager) { - assert(!this.rebasing, "Reentrancy"); + assert(!this.rebasing, 0x6fb /* Reentrancy */); this.rebasing = true; for (const message of rawBatch.content) { diff --git a/packages/runtime/container-runtime/src/summary/summarizerNode/summarizerNode.ts b/packages/runtime/container-runtime/src/summary/summarizerNode/summarizerNode.ts index 29522beb1335..fb9fe14125d6 100644 --- a/packages/runtime/container-runtime/src/summary/summarizerNode/summarizerNode.ts +++ b/packages/runtime/container-runtime/src/summary/summarizerNode/summarizerNode.ts @@ -243,9 +243,9 @@ export class SummarizerNode implements IRootSummarizerNode { private wasSummarizeMissed(parentSkipRecursion: boolean): boolean { assert( this.wipSummaryLogger !== undefined, - "wipSummaryLogger should have been set in startSummary or ctor", + 0x6fc /* wipSummaryLogger should have been set in startSummary or ctor */, ); - assert(this.wipReferenceSequenceNumber !== undefined, "Not tracking a summary"); + assert(this.wipReferenceSequenceNumber !== undefined, 0x6fd /* Not tracking a summary */); // If the parent node skipped recursion, it did not call summarize on this node. So, summarize was not missed // but was intentionally not called. @@ -335,7 +335,7 @@ export class SummarizerNode implements IRootSummarizerNode { // If localPathsToUse is undefined, it means summarize didn't run for this node and in that case the validate // step should have failed. - assert(localPathsToUse !== undefined, "summarize didn't run for node"); + assert(localPathsToUse !== undefined, 0x6fe /* summarize didn't run for node */); const summary = new SummaryNode({ ...localPathsToUse, referenceSequenceNumber: this.wipReferenceSequenceNumber, diff --git a/packages/runtime/test-runtime-utils/src/assertionShortCodesMap.ts b/packages/runtime/test-runtime-utils/src/assertionShortCodesMap.ts index 6832dbd2c9b1..a3040df5af53 100644 --- a/packages/runtime/test-runtime-utils/src/assertionShortCodesMap.ts +++ b/packages/runtime/test-runtime-utils/src/assertionShortCodesMap.ts @@ -325,7 +325,6 @@ export const shortCodeMap = { "0x1a0": "Already tracking a summary", "0x1a1": "summarize should not be called when not tracking the summary", "0x1a2": "wipSummaryLogger should have been set in startSummary or ctor", - "0x1a3": "wipSummaryLogger should have been set in startSummary or ctor", "0x1a4": "Not tracking a summary", "0x1a6": "Not found pending summary, but this node has previously completed a summary", "0x1a7": "Pending summary reference sequence number should be consistent", @@ -667,7 +666,6 @@ export const shortCodeMap = { "0x3b3": "expected tree", "0x3b4": "not equal", "0x3b5": "", - "0x3b6": "Value fields only support a single child node", "0x3b7": "must start at node", "0x3b8": "must field height", "0x3b9": "must be in nodes mode", @@ -993,12 +991,8 @@ export const shortCodeMap = { "0x561": "expected root at start", "0x562": "expected root to be a field", "0x563": "can not exit root field", - "0x566": "Cannot modify move destination", - "0x567": "Child effects should have size", "0x569": "Must provide a change composer if modifying moves", "0x56a": "TODO: support updating MoveOut.isSrcConflicted", - "0x56b": "Child effects should have size", - "0x56d": "Inconsistent merge info", "0x56e": "summary upload manager should have been initialized", "0x56f": "Should be loaded only once", "0x570": "Inconsistent state! GC says the data store is deleted, but the data store is not deleted from the runtime.", @@ -1030,7 +1024,6 @@ export const shortCodeMap = { "0x58e": "Batch must not be empty", "0x58f": "Invalid ref sequence number", "0x590": "Channel must be locally visible", - "0x591": "Unable to revert to undefined revision", "0x592": "Unable to revert to undefined revision", "0x593": "Expected branch to be ahead of transaction start revision", "0x597": "Branch may not be merged while transaction is in progress", @@ -1042,7 +1035,6 @@ export const shortCodeMap = { "0x59e": "Unable to revert to undefined revision", "0x5a0": "Unable to index unknown revision", "0x5a1": "Unable to revert to undefined revision", - "0x5a2": "Context still not defined after contextChanged event", "0x5a3": "runtimeInstantiated fired but runtime is still undefined", "0x5a4": "Batch should not be empty", "0x5a5": "Expected number of chunks", @@ -1060,7 +1052,6 @@ export const shortCodeMap = { "0x5b4": "Should not change constraint violation count during amend pass", "0x5b6": "This field should not have any base changes", "0x5b9": "Cannot exit inexistent transaction", - "0x5ba": "Must have distinct ID for each piece of the split mark", "0x5bb": "Must be attached to run GC", "0x5bc": "Must be attached to run GC", "0x5bd": "Invalid blob node path", @@ -1070,7 +1061,6 @@ export const shortCodeMap = { "0x5c2": "trackable is invalid as it is not in a rooted merge tree.", "0x5c3": "Schema must be primitive when providing a primitive value", "0x5c4": "Shouldn't have new node changes if there is no new node", - "0x5c5": "Encountered duplicate node identifier", "0x5c6": "Encoded schema should be versioned", "0x5c7": "Encoded schema should validate", "0x5c8": "Unexpected kind", @@ -1265,8 +1255,6 @@ export const shortCodeMap = { "0x695": "TODO: Assign revision tags to each change in a transaction", "0x696": "Mark with empty output must either be a detach or also have input empty", "0x697": "Cannot dequeue both unless both mark queues are non-empty", - "0x699": "Should have a count when splitting a mark", - "0x69a": "Should specify a count when splitting a mark", "0x69b": "Cannot rebase over changeset with no revision", "0x69c": "Cannot dequeue both unless both mark queues are non-empty", "0x69d": "A new attach should not be rebased over its cell being emptied", @@ -1291,7 +1279,6 @@ export const shortCodeMap = { "0x6b1": "cursors cannot be used as contextually typed data.", "0x6b2": "undefined cannot be used as contextually typed data. Use ContextuallyTypedFieldData.", "0x6b3": "Keys should not be duplicated", - "0x6b4": "Malformed value encountered in identifier field", "0x6b5": "Received a sequenced change from the local session despite having no local changes", "0x6b6": "Content from different editable trees should not be used together", "0x6b7": "sequence fields require array content", @@ -1325,5 +1312,45 @@ export const shortCodeMap = { "0x6d3": "Connection state should be EstablishingConnection", "0x6d4": "No connetion should be present", "0x6d5": "content must be defined", - "0x6d6": "incorrect op content format" + "0x6d6": "incorrect op content format", + "0x6d7": "Expected a move out for this move in", + "0x6d8": "Expected a move out for the remaining portion of this move in", + "0x6d9": "Invalid local node key", + "0x6da": "expected contextRoots to be defined", + "0x6db": "expected foundTree to be defined", + "0x6dc": "visitor expected to be defined", + "0x6dd": "pathA expected to be defined", + "0x6de": "pathB expected to be defined", + "0x6df": "Invalid node key field kind", + "0x6e0": "Malformed value encountered in node key field", + "0x6e1": "Encountered duplicate node key", + "0x6e2": "Found node key that is not in schema", + "0x6e3": "Node key absent but required by schema", + "0x6e4": "Runtime IdCompressor must be available to generate local node keys", + "0x6e5": "Runtime IdCompressor must be available to convert node keys", + "0x6e6": "Runtime IdCompressor must be available to convert node keys", + "0x6e7": "UUID offset may not be negative", + "0x6e8": "UUID offset must be at most 16^12", + "0x6e9": "Expected effect to cover entire mark", + "0x6ea": "Expected replacement mark to be same length as number of cells replaced", + "0x6eb": "Expected effect to cover entire mark", + "0x6ec": "Expected effect to cover entire mark", + "0x6ed": "Mark with changes can only target a single cell", + "0x6ee": "Expected effect to cover entire mark", + "0x6ef": "Expected effect to cover entire mark", + "0x6f0": "Only move marks have move IDs", + "0x6f1": "Expected effect to cover entire mark", + "0x6f2": "Expected effect to cover entire mark", + "0x6f3": "Expected effect to cover entire mark", + "0x6f4": "Invalid compression config", + "0x6f5": "Algorithm should be less than 0x10", + "0x6f6": "input must be a non-null object", + "0x6f7": "summary must be a non-null object", + "0x6f8": "metadataHolder must be a non-null object", + "0x6f9": "snapshot must be a non-null object", + "0x6fa": "A rebased batch should never have reentrant ops", + "0x6fb": "Reentrancy", + "0x6fc": "wipSummaryLogger should have been set in startSummary or ctor", + "0x6fd": "Not tracking a summary", + "0x6fe": "summarize didn't run for node" };