@itwin/core-backend 5.1.0-dev.62 → 5.1.0-dev.65

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 (88) hide show
  1. package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
  2. package/lib/cjs/BisCoreSchema.js +3 -1
  3. package/lib/cjs/BisCoreSchema.js.map +1 -1
  4. package/lib/cjs/Entity.d.ts +2 -0
  5. package/lib/cjs/Entity.d.ts.map +1 -1
  6. package/lib/cjs/Entity.js +14 -0
  7. package/lib/cjs/Entity.js.map +1 -1
  8. package/lib/cjs/IModelDb.d.ts +6 -2
  9. package/lib/cjs/IModelDb.d.ts.map +1 -1
  10. package/lib/cjs/IModelDb.js +12 -5
  11. package/lib/cjs/IModelDb.js.map +1 -1
  12. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
  13. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
  14. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +110 -0
  15. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -0
  16. package/lib/cjs/annotations/TextAnnotationElement.d.ts +18 -1
  17. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
  18. package/lib/cjs/annotations/TextAnnotationElement.js +57 -2
  19. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  20. package/lib/cjs/annotations/TextAnnotationGeometry.js +1 -0
  21. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  22. package/lib/cjs/annotations/TextBlockGeometry.d.ts.map +1 -1
  23. package/lib/cjs/annotations/TextBlockGeometry.js +15 -1
  24. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  25. package/lib/cjs/annotations/TextBlockLayout.d.ts +2 -2
  26. package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -1
  27. package/lib/cjs/annotations/TextBlockLayout.js +14 -2
  28. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  29. package/lib/cjs/core-backend.d.ts +1 -0
  30. package/lib/cjs/core-backend.d.ts.map +1 -1
  31. package/lib/cjs/core-backend.js +1 -0
  32. package/lib/cjs/core-backend.js.map +1 -1
  33. package/lib/cjs/internal/annotations/fields.d.ts +22 -0
  34. package/lib/cjs/internal/annotations/fields.d.ts.map +1 -0
  35. package/lib/cjs/internal/annotations/fields.js +237 -0
  36. package/lib/cjs/internal/annotations/fields.js.map +1 -0
  37. package/lib/esm/BisCoreSchema.d.ts.map +1 -1
  38. package/lib/esm/BisCoreSchema.js +3 -1
  39. package/lib/esm/BisCoreSchema.js.map +1 -1
  40. package/lib/esm/Entity.d.ts +2 -0
  41. package/lib/esm/Entity.d.ts.map +1 -1
  42. package/lib/esm/Entity.js +14 -0
  43. package/lib/esm/Entity.js.map +1 -1
  44. package/lib/esm/IModelDb.d.ts +6 -2
  45. package/lib/esm/IModelDb.d.ts.map +1 -1
  46. package/lib/esm/IModelDb.js +13 -6
  47. package/lib/esm/IModelDb.js.map +1 -1
  48. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
  49. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
  50. package/lib/esm/annotations/ElementDrivesTextAnnotation.js +105 -0
  51. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -0
  52. package/lib/esm/annotations/TextAnnotationElement.d.ts +18 -1
  53. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
  54. package/lib/esm/annotations/TextAnnotationElement.js +57 -2
  55. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  56. package/lib/esm/annotations/TextAnnotationGeometry.js +1 -0
  57. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  58. package/lib/esm/annotations/TextBlockGeometry.d.ts.map +1 -1
  59. package/lib/esm/annotations/TextBlockGeometry.js +15 -1
  60. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  61. package/lib/esm/annotations/TextBlockLayout.d.ts +2 -2
  62. package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -1
  63. package/lib/esm/annotations/TextBlockLayout.js +14 -2
  64. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  65. package/lib/esm/core-backend.d.ts +1 -0
  66. package/lib/esm/core-backend.d.ts.map +1 -1
  67. package/lib/esm/core-backend.js +1 -0
  68. package/lib/esm/core-backend.js.map +1 -1
  69. package/lib/esm/internal/annotations/fields.d.ts +22 -0
  70. package/lib/esm/internal/annotations/fields.d.ts.map +1 -0
  71. package/lib/esm/internal/annotations/fields.js +231 -0
  72. package/lib/esm/internal/annotations/fields.js.map +1 -0
  73. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  74. package/lib/esm/test/IModelTestUtils.js +1 -0
  75. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  76. package/lib/esm/test/annotations/Fields.test.d.ts +2 -0
  77. package/lib/esm/test/annotations/Fields.test.d.ts.map +1 -0
  78. package/lib/esm/test/annotations/Fields.test.js +576 -0
  79. package/lib/esm/test/annotations/Fields.test.js.map +1 -0
  80. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  81. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  82. package/lib/esm/test/hubaccess/ApplyChangeset.test.d.ts +2 -0
  83. package/lib/esm/test/hubaccess/ApplyChangeset.test.d.ts.map +1 -0
  84. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +86 -0
  85. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -0
  86. package/lib/esm/test/standalone/ChangesetReader.test.js +6 -6
  87. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  88. package/package.json +13 -13
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ApplyChangeset.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplyChangeset.test.d.ts","sourceRoot":"","sources":["../../../../src/test/hubaccess/ApplyChangeset.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
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 * as chai from "chai";
6
+ import * as chaiAsPromised from "chai-as-promised";
7
+ import { HubWrappers, KnownTestLocations } from "..";
8
+ import { ChannelControl, IModelHost } from "../../core-backend";
9
+ import { HubMock } from "../../internal/HubMock";
10
+ chai.use(chaiAsPromised);
11
+ describe("apply changesets", function () {
12
+ before(async () => {
13
+ await IModelHost.startup();
14
+ });
15
+ it("Apply changeset with no local changes, should not create new local changes", async () => {
16
+ HubMock.startup("PullMergeMethod", KnownTestLocations.outputDir);
17
+ const iModelId = await HubMock.createNewIModel({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelName: "Test", description: "TestSubject" });
18
+ const b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId, noLock: true });
19
+ b1.channels.addAllowedChannel(ChannelControl.sharedChannelName);
20
+ b1.saveChanges();
21
+ const b2 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user2", iTwinId: HubMock.iTwinId, iModelId, noLock: true });
22
+ b2.channels.addAllowedChannel(ChannelControl.sharedChannelName);
23
+ b2.saveChanges();
24
+ const b3 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user2", iTwinId: HubMock.iTwinId, iModelId, noLock: true });
25
+ b3.channels.addAllowedChannel(ChannelControl.sharedChannelName);
26
+ b3.saveChanges();
27
+ const schema1 = `<?xml version="1.0" encoding="UTF-8"?>
28
+ <ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
29
+ <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
30
+ <ECEntityClass typeName="a1">
31
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
32
+ </ECEntityClass>
33
+ <ECEntityClass typeName="b1"> <BaseClass>a1</BaseClass> </ECEntityClass>
34
+ <ECEntityClass typeName="b2"> <BaseClass>a1</BaseClass> </ECEntityClass>
35
+ <ECEntityClass typeName="c1"> <BaseClass>b1</BaseClass> </ECEntityClass>
36
+ <ECEntityClass typeName="c2"> <BaseClass>b1</BaseClass> </ECEntityClass>
37
+ <ECEntityClass typeName="d1"> <BaseClass>b2</BaseClass> </ECEntityClass>
38
+ <ECEntityClass typeName="d2"> <BaseClass>b2</BaseClass> </ECEntityClass>
39
+ <ECEntityClass typeName="f1"> <BaseClass>d1</BaseClass> </ECEntityClass>
40
+ <ECEntityClass typeName="f2"> <BaseClass>d1</BaseClass> </ECEntityClass>
41
+ <ECEntityClass typeName="e1"> <BaseClass>d2</BaseClass> </ECEntityClass>
42
+ <ECEntityClass typeName="e2"> <BaseClass>d2</BaseClass> </ECEntityClass>
43
+ </ECSchema>`;
44
+ await b1.importSchemaStrings([schema1]);
45
+ b1.saveChanges("schema1");
46
+ chai.expect(b1.txns.hasPendingTxns).to.be.true;
47
+ await b1.pushChanges({ description: "schema1" });
48
+ chai.expect(b1.txns.hasPendingTxns).to.be.false;
49
+ chai.expect(b2.txns.hasPendingTxns).to.be.false;
50
+ await b2.pullChanges();
51
+ chai.expect(b2.txns.hasPendingTxns).to.be.false;
52
+ const schema2 = `<?xml version="1.0" encoding="UTF-8"?>
53
+ <ECSchema schemaName="TestDomain2" alias="ts1" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
54
+ <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
55
+ <ECEntityClass typeName="a1">
56
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
57
+ </ECEntityClass>
58
+ <ECEntityClass typeName="b1"> <BaseClass>a1</BaseClass> </ECEntityClass>
59
+ <ECEntityClass typeName="b2"> <BaseClass>a1</BaseClass> </ECEntityClass>
60
+ <ECEntityClass typeName="c1"> <BaseClass>b1</BaseClass> </ECEntityClass>
61
+ <ECEntityClass typeName="c2"> <BaseClass>b1</BaseClass> </ECEntityClass>
62
+ <ECEntityClass typeName="d1"> <BaseClass>b2</BaseClass> </ECEntityClass>
63
+ <ECEntityClass typeName="d2"> <BaseClass>b2</BaseClass> </ECEntityClass>
64
+ <ECEntityClass typeName="f1"> <BaseClass>d1</BaseClass> </ECEntityClass>
65
+ <ECEntityClass typeName="f2"> <BaseClass>d1</BaseClass> </ECEntityClass>
66
+ <ECEntityClass typeName="e1"> <BaseClass>d2</BaseClass> </ECEntityClass>
67
+ <ECEntityClass typeName="e2"> <BaseClass>d2</BaseClass> </ECEntityClass>
68
+ </ECSchema>`;
69
+ await b1.importSchemaStrings([schema2]);
70
+ b1.saveChanges("schema2");
71
+ chai.expect(b1.txns.hasPendingTxns).to.be.true;
72
+ await b1.pushChanges({ description: "schema2" });
73
+ chai.expect(b1.txns.hasPendingTxns).to.be.false;
74
+ chai.expect(b2.txns.hasPendingTxns).to.be.false;
75
+ await b2.pullChanges();
76
+ chai.expect(b2.txns.hasPendingTxns).to.be.false;
77
+ chai.expect(b3.txns.hasPendingTxns).to.be.false;
78
+ await b3.pullChanges();
79
+ chai.expect(b3.txns.hasPendingTxns).to.be.false;
80
+ b1.close();
81
+ b2.close();
82
+ b3.close();
83
+ HubMock.shutdown();
84
+ });
85
+ });
86
+ //# sourceMappingURL=ApplyChangeset.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplyChangeset.test.js","sourceRoot":"","sources":["../../../../src/test/hubaccess/ApplyChangeset.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport * as chai from \"chai\";\nimport * as chaiAsPromised from \"chai-as-promised\";\nimport { HubWrappers, KnownTestLocations } from \"..\";\nimport { ChannelControl, IModelHost } from \"../../core-backend\";\nimport { HubMock } from \"../../internal/HubMock\";\nimport { Suite } from \"mocha\";\nchai.use(chaiAsPromised);\n\ndescribe(\"apply changesets\", function (this: Suite) {\n before(async () => {\n await IModelHost.startup();\n });\n\n it(\"Apply changeset with no local changes, should not create new local changes\", async () => {\n HubMock.startup(\"PullMergeMethod\", KnownTestLocations.outputDir);\n\n const iModelId = await HubMock.createNewIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelName: \"Test\", description: \"TestSubject\" });\n\n const b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n b1.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n b1.saveChanges();\n\n const b2 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n b2.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n b2.saveChanges();\n\n const b3 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n b3.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n b3.saveChanges();\n\n const schema1 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <ECSchema schemaName=\"TestDomain\" alias=\"ts\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\n <ECEntityClass typeName=\"a1\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n </ECEntityClass>\n <ECEntityClass typeName=\"b1\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"b2\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c1\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c2\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d1\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d2\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f1\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f2\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e1\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e2\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n </ECSchema>`;\n\n await b1.importSchemaStrings([schema1]);\n b1.saveChanges(\"schema1\");\n\n chai.expect(b1.txns.hasPendingTxns).to.be.true\n await b1.pushChanges({ description: \"schema1\" });\n chai.expect(b1.txns.hasPendingTxns).to.be.false\n\n chai.expect(b2.txns.hasPendingTxns).to.be.false\n await b2.pullChanges();\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n\n const schema2 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <ECSchema schemaName=\"TestDomain2\" alias=\"ts1\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\n <ECEntityClass typeName=\"a1\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n </ECEntityClass>\n <ECEntityClass typeName=\"b1\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"b2\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c1\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c2\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d1\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d2\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f1\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f2\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e1\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e2\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n </ECSchema>`;\n\n await b1.importSchemaStrings([schema2]);\n b1.saveChanges(\"schema2\");\n\n chai.expect(b1.txns.hasPendingTxns).to.be.true\n await b1.pushChanges({ description: \"schema2\" });\n chai.expect(b1.txns.hasPendingTxns).to.be.false;\n\n\n chai.expect(b2.txns.hasPendingTxns).to.be.false\n await b2.pullChanges();\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n\n\n chai.expect(b3.txns.hasPendingTxns).to.be.false\n await b3.pullChanges();\n chai.expect(b3.txns.hasPendingTxns).to.be.false;\n\n\n b1.close();\n b2.close();\n b3.close();\n HubMock.shutdown();\n });\n});\n"]}
@@ -1276,23 +1276,23 @@ describe("Changeset Reader API", async () => {
1276
1276
  assert.equal(firstBriefcaseChangesets.length, 1);
1277
1277
  const firstBriefcaseChangeset = firstBriefcaseChangesets[0];
1278
1278
  expect(firstBriefcaseChangeset.uncompressedSizeBytes).to.be.greaterThan(300);
1279
- expect(firstBriefcaseChangeset.insertedRows).to.be.eql(4);
1280
- expect(firstBriefcaseChangeset.updatedRows).to.be.eql(1);
1279
+ expect(firstBriefcaseChangeset.insertedRows).to.be.greaterThanOrEqual(4);
1280
+ expect(firstBriefcaseChangeset.updatedRows).to.be.greaterThanOrEqual(1);
1281
1281
  expect(firstBriefcaseChangeset.deletedRows).to.be.eql(0);
1282
1282
  expect(firstBriefcaseChangeset.totalFullTableScans).to.be.eql(0);
1283
1283
  expect(firstBriefcaseChangeset.perStatementStats.length).to.be.eql(5);
1284
1284
  assert.equal(secondBriefcaseChangesets.length, 2);
1285
1285
  const [secondBriefcaseChangeset1, secondBriefcaseChangeset2] = secondBriefcaseChangesets;
1286
1286
  expect(secondBriefcaseChangeset1.uncompressedSizeBytes).to.be.greaterThan(40000);
1287
- expect(secondBriefcaseChangeset1.insertedRows).to.be.eql(52);
1288
- expect(secondBriefcaseChangeset1.updatedRows).to.be.eql(921);
1287
+ expect(secondBriefcaseChangeset1.insertedRows).to.be.greaterThanOrEqual(52);
1288
+ expect(secondBriefcaseChangeset1.updatedRows).to.be.greaterThanOrEqual(921);
1289
1289
  expect(secondBriefcaseChangeset1.deletedRows).to.be.eql(0);
1290
1290
  expect(secondBriefcaseChangeset1.totalFullTableScans).to.be.eql(0);
1291
1291
  expect(secondBriefcaseChangeset1.perStatementStats.length).to.be.eql(11);
1292
1292
  expect(secondBriefcaseChangeset2.uncompressedSizeBytes).to.be.greaterThan(40000);
1293
1293
  expect(secondBriefcaseChangeset2.insertedRows).to.be.eql(0);
1294
- expect(secondBriefcaseChangeset2.updatedRows).to.be.eql(921);
1295
- expect(secondBriefcaseChangeset2.deletedRows).to.be.eql(52);
1294
+ expect(secondBriefcaseChangeset2.updatedRows).to.be.greaterThanOrEqual(921);
1295
+ expect(secondBriefcaseChangeset2.deletedRows).to.be.greaterThanOrEqual(52);
1296
1296
  expect(secondBriefcaseChangeset2.totalFullTableScans).to.be.eql(0);
1297
1297
  expect(secondBriefcaseChangeset2.perStatementStats.length).to.be.eql(11);
1298
1298
  // Cleanup