@itwin/core-backend 5.14.0-dev.1 → 5.14.0-dev.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -1
- package/lib/cjs/BriefcaseManager.d.ts +6 -0
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +12 -6
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/ChangesetReader.d.ts.map +1 -1
- package/lib/cjs/ChangesetReader.js +1 -0
- package/lib/cjs/ChangesetReader.js.map +1 -1
- package/lib/cjs/ChangesetReaderTypes.d.ts +2 -1
- package/lib/cjs/ChangesetReaderTypes.d.ts.map +1 -1
- package/lib/cjs/ChangesetReaderTypes.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts.map +1 -1
- package/lib/cjs/CloudSqlite.js +9 -2
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +1 -0
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/Element.d.ts +1 -1
- package/lib/cjs/Element.js +1 -1
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/Entity.d.ts +3 -3
- package/lib/cjs/Entity.js +3 -3
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +83 -35
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +196 -89
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IpcHost.d.ts.map +1 -1
- package/lib/cjs/IpcHost.js +51 -17
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/SchemaSync.d.ts +126 -18
- package/lib/cjs/SchemaSync.d.ts.map +1 -1
- package/lib/cjs/SchemaSync.js +303 -81
- package/lib/cjs/SchemaSync.js.map +1 -1
- package/lib/cjs/SynchronousChannel.d.ts +11 -1
- package/lib/cjs/SynchronousChannel.d.ts.map +1 -1
- package/lib/cjs/SynchronousChannel.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +16 -13
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/internal/IntegrityCheck.d.ts +57 -0
- package/lib/cjs/internal/IntegrityCheck.d.ts.map +1 -1
- package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
- package/lib/cjs/internal/SchemaSyncReservations.d.ts.map +1 -1
- package/lib/cjs/internal/SchemaSyncReservations.js +13 -3
- package/lib/cjs/internal/SchemaSyncReservations.js.map +1 -1
- package/lib/esm/BriefcaseManager.d.ts +6 -0
- package/lib/esm/BriefcaseManager.d.ts.map +1 -1
- package/lib/esm/BriefcaseManager.js +12 -6
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/ChangesetReader.d.ts.map +1 -1
- package/lib/esm/ChangesetReader.js +1 -0
- package/lib/esm/ChangesetReader.js.map +1 -1
- package/lib/esm/ChangesetReaderTypes.d.ts +2 -1
- package/lib/esm/ChangesetReaderTypes.d.ts.map +1 -1
- package/lib/esm/ChangesetReaderTypes.js.map +1 -1
- package/lib/esm/CloudSqlite.d.ts.map +1 -1
- package/lib/esm/CloudSqlite.js +10 -3
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/ECDb.d.ts.map +1 -1
- package/lib/esm/ECDb.js +1 -0
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/Element.d.ts +1 -1
- package/lib/esm/Element.js +1 -1
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/Entity.d.ts +3 -3
- package/lib/esm/Entity.js +3 -3
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +83 -35
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +196 -89
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IpcHost.d.ts.map +1 -1
- package/lib/esm/IpcHost.js +52 -18
- package/lib/esm/IpcHost.js.map +1 -1
- package/lib/esm/SchemaSync.d.ts +126 -18
- package/lib/esm/SchemaSync.d.ts.map +1 -1
- package/lib/esm/SchemaSync.js +304 -82
- package/lib/esm/SchemaSync.js.map +1 -1
- package/lib/esm/SynchronousChannel.d.ts +11 -1
- package/lib/esm/SynchronousChannel.d.ts.map +1 -1
- package/lib/esm/SynchronousChannel.js.map +1 -1
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +17 -14
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/internal/IntegrityCheck.d.ts +57 -0
- package/lib/esm/internal/IntegrityCheck.d.ts.map +1 -1
- package/lib/esm/internal/IntegrityCheck.js.map +1 -1
- package/lib/esm/internal/SchemaSyncReservations.d.ts.map +1 -1
- package/lib/esm/internal/SchemaSyncReservations.js +13 -3
- package/lib/esm/internal/SchemaSyncReservations.js.map +1 -1
- package/lib/esm/test/annotations/FrameGeometry.test.js +1 -1
- package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js +65 -1
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/Rebase.test.js +3 -1
- package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
- package/lib/esm/test/hubaccess/SemanticRebase.test.js +218 -28
- package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
- package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.d.ts +3 -0
- package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.d.ts.map +1 -0
- package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.js +15 -0
- package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.js.map +1 -0
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/SchemaSyncDb.test.js +5 -25
- package/lib/esm/test/standalone/SchemaSyncDb.test.js.map +1 -1
- package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js +1 -0
- package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js.map +1 -1
- package/package.json +14 -14
|
@@ -14,7 +14,9 @@ export declare namespace SynchronousChannel {
|
|
|
14
14
|
* @beta
|
|
15
15
|
*/
|
|
16
16
|
interface ReserveElementsArgs {
|
|
17
|
-
/** The elements to reserve. The whole batch succeeds or fails together.
|
|
17
|
+
/** The elements to reserve. The whole batch succeeds or fails together.
|
|
18
|
+
* @note Every element listed here becomes a *shared* element that must be inserted identically by every briefcase. See the note on [[SynchronousChannel.Reservations]].
|
|
19
|
+
*/
|
|
18
20
|
elements: Iterable<{
|
|
19
21
|
/** The federationGuid that stably identifies this element across briefcases. Reservations always require an explicit federationGuid. */
|
|
20
22
|
federationGuid: GuidString;
|
|
@@ -27,6 +29,12 @@ export declare namespace SynchronousChannel {
|
|
|
27
29
|
* Interface used to ***reserve*** elements with shared identities as part of [coordinating simultaneous edits]($docs/learning/backend/ConcurrencyControl.md) from multiple briefcases.
|
|
28
30
|
* Unlike **locks** (via [[LockControl]]), which block users from making conflicting changes to existing elements, **reservations** can be used to communicate "in-flight"
|
|
29
31
|
* changes between briefcases, allowing users to concurrently add and use identical dependencies (e.g., component definitions, schemas, etc.) without introducing conflicts.
|
|
32
|
+
*
|
|
33
|
+
* @note A reserved element is a *shared* element: every briefcase that inserts it must insert the **exact same element**. The reservation assigns a single shared
|
|
34
|
+
* ElementId that all briefcases use, and when multiple briefcases push their inserts they are merged together as one row rather than producing a conflict.
|
|
35
|
+
* Because these duplicate inserts are silently collapsed, the property values written by each briefcase are **not** reconciled — if two briefcases insert the same reserved
|
|
36
|
+
* element with *different* contents, one briefcase's values win arbitrarily and the other's changes will be lost. Callers are therefore responsible for ensuring that every
|
|
37
|
+
* insert of a given reserved element has the same property values across all briefcases. Only use reservations for content that is deterministically identical everywhere.
|
|
30
38
|
* @see [[IModelDb.reservations]] to access the reservations for an iModel.
|
|
31
39
|
* @beta
|
|
32
40
|
*/
|
|
@@ -54,6 +62,8 @@ export declare namespace SynchronousChannel {
|
|
|
54
62
|
needsElementReservation(federationGuid: GuidString): boolean;
|
|
55
63
|
/**
|
|
56
64
|
* Acquire reservations for one or more elements from the reservation service, if required and not already reserved by another user.
|
|
65
|
+
* @note Reserving an element establishes a shared identity that every briefcase must insert *identically*. See the note on [[SynchronousChannel.Reservations]] for why divergent
|
|
66
|
+
* inserts of the same reserved element are unsafe.
|
|
57
67
|
* @throws Error if the requested elements are inconsistent with existing reservations, or if any other error occurs while updating the reservations.
|
|
58
68
|
*/
|
|
59
69
|
reserveElements(args: ReserveElementsArgs): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SynchronousChannel.d.ts","sourceRoot":"","sources":["../../src/SynchronousChannel.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;GAGG;AACH,yBAAiB,kBAAkB,CAAC;IAClC;;OAEG;IACH,UAAiB,mBAAmB;QAClC
|
|
1
|
+
{"version":3,"file":"SynchronousChannel.d.ts","sourceRoot":"","sources":["../../src/SynchronousChannel.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;GAGG;AACH,yBAAiB,kBAAkB,CAAC;IAClC;;OAEG;IACH,UAAiB,mBAAmB;QAClC;;WAEG;QACH,QAAQ,EAAE,QAAQ,CAAC;YACjB,wIAAwI;YACxI,cAAc,EAAE,UAAU,CAAC;YAC3B,aAAa,EAAE,MAAM,CAAC;YACtB,oJAAoJ;YACpJ,IAAI,CAAC,EAAE,SAAS,CAAC;SAClB,CAAC,CAAC;KACJ;IAED;;;;;;;;;;;;OAYG;IACH,UAAiB,YAAY;QAC3B,eAAe;QACf,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAC;QAE9C,oFAAoF;QACpF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;QAEhC;;;WAGG;QACH,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;QAErB;;;WAGG;QACH,CAAC,wBAAwB,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,CAAC;QAE7D;;;;;WAKG;QACH,uBAAuB,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC;QAE7D;;;;;WAKG;QACH,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC3D;CAEF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SynchronousChannel.js","sourceRoot":"","sources":["../../src/SynchronousChannel.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAIH,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module iModels\r\n */\r\n\r\nimport { GuidString } from \"@itwin/core-bentley\";\r\nimport { CodeProps } from \"@itwin/core-common\";\r\nimport { _close, _implementationProhibited, _onReservedElementInsert } from \"./internal/Symbols\";\r\nimport { OnElementPropsArg } from \"./Element\";\r\n\r\n/** Types used by the synchronous coordination channels that help multiple briefcases avoid conflicts\r\n * before they appear in the asynchronous changeset timeline.\r\n * @beta\r\n */\r\nexport namespace SynchronousChannel {\r\n /** Arguments for [[SynchronousChannel.Reservations.reserveElements]].\r\n * @beta\r\n */\r\n export interface ReserveElementsArgs {\r\n /** The elements to reserve. The whole batch succeeds or fails together. */\r\n elements: Iterable<{\r\n /** The federationGuid that stably identifies this element across briefcases. Reservations always require an explicit federationGuid. */\r\n federationGuid: GuidString;\r\n classFullName: string;\r\n /** The Code for this element. When a non-empty [[Code.value]] is supplied, it must be unique across all reservations. Defaults to an empty Code. */\r\n code?: CodeProps;\r\n }>;\r\n }\r\n\r\n /**\r\n * Interface used to ***reserve*** elements with shared identities as part of [coordinating simultaneous edits]($docs/learning/backend/ConcurrencyControl.md) from multiple briefcases.\r\n * Unlike **locks** (via [[LockControl]]), which block users from making conflicting changes to existing elements, **reservations** can be used to communicate \"in-flight\"\r\n * changes between briefcases, allowing users to concurrently add and use identical dependencies (e.g., component definitions, schemas, etc.) without introducing conflicts.\r\n * @see [[IModelDb.reservations]] to access the reservations for an iModel.\r\n * @beta\r\n */\r\n export interface Reservations {\r\n /** @internal*/\r\n readonly [_implementationProhibited]: unknown;\r\n\r\n /** @internal true if this Reservations uses a server-based concurrency approach. */\r\n readonly isServerBased: boolean;\r\n\r\n /**\r\n * Close the local reservation database\r\n * @internal\r\n */\r\n [_close]: () => void;\r\n\r\n /**\r\n * Notification that a new element with an explicitly-set federationGuid is being inserted. Called by [[Element.onInsert]]\r\n * @internal\r\n */\r\n [_onReservedElementInsert]: (arg: OnElementPropsArg) => void;\r\n\r\n /**\r\n * Determine whether an ID has already been reserved for a future element with the given federationGuid.\r\n * @note Due to local caching, a return value of `false` cannot be taken as a guarantee that no other briefcase has already reserved the same\r\n * element, only that a reservation for the element with the given federationGuid was seen as of the last call to [[reserveElements]].\r\n * @throws [ElementReservationError]($common) if the federationGuid is not a valid GUID.\r\n */\r\n needsElementReservation(federationGuid: GuidString): boolean;\r\n\r\n /**\r\n * Acquire reservations for one or more elements from the reservation service, if required and not already reserved by another user.\r\n * @throws Error if the requested elements are inconsistent with existing reservations, or if any other error occurs while updating the reservations.\r\n */\r\n reserveElements(args: ReserveElementsArgs): Promise<void>;\r\n }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SynchronousChannel.js","sourceRoot":"","sources":["../../src/SynchronousChannel.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAIH,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module iModels\r\n */\r\n\r\nimport { GuidString } from \"@itwin/core-bentley\";\r\nimport { CodeProps } from \"@itwin/core-common\";\r\nimport { _close, _implementationProhibited, _onReservedElementInsert } from \"./internal/Symbols\";\r\nimport { OnElementPropsArg } from \"./Element\";\r\n\r\n/** Types used by the synchronous coordination channels that help multiple briefcases avoid conflicts\r\n * before they appear in the asynchronous changeset timeline.\r\n * @beta\r\n */\r\nexport namespace SynchronousChannel {\r\n /** Arguments for [[SynchronousChannel.Reservations.reserveElements]].\r\n * @beta\r\n */\r\n export interface ReserveElementsArgs {\r\n /** The elements to reserve. The whole batch succeeds or fails together.\r\n * @note Every element listed here becomes a *shared* element that must be inserted identically by every briefcase. See the note on [[SynchronousChannel.Reservations]].\r\n */\r\n elements: Iterable<{\r\n /** The federationGuid that stably identifies this element across briefcases. Reservations always require an explicit federationGuid. */\r\n federationGuid: GuidString;\r\n classFullName: string;\r\n /** The Code for this element. When a non-empty [[Code.value]] is supplied, it must be unique across all reservations. Defaults to an empty Code. */\r\n code?: CodeProps;\r\n }>;\r\n }\r\n\r\n /**\r\n * Interface used to ***reserve*** elements with shared identities as part of [coordinating simultaneous edits]($docs/learning/backend/ConcurrencyControl.md) from multiple briefcases.\r\n * Unlike **locks** (via [[LockControl]]), which block users from making conflicting changes to existing elements, **reservations** can be used to communicate \"in-flight\"\r\n * changes between briefcases, allowing users to concurrently add and use identical dependencies (e.g., component definitions, schemas, etc.) without introducing conflicts.\r\n *\r\n * @note A reserved element is a *shared* element: every briefcase that inserts it must insert the **exact same element**. The reservation assigns a single shared\r\n * ElementId that all briefcases use, and when multiple briefcases push their inserts they are merged together as one row rather than producing a conflict.\r\n * Because these duplicate inserts are silently collapsed, the property values written by each briefcase are **not** reconciled — if two briefcases insert the same reserved\r\n * element with *different* contents, one briefcase's values win arbitrarily and the other's changes will be lost. Callers are therefore responsible for ensuring that every\r\n * insert of a given reserved element has the same property values across all briefcases. Only use reservations for content that is deterministically identical everywhere.\r\n * @see [[IModelDb.reservations]] to access the reservations for an iModel.\r\n * @beta\r\n */\r\n export interface Reservations {\r\n /** @internal*/\r\n readonly [_implementationProhibited]: unknown;\r\n\r\n /** @internal true if this Reservations uses a server-based concurrency approach. */\r\n readonly isServerBased: boolean;\r\n\r\n /**\r\n * Close the local reservation database\r\n * @internal\r\n */\r\n [_close]: () => void;\r\n\r\n /**\r\n * Notification that a new element with an explicitly-set federationGuid is being inserted. Called by [[Element.onInsert]]\r\n * @internal\r\n */\r\n [_onReservedElementInsert]: (arg: OnElementPropsArg) => void;\r\n\r\n /**\r\n * Determine whether an ID has already been reserved for a future element with the given federationGuid.\r\n * @note Due to local caching, a return value of `false` cannot be taken as a guarantee that no other briefcase has already reserved the same\r\n * element, only that a reservation for the element with the given federationGuid was seen as of the last call to [[reserveElements]].\r\n * @throws [ElementReservationError]($common) if the federationGuid is not a valid GUID.\r\n */\r\n needsElementReservation(federationGuid: GuidString): boolean;\r\n\r\n /**\r\n * Acquire reservations for one or more elements from the reservation service, if required and not already reserved by another user.\r\n * @note Reserving an element establishes a shared identity that every briefcase must insert *identically*. See the note on [[SynchronousChannel.Reservations]] for why divergent\r\n * inserts of the same reserved element are unsafe.\r\n * @throws Error if the requested elements are inconsistent with existing reservations, or if any other error occurs while updating the reservations.\r\n */\r\n reserveElements(args: ReserveElementsArgs): Promise<void>;\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TxnManager.d.ts","sourceRoot":"","sources":["../../src/TxnManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EACG,OAAO,EAAmD,oBAAoB,EAAE,QAAQ,EAAmB,UAAU,EAAE,YAAY,EAC5I,MAAM,qBAAqB,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"TxnManager.d.ts","sourceRoot":"","sources":["../../src/TxnManager.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/TxnManager.js
CHANGED
|
@@ -59,7 +59,7 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
|
|
|
59
59
|
});
|
|
60
60
|
import * as touch from "touch";
|
|
61
61
|
import { assert, BeEvent, BentleyError, compareStrings, CompressedId64Set, DbConflictResolution, DbResult, Id64, IModelStatus, IndexMap, Logger, OrderedId64Array } from "@itwin/core-bentley";
|
|
62
|
-
import { IModelError } from "@itwin/core-common";
|
|
62
|
+
import { BriefcaseIdValue, IModelError } from "@itwin/core-common";
|
|
63
63
|
import { BackendLoggerCategory } from "./BackendLoggerCategory";
|
|
64
64
|
import { IpcHost } from "./IpcHost";
|
|
65
65
|
import { _nativeDb } from "./internal/Symbols";
|
|
@@ -628,25 +628,25 @@ export class RebaseManager {
|
|
|
628
628
|
case "Inserted": {
|
|
629
629
|
if (!props)
|
|
630
630
|
throw new IModelError(IModelStatus.BadRequest, "InstancePatch with op 'Inserted' must have props");
|
|
631
|
-
const options = { forceUseId: true,
|
|
631
|
+
const options = { forceUseId: true, convertClassIdsToClassNames: true };
|
|
632
632
|
const id = nativeDb.insertInstance(props, options);
|
|
633
633
|
if (!Id64.isValidId64(id))
|
|
634
|
-
throw new IModelError(IModelStatus.BadRequest, `Failed to insert instance with id ${props.
|
|
634
|
+
throw new IModelError(IModelStatus.BadRequest, `Failed to insert instance with id ${props.ECInstanceId}`);
|
|
635
635
|
break;
|
|
636
636
|
}
|
|
637
637
|
case "Updated": {
|
|
638
638
|
if (!props)
|
|
639
639
|
throw new IModelError(IModelStatus.BadRequest, "InstancePatch with op 'Updated' must have props");
|
|
640
|
-
const isSuccess = nativeDb.updateInstance(props, {
|
|
640
|
+
const isSuccess = nativeDb.updateInstance(props, { convertClassIdsToClassNames: true });
|
|
641
641
|
if (!isSuccess)
|
|
642
|
-
throw new IModelError(IModelStatus.BadRequest, `Failed to update instance with id ${props.
|
|
642
|
+
throw new IModelError(IModelStatus.BadRequest, `Failed to update instance with id ${props.ECInstanceId}`);
|
|
643
643
|
break;
|
|
644
644
|
}
|
|
645
645
|
case "Deleted": {
|
|
646
|
-
const key = {
|
|
647
|
-
const isSuccess = nativeDb.deleteInstance(key, {
|
|
646
|
+
const key = { ECInstanceId: props.ECInstanceId, ECClassId: props.ECClassId }; // eslint-disable-line @typescript-eslint/naming-convention
|
|
647
|
+
const isSuccess = nativeDb.deleteInstance(key, { convertClassIdsToClassNames: true });
|
|
648
648
|
if (!isSuccess)
|
|
649
|
-
throw new IModelError(IModelStatus.BadRequest, `Failed to delete instance with id ${props.
|
|
649
|
+
throw new IModelError(IModelStatus.BadRequest, `Failed to delete instance with id ${props.ECInstanceId}`);
|
|
650
650
|
break;
|
|
651
651
|
}
|
|
652
652
|
default:
|
|
@@ -907,7 +907,7 @@ export class TxnManager {
|
|
|
907
907
|
// so using strict mode will cause error in this case when we will try to capture changes for first txn
|
|
908
908
|
// because the number of columns in table A will be different than what it was when the changes were originally made.
|
|
909
909
|
// So to avoid this issue we are not using strict mode here.
|
|
910
|
-
const reader = __addDisposableResource(env_1, ChangesetReader.openTxn({ db: this._iModel, txnId: id, rowOptions: {
|
|
910
|
+
const reader = __addDisposableResource(env_1, ChangesetReader.openTxn({ db: this._iModel, txnId: id, rowOptions: { classIdsToClassNames: true, abbreviateBlobs: false } }), false);
|
|
911
911
|
const pcu = __addDisposableResource(env_1, new PartialChangeUnifier(ChangeUnifierCache.createSqliteBackedCache()), false);
|
|
912
912
|
while (reader.step()) {
|
|
913
913
|
pcu.appendFrom(reader);
|
|
@@ -1010,12 +1010,9 @@ export class TxnManager {
|
|
|
1010
1010
|
Logger.logInfo(BackendLoggerCategory.IModelDb, "dgn_Domain insert conflict during rebase. Keeping the merged row and skipping the local change.", getChangeMetaData());
|
|
1011
1011
|
return DbConflictResolution.Skip;
|
|
1012
1012
|
}
|
|
1013
|
+
// Where schema sync is in use, native has already resolved ec_ rows by comparing sync db
|
|
1014
|
+
// versions before we get here.
|
|
1013
1015
|
if (args.cause === "Data" && !args.indirect) {
|
|
1014
|
-
if (args.tableName === "be_Prop") {
|
|
1015
|
-
if (args.getValueText(0, "Old") === "ec_Db" && args.getValueText(1, "Old") === "localDbInfo") {
|
|
1016
|
-
return DbConflictResolution.Skip;
|
|
1017
|
-
}
|
|
1018
|
-
}
|
|
1019
1016
|
if (args.tableName.startsWith("ec_")) {
|
|
1020
1017
|
return DbConflictResolution.Skip;
|
|
1021
1018
|
}
|
|
@@ -1024,6 +1021,12 @@ export class TxnManager {
|
|
|
1024
1021
|
if (args.tableName.startsWith("ec_")) {
|
|
1025
1022
|
return DbConflictResolution.Skip;
|
|
1026
1023
|
}
|
|
1024
|
+
// Skip PRIMARY KEY conflicts for inserted rows that were pre-reserved via SchemaSync - these are the same shared element.
|
|
1025
|
+
const isReserved = (id) => typeof id === "string" && Id64.getBriefcaseId(id) === BriefcaseIdValue.SchemaSyncElementReserved;
|
|
1026
|
+
const pkValues = args.getPrimaryKeyValues();
|
|
1027
|
+
if (args.opcode === "Inserted" && pkValues.length > 0 && pkValues.every(isReserved)) {
|
|
1028
|
+
return DbConflictResolution.Skip;
|
|
1029
|
+
}
|
|
1027
1030
|
}
|
|
1028
1031
|
try {
|
|
1029
1032
|
const resolution = this.rebaser.onConflict(args);
|