@itwin/imodel-transformer 2.0.0-dev.3 → 2.0.0-dev.30

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 (65) hide show
  1. package/lib/cjs/BranchProvenanceInitializer.d.ts.map +1 -1
  2. package/lib/cjs/BranchProvenanceInitializer.js +24 -18
  3. package/lib/cjs/BranchProvenanceInitializer.js.map +1 -1
  4. package/lib/cjs/ChangesetScanner.d.ts +60 -0
  5. package/lib/cjs/ChangesetScanner.d.ts.map +1 -0
  6. package/lib/cjs/ChangesetScanner.js +101 -0
  7. package/lib/cjs/ChangesetScanner.js.map +1 -0
  8. package/lib/cjs/DetachedExportElementAspectsStrategy.d.ts.map +1 -1
  9. package/lib/cjs/DetachedExportElementAspectsStrategy.js +8 -6
  10. package/lib/cjs/DetachedExportElementAspectsStrategy.js.map +1 -1
  11. package/lib/cjs/ECReferenceTypesCache.d.ts.map +1 -1
  12. package/lib/cjs/ECReferenceTypesCache.js +60 -38
  13. package/lib/cjs/ECReferenceTypesCache.js.map +1 -1
  14. package/lib/cjs/ElementCascadingDeleter.d.ts +3 -3
  15. package/lib/cjs/ElementCascadingDeleter.d.ts.map +1 -1
  16. package/lib/cjs/ElementCascadingDeleter.js +12 -12
  17. package/lib/cjs/ElementCascadingDeleter.js.map +1 -1
  18. package/lib/cjs/EntityUnifier.d.ts +4 -8
  19. package/lib/cjs/EntityUnifier.d.ts.map +1 -1
  20. package/lib/cjs/EntityUnifier.js +6 -24
  21. package/lib/cjs/EntityUnifier.js.map +1 -1
  22. package/lib/cjs/ExportElementAspectsStrategy.d.ts +4 -4
  23. package/lib/cjs/ExportElementAspectsStrategy.d.ts.map +1 -1
  24. package/lib/cjs/ExportElementAspectsStrategy.js +1 -1
  25. package/lib/cjs/ExportElementAspectsStrategy.js.map +1 -1
  26. package/lib/cjs/ExportElementAspectsWithElementsStrategy.d.ts.map +1 -1
  27. package/lib/cjs/ExportElementAspectsWithElementsStrategy.js +17 -16
  28. package/lib/cjs/ExportElementAspectsWithElementsStrategy.js.map +1 -1
  29. package/lib/cjs/IModelCloneContext.d.ts +3 -3
  30. package/lib/cjs/IModelCloneContext.d.ts.map +1 -1
  31. package/lib/cjs/IModelCloneContext.js +70 -54
  32. package/lib/cjs/IModelCloneContext.js.map +1 -1
  33. package/lib/cjs/IModelExporter.d.ts +33 -23
  34. package/lib/cjs/IModelExporter.d.ts.map +1 -1
  35. package/lib/cjs/IModelExporter.js +200 -152
  36. package/lib/cjs/IModelExporter.js.map +1 -1
  37. package/lib/cjs/IModelImporter.d.ts +32 -24
  38. package/lib/cjs/IModelImporter.d.ts.map +1 -1
  39. package/lib/cjs/IModelImporter.js +199 -127
  40. package/lib/cjs/IModelImporter.js.map +1 -1
  41. package/lib/cjs/IModelTransformer.d.ts +94 -186
  42. package/lib/cjs/IModelTransformer.d.ts.map +1 -1
  43. package/lib/cjs/IModelTransformer.js +502 -1075
  44. package/lib/cjs/IModelTransformer.js.map +1 -1
  45. package/lib/cjs/IModelTransformerError.d.ts +74 -0
  46. package/lib/cjs/IModelTransformerError.d.ts.map +1 -0
  47. package/lib/cjs/IModelTransformerError.js +83 -0
  48. package/lib/cjs/IModelTransformerError.js.map +1 -0
  49. package/lib/cjs/ProvenanceManager.d.ts +165 -0
  50. package/lib/cjs/ProvenanceManager.d.ts.map +1 -0
  51. package/lib/cjs/ProvenanceManager.js +735 -0
  52. package/lib/cjs/ProvenanceManager.js.map +1 -0
  53. package/lib/cjs/SyncTypeResolver.d.ts +34 -0
  54. package/lib/cjs/SyncTypeResolver.d.ts.map +1 -0
  55. package/lib/cjs/SyncTypeResolver.js +96 -0
  56. package/lib/cjs/SyncTypeResolver.js.map +1 -0
  57. package/lib/cjs/TransformerLoggerCategory.d.ts +2 -1
  58. package/lib/cjs/TransformerLoggerCategory.d.ts.map +1 -1
  59. package/lib/cjs/TransformerLoggerCategory.js +1 -0
  60. package/lib/cjs/TransformerLoggerCategory.js.map +1 -1
  61. package/lib/cjs/imodel-transformer.d.ts +5 -0
  62. package/lib/cjs/imodel-transformer.d.ts.map +1 -1
  63. package/lib/cjs/imodel-transformer.js +26 -7
  64. package/lib/cjs/imodel-transformer.js.map +1 -1
  65. package/package.json +22 -17
