@itwin/imodel-transformer 0.2.2-dev.3 → 0.3.18-fedguidopt.5
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 +14 -1
- package/lib/cjs/Algo.d.ts +7 -0
- package/lib/cjs/Algo.d.ts.map +1 -0
- package/lib/cjs/Algo.js +50 -0
- package/lib/cjs/Algo.js.map +1 -0
- package/lib/cjs/IModelCloneContext.d.ts.map +1 -1
- package/lib/cjs/IModelCloneContext.js +0 -2
- package/lib/cjs/IModelCloneContext.js.map +1 -1
- package/lib/cjs/IModelExporter.d.ts +31 -8
- package/lib/cjs/IModelExporter.d.ts.map +1 -1
- package/lib/cjs/IModelExporter.js +81 -35
- package/lib/cjs/IModelExporter.js.map +1 -1
- package/lib/cjs/IModelTransformer.d.ts +146 -26
- package/lib/cjs/IModelTransformer.d.ts.map +1 -1
- package/lib/cjs/IModelTransformer.js +884 -212
- package/lib/cjs/IModelTransformer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccessToken, Id64String } from "@itwin/core-bentley";
|
|
1
|
+
import { AccessToken, Id64Array, Id64String } from "@itwin/core-bentley";
|
|
2
2
|
import * as ECSchemaMetaData from "@itwin/ecschema-metadata";
|
|
3
3
|
import { Element, ElementAspect, ElementMultiAspect, ElementUniqueAspect, Entity, IModelDb, Model, Relationship, RelationshipProps, SQLiteDb } from "@itwin/core-backend";
|
|
4
4
|
import { CodeSpec, ElementAspectProps, ElementProps, EntityReference, EntityReferenceSet, ExternalSourceAspectProps, FontProps, ModelProps, Placement2d, Placement3d } from "@itwin/core-common";
|
|
@@ -13,7 +13,8 @@ import { IModelCloneContext } from "./IModelCloneContext";
|
|
|
13
13
|
*/
|
|
14
14
|
export interface IModelTransformOptions {
|
|
15
15
|
/** The Id of the Element in the **target** iModel that represents the **source** repository as a whole and scopes its [ExternalSourceAspect]($backend) instances.
|
|
16
|
-
*
|
|
16
|
+
* It is always a good idea to define this, although particularly necessary in any multi-source scenario such as multiple branches that reverse synchronize
|
|
17
|
+
* or physical consolidation.
|
|
17
18
|
*/
|
|
18
19
|
targetScopeElementId?: Id64String;
|
|
19
20
|
/** Set to `true` if IModelTransformer should not record its provenance.
|
|
@@ -50,7 +51,7 @@ export interface IModelTransformOptions {
|
|
|
50
51
|
/** Flag that indicates whether or not the transformation process should clone using binary geometry.
|
|
51
52
|
*
|
|
52
53
|
* Prefer to never to set this flag. If you need geometry changes, instead override [[IModelTransformer.onTransformElement]]
|
|
53
|
-
* and provide an [ElementGeometryBuilderParams]($
|
|
54
|
+
* and provide an [ElementGeometryBuilderParams]($common) to the `elementGeometryBuilderParams`
|
|
54
55
|
* property of [ElementProps]($common) instead, it is much faster. You can read geometry during the transformation by setting the
|
|
55
56
|
* [[IModelTransformOptions.loadSourceGeometry]] property to `true`, and passing that to a [GeometryStreamIterator]($common)
|
|
56
57
|
* @note this flag will be deprecated when `elementGeometryBuilderParams` is no longer an alpha API
|
|
@@ -100,6 +101,28 @@ export interface IModelTransformOptions {
|
|
|
100
101
|
* @beta
|
|
101
102
|
*/
|
|
102
103
|
optimizeGeometry?: OptimizeGeometryOptions;
|
|
104
|
+
/**
|
|
105
|
+
* force the insertion of external source aspects to provide provenance, even if there are federation guids
|
|
106
|
+
* in the source that we can use. This can make some operations (like transforming new elements or initializing forks)
|
|
107
|
+
* much slower due to needing to insert aspects, but prevents requiring change information for future merges.
|
|
108
|
+
* @default false
|
|
109
|
+
*/
|
|
110
|
+
forceExternalSourceAspectProvenance?: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Do not detach the change cache that we build. Use this if you want to do multiple transformations to
|
|
113
|
+
* the same iModels, to avoid the performance cost of reinitializing the change cache which can be
|
|
114
|
+
* expensive. You should only use this if you know the cache will be reused.
|
|
115
|
+
* @note You must detach the change cache yourself.
|
|
116
|
+
* @default false
|
|
117
|
+
*/
|
|
118
|
+
noDetachChangeCache?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Do not check that processChanges is called from the next changeset index.
|
|
121
|
+
* This is an unsafe option (e.g. it can cause data loss in future branch operations)
|
|
122
|
+
* and you should not use it.
|
|
123
|
+
* @default false
|
|
124
|
+
*/
|
|
125
|
+
ignoreMissingChangesetsInSynchronizations?: boolean;
|
|
103
126
|
}
|
|
104
127
|
/**
|
|
105
128
|
* A container for tracking the state of a partially committed entity and finalizing it when it's ready to be fully committed
|
|
@@ -123,10 +146,10 @@ declare class PartiallyCommittedEntity {
|
|
|
123
146
|
resolveReference(id: EntityReference): void;
|
|
124
147
|
forceComplete(): void;
|
|
125
148
|
}
|
|
126
|
-
/** Arguments you can pass to [[IModelTransformer.
|
|
149
|
+
/** Arguments you can pass to [[IModelTransformer.initialize]]
|
|
127
150
|
* @beta
|
|
128
151
|
*/
|
|
129
|
-
export interface
|
|
152
|
+
export interface InitOptions {
|
|
130
153
|
accessToken?: AccessToken;
|
|
131
154
|
/**
|
|
132
155
|
* Include changes from this changeset up through and including the current changeset.
|
|
@@ -144,6 +167,10 @@ export interface InitFromExternalSourceAspectsArgs {
|
|
|
144
167
|
*/
|
|
145
168
|
export interface ProcessChangesOptions extends ExportChangesOptions {
|
|
146
169
|
}
|
|
170
|
+
/** Arguments you can pass to [[IModelTransformer.initExternalSourceAspects]]
|
|
171
|
+
* @deprecated in 0.1.0. Use [[InitOptions]] (and [[IModelTransformer.initialize]]) instead.
|
|
172
|
+
*/
|
|
173
|
+
export type InitFromExternalSourceAspectsArgs = InitOptions;
|
|
147
174
|
/** Base class used to transform a source iModel into a different target iModel.
|
|
148
175
|
* @see [iModel Transformation and Data Exchange]($docs/learning/transformer/index.md), [IModelExporter]($transformer), [IModelImporter]($transformer)
|
|
149
176
|
* @beta
|
|
@@ -166,10 +193,16 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
166
193
|
/** map of (unprocessed element, referencing processed element) pairs to the partially committed element that needs the reference resolved
|
|
167
194
|
* and have some helper methods below for now */
|
|
168
195
|
protected _pendingReferences: PendingReferenceMap<PartiallyCommittedEntity>;
|
|
196
|
+
/** a set of elements for which source provenance will be explicitly tracked by ExternalSourceAspects */
|
|
197
|
+
protected _elementsWithExplicitlyTrackedProvenance: Set<string>;
|
|
169
198
|
/** map of partially committed entities to their partial commit progress */
|
|
170
199
|
protected _partiallyCommittedEntities: EntityMap<PartiallyCommittedEntity>;
|
|
171
200
|
/** the options that were used to initialize this transformer */
|
|
172
201
|
private readonly _options;
|
|
202
|
+
private _isSynchronization;
|
|
203
|
+
private get _isReverseSynchronization();
|
|
204
|
+
private get _isForwardSynchronization();
|
|
205
|
+
private _changesetRanges;
|
|
173
206
|
/** Set if it can be determined whether this is the first source --> target synchronization. */
|
|
174
207
|
private _isFirstSynchronization?;
|
|
175
208
|
/** The element classes that are considered to define provenance in the iModel */
|
|
@@ -204,6 +237,13 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
204
237
|
isReverseSynchronization: boolean;
|
|
205
238
|
targetScopeElementId: Id64String;
|
|
206
239
|
}): ExternalSourceAspectProps;
|
|
240
|
+
/**
|
|
241
|
+
* Previously the transformer would insert provenance always pointing to the "target" relationship.
|
|
242
|
+
* It should (and now by default does) instead insert provenance pointing to the provenanceSource
|
|
243
|
+
* SEE: https://github.com/iTwin/imodel-transformer/issues/54
|
|
244
|
+
* This exists only to facilitate testing that the transformer can handle the older, flawed method
|
|
245
|
+
*/
|
|
246
|
+
private _forceOldRelationshipProvenanceMethod;
|
|
207
247
|
/** Create an ExternalSourceAspectProps in a standard way for an Element in an iModel --> iModel transformation. */
|
|
208
248
|
private initElementProvenance;
|
|
209
249
|
/** Create an ExternalSourceAspectProps in a standard way for a Relationship in an iModel --> iModel transformations.
|
|
@@ -212,9 +252,38 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
212
252
|
* The ECInstanceId of the relationship in the target iModel will be stored in the JsonProperties of the ExternalSourceAspect.
|
|
213
253
|
*/
|
|
214
254
|
private initRelationshipProvenance;
|
|
215
|
-
|
|
216
|
-
private
|
|
217
|
-
/**
|
|
255
|
+
/** NOTE: the json properties must be converted to string before insertion */
|
|
256
|
+
private _targetScopeProvenanceProps;
|
|
257
|
+
/**
|
|
258
|
+
* Index of the changeset that the transformer was at when the transformation begins (was constructed).
|
|
259
|
+
* Used to determine at the end which changesets were part of a synchronization.
|
|
260
|
+
*/
|
|
261
|
+
private _startingTargetChangesetIndex;
|
|
262
|
+
private _cachedSynchronizationVersion;
|
|
263
|
+
/** the changeset in the scoping element's source version found for this transformation
|
|
264
|
+
* @note: the version depends on whether this is a reverse synchronization or not, as
|
|
265
|
+
* it is stored separately for both synchronization directions
|
|
266
|
+
* @note: empty string and -1 for changeset and index if it has never been transformed
|
|
267
|
+
*/
|
|
268
|
+
private get _synchronizationVersion();
|
|
269
|
+
/**
|
|
270
|
+
* Make sure there are no conflicting other scope-type external source aspects on the *target scope element*,
|
|
271
|
+
* If there are none at all, insert one, then this must be a first synchronization.
|
|
272
|
+
* @returns the last synced version (changesetId) on the target scope's external source aspect,
|
|
273
|
+
* if this was a [BriefcaseDb]($backend)
|
|
274
|
+
*/
|
|
275
|
+
private initScopeProvenance;
|
|
276
|
+
/**
|
|
277
|
+
* @returns the id and version of an aspect with the given element, scope, kind, and identifier
|
|
278
|
+
* May also return a reverseSyncVersion from json properties if requested
|
|
279
|
+
*/
|
|
280
|
+
private queryScopeExternalSource;
|
|
281
|
+
/**
|
|
282
|
+
* Iterate all matching federation guids and ExternalSourceAspects in the provenance iModel (target unless reverse sync)
|
|
283
|
+
* and call a function for each one.
|
|
284
|
+
* @note provenance is done by federation guids where possible
|
|
285
|
+
* @note this may execute on each element more than once! Only use in cases where that is handled
|
|
286
|
+
*/
|
|
218
287
|
static forEachTrackedElement(args: {
|
|
219
288
|
provenanceSourceDb: IModelDb;
|
|
220
289
|
provenanceDb: IModelDb;
|
|
@@ -229,19 +298,30 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
229
298
|
* @note Passing an [[InitFromExternalSourceAspectsArgs]] is required when processing changes, to remap any elements that may have been deleted.
|
|
230
299
|
* You must await the returned promise as well in this case. The synchronous behavior has not changed but is deprecated and won't process everything.
|
|
231
300
|
*/
|
|
232
|
-
initFromExternalSourceAspects(args?:
|
|
233
|
-
/**
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
*/
|
|
237
|
-
private
|
|
301
|
+
initFromExternalSourceAspects(args?: InitOptions): void | Promise<void>;
|
|
302
|
+
/**
|
|
303
|
+
* Scan changesets for deleted entities, if in a reverse synchronization, provenance has
|
|
304
|
+
* already been deleted, so we must scan for that as well.
|
|
305
|
+
*/
|
|
306
|
+
private remapDeletedSourceEntities;
|
|
307
|
+
private _queryProvenanceForElement;
|
|
308
|
+
private _queryProvenanceForRelationship;
|
|
309
|
+
private _queryTargetRelId;
|
|
310
|
+
private _targetClassNameToClassIdCache;
|
|
311
|
+
private _targetClassNameToClassId;
|
|
312
|
+
private _getRelClassId;
|
|
313
|
+
private _queryElemIdByFedGuid;
|
|
238
314
|
/** Returns `true` if *brute force* delete detections should be run.
|
|
239
315
|
* @note Not relevant for processChanges when change history is known.
|
|
240
316
|
*/
|
|
241
317
|
private shouldDetectDeletes;
|
|
242
|
-
/**
|
|
243
|
-
*
|
|
244
|
-
*
|
|
318
|
+
/**
|
|
319
|
+
* Detect Element deletes using ExternalSourceAspects in the target iModel and a *brute force* comparison against Elements
|
|
320
|
+
* in the source iModel.
|
|
321
|
+
* @deprecated in 0.1.x. This method is only called during [[processAll]] when the option
|
|
322
|
+
* [[IModelTransformerOptions.forceExternalSourceAspectProvenance]] is enabled. It is not
|
|
323
|
+
* necessary when using [[processChanges]] since changeset information is sufficient.
|
|
324
|
+
* @note you do not need to call this directly unless processing a subset of an iModel.
|
|
245
325
|
* @throws [[IModelError]] If the required provenance information is not available to detect deletes.
|
|
246
326
|
*/
|
|
247
327
|
detectElementDeletes(): Promise<void>;
|
|
@@ -256,12 +336,15 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
256
336
|
* @note This can be called more than once for an element in arbitrary order, so it should not have side-effects.
|
|
257
337
|
*/
|
|
258
338
|
onTransformElement(sourceElement: Element): ElementProps;
|
|
339
|
+
private _hasElementChangedCache?;
|
|
340
|
+
private _deletedSourceRelationshipData?;
|
|
341
|
+
private _cacheSourceChanges;
|
|
259
342
|
/** Returns true if a change within sourceElement is detected.
|
|
260
343
|
* @param sourceElement The Element from the source iModel
|
|
261
344
|
* @param targetElementId The Element from the target iModel to compare against.
|
|
262
345
|
* @note A subclass can override this method to provide custom change detection behavior.
|
|
263
346
|
*/
|
|
264
|
-
protected hasElementChanged(sourceElement: Element,
|
|
347
|
+
protected hasElementChanged(sourceElement: Element, _targetElementId: Id64String): boolean;
|
|
265
348
|
private static transformCallbackFor;
|
|
266
349
|
/** callback to perform when a partial element says it's ready to be completed
|
|
267
350
|
* transforms the source element with all references now valid, then updates the partial element with the results
|
|
@@ -332,6 +415,11 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
332
415
|
* @deprecated in 3.x. This method is no longer necessary since the transformer no longer needs to defer elements
|
|
333
416
|
*/
|
|
334
417
|
processDeferredElements(_numRetries?: number): Promise<void>;
|
|
418
|
+
/** called at the end ([[finalizeTransformation]]) of a transformation,
|
|
419
|
+
* updates the target scope element to say that transformation up through the
|
|
420
|
+
* source's changeset has been performed.
|
|
421
|
+
*/
|
|
422
|
+
private _updateSynchronizationVersion;
|
|
335
423
|
private finalizeTransformation;
|
|
336
424
|
/** Imports all relationships that subclass from the specified base class.
|
|
337
425
|
* @param baseRelClassFullName The specified base relationship class.
|
|
@@ -352,6 +440,7 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
352
440
|
onDeleteRelationship(sourceRelInstanceId: Id64String): void;
|
|
353
441
|
private _yieldManager;
|
|
354
442
|
/** Detect Relationship deletes using ExternalSourceAspects in the target iModel and a *brute force* comparison against relationships in the source iModel.
|
|
443
|
+
* @deprecated
|
|
355
444
|
* @see processChanges
|
|
356
445
|
* @note This method is called from [[processAll]] and is not needed by [[processChanges]], so it only needs to be called directly when processing a subset of an iModel.
|
|
357
446
|
* @throws [[IModelError]] If the required provenance information is not available to detect deletes.
|
|
@@ -425,17 +514,22 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
425
514
|
processSubject(sourceSubjectId: Id64String, targetSubjectId: Id64String): Promise<void>;
|
|
426
515
|
/** state to prevent reinitialization, @see [[initialize]] */
|
|
427
516
|
private _initialized;
|
|
517
|
+
/** length === 0 when _changeDataState = "no-change", length > 0 means "has-changes", otherwise undefined */
|
|
518
|
+
private _changeSummaryIds?;
|
|
519
|
+
private _sourceChangeDataState;
|
|
428
520
|
/**
|
|
429
|
-
* Initialize prerequisites of processing, you must initialize with an [[
|
|
430
|
-
* are intending process changes, but prefer using [[processChanges]]
|
|
431
|
-
* Called by all `process*` functions implicitly.
|
|
521
|
+
* Initialize prerequisites of processing, you must initialize with an [[InitOptions]] if you
|
|
522
|
+
* are intending to process changes, but prefer using [[processChanges]] explicitly since it calls this.
|
|
523
|
+
* @note Called by all `process*` functions implicitly.
|
|
432
524
|
* Overriders must call `super.initialize()` first
|
|
433
525
|
*/
|
|
434
|
-
initialize(args?:
|
|
526
|
+
initialize(args?: InitOptions): Promise<void>;
|
|
527
|
+
private _tryInitChangesetData;
|
|
435
528
|
/** Export everything from the source iModel and import the transformed entities into the target iModel.
|
|
436
529
|
* @note [[processSchemas]] is not called automatically since the target iModel may want a different collection of schemas.
|
|
437
530
|
*/
|
|
438
531
|
processAll(): Promise<void>;
|
|
532
|
+
/** previous provenance, either a federation guid, a `${sourceFedGuid}/${targetFedGuid}` pair, or required aspect props */
|
|
439
533
|
private _lastProvenanceEntityInfo;
|
|
440
534
|
private markLastProvenance;
|
|
441
535
|
/** @internal the name of the table where javascript state of the transformer is serialized in transformer state dumps */
|
|
@@ -450,6 +544,9 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
450
544
|
*/
|
|
451
545
|
protected loadStateFromDb(db: SQLiteDb): void;
|
|
452
546
|
/**
|
|
547
|
+
* @deprecated in 0.1.x, this is buggy, and it is now equivalently efficient to simply restart the transformation
|
|
548
|
+
* from the original changeset
|
|
549
|
+
*
|
|
453
550
|
* Return a new transformer instance with the same remappings state as saved from a previous [[IModelTransformer.saveStateToFile]] call.
|
|
454
551
|
* This allows you to "resume" an iModel transformation, you will have to call [[IModelTransformer.processChanges]]/[[IModelTransformer.processAll]]
|
|
455
552
|
* again but the remapping state will cause already mapped elements to be skipped.
|
|
@@ -479,6 +576,9 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
479
576
|
*/
|
|
480
577
|
protected saveStateToDb(db: SQLiteDb): void;
|
|
481
578
|
/**
|
|
579
|
+
* @deprecated in 0.1.x, this is buggy, and it is now equivalently efficient to simply restart the transformation
|
|
580
|
+
* from the original changeset
|
|
581
|
+
*
|
|
482
582
|
* Save the state of the active transformation to a file path, if a file at the path already exists, it will be overwritten
|
|
483
583
|
* This state can be used by [[IModelTransformer.resumeTransformation]] to resume a transformation from this point.
|
|
484
584
|
* The serialization format is a custom sqlite database.
|
|
@@ -489,12 +589,32 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
489
589
|
*/
|
|
490
590
|
saveStateToFile(nativeStatePath: string): void;
|
|
491
591
|
/** Export changes from the source iModel and import the transformed entities into the target iModel.
|
|
492
|
-
*
|
|
493
|
-
*
|
|
592
|
+
* Inserts, updates, and deletes are determined by inspecting the changeset(s).
|
|
593
|
+
* @note the transformer assumes that you saveChanges after processing changes. You should not
|
|
594
|
+
* modify the iModel after processChanges until saveChanges, failure to do so may result in corrupted
|
|
595
|
+
* data loss in future branch operations
|
|
596
|
+
* @param accessToken A valid access token string
|
|
597
|
+
* @param startChangesetId Include changes from this changeset up through and including the current changeset.
|
|
598
|
+
* If this parameter is not provided, then just the current changeset will be exported.
|
|
599
|
+
* @note To form a range of versions to process, set `startChangesetId` for the start (inclusive) of the desired range and open the source iModel as of the end (inclusive) of the desired range.
|
|
600
|
+
*/
|
|
601
|
+
processChanges(options: ProcessChangesOptions): Promise<void>;
|
|
602
|
+
/**
|
|
603
|
+
* @deprecated in 0.1.x, use a single [[ProcessChangesOptions]] object instead
|
|
604
|
+
* This overload follows the older behavior of defaulting an undefined startChangesetId to the
|
|
605
|
+
* current changeset.
|
|
494
606
|
*/
|
|
495
|
-
processChanges(args: ProcessChangesOptions): Promise<void>;
|
|
496
|
-
/** @deprecated in 0.1.x, use a single [[ProcessChangesOptions]] object instead */
|
|
497
607
|
processChanges(accessToken: AccessToken, startChangesetId?: string): Promise<void>;
|
|
608
|
+
/** Changeset data must be initialized in order to build correct changeOptions.
|
|
609
|
+
* Call [[IModelTransformer.initialize]] for initialization of synchronization provenance data
|
|
610
|
+
*/
|
|
611
|
+
private getExportInitOpts;
|
|
612
|
+
/** Combine an array of source elements into a single target element.
|
|
613
|
+
* All source and target elements must be created before calling this method.
|
|
614
|
+
* The "combine" operation is a remap and no properties from the source elements will be exported into the target
|
|
615
|
+
* and provenance will be explicitly tracked by ExternalSourceAspects
|
|
616
|
+
*/
|
|
617
|
+
combineElements(sourceElementIds: Id64Array, targetElementId: Id64String): void;
|
|
498
618
|
}
|
|
499
619
|
/** IModelTransformer that clones the contents of a template model.
|
|
500
620
|
* @beta
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IModelTransformer.d.ts","sourceRoot":"","sources":["../../src/IModelTransformer.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"IModelTransformer.d.ts","sourceRoot":"","sources":["../../src/IModelTransformer.ts"],"names":[],"mappings":"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"}
|