@itwin/imodel-transformer 0.4.18-fedguidopt.6 → 1.0.0-dev.2
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/lib/cjs/Algo.d.ts.map +1 -1
- package/lib/cjs/Algo.js +3 -4
- package/lib/cjs/Algo.js.map +1 -1
- package/lib/cjs/BigMap.d.ts.map +1 -1
- package/lib/cjs/BigMap.js +1 -1
- package/lib/cjs/BigMap.js.map +1 -1
- package/lib/cjs/BranchProvenanceInitializer.d.ts.map +1 -1
- package/lib/cjs/BranchProvenanceInitializer.js +15 -4
- package/lib/cjs/BranchProvenanceInitializer.js.map +1 -1
- package/lib/cjs/DetachedExportElementAspectsStrategy.d.ts.map +1 -1
- package/lib/cjs/DetachedExportElementAspectsStrategy.js +12 -5
- package/lib/cjs/DetachedExportElementAspectsStrategy.js.map +1 -1
- package/lib/cjs/ECReferenceTypesCache.d.ts.map +1 -1
- package/lib/cjs/ECReferenceTypesCache.js +32 -18
- package/lib/cjs/ECReferenceTypesCache.js.map +1 -1
- package/lib/cjs/ECSqlReaderAsyncIterableIteratorAdapter.d.ts +1 -1
- package/lib/cjs/ECSqlReaderAsyncIterableIteratorAdapter.d.ts.map +1 -1
- package/lib/cjs/ECSqlReaderAsyncIterableIteratorAdapter.js +7 -5
- package/lib/cjs/ECSqlReaderAsyncIterableIteratorAdapter.js.map +1 -1
- package/lib/cjs/ElementCascadingDeleter.d.ts +3 -3
- package/lib/cjs/ElementCascadingDeleter.d.ts.map +1 -1
- package/lib/cjs/ElementCascadingDeleter.js +9 -7
- package/lib/cjs/ElementCascadingDeleter.js.map +1 -1
- package/lib/cjs/EntityMap.d.ts.map +1 -1
- package/lib/cjs/EntityMap.js.map +1 -1
- package/lib/cjs/EntityUnifier.d.ts +5 -0
- package/lib/cjs/EntityUnifier.d.ts.map +1 -1
- package/lib/cjs/EntityUnifier.js +22 -35
- package/lib/cjs/EntityUnifier.js.map +1 -1
- package/lib/cjs/ExportElementAspectsStrategy.d.ts.map +1 -1
- package/lib/cjs/ExportElementAspectsStrategy.js +5 -4
- package/lib/cjs/ExportElementAspectsStrategy.js.map +1 -1
- package/lib/cjs/ExportElementAspectsWithElementsStrategy.d.ts.map +1 -1
- package/lib/cjs/ExportElementAspectsWithElementsStrategy.js +9 -5
- package/lib/cjs/ExportElementAspectsWithElementsStrategy.js.map +1 -1
- package/lib/cjs/IModelCloneContext.d.ts +1 -4
- package/lib/cjs/IModelCloneContext.d.ts.map +1 -1
- package/lib/cjs/IModelCloneContext.js +21 -40
- package/lib/cjs/IModelCloneContext.js.map +1 -1
- package/lib/cjs/IModelExporter.d.ts +69 -73
- package/lib/cjs/IModelExporter.d.ts.map +1 -1
- package/lib/cjs/IModelExporter.js +240 -176
- package/lib/cjs/IModelExporter.js.map +1 -1
- package/lib/cjs/IModelImporter.d.ts +17 -65
- package/lib/cjs/IModelImporter.d.ts.map +1 -1
- package/lib/cjs/IModelImporter.js +79 -109
- package/lib/cjs/IModelImporter.js.map +1 -1
- package/lib/cjs/IModelTransformer.d.ts +143 -99
- package/lib/cjs/IModelTransformer.d.ts.map +1 -1
- package/lib/cjs/IModelTransformer.js +717 -731
- package/lib/cjs/IModelTransformer.js.map +1 -1
- package/lib/cjs/PendingReferenceMap.d.ts.map +1 -1
- package/lib/cjs/PendingReferenceMap.js +12 -6
- package/lib/cjs/PendingReferenceMap.js.map +1 -1
- package/lib/cjs/TransformerLoggerCategory.d.ts +2 -2
- package/lib/cjs/TransformerLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/TransformerLoggerCategory.js +5 -5
- package/lib/cjs/TransformerLoggerCategory.js.map +1 -1
- package/lib/cjs/transformer.d.ts.map +1 -1
- package/lib/cjs/transformer.js +14 -10
- package/lib/cjs/transformer.js.map +1 -1
- package/package.json +20 -17
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AccessToken, Id64Array, Id64String } from "@itwin/core-bentley";
|
|
2
2
|
import * as ECSchemaMetaData from "@itwin/ecschema-metadata";
|
|
3
|
-
import { Element, ElementAspect, ElementMultiAspect, ElementUniqueAspect, Entity, ExternalSourceAspect, IModelDb, Model, Relationship, RelationshipProps
|
|
3
|
+
import { Element, ElementAspect, ElementMultiAspect, ElementUniqueAspect, Entity, ExternalSourceAspect, IModelDb, Model, Relationship, RelationshipProps } from "@itwin/core-backend";
|
|
4
4
|
import { ChangesetIndexAndId, CodeSpec, ElementAspectProps, ElementProps, EntityReference, EntityReferenceSet, ExternalSourceAspectProps, FontProps, ModelProps, Placement2d, Placement3d } from "@itwin/core-common";
|
|
5
5
|
import { ExportChangesOptions, ExportSchemaResult, IModelExporter, IModelExportHandler } from "./IModelExporter";
|
|
6
6
|
import { IModelImporter, OptimizeGeometryOptions } from "./IModelImporter";
|
|
@@ -39,6 +39,7 @@ export interface IModelTransformOptions {
|
|
|
39
39
|
* The most common example is to first synchronize master to branch, make changes to the branch, and then reverse directions to synchronize from branch to master.
|
|
40
40
|
* This means that the provenance on the (current) source is used instead.
|
|
41
41
|
* @note This also means that only [[IModelTransformer.processChanges]] can detect deletes.
|
|
42
|
+
* @deprecated in 1.x this option is ignored and the transformer now detects synchronization direction using the target scope element
|
|
42
43
|
*/
|
|
43
44
|
isReverseSynchronization?: boolean;
|
|
44
45
|
/** Flag that indicates whether or not the transformation process needs to consider the source geometry before cloning/transforming.
|
|
@@ -123,6 +124,20 @@ export interface IModelTransformOptions {
|
|
|
123
124
|
* @default false
|
|
124
125
|
*/
|
|
125
126
|
ignoreMissingChangesetsInSynchronizations?: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Do not error out if a scoping ESA @see ExternalSourceAspectProps is found without a version or jsonProperties defined on that scoping ESA.
|
|
129
|
+
* If true, the version and jsonproperties will be properly set on the scoping ESA @see TargetScopeProvenanceJsonProps after the transformer is complete.
|
|
130
|
+
* These properties not being defined are a sign that this branching relationship was created with an older version of the transformer, and setting this option to 'unsafe-migrate' is not without risk.
|
|
131
|
+
* Depending on the state of the branching relationship at the time of using this option, some data may be lost.
|
|
132
|
+
* @note This should only need to be set to 'unsafe-migrate' at most once for a branching relationship. For future transformations on the branching relationship, the @see TargetScopeProvenanceJsonProps will be present.
|
|
133
|
+
* @default "reject"
|
|
134
|
+
*/
|
|
135
|
+
branchRelationshipDataBehavior?: "unsafe-migrate" | "reject";
|
|
136
|
+
/**
|
|
137
|
+
* Skip propagating changes made to the root subject, dictionaryModel and IModelImporter._realityDataSourceLinkPartitionStaticId (0xe)
|
|
138
|
+
* @default false
|
|
139
|
+
*/
|
|
140
|
+
skipPropagateChangesToRootElements?: boolean;
|
|
126
141
|
}
|
|
127
142
|
/**
|
|
128
143
|
* A container for tracking the state of a partially committed entity and finalizing it when it's ready to be fully committed
|
|
@@ -152,8 +167,19 @@ declare class PartiallyCommittedEntity {
|
|
|
152
167
|
* @beta
|
|
153
168
|
*/
|
|
154
169
|
export interface TargetScopeProvenanceJsonProps {
|
|
170
|
+
/** An array of changeset indices to ignore when doing a reverse sync. This array gets appended to during a forward sync and cleared
|
|
171
|
+
* during a reverse sync. Since a forward sync pushes a changeset to the branch db, the changeset pushed to the branch db
|
|
172
|
+
* by the forward sync isn't considered part of the changes made on the branch db and therefore doesn't need to be synced back to master
|
|
173
|
+
* during a forward sync.
|
|
174
|
+
*/
|
|
155
175
|
pendingReverseSyncChangesetIndices: number[];
|
|
176
|
+
/** An array of changeset indices to ignore when doing a forward sync. This array gets appended to during a reverse sync and cleared
|
|
177
|
+
* during a forward sync. Since a reverse sync pushes a changeset to the master db, the changeset pushed to the master db
|
|
178
|
+
* by the reverse sync isn't considered part of the changes made on the master db and therefore doesn't need to be synced back to the branch
|
|
179
|
+
* during a forward sync.
|
|
180
|
+
*/
|
|
156
181
|
pendingSyncChangesetIndices: number[];
|
|
182
|
+
/** the latest changesetid/index reverse synced into master */
|
|
157
183
|
reverseSyncVersion: string;
|
|
158
184
|
}
|
|
159
185
|
/** Arguments you can pass to [[IModelTransformer.initialize]]
|
|
@@ -175,7 +201,32 @@ export interface InitOptions {
|
|
|
175
201
|
/**
|
|
176
202
|
* Arguments for [[IModelTransformer.processChanges]]
|
|
177
203
|
*/
|
|
178
|
-
export
|
|
204
|
+
export type ProcessChangesOptions = ExportChangesOptions & FinalizeTransformationOptions;
|
|
205
|
+
/**
|
|
206
|
+
* Options which modify the behavior of [[IModelTransformer.finalizeTransformation]], called at the end of [[IModelTransformer.processAll]] and [[IModelTransformer.processChanges]].
|
|
207
|
+
* @beta
|
|
208
|
+
*/
|
|
209
|
+
export interface FinalizeTransformationOptions {
|
|
210
|
+
/**
|
|
211
|
+
* This description will be used when the transformer needs to push changes to the branch during a reverse sync.
|
|
212
|
+
* @default `Update provenance in response to a reverse sync to iModel: ${this.targetDb.iModelId}`
|
|
213
|
+
*/
|
|
214
|
+
reverseSyncBranchChangesetDescription?: string;
|
|
215
|
+
/**
|
|
216
|
+
* This description will be used when the transformer needs to push changes to master during a reverse sync.
|
|
217
|
+
* @default `Reverse sync of iModel: ${this.sourceDb.iModelId}`
|
|
218
|
+
*/
|
|
219
|
+
reverseSyncMasterChangesetDescription?: string;
|
|
220
|
+
/**
|
|
221
|
+
* This description will be used when the transformer needs to push changes to the branch during a forward sync.
|
|
222
|
+
* @default `Forward sync of iModel: ${this.sourceDb.iModelId}`
|
|
223
|
+
*/
|
|
224
|
+
forwardSyncBranchChangesetDescription?: string;
|
|
225
|
+
/**
|
|
226
|
+
* This description will be used when the transformer needs to push changes to the branch during a provenance init transform.
|
|
227
|
+
* @default `initialized branch provenance with master iModel: ${this.sourceDb.iModelId}`
|
|
228
|
+
*/
|
|
229
|
+
provenanceInitTransformChangesetDescription?: string;
|
|
179
230
|
/** how to call saveChanges on the target. Must call targetDb.saveChanges, should not edit the iModel */
|
|
180
231
|
saveTargetChanges?: (transformer: IModelTransformer) => Promise<void>;
|
|
181
232
|
}
|
|
@@ -183,6 +234,10 @@ export interface ProcessChangesOptions extends ExportChangesOptions {
|
|
|
183
234
|
* @deprecated in 0.1.0. Use [[InitOptions]] (and [[IModelTransformer.initialize]]) instead.
|
|
184
235
|
*/
|
|
185
236
|
export type InitFromExternalSourceAspectsArgs = InitOptions;
|
|
237
|
+
export interface RelationshipPropsForDelete {
|
|
238
|
+
id: Id64String;
|
|
239
|
+
classFullName: string;
|
|
240
|
+
}
|
|
186
241
|
/** Base class used to transform a source iModel into a different target iModel.
|
|
187
242
|
* @see [iModel Transformation and Data Exchange]($docs/learning/transformer/index.md), [IModelExporter]($transformer), [IModelImporter]($transformer)
|
|
188
243
|
* @beta
|
|
@@ -200,6 +255,7 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
200
255
|
readonly targetDb: IModelDb;
|
|
201
256
|
/** The IModelTransformContext for this IModelTransformer. */
|
|
202
257
|
readonly context: IModelCloneContext;
|
|
258
|
+
private _syncType?;
|
|
203
259
|
/** The Id of the Element in the **target** iModel that represents the **source** repository as a whole and scopes its [ExternalSourceAspect]($backend) instances. */
|
|
204
260
|
get targetScopeElementId(): Id64String;
|
|
205
261
|
/** map of (unprocessed element, referencing processed element) pairs to the partially committed element that needs the reference resolved
|
|
@@ -212,11 +268,44 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
212
268
|
/** the options that were used to initialize this transformer */
|
|
213
269
|
private readonly _options;
|
|
214
270
|
private _isSynchronization;
|
|
215
|
-
|
|
216
|
-
|
|
271
|
+
/**
|
|
272
|
+
* 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.
|
|
273
|
+
* 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.
|
|
274
|
+
* 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
|
|
275
|
+
* this private property on the IModelTransformer exists.
|
|
276
|
+
*/
|
|
277
|
+
private _allowNoScopingESA;
|
|
278
|
+
static noEsaSyncDirectionErrorMessage: string;
|
|
279
|
+
/**
|
|
280
|
+
* Queries for an esa which matches the props in the provided aspectProps.
|
|
281
|
+
* @param dbToQuery db to run the query on for scope external source
|
|
282
|
+
* @param aspectProps aspectProps to search for @see ExternalSourceAspectProps
|
|
283
|
+
*/
|
|
284
|
+
static queryScopeExternalSourceAspect(dbToQuery: IModelDb, aspectProps: ExternalSourceAspectProps): {
|
|
285
|
+
aspectId: Id64String;
|
|
286
|
+
version?: string;
|
|
287
|
+
/** stringified json */
|
|
288
|
+
jsonProperties?: string;
|
|
289
|
+
} | undefined;
|
|
290
|
+
/**
|
|
291
|
+
* Determines the sync direction "forward" or "reverse" of a given sourceDb and targetDb by looking for the scoping ESA.
|
|
292
|
+
* If the sourceDb's iModelId is found as the identifier of the expected scoping ESA in the targetDb, then it is a forward synchronization.
|
|
293
|
+
* If the targetDb's iModelId is found as the identifier of the expected scoping ESA in the sourceDb, then it is a reverse synchronization.
|
|
294
|
+
* @throws if no scoping ESA can be found in either the sourceDb or targetDb which describes a master branch relationship between the two databases.
|
|
295
|
+
* @returns "forward" or "reverse"
|
|
296
|
+
*/
|
|
297
|
+
static determineSyncType(sourceDb: IModelDb, targetDb: IModelDb,
|
|
298
|
+
/** @see [[IModelTransformOptions.targetScopeElementId]] */
|
|
299
|
+
targetScopeElementId: Id64String): "forward" | "reverse";
|
|
300
|
+
private determineSyncType;
|
|
301
|
+
get isReverseSynchronization(): boolean;
|
|
302
|
+
get isForwardSynchronization(): boolean;
|
|
217
303
|
private _changesetRanges;
|
|
218
|
-
/**
|
|
219
|
-
|
|
304
|
+
/**
|
|
305
|
+
* Set if the transformer is being used to perform the provenance initialization step of a fork initialization.
|
|
306
|
+
* In general don't use the transformer for that, prefer [[BranchProvenanceInitializer.initializeBranchProvenance]]
|
|
307
|
+
*/
|
|
308
|
+
private _isProvenanceInitTransform?;
|
|
220
309
|
/** The element classes that are considered to define provenance in the iModel */
|
|
221
310
|
static get provenanceElementClasses(): (typeof Entity)[];
|
|
222
311
|
/** The element aspect classes that are considered to define provenance in the iModel */
|
|
@@ -231,6 +320,10 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
231
320
|
* @param options The options that specify how the transformation should be done.
|
|
232
321
|
*/
|
|
233
322
|
constructor(source: IModelDb | IModelExporter, target: IModelDb | IModelImporter, options?: IModelTransformOptions);
|
|
323
|
+
/** validates that the importer set on the transformer has the same values for its shared options as the transformer.
|
|
324
|
+
* @note This expects that the importer is already set on the transformer.
|
|
325
|
+
*/
|
|
326
|
+
private validateSharedOptionsMatch;
|
|
234
327
|
/** Dispose any native resources associated with this IModelTransformer. */
|
|
235
328
|
dispose(): void;
|
|
236
329
|
/** Log current settings that affect IModelTransformer's behavior. */
|
|
@@ -305,11 +398,6 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
305
398
|
* if this was a [BriefcaseDb]($backend)
|
|
306
399
|
*/
|
|
307
400
|
protected initScopeProvenance(): void;
|
|
308
|
-
/**
|
|
309
|
-
* @returns the id and version of an aspect with the given element, scope, kind, and identifier
|
|
310
|
-
* May also return a reverseSyncVersion from json properties if requested
|
|
311
|
-
*/
|
|
312
|
-
private queryScopeExternalSource;
|
|
313
401
|
/**
|
|
314
402
|
* Iterate all matching federation guids and ExternalSourceAspects in the provenance iModel (target unless reverse sync)
|
|
315
403
|
* and call a function for each one.
|
|
@@ -322,21 +410,24 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
322
410
|
targetScopeElementId: Id64String;
|
|
323
411
|
isReverseSynchronization: boolean;
|
|
324
412
|
fn: (sourceElementId: Id64String, targetElementId: Id64String) => void;
|
|
413
|
+
skipPropagateChangesToRootElements: boolean;
|
|
325
414
|
}): void;
|
|
326
415
|
private forEachTrackedElement;
|
|
327
|
-
/** Initialize the source to target Element mapping from ExternalSourceAspects in the target iModel.
|
|
328
|
-
* @note This method is called from all `process*` functions and should never need to be called directly.
|
|
329
|
-
* @deprecated in 3.x. call [[initialize]] instead, it does the same thing among other initialization
|
|
330
|
-
* @note Passing an [[InitFromExternalSourceAspectsArgs]] is required when processing changes, to remap any elements that may have been deleted.
|
|
331
|
-
* 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.
|
|
332
|
-
*/
|
|
333
|
-
initFromExternalSourceAspects(args?: InitOptions): void | Promise<void>;
|
|
334
416
|
/**
|
|
335
|
-
*
|
|
336
|
-
*
|
|
417
|
+
* Queries the provenanceDb for an ESA whose identifier is equal to the provided 'entityInProvenanceSourceId'.
|
|
418
|
+
* The identifier on the ESA is the id of the element in the [[IModelTransformer.provenanceSourceDb]]
|
|
419
|
+
* Therefore it only makes sense to call this function when you have an id in the provenanceSourceDb.
|
|
420
|
+
* @param entityInProvenanceSourceId
|
|
421
|
+
* @returns the elementId that the ESA is stored on, esa.Element.Id
|
|
337
422
|
*/
|
|
338
|
-
private remapDeletedSourceEntities;
|
|
339
423
|
private _queryProvenanceForElement;
|
|
424
|
+
/**
|
|
425
|
+
* Queries the provenanceDb for an ESA whose identifier is equal to the provided 'entityInProvenanceSourceId'.
|
|
426
|
+
* The identifier on the ESA is the id of the relationship in the [[IModelTransformer.provenanceSourceDb]]
|
|
427
|
+
* Therefore it only makes sense to call this function when you have an id in the provenanceSourceDb.
|
|
428
|
+
* @param entityInProvenanceSourceId
|
|
429
|
+
* @returns
|
|
430
|
+
*/
|
|
340
431
|
private _queryProvenanceForRelationship;
|
|
341
432
|
private _queryTargetRelId;
|
|
342
433
|
private _targetClassNameToClassIdCache;
|
|
@@ -344,6 +435,7 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
344
435
|
private _getRelClassId;
|
|
345
436
|
private _queryElemIdByFedGuid;
|
|
346
437
|
/** Returns `true` if *brute force* delete detections should be run.
|
|
438
|
+
* @note This is only called if [[IModelTransformOptions.forceExternalSourceAspectProvenance]] option is true
|
|
347
439
|
* @note Not relevant for processChanges when change history is known.
|
|
348
440
|
*/
|
|
349
441
|
protected shouldDetectDeletes(): boolean;
|
|
@@ -352,7 +444,7 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
352
444
|
* in the source iModel.
|
|
353
445
|
* @deprecated in 1.x. Do not use this. // FIXME<MIKE>: how to better explain this?
|
|
354
446
|
* This method is only called during [[processAll]] when the option
|
|
355
|
-
* [[
|
|
447
|
+
* [[IModelTransformOptions.forceExternalSourceAspectProvenance]] is enabled. It is not
|
|
356
448
|
* necessary when using [[processChanges]] since changeset information is sufficient.
|
|
357
449
|
* @note you do not need to call this directly unless processing a subset of an iModel.
|
|
358
450
|
* @throws [[IModelError]] If the required provenance information is not available to detect deletes.
|
|
@@ -371,7 +463,6 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
371
463
|
onTransformElement(sourceElement: Element): ElementProps;
|
|
372
464
|
private _hasElementChangedCache?;
|
|
373
465
|
private _deletedSourceRelationshipData?;
|
|
374
|
-
private _cacheSourceChanges;
|
|
375
466
|
/** Returns true if a change within sourceElement is detected.
|
|
376
467
|
* @param sourceElement The Element from the source iModel
|
|
377
468
|
* @param targetElementId The Element from the target iModel to compare against.
|
|
@@ -453,7 +544,7 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
453
544
|
/** called at the end ([[finalizeTransformation]]) of a transformation,
|
|
454
545
|
* updates the target scope element to say that transformation up through the
|
|
455
546
|
* source's changeset has been performed. Also stores all changesets that occurred
|
|
456
|
-
* during the transformation as "pending synchronization changeset indices"
|
|
547
|
+
* during the transformation as "pending synchronization changeset indices" @see TargetScopeProvenanceJsonProps
|
|
457
548
|
*
|
|
458
549
|
* You generally should not call this function yourself and use [[processChanges]] instead.
|
|
459
550
|
* It is public for unsupported use cases of custom synchronization transforms.
|
|
@@ -535,8 +626,8 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
535
626
|
*/
|
|
536
627
|
processSchemas(): Promise<void>;
|
|
537
628
|
/** Cause all fonts to be exported from the source iModel and imported into the target iModel.
|
|
538
|
-
|
|
539
|
-
|
|
629
|
+
* @note This method is called from [[processChanges]] and [[processAll]], so it only needs to be called directly when processing a subset of an iModel.
|
|
630
|
+
*/
|
|
540
631
|
processFonts(): Promise<void>;
|
|
541
632
|
/** Override of [IModelExportHandler.onExportFont]($transformer) that imports a font into the target iModel when it is exported from the source iModel. */
|
|
542
633
|
onExportFont(font: FontProps, _isUpdate: boolean | undefined): void;
|
|
@@ -558,9 +649,9 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
558
649
|
processSubject(sourceSubjectId: Id64String, targetSubjectId: Id64String): Promise<void>;
|
|
559
650
|
/** state to prevent reinitialization, @see [[initialize]] */
|
|
560
651
|
private _initialized;
|
|
561
|
-
/** length === 0 when _changeDataState = "no-change", length > 0 means "has-changes", otherwise undefined */
|
|
562
|
-
private _changeSummaryIds?;
|
|
563
652
|
private _sourceChangeDataState;
|
|
653
|
+
/** length === 0 when _changeDataState = "no-change", length > 0 means "has-changes", otherwise undefined */
|
|
654
|
+
private _csFileProps?;
|
|
564
655
|
/**
|
|
565
656
|
* Initialize prerequisites of processing, you must initialize with an [[InitOptions]] if you
|
|
566
657
|
* are intending to process changes, but prefer using [[processChanges]] explicitly since it calls this.
|
|
@@ -568,88 +659,41 @@ export declare class IModelTransformer extends IModelExportHandler {
|
|
|
568
659
|
* Overriders must call `super.initialize()` first
|
|
569
660
|
*/
|
|
570
661
|
initialize(args?: InitOptions): Promise<void>;
|
|
662
|
+
/**
|
|
663
|
+
* Reads all the changeset files in the private member of the transformer: _csFileProps and does two things with these changesets.
|
|
664
|
+
* Finds the corresponding target entity for any deleted source entities and remaps the sourceId to the targetId.
|
|
665
|
+
* Populates this._hasElementChangedCache with a set of elementIds that have been updated or inserted into the database.
|
|
666
|
+
* This function returns early if csFileProps is undefined or is of length 0.
|
|
667
|
+
* @returns void
|
|
668
|
+
*/
|
|
669
|
+
private processChangesets;
|
|
670
|
+
/**
|
|
671
|
+
* Helper function for processChangesets. Remaps the id of element deleted found in the 'change' to an element in the targetDb.
|
|
672
|
+
* @param change the change to process, must be of changeType "Deleted"
|
|
673
|
+
* @param mapOfDeletedElemIdToScopeEsas a map of elementIds to changedECInstances (which are ESAs). the elementId is not the id of the esa itself, but the elementid that the esa was stored on before the esa's deletion.
|
|
674
|
+
* All ESAs in this map are part of the transformer's scope / ESA data and are tracked in case the ESA is deleted in the target.
|
|
675
|
+
* @param isRelationship is relationship or not
|
|
676
|
+
* @param alreadyImportedElementInserts used to handle entity recreation and not delete already handled element inserts.
|
|
677
|
+
* @param alreadyImportedModelInserts used to handle entity recreation and not delete already handled model inserts.
|
|
678
|
+
* @returns void
|
|
679
|
+
*/
|
|
680
|
+
private processDeletedOp;
|
|
571
681
|
private _tryInitChangesetData;
|
|
572
682
|
/** Export everything from the source iModel and import the transformed entities into the target iModel.
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
processAll(): Promise<void>;
|
|
683
|
+
* @note [[processSchemas]] is not called automatically since the target iModel may want a different collection of schemas.
|
|
684
|
+
*/
|
|
685
|
+
processAll(options?: FinalizeTransformationOptions): Promise<void>;
|
|
576
686
|
/** previous provenance, either a federation guid, a `${sourceFedGuid}/${targetFedGuid}` pair, or required aspect props */
|
|
577
687
|
private _lastProvenanceEntityInfo;
|
|
578
688
|
private markLastProvenance;
|
|
579
|
-
/** @internal the name of the table where javascript state of the transformer is serialized in transformer state dumps */
|
|
580
|
-
static readonly jsStateTable = "TransformerJsState";
|
|
581
|
-
/** @internal the name of the table where the target state heuristics is serialized in transformer state dumps */
|
|
582
|
-
static readonly lastProvenanceEntityInfoTable = "LastProvenanceEntityInfo";
|
|
583
|
-
/**
|
|
584
|
-
* Load the state of the active transformation from an open SQLiteDb
|
|
585
|
-
* You can override this if you'd like to load from custom tables in the resumable dump state, but you should call
|
|
586
|
-
* this super implementation
|
|
587
|
-
* @note the SQLiteDb must be open
|
|
588
|
-
*/
|
|
589
|
-
protected loadStateFromDb(db: SQLiteDb): void;
|
|
590
|
-
/**
|
|
591
|
-
* @deprecated in 0.1.x, this is buggy, and it is now equivalently efficient to simply restart the transformation
|
|
592
|
-
* from the original changeset
|
|
593
|
-
*
|
|
594
|
-
* Return a new transformer instance with the same remappings state as saved from a previous [[IModelTransformer.saveStateToFile]] call.
|
|
595
|
-
* This allows you to "resume" an iModel transformation, you will have to call [[IModelTransformer.processChanges]]/[[IModelTransformer.processAll]]
|
|
596
|
-
* again but the remapping state will cause already mapped elements to be skipped.
|
|
597
|
-
* To "resume" an iModel Transformation you need:
|
|
598
|
-
* - the sourceDb at the same changeset
|
|
599
|
-
* - the same targetDb in the state in which it was before
|
|
600
|
-
* @param statePath the path to the serialized state of the transformer, use [[IModelTransformer.saveStateToFile]] to get this from an existing transformer instance
|
|
601
|
-
* @param constructorArgs remaining arguments that you would normally pass to the Transformer subclass you are using, usually (sourceDb, targetDb)
|
|
602
|
-
* @note custom transformers with custom state may need to override this method in order to handle loading their own custom state somewhere
|
|
603
|
-
*/
|
|
604
|
-
static resumeTransformation<SubClass extends new (...a: any[]) => IModelTransformer = typeof IModelTransformer>(this: SubClass, statePath: string, ...constructorArgs: ConstructorParameters<SubClass>): InstanceType<SubClass>;
|
|
605
|
-
/**
|
|
606
|
-
* You may override this to store arbitrary json state in a transformer state dump, useful for some resumptions
|
|
607
|
-
* @see [[IModelTransformer.saveStateToFile]]
|
|
608
|
-
*/
|
|
609
|
-
protected getAdditionalStateJson(): any;
|
|
610
|
-
/**
|
|
611
|
-
* You may override this to load arbitrary json state in a transformer state dump, useful for some resumptions
|
|
612
|
-
* @see [[IModelTransformer.loadStateFromFile]]
|
|
613
|
-
*/
|
|
614
|
-
protected loadAdditionalStateJson(_additionalState: any): void;
|
|
615
|
-
/**
|
|
616
|
-
* Save the state of the active transformation to an open SQLiteDb
|
|
617
|
-
* You can override this if you'd like to write custom tables to the resumable dump state, but you should call
|
|
618
|
-
* this super implementation
|
|
619
|
-
* @note the SQLiteDb must be open
|
|
620
|
-
*/
|
|
621
|
-
protected saveStateToDb(db: SQLiteDb): void;
|
|
622
|
-
/**
|
|
623
|
-
* @deprecated in 0.1.x, this is buggy, and it is now equivalently efficient to simply restart the transformation
|
|
624
|
-
* from the original changeset
|
|
625
|
-
*
|
|
626
|
-
* Save the state of the active transformation to a file path, if a file at the path already exists, it will be overwritten
|
|
627
|
-
* This state can be used by [[IModelTransformer.resumeTransformation]] to resume a transformation from this point.
|
|
628
|
-
* The serialization format is a custom sqlite database.
|
|
629
|
-
* @note custom transformers with custom state may override [[IModelTransformer.saveStateToDb]] or [[IModelTransformer.getAdditionalStateJson]]
|
|
630
|
-
* and [[IModelTransformer.loadStateFromDb]] (with a super call) or [[IModelTransformer.loadAdditionalStateJson]]
|
|
631
|
-
* if they have custom state that needs to be stored with
|
|
632
|
-
* potentially inside the same sqlite file in separate tables
|
|
633
|
-
*/
|
|
634
|
-
saveStateToFile(nativeStatePath: string): void;
|
|
635
689
|
/** Export changes from the source iModel and import the transformed entities into the target iModel.
|
|
636
690
|
* Inserts, updates, and deletes are determined by inspecting the changeset(s).
|
|
637
|
-
* @note the transformer
|
|
638
|
-
*
|
|
639
|
-
* data loss in future branch operations
|
|
640
|
-
* @param accessToken A valid access token string
|
|
641
|
-
* @param startChangesetId Include changes from this changeset up through and including the current changeset.
|
|
642
|
-
* @note if no startChangesetId or startChangeset option is provided, the next unsynchronized changeset
|
|
691
|
+
* @note the transformer saves and pushes changes when its work is complete.
|
|
692
|
+
* @note if no startChangesetId or startChangeset option is provided as part of the ProcessChangesOptions, the next unsynchronized changeset
|
|
643
693
|
* will automatically be determined and used
|
|
644
694
|
* @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.
|
|
645
695
|
*/
|
|
646
696
|
processChanges(options: ProcessChangesOptions): Promise<void>;
|
|
647
|
-
/**
|
|
648
|
-
* @deprecated in 0.1.x, use a single [[ProcessChangesOptions]] object instead
|
|
649
|
-
* This overload follows the older behavior of defaulting an undefined startChangesetId to the
|
|
650
|
-
* current changeset.
|
|
651
|
-
*/
|
|
652
|
-
processChanges(accessToken: AccessToken, startChangesetId?: string): Promise<void>;
|
|
653
697
|
/** Changeset data must be initialized in order to build correct changeOptions.
|
|
654
698
|
* Call [[IModelTransformer.initialize]] for initialization of synchronization provenance data
|
|
655
699
|
*/
|
|
@@ -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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"}
|