@itwin/core-backend 4.7.0-dev.10 → 4.7.0-dev.11
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/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +3 -1
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +2 -2
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangedElementsManager.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +237 -237
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChannelControl.js.map +1 -1
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.js +5 -5
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/GeometrySummary.js +47 -47
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/HubMock.js.map +1 -1
- package/lib/cjs/IModelCloneContext.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +48 -13
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.js +1 -1
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SchemaSync.d.ts +8 -6
- package/lib/cjs/SchemaSync.d.ts.map +1 -1
- package/lib/cjs/SchemaSync.js +75 -14
- package/lib/cjs/SchemaSync.js.map +1 -1
- package/lib/cjs/SchemaUtils.js.map +1 -1
- package/lib/cjs/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/SqliteChangesetReader.js.map +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/TextAnnotationLayout.js.map +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.js.map +1 -1
- package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
- package/lib/cjs/assets/Settings/Schemas/Cloud.Schema.json +44 -44
- package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +31 -31
- package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +52 -52
- package/lib/cjs/assets/Settings/backend.setting.json5 +132 -132
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.js.map +1 -1
- package/lib/cjs/domains/GenericSchema.js.map +1 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.js.map +1 -1
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/WipRpcImpl.js.map +1 -1
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/package.json +12 -12
package/lib/cjs/IModelDb.js
CHANGED
|
@@ -657,7 +657,7 @@ class IModelDb extends core_common_1.IModel {
|
|
|
657
657
|
const schemaSyncDbUri = syncAccess.getUri();
|
|
658
658
|
this.saveChanges();
|
|
659
659
|
let stat = this.nativeDb.importSchemas(schemaFileNames, { schemaLockHeld: false, ecSchemaXmlContext: maybeCustomNativeContext, schemaSyncDbUri });
|
|
660
|
-
if (core_bentley_1.DbResult.
|
|
660
|
+
if (core_bentley_1.DbResult.BE_SQLITE_ERROR_DataTransformRequired === stat) {
|
|
661
661
|
this.abandonChanges();
|
|
662
662
|
if (this.nativeDb.getITwinId() !== core_bentley_1.Guid.empty)
|
|
663
663
|
await this.acquireSchemaLock();
|
|
@@ -697,7 +697,7 @@ class IModelDb extends core_common_1.IModel {
|
|
|
697
697
|
const schemaSyncDbUri = syncAccess.getUri();
|
|
698
698
|
this.saveChanges();
|
|
699
699
|
let stat = this.nativeDb.importXmlSchemas(serializedXmlSchemas, { schemaLockHeld: false, schemaSyncDbUri });
|
|
700
|
-
if (core_bentley_1.DbResult.
|
|
700
|
+
if (core_bentley_1.DbResult.BE_SQLITE_ERROR_DataTransformRequired === stat) {
|
|
701
701
|
this.abandonChanges();
|
|
702
702
|
if (this.nativeDb.getITwinId() !== core_bentley_1.Guid.empty)
|
|
703
703
|
await this.acquireSchemaLock();
|
|
@@ -1827,9 +1827,9 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1827
1827
|
*/
|
|
1828
1828
|
getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
|
|
1829
1829
|
if (aspectClassFullName === undefined) {
|
|
1830
|
-
const allAspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
1831
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
|
|
1832
|
-
UNION ALL
|
|
1830
|
+
const allAspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
1831
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
|
|
1832
|
+
UNION ALL
|
|
1833
1833
|
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
|
|
1834
1834
|
if (allAspects.length === 0)
|
|
1835
1835
|
core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
|
|
@@ -1847,7 +1847,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1847
1847
|
let classIdList = IModelDb.Elements.classMap.get(aspectClassFullName);
|
|
1848
1848
|
if (classIdList === undefined) {
|
|
1849
1849
|
const classIds = [];
|
|
1850
|
-
this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
|
|
1850
|
+
this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
|
|
1851
1851
|
and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`, (statement) => {
|
|
1852
1852
|
while (statement.step() === core_bentley_1.DbResult.BE_SQLITE_ROW)
|
|
1853
1853
|
classIds.push(statement.getValue(0).getId());
|
|
@@ -1862,10 +1862,10 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1862
1862
|
return [];
|
|
1863
1863
|
}
|
|
1864
1864
|
// Execute an instance query to retrieve all aspects from all the derived classes
|
|
1865
|
-
const aspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
1866
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
1867
|
-
UNION ALL
|
|
1868
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
1865
|
+
const aspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
1866
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
1867
|
+
UNION ALL
|
|
1868
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
1869
1869
|
) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
|
|
1870
1870
|
if (aspects.length === 0)
|
|
1871
1871
|
core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
|
|
@@ -2243,9 +2243,30 @@ class BriefcaseDb extends IModelDb {
|
|
|
2243
2243
|
}
|
|
2244
2244
|
/** Upgrades the profile or domain schemas. File must be closed before this call and is always left closed. */
|
|
2245
2245
|
static async doUpgrade(briefcase, upgradeOptions, description) {
|
|
2246
|
-
|
|
2247
|
-
const
|
|
2248
|
-
|
|
2246
|
+
let wasChanges = false;
|
|
2247
|
+
const executeUpgrade = () => {
|
|
2248
|
+
const nativeDb = this.openDgnDb({ path: briefcase.fileName }, core_bentley_1.OpenMode.ReadWrite, upgradeOptions); // performs the upgrade
|
|
2249
|
+
wasChanges = nativeDb.hasPendingTxns();
|
|
2250
|
+
nativeDb.closeFile();
|
|
2251
|
+
};
|
|
2252
|
+
const isSchemaSyncEnabled = await withBriefcaseDb(briefcase, async (db) => {
|
|
2253
|
+
await SchemaSync_1.SchemaSync.pull(db);
|
|
2254
|
+
return db.nativeDb.schemaSyncEnabled();
|
|
2255
|
+
});
|
|
2256
|
+
if (isSchemaSyncEnabled) {
|
|
2257
|
+
await SchemaSync_1.SchemaSync.withLockedAccess(briefcase, { openMode: core_bentley_1.OpenMode.Readonly, operationName: "schema sync" }, async (syncAccess) => {
|
|
2258
|
+
const schemaSyncDbUri = syncAccess.getUri();
|
|
2259
|
+
executeUpgrade();
|
|
2260
|
+
await withBriefcaseDb(briefcase, async (db) => {
|
|
2261
|
+
db.nativeDb.schemaSyncPush(schemaSyncDbUri);
|
|
2262
|
+
db.saveChanges();
|
|
2263
|
+
});
|
|
2264
|
+
syncAccess.synchronizeWithCloud();
|
|
2265
|
+
});
|
|
2266
|
+
}
|
|
2267
|
+
else {
|
|
2268
|
+
executeUpgrade();
|
|
2269
|
+
}
|
|
2249
2270
|
if (wasChanges)
|
|
2250
2271
|
await withBriefcaseDb(briefcase, async (db) => db.pushChanges({ ...briefcase, description, retainLocks: true }));
|
|
2251
2272
|
}
|
|
@@ -2283,6 +2304,7 @@ class BriefcaseDb extends IModelDb {
|
|
|
2283
2304
|
}
|
|
2284
2305
|
return;
|
|
2285
2306
|
}
|
|
2307
|
+
throw error;
|
|
2286
2308
|
}
|
|
2287
2309
|
try {
|
|
2288
2310
|
await this.doUpgrade(briefcase, { domain: core_common_1.DomainOptions.Upgrade }, "Upgraded domain schemas");
|
|
@@ -2298,6 +2320,7 @@ class BriefcaseDb extends IModelDb {
|
|
|
2298
2320
|
await withBriefcaseDb(briefcase, async (db) => db.locks.releaseAllLocks());
|
|
2299
2321
|
}
|
|
2300
2322
|
}
|
|
2323
|
+
throw error;
|
|
2301
2324
|
}
|
|
2302
2325
|
}
|
|
2303
2326
|
/** Open a briefcase file and return a new BriefcaseDb to interact with it.
|
|
@@ -2377,6 +2400,14 @@ class BriefcaseDb extends IModelDb {
|
|
|
2377
2400
|
args.dump();
|
|
2378
2401
|
}
|
|
2379
2402
|
else {
|
|
2403
|
+
if (args.tableName === "be_Prop") {
|
|
2404
|
+
if (args.getValueText(0, core_bentley_1.DbChangeStage.Old) === "ec_Db" && args.getValueText(1, core_bentley_1.DbChangeStage.Old) === "localDbInfo") {
|
|
2405
|
+
return core_bentley_1.DbConflictResolution.Replace;
|
|
2406
|
+
}
|
|
2407
|
+
}
|
|
2408
|
+
if (args.tableName.startsWith("ec_")) {
|
|
2409
|
+
return core_bentley_1.DbConflictResolution.Skip;
|
|
2410
|
+
}
|
|
2380
2411
|
const msg = "UPDATE/DELETE before value do not match with one in db or CASCADE action was triggered.";
|
|
2381
2412
|
args.setLastError(msg);
|
|
2382
2413
|
core_bentley_1.Logger.logError(category, msg);
|
|
@@ -2396,6 +2427,9 @@ class BriefcaseDb extends IModelDb {
|
|
|
2396
2427
|
args.dump();
|
|
2397
2428
|
}
|
|
2398
2429
|
else {
|
|
2430
|
+
if (args.tableName.startsWith("ec_")) {
|
|
2431
|
+
return core_bentley_1.DbConflictResolution.Skip;
|
|
2432
|
+
}
|
|
2399
2433
|
const msg = "PRIMARY KEY INSERT CONFLICT - rejecting this changeset";
|
|
2400
2434
|
args.setLastError(msg);
|
|
2401
2435
|
core_bentley_1.Logger.logError(category, msg);
|
|
@@ -2505,6 +2539,7 @@ class BriefcaseDb extends IModelDb {
|
|
|
2505
2539
|
async pullChanges(arg) {
|
|
2506
2540
|
await this.executeWritable(async () => {
|
|
2507
2541
|
await BriefcaseManager_1.BriefcaseManager.pullAndApplyChangesets(this, arg ?? {});
|
|
2542
|
+
await SchemaSync_1.SchemaSync.pull(this);
|
|
2508
2543
|
this.initializeIModelDb();
|
|
2509
2544
|
});
|
|
2510
2545
|
IpcHost_1.IpcHost.notifyTxns(this, "notifyPulledChanges", this.changeset);
|