@itwin/core-backend 4.0.0-dev.7 → 4.0.0-dev.70
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 +89 -67
- package/lib/cjs/BackendHubAccess.d.ts +224 -224
- package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
- package/lib/cjs/BackendHubAccess.js +41 -41
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.d.ts +90 -91
- package/lib/cjs/BackendLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js +98 -99
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.d.ts +21 -21
- package/lib/cjs/BisCoreSchema.js +60 -60
- package/lib/cjs/BriefcaseManager.d.ts +170 -170
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +408 -414
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/Category.d.ts +153 -153
- package/lib/cjs/Category.js +243 -243
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.d.ts +187 -187
- package/lib/cjs/ChangeSummaryManager.js +444 -445
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.d.ts +99 -99
- package/lib/cjs/ChangedElementsDb.js +165 -165
- package/lib/cjs/ChangedElementsManager.d.ts +39 -39
- package/lib/cjs/ChangedElementsManager.js +88 -88
- package/lib/cjs/ChannelControl.d.ts +70 -0
- package/lib/cjs/ChannelControl.d.ts.map +1 -0
- package/lib/cjs/ChannelControl.js +89 -0
- package/lib/cjs/ChannelControl.js.map +1 -0
- package/lib/cjs/CheckpointManager.d.ts +121 -121
- package/lib/cjs/CheckpointManager.d.ts.map +1 -1
- package/lib/cjs/CheckpointManager.js +351 -349
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.d.ts +79 -79
- package/lib/cjs/ClassRegistry.js +249 -245
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts +355 -350
- package/lib/cjs/CloudSqlite.d.ts.map +1 -1
- package/lib/cjs/CloudSqlite.js +154 -153
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.d.ts +396 -396
- package/lib/cjs/CodeService.d.ts.map +1 -1
- package/lib/cjs/CodeService.js +63 -63
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +55 -55
- package/lib/cjs/CodeSpecs.js +124 -124
- package/lib/cjs/ConcurrentQuery.d.ts +13 -13
- package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
- package/lib/cjs/ConcurrentQuery.js +36 -36
- package/lib/cjs/CustomViewState3dCreator.d.ts +21 -21
- package/lib/cjs/CustomViewState3dCreator.d.ts.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js +82 -81
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.d.ts +74 -71
- package/lib/cjs/DevTools.d.ts.map +1 -1
- package/lib/cjs/DevTools.js +156 -154
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +106 -106
- package/lib/cjs/DisplayStyle.js +253 -256
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +194 -191
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +353 -350
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.d.ts +18 -18
- package/lib/cjs/ECSchemaXmlContext.d.ts.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js +41 -41
- package/lib/cjs/ECSqlStatement.d.ts +473 -473
- package/lib/cjs/ECSqlStatement.js +791 -791
- package/lib/cjs/Element.d.ts +1113 -1109
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +1424 -1427
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +176 -179
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +203 -211
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.d.ts +9 -9
- package/lib/cjs/ElementGraphics.js +41 -41
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.d.ts +162 -162
- package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
- package/lib/cjs/ElementTreeWalker.js +409 -409
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.d.ts +106 -106
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +134 -134
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.d.ts +49 -49
- package/lib/cjs/EntityReferences.d.ts.map +1 -1
- package/lib/cjs/EntityReferences.js +95 -95
- package/lib/cjs/ExportGraphics.d.ts +317 -317
- package/lib/cjs/ExportGraphics.d.ts.map +1 -1
- package/lib/cjs/ExportGraphics.js +208 -208
- package/lib/cjs/ExternalSource.d.ts +96 -96
- package/lib/cjs/ExternalSource.js +131 -131
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.d.ts +19 -19
- package/lib/cjs/GeoCoordConfig.js +85 -85
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeometrySummary.d.ts +4 -4
- package/lib/cjs/GeometrySummary.js +333 -333
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/HubMock.d.ts +94 -94
- package/lib/cjs/HubMock.js +220 -222
- package/lib/cjs/HubMock.js.map +1 -1
- package/lib/cjs/IModelCloneContext.d.ts +8 -8
- package/lib/cjs/IModelCloneContext.d.ts.map +1 -1
- package/lib/cjs/IModelCloneContext.js +15 -15
- package/lib/cjs/IModelDb.d.ts +1216 -1196
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +2387 -2392
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts +89 -89
- package/lib/cjs/IModelElementCloneContext.js +159 -159
- package/lib/cjs/IModelHost.d.ts +355 -369
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +472 -496
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelJsFs.d.ts +62 -62
- package/lib/cjs/IModelJsFs.js +139 -140
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/IpcHost.d.ts +104 -104
- package/lib/cjs/IpcHost.js +276 -278
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.d.ts +311 -311
- package/lib/cjs/LineStyle.js +295 -295
- package/lib/cjs/LocalHub.d.ts +162 -162
- package/lib/cjs/LocalHub.d.ts.map +1 -1
- package/lib/cjs/LocalHub.js +579 -584
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.d.ts +20 -20
- package/lib/cjs/LocalhostIpcHost.js +79 -81
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/Material.d.ts +131 -131
- package/lib/cjs/Material.js +180 -181
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +392 -392
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +489 -485
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.d.ts +51 -51
- package/lib/cjs/NativeAppStorage.js +202 -202
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.d.ts +52 -52
- package/lib/cjs/NativeHost.js +160 -163
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.d.ts +156 -156
- package/lib/cjs/NavigationRelationship.js +225 -225
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.d.ts +51 -51
- package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
- package/lib/cjs/PromiseMemoizer.js +101 -101
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.d.ts +132 -132
- package/lib/cjs/PropertyStore.js +11 -11
- package/lib/cjs/Relationship.d.ts +416 -416
- package/lib/cjs/Relationship.js +494 -494
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.d.ts +5 -5
- package/lib/cjs/RpcBackend.js +32 -32
- package/lib/cjs/SQLiteDb.d.ts +219 -219
- package/lib/cjs/SQLiteDb.js +212 -214
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.d.ts +55 -55
- package/lib/cjs/Schema.js +83 -83
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/ServerBasedLocks.d.ts +57 -57
- package/lib/cjs/ServerBasedLocks.js +168 -168
- package/lib/cjs/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/SqliteStatement.d.ts +360 -360
- package/lib/cjs/SqliteStatement.d.ts.map +1 -1
- package/lib/cjs/SqliteStatement.js +586 -586
- package/lib/cjs/Texture.d.ts +58 -58
- package/lib/cjs/Texture.js +82 -82
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.d.ts +44 -18
- package/lib/cjs/TileStorage.d.ts.map +1 -1
- package/lib/cjs/TileStorage.js +109 -90
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +202 -202
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +356 -356
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +435 -439
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +646 -646
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.d.ts +13 -13
- package/lib/cjs/ViewStateHydrator.js +103 -103
- package/lib/cjs/core-backend.d.ts +184 -184
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +208 -204
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.d.ts +101 -101
- package/lib/cjs/domains/FunctionalElements.js +145 -145
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.d.ts +13 -13
- package/lib/cjs/domains/FunctionalSchema.d.ts.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js +39 -40
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.d.ts +177 -177
- package/lib/cjs/domains/GenericElements.js +263 -263
- package/lib/cjs/domains/GenericSchema.d.ts +10 -10
- package/lib/cjs/domains/GenericSchema.js +28 -28
- package/lib/cjs/rpc/multipart.d.ts +11 -11
- package/lib/cjs/rpc/multipart.js +71 -71
- package/lib/cjs/rpc/tracing.d.ts +28 -28
- package/lib/cjs/rpc/tracing.js +73 -74
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.d.ts +9 -9
- package/lib/cjs/rpc/web/logging.js +43 -43
- package/lib/cjs/rpc/web/request.d.ts +6 -6
- package/lib/cjs/rpc/web/request.js +73 -74
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.d.ts +6 -6
- package/lib/cjs/rpc/web/response.js +105 -106
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.d.ts +15 -15
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js +32 -32
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +47 -47
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +293 -294
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts +20 -22
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +187 -205
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +36 -36
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +166 -168
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +16 -16
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +42 -43
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/WipRpcImpl.d.ts +15 -15
- package/lib/cjs/rpc-impl/WipRpcImpl.js +37 -37
- package/lib/cjs/workspace/Settings.d.ts +186 -186
- package/lib/cjs/workspace/Settings.d.ts.map +1 -1
- package/lib/cjs/workspace/Settings.js +154 -155
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.d.ts +75 -75
- package/lib/cjs/workspace/SettingsSchemas.js +190 -191
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.d.ts +414 -414
- package/lib/cjs/workspace/Workspace.js +537 -543
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/package.json +21 -21
- package/lib/cjs/AliCloudStorageService.d.ts +0 -24
- package/lib/cjs/AliCloudStorageService.d.ts.map +0 -1
- package/lib/cjs/AliCloudStorageService.js +0 -72
- package/lib/cjs/AliCloudStorageService.js.map +0 -1
- package/lib/cjs/CloudStorageBackend.d.ts +0 -59
- package/lib/cjs/CloudStorageBackend.d.ts.map +0 -1
- package/lib/cjs/CloudStorageBackend.js +0 -174
- package/lib/cjs/CloudStorageBackend.js.map +0 -1
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
/** @packageDocumentation
|
|
7
|
-
* @module Elements
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.SynchronizationConfigLink = exports.ExternalSourceGroup = exports.ExternalSourceAttachment = exports.ExternalSource = void 0;
|
|
11
|
-
const core_geometry_1 = require("@itwin/core-geometry");
|
|
12
|
-
const core_common_1 = require("@itwin/core-common");
|
|
13
|
-
const Element_1 = require("./Element");
|
|
14
|
-
const NavigationRelationship_1 = require("./NavigationRelationship");
|
|
15
|
-
/** An ExternalSource refers to an 'information container' found in a repository. In some cases, the container is the entire repository.
|
|
16
|
-
* @note The associated ECClass was added to the BisCore schema in version 1.0.13
|
|
17
|
-
* @beta
|
|
18
|
-
*/
|
|
19
|
-
class ExternalSource extends Element_1.InformationReferenceElement {
|
|
20
|
-
/** @internal */
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
/** @internal */
|
|
29
|
-
toJSON() {
|
|
30
|
-
return super.toJSON(); // Entity.toJSON takes care of auto-handled properties
|
|
31
|
-
}
|
|
32
|
-
/** The [[CodeSpec]] for ExternalSource elements is not automatically created, so this method ensures that it exists. */
|
|
33
|
-
static ensureCodeSpec(iModelDb) {
|
|
34
|
-
try {
|
|
35
|
-
const codeSpec = iModelDb.codeSpecs.getByName(core_common_1.BisCodeSpec.externalSource);
|
|
36
|
-
return codeSpec.id;
|
|
37
|
-
}
|
|
38
|
-
catch (e) {
|
|
39
|
-
return iModelDb.codeSpecs.insert(core_common_1.BisCodeSpec.externalSource, core_common_1.CodeScopeSpec.Type.Repository);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/** Create a Code for an ExternalSource element given a name that is meant to be unique within the scope of the iModel.
|
|
43
|
-
* @param iModelDb The IModelDb
|
|
44
|
-
* @param codeValue The ExternalSource name
|
|
45
|
-
* @see [[ensureCodeSpec]]
|
|
46
|
-
*/
|
|
47
|
-
static createCode(iModelDb, codeValue) {
|
|
48
|
-
const codeSpec = iModelDb.codeSpecs.getByName(core_common_1.BisCodeSpec.externalSource);
|
|
49
|
-
return new core_common_1.Code({ spec: codeSpec.id, scope: core_common_1.IModel.rootSubjectId, value: codeValue });
|
|
50
|
-
}
|
|
51
|
-
/** @internal */
|
|
52
|
-
collectReferenceConcreteIds(referenceIds) {
|
|
53
|
-
super.collectReferenceConcreteIds(referenceIds);
|
|
54
|
-
if (this.repository)
|
|
55
|
-
referenceIds.addElement(this.repository.id);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
exports.ExternalSource = ExternalSource;
|
|
59
|
-
/** Attachment of an ExternalSource
|
|
60
|
-
* @note The associated ECClass was added to the BisCore schema in version 1.0.13
|
|
61
|
-
* @beta
|
|
62
|
-
*/
|
|
63
|
-
class ExternalSourceAttachment extends Element_1.InformationReferenceElement {
|
|
64
|
-
/** @internal */
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if (props.
|
|
70
|
-
this.
|
|
71
|
-
if (props.
|
|
72
|
-
this.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
/** @internal */
|
|
77
|
-
toJSON() {
|
|
78
|
-
return super.toJSON(); // Entity.toJSON takes care of auto-handled properties
|
|
79
|
-
}
|
|
80
|
-
/** The [[CodeSpec]] for ExternalSourceAttachment elements is not automatically created, so this method ensures that it exists. */
|
|
81
|
-
static ensureCodeSpec(iModelDb) {
|
|
82
|
-
try {
|
|
83
|
-
const codeSpec = iModelDb.codeSpecs.getByName(core_common_1.BisCodeSpec.externalSourceAttachment);
|
|
84
|
-
return codeSpec.id;
|
|
85
|
-
}
|
|
86
|
-
catch (e) {
|
|
87
|
-
return iModelDb.codeSpecs.insert(core_common_1.BisCodeSpec.externalSourceAttachment, core_common_1.CodeScopeSpec.Type.ParentElement);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/** Create a Code for an ExternalSourceAttachment element given a name that is meant to be unique within the scope of its parent [[ExternalSource]].
|
|
91
|
-
* @param iModelDb The IModelDb
|
|
92
|
-
* @param scopeElementId The parent ExternalSource
|
|
93
|
-
* @param codeValue The ExternalSourceAttachment name
|
|
94
|
-
* @see [[ensureCodeSpec]]
|
|
95
|
-
*/
|
|
96
|
-
static createCode(iModelDb, scopeElementId, codeValue) {
|
|
97
|
-
const codeSpec = iModelDb.codeSpecs.getByName(core_common_1.BisCodeSpec.externalSourceAttachment);
|
|
98
|
-
return new core_common_1.Code({ spec: codeSpec.id, scope: scopeElementId, value: codeValue });
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
exports.ExternalSourceAttachment = ExternalSourceAttachment;
|
|
102
|
-
/** A group of ExternalSources that are collectively a source of information for one or more elements.
|
|
103
|
-
* @note The associated ECClass was added to the BisCore schema in version 1.0.13
|
|
104
|
-
* @beta
|
|
105
|
-
*/
|
|
106
|
-
class ExternalSourceGroup extends ExternalSource {
|
|
107
|
-
/** @internal */
|
|
108
|
-
static get className() { return "ExternalSourceGroup"; }
|
|
109
|
-
/** @internal */
|
|
110
|
-
constructor(props, iModel) {
|
|
111
|
-
super(props, iModel);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
exports.ExternalSourceGroup = ExternalSourceGroup;
|
|
115
|
-
/** Link to the Configuration for an iModel Synchronization Job
|
|
116
|
-
* @note The associated ECClass was added to the BisCore schema in version 1.0.13
|
|
117
|
-
* @beta
|
|
118
|
-
*/
|
|
119
|
-
class SynchronizationConfigLink extends Element_1.UrlLink {
|
|
120
|
-
/** @internal */
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
/** @internal */
|
|
127
|
-
toJSON() {
|
|
128
|
-
return super.toJSON(); // Entity.toJSON takes care of auto-handled properties
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
exports.SynchronizationConfigLink = SynchronizationConfigLink;
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module Elements
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.SynchronizationConfigLink = exports.ExternalSourceGroup = exports.ExternalSourceAttachment = exports.ExternalSource = void 0;
|
|
11
|
+
const core_geometry_1 = require("@itwin/core-geometry");
|
|
12
|
+
const core_common_1 = require("@itwin/core-common");
|
|
13
|
+
const Element_1 = require("./Element");
|
|
14
|
+
const NavigationRelationship_1 = require("./NavigationRelationship");
|
|
15
|
+
/** An ExternalSource refers to an 'information container' found in a repository. In some cases, the container is the entire repository.
|
|
16
|
+
* @note The associated ECClass was added to the BisCore schema in version 1.0.13
|
|
17
|
+
* @beta
|
|
18
|
+
*/
|
|
19
|
+
class ExternalSource extends Element_1.InformationReferenceElement {
|
|
20
|
+
/** @internal */
|
|
21
|
+
static get className() { return "ExternalSource"; }
|
|
22
|
+
/** @internal */
|
|
23
|
+
constructor(props, iModel) {
|
|
24
|
+
super(props, iModel);
|
|
25
|
+
if (props.repository)
|
|
26
|
+
this.repository = new NavigationRelationship_1.ExternalSourceIsInRepository(core_common_1.RelatedElement.idFromJson(props.repository));
|
|
27
|
+
}
|
|
28
|
+
/** @internal */
|
|
29
|
+
toJSON() {
|
|
30
|
+
return super.toJSON(); // Entity.toJSON takes care of auto-handled properties
|
|
31
|
+
}
|
|
32
|
+
/** The [[CodeSpec]] for ExternalSource elements is not automatically created, so this method ensures that it exists. */
|
|
33
|
+
static ensureCodeSpec(iModelDb) {
|
|
34
|
+
try {
|
|
35
|
+
const codeSpec = iModelDb.codeSpecs.getByName(core_common_1.BisCodeSpec.externalSource);
|
|
36
|
+
return codeSpec.id;
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
return iModelDb.codeSpecs.insert(core_common_1.BisCodeSpec.externalSource, core_common_1.CodeScopeSpec.Type.Repository);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** Create a Code for an ExternalSource element given a name that is meant to be unique within the scope of the iModel.
|
|
43
|
+
* @param iModelDb The IModelDb
|
|
44
|
+
* @param codeValue The ExternalSource name
|
|
45
|
+
* @see [[ensureCodeSpec]]
|
|
46
|
+
*/
|
|
47
|
+
static createCode(iModelDb, codeValue) {
|
|
48
|
+
const codeSpec = iModelDb.codeSpecs.getByName(core_common_1.BisCodeSpec.externalSource);
|
|
49
|
+
return new core_common_1.Code({ spec: codeSpec.id, scope: core_common_1.IModel.rootSubjectId, value: codeValue });
|
|
50
|
+
}
|
|
51
|
+
/** @internal */
|
|
52
|
+
collectReferenceConcreteIds(referenceIds) {
|
|
53
|
+
super.collectReferenceConcreteIds(referenceIds);
|
|
54
|
+
if (this.repository)
|
|
55
|
+
referenceIds.addElement(this.repository.id);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.ExternalSource = ExternalSource;
|
|
59
|
+
/** Attachment of an ExternalSource
|
|
60
|
+
* @note The associated ECClass was added to the BisCore schema in version 1.0.13
|
|
61
|
+
* @beta
|
|
62
|
+
*/
|
|
63
|
+
class ExternalSourceAttachment extends Element_1.InformationReferenceElement {
|
|
64
|
+
/** @internal */
|
|
65
|
+
static get className() { return "ExternalSourceAttachment"; }
|
|
66
|
+
/** @internal */
|
|
67
|
+
constructor(props, iModel) {
|
|
68
|
+
super(props, iModel);
|
|
69
|
+
if (props.attaches)
|
|
70
|
+
this.attaches = new NavigationRelationship_1.ExternalSourceAttachmentAttachesSource(core_common_1.RelatedElement.idFromJson(props.attaches));
|
|
71
|
+
if (props.translation)
|
|
72
|
+
this.translation = core_geometry_1.Point3d.fromJSON(props.translation);
|
|
73
|
+
if (props.scale)
|
|
74
|
+
this.scale = core_geometry_1.Point3d.fromJSON(props.scale);
|
|
75
|
+
}
|
|
76
|
+
/** @internal */
|
|
77
|
+
toJSON() {
|
|
78
|
+
return super.toJSON(); // Entity.toJSON takes care of auto-handled properties
|
|
79
|
+
}
|
|
80
|
+
/** The [[CodeSpec]] for ExternalSourceAttachment elements is not automatically created, so this method ensures that it exists. */
|
|
81
|
+
static ensureCodeSpec(iModelDb) {
|
|
82
|
+
try {
|
|
83
|
+
const codeSpec = iModelDb.codeSpecs.getByName(core_common_1.BisCodeSpec.externalSourceAttachment);
|
|
84
|
+
return codeSpec.id;
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
return iModelDb.codeSpecs.insert(core_common_1.BisCodeSpec.externalSourceAttachment, core_common_1.CodeScopeSpec.Type.ParentElement);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/** Create a Code for an ExternalSourceAttachment element given a name that is meant to be unique within the scope of its parent [[ExternalSource]].
|
|
91
|
+
* @param iModelDb The IModelDb
|
|
92
|
+
* @param scopeElementId The parent ExternalSource
|
|
93
|
+
* @param codeValue The ExternalSourceAttachment name
|
|
94
|
+
* @see [[ensureCodeSpec]]
|
|
95
|
+
*/
|
|
96
|
+
static createCode(iModelDb, scopeElementId, codeValue) {
|
|
97
|
+
const codeSpec = iModelDb.codeSpecs.getByName(core_common_1.BisCodeSpec.externalSourceAttachment);
|
|
98
|
+
return new core_common_1.Code({ spec: codeSpec.id, scope: scopeElementId, value: codeValue });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.ExternalSourceAttachment = ExternalSourceAttachment;
|
|
102
|
+
/** A group of ExternalSources that are collectively a source of information for one or more elements.
|
|
103
|
+
* @note The associated ECClass was added to the BisCore schema in version 1.0.13
|
|
104
|
+
* @beta
|
|
105
|
+
*/
|
|
106
|
+
class ExternalSourceGroup extends ExternalSource {
|
|
107
|
+
/** @internal */
|
|
108
|
+
static get className() { return "ExternalSourceGroup"; }
|
|
109
|
+
/** @internal */
|
|
110
|
+
constructor(props, iModel) {
|
|
111
|
+
super(props, iModel);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.ExternalSourceGroup = ExternalSourceGroup;
|
|
115
|
+
/** Link to the Configuration for an iModel Synchronization Job
|
|
116
|
+
* @note The associated ECClass was added to the BisCore schema in version 1.0.13
|
|
117
|
+
* @beta
|
|
118
|
+
*/
|
|
119
|
+
class SynchronizationConfigLink extends Element_1.UrlLink {
|
|
120
|
+
/** @internal */
|
|
121
|
+
static get className() { return "SynchronizationConfigLink"; }
|
|
122
|
+
/** @internal */
|
|
123
|
+
constructor(props, iModel) {
|
|
124
|
+
super(props, iModel);
|
|
125
|
+
}
|
|
126
|
+
/** @internal */
|
|
127
|
+
toJSON() {
|
|
128
|
+
return super.toJSON(); // Entity.toJSON takes care of auto-handled properties
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.SynchronizationConfigLink = SynchronizationConfigLink;
|
|
132
132
|
//# sourceMappingURL=ExternalSource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalSource.js","sourceRoot":"","sources":["../../src/ExternalSource.ts"],"names":[],"mappings":"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","sourcesContent":["\r\n/*---------------------------------------------------------------------------------------------\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/** @packageDocumentation\r\n * @module Elements\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport {\r\n BisCodeSpec, Code, CodeScopeSpec, EntityReferenceSet, ExternalSourceAttachmentProps, ExternalSourceAttachmentRole, ExternalSourceProps, IModel, RelatedElement,\r\n SynchronizationConfigLinkProps,\r\n} from \"@itwin/core-common\";\r\nimport { InformationReferenceElement, UrlLink } from \"./Element\";\r\nimport { IModelDb } from \"./IModelDb\";\r\nimport { ExternalSourceAttachmentAttachesSource, ExternalSourceIsInRepository } from \"./NavigationRelationship\";\r\n\r\n/** An ExternalSource refers to an 'information container' found in a repository. In some cases, the container is the entire repository.\r\n * @note The associated ECClass was added to the BisCore schema in version 1.0.13\r\n * @beta\r\n */\r\nexport class ExternalSource extends InformationReferenceElement {\r\n /** The repository that contains this ExternalSource. */\r\n public repository?: ExternalSourceIsInRepository;\r\n /** The name of the iModel Connecter that processed this ExternalSource. */\r\n public connectorName?: string;\r\n /** The version of the iModel Connecter that processed this ExternalSource. */\r\n public connectorVersion?: string;\r\n /** @internal */\r\n public static override get className(): string { return \"ExternalSource\"; }\r\n /** @internal */\r\n public constructor(props: ExternalSourceProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n if (props.repository)\r\n this.repository = new ExternalSourceIsInRepository(RelatedElement.idFromJson(props.repository));\r\n }\r\n /** @internal */\r\n public override toJSON(): ExternalSourceProps { // This override only specializes the return type\r\n return super.toJSON() as ExternalSourceProps; // Entity.toJSON takes care of auto-handled properties\r\n }\r\n /** The [[CodeSpec]] for ExternalSource elements is not automatically created, so this method ensures that it exists. */\r\n public static ensureCodeSpec(iModelDb: IModelDb): Id64String {\r\n try {\r\n const codeSpec = iModelDb.codeSpecs.getByName(BisCodeSpec.externalSource);\r\n return codeSpec.id;\r\n } catch (e) {\r\n return iModelDb.codeSpecs.insert(BisCodeSpec.externalSource, CodeScopeSpec.Type.Repository);\r\n }\r\n }\r\n /** Create a Code for an ExternalSource element given a name that is meant to be unique within the scope of the iModel.\r\n * @param iModelDb The IModelDb\r\n * @param codeValue The ExternalSource name\r\n * @see [[ensureCodeSpec]]\r\n */\r\n public static createCode(iModelDb: IModelDb, codeValue: string): Code {\r\n const codeSpec = iModelDb.codeSpecs.getByName(BisCodeSpec.externalSource);\r\n return new Code({ spec: codeSpec.id, scope: IModel.rootSubjectId, value: codeValue });\r\n }\r\n\r\n /** @internal */\r\n protected override collectReferenceConcreteIds(referenceIds: EntityReferenceSet): void {\r\n super.collectReferenceConcreteIds(referenceIds);\r\n if (this.repository)\r\n referenceIds.addElement(this.repository.id);\r\n }\r\n}\r\n\r\n/** Attachment of an ExternalSource\r\n * @note The associated ECClass was added to the BisCore schema in version 1.0.13\r\n * @beta\r\n */\r\nexport class ExternalSourceAttachment extends InformationReferenceElement {\r\n /** The [[ExternalSource]] that is attached by this ExternalSourceAttachment. */\r\n public attaches?: ExternalSourceAttachmentAttachesSource;\r\n /** Specifies whether the attached [[ExternalSource]] provides context or models a part of the whole. */\r\n public role?: ExternalSourceAttachmentRole;\r\n /** The translation or offset in global coordinates of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */\r\n public translation?: Point3d;\r\n /** The Yaw angle (in degrees) of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */\r\n public yaw?: number;\r\n /** The Pitch angle (in degrees) of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */\r\n public pitch?: number;\r\n /** The Roll angle (in degrees) of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */\r\n public roll?: number;\r\n /** The scale of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */\r\n public scale?: Point3d;\r\n /** @internal */\r\n public static override get className(): string { return \"ExternalSourceAttachment\"; }\r\n /** @internal */\r\n public constructor(props: ExternalSourceAttachmentProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n if (props.attaches)\r\n this.attaches = new ExternalSourceAttachmentAttachesSource(RelatedElement.idFromJson(props.attaches));\r\n\r\n if (props.translation)\r\n this.translation = Point3d.fromJSON(props.translation);\r\n\r\n if (props.scale)\r\n this.scale = Point3d.fromJSON(props.scale);\r\n }\r\n /** @internal */\r\n public override toJSON(): ExternalSourceAttachmentProps { // This override only specializes the return type\r\n return super.toJSON() as ExternalSourceAttachmentProps; // Entity.toJSON takes care of auto-handled properties\r\n }\r\n /** The [[CodeSpec]] for ExternalSourceAttachment elements is not automatically created, so this method ensures that it exists. */\r\n public static ensureCodeSpec(iModelDb: IModelDb): Id64String {\r\n try {\r\n const codeSpec = iModelDb.codeSpecs.getByName(BisCodeSpec.externalSourceAttachment);\r\n return codeSpec.id;\r\n } catch (e) {\r\n return iModelDb.codeSpecs.insert(BisCodeSpec.externalSourceAttachment, CodeScopeSpec.Type.ParentElement);\r\n }\r\n }\r\n /** Create a Code for an ExternalSourceAttachment element given a name that is meant to be unique within the scope of its parent [[ExternalSource]].\r\n * @param iModelDb The IModelDb\r\n * @param scopeElementId The parent ExternalSource\r\n * @param codeValue The ExternalSourceAttachment name\r\n * @see [[ensureCodeSpec]]\r\n */\r\n public static createCode(iModelDb: IModelDb, scopeElementId: Id64String, codeValue: string): Code {\r\n const codeSpec = iModelDb.codeSpecs.getByName(BisCodeSpec.externalSourceAttachment);\r\n return new Code({ spec: codeSpec.id, scope: scopeElementId, value: codeValue });\r\n }\r\n}\r\n\r\n/** A group of ExternalSources that are collectively a source of information for one or more elements.\r\n * @note The associated ECClass was added to the BisCore schema in version 1.0.13\r\n * @beta\r\n */\r\nexport class ExternalSourceGroup extends ExternalSource {\r\n /** @internal */\r\n public static override get className(): string { return \"ExternalSourceGroup\"; }\r\n /** @internal */\r\n public constructor(props: ExternalSourceProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** Link to the Configuration for an iModel Synchronization Job\r\n * @note The associated ECClass was added to the BisCore schema in version 1.0.13\r\n * @beta\r\n */\r\nexport class SynchronizationConfigLink extends UrlLink {\r\n /** Date/Time of last successful run of this synchronization configuration */\r\n public lastSuccessfulRun?: string;\r\n /** @internal */\r\n public static override get className(): string { return \"SynchronizationConfigLink\"; }\r\n /** @internal */\r\n public constructor(props: SynchronizationConfigLinkProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n /** @internal */\r\n public override toJSON(): SynchronizationConfigLinkProps { // This override only specializes the return type\r\n return super.toJSON() as SynchronizationConfigLinkProps; // Entity.toJSON takes care of auto-handled properties\r\n }\r\n}\r\n\r\n"]}
|
|
1
|
+
{"version":3,"file":"ExternalSource.js","sourceRoot":"","sources":["../../src/ExternalSource.ts"],"names":[],"mappings":"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","sourcesContent":["\r\n/*---------------------------------------------------------------------------------------------\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/** @packageDocumentation\r\n * @module Elements\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport {\r\n BisCodeSpec, Code, CodeScopeSpec, EntityReferenceSet, ExternalSourceAttachmentProps, ExternalSourceAttachmentRole, ExternalSourceProps, IModel, RelatedElement,\r\n SynchronizationConfigLinkProps,\r\n} from \"@itwin/core-common\";\r\nimport { InformationReferenceElement, UrlLink } from \"./Element\";\r\nimport { IModelDb } from \"./IModelDb\";\r\nimport { ExternalSourceAttachmentAttachesSource, ExternalSourceIsInRepository } from \"./NavigationRelationship\";\r\n\r\n/** An ExternalSource refers to an 'information container' found in a repository. In some cases, the container is the entire repository.\r\n * @note The associated ECClass was added to the BisCore schema in version 1.0.13\r\n * @beta\r\n */\r\nexport class ExternalSource extends InformationReferenceElement {\r\n /** The repository that contains this ExternalSource. */\r\n public repository?: ExternalSourceIsInRepository;\r\n /** The name of the iModel Connecter that processed this ExternalSource. */\r\n public connectorName?: string;\r\n /** The version of the iModel Connecter that processed this ExternalSource. */\r\n public connectorVersion?: string;\r\n /** @internal */\r\n public static override get className(): string { return \"ExternalSource\"; }\r\n /** @internal */\r\n public constructor(props: ExternalSourceProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n if (props.repository)\r\n this.repository = new ExternalSourceIsInRepository(RelatedElement.idFromJson(props.repository));\r\n }\r\n /** @internal */\r\n public override toJSON(): ExternalSourceProps { // This override only specializes the return type\r\n return super.toJSON() as ExternalSourceProps; // Entity.toJSON takes care of auto-handled properties\r\n }\r\n /** The [[CodeSpec]] for ExternalSource elements is not automatically created, so this method ensures that it exists. */\r\n public static ensureCodeSpec(iModelDb: IModelDb): Id64String {\r\n try {\r\n const codeSpec = iModelDb.codeSpecs.getByName(BisCodeSpec.externalSource);\r\n return codeSpec.id;\r\n } catch (e) {\r\n return iModelDb.codeSpecs.insert(BisCodeSpec.externalSource, CodeScopeSpec.Type.Repository);\r\n }\r\n }\r\n /** Create a Code for an ExternalSource element given a name that is meant to be unique within the scope of the iModel.\r\n * @param iModelDb The IModelDb\r\n * @param codeValue The ExternalSource name\r\n * @see [[ensureCodeSpec]]\r\n */\r\n public static createCode(iModelDb: IModelDb, codeValue: string): Code {\r\n const codeSpec = iModelDb.codeSpecs.getByName(BisCodeSpec.externalSource);\r\n return new Code({ spec: codeSpec.id, scope: IModel.rootSubjectId, value: codeValue });\r\n }\r\n\r\n /** @internal */\r\n protected override collectReferenceConcreteIds(referenceIds: EntityReferenceSet): void {\r\n super.collectReferenceConcreteIds(referenceIds);\r\n if (this.repository)\r\n referenceIds.addElement(this.repository.id);\r\n }\r\n}\r\n\r\n/** Attachment of an ExternalSource\r\n * @note The associated ECClass was added to the BisCore schema in version 1.0.13\r\n * @beta\r\n */\r\nexport class ExternalSourceAttachment extends InformationReferenceElement {\r\n /** The [[ExternalSource]] that is attached by this ExternalSourceAttachment. */\r\n public attaches?: ExternalSourceAttachmentAttachesSource;\r\n /** Specifies whether the attached [[ExternalSource]] provides context or models a part of the whole. */\r\n public role?: ExternalSourceAttachmentRole;\r\n /** The translation or offset in global coordinates of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */\r\n public translation?: Point3d;\r\n /** The Yaw angle (in degrees) of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */\r\n public yaw?: number;\r\n /** The Pitch angle (in degrees) of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */\r\n public pitch?: number;\r\n /** The Roll angle (in degrees) of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */\r\n public roll?: number;\r\n /** The scale of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */\r\n public scale?: Point3d;\r\n /** @internal */\r\n public static override get className(): string { return \"ExternalSourceAttachment\"; }\r\n /** @internal */\r\n public constructor(props: ExternalSourceAttachmentProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n if (props.attaches)\r\n this.attaches = new ExternalSourceAttachmentAttachesSource(RelatedElement.idFromJson(props.attaches));\r\n\r\n if (props.translation)\r\n this.translation = Point3d.fromJSON(props.translation);\r\n\r\n if (props.scale)\r\n this.scale = Point3d.fromJSON(props.scale);\r\n }\r\n /** @internal */\r\n public override toJSON(): ExternalSourceAttachmentProps { // This override only specializes the return type\r\n return super.toJSON() as ExternalSourceAttachmentProps; // Entity.toJSON takes care of auto-handled properties\r\n }\r\n /** The [[CodeSpec]] for ExternalSourceAttachment elements is not automatically created, so this method ensures that it exists. */\r\n public static ensureCodeSpec(iModelDb: IModelDb): Id64String {\r\n try {\r\n const codeSpec = iModelDb.codeSpecs.getByName(BisCodeSpec.externalSourceAttachment);\r\n return codeSpec.id;\r\n } catch (e) {\r\n return iModelDb.codeSpecs.insert(BisCodeSpec.externalSourceAttachment, CodeScopeSpec.Type.ParentElement);\r\n }\r\n }\r\n /** Create a Code for an ExternalSourceAttachment element given a name that is meant to be unique within the scope of its parent [[ExternalSource]].\r\n * @param iModelDb The IModelDb\r\n * @param scopeElementId The parent ExternalSource\r\n * @param codeValue The ExternalSourceAttachment name\r\n * @see [[ensureCodeSpec]]\r\n */\r\n public static createCode(iModelDb: IModelDb, scopeElementId: Id64String, codeValue: string): Code {\r\n const codeSpec = iModelDb.codeSpecs.getByName(BisCodeSpec.externalSourceAttachment);\r\n return new Code({ spec: codeSpec.id, scope: scopeElementId, value: codeValue });\r\n }\r\n}\r\n\r\n/** A group of ExternalSources that are collectively a source of information for one or more elements.\r\n * @note The associated ECClass was added to the BisCore schema in version 1.0.13\r\n * @beta\r\n */\r\nexport class ExternalSourceGroup extends ExternalSource {\r\n /** @internal */\r\n public static override get className(): string { return \"ExternalSourceGroup\"; }\r\n /** @internal */\r\n public constructor(props: ExternalSourceProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** Link to the Configuration for an iModel Synchronization Job\r\n * @note The associated ECClass was added to the BisCore schema in version 1.0.13\r\n * @beta\r\n */\r\nexport class SynchronizationConfigLink extends UrlLink {\r\n /** Date/Time of last successful run of this synchronization configuration */\r\n public lastSuccessfulRun?: string;\r\n /** @internal */\r\n public static override get className(): string { return \"SynchronizationConfigLink\"; }\r\n /** @internal */\r\n public constructor(props: SynchronizationConfigLinkProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n /** @internal */\r\n public override toJSON(): SynchronizationConfigLinkProps { // This override only specializes the return type\r\n return super.toJSON() as SynchronizationConfigLinkProps; // Entity.toJSON takes care of auto-handled properties\r\n }\r\n}\r\n\r\n"]}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module iModels
|
|
3
|
-
*/
|
|
4
|
-
import { CloudSqlite } from "./CloudSqlite";
|
|
5
|
-
import { Settings } from "./workspace/Settings";
|
|
6
|
-
/**
|
|
7
|
-
* Internal class to configure and load the gcs workspaces for an iModel.
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
export declare class GeoCoordConfig {
|
|
11
|
-
/** array of cloud prefetch tasks that may be awaited to permit offline usage */
|
|
12
|
-
static readonly prefetches: CloudSqlite.CloudPrefetch[];
|
|
13
|
-
private static addGcsWorkspace;
|
|
14
|
-
private static loadAll;
|
|
15
|
-
private static _defaultDbsLoaded;
|
|
16
|
-
static onStartup(): void;
|
|
17
|
-
static loadDefaultDatabases(): void;
|
|
18
|
-
static loadForImodel(settings: Settings): void;
|
|
19
|
-
}
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module iModels
|
|
3
|
+
*/
|
|
4
|
+
import { CloudSqlite } from "./CloudSqlite";
|
|
5
|
+
import { Settings } from "./workspace/Settings";
|
|
6
|
+
/**
|
|
7
|
+
* Internal class to configure and load the gcs workspaces for an iModel.
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare class GeoCoordConfig {
|
|
11
|
+
/** array of cloud prefetch tasks that may be awaited to permit offline usage */
|
|
12
|
+
static readonly prefetches: CloudSqlite.CloudPrefetch[];
|
|
13
|
+
private static addGcsWorkspace;
|
|
14
|
+
private static loadAll;
|
|
15
|
+
private static _defaultDbsLoaded;
|
|
16
|
+
static onStartup(): void;
|
|
17
|
+
static loadDefaultDatabases(): void;
|
|
18
|
+
static loadForImodel(settings: Settings): void;
|
|
19
|
+
}
|
|
20
20
|
//# sourceMappingURL=GeoCoordConfig.d.ts.map
|
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
/** @packageDocumentation
|
|
7
|
-
* @module iModels
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.GeoCoordConfig = void 0;
|
|
11
|
-
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
|
-
const CloudSqlite_1 = require("./CloudSqlite");
|
|
13
|
-
const IModelHost_1 = require("./IModelHost");
|
|
14
|
-
const loggerCat = "GeoCoord";
|
|
15
|
-
/**
|
|
16
|
-
* Internal class to configure and load the gcs workspaces for an iModel.
|
|
17
|
-
* @internal
|
|
18
|
-
*/
|
|
19
|
-
class GeoCoordConfig {
|
|
20
|
-
static addGcsWorkspace(gcsDbAlias) {
|
|
21
|
-
// override to disable loading GCS data from workspaces
|
|
22
|
-
if (IModelHost_1.IModelHost.appWorkspace.settings.getBoolean("gcs/disableWorkspaces", false))
|
|
23
|
-
return;
|
|
24
|
-
let account;
|
|
25
|
-
let containerProps;
|
|
26
|
-
try {
|
|
27
|
-
const ws = IModelHost_1.IModelHost.appWorkspace;
|
|
28
|
-
const dbProps = ws.resolveDatabase(gcsDbAlias);
|
|
29
|
-
containerProps = ws.resolveContainer(dbProps.containerName);
|
|
30
|
-
account = ws.resolveAccount(containerProps.accountName);
|
|
31
|
-
const container = ws.getContainer(containerProps, account);
|
|
32
|
-
const cloudContainer = container.cloudContainer;
|
|
33
|
-
if (!
|
|
34
|
-
core_bentley_1.Logger.logError("GeoCoord", `could not load gcs database "${gcsDbAlias}"`);
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
const gcsDbName = container.resolveDbFileName(dbProps);
|
|
38
|
-
const gcsDbProps = cloudContainer.queryDatabase(gcsDbName);
|
|
39
|
-
if (undefined === gcsDbProps)
|
|
40
|
-
throw new Error(`database "${gcsDbName}" not found in container "${containerProps.containerId}"`);
|
|
41
|
-
if (!IModelHost_1.IModelHost.platform.addGcsWorkspaceDb(gcsDbName, cloudContainer, dbProps.priority))
|
|
42
|
-
return; // already had this db
|
|
43
|
-
if (IModelHost_1.IModelHost.appWorkspace.settings.getBoolean("gcs/noLocalData", false))
|
|
44
|
-
IModelHost_1.IModelHost.platform.enableLocalGcsFiles(false);
|
|
45
|
-
core_bentley_1.Logger.logInfo(loggerCat, `loaded gcsDb "${gcsDbName}", from "${account.accessName}/${containerProps.containerId}" size=${gcsDbProps.totalBlocks}, local=${gcsDbProps.localBlocks}`);
|
|
46
|
-
if (true === dbProps.prefetch)
|
|
47
|
-
this.prefetches.push(CloudSqlite_1.CloudSqlite.startCloudPrefetch(cloudContainer, gcsDbName));
|
|
48
|
-
}
|
|
49
|
-
catch (e) {
|
|
50
|
-
let msg = `Cannot load GCS workspace (${e.errorNumber}): ${core_bentley_1.BentleyError.getErrorMessage(e)}`;
|
|
51
|
-
if (account && containerProps)
|
|
52
|
-
msg += `,container=${account.accessName}/${containerProps.containerId}, storage=${account.storageType}, public=${containerProps.isPublic}, cacheDir=${IModelHost_1.IModelHost.cacheDir}`;
|
|
53
|
-
core_bentley_1.Logger.logError(loggerCat, msg);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
static loadAll(settings, settingName) {
|
|
57
|
-
settings.resolveSetting(settingName, (val) => {
|
|
58
|
-
if (Array.isArray(val)) {
|
|
59
|
-
for (const entry of val) {
|
|
60
|
-
if (typeof entry === "string")
|
|
61
|
-
this.addGcsWorkspace(entry);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return undefined; // keep going through all dictionaries
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
static onStartup() {
|
|
68
|
-
this._defaultDbsLoaded = false;
|
|
69
|
-
this.prefetches.length = 0;
|
|
70
|
-
}
|
|
71
|
-
static loadDefaultDatabases() {
|
|
72
|
-
if (!this._defaultDbsLoaded) {
|
|
73
|
-
this._defaultDbsLoaded = true;
|
|
74
|
-
this.loadAll(IModelHost_1.IModelHost.appWorkspace.settings, "gcs/default/databases");
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
static loadForImodel(settings) {
|
|
78
|
-
this.loadDefaultDatabases();
|
|
79
|
-
this.loadAll(settings, "gcs/databases");
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
GeoCoordConfig.
|
|
85
|
-
GeoCoordConfig
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module iModels
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.GeoCoordConfig = void 0;
|
|
11
|
+
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
|
+
const CloudSqlite_1 = require("./CloudSqlite");
|
|
13
|
+
const IModelHost_1 = require("./IModelHost");
|
|
14
|
+
const loggerCat = "GeoCoord";
|
|
15
|
+
/**
|
|
16
|
+
* Internal class to configure and load the gcs workspaces for an iModel.
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
class GeoCoordConfig {
|
|
20
|
+
static addGcsWorkspace(gcsDbAlias) {
|
|
21
|
+
// override to disable loading GCS data from workspaces
|
|
22
|
+
if (IModelHost_1.IModelHost.appWorkspace.settings.getBoolean("gcs/disableWorkspaces", false))
|
|
23
|
+
return;
|
|
24
|
+
let account;
|
|
25
|
+
let containerProps;
|
|
26
|
+
try {
|
|
27
|
+
const ws = IModelHost_1.IModelHost.appWorkspace;
|
|
28
|
+
const dbProps = ws.resolveDatabase(gcsDbAlias);
|
|
29
|
+
containerProps = ws.resolveContainer(dbProps.containerName);
|
|
30
|
+
account = ws.resolveAccount(containerProps.accountName);
|
|
31
|
+
const container = ws.getContainer(containerProps, account);
|
|
32
|
+
const cloudContainer = container.cloudContainer;
|
|
33
|
+
if (!cloudContainer?.isConnected) {
|
|
34
|
+
core_bentley_1.Logger.logError("GeoCoord", `could not load gcs database "${gcsDbAlias}"`);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const gcsDbName = container.resolveDbFileName(dbProps);
|
|
38
|
+
const gcsDbProps = cloudContainer.queryDatabase(gcsDbName);
|
|
39
|
+
if (undefined === gcsDbProps)
|
|
40
|
+
throw new Error(`database "${gcsDbName}" not found in container "${containerProps.containerId}"`);
|
|
41
|
+
if (!IModelHost_1.IModelHost.platform.addGcsWorkspaceDb(gcsDbName, cloudContainer, dbProps.priority))
|
|
42
|
+
return; // already had this db
|
|
43
|
+
if (IModelHost_1.IModelHost.appWorkspace.settings.getBoolean("gcs/noLocalData", false))
|
|
44
|
+
IModelHost_1.IModelHost.platform.enableLocalGcsFiles(false);
|
|
45
|
+
core_bentley_1.Logger.logInfo(loggerCat, `loaded gcsDb "${gcsDbName}", from "${account.accessName}/${containerProps.containerId}" size=${gcsDbProps.totalBlocks}, local=${gcsDbProps.localBlocks}`);
|
|
46
|
+
if (true === dbProps.prefetch)
|
|
47
|
+
this.prefetches.push(CloudSqlite_1.CloudSqlite.startCloudPrefetch(cloudContainer, gcsDbName));
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
let msg = `Cannot load GCS workspace (${e.errorNumber}): ${core_bentley_1.BentleyError.getErrorMessage(e)}`;
|
|
51
|
+
if (account && containerProps)
|
|
52
|
+
msg += `,container=${account.accessName}/${containerProps.containerId}, storage=${account.storageType}, public=${containerProps.isPublic}, cacheDir=${IModelHost_1.IModelHost.cacheDir}`;
|
|
53
|
+
core_bentley_1.Logger.logError(loggerCat, msg);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
static loadAll(settings, settingName) {
|
|
57
|
+
settings.resolveSetting(settingName, (val) => {
|
|
58
|
+
if (Array.isArray(val)) {
|
|
59
|
+
for (const entry of val) {
|
|
60
|
+
if (typeof entry === "string")
|
|
61
|
+
this.addGcsWorkspace(entry);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return undefined; // keep going through all dictionaries
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
static onStartup() {
|
|
68
|
+
this._defaultDbsLoaded = false;
|
|
69
|
+
this.prefetches.length = 0;
|
|
70
|
+
}
|
|
71
|
+
static loadDefaultDatabases() {
|
|
72
|
+
if (!this._defaultDbsLoaded) {
|
|
73
|
+
this._defaultDbsLoaded = true;
|
|
74
|
+
this.loadAll(IModelHost_1.IModelHost.appWorkspace.settings, "gcs/default/databases");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
static loadForImodel(settings) {
|
|
78
|
+
this.loadDefaultDatabases();
|
|
79
|
+
this.loadAll(settings, "gcs/databases");
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** array of cloud prefetch tasks that may be awaited to permit offline usage */
|
|
83
|
+
GeoCoordConfig.prefetches = [];
|
|
84
|
+
GeoCoordConfig._defaultDbsLoaded = false;
|
|
85
|
+
exports.GeoCoordConfig = GeoCoordConfig;
|
|
86
86
|
//# sourceMappingURL=GeoCoordConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeoCoordConfig.js","sourceRoot":"","sources":["../../src/GeoCoordConfig.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA2D;AAC3D,+CAA4C;AAC5C,6CAA0C;AAI1C,MAAM,SAAS,GAAG,UAAU,CAAC;AAO7B;;;GAGG;AACH,MAAa,cAAc;IAIjB,MAAM,CAAC,eAAe,CAAC,UAAkB;QAC/C,uDAAuD;QACvD,IAAI,uBAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAuB,EAAE,KAAK,CAAC;YAC7E,OAAO;QAET,IAAI,OAAmD,CAAC;QACxD,IAAI,cAA6E,CAAC;QAClF,IAAI;YACF,MAAM,EAAE,GAAG,uBAAU,CAAC,YAAY,CAAC;YACnC,MAAM,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,CAAe,CAAC;YAC7D,cAAc,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC5D,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;YAChD,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"GeoCoordConfig.js","sourceRoot":"","sources":["../../src/GeoCoordConfig.ts"],"names":[],"mappings":"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","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/** @packageDocumentation\r\n * @module iModels\r\n */\r\n\r\nimport { BentleyError, Logger } from \"@itwin/core-bentley\";\r\nimport { CloudSqlite } from \"./CloudSqlite\";\r\nimport { IModelHost } from \"./IModelHost\";\r\nimport { Settings } from \"./workspace/Settings\";\r\nimport { WorkspaceAccount, WorkspaceContainer, WorkspaceDb } from \"./workspace/Workspace\";\r\n\r\nconst loggerCat = \"GeoCoord\";\r\n\r\ninterface GcsDbProps extends WorkspaceDb.Props, WorkspaceContainer.Alias {\r\n prefetch?: boolean;\r\n priority?: number;\r\n}\r\n\r\n/**\r\n * Internal class to configure and load the gcs workspaces for an iModel.\r\n * @internal\r\n */\r\nexport class GeoCoordConfig {\r\n /** array of cloud prefetch tasks that may be awaited to permit offline usage */\r\n public static readonly prefetches: CloudSqlite.CloudPrefetch[] = [];\r\n\r\n private static addGcsWorkspace(gcsDbAlias: string) {\r\n // override to disable loading GCS data from workspaces\r\n if (IModelHost.appWorkspace.settings.getBoolean(\"gcs/disableWorkspaces\", false))\r\n return;\r\n\r\n let account: CloudSqlite.AccountAccessProps | undefined;\r\n let containerProps: WorkspaceContainer.Props & WorkspaceAccount.Alias | undefined;\r\n try {\r\n const ws = IModelHost.appWorkspace;\r\n const dbProps = ws.resolveDatabase(gcsDbAlias) as GcsDbProps;\r\n containerProps = ws.resolveContainer(dbProps.containerName);\r\n account = ws.resolveAccount(containerProps.accountName);\r\n const container = ws.getContainer(containerProps, account);\r\n const cloudContainer = container.cloudContainer;\r\n if (!cloudContainer?.isConnected) {\r\n Logger.logError(\"GeoCoord\", `could not load gcs database \"${gcsDbAlias}\"`);\r\n return;\r\n }\r\n\r\n const gcsDbName = container.resolveDbFileName(dbProps);\r\n const gcsDbProps = cloudContainer.queryDatabase(gcsDbName);\r\n if (undefined === gcsDbProps)\r\n throw new Error(`database \"${gcsDbName}\" not found in container \"${containerProps.containerId}\"`);\r\n\r\n if (!IModelHost.platform.addGcsWorkspaceDb(gcsDbName, cloudContainer, dbProps.priority))\r\n return; // already had this db\r\n\r\n if (IModelHost.appWorkspace.settings.getBoolean(\"gcs/noLocalData\", false))\r\n IModelHost.platform.enableLocalGcsFiles(false);\r\n\r\n Logger.logInfo(loggerCat, `loaded gcsDb \"${gcsDbName}\", from \"${account.accessName}/${containerProps.containerId}\" size=${gcsDbProps.totalBlocks}, local=${gcsDbProps.localBlocks}`);\r\n\r\n if (true === dbProps.prefetch)\r\n this.prefetches.push(CloudSqlite.startCloudPrefetch(cloudContainer, gcsDbName));\r\n\r\n } catch (e: any) {\r\n let msg = `Cannot load GCS workspace (${e.errorNumber}): ${BentleyError.getErrorMessage(e)}`;\r\n if (account && containerProps)\r\n msg += `,container=${account.accessName}/${containerProps.containerId}, storage=${account.storageType}, public=${containerProps.isPublic}, cacheDir=${IModelHost.cacheDir}`;\r\n Logger.logError(loggerCat, msg);\r\n }\r\n }\r\n\r\n private static loadAll(settings: Settings, settingName: string) {\r\n settings.resolveSetting(settingName, (val) => {\r\n if (Array.isArray(val)) {\r\n for (const entry of val) {\r\n if (typeof entry === \"string\")\r\n this.addGcsWorkspace(entry);\r\n }\r\n }\r\n return undefined; // keep going through all dictionaries\r\n });\r\n }\r\n\r\n private static _defaultDbsLoaded = false;\r\n public static onStartup() {\r\n this._defaultDbsLoaded = false;\r\n this.prefetches.length = 0;\r\n }\r\n\r\n public static loadDefaultDatabases(): void {\r\n if (!this._defaultDbsLoaded) {\r\n this._defaultDbsLoaded = true;\r\n this.loadAll(IModelHost.appWorkspace.settings, \"gcs/default/databases\");\r\n }\r\n }\r\n\r\n public static loadForImodel(settings: Settings) {\r\n this.loadDefaultDatabases();\r\n this.loadAll(settings, \"gcs/databases\");\r\n }\r\n}\r\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { GeometrySummaryRequestProps } from "@itwin/core-common";
|
|
2
|
-
import { IModelDb } from "./IModelDb";
|
|
3
|
-
/** @internal */
|
|
4
|
-
export declare function generateGeometrySummaries(request: GeometrySummaryRequestProps, iModel: IModelDb): string;
|
|
1
|
+
import { GeometrySummaryRequestProps } from "@itwin/core-common";
|
|
2
|
+
import { IModelDb } from "./IModelDb";
|
|
3
|
+
/** @internal */
|
|
4
|
+
export declare function generateGeometrySummaries(request: GeometrySummaryRequestProps, iModel: IModelDb): string;
|
|
5
5
|
//# sourceMappingURL=GeometrySummary.d.ts.map
|