@itwin/core-backend 5.1.0-dev.1 → 5.1.0-dev.12
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/CHANGELOG.md +21 -1
- package/lib/cjs/Category.d.ts +37 -0
- package/lib/cjs/Category.d.ts.map +1 -1
- package/lib/cjs/Category.js +73 -0
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +5 -0
- package/lib/cjs/DisplayStyle.d.ts.map +1 -1
- package/lib/cjs/DisplayStyle.js +27 -0
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/Element.d.ts +166 -10
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +510 -9
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/Entity.d.ts +41 -1
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +58 -0
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.d.ts +6 -2
- package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
- package/lib/cjs/GeographicCRSServices.js +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +21 -36
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +131 -69
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +13 -0
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +6 -0
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/Material.d.ts +19 -0
- package/lib/cjs/Material.d.ts.map +1 -1
- package/lib/cjs/Material.js +29 -0
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +42 -6
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +93 -5
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +1 -0
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +126 -0
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +236 -0
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.js +3 -3
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.d.ts +28 -0
- package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -0
- package/lib/cjs/internal/ElementLRUCache.js +120 -0
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -0
- package/lib/cjs/internal/Symbols.d.ts +1 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +2 -1
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +2 -2
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/Category.d.ts +37 -0
- package/lib/esm/Category.d.ts.map +1 -1
- package/lib/esm/Category.js +73 -0
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/DisplayStyle.d.ts +5 -0
- package/lib/esm/DisplayStyle.d.ts.map +1 -1
- package/lib/esm/DisplayStyle.js +27 -0
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/Element.d.ts +166 -10
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +513 -12
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/Entity.d.ts +41 -1
- package/lib/esm/Entity.d.ts.map +1 -1
- package/lib/esm/Entity.js +58 -0
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/GeographicCRSServices.d.ts +6 -2
- package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
- package/lib/esm/GeographicCRSServices.js +1 -1
- package/lib/esm/GeographicCRSServices.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +21 -36
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +134 -72
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelHost.d.ts +13 -0
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +6 -0
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/Material.d.ts +19 -0
- package/lib/esm/Material.d.ts.map +1 -1
- package/lib/esm/Material.js +30 -1
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.d.ts +42 -6
- package/lib/esm/Model.d.ts.map +1 -1
- package/lib/esm/Model.js +94 -6
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +1 -0
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +126 -0
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +237 -1
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/ViewStateHydrator.js +3 -3
- package/lib/esm/ViewStateHydrator.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.d.ts +28 -0
- package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -0
- package/lib/esm/internal/ElementLRUCache.js +116 -0
- package/lib/esm/internal/ElementLRUCache.js.map +1 -0
- package/lib/esm/internal/Symbols.d.ts +1 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/internal/Symbols.js +1 -0
- package/lib/esm/internal/Symbols.js.map +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js +2 -2
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.d.ts +2 -0
- package/lib/esm/test/ElementLRUCache.test.d.ts.map +1 -0
- package/lib/esm/test/ElementLRUCache.test.js +212 -0
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +0 -23
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/imodel/IModel.test.js +22 -11
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/misc/GeoServices.test.js +23 -9
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js +1 -0
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
- package/package.json +13 -13
|
@@ -87,7 +87,17 @@ function expectIModelError(expectedErrorNumber, error) {
|
|
|
87
87
|
expect(error).instanceof(IModelError);
|
|
88
88
|
expect(error.errorNumber).to.equal(expectedErrorNumber);
|
|
89
89
|
}
|
|
90
|
+
async function generateTestSnapshot(targetFileName, seedAssetName) {
|
|
91
|
+
const seedFile = IModelTestUtils.resolveAssetFile(seedAssetName);
|
|
92
|
+
const snapshotFile = IModelTestUtils.prepareOutputFile("IModel", targetFileName);
|
|
93
|
+
const imodel = IModelTestUtils.createSnapshotFromSeed(snapshotFile, seedFile);
|
|
94
|
+
const schemaPathname = path.join(KnownTestLocations.assetsDir, "TestBim.ecschema.xml");
|
|
95
|
+
await imodel.importSchemas([schemaPathname]); // will throw an exception if import fails
|
|
96
|
+
imodel.saveChanges();
|
|
97
|
+
return imodel;
|
|
98
|
+
}
|
|
90
99
|
describe("iModel", () => {
|
|
100
|
+
//TODO: These imodels are used and modified across multiple tests. This is not a good practice and should be refactored.
|
|
91
101
|
let imodel1;
|
|
92
102
|
let imodel2;
|
|
93
103
|
let imodel3;
|
|
@@ -97,13 +107,11 @@ describe("iModel", () => {
|
|
|
97
107
|
before(async () => {
|
|
98
108
|
originalEnv = { ...process.env };
|
|
99
109
|
IModelTestUtils.registerTestBimSchema();
|
|
100
|
-
imodel1 =
|
|
110
|
+
imodel1 = await generateTestSnapshot("test.bim", "test.bim");
|
|
101
111
|
imodel2 = IModelTestUtils.createSnapshotFromSeed(IModelTestUtils.prepareOutputFile("IModel", "CompatibilityTestSeed.bim"), IModelTestUtils.resolveAssetFile("CompatibilityTestSeed.bim"));
|
|
102
112
|
imodel3 = SnapshotDb.openFile(IModelTestUtils.resolveAssetFile("GetSetAutoHandledStructProperties.bim"));
|
|
103
113
|
imodel4 = IModelTestUtils.createSnapshotFromSeed(IModelTestUtils.prepareOutputFile("IModel", "GetSetAutoHandledArrayProperties.bim"), IModelTestUtils.resolveAssetFile("GetSetAutoHandledArrayProperties.bim"));
|
|
104
114
|
imodel5 = IModelTestUtils.createSnapshotFromSeed(IModelTestUtils.prepareOutputFile("IModel", "mirukuru.ibim"), IModelTestUtils.resolveAssetFile("mirukuru.ibim"));
|
|
105
|
-
const schemaPathname = path.join(KnownTestLocations.assetsDir, "TestBim.ecschema.xml");
|
|
106
|
-
await imodel1.importSchemas([schemaPathname]); // will throw an exception if import fails
|
|
107
115
|
});
|
|
108
116
|
after(() => {
|
|
109
117
|
process.env = originalEnv;
|
|
@@ -1984,6 +1992,7 @@ describe("iModel", () => {
|
|
|
1984
1992
|
getCurrentChangeset: () => changeset,
|
|
1985
1993
|
setIModelDb: () => { },
|
|
1986
1994
|
closeFile: () => { },
|
|
1995
|
+
clearECDbCache: () => { },
|
|
1987
1996
|
};
|
|
1988
1997
|
const errorLogStub = sinon.stub(Logger, "logError").callsFake(() => { });
|
|
1989
1998
|
const infoLogStub = sinon.stub(Logger, "logInfo").callsFake(() => { });
|
|
@@ -2104,14 +2113,15 @@ describe("iModel", () => {
|
|
|
2104
2113
|
standaloneDb1.close();
|
|
2105
2114
|
assert.isUndefined(StandaloneDb.tryFindByKey(standaloneDb1.key));
|
|
2106
2115
|
});
|
|
2107
|
-
it("Snapshot iModel properties", () => {
|
|
2116
|
+
it("Snapshot iModel properties", async () => {
|
|
2108
2117
|
const snapshotRootSubjectName = "Snapshot";
|
|
2109
2118
|
const snapshotFile1 = IModelTestUtils.prepareOutputFile("IModel", "Snapshot1.bim");
|
|
2110
2119
|
const snapshotFile2 = IModelTestUtils.prepareOutputFile("IModel", "Snapshot2.bim");
|
|
2111
2120
|
const snapshotFile3 = IModelTestUtils.prepareOutputFile("IModel", "Snapshot3.bim");
|
|
2121
|
+
const imodel = await generateTestSnapshot("test_for_snapshot.bim", "test.bim");
|
|
2112
2122
|
let snapshotDb1 = SnapshotDb.createEmpty(snapshotFile1, { rootSubject: { name: snapshotRootSubjectName }, createClassViews: true });
|
|
2113
2123
|
let snapshotDb2 = SnapshotDb.createFrom(snapshotDb1, snapshotFile2);
|
|
2114
|
-
let snapshotDb3 = SnapshotDb.createFrom(
|
|
2124
|
+
let snapshotDb3 = SnapshotDb.createFrom(imodel, snapshotFile3, { createClassViews: true });
|
|
2115
2125
|
assert.isTrue(snapshotDb1.isSnapshotDb());
|
|
2116
2126
|
assert.isTrue(snapshotDb2.isSnapshotDb());
|
|
2117
2127
|
assert.isTrue(snapshotDb3.isSnapshotDb());
|
|
@@ -2124,7 +2134,7 @@ describe("iModel", () => {
|
|
|
2124
2134
|
assert.equal(snapshotDb1.getBriefcaseId(), BriefcaseIdValue.Unassigned);
|
|
2125
2135
|
assert.equal(snapshotDb2.getBriefcaseId(), BriefcaseIdValue.Unassigned);
|
|
2126
2136
|
assert.equal(snapshotDb3.getBriefcaseId(), BriefcaseIdValue.Unassigned);
|
|
2127
|
-
assert.equal(
|
|
2137
|
+
assert.equal(imodel.getBriefcaseId(), BriefcaseIdValue.Unassigned);
|
|
2128
2138
|
assert.equal(snapshotDb1.pathName, snapshotFile1);
|
|
2129
2139
|
assert.equal(snapshotDb2.pathName, snapshotFile2);
|
|
2130
2140
|
assert.equal(snapshotDb3.pathName, snapshotFile3);
|
|
@@ -2139,10 +2149,10 @@ describe("iModel", () => {
|
|
|
2139
2149
|
const rootSubjectName1 = snapshotDb1.elements.getRootSubject().code.value;
|
|
2140
2150
|
const rootSubjectName2 = snapshotDb2.elements.getRootSubject().code.value;
|
|
2141
2151
|
const rootSubjectName3 = snapshotDb3.elements.getRootSubject().code.value;
|
|
2142
|
-
const
|
|
2152
|
+
const imodelRootSubjectName = imodel.elements.getRootSubject().code.value;
|
|
2143
2153
|
assert.equal(rootSubjectName1, snapshotRootSubjectName);
|
|
2144
2154
|
assert.equal(rootSubjectName1, rootSubjectName2, "Expect a snapshot to maintain the root Subject name from its seed");
|
|
2145
|
-
assert.equal(rootSubjectName3,
|
|
2155
|
+
assert.equal(rootSubjectName3, imodelRootSubjectName, "Expect a snapshot to maintain the root Subject name from its seed");
|
|
2146
2156
|
assert.isTrue(snapshotDb1.isOpen);
|
|
2147
2157
|
assert.isTrue(snapshotDb2.isOpen);
|
|
2148
2158
|
assert.isTrue(snapshotDb3.isOpen);
|
|
@@ -2177,6 +2187,7 @@ describe("iModel", () => {
|
|
|
2177
2187
|
assert.isTrue(hasClassView(snapshotDb1, "bis.ElementRefersToElements"));
|
|
2178
2188
|
assert.isFalse(hasClassView(snapshotDb2, "bis.Element"));
|
|
2179
2189
|
assert.isTrue(hasClassView(snapshotDb3, "bis.Element"));
|
|
2190
|
+
imodel.close();
|
|
2180
2191
|
snapshotDb1.close();
|
|
2181
2192
|
snapshotDb2.close();
|
|
2182
2193
|
snapshotDb3.close();
|
|
@@ -2384,7 +2395,7 @@ describe("iModel", () => {
|
|
|
2384
2395
|
expect(elProps.code.scope).equal(element.code.scope);
|
|
2385
2396
|
expect(elProps.code.spec).equal(element.code.spec);
|
|
2386
2397
|
expect(elProps.federationGuid).equal(element.federationGuid);
|
|
2387
|
-
expect(elProps.isPrivate).undefined;
|
|
2398
|
+
expect(elProps.isPrivate).to.be.oneOf([false, undefined]);
|
|
2388
2399
|
expect(elProps.isInstanceOfEntity).undefined;
|
|
2389
2400
|
// remove userlabel by setting it to the blank string
|
|
2390
2401
|
element.userLabel = "";
|
|
@@ -2562,12 +2573,12 @@ describe("iModel", () => {
|
|
|
2562
2573
|
expect(imodel.codeValueBehavior).to.equal("trim-unicode-whitespace");
|
|
2563
2574
|
const code1 = getNumberedCodeValAndProps(1);
|
|
2564
2575
|
const categ1Id = imodel.elements.insertElement(code1.props);
|
|
2565
|
-
const categ1 = imodel.elements.
|
|
2576
|
+
const categ1 = imodel.elements.getElementProps({ id: categ1Id });
|
|
2566
2577
|
expect(categ1.code.value).to.equal(code1.trimmedCodeVal);
|
|
2567
2578
|
imodel.codeValueBehavior = "exact";
|
|
2568
2579
|
const code2 = getNumberedCodeValAndProps(2);
|
|
2569
2580
|
const categ2Id = imodel.elements.insertElement(code2.props);
|
|
2570
|
-
const categ2 = imodel.elements.
|
|
2581
|
+
const categ2 = imodel.elements.getElementProps({ id: categ2Id });
|
|
2571
2582
|
expect(categ2.code.value).to.equal(code2.untrimmedCodeVal);
|
|
2572
2583
|
imodel.codeValueBehavior = "trim-unicode-whitespace";
|
|
2573
2584
|
const code3 = getNumberedCodeValAndProps(3);
|