@itwin/core-backend 4.8.0-dev.28 → 4.8.0-dev.29

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 (123) 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.map +1 -1
  6. package/lib/cjs/Category.js.map +1 -1
  7. package/lib/cjs/ChangeSummaryManager.js +2 -2
  8. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  9. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  10. package/lib/cjs/ChangedElementsManager.js.map +1 -1
  11. package/lib/cjs/ChangesetECAdaptor.js +242 -242
  12. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  13. package/lib/cjs/ChannelControl.js.map +1 -1
  14. package/lib/cjs/CheckpointManager.js.map +1 -1
  15. package/lib/cjs/ClassRegistry.js +5 -5
  16. package/lib/cjs/ClassRegistry.js.map +1 -1
  17. package/lib/cjs/CloudSqlite.js.map +1 -1
  18. package/lib/cjs/CodeService.js.map +1 -1
  19. package/lib/cjs/CodeSpecs.js.map +1 -1
  20. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  21. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  22. package/lib/cjs/DevTools.js.map +1 -1
  23. package/lib/cjs/DisplayStyle.js.map +1 -1
  24. package/lib/cjs/ECDb.js.map +1 -1
  25. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  26. package/lib/cjs/ECSqlStatement.js.map +1 -1
  27. package/lib/cjs/Element.js.map +1 -1
  28. package/lib/cjs/ElementAspect.js.map +1 -1
  29. package/lib/cjs/ElementGraphics.js.map +1 -1
  30. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  31. package/lib/cjs/Entity.js.map +1 -1
  32. package/lib/cjs/EntityReferences.js.map +1 -1
  33. package/lib/cjs/ExportGraphics.js.map +1 -1
  34. package/lib/cjs/ExternalSource.js.map +1 -1
  35. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  36. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  37. package/lib/cjs/GeometrySummary.js +47 -47
  38. package/lib/cjs/GeometrySummary.js.map +1 -1
  39. package/lib/cjs/HubMock.js.map +1 -1
  40. package/lib/cjs/IModelCloneContext.js.map +1 -1
  41. package/lib/cjs/IModelDb.d.ts.map +1 -1
  42. package/lib/cjs/IModelDb.js +17 -11
  43. package/lib/cjs/IModelDb.js.map +1 -1
  44. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  45. package/lib/cjs/IModelHost.js.map +1 -1
  46. package/lib/cjs/IModelJsFs.js.map +1 -1
  47. package/lib/cjs/IpcHost.js.map +1 -1
  48. package/lib/cjs/LineStyle.js.map +1 -1
  49. package/lib/cjs/LocalHub.js +1 -1
  50. package/lib/cjs/LocalHub.js.map +1 -1
  51. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  52. package/lib/cjs/LockControl.d.ts +7 -0
  53. package/lib/cjs/LockControl.d.ts.map +1 -1
  54. package/lib/cjs/LockControl.js.map +1 -1
  55. package/lib/cjs/Material.js.map +1 -1
  56. package/lib/cjs/Model.js.map +1 -1
  57. package/lib/cjs/NativeAppStorage.js.map +1 -1
  58. package/lib/cjs/NativeHost.js.map +1 -1
  59. package/lib/cjs/NavigationRelationship.js.map +1 -1
  60. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  61. package/lib/cjs/PropertyStore.js.map +1 -1
  62. package/lib/cjs/Relationship.js.map +1 -1
  63. package/lib/cjs/RpcBackend.js.map +1 -1
  64. package/lib/cjs/SQLiteDb.js.map +1 -1
  65. package/lib/cjs/Schema.js.map +1 -1
  66. package/lib/cjs/SchemaSync.js.map +1 -1
  67. package/lib/cjs/SchemaUtils.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/TextAnnotationElement.js.map +1 -1
  71. package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
  72. package/lib/cjs/TextAnnotationLayout.js.map +1 -1
  73. package/lib/cjs/Texture.js.map +1 -1
  74. package/lib/cjs/TileStorage.js.map +1 -1
  75. package/lib/cjs/TxnManager.js.map +1 -1
  76. package/lib/cjs/ViewDefinition.js.map +1 -1
  77. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  78. package/lib/cjs/ViewStore.js.map +1 -1
  79. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  80. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  81. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  82. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  83. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  84. package/lib/cjs/core-backend.d.ts +1 -0
  85. package/lib/cjs/core-backend.d.ts.map +1 -1
  86. package/lib/cjs/core-backend.js +1 -0
  87. package/lib/cjs/core-backend.js.map +1 -1
  88. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  89. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  90. package/lib/cjs/domains/GenericElements.js.map +1 -1
  91. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  92. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  93. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  94. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  95. package/lib/cjs/internal/NoLocks.d.ts.map +1 -1
  96. package/lib/cjs/internal/NoLocks.js +1 -0
  97. package/lib/cjs/internal/NoLocks.js.map +1 -1
  98. package/lib/cjs/internal/ServerBasedLocks.d.ts +1 -0
  99. package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
  100. package/lib/cjs/internal/ServerBasedLocks.js +6 -0
  101. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  102. package/lib/cjs/internal/Symbols.js.map +1 -1
  103. package/lib/cjs/internal/cross-package.js.map +1 -1
  104. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  105. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  106. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  107. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  108. package/lib/cjs/rpc/multipart.js.map +1 -1
  109. package/lib/cjs/rpc/tracing.js.map +1 -1
  110. package/lib/cjs/rpc/web/logging.js.map +1 -1
  111. package/lib/cjs/rpc/web/request.js.map +1 -1
  112. package/lib/cjs/rpc/web/response.js.map +1 -1
  113. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  114. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  115. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  116. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  117. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  118. package/lib/cjs/rpc-impl/WipRpcImpl.js.map +1 -1
  119. package/lib/cjs/workspace/Settings.js.map +1 -1
  120. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  121. package/lib/cjs/workspace/Workspace.js.map +1 -1
  122. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  123. package/package.json +11 -11
