@itwin/core-backend 5.11.0-dev.8 → 5.12.0-dev.1

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 (111) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/lib/cjs/BlobContainerService.d.ts +14 -1
  3. package/lib/cjs/BlobContainerService.d.ts.map +1 -1
  4. package/lib/cjs/BlobContainerService.js.map +1 -1
  5. package/lib/cjs/BriefcaseManager.d.ts +3 -1
  6. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseManager.js +3 -3
  8. package/lib/cjs/BriefcaseManager.js.map +1 -1
  9. package/lib/cjs/CloudSqlite.d.ts +1 -1
  10. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  11. package/lib/cjs/CloudSqlite.js +4 -1
  12. package/lib/cjs/CloudSqlite.js.map +1 -1
  13. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  14. package/lib/cjs/DisplayStyle.js +4 -8
  15. package/lib/cjs/DisplayStyle.js.map +1 -1
  16. package/lib/cjs/EditTxn.d.ts +56 -1
  17. package/lib/cjs/EditTxn.d.ts.map +1 -1
  18. package/lib/cjs/EditTxn.js +138 -0
  19. package/lib/cjs/EditTxn.js.map +1 -1
  20. package/lib/cjs/GeoCoordConfig.d.ts +6 -0
  21. package/lib/cjs/GeoCoordConfig.d.ts.map +1 -1
  22. package/lib/cjs/GeoCoordConfig.js +6 -0
  23. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  24. package/lib/cjs/IModelDb.d.ts +40 -0
  25. package/lib/cjs/IModelDb.d.ts.map +1 -1
  26. package/lib/cjs/IModelDb.js +18 -0
  27. package/lib/cjs/IModelDb.js.map +1 -1
  28. package/lib/cjs/IModelHost.d.ts +5 -3
  29. package/lib/cjs/IModelHost.d.ts.map +1 -1
  30. package/lib/cjs/IModelHost.js.map +1 -1
  31. package/lib/cjs/NativeHost.js +1 -1
  32. package/lib/cjs/NativeHost.js.map +1 -1
  33. package/lib/cjs/workspace/SettingsEditor.d.ts +4 -9
  34. package/lib/cjs/workspace/SettingsEditor.d.ts.map +1 -1
  35. package/lib/cjs/workspace/SettingsEditor.js +31 -15
  36. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  37. package/lib/esm/BlobContainerService.d.ts +14 -1
  38. package/lib/esm/BlobContainerService.d.ts.map +1 -1
  39. package/lib/esm/BlobContainerService.js.map +1 -1
  40. package/lib/esm/BriefcaseManager.d.ts +3 -1
  41. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  42. package/lib/esm/BriefcaseManager.js +3 -3
  43. package/lib/esm/BriefcaseManager.js.map +1 -1
  44. package/lib/esm/CloudSqlite.d.ts +1 -1
  45. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  46. package/lib/esm/CloudSqlite.js +4 -1
  47. package/lib/esm/CloudSqlite.js.map +1 -1
  48. package/lib/esm/DisplayStyle.d.ts.map +1 -1
  49. package/lib/esm/DisplayStyle.js +4 -8
  50. package/lib/esm/DisplayStyle.js.map +1 -1
  51. package/lib/esm/EditTxn.d.ts +56 -1
  52. package/lib/esm/EditTxn.d.ts.map +1 -1
  53. package/lib/esm/EditTxn.js +140 -2
  54. package/lib/esm/EditTxn.js.map +1 -1
  55. package/lib/esm/GeoCoordConfig.d.ts +6 -0
  56. package/lib/esm/GeoCoordConfig.d.ts.map +1 -1
  57. package/lib/esm/GeoCoordConfig.js +6 -0
  58. package/lib/esm/GeoCoordConfig.js.map +1 -1
  59. package/lib/esm/IModelDb.d.ts +40 -0
  60. package/lib/esm/IModelDb.d.ts.map +1 -1
  61. package/lib/esm/IModelDb.js +18 -0
  62. package/lib/esm/IModelDb.js.map +1 -1
  63. package/lib/esm/IModelHost.d.ts +5 -3
  64. package/lib/esm/IModelHost.d.ts.map +1 -1
  65. package/lib/esm/IModelHost.js.map +1 -1
  66. package/lib/esm/NativeHost.js +1 -1
  67. package/lib/esm/NativeHost.js.map +1 -1
  68. package/lib/esm/test/TestUtils.d.ts +17 -2
  69. package/lib/esm/test/TestUtils.d.ts.map +1 -1
  70. package/lib/esm/test/TestUtils.js +21 -2
  71. package/lib/esm/test/TestUtils.js.map +1 -1
  72. package/lib/esm/test/annotations/TextAnnotation.test.js +81 -16
  73. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  74. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +4 -2
  75. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  76. package/lib/esm/test/ecdb/ECDb.test.js +1 -1
  77. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  78. package/lib/esm/test/ecdb/ECSqlStatement.test.js +8 -2
  79. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  80. package/lib/esm/test/hubaccess/CodeSwap.test.d.ts +2 -0
  81. package/lib/esm/test/hubaccess/CodeSwap.test.d.ts.map +1 -0
  82. package/lib/esm/test/hubaccess/CodeSwap.test.js +431 -0
  83. package/lib/esm/test/hubaccess/CodeSwap.test.js.map +1 -0
  84. package/lib/esm/test/imodel/IModel.test.js +10 -2
  85. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  86. package/lib/esm/test/standalone/ChangeElementParentModel.test.d.ts +2 -0
  87. package/lib/esm/test/standalone/ChangeElementParentModel.test.d.ts.map +1 -0
  88. package/lib/esm/test/standalone/ChangeElementParentModel.test.js +460 -0
  89. package/lib/esm/test/standalone/ChangeElementParentModel.test.js.map +1 -0
  90. package/lib/esm/test/standalone/ChangesetReader.test.js +3 -0
  91. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  92. package/lib/esm/test/standalone/CloudSqlite.test.d.ts +2 -0
  93. package/lib/esm/test/standalone/CloudSqlite.test.d.ts.map +1 -0
  94. package/lib/esm/test/standalone/CloudSqlite.test.js +43 -0
  95. package/lib/esm/test/standalone/CloudSqlite.test.js.map +1 -0
  96. package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
  97. package/lib/esm/test/standalone/IModelWrite.test.js +2 -33
  98. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  99. package/lib/esm/test/standalone/ITwinWorkspace.test.js +118 -1
  100. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  101. package/lib/esm/test/standalone/Workspace.test.js +2 -2
  102. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  103. package/lib/esm/workspace/SettingsEditor.d.ts +4 -9
  104. package/lib/esm/workspace/SettingsEditor.d.ts.map +1 -1
  105. package/lib/esm/workspace/SettingsEditor.js +31 -15
  106. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  107. package/package.json +15 -15
  108. package/lib/esm/test/misc/GeoServices.test.d.ts +0 -2
  109. package/lib/esm/test/misc/GeoServices.test.d.ts.map +0 -1
  110. package/lib/esm/test/misc/GeoServices.test.js +0 -918
  111. package/lib/esm/test/misc/GeoServices.test.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CloudSqlite.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudSqlite.test.d.ts","sourceRoot":"","sources":["../../../../src/test/standalone/CloudSqlite.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { expect } from "chai";
