From e2245c6d555c96303ae730ca4ff415d759140639 Mon Sep 17 00:00:00 2001 From: Jatin Garg Date: Mon, 29 Sep 2025 13:27:42 -0700 Subject: [PATCH] build(client): Tag asserts for release 2.62.0 --- packages/dds/tree/src/core/rebase/utils.ts | 2 +- .../tree/src/shared-tree-core/editManager.ts | 19 +- .../editManagerCodecsCommons.ts | 15 +- .../shared-tree-core/editManagerCodecsV5.ts | 12 +- .../shared-tree-core/messageCodecV1ToV4.ts | 7 +- .../src/shared-tree-core/messageCodecV5.ts | 5 +- .../src/shared-tree-core/sharedTreeCore.ts | 4 +- .../dds/tree/src/shared-tree/treeAlpha.ts | 2 +- .../dds/tree/src/shared-tree/treeCheckout.ts | 5 +- .../src/assertionShortCodesMap.ts | 178 +++--------------- 10 files changed, 73 insertions(+), 176 deletions(-) diff --git a/packages/dds/tree/src/core/rebase/utils.ts b/packages/dds/tree/src/core/rebase/utils.ts index 18fd6f85e5f7..cdd462665b42 100644 --- a/packages/dds/tree/src/core/rebase/utils.ts +++ b/packages/dds/tree/src/core/rebase/utils.ts @@ -697,7 +697,7 @@ export function diffHistories( const sourcePath: GraphCommit[] = []; const targetPath: GraphCommit[] = []; const ancestor = findCommonAncestor([sourceCommit, sourcePath], [targetCommit, targetPath]); - assert(ancestor !== undefined, "Branches must be related"); + assert(ancestor !== undefined, 0xc69 /* Branches must be related */); const inverses = sourcePath.map((commit) => rollbackFromCommit(changeRebaser, commit, mintRevisionTag), ); diff --git a/packages/dds/tree/src/shared-tree-core/editManager.ts b/packages/dds/tree/src/shared-tree-core/editManager.ts index 8f36d85aca99..c2729ac26645 100644 --- a/packages/dds/tree/src/shared-tree-core/editManager.ts +++ b/packages/dds/tree/src/shared-tree-core/editManager.ts @@ -372,7 +372,7 @@ export class EditManager< this.trunkBase.revision, ); branches.set(branchId, branchSummary); - assert(branchSummary.base !== undefined, "Branch summary must have a base"); + assert(branchSummary.base !== undefined, 0xc56 /* Branch summary must have a base */); const baseSequenceId = mainBranch.getCommitSequenceId(branchSummary.base); minBaseSeqId = minSequenceId(minBaseSeqId, baseSequenceId); } @@ -445,7 +445,7 @@ export class EditManager< branchId: BranchId, ): void { if (sessionId === this.localSessionId) { - assert(this.sharedBranches.has(branchId), "Expected branch to already exist"); + assert(this.sharedBranches.has(branchId), 0xc57 /* Expected branch to already exist */); return; } @@ -469,9 +469,9 @@ export class EditManager< } public removeBranch(branchId: BranchId): void { - assert(branchId !== "main", "Cannot remove main branch"); + assert(branchId !== "main", 0xc58 /* Cannot remove main branch */); const hadBranch = this.sharedBranches.delete(branchId); - assert(hadBranch, "Expected branch to exist"); + assert(hadBranch, 0xc59 /* Expected branch to exist */); } private createAndAddSharedBranch( @@ -489,7 +489,10 @@ export class EditManager< branchId: BranchId, branch: SharedBranch, ): void { - assert(!this.sharedBranches.has(branchId), "A branch with this ID already exists"); + assert( + !this.sharedBranches.has(branchId), + 0xc5a /* A branch with this ID already exists */, + ); this.sharedBranches.set(branchId, branch); // Track all forks of the local branch for purposes of trunk eviction. Unlike the local branch, they have @@ -999,7 +1002,7 @@ class SharedBranch { // rebasing trunk changes over the inverse of trunk changes. assert( this.localBranch.getHead() === this.trunk.getHead(), - "Clients with local changes cannot be used to generate summaries", + 0xc5b /* Clients with local changes cannot be used to generate summaries */, ); let parentHead: GraphCommit; @@ -1019,7 +1022,7 @@ class SharedBranch { ); assert( forkPointFromMainTrunk !== undefined, - "Expected child branch to be based on main branch", + 0xc5c /* Expected child branch to be based on main branch */, ); const trunk = childBranchTrunkCommits.map((c) => { @@ -1075,7 +1078,7 @@ class SharedBranch { ): void { assert( (this.parentBranch === undefined) === (data.base === undefined), - "Expected branch base to match presence of parent branch", + 0xc5d /* Expected branch base to match presence of parent branch */, ); const parentTrunkBase = trunkRevisionCache.get(data.base ?? rootRevision) ?? diff --git a/packages/dds/tree/src/shared-tree-core/editManagerCodecsCommons.ts b/packages/dds/tree/src/shared-tree-core/editManagerCodecsCommons.ts index cfbf7a8b3c1c..138a89374f7c 100644 --- a/packages/dds/tree/src/shared-tree-core/editManagerCodecsCommons.ts +++ b/packages/dds/tree/src/shared-tree-core/editManagerCodecsCommons.ts @@ -144,7 +144,10 @@ export function encodeSharedBranch( json.author = data.author; } if (data.base !== undefined) { - assert(originatorId !== undefined, "Cannot encode branch base without originatorId"); + assert( + originatorId !== undefined, + 0xc5e /* Cannot encode branch base without originatorId */, + ); json.base = revisionTagCodec.encode(data.base, { originatorId, idCompressor: context.idCompressor, @@ -221,11 +224,17 @@ export function decodeSharedBranch( data.author = json.author; } if (json.id !== undefined) { - assert(originatorId !== undefined, "Cannot decode branch id without originatorId"); + assert( + originatorId !== undefined, + 0xc5f /* Cannot decode branch id without originatorId */, + ); data.id = decodeBranchId(context.idCompressor, json.id, { originatorId }); } if (json.base !== undefined) { - assert(originatorId !== undefined, "Cannot decode branch base without originatorId"); + assert( + originatorId !== undefined, + 0xc60 /* Cannot decode branch base without originatorId */, + ); data.base = revisionTagCodec.decode(json.base, { originatorId, idCompressor: context.idCompressor, diff --git a/packages/dds/tree/src/shared-tree-core/editManagerCodecsV5.ts b/packages/dds/tree/src/shared-tree-core/editManagerCodecsV5.ts index 480742740452..8eec5343960e 100644 --- a/packages/dds/tree/src/shared-tree-core/editManagerCodecsV5.ts +++ b/packages/dds/tree/src/shared-tree-core/editManagerCodecsV5.ts @@ -76,7 +76,10 @@ export function makeV5CodecWithVersion( context, data.originator, ); - assert(data.originator !== undefined, "Cannot encode V5 summary without originator"); + assert( + data.originator !== undefined, + 0xc61 /* Cannot encode V5 summary without originator */, + ); const json: Mutable> = { main: mainBranch, originator: data.originator, @@ -126,8 +129,11 @@ export function makeV5CodecWithVersion( context, json.originator, ); - assert(decodedBranch.id !== undefined, "Shared branches must have an id"); - assert(!branches.has(decodedBranch.id), "Duplicate shared branch id"); + assert( + decodedBranch.id !== undefined, + 0xc62 /* Shared branches must have an id */, + ); + assert(!branches.has(decodedBranch.id), 0xc63 /* Duplicate shared branch id */); branches.set(decodedBranch.id, decodedBranch); } diff --git a/packages/dds/tree/src/shared-tree-core/messageCodecV1ToV4.ts b/packages/dds/tree/src/shared-tree-core/messageCodecV1ToV4.ts index 264f94018708..bbde33f042cd 100644 --- a/packages/dds/tree/src/shared-tree-core/messageCodecV1ToV4.ts +++ b/packages/dds/tree/src/shared-tree-core/messageCodecV1ToV4.ts @@ -45,8 +45,11 @@ export function makeV1ToV4CodecWithVersion( Message(changeCodec.encodedSchema ?? Type.Any()), { encode: (decoded: DecodedMessage, context: MessageEncodingContext) => { - assert(decoded.type === "commit", "Only commit messages are supported"); - assert(decoded.branchId === "main", "Only commit messages to main are supported"); + assert(decoded.type === "commit", 0xc64 /* Only commit messages are supported */); + assert( + decoded.branchId === "main", + 0xc65 /* Only commit messages to main are supported */, + ); const { commit, sessionId: originatorId } = decoded; const message: Message = { revision: revisionTagCodec.encode(commit.revision, { diff --git a/packages/dds/tree/src/shared-tree-core/messageCodecV5.ts b/packages/dds/tree/src/shared-tree-core/messageCodecV5.ts index 67d846726a2f..d403cf544f8b 100644 --- a/packages/dds/tree/src/shared-tree-core/messageCodecV5.ts +++ b/packages/dds/tree/src/shared-tree-core/messageCodecV5.ts @@ -105,7 +105,10 @@ export function makeV5CodecWithVersion( return { type: "branch", sessionId: originatorId, branchId }; } - assert(encodedRevision !== undefined, "Commit messages must have a revision"); + assert( + encodedRevision !== undefined, + 0xc66 /* Commit messages must have a revision */, + ); const revision = revisionTagCodec.decode(encodedRevision, changeContext); return { diff --git a/packages/dds/tree/src/shared-tree-core/sharedTreeCore.ts b/packages/dds/tree/src/shared-tree-core/sharedTreeCore.ts index 1384a726e72f..8d43d5da941d 100644 --- a/packages/dds/tree/src/shared-tree-core/sharedTreeCore.ts +++ b/packages/dds/tree/src/shared-tree-core/sharedTreeCore.ts @@ -544,7 +544,7 @@ export class SharedTreeCore } = message; const branch = this.editManager.getLocalBranch(branchId); const head = branch.getHead(); - assert(head.revision === revision, "Can only rollback latest commit"); + assert(head.revision === revision, 0xc67 /* Can only rollback latest commit */); const newHead = head.parent ?? fail("must have parent"); branch.removeAfter(newHead); this.getResubmitMachine(branchId).onCommitRollback(head); @@ -591,7 +591,7 @@ export class SharedTreeCore ): void { const changeEnricher = enricher ?? new NoOpChangeEnricher(); const commitEnricher = new BranchCommitEnricher(this.changeFamily.rebaser, changeEnricher); - assert(!this.enrichers.has(branchId), "Branch already registered"); + assert(!this.enrichers.has(branchId), 0xc68 /* Branch already registered */); this.enrichers.set(branchId, { enricher: commitEnricher, resubmitMachine: diff --git a/packages/dds/tree/src/shared-tree/treeAlpha.ts b/packages/dds/tree/src/shared-tree/treeAlpha.ts index fe383767bb96..595c76f9b623 100644 --- a/packages/dds/tree/src/shared-tree/treeAlpha.ts +++ b/packages/dds/tree/src/shared-tree/treeAlpha.ts @@ -566,7 +566,7 @@ class NodeSubscription { ) { // TODO:Performance: It is possible to optimize this to not use the public TreeNode API. const node = getOrCreateNodeFromInnerNode(flexNode); - assert(node instanceof TreeNode, "Unexpected leaf value"); + assert(node instanceof TreeNode, 0xc54 /* Unexpected leaf value */); const handler = (data: NodeChangedData): void => { if (this.keys === undefined || data.changedProperties === undefined) { diff --git a/packages/dds/tree/src/shared-tree/treeCheckout.ts b/packages/dds/tree/src/shared-tree/treeCheckout.ts index 06a507a40cc9..57b0508d4978 100644 --- a/packages/dds/tree/src/shared-tree/treeCheckout.ts +++ b/packages/dds/tree/src/shared-tree/treeCheckout.ts @@ -789,7 +789,10 @@ export class TreeCheckout implements ITreeCheckoutFork { branch: SharedTreeBranch, ): void { // TODO: Dispose old branch, if necessary - assert(!this.#transaction.isInProgress(), "Cannot switch branches during a transaction"); + assert( + !this.#transaction.isInProgress(), + 0xc55 /* Cannot switch branches during a transaction */, + ); const diff = diffHistories( this.changeFamily.rebaser, this.#transaction.branch.getHead(), diff --git a/packages/runtime/test-runtime-utils/src/assertionShortCodesMap.ts b/packages/runtime/test-runtime-utils/src/assertionShortCodesMap.ts index 0822098b4770..840a2163e443 100644 --- a/packages/runtime/test-runtime-utils/src/assertionShortCodesMap.ts +++ b/packages/runtime/test-runtime-utils/src/assertionShortCodesMap.ts @@ -590,7 +590,6 @@ export const shortCodeMap = { "0x41a": "undefined or string", "0x41b": "We cannot process batches in chunks", "0x41d": "PathNode must not be disposed", - "0x428": "Clients with local changes cannot be used to generate summaries", "0x42c": "There should not already be stored EditManager data when loading from summary", "0x42d": "Navigation to detached fields should never fail", "0x42e": "Cursor must be current to be used", @@ -1164,7 +1163,6 @@ export const shortCodeMap = { "0x8bc": "No pending recorded refSeq found", "0x8c0": "unexpected getViewOrError", "0x8c4": "unexpected dispose", - "0x8c7": "Expected oldest commit in collab window to have a parent or be the trunk base", "0x8c9": "unexpected implementation", "0x8ca": "Use after free", "0x8cc": "Should have context for every invalidated field", @@ -1440,13 +1438,10 @@ export const shortCodeMap = { "0xa57": "Expected EagerMapTree required field to have a value", "0xa5b": "must have exactly 1 field in batch", "0xa5c": "Unexpected view implementation", - "0xa5d": "The main branch cannot be rebased onto another branch.", + "0xa5d": "Shared branches cannot be rebased onto another branch.", "0xa5e": "Should not access 'change' property of an evicted commit", "0xa5f": "Should not access 'revision' property of an evicted commit", "0xa60": "Should not access 'parent' property of an evicted commit", - "0xa61": "Serialized trunk should not include the trunk base", - "0xa62": "Serialized branch should not include the trunk base", - "0xa63": "Commit must be either be on the trunk or be the trunk base", "0xa64": "Attempted to sequence change with an outdated sequence number", "0xa65": "documentId is required when multiplexing is enabled.", "0xa66": "Context not found", @@ -1523,145 +1518,12 @@ export const shortCodeMap = { "0xabc": "indexInBatch must not be infinity", "0xabd": "Optional fields only support a single child node", "0xabe": "Child changes must be in order.", - "0xabf": "Duplicate codecs specified.", - "0xac0": "Encoded schema should validate", - "0xac1": "Encoded schema should validate", - "0xac2": "missing function for union member", - "0xac3": "Unexpected siblingStack.length", - "0xac4": "Unexpected indexStack.length", - "0xac5": "Unexpected siblingStack.length", - "0xac6": "Unexpected indexStack.length", - "0xac8": "Invalid document root length", - "0xac9": "missing schema for type in cursor", - "0xaca": "invalid field kind", - "0xacb": "invalid schema kind", - "0xacc": "Unknown SharedTree change type.", - "0xacf": "invalid input", - "0xad1": "Unknown Shared Tree change type.", - "0xad2": "Expected branch to be related to trunk", - "0xad3": "Expected branch to be related to trunk", - "0xad4": "Expected branch to be tracked", - "0xad5": "Expected metadata for trunk commit", - "0xad6": "Expected branch to be based on trunk", - "0xad7": "Expected summary branch to be based off of a revision in the trunk", "0xad8": "Expected at least one sequenced change", "0xad9": "All messages in a bunch must have the same session ID", "0xada": "Messages must have a session ID", - "0xadb": "Proxy should intercept length", - "0xadc": "Index is out of bounds", - "0xadd": "missing proxy", - "0xade": "invalid FieldKind", - "0xadf": "invalid field kind", - "0xae3": "Invalid field kind", - "0xae4": "Schema must override buildRawNode", - "0xae5": "Missing oneTimeSetup", - "0xae6": "Should not allocate IDs", - "0xae7": "missing field", - "0xae8": "missing PersistedValueSchema", - "0xae9": "missing ValueSchema", - "0xaea": "internalize path must be a path", - "0xaeb": "childrenChangedAfterBatch events should have changedFields", - "0xaec": "cannot reference child that does not exist", - "0xaed": "This wont be undefined due to the check above", - "0xaee": "nested cursors should not be root", - "0xaef": "nested cursors should not be root", - "0xaf0": "Unexpected siblingStack.length", - "0xaf1": "Unexpected indexStack.length", - "0xaf2": "Unexpected siblingStack.length", - "0xaf3": "Unexpected indexStack.length", - "0xaf4": "Unexpected indexOfChunkStack.length", - "0xaf5": "Unexpected indexWithinChunkStack.length", - "0xaf6": "missing edited field", - "0xaf7": "missing edited node", - "0xaf8": "should not be at root", - "0xaf9": "missing schema", - "0xafa": "missing FieldKind", - "0xafb": "cannot navigate above root", - "0xafc": "cannot navigate above root", - "0xafd": "empty cursor has no nodes", - "0xafe": "empty cursor has no nodes", - "0xaff": "empty cursor has no nodes", - "0xb00": "empty cursor has no nodes", - "0xb01": "empty cursor has no nodes", - "0xb02": "empty cursor has no nodes", - "0xb03": "empty cursor has no nodes", - "0xb04": "empty cursor has no nodes", - "0xb05": "empty cursor has no nodes", - "0xb06": "empty cursor has no nodes", - "0xb07": "empty cursor has no nodes", - "0xb08": "empty cursor has no nodes", - "0xb09": "not in a field", - "0xb0a": "navigation up to root field not yet supported", - "0xb0b": "navigation up to root field not yet supported", - "0xb0c": "children should have parents", - "0xb0d": "Child changes not supported", - "0xb0e": "Unknown TreeNodeStoredSchema type", - "0xb0f": "missing field implementation", - "0xb10": "missing anchor", - "0xb11": "parent anchor node should always exist since field is under a node", - "0xb12": "cursor should point to a node that is not the root of the AnchorSet", - "0xb13": "tree should only be cleaned up once", - "0xb14": "missing schema", - "0xb15": "requested schema that does not exist", - "0xb16": "expected anchor node", - "0xb17": "missing expected field", - "0xb18": "missing expected field", - "0xb19": "missing expected field", - "0xb1a": "missing expected field", - "0xb1b": "missing kind", - "0xb1c": "missing field kind", - "0xb1d": "missing field kind", - "0xb1e": "Should not decode nodes during field encoding", - "0xb1f": "Encoded change didn't pass schema validation.", - "0xb20": "Encoded change didn't pass schema validation.", - "0xb21": "Should not encode nodes during field decoding", - "0xb22": "Should not compose two undefined nodes", - "0xb23": "Should not compose two undefined nodes", - "0xb24": "Unknown node ID", - "0xb25": "No field exists for the given ID", - "0xb26": "Identifier is not compressible", - "0xb27": "no path when at root", - "0xb28": "missing schema", - "0xb29": "Expected defined output ID", - "0xb2a": "Revision must be defined", - "0xb2b": "Mark type: NoopMarkType should not be encoded.", - "0xb2c": "Mark type: NoopMarkType should not be encoded.", - "0xb2d": "Unable to split mark due to lengths", - "0xb2e": "missing schema for type in cursor", - "0xb30": "missing schema for type in cursor", - "0xb31": "missing enum value", - "0xb32": "node is out of schema", - "0xb33": "a value for the key does not exist", - "0xb34": "the key is an unexpected type", - "0xb35": "missing schema", - "0xb36": "Could not find stored key in schema.", - "0xb37": "Not a tree node", - "0xb38": "Existing stored key should always map to a property key", - "0xb39": "missing schema", - "0xb3c": "missing schema for type in cursor", - "0xb3f": "missing schema from context", - "0xb40": "missing simple-tree context", - "0xb41": "missing context", - "0xb42": "Expected anchor node to be present", - "0xb45": "missing context", - "0xb46": "missing schema", - "0xb4a": "Expected removed to be set by edit", - "0xb4b": "encoder interface instead of shape written to stream", - "0xb4c": "missing shape", - "0xb4d": "Empty array should not encode any nodes", - "0xb4e": "missing shape", - "0xb4f": "index for shape not found in table", - "0xb50": "missing shape", - "0xb51": "missing shape", - "0xb52": "missing FieldKind", - "0xb53": "missing node schema", - "0xb54": "unsupported node kind", "0xb56": "Invalid ITree", - "0xb57": "childrenChangedAfterBatch events should have a changedField", "0xb58": "Cannot skip last navigation if length is 0 and thus last navigation already occurred.", "0xb59": "Should be in nodes mode if not past end", - "0xb5a": "Missing schema", - "0xb5b": "Missing schema", "0xb5c": "Remove on insertion must be caused by obliterate.", "0xb5d": "Expected last remove to be unacked", "0xb5e": "Expected prior remove to be acked", @@ -1719,7 +1581,6 @@ export const shortCodeMap = { "0xb9a": "colliding properties", "0xb9b": "methods returning thisWrap should return this", "0xb9c": "use after dispose", - "0xb9d": "unsupported field kind", "0xb9e": "entryPoint must be of type IStaticEntryPoint", "0xb9f": "entryPoint must be of type RootDataObject", "0xba0": "No recipient found for local signal", @@ -1738,8 +1599,6 @@ export const shortCodeMap = { "0xbad": "Last remove should be the obliterate that is being resubmitted.", "0xbae": "Last remove should be the obliterate that is being resubmitted.", "0xbaf": "Expected only one local remove", - "0xbb1": "missing field has no default provider", - "0xbb2": "Invalid field kind", "0xbb3": "invalid map tree: empty field", "0xbb4": "Expected nodes cursor", "0xbb5": "missing identifier field", @@ -1755,11 +1614,9 @@ export const shortCodeMap = { "0xbc0": "endpointChanges must be empty if not pending changes", "0xbc1": "must be same type", "0xbc2": "In document node must be hydrated.", - "0xbc3": "Leaf schema associated with non-leaf tree node.", "0xbc4": "Sequence child was undefined.", "0xbc5": "Expected object schema.", "0xbc6": "Expected child tree node for field.", - "0xbc7": "Leaf schema associated with non-leaf tree node.", "0xbc8": "Invalid inner node type", "0xbc9": "All implementations of TreeNodeSchemaCore must also implement TreeNodeSchemaCorePrivate", "0xbd4": "local must have metadata", @@ -1770,7 +1627,6 @@ export const shortCodeMap = { "0xbd9": "there must be inflight commits to resubmit", "0xbda": "there must be an inflight commit for each resubmit commit", "0xbdb": "revision must exist in local commits", - "0xbdc": "must have parent", "0xbde": "Expected object schema.", "0xbdf": "Expected array schema.", "0xbe0": "Expected map schema.", @@ -1781,15 +1637,12 @@ export const shortCodeMap = { "0xbe5": "expected reverse mapping and thus a key that is a normalized number", "0xbe6": "New schema must allow all documents allowed by old schema", "0xbe7": "entryPoint must be of type TreeRootDataObject", - "0xbe8": "Invalid stored node schema type", "0xbe9": "schema with node kind of object must implement ObjectNodeSchema", "0xbea": "schema with node kind of array must implement ArrayNodeSchema", "0xbeb": "schema with node kind of map must implement MapNodeSchema", "0xbec": "schema with node kind of record must implement RecordNodeSchema", "0xbed": "schema with node kind of leaf must implement LeafNodeSchema", "0xbee": "all field schema should be FieldSchemaAlpha", - "0xbef": "A conversion from a FieldKind to a FlexFieldKind should exist", - "0xbf0": "A conversion from a FieldKind to a FlexFieldKind should exist", "0xbf1": "Should never iterate to a key with undefined optimisticValue", "0xbf2": "Unexpected clear rollback", "0xbf3": "Unexpected pending data for set/delete op", @@ -1804,7 +1657,6 @@ export const shortCodeMap = { "0xbfc": "Major revision cannot be 'root'", "0xbfd": "Expected root, stable, or final compressed id", "0xbfe": "Expected unhydrated context", - "0xbff": "missing schema for type in cursor", "0xc00": "found unknown field where not allowed", "0xc01": "Expected blob metadata for a BlobAttach op", "0xc02": "Expected blob metadata for a BlobAttach op", @@ -1822,16 +1674,12 @@ export const shortCodeMap = { "0xc13": "optional fields should have a single top level node, or undefined", "0xc14": "Expected flexContext to match", "0xc15": "Expected ObjectNodeStoredSchema", - "0xc16": "missing schema for array node", "0xc17": "Expected MapNodeStoredSchema", "0xc18": "Expected ObjectNodeStoredSchema", "0xc19": "Expected FieldSchemaAlpha", "0xc1a": "Expected MapNodeStoredSchema", "0xc1b": "Expected at least two types", - "0xc1c": "", - "0xc1d": "Different scopes not supported yet.", "0xc1e": "Expected a constructed node to be an object", - "0xc1f": "Transaction did not complete.", "0xc20": "snapshot tree not found for one of tree's summarizables", "0xc21": "Forest summary content missing in snapshot", "0xc22": "Not tracking a summary", @@ -1883,5 +1731,27 @@ export const shortCodeMap = { "0xc50": "childrenChangedAfterBatch should have arg", "0xc51": "Event handler disposed.", "0xc52": "Buffered kernel events should have been flushed before disposing.", - "0xc53": "Couldn't find a matching storage ID" + "0xc53": "Couldn't find a matching storage ID", + "0xc54": "Unexpected leaf value", + "0xc55": "Cannot switch branches during a transaction", + "0xc56": "Branch summary must have a base", + "0xc57": "Expected branch to already exist", + "0xc58": "Cannot remove main branch", + "0xc59": "Expected branch to exist", + "0xc5a": "A branch with this ID already exists", + "0xc5b": "Clients with local changes cannot be used to generate summaries", + "0xc5c": "Expected child branch to be based on main branch", + "0xc5d": "Expected branch base to match presence of parent branch", + "0xc5e": "Cannot encode branch base without originatorId", + "0xc5f": "Cannot decode branch id without originatorId", + "0xc60": "Cannot decode branch base without originatorId", + "0xc61": "Cannot encode V5 summary without originator", + "0xc62": "Shared branches must have an id", + "0xc63": "Duplicate shared branch id", + "0xc64": "Only commit messages are supported", + "0xc65": "Only commit messages to main are supported", + "0xc66": "Commit messages must have a revision", + "0xc67": "Can only rollback latest commit", + "0xc68": "Branch already registered", + "0xc69": "Branches must be related" };