@itwin/core-backend 4.3.0-dev.36 → 4.3.0-dev.38

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.
Files changed (100) hide show
  1. package/lib/cjs/BackendHubAccess.js.map +1 -1
  2. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  3. package/lib/cjs/BisCoreSchema.js.map +1 -1
  4. package/lib/cjs/BlobContainerService.js.map +1 -1
  5. package/lib/cjs/BriefcaseManager.js +3 -3
  6. package/lib/cjs/BriefcaseManager.js.map +1 -1
  7. package/lib/cjs/Category.js.map +1 -1
  8. package/lib/cjs/ChangeSummaryManager.js +2 -2
  9. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  10. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  11. package/lib/cjs/ChangedElementsManager.js.map +1 -1
  12. package/lib/cjs/ChangesetECAdaptor.js +217 -217
  13. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  14. package/lib/cjs/ChannelControl.js.map +1 -1
  15. package/lib/cjs/CheckpointManager.js +1 -1
  16. package/lib/cjs/CheckpointManager.js.map +1 -1
  17. package/lib/cjs/ClassRegistry.js +5 -5
  18. package/lib/cjs/ClassRegistry.js.map +1 -1
  19. package/lib/cjs/CloudSqlite.js.map +1 -1
  20. package/lib/cjs/CodeService.js.map +1 -1
  21. package/lib/cjs/CodeSpecs.js.map +1 -1
  22. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  23. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  24. package/lib/cjs/DevTools.js.map +1 -1
  25. package/lib/cjs/DisplayStyle.js.map +1 -1
  26. package/lib/cjs/ECDb.js.map +1 -1
  27. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  28. package/lib/cjs/ECSqlStatement.js.map +1 -1
  29. package/lib/cjs/Element.js.map +1 -1
  30. package/lib/cjs/ElementAspect.js.map +1 -1
  31. package/lib/cjs/ElementGraphics.js.map +1 -1
  32. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  33. package/lib/cjs/Entity.js.map +1 -1
  34. package/lib/cjs/EntityReferences.js.map +1 -1
  35. package/lib/cjs/ExportGraphics.js.map +1 -1
  36. package/lib/cjs/ExternalSource.js.map +1 -1
  37. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  38. package/lib/cjs/GeometrySummary.js +47 -47
  39. package/lib/cjs/GeometrySummary.js.map +1 -1
  40. package/lib/cjs/HubMock.js.map +1 -1
  41. package/lib/cjs/IModelCloneContext.js.map +1 -1
  42. package/lib/cjs/IModelDb.d.ts +1 -1
  43. package/lib/cjs/IModelDb.d.ts.map +1 -1
  44. package/lib/cjs/IModelDb.js +20 -16
  45. package/lib/cjs/IModelDb.js.map +1 -1
  46. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  47. package/lib/cjs/IModelHost.js.map +1 -1
  48. package/lib/cjs/IModelJsFs.js.map +1 -1
  49. package/lib/cjs/IpcHost.js.map +1 -1
  50. package/lib/cjs/LineStyle.js.map +1 -1
  51. package/lib/cjs/LocalHub.js +2 -2
  52. package/lib/cjs/LocalHub.js.map +1 -1
  53. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  54. package/lib/cjs/Material.js.map +1 -1
  55. package/lib/cjs/Model.js.map +1 -1
  56. package/lib/cjs/NativeAppStorage.js.map +1 -1
  57. package/lib/cjs/NativeHost.js.map +1 -1
  58. package/lib/cjs/NavigationRelationship.js.map +1 -1
  59. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  60. package/lib/cjs/PropertyStore.js.map +1 -1
  61. package/lib/cjs/Relationship.js.map +1 -1
  62. package/lib/cjs/RpcBackend.js.map +1 -1
  63. package/lib/cjs/SQLiteDb.js.map +1 -1
  64. package/lib/cjs/Schema.js.map +1 -1
  65. package/lib/cjs/SchemaSync.js.map +1 -1
  66. package/lib/cjs/SchemaUtils.js.map +1 -1
  67. package/lib/cjs/ServerBasedLocks.js.map +1 -1
  68. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  69. package/lib/cjs/SqliteStatement.js.map +1 -1
  70. package/lib/cjs/Texture.js.map +1 -1
  71. package/lib/cjs/TileStorage.js.map +1 -1
  72. package/lib/cjs/TxnManager.js.map +1 -1
  73. package/lib/cjs/ViewDefinition.js.map +1 -1
  74. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  75. package/lib/cjs/ViewStore.js.map +1 -1
  76. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  77. package/lib/cjs/assets/Settings/Schemas/Cloud.Schema.json +44 -44
  78. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +31 -31
  79. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +52 -52
  80. package/lib/cjs/assets/Settings/backend.setting.json5 +132 -132
  81. package/lib/cjs/core-backend.js.map +1 -1
  82. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  83. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  84. package/lib/cjs/domains/GenericElements.js.map +1 -1
  85. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  86. package/lib/cjs/rpc/multipart.js.map +1 -1
  87. package/lib/cjs/rpc/tracing.js.map +1 -1
  88. package/lib/cjs/rpc/web/logging.js.map +1 -1
  89. package/lib/cjs/rpc/web/request.js.map +1 -1
  90. package/lib/cjs/rpc/web/response.js.map +1 -1
  91. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  92. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  93. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  94. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  95. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  96. package/lib/cjs/rpc-impl/WipRpcImpl.js.map +1 -1
  97. package/lib/cjs/workspace/Settings.js.map +1 -1
  98. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  99. package/lib/cjs/workspace/Workspace.js.map +1 -1
  100. package/package.json +12 -12