@@ -1,11 +1,21 @@
1
1
  import { Id64Array, Id64Set, Id64String } from "@itwin/core-bentley";
2
2
  import * as ECSchemaMetaData from "@itwin/ecschema-metadata";
3
3
  import { Transform } from "@itwin/core-geometry";
4
- import { Element, ElementAspect, ElementMultiAspect, ElementUniqueAspect, Entity, ExternalSourceAspect, IModelDb, Model, Relationship, RelationshipProps } from "@itwin/core-backend";
4
+ import { EditTxn, Element, ElementAspect, ElementMultiAspect, ElementUniqueAspect, Entity, ExternalSourceAspect, IModelDb, Model, Relationship, RelationshipProps } from "@itwin/core-backend";
5
5
  import { ChangesetIndexAndId, CodeSpec, ElementAspectProps, ElementProps, ExternalSourceAspectProps, FontProps, Helmert2DWithZOffset, ModelProps, Placement2d, Placement3d } from "@itwin/core-common";
6
6
  import { ChangedInstanceIds, ExportChangesOptions, ExportSchemaResult, IModelExporter, IModelExportHandler } from "./IModelExporter";
7
7
  import { IModelImporter, OptimizeGeometryOptions } from "./IModelImporter";
8
8
  import { IModelCloneContext } from "./IModelCloneContext";
9
+ import { ProvenanceManager } from "./ProvenanceManager";
10
+ /** Required arguments for the [[IModelTransformer]] constructor.
11
+ * @beta
12
+ */
13
+ export interface IModelTransformArgs {
14
+ /** The source iModel or exporter to read elements from. */
15
+ source: IModelDb | IModelExporter;
16
+ /** The target for the transformation. Pass an [[EditTxn]] to have the transformer create a default [[IModelImporter]], or pass a pre-configured [[IModelImporter]]. */
17
+ target: EditTxn | IModelImporter;
18
+ }
9
19
  /** Options provided to the [[IModelTransformer]] constructor.
10
20
  * @beta
11
21
  * @note if adding an option, you must explicitly add its serialization to [[IModelTransformer.saveStateToFile]]!
@@ -122,6 +132,13 @@ export interface IModelTransformOptions {
122
132
  * @default false
123
133
  */
124
134
  tryAlignGeolocation?: boolean;
135
+ /** An optional [[EditTxn]] for write operations on the **source** iModel.
136
+ * Only needed for reverse synchronization workflows where provenance must be written back to the source.
137
+ * If not provided, the source iModel is treated as read-only.
138
+ * Must be started before calling [[IModelTransformer.process]].
139
+ * @beta
140
+ */
141
+ sourceEditTxn?: EditTxn;
125
142
  }
126
143
  /**
127
144
  * Data type for persisting change version information within provenance Scope ExternalSourceAspect.
@@ -164,7 +181,7 @@ export interface InitOptions {
164
181
  * @beta
165
182
  */