6
+ import * as sinon from "sinon";
7
+ import { CloudSqlite } from "../../CloudSqlite";
8
+ import { BlobContainer } from "../../BlobContainerService";
9
+ import { setOnlineStatus } from "../../internal/OnlineStatus";
10
+ describe("CloudSqlite.requestToken", () => {
11
+ // Supply userToken directly so IModelHost.getAccessToken is never called
12
+ const args = {
13
+ containerId: "test-container",
14
+ accessLevel: "read",
15
+ userToken: "test-user-token",
16
+ };
17
+ let originalService;
18
+ beforeEach(() => {
19
+ originalService = BlobContainer.service;
20
+ });
21
+ afterEach(() => {
22
+ BlobContainer.service = originalService;
23
+ sinon.restore();
24
+ setOnlineStatus(true);
25
+ });
26
+ it("returns empty token and does not call BlobContainer.service when offline", async () => {
27
+ setOnlineStatus(false);
28
+ const requestTokenStub = sinon.stub().rejects(new Error("should not be called"));
29
+ BlobContainer.service = { requestToken: requestTokenStub };
30
+ const token = await CloudSqlite.requestToken(args);
31
+ expect(token).to.equal("");
32
+ expect(requestTokenStub.called).to.be.false;
33
+ });
34
+ it("returns the token from BlobContainer.service when online and request succeeds", async () => {
35
+ setOnlineStatus(true);
36
+ BlobContainer.service = {
37
+ requestToken: sinon.stub().resolves({ token: "my-sas-token" }),
38
+ };
39
+ const token = await CloudSqlite.requestToken(args);
40
+ expect(token).to.equal("my-sas-token");
41
+ });
42
+ });
43
+ //# sourceMappingURL=CloudSqlite.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudSqlite.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/CloudSqlite.test.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,yEAAyE;IACzE,MAAM,IAAI,GAAiC;QACzC,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,MAAM;QACnB,SAAS,EAAE,iBAAiB;KAC7B,CAAC;IAEF,IAAI,eAA2D,CAAC;IAEhE,UAAU,CAAC,GAAG,EAAE;QACd,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,OAAO,GAAG,eAAe,CAAC;QACxC,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACjF,aAAa,CAAC,OAAO,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAS,CAAC;QAElE,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,aAAa,CAAC,OAAO,GAAG;YACtB,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;SACxD,CAAC;QAET,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,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\r\nimport { expect } from \"chai\";\r\nimport * as sinon from \"sinon\";\r\nimport { CloudSqlite } from \"../../CloudSqlite\";\r\nimport { BlobContainer } from \"../../BlobContainerService\";\r\nimport { setOnlineStatus } from \"../../internal/OnlineStatus\";\r\n\r\ndescribe(\"CloudSqlite.requestToken\", () => {\r\n // Supply userToken directly so IModelHost.getAccessToken is never called\r\n const args: CloudSqlite.RequestTokenArgs = {\r\n containerId: \"test-container\",\r\n accessLevel: \"read\",\r\n userToken: \"test-user-token\",\r\n };\r\n\r\n let originalService: BlobContainer.ContainerService | undefined;\r\n\r\n beforeEach(() => {\r\n originalService = BlobContainer.service;\r\n });\r\n\r\n afterEach(() => {\r\n BlobContainer.service = originalService;\r\n sinon.restore();\r\n setOnlineStatus(true);\r\n });\r\n\r\n it(\"returns empty token and does not call BlobContainer.service when offline\", async () => {\r\n setOnlineStatus(false);\r\n const requestTokenStub = sinon.stub().rejects(new Error(\"should not be called\"));\r\n BlobContainer.service = { requestToken: requestTokenStub } as any;\r\n\r\n const token = await CloudSqlite.requestToken(args);\r\n\r\n expect(token).to.equal(\"\");\r\n expect(requestTokenStub.called).to.be.false;\r\n });\r\n\r\n it(\"returns the token from BlobContainer.service when online and request succeeds\", async () => {\r\n setOnlineStatus(true);\r\n BlobContainer.service = {\r\n requestToken: sinon.stub().resolves({ token: \"my-sas-token\" }),\r\n } as any;\r\n\r\n const token = await CloudSqlite.requestToken(args);\r\n\r\n expect(token).to.equal(\"my-sas-token\");\r\n });\r\n});\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IModelWrite.test.d.ts","sourceRoot":"","sources":["../../../../src/test/standalone/IModelWrite.test.ts"],"names":[],"mappings":"AAKA,OAAO,EAA2C,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAe,MAAM,eAAe,CAAC;AA6BrD,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU;;;GAchF"}
1
+ {"version":3,"file":"IModelWrite.test.d.ts","sourceRoot":"","sources":["../../../../src/test/standalone/IModelWrite.test.ts"],"names":[],"mappings":"AAKA,OAAO,EAA2C,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA4BxC,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU;;;GAchF"}
@@ -3,8 +3,8 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import { DbResult, Id64 } from "@itwin/core-bentley";
6
- import { EditTxn, withEditTxn } from "../../EditTxn";
7
- import { Code, ColorDef, IModel, IModelVersion, LockState, QueryRowFormat, SchemaState, SubCategoryAppearance, } from "@itwin/core-common";
6
+ import { EditTxn } from "../../EditTxn";
7
+ import { Code, ColorDef, IModel, LockState, QueryRowFormat, SchemaState, SubCategoryAppearance, } from "@itwin/core-common";
8
8
  import { Arc3d, IModelJson, Point2d, Point3d } from "@itwin/core-geometry";