@@ -204,7 +204,7 @@ class IModelDb extends core_common_1.IModel {
204
204
  });
205
205
  }
206
206
  }
207
- /** Close this IModel, if it is currently open. */
207
+ /** Close this IModel, if it is currently open, and save changes if it was opened in ReadWrite mode. */
208
208
  close() {
209
209
  if (!this.isOpen)
210
210
  return; // don't continue if already closed
@@ -215,7 +215,9 @@ class IModelDb extends core_common_1.IModel {
215
215
  this._locks = undefined;
216
216
  this._codeService?.close();
217
217
  this._codeService = undefined;
218
- this.nativeDb.closeIModel();
218
+ if (!this.isReadonly)
219
+ this.saveChanges();
220
+ this.nativeDb.closeFile();
219
221
  }
220
222
  /** @internal */
221
223
  async refreshContainer(_userAccessToken) { }
@@ -766,7 +768,7 @@ class IModelDb extends core_common_1.IModel {
766
768
  domain: core_common_1.DomainOptions.CheckRecommendedUpgrades,
767
769
  };
768
770
  const nativeDb = this.openDgnDb(file, openMode, upgradeOptions);
769
- nativeDb.closeIModel();
771
+ nativeDb.closeFile();
770
772
  }
771
773
  catch (err) {
772
774
  result = err.errorNumber;
@@ -1778,9 +1780,9 @@ exports.IModelDb = IModelDb;
1778
1780
  */
1779
1781
  getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
1780
1782
  if (aspectClassFullName === undefined) {
1781
- const allAspects = this.runInstanceQuery(`SELECT $ FROM (
1782
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
1783
- UNION ALL
1783
+ const allAspects = this.runInstanceQuery(`SELECT $ FROM (
1784
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
1785
+ UNION ALL
1784
1786
  SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
1785
1787
  if (allAspects.length === 0)
1786
1788
  core_bentley_1.Logger.logError(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -1798,7 +1800,7 @@ exports.IModelDb = IModelDb;
1798
1800
  let classIdList = IModelDb.Elements.classMap.get(aspectClassFullName);
1799
1801
  if (classIdList === undefined) {
1800
1802
  const classIds = [];
1801
- this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
1803
+ this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
1802
1804
  and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`, (statement) => {
1803
1805
  while (statement.step() === core_bentley_1.DbResult.BE_SQLITE_ROW)
1804
1806
  classIds.push(statement.getValue(0).getId());
@@ -1813,10 +1815,10 @@ exports.IModelDb = IModelDb;
1813
1815
  return [];
1814
1816
  }
1815
1817
  // Execute an instance query to retrieve all aspects from all the derived classes
1816
- const aspects = this.runInstanceQuery(`SELECT $ FROM (
1817
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
1818
- UNION ALL
1819
- SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
1818
+ const aspects = this.runInstanceQuery(`SELECT $ FROM (
1819
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
1820
+ UNION ALL
1821
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
1820
1822
  ) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
1821
1823
  if (aspects.length === 0)
1822
1824
  core_bentley_1.Logger.logError(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2189,7 +2191,7 @@ class BriefcaseDb extends IModelDb {
2189
2191
  static async doUpgrade(briefcase, upgradeOptions, description) {
2190
2192
  const nativeDb = this.openDgnDb({ path: briefcase.fileName }, core_bentley_1.OpenMode.ReadWrite, upgradeOptions); // performs the upgrade
2191
2193
  const wasChanges = nativeDb.hasPendingTxns();
2192
- nativeDb.closeIModel();
2194
+ nativeDb.closeFile();
2193
2195
  if (wasChanges)
2194
2196
  await withBriefcaseDb(briefcase, async (db) => db.pushChanges({ ...briefcase, description, retainLocks: true }));
2195
2197
  }
@@ -2279,7 +2281,7 @@ class BriefcaseDb extends IModelDb {
2279
2281
  // Unclosed statements will produce BUSY error when attempting to close.
2280
2282
  this.clearCaches();
2281
2283
  // The following resets the native db's pointer to this JavaScript object.
2282
- this.nativeDb.closeIModel();
2284
+ this.nativeDb.closeFile();
2283
2285
  this.nativeDb.openIModel(fileName, openMode);
2284
2286
  // Restore the native db's pointer to this JavaScript object.
2285
2287
  this.nativeDb.setIModelDb(this);
@@ -2579,9 +2581,11 @@ class StandaloneDb extends BriefcaseDb {
2579
2581
  */
2580
2582
  static upgradeStandaloneSchemas(filePath) {
2581
2583
  let nativeDb = this.openDgnDb({ path: filePath }, core_bentley_1.OpenMode.ReadWrite, { profile: core_common_1.ProfileOptions.Upgrade, schemaLockHeld: true });
2582
- nativeDb.closeIModel();
2584
+ nativeDb.saveChanges();
2585
+ nativeDb.closeFile();
2583
2586
  nativeDb = this.openDgnDb({ path: filePath }, core_bentley_1.OpenMode.ReadWrite, { domain: core_common_1.DomainOptions.Upgrade, schemaLockHeld: true });
2584
- nativeDb.closeIModel();
2587
+ nativeDb.saveChanges();
2588
+ nativeDb.closeFile();
2585
2589
  }
2586
2590
  /** Creates or updates views in the iModel to permit visualizing the EC content as ECClasses and ECProperties rather than raw database tables and columns.
2587
2591
  * This can be helpful when debugging the EC data, especially when the raw tables make use of shared columns or spread data across multiple tables.
@@ -2613,7 +2617,7 @@ class StandaloneDb extends BriefcaseDb {
2613
2617
  return new StandaloneDb({ nativeDb, key: file.key, openMode, briefcaseId: core_common_1.BriefcaseIdValue.Unassigned });
2614
2618
  }
2615
2619
  catch (error) {
2616
- nativeDb.closeIModel();
2620
+ nativeDb.closeFile();
2617
2621
  throw error;
2618
2622
  }
2619
2623
  }