@@ -1905,9 +1905,9 @@ IModelDb._settingPropNamespace = "settings";
1905
1905
  */
1906
1906
  getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
1907
1907
  if (aspectClassFullName === undefined) {
1908
- const allAspects = this.runInstanceQuery(`SELECT $ FROM (
1909
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
1910
- UNION ALL
1908
+ const allAspects = this.runInstanceQuery(`SELECT $ FROM (
1909
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
1910
+ UNION ALL
1911
1911
  SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
1912
1912
  if (allAspects.length === 0)
1913
1913
  core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -1925,7 +1925,7 @@ IModelDb._settingPropNamespace = "settings";
1925
1925
  let classIdList = IModelDb.Elements.classMap.get(aspectClassFullName);
1926
1926
  if (classIdList === undefined) {
1927
1927
  const classIds = [];
1928
- this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
1928
+ this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
1929
1929
  and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`, (statement) => {
1930
1930
  while (statement.step() === core_bentley_1.DbResult.BE_SQLITE_ROW)
1931
1931
  classIds.push(statement.getValue(0).getId());
@@ -1940,10 +1940,10 @@ IModelDb._settingPropNamespace = "settings";
1940
1940
  return [];
1941
1941
  }
1942
1942
  // Execute an instance query to retrieve all aspects from all the derived classes
1943
- const aspects = this.runInstanceQuery(`SELECT $ FROM (
1944
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
1945
- UNION ALL
1946
- SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
1943
+ const aspects = this.runInstanceQuery(`SELECT $ FROM (
1944
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
1945
+ UNION ALL
1946
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
1947
1947
  ) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
1948
1948
  if (aspects.length === 0)
1949
1949
  core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2648,10 +2648,16 @@ class BriefcaseDb extends IModelDb {
2648
2648
  async pushChanges(arg) {
2649
2649
  if (this.briefcaseId === core_common_1.BriefcaseIdValue.Unassigned)
2650
2650
  return;
2651
- if (this[Symbols_1._nativeDb].hasUnsavedChanges())
2651
+ if (this[Symbols_1._nativeDb].hasUnsavedChanges()) {
2652
2652
  throw new core_common_1.IModelError(core_bentley_1.ChangeSetStatus.HasUncommittedChanges, "Cannot push with unsaved changes");
2653
- if (!this[Symbols_1._nativeDb].hasPendingTxns())
2654
- return; // nothing to push
2653
+ }
2654
+ else if (!this[Symbols_1._nativeDb].hasPendingTxns()) {
2655
+ // Nothing to push.
2656
+ if (!arg.retainLocks) {
2657
+ await this.locks.releaseAllLocks();
2658
+ }
2659
+ return;
2660
+ }
2655
2661
  // pushing changes requires a writeable briefcase
2656
2662
  await this.executeWritable(async () => {
2657
2663
  await BriefcaseManager_1.BriefcaseManager.pullMergePush(this, arg);