@itwin/imodel-transformer 2.0.0-dev.2 → 2.0.0-dev.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/lib/cjs/BranchProvenanceInitializer.js +18 -15
  3. package/lib/cjs/BranchProvenanceInitializer.js.map +1 -1
  4. package/lib/cjs/DetachedExportElementAspectsStrategy.d.ts.map +1 -1
  5. package/lib/cjs/DetachedExportElementAspectsStrategy.js +8 -6
  6. package/lib/cjs/DetachedExportElementAspectsStrategy.js.map +1 -1
  7. package/lib/cjs/ECReferenceTypesCache.d.ts +3 -0
  8. package/lib/cjs/ECReferenceTypesCache.d.ts.map +1 -1
  9. package/lib/cjs/ECReferenceTypesCache.js +103 -40
  10. package/lib/cjs/ECReferenceTypesCache.js.map +1 -1
  11. package/lib/cjs/ElementCascadingDeleter.d.ts.map +1 -1
  12. package/lib/cjs/ElementCascadingDeleter.js +10 -9
  13. package/lib/cjs/ElementCascadingDeleter.js.map +1 -1
  14. package/lib/cjs/EntityUnifier.d.ts +1 -1
  15. package/lib/cjs/EntityUnifier.d.ts.map +1 -1
  16. package/lib/cjs/EntityUnifier.js +11 -12
  17. package/lib/cjs/EntityUnifier.js.map +1 -1
  18. package/lib/cjs/ExportElementAspectsStrategy.d.ts +4 -4
  19. package/lib/cjs/ExportElementAspectsStrategy.d.ts.map +1 -1
  20. package/lib/cjs/ExportElementAspectsStrategy.js +1 -1
  21. package/lib/cjs/ExportElementAspectsStrategy.js.map +1 -1
  22. package/lib/cjs/ExportElementAspectsWithElementsStrategy.d.ts.map +1 -1
  23. package/lib/cjs/ExportElementAspectsWithElementsStrategy.js +17 -16
  24. package/lib/cjs/ExportElementAspectsWithElementsStrategy.js.map +1 -1
  25. package/lib/cjs/IModelCloneContext.d.ts +3 -3
  26. package/lib/cjs/IModelCloneContext.d.ts.map +1 -1
  27. package/lib/cjs/IModelCloneContext.js +60 -52
  28. package/lib/cjs/IModelCloneContext.js.map +1 -1
  29. package/lib/cjs/IModelExporter.d.ts +28 -19
  30. package/lib/cjs/IModelExporter.d.ts.map +1 -1
  31. package/lib/cjs/IModelExporter.js +145 -119
  32. package/lib/cjs/IModelExporter.js.map +1 -1
  33. package/lib/cjs/IModelImporter.d.ts +21 -21
  34. package/lib/cjs/IModelImporter.d.ts.map +1 -1
  35. package/lib/cjs/IModelImporter.js +94 -74
  36. package/lib/cjs/IModelImporter.js.map +1 -1
  37. package/lib/cjs/IModelTransformer.d.ts +84 -178
  38. package/lib/cjs/IModelTransformer.d.ts.map +1 -1
  39. package/lib/cjs/IModelTransformer.js +371 -997
  40. package/lib/cjs/IModelTransformer.js.map +1 -1
  41. package/lib/cjs/ProvenanceManager.d.ts +159 -0
  42. package/lib/cjs/ProvenanceManager.d.ts.map +1 -0
  43. package/lib/cjs/ProvenanceManager.js +677 -0
  44. package/lib/cjs/ProvenanceManager.js.map +1 -0
  45. package/lib/cjs/SyncTypeResolver.d.ts +34 -0
  46. package/lib/cjs/SyncTypeResolver.d.ts.map +1 -0
  47. package/lib/cjs/SyncTypeResolver.js +84 -0
  48. package/lib/cjs/SyncTypeResolver.js.map +1 -0
  49. package/lib/cjs/TransformerLoggerCategory.d.ts +6 -5
  50. package/lib/cjs/TransformerLoggerCategory.d.ts.map +1 -1
  51. package/lib/cjs/TransformerLoggerCategory.js +6 -5
  52. package/lib/cjs/TransformerLoggerCategory.js.map +1 -1
  53. package/lib/cjs/imodel-transformer.js +2 -2
  54. package/lib/cjs/imodel-transformer.js.map +1 -1
  55. package/package.json +38 -33
@@ -1,10 +1,12 @@
1
1
  import { Id64Array, Id64Set, Id64String } from "@itwin/core-bentley";
2
2
  import * as ECSchemaMetaData from "@itwin/ecschema-metadata";
3
+ import { Transform } from "@itwin/core-geometry";
3
4
  import { Element, ElementAspect, ElementMultiAspect, ElementUniqueAspect, Entity, ExternalSourceAspect, IModelDb, Model, Relationship, RelationshipProps } from "@itwin/core-backend";
4
- import { ChangesetIndexAndId, CodeSpec, ElementAspectProps, ElementProps, ExternalSourceAspectProps, FontProps, ModelProps, Placement2d, Placement3d } from "@itwin/core-common";
5
+ import { ChangesetIndexAndId, CodeSpec, ElementAspectProps, ElementProps, ExternalSourceAspectProps, FontProps, Helmert2DWithZOffset, ModelProps, Placement2d, Placement3d } from "@itwin/core-common";
5
6
  import { ChangedInstanceIds, ExportChangesOptions, ExportSchemaResult, IModelExporter, IModelExportHandler } from "./IModelExporter";
6
7
  import { IModelImporter, OptimizeGeometryOptions } from "./IModelImporter";
7
8
  import { IModelCloneContext } from "./IModelCloneContext";
9
+ import { ProvenanceManager } from "./ProvenanceManager";
8
10
  /** Options provided to the [[IModelTransformer]] constructor.
9
11
  * @beta
10
12
  * @note if adding an option, you must explicitly add its serialization to [[IModelTransformer.saveStateToFile]]!
@@ -114,6 +116,13 @@ export interface IModelTransformOptions {
114
116
  * @default undefined
115
117
  */
116
118
  argsForProcessChanges?: ProcessChangesOptions;
119
+ /**
120
+ * A flag that determines if spatial elements from the source db should be transformed if:
121
+ * source and target iModel GCS/CRS data is the same, but they have differing additional transforms
122
+ * source and target iModel ECEF locations differ
123
+ * @default false
124
+ */
125
+ tryAlignGeolocation?: boolean;
117
126
  }
118
127
  /**
119
128
  * Data type for persisting change version information within provenance Scope ExternalSourceAspect.
@@ -204,47 +213,38 @@ export declare class IModelTransformer extends IModelExportHandler {
204
213
  readonly targetDb: IModelDb;
205
214
  /** The IModelTransformContext for this IModelTransformer. */
206
215
  readonly context: IModelCloneContext;
207
- private _syncType?;
216
+ /** The transform to be applied to the placement of spatial elements
217
+ * This transform should be applied when:
218
+ * - source and target db have different ECEF locations
219
+ * - source and target db have matching GCS/CRS data, but differing `geographicCoordinateSystem.additionalTransform.helmert2DWithZOffset`
220
+ * @note for ECEF transforms, this can only be used when source and target are linearly located imodels
221
+ * @note for non linearly located imodels, this transform will be a linear transform derived from Helmert Transforms from the src and target iModels.
222
+ * @beta
223
+ */
224
+ private _linearSpatialTransform?;
225
+ private _syncTypeResolver;
226
+ protected _provenanceManager: ProvenanceManager;
208
227
  /** The Id of the Element in the **target** iModel that represents the **source** repository as a whole and scopes its [ExternalSourceAspect]($backend) instances. */
209
228
  get targetScopeElementId(): Id64String;
210
229
  /** a set of elements for which source provenance will be explicitly tracked by ExternalSourceAspects */
211
230
  protected _elementsWithExplicitlyTrackedProvenance: Set<string>;
212
231
  protected _partiallyCommittedElementIds: Id64Set;
213
232
  protected _partiallyCommittedAspectIds: Id64Set;
214
- /** the options that were used to initialize this transformer */
215
- private readonly _options;
216
233
  /**
217
- * A private variable meant to be set by tests which have an outdated way of setting up transforms. In all synchronizations today we expect to find an ESA in the branch db which describes the master -> branch relationship.
218
- * The exception to this is the first transform aka the provenance initializing transform which requires that the master imodel and the branch imodel are identical at the time of provenance initialization.
219
- * A couple ofoutdated tests run their first transform providing a source and targetdb that are slightly different which is no longer supported. In order to not remove these tests which are still providing value
220
- * this private property on the IModelTransformer exists.
234
+ * Tracks target element IDs that were remapped by Code during the current
235
+ * transformation pass. Used to prevent deletion of target elements that have been remapped
236
+ * to a new source element in the same pass (e.g., when a source element is deleted and a
237
+ * new one with the same properties is added, causing a remap to the same target).
221
238
  */
222
- private _allowNoScopingESA;
223
- static noEsaSyncDirectionErrorMessage: string;
239
+ private _targetElementIdsRemappedByCode;
224
240
  /**
225
- * Queries for an esa which matches the props in the provided aspectProps.
226
- * @param dbToQuery db to run the query on for scope external source
227
- * @param aspectProps aspectProps to search for @see ExternalSourceAspectProps
228
- */
229
- static queryScopeExternalSourceAspect(dbToQuery: IModelDb, aspectProps: ExternalSourceAspectProps): {
230
- aspectId: Id64String;
231
- version?: string;
232
- /** stringified json */
233
- jsonProperties?: string;
234
- } | undefined;
235
- /**
236
- * Determines the sync direction "forward" or "reverse" of a given sourceDb and targetDb by looking for the scoping ESA.
237
- * If the sourceDb's iModelId is found as the identifier of the expected scoping ESA in the targetDb, then it is a forward synchronization.
238
- * If the targetDb's iModelId is found as the identifier of the expected scoping ESA in the sourceDb, then it is a reverse synchronization.
239
- * @throws if no scoping ESA can be found in either the sourceDb or targetDb which describes a master branch relationship between the two databases.
240
- * @returns "forward" or "reverse"
241
- */
242
- static determineSyncType(sourceDb: IModelDb, targetDb: IModelDb,
243
- /** @see [[IModelTransformOptions.targetScopeElementId]] */
244
- targetScopeElementId: Id64String): "forward" | "reverse";
245
- private determineSyncType;
246
- get isReverseSynchronization(): boolean;
247
- get isForwardSynchronization(): boolean;
241
+ * Tracks target model IDs that were imported (inserted or updated) during the current
242
+ * transformation pass. Used to prevent deletion of target models that have been recreated
243
+ * in the same pass (e.g. when a partition element is recreated with a new model).
244
+ */
245
+ private _targetModelsImportedInCurrentTransform;
246
+ /** the options that were used to initialize this transformer */
247
+ private readonly _options;
248
248
  private _changesetRanges;
249
249
  /**
250
250
  * Set if the transformer is being used to perform the provenance initialization step of a fork initialization.
@@ -269,28 +269,6 @@ export declare class IModelTransformer extends IModelExportHandler {
269
269
  dispose(): void;
270
270
  /** Log current settings that affect IModelTransformer's behavior. */
271
271
  private logSettings;
272
- /** Return the IModelDb where IModelTransformer will store its provenance.
273
- * @note This will be [[targetDb]] except when it is a reverse synchronization. In that case it be [[sourceDb]].
274
- */
275
- get provenanceDb(): IModelDb;
276
- /** Return the IModelDb where IModelTransformer looks for entities referred to by stored provenance.
277
- * @note This will be [[sourceDb]] except when it is a reverse synchronization. In that case it be [[targetDb]].
278
- */
279
- get provenanceSourceDb(): IModelDb;
280
- /** Create an ExternalSourceAspectProps in a standard way for an Element in an iModel --> iModel transformation. */
281
- static initElementProvenanceOptions(sourceElementId: Id64String, targetElementId: Id64String, args: {
282
- sourceDb: IModelDb;
283
- targetDb: IModelDb;
284
- isReverseSynchronization: boolean;
285
- targetScopeElementId: Id64String;
286
- }): ExternalSourceAspectProps;
287
- static initRelationshipProvenanceOptions(sourceRelInstanceId: Id64String, targetRelInstanceId: Id64String, args: {
288
- sourceDb: IModelDb;
289
- targetDb: IModelDb;
290
- isReverseSynchronization: boolean;
291
- targetScopeElementId: Id64String;
292
- forceOldRelationshipProvenanceMethod: boolean;
293
- }): ExternalSourceAspectProps;
294
272
  /**
295
273
  * Previously the transformer would insert provenance always pointing to the "target" relationship.
296
274
  * It should (and now by default does) instead insert provenance pointing to the provenanceSource
@@ -299,27 +277,7 @@ export declare class IModelTransformer extends IModelExportHandler {
299
277
  */
300
278
  private _forceOldRelationshipProvenanceMethod;
301
279
  /** Create an ExternalSourceAspectProps in a standard way for an Element in an iModel --> iModel transformation. */
302
- initElementProvenance(sourceElementId: Id64String, targetElementId: Id64String): ExternalSourceAspectProps;
303
- /** Create an ExternalSourceAspectProps in a standard way for a Relationship in an iModel --> iModel transformations.
304
- * The ExternalSourceAspect is meant to be owned by the Element in the target iModel that is the `sourceId` of transformed relationship.
305
- * The `identifier` property of the ExternalSourceAspect will be the ECInstanceId of the relationship in the master iModel.
306
- * The ECInstanceId of the relationship in the branch iModel will be stored in the JsonProperties of the ExternalSourceAspect.
307
- */
308
- private initRelationshipProvenance;
309
- /** NOTE: the json properties must be converted to string before insertion */
310
- private _targetScopeProvenanceProps;
311
- /**
312
- * Index of the changeset that the transformer was at when the transformation begins (was constructed).
313
- * Used to determine at the end which changesets were part of a synchronization.
314
- */
315
- private _startingChangesetIndices;
316
- private _cachedSynchronizationVersion;
317
- /**
318
- * We cache the synchronization version to avoid querying the target scoping ESA multiple times.
319
- * If the target scoping ESA is ever updated we need to clear any potentially cached sync version otherwise we will get stale values.
320
- * Sets this._cachedSynchronizationVersion to undefined.
321
- */
322
- private clearCachedSynchronizationVersion;
280
+ initElementProvenance(sourceElementId: Id64String, targetElementId: Id64String): Promise<ExternalSourceAspectProps>;
323
281
  /** the changeset in the scoping element's source version found for this transformation
324
282
  * @note the version depends on whether this is a reverse synchronization or not, as
325
283
  * it is stored separately for both synchronization directions.
@@ -327,88 +285,66 @@ export declare class IModelTransformer extends IModelExportHandler {
327
285
  * @note empty string and -1 for changeset and index if it was transformed before federation guid update (pre 1.x) and @see [[IModelTransformOptions.branchRelationshipDataBehavior]] === "unsafe-migrate".
328
286
  * @throws if the version is not found in a preexisting scope aspect and @see [[IModelTransformOptions.branchRelationshipDataBehavior]] !== "unsafe-migrate"
329
287
  */
330
- protected get synchronizationVersion(): ChangesetIndexAndId;
288
+ protected getSynchronizationVersion(): Promise<ChangesetIndexAndId>;
331
289
  /**
332
290
  * @returns provenance scope aspect if it exists in the provenanceDb.
333
291
  * Provenance scope aspect is created and inserted into provenanceDb when [[initScopeProvenance]] is invoked.
334
292
  */
335
- protected tryGetProvenanceScopeAspect(): ExternalSourceAspect | undefined;
293
+ protected tryGetProvenanceScopeAspect(): Promise<ExternalSourceAspect | undefined>;
336
294
  /**
337
295
  * Make sure there are no conflicting other scope-type external source aspects on the *target scope element*,
338
296
  * If there are none at all, insert one, then this must be a first synchronization.
339
- * @returns the last synced version (changesetId) on the target scope's external source aspect,
340
- * if this was a [BriefcaseDb]($backend)
341
297
  */
342
- protected initScopeProvenance(): void;
343
- /** Returns true if a change was made to the aspectProps. */
344
- private handleUnsafeMigrate;
298
+ protected initScopeProvenance(): Promise<void>;
345
299
  /**
346
- * Iterate all matching federation guids and ExternalSourceAspects in the provenance iModel (target unless reverse sync)
347
- * and call a function for each one.
348
- * @note provenance is done by federation guids where possible
349
- * @note this may execute on each element more than once! Only use in cases where that is handled
350
- */
351
- static forEachTrackedElement(args: {
352
- provenanceSourceDb: IModelDb;
353
- provenanceDb: IModelDb;
354
- targetScopeElementId: Id64String;
355
- isReverseSynchronization: boolean;
356
- fn: (sourceElementId: Id64String, targetElementId: Id64String) => void;
357
- skipPropagateChangesToRootElements: boolean;
358
- }): void;
359
- private forEachTrackedElement;
300
+ * Get the IModelDb where provenance (ExternalSourceAspects) is stored.
301
+ * This will be targetDb except when it is a reverse synchronization, in which case it will be sourceDb.
302
+ */
303
+ getProvenanceDb(): Promise<IModelDb>;
360
304
  /**
361
- * Queries the provenanceDb for an ESA whose identifier is equal to the provided 'entityInProvenanceSourceId'.
362
- * The identifier on the ESA is the id of the element in the [[IModelTransformer.provenanceSourceDb]]
363
- * Therefore it only makes sense to call this function when you have an id in the provenanceSourceDb.
364
- * @param entityInProvenanceSourceId
365
- * @returns the elementId that the ESA is stored on, esa.Element.Id
305
+ * Get whether this is a reverse synchronization.
366
306
  */
367
- private _queryProvenanceForElement;
307
+ getIsReverseSynchronization(): Promise<boolean>;
368
308
  /**
369
- * Queries the provenanceDb for an ESA whose identifier is equal to the provided 'entityInProvenanceSourceId'.
370
- * The identifier on the ESA is the id of the relationship in the [[IModelTransformer.provenanceSourceDb]]
371
- * Therefore it only makes sense to call this function when you have an id in the provenanceSourceDb.
372
- * @param entityInProvenanceSourceId
373
- * @returns
374
- */
375
- private _queryProvenanceForRelationship;
376
- private _queryTargetRelId;
377
- private _targetClassNameToClassIdCache;
378
- private _targetClassNameToClassId;
379
- private _getRelClassId;
380
- private _queryElemIdByFedGuid;
309
+ * Get whether this is a forward synchronization.
310
+ */
311
+ getIsForwardSynchronization(): Promise<boolean>;
312
+ /**
313
+ * Updates the synchronization version on the scope ESA.
314
+ */
315
+ updateSynchronizationVersion({ initializeReverseSyncVersion, }?: {
316
+ initializeReverseSyncVersion?: boolean | undefined;
317
+ }): Promise<void>;
381
318
  /** Returns `true` if *brute force* delete detections should be run.
382
319
  * @note This is only called if [[IModelTransformOptions.forceExternalSourceAspectProvenance]] option is true
383
320
  * @note Not relevant for [[process]] when [[IModelTransformOptions.argsForProcessChanges]] are provided and change history is known.
384
321
  */
385
- protected shouldDetectDeletes(): boolean;
386
- /**
387
- * Detect Element deletes using ExternalSourceAspects in the target iModel and a *brute force* comparison against Elements
388
- * in the source iModel.
389
- * @deprecated in 1.x. Do not use this. // FIXME<MIKE>: how to better explain this?
390
- * This method is only called during [[process]] when [[IModelTransformOptions.argsForProcessChanges]] is undefined and the option
391
- * [[IModelTransformOptions.forceExternalSourceAspectProvenance]] is enabled. It is not
392
- * necessary when calling [[process]] with [[IModelTransformOptions.argsForProcessChanges]] defined, since changeset information is sufficient.
393
- * @note you do not need to call this directly unless processing a subset of an iModel.
394
- * @throws [[IModelError]] If the required provenance information is not available to detect deletes.
395
- */
396
- detectElementDeletes(): Promise<void>;
322
+ protected shouldDetectDeletes(): Promise<boolean>;
397
323
  /** Transform the specified sourceElement into ElementProps for the target iModel.
398
324
  * @param sourceElement The Element from the source iModel to transform.
399
325
  * @returns ElementProps for the target iModel.
400
326
  * @note A subclass can override this method to provide custom transform behavior.
401
327
  * @note This can be called more than once for an element in arbitrary order, so it should not have side-effects.
402
328
  */
403
- onTransformElement(sourceElement: Element): ElementProps;
329
+ onTransformElement(sourceElement: Element): Promise<ElementProps>;
330
+ /**
331
+ * Calculate the transform between two ECEF locations
332
+ * @param srcDb
333
+ * @param targetDb
334
+ * @returns Transform that converts relative coordinates in the source iModel to relative coordinates in the target iModel.
335
+ * @note This can only be used if both source and target iModels are linearly located
336
+ */
337
+ calculateEcefTransform(): Transform | undefined;
338
+ static convertHelmertToTransform(helmert: Helmert2DWithZOffset | undefined): Transform;
339
+ calculateTransformFromHelmertTransforms(): Transform | undefined;
404
340
  private _deletedSourceRelationshipData?;
405
341
  /** Returns true if a change within sourceElement is detected.
406
342
  * @param sourceElement The Element from the source iModel
407
343
  * @note A subclass can override this method to provide custom change detection behavior.
408
344
  */
409
345
  protected hasElementChanged(sourceElement: Element): boolean;
410
- protected completePartiallyCommittedElements(): void;
411
- protected completePartiallyCommittedAspects(): void;
346
+ protected completePartiallyCommittedElements(): Promise<void>;
347
+ protected completePartiallyCommittedAspects(): Promise<void>;
412
348
  private doAllReferencesExistInTarget;
413
349
  private assertReferenceExistsInSource;
414
350
  /** Cause the specified Element and its child Elements (if applicable) to be exported from the source iModel and imported into the target iModel.
@@ -424,27 +360,28 @@ export declare class IModelTransformer extends IModelExportHandler {
424
360
  /** Override of [IModelExportHandler.shouldExportElement]($transformer) that is called to determine if an element should be exported from the source iModel.
425
361
  * @note Reaching this point means that the element has passed the standard exclusion checks in IModelExporter.
426
362
  */
427
- shouldExportElement(_sourceElement: Element): boolean;
363
+ shouldExportElement(_sourceElement: Element): Promise<boolean>;
428
364
  /**
429
365
  * If they haven't been already, import all of the required references
430
366
  * @internal do not call, override or implement this, it will be removed
431
367
  */
432
368
  preExportElement(sourceElement: Element): Promise<void>;
433
369
  private getElemTransformState;
370
+ private queryElementIdByCode;
434
371
  /** Override of [IModelExportHandler.onExportElement]($transformer) that imports an element into the target iModel when it is exported from the source iModel.
435
372
  * This override calls [[onTransformElement]] and then [IModelImporter.importElement]($transformer) to update the target iModel.
436
373
  */
437
- onExportElement(sourceElement: Element): void;
374
+ onExportElement(sourceElement: Element): Promise<void>;
438
375
  /** Override of [IModelExportHandler.onDeleteElement]($transformer) that is called when [IModelExporter]($transformer) detects that an Element has been deleted from the source iModel.
439
376
  * This override propagates the delete to the target iModel via [IModelImporter.deleteElement]($transformer).
440
377
  */
441
- onDeleteElement(sourceElementId: Id64String): void;
378
+ onDeleteElement(sourceElementId: Id64String): Promise<void>;
442
379
  /** Override of [IModelExportHandler.onExportModel]($transformer) that is called when a Model should be exported from the source iModel.
443
380
  * This override calls [[onTransformModel]] and then [IModelImporter.importModel]($transformer) to update the target iModel.
444
381
  */
445
- onExportModel(sourceModel: Model): void;
382
+ onExportModel(sourceModel: Model): Promise<void>;
446
383
  /** Override of [IModelExportHandler.onDeleteModel]($transformer) that is called when [IModelExporter]($transformer) detects that a [Model]($backend) has been deleted from the source iModel. */
447
- onDeleteModel(sourceModelId: Id64String): void;
384
+ onDeleteModel(sourceModelId: Id64String): Promise<void>;
448
385
  /** Schedule modeled partition deletion */
449
386
  private scheduleModeledPartitionDeletion;
450
387
  /** Cause the model container, contents, and sub-models to be exported from the source iModel and imported into the target iModel.
@@ -468,27 +405,6 @@ export declare class IModelTransformer extends IModelExportHandler {
468
405
  * @note A subclass can override this method to provide custom transform behavior.
469
406
  */
470
407
  onTransformModel(sourceModel: Model, targetModeledElementId: Id64String): ModelProps;
471
- /**
472
- * Called at the end of a transformation,
473
- * updates the target scope element to say that transformation up through the
474
- * source's changeset has been performed. Also stores all changesets that occurred
475
- * during the transformation as "pending synchronization changeset indices" @see TargetScopeProvenanceJsonProps
476
- *
477
- * You generally should not call this function yourself and use [[process]] with [[IModelTransformOptions.argsForProcessChanges]] provided instead.
478
- * It is public for unsupported use cases of custom synchronization transforms.
479
- * @note If [[IModelTransformOptions.argsForProcessChanges]] is not defined in this transformation, this function will return early without updating the sync version,
480
- * unless the `initializeReverseSyncVersion` option is set to `true`
481
- *
482
- * The `initializeReverseSyncVersion` is added to set the reverse synchronization version during a forward synchronization.
483
- * When set to `true`, it saves the reverse sync version as the current changeset of the targetDb. This is typically used for the first transformation between a master and branch iModel.
484
- * Setting `initializeReverseSyncVersion` to `true` has the effect of making it so any changesets in the branch iModel at the time of the first transformation will be ignored during any future reverse synchronizations from the branch to the master iModel.
485
- *
486
- * Note that typically, the reverseSyncVersion is saved as the last changeset merged from the branch into master.
487
- * Setting initializeReverseSyncVersion to true during a forward transformation could overwrite this correct reverseSyncVersion and should only be done during the first transformation between a master and branch iModel.
488
- */
489
- updateSynchronizationVersion({ initializeReverseSyncVersion, }?: {
490
- initializeReverseSyncVersion?: boolean | undefined;
491
- }): void;
492
408
  private finalizeTransformation;
493
409
  /** Imports all relationships that subclass from the specified base class.
494
410
  * @param baseRelClassFullName The specified base relationship class.
@@ -498,51 +414,44 @@ export declare class IModelTransformer extends IModelExportHandler {
498
414
  /** Override of [IModelExportHandler.shouldExportRelationship]($transformer) that is called to determine if a [Relationship]($backend) should be exported.
499
415
  * @note Reaching this point means that the relationship has passed the standard exclusion checks in [IModelExporter]($transformer).
500
416
  */
501
- shouldExportRelationship(_sourceRelationship: Relationship): boolean;
417
+ shouldExportRelationship(_sourceRelationship: Relationship): Promise<boolean>;
502
418
  /** Override of [IModelExportHandler.onExportRelationship]($transformer) that imports a relationship into the target iModel when it is exported from the source iModel.
503
419
  * This override calls [[onTransformRelationship]] and then [IModelImporter.importRelationship]($transformer) to update the target iModel.
504
420
  */
505
- onExportRelationship(sourceRelationship: Relationship): void;
421
+ onExportRelationship(sourceRelationship: Relationship): Promise<void>;
506
422
  /** Override of [IModelExportHandler.onDeleteRelationship]($transformer) that is called when [IModelExporter]($transformer) detects that a [Relationship]($backend) has been deleted from the source iModel.
507
423
  * This override propagates the delete to the target iModel via [IModelImporter.deleteRelationship]($transformer).
508
424
  */
509
- onDeleteRelationship(sourceRelInstanceId: Id64String): void;
425
+ onDeleteRelationship(sourceRelInstanceId: Id64String): Promise<void>;
510
426
  private _yieldManager;
511
- /** Detect Relationship deletes using ExternalSourceAspects in the target iModel and a *brute force* comparison against relationships in the source iModel.
512
- * @deprecated in 1.x. Don't use this anymore
513
- * @see [[process]] with [[IModelTransformOptions.argsForProcessChanges]] provided.
514
- * @note This method is called from [[process]] when [[IModelTransformOptions.argsForProcessChanges]] are undefined, so it only needs to be called directly when processing a subset of an iModel.
515
- * @throws [[IModelError]] If the required provenance information is not available to detect deletes.
516
- */
517
- detectRelationshipDeletes(): Promise<void>;
518
427
  /** Transform the specified sourceRelationship into RelationshipProps for the target iModel.
519
428
  * @param sourceRelationship The Relationship from the source iModel to be transformed.
520
429
  * @returns RelationshipProps for the target iModel.
521
430
  * @note A subclass can override this method to provide custom transform behavior.
522
431
  */
523
432
  protected onTransformRelationship(sourceRelationship: Relationship): RelationshipProps;
524
- shouldExportElementAspect(aspect: ElementAspect): boolean;
433
+ shouldExportElementAspect(aspect: ElementAspect): Promise<boolean>;
525
434
  /** Override of [IModelExportHandler.onExportElementUniqueAspect]($transformer) that imports an ElementUniqueAspect into the target iModel when it is exported from the source iModel.
526
435
  * This override calls [[onTransformElementAspect]] and then [IModelImporter.importElementUniqueAspect]($transformer) to update the target iModel.
527
436
  */
528
- onExportElementUniqueAspect(sourceAspect: ElementUniqueAspect): void;
437
+ onExportElementUniqueAspect(sourceAspect: ElementUniqueAspect): Promise<void>;
529
438
  /** Override of [IModelExportHandler.onExportElementMultiAspects]($transformer) that imports ElementMultiAspects into the target iModel when they are exported from the source iModel.
530
439
  * This override calls [[onTransformElementAspect]] for each ElementMultiAspect and then [IModelImporter.importElementMultiAspects]($transformer) to update the target iModel.
531
440
  * @note ElementMultiAspects are handled as a group to make it easier to differentiate between insert, update, and delete.
532
441
  */
533
- onExportElementMultiAspects(sourceAspects: ElementMultiAspect[]): void;
442
+ onExportElementMultiAspects(sourceAspects: ElementMultiAspect[]): Promise<void>;
534
443
  /** Transform the specified sourceElementAspect into ElementAspectProps for the target iModel.
535
444
  * @param sourceElementAspect The ElementAspect from the source iModel to be transformed.
536
445
  * @returns ElementAspectProps for the target iModel.
537
446
  * @note A subclass can override this method to provide custom transform behavior.
538
447
  */