166
183
  export type ProcessChangesOptions = ExportChangesOptions & {
167
- /** how to call saveChanges on the target. Must call targetDb.saveChanges, should not edit the iModel */
184
+ /** how to save changes on the target. Must call `editTxn.saveChanges()` on the target EditTxn, should not edit the iModel */
168
185
  saveTargetChanges?: (transformer: IModelTransformer) => Promise<void>;
169
186
  /**
170
187
  * The forward sync 'version' to set on the scoping ESA @see ExternalSourceAspectProps upon startup, if the version property on the scoping ESA is undefined or empty string.
@@ -221,47 +238,38 @@ export declare class IModelTransformer extends IModelExportHandler {
221
238
  * @beta
222
239
  */
223
240
  private _linearSpatialTransform?;
224
- private _syncType?;
241
+ /** The [[EditTxn]] used for write operations on the target iModel.
242
+ * The caller is responsible for starting, committing or abandoning this transaction.
243
+ * @beta
244
+ */
245
+ protected readonly _targetEditTxn: EditTxn;
246
+ /** The optional [[EditTxn]] used for write operations on the source iModel during reverse synchronization.
247
+ * @beta
248
+ */
249
+ protected readonly _sourceEditTxn?: EditTxn;
250
+ private _syncTypeResolver;
251
+ protected _provenanceManager: ProvenanceManager;
225
252
  /** The Id of the Element in the **target** iModel that represents the **source** repository as a whole and scopes its [ExternalSourceAspect]($backend) instances. */
226
253
  get targetScopeElementId(): Id64String;
227
254
  /** a set of elements for which source provenance will be explicitly tracked by ExternalSourceAspects */
228
255
  protected _elementsWithExplicitlyTrackedProvenance: Set<string>;
229
256
  protected _partiallyCommittedElementIds: Id64Set;
230
257
  protected _partiallyCommittedAspectIds: Id64Set;
231
- /** the options that were used to initialize this transformer */
232
- private readonly _options;
233
258
  /**
234
- * 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.
235
- * 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.
236
- * 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
237
- * this private property on the IModelTransformer exists.
259
+ * Tracks target element IDs that were remapped by Code during the current
260
+ * transformation pass. Used to prevent deletion of target elements that have been remapped
261
+ * to a new source element in the same pass (e.g., when a source element is deleted and a
262
+ * new one with the same properties is added, causing a remap to the same target).
238
263
  */
239
- private _allowNoScopingESA;
240
- static noEsaSyncDirectionErrorMessage: string;
241
- /**
242
- * Queries for an esa which matches the props in the provided aspectProps.
243
- * @param dbToQuery db to run the query on for scope external source
244
- * @param aspectProps aspectProps to search for @see ExternalSourceAspectProps
245
- */
246
- static queryScopeExternalSourceAspect(dbToQuery: IModelDb, aspectProps: ExternalSourceAspectProps): {
247
- aspectId: Id64String;
248
- version?: string;
249
- /** stringified json */
250
- jsonProperties?: string;
251
- } | undefined;
264
+ private _targetElementIdsRemappedByCode;
252
265
  /**
253
- * Determines the sync direction "forward" or "reverse" of a given sourceDb and targetDb by looking for the scoping ESA.
254
- * If the sourceDb's iModelId is found as the identifier of the expected scoping ESA in the targetDb, then it is a forward synchronization.
255
- * If the targetDb's iModelId is found as the identifier of the expected scoping ESA in the sourceDb, then it is a reverse synchronization.
256
- * @throws if no scoping ESA can be found in either the sourceDb or targetDb which describes a master branch relationship between the two databases.
257
- * @returns "forward" or "reverse"
258
- */
259
- static determineSyncType(sourceDb: IModelDb, targetDb: IModelDb,
260
- /** @see [[IModelTransformOptions.targetScopeElementId]] */
261
- targetScopeElementId: Id64String): "forward" | "reverse";
262
- private determineSyncType;
263
- get isReverseSynchronization(): boolean;
264
- get isForwardSynchronization(): boolean;
266
+ * Tracks target model IDs that were imported (inserted or updated) during the current
267
+ * transformation pass. Used to prevent deletion of target models that have been recreated
268
+ * in the same pass (e.g. when a partition element is recreated with a new model).
269
+ */
270
+ private _targetModelsImportedInCurrentTransform;
271
+ /** the options that were used to initialize this transformer */
272
+ private readonly _options;
265
273
  private _changesetRanges;
266
274
  /**
267
275
  * Set if the transformer is being used to perform the provenance initialization step of a fork initialization.
@@ -273,11 +281,10 @@ export declare class IModelTransformer extends IModelExportHandler {
273
281
  /** The element aspect classes that are considered to define provenance in the iModel */
274
282
  static get provenanceElementAspectClasses(): (typeof Entity)[];
275
283
  /** Construct a new IModelTransformer
276
- * @param source Specifies the source IModelExporter or the source IModelDb that will be used to construct the source IModelExporter.
277
- * @param target Specifies the target IModelImporter or the target IModelDb that will be used to construct the target IModelImporter.
284
+ * @param args The required arguments including source and target.
278
285
  * @param options The options that specify how the transformation should be done.
279
286
  */
280
- constructor(source: IModelDb | IModelExporter, target: IModelDb | IModelImporter, options?: IModelTransformOptions);
287
+ constructor(args: IModelTransformArgs, options?: IModelTransformOptions);
281
288
  /** validates that the importer set on the transformer has the same values for its shared options as the transformer.
282
289
  * @note This expects that the importer is already set on the transformer.
283
290
  */
@@ -286,28 +293,6 @@ export declare class IModelTransformer extends IModelExportHandler {
286
293
  dispose(): void;
287
294
  /** Log current settings that affect IModelTransformer's behavior. */
288
295
  private logSettings;
289
- /** Return the IModelDb where IModelTransformer will store its provenance.
290
- * @note This will be [[targetDb]] except when it is a reverse synchronization. In that case it be [[sourceDb]].
291
- */
292
- get provenanceDb(): IModelDb;
293
- /** Return the IModelDb where IModelTransformer looks for entities referred to by stored provenance.
294
- * @note This will be [[sourceDb]] except when it is a reverse synchronization. In that case it be [[targetDb]].
295
- */
296
- get provenanceSourceDb(): IModelDb;
297
- /** Create an ExternalSourceAspectProps in a standard way for an Element in an iModel --> iModel transformation. */
298
- static initElementProvenanceOptions(sourceElementId: Id64String, targetElementId: Id64String, args: {
299
- sourceDb: IModelDb;
300
- targetDb: IModelDb;
301
- isReverseSynchronization: boolean;
302
- targetScopeElementId: Id64String;
303
- }): ExternalSourceAspectProps;
304
- static initRelationshipProvenanceOptions(sourceRelInstanceId: Id64String, targetRelInstanceId: Id64String, args: {
305
- sourceDb: IModelDb;
306
- targetDb: IModelDb;
307
- isReverseSynchronization: boolean;
308
- targetScopeElementId: Id64String;
309
- forceOldRelationshipProvenanceMethod: boolean;
310
- }): ExternalSourceAspectProps;
311
296
  /**
312
297
  * Previously the transformer would insert provenance always pointing to the "target" relationship.
313
298
  * It should (and now by default does) instead insert provenance pointing to the provenanceSource
@@ -316,27 +301,7 @@ export declare class IModelTransformer extends IModelExportHandler {
316
301
  */
317
302
  private _forceOldRelationshipProvenanceMethod;
318
303
  /** Create an ExternalSourceAspectProps in a standard way for an Element in an iModel --> iModel transformation. */
319
- initElementProvenance(sourceElementId: Id64String, targetElementId: Id64String): ExternalSourceAspectProps;
320
- /** Create an ExternalSourceAspectProps in a standard way for a Relationship in an iModel --> iModel transformations.
321
- * The ExternalSourceAspect is meant to be owned by the Element in the target iModel that is the `sourceId` of transformed relationship.
322
- * The `identifier` property of the ExternalSourceAspect will be the ECInstanceId of the relationship in the master iModel.
323
- * The ECInstanceId of the relationship in the branch iModel will be stored in the JsonProperties of the ExternalSourceAspect.
324
- */
325
- private initRelationshipProvenance;
326
- /** NOTE: the json properties must be converted to string before insertion */
327
- private _targetScopeProvenanceProps;
328
- /**
329
- * Index of the changeset that the transformer was at when the transformation begins (was constructed).
330
- * Used to determine at the end which changesets were part of a synchronization.
331
- */
332
- private _startingChangesetIndices;
333
- private _cachedSynchronizationVersion;
334
- /**
335
- * We cache the synchronization version to avoid querying the target scoping ESA multiple times.
336
- * If the target scoping ESA is ever updated we need to clear any potentially cached sync version otherwise we will get stale values.
337
- * Sets this._cachedSynchronizationVersion to undefined.
338
- */
339
- private clearCachedSynchronizationVersion;
304
+ initElementProvenance(sourceElementId: Id64String, targetElementId: Id64String): Promise<ExternalSourceAspectProps>;
340
305
  /** the changeset in the scoping element's source version found for this transformation
341
306
  * @note the version depends on whether this is a reverse synchronization or not, as
342
307
  * it is stored separately for both synchronization directions.
@@ -344,80 +309,48 @@ export declare class IModelTransformer extends IModelExportHandler {
344
309
  * @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".
345
310
  * @throws if the version is not found in a preexisting scope aspect and @see [[IModelTransformOptions.branchRelationshipDataBehavior]] !== "unsafe-migrate"
346
311
  */
347
- protected get synchronizationVersion(): ChangesetIndexAndId;
312
+ protected getSynchronizationVersion(): Promise<ChangesetIndexAndId>;
348
313
  /**
349
314
  * @returns provenance scope aspect if it exists in the provenanceDb.
350
315
  * Provenance scope aspect is created and inserted into provenanceDb when [[initScopeProvenance]] is invoked.
351
316
  */
352
- protected tryGetProvenanceScopeAspect(): ExternalSourceAspect | undefined;
317
+ protected tryGetProvenanceScopeAspect(): Promise<ExternalSourceAspect | undefined>;
353
318
  /**
354
319
  * Make sure there are no conflicting other scope-type external source aspects on the *target scope element*,
355
320
  * If there are none at all, insert one, then this must be a first synchronization.
356
- * @returns the last synced version (changesetId) on the target scope's external source aspect,
357
- * if this was a [BriefcaseDb]($backend)
358
321
  */
359
- protected initScopeProvenance(): void;
360
- /** Returns true if a change was made to the aspectProps. */
361
- private handleUnsafeMigrate;
322
+ protected initScopeProvenance(): Promise<void>;
362
323
  /**
363
- * Iterate all matching federation guids and ExternalSourceAspects in the provenance iModel (target unless reverse sync)
364
- * and call a function for each one.
365
- * @note provenance is done by federation guids where possible
366
- * @note this may execute on each element more than once! Only use in cases where that is handled
367
- */
368
- static forEachTrackedElement(args: {
369
- provenanceSourceDb: IModelDb;
370
- provenanceDb: IModelDb;
371
- targetScopeElementId: Id64String;
372
- isReverseSynchronization: boolean;
373
- fn: (sourceElementId: Id64String, targetElementId: Id64String) => void;
374
- skipPropagateChangesToRootElements: boolean;
375
- }): void;
376
- private forEachTrackedElement;
324
+ * Get the IModelDb where provenance (ExternalSourceAspects) is stored.
325
+ * This will be targetDb except when it is a reverse synchronization, in which case it will be sourceDb.
326
+ */
327
+ getProvenanceDb(): Promise<IModelDb>;
377
328
  /**
378
- * Queries the provenanceDb for an ESA whose identifier is equal to the provided 'entityInProvenanceSourceId'.
379
- * The identifier on the ESA is the id of the element in the [[IModelTransformer.provenanceSourceDb]]
380
- * Therefore it only makes sense to call this function when you have an id in the provenanceSourceDb.
381
- * @param entityInProvenanceSourceId
382
- * @returns the elementId that the ESA is stored on, esa.Element.Id
329
+ * Get whether this is a reverse synchronization.
383
330
  */
384
- private _queryProvenanceForElement;
331
+ getIsReverseSynchronization(): Promise<boolean>;
385
332
  /**
386
- * Queries the provenanceDb for an ESA whose identifier is equal to the provided 'entityInProvenanceSourceId'.
387
- * The identifier on the ESA is the id of the relationship in the [[IModelTransformer.provenanceSourceDb]]
388
- * Therefore it only makes sense to call this function when you have an id in the provenanceSourceDb.
389
- * @param entityInProvenanceSourceId
390
- * @returns
391
- */
392
- private _queryProvenanceForRelationship;
393
- private _queryTargetRelId;
394
- private _targetClassNameToClassIdCache;
395
- private _targetClassNameToClassId;
396
- private _getRelClassId;
397
- private _queryElemIdByFedGuid;
333
+ * Get whether this is a forward synchronization.
334
+ */
335
+ getIsForwardSynchronization(): Promise<boolean>;
336
+ /**
337
+ * Updates the synchronization version on the scope ESA.
338
+ */
339
+ updateSynchronizationVersion({ initializeReverseSyncVersion, }?: {
340
+ initializeReverseSyncVersion?: boolean | undefined;
341
+ }): Promise<void>;
398
342
  /** Returns `true` if *brute force* delete detections should be run.
399
343
  * @note This is only called if [[IModelTransformOptions.forceExternalSourceAspectProvenance]] option is true
400
344
  * @note Not relevant for [[process]] when [[IModelTransformOptions.argsForProcessChanges]] are provided and change history is known.
401
345
  */
402
- protected shouldDetectDeletes(): boolean;
403
- /**
404
- * Detect Element deletes using ExternalSourceAspects in the target iModel and a *brute force* comparison against Elements
405
- * in the source iModel.
406
- * @deprecated in 1.x. Do not use this. // FIXME<MIKE>: how to better explain this?
407
- * This method is only called during [[process]] when [[IModelTransformOptions.argsForProcessChanges]] is undefined and the option
408
- * [[IModelTransformOptions.forceExternalSourceAspectProvenance]] is enabled. It is not
409
- * necessary when calling [[process]] with [[IModelTransformOptions.argsForProcessChanges]] defined, since changeset information is sufficient.
410
- * @note you do not need to call this directly unless processing a subset of an iModel.
411
- * @throws [[IModelError]] If the required provenance information is not available to detect deletes.
412
- */
413
- detectElementDeletes(): Promise<void>;
346
+ protected shouldDetectDeletes(): Promise<boolean>;
414
347
  /** Transform the specified sourceElement into ElementProps for the target iModel.
415
348
  * @param sourceElement The Element from the source iModel to transform.
416
349
  * @returns ElementProps for the target iModel.
417
350
  * @note A subclass can override this method to provide custom transform behavior.
418
351
  * @note This can be called more than once for an element in arbitrary order, so it should not have side-effects.
419
352
  */
420
- onTransformElement(sourceElement: Element): ElementProps;
353
+ onTransformElement(sourceElement: Element): Promise<ElementProps>;
421
354
  /**
422
355
  * Calculate the transform between two ECEF locations
423
356
  * @param srcDb
@@ -432,10 +365,13 @@ export declare class IModelTransformer extends IModelExportHandler {
432
365
  /** Returns true if a change within sourceElement is detected.
433
366
  * @param sourceElement The Element from the source iModel
434
367
  * @note A subclass can override this method to provide custom change detection behavior.
368
+ * @note During change processing, elements not present in the changeset are short-circuited
369
+ * in the exporter before reaching this method. To add elements to the changeset programmatically,
370
+ * use [[addCustomChanges]] rather than overriding this method to expand processing.
435
371
  */
436
372
  protected hasElementChanged(sourceElement: Element): boolean;
437
- protected completePartiallyCommittedElements(): void;
438
- protected completePartiallyCommittedAspects(): void;
373
+ protected completePartiallyCommittedElements(): Promise<void>;
374
+ protected completePartiallyCommittedAspects(): Promise<void>;
439
375
  private doAllReferencesExistInTarget;
440
376
  private assertReferenceExistsInSource;
441
377
  /** Cause the specified Element and its child Elements (if applicable) to be exported from the source iModel and imported into the target iModel.
@@ -451,27 +387,28 @@ export declare class IModelTransformer extends IModelExportHandler {
451
387
  /** Override of [IModelExportHandler.shouldExportElement]($transformer) that is called to determine if an element should be exported from the source iModel.
452
388
  * @note Reaching this point means that the element has passed the standard exclusion checks in IModelExporter.
453
389
  */
454
- shouldExportElement(_sourceElement: Element): boolean;
390
+ shouldExportElement(_sourceElement: Element): Promise<boolean>;
455
391
  /**
456
392
  * If they haven't been already, import all of the required references
457
393
  * @internal do not call, override or implement this, it will be removed
458
394
  */
459
395
  preExportElement(sourceElement: Element): Promise<void>;
460
396
  private getElemTransformState;
397
+ private queryElementIdByCode;
461
398
  /** Override of [IModelExportHandler.onExportElement]($transformer) that imports an element into the target iModel when it is exported from the source iModel.
462
399
  * This override calls [[onTransformElement]] and then [IModelImporter.importElement]($transformer) to update the target iModel.
463
400
  */
464
- onExportElement(sourceElement: Element): void;
401
+ onExportElement(sourceElement: Element): Promise<void>;
465
402
  /** Override of [IModelExportHandler.onDeleteElement]($transformer) that is called when [IModelExporter]($transformer) detects that an Element has been deleted from the source iModel.
466
403
  * This override propagates the delete to the target iModel via [IModelImporter.deleteElement]($transformer).
467
404
  */
468
- onDeleteElement(sourceElementId: Id64String): void;
405
+ onDeleteElement(sourceElementId: Id64String): Promise<void>;
469
406
  /** Override of [IModelExportHandler.onExportModel]($transformer) that is called when a Model should be exported from the source iModel.
470
407
  * This override calls [[onTransformModel]] and then [IModelImporter.importModel]($transformer) to update the target iModel.
471
408
  */
472
- onExportModel(sourceModel: Model): void;
409
+ onExportModel(sourceModel: Model): Promise<void>;
473
410
  /** Override of [IModelExportHandler.onDeleteModel]($transformer) that is called when [IModelExporter]($transformer) detects that a [Model]($backend) has been deleted from the source iModel. */
474
- onDeleteModel(sourceModelId: Id64String): void;
411
+ onDeleteModel(sourceModelId: Id64String): Promise<void>;
475
412
  /** Schedule modeled partition deletion */
476
413
  private scheduleModeledPartitionDeletion;
477
414
  /** Cause the model container, contents, and sub-models to be exported from the source iModel and imported into the target iModel.
@@ -495,27 +432,6 @@ export declare class IModelTransformer extends IModelExportHandler {
495
432
  * @note A subclass can override this method to provide custom transform behavior.
496
433
  */
497
434
  onTransformModel(sourceModel: Model, targetModeledElementId: Id64String): ModelProps;
498
- /**
499
- * Called at the end of a transformation,
500
- * updates the target scope element to say that transformation up through the
501
- * source's changeset has been performed. Also stores all changesets that occurred
502
- * during the transformation as "pending synchronization changeset indices" @see TargetScopeProvenanceJsonProps
503
- *
504
- * You generally should not call this function yourself and use [[process]] with [[IModelTransformOptions.argsForProcessChanges]] provided instead.
505
- * It is public for unsupported use cases of custom synchronization transforms.
506
- * @note If [[IModelTransformOptions.argsForProcessChanges]] is not defined in this transformation, this function will return early without updating the sync version,
507
- * unless the `initializeReverseSyncVersion` option is set to `true`
508
- *
509
- * The `initializeReverseSyncVersion` is added to set the reverse synchronization version during a forward synchronization.
510
- * 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.
511
- * 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.
512
- *
513
- * Note that typically, the reverseSyncVersion is saved as the last changeset merged from the branch into master.
514
- * 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.
515
- */
516
- updateSynchronizationVersion({ initializeReverseSyncVersion, }?: {
517
- initializeReverseSyncVersion?: boolean | undefined;
518
- }): void;
519
435
  private finalizeTransformation;
520
436
  /** Imports all relationships that subclass from the specified base class.
521
437
  * @param baseRelClassFullName The specified base relationship class.
@@ -525,51 +441,44 @@ export declare class IModelTransformer extends IModelExportHandler {
525
441
  /** Override of [IModelExportHandler.shouldExportRelationship]($transformer) that is called to determine if a [Relationship]($backend) should be exported.
526
442
  * @note Reaching this point means that the relationship has passed the standard exclusion checks in [IModelExporter]($transformer).
527
443
  */
528
- shouldExportRelationship(_sourceRelationship: Relationship): boolean;
444
+ shouldExportRelationship(_sourceRelationship: Relationship): Promise<boolean>;
529
445
  /** Override of [IModelExportHandler.onExportRelationship]($transformer) that imports a relationship into the target iModel when it is exported from the source iModel.
530
446
  * This override calls [[onTransformRelationship]] and then [IModelImporter.importRelationship]($transformer) to update the target iModel.
531
447
  */
532
- onExportRelationship(sourceRelationship: Relationship): void;
448
+ onExportRelationship(sourceRelationship: Relationship): Promise<void>;
533
449
  /** Override of [IModelExportHandler.onDeleteRelationship]($transformer) that is called when [IModelExporter]($transformer) detects that a [Relationship]($backend) has been deleted from the source iModel.
534
450
  * This override propagates the delete to the target iModel via [IModelImporter.deleteRelationship]($transformer).
535
451
  */
536
- onDeleteRelationship(sourceRelInstanceId: Id64String): void;
452
+ onDeleteRelationship(sourceRelInstanceId: Id64String): Promise<void>;
537
453
  private _yieldManager;
538
- /** Detect Relationship deletes using ExternalSourceAspects in the target iModel and a *brute force* comparison against relationships in the source iModel.
539
- * @deprecated in 1.x. Don't use this anymore
540
- * @see [[process]] with [[IModelTransformOptions.argsForProcessChanges]] provided.
541
- * @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.
542
- * @throws [[IModelError]] If the required provenance information is not available to detect deletes.
543
- */
544
- detectRelationshipDeletes(): Promise<void>;
545
454
  /** Transform the specified sourceRelationship into RelationshipProps for the target iModel.
546
455
  * @param sourceRelationship The Relationship from the source iModel to be transformed.
547
456
  * @returns RelationshipProps for the target iModel.
548
457
  * @note A subclass can override this method to provide custom transform behavior.
549
458
  */
550
459
  protected onTransformRelationship(sourceRelationship: Relationship): RelationshipProps;
551
- shouldExportElementAspect(aspect: ElementAspect): boolean;
460
+ shouldExportElementAspect(aspect: ElementAspect): Promise<boolean>;
552
461
  /** Override of [IModelExportHandler.onExportElementUniqueAspect]($transformer) that imports an ElementUniqueAspect into the target iModel when it is exported from the source iModel.
553
462
  * This override calls [[onTransformElementAspect]] and then [IModelImporter.importElementUniqueAspect]($transformer) to update the target iModel.
554
463
  */
555
- onExportElementUniqueAspect(sourceAspect: ElementUniqueAspect): void;
464
+ onExportElementUniqueAspect(sourceAspect: ElementUniqueAspect): Promise<void>;
556
465
  /** Override of [IModelExportHandler.onExportElementMultiAspects]($transformer) that imports ElementMultiAspects into the target iModel when they are exported from the source iModel.
557
466
  * This override calls [[onTransformElementAspect]] for each ElementMultiAspect and then [IModelImporter.importElementMultiAspects]($transformer) to update the target iModel.
558
467
  * @note ElementMultiAspects are handled as a group to make it easier to differentiate between insert, update, and delete.
559
468
  */
560
- onExportElementMultiAspects(sourceAspects: ElementMultiAspect[]): void;
469
+ onExportElementMultiAspects(sourceAspects: ElementMultiAspect[]): Promise<void>;
561
470
  /** Transform the specified sourceElementAspect into ElementAspectProps for the target iModel.
562
471
  * @param sourceElementAspect The ElementAspect from the source iModel to be transformed.
563
472
  * @returns ElementAspectProps for the target iModel.
564
473
  * @note A subclass can override this method to provide custom transform behavior.
565
474
  */
566
- protected onTransformElementAspect(sourceElementAspect: ElementAspect): ElementAspectProps;
475
+ protected onTransformElementAspect(sourceElementAspect: ElementAspect): Promise<ElementAspectProps>;
567
476
  /** The directory where schemas will be exported, a random temporary directory */
568
477
  protected _schemaExportDir: string;
569
478
  /** Override of [IModelExportHandler.shouldExportSchema]($transformer) that is called to determine if a schema should be exported
570
479
  * @note the default behavior doesn't import schemas older than those already in the target
571
480
  */
572
- shouldExportSchema(schemaKey: ECSchemaMetaData.SchemaKey): boolean;
481
+ shouldExportSchema(schemaKey: ECSchemaMetaData.SchemaKey): Promise<boolean>;
573
482
  private _longNamedSchemasMap;
574
483
  /** Override of [IModelExportHandler.onExportSchema]($transformer) that serializes a schema to disk for [[processSchemas]] to import into
575
484
  * the target iModel when it is exported from the source iModel.
@@ -591,7 +500,7 @@ export declare class IModelTransformer extends IModelExportHandler {
591
500
  */
592
501
  processFonts(): Promise<void>;
593
502
  /** Override of [IModelExportHandler.onExportFont]($transformer) that imports a font into the target iModel when it is exported from the source iModel. */
594
- onExportFont(font: FontProps, _isUpdate: boolean | undefined): void;
503
+ onExportFont(font: FontProps, _isUpdate: boolean | undefined): Promise<void>;
595
504
  /** Cause all CodeSpecs to be exported from the source iModel and imported into the target iModel.
596
505
  * @note This method is called from [[process]], so it only needs to be called directly when processing a subset of an iModel.
597
506
  */
@@ -603,9 +512,9 @@ export declare class IModelTransformer extends IModelExportHandler {
603
512
  /** Override of [IModelExportHandler.shouldExportCodeSpec]($transformer) that is called to determine if a CodeSpec should be exported from the source iModel.
604
513
  * @note Reaching this point means that the CodeSpec has passed the standard exclusion checks in [IModelExporter]($transformer).
605
514
  */
606
- shouldExportCodeSpec(_sourceCodeSpec: CodeSpec): boolean;
515
+ shouldExportCodeSpec(_sourceCodeSpec: CodeSpec): Promise<boolean>;
607
516
  /** Override of [IModelExportHandler.onExportCodeSpec]($transformer) that imports a CodeSpec into the target iModel when it is exported from the source iModel. */
608
- onExportCodeSpec(sourceCodeSpec: CodeSpec): void;
517
+ onExportCodeSpec(sourceCodeSpec: CodeSpec): Promise<void>;
609
518
  /** Recursively import all Elements and sub-Models that descend from the specified Subject */
610
519
  processSubject(sourceSubjectId: Id64String, targetSubjectId: Id64String): Promise<void>;
611
520
  /** state to prevent reinitialization, @see [[initialize]] */
@@ -613,6 +522,7 @@ export declare class IModelTransformer extends IModelExportHandler {
613
522
  private _sourceChangeDataState;
614
523
  /** length === 0 when _changeDataState = "no-change", length > 0 means "has-changes", otherwise undefined */
615
524
  private _csFileProps?;
525
+ private _deletionRecordsByChangeset?;
616
526
  /**
617
527
  * Initialize prerequisites of processing, you must initialize with an [[InitOptions]] if you
618
528
  * are intending to process changes. Callers may wish to explicitly call initialize if they need to execute code after initialize but before [[process]] is called.
@@ -620,6 +530,7 @@ export declare class IModelTransformer extends IModelExportHandler {
620
530
  * Overriders must call `super.initialize()` first
621
531
  */
622
532
  initialize(): Promise<void>;
533
+ private initializeChangesetScanAndExporter;
623
534
  /**
624
535
  * Reads all the changeset files in the private member of the transformer: _csFileProps
625
536
  * and finds the corresponding target entity for any deleted source entities and remaps the sourceId to the targetId.
@@ -648,6 +559,8 @@ export declare class IModelTransformer extends IModelExportHandler {
648
559
  */
649
560
  private processDeletedOp;
650
561
  private _tryInitChangesetData;
562
+ /** Asserts that the EditTxn is active before any write operations. */
563
+ private assertEditTxnActive;
651
564
  /**
652
565
  * The behavior of process is influenced by [[IModelTransformOptions.argsForProcessChanges]] being defined or not defined during construction passed of the IModelTransformer.
653
566
  * @section When argsForProcessChanges are defined:
@@ -676,9 +589,6 @@ export declare class IModelTransformer extends IModelExportHandler {
676
589
  * @note [[processSchemas]] is not called automatically since the target iModel may want a different collection of schemas.
677
590
  */
678
591
  private processAll;
679
- /** previous provenance, either a federation guid, a `${sourceFedGuid}/${targetFedGuid}` pair, or required aspect props */
680
- private _lastProvenanceEntityInfo;
681
- private markLastProvenance;
682
592
  /** Export changes from the source iModel and import the transformed entities into the target iModel.
683
593
  * Inserts, updates, and deletes are determined by inspecting the changeset(s).
684
594
  * @note the transformer assumes that you saveChanges after processing changes. You should not
@@ -709,12 +619,10 @@ export declare class TemplateModelCloner extends IModelTransformer {
709
619
  /** Accumulates the mapping of sourceElementIds to targetElementIds from the elements in the template model that were cloned. */
710
620
  private _sourceIdToTargetIdMap?;
711
621
  /** Construct a new TemplateModelCloner
712
- * @param sourceDb The source IModelDb that contains the templates to clone
713
- * @param targetDb Optionally specify the target IModelDb where the cloned template will be inserted.
714
- * Typically this is left unspecified, and the default is to use the sourceDb as the target
622
+ * @param editTxn The [[EditTxn]] to use for all read and write operations. The source and target db are both derived from `editTxn.iModel`. Must be started before constructing.
715
623
  * @note The expectation is that the template definitions are within the same iModel where instances will be placed.
716
624
  */
717
- constructor(sourceDb: IModelDb, targetDb?: IModelDb);
625
+ constructor(editTxn: EditTxn);
718
626
  /** Place a template from the sourceDb at the specified placement in the target model within the targetDb.
719
627
  * @param sourceTemplateModelId The Id of the template model in the sourceDb
720
628
  * @param targetModelId The Id of the target model (must be a subclass of GeometricModel3d) where the cloned component will be inserted.
@@ -732,6 +640,6 @@ export declare class TemplateModelCloner extends IModelTransformer {
732
640
  */
733
641
  placeTemplate2d(sourceTemplateModelId: Id64String, targetModelId: Id64String, placement: Placement2d): Promise<Map<Id64String, Id64String>>;
734
642
  /** Cloning from a template requires this override of onTransformElement. */
735
- onTransformElement(sourceElement: Element): ElementProps;
643
+ onTransformElement(sourceElement: Element): Promise<ElementProps>;
736
644
  }
737
645
  //# 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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"}