9
9
  import * as chai from "chai";
10
10
  import { assert, expect } from "chai";
@@ -799,37 +799,6 @@ describe("IModelWriteTest", () => {
799
799
  rwIModel.close();
800
800
  rwIModel2.close();
801
801
  });
802
- it("pulling a changeset with extents changes should update the extents of the opened imodel", async () => {
803
- const accessToken = await HubWrappers.getAccessToken(TestUserType.Regular);
804
- const version0 = IModelTestUtils.resolveAssetFile("mirukuru.ibim");
805
- const iModelId = await HubMock.createNewIModel({ iTwinId, iModelName: "projectExtentsTest", version0 });
806
- const iModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId });
807
- const changesetIdBeforeExtentsChange = iModel.changeset.id;
808
- const extents = iModel.projectExtents;
809
- const newExtents = extents.clone();
810
- newExtents.low.x += 100;
811
- newExtents.low.y += 100;
812
- newExtents.high.x += 100;
813
- newExtents.high.y += 100;
814
- withEditTxn(iModel, "update project extents", (txn) => txn.updateProjectExtents(newExtents));
815
- await iModel.pushChanges({ description: "update project extents" });
816
- await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel);
817
- const iModelBeforeExtentsChange = await HubWrappers.downloadAndOpenBriefcase({ accessToken, iTwinId, iModelId, asOf: IModelVersion.asOfChangeSet(changesetIdBeforeExtentsChange).toJSON() });
818
- const extentsBeforePull = iModelBeforeExtentsChange.projectExtents;
819
- // Read the extents fileProperty.
820
- const extentsStrBeforePull = iModelBeforeExtentsChange.queryFilePropertyString({ name: "Extents", namespace: "dgn_Db" });
821
- const ecefLocationBeforeExtentsChange = iModelBeforeExtentsChange.ecefLocation;
822
- await iModelBeforeExtentsChange.pullChanges(); // Pulls the extents change.
823
- const extentsAfterPull = iModelBeforeExtentsChange.projectExtents;
824
- const extentsStrAfterPull = iModelBeforeExtentsChange.queryFilePropertyString({ name: "Extents", namespace: "dgn_Db" });
825
- const ecefLocationAfterExtentsChange = iModelBeforeExtentsChange.ecefLocation;
826
- expect(ecefLocationBeforeExtentsChange).to.not.be.undefined;
827
- expect(ecefLocationAfterExtentsChange).to.not.be.undefined;
828
- expect(ecefLocationBeforeExtentsChange?.isAlmostEqual(ecefLocationAfterExtentsChange)).to.be.false;
829
- expect(extentsStrAfterPull).to.not.equal(extentsStrBeforePull);
830
- expect(extentsAfterPull.isAlmostEqual(extentsBeforePull)).to.be.false;
831
- await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModelBeforeExtentsChange);
832
- });
833
802
  it("parent lock should suffice when inserting into deeply nested sub-model", async () => {
834
803
  const version0 = IModelTestUtils.resolveAssetFile("test.bim");
835
804
  const iModelId = await HubMock.createNewIModel({ iTwinId, iModelName: "subModelCoveredByParentLockTest", version0 });