539
- protected onTransformElementAspect(sourceElementAspect: ElementAspect): ElementAspectProps;
448
+ protected onTransformElementAspect(sourceElementAspect: ElementAspect): Promise<ElementAspectProps>;
540
449
  /** The directory where schemas will be exported, a random temporary directory */
541
450
  protected _schemaExportDir: string;
542
451
  /** Override of [IModelExportHandler.shouldExportSchema]($transformer) that is called to determine if a schema should be exported
543
452
  * @note the default behavior doesn't import schemas older than those already in the target
544
453
  */
545
- shouldExportSchema(schemaKey: ECSchemaMetaData.SchemaKey): boolean;
454
+ shouldExportSchema(schemaKey: ECSchemaMetaData.SchemaKey): Promise<boolean>;
546
455
  private _longNamedSchemasMap;
547
456
  /** Override of [IModelExportHandler.onExportSchema]($transformer) that serializes a schema to disk for [[processSchemas]] to import into
548
457
  * the target iModel when it is exported from the source iModel.
@@ -564,7 +473,7 @@ export declare class IModelTransformer extends IModelExportHandler {
564
473
  */
565
474
  processFonts(): Promise<void>;
566
475
  /** Override of [IModelExportHandler.onExportFont]($transformer) that imports a font into the target iModel when it is exported from the source iModel. */
567
- onExportFont(font: FontProps, _isUpdate: boolean | undefined): void;
476
+ onExportFont(font: FontProps, _isUpdate: boolean | undefined): Promise<void>;
568
477
  /** Cause all CodeSpecs to be exported from the source iModel and imported into the target iModel.
569
478
  * @note This method is called from [[process]], so it only needs to be called directly when processing a subset of an iModel.
570
479
  */
@@ -576,9 +485,9 @@ export declare class IModelTransformer extends IModelExportHandler {
576
485
  /** Override of [IModelExportHandler.shouldExportCodeSpec]($transformer) that is called to determine if a CodeSpec should be exported from the source iModel.
577
486
  * @note Reaching this point means that the CodeSpec has passed the standard exclusion checks in [IModelExporter]($transformer).
578
487
  */
579
- shouldExportCodeSpec(_sourceCodeSpec: CodeSpec): boolean;
488
+ shouldExportCodeSpec(_sourceCodeSpec: CodeSpec): Promise<boolean>;
580
489
  /** Override of [IModelExportHandler.onExportCodeSpec]($transformer) that imports a CodeSpec into the target iModel when it is exported from the source iModel. */
581
- onExportCodeSpec(sourceCodeSpec: CodeSpec): void;
490
+ onExportCodeSpec(sourceCodeSpec: CodeSpec): Promise<void>;
582
491
  /** Recursively import all Elements and sub-Models that descend from the specified Subject */
583
492
  processSubject(sourceSubjectId: Id64String, targetSubjectId: Id64String): Promise<void>;
584
493
  /** state to prevent reinitialization, @see [[initialize]] */
@@ -649,9 +558,6 @@ export declare class IModelTransformer extends IModelExportHandler {
649
558
  * @note [[processSchemas]] is not called automatically since the target iModel may want a different collection of schemas.
650
559
  */
651
560
  private processAll;
652
- /** previous provenance, either a federation guid, a `${sourceFedGuid}/${targetFedGuid}` pair, or required aspect props */
653
- private _lastProvenanceEntityInfo;
654
- private markLastProvenance;
655
561
  /** Export changes from the source iModel and import the transformed entities into the target iModel.
656
562
  * Inserts, updates, and deletes are determined by inspecting the changeset(s).
657
563
  * @note the transformer assumes that you saveChanges after processing changes. You should not
@@ -705,6 +611,6 @@ export declare class TemplateModelCloner extends IModelTransformer {
705
611
  */
706
612
  placeTemplate2d(sourceTemplateModelId: Id64String, targetModelId: Id64String, placement: Placement2d): Promise<Map<Id64String, Id64String>>;
707
613
  /** Cloning from a template requires this override of onTransformElement. */
708
- onTransformElement(sourceElement: Element): ElementProps;
614
+ onTransformElement(sourceElement: Element): Promise<ElementProps>;
709
615
  }
710
616
  //# sourceMappingURL=IModelTransformer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IModelTransformer.d.ts","sourceRoot":"","sources":["../../src/IModelTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IModelTransformer.d.ts","sourceRoot":"","sources":["../../src/IModelTransformer.ts"],"names":[],"mappings":"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"}