@itwin/imodel-transformer 0.1.13 → 0.1.14-fedguidopt.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/CHANGELOG.md CHANGED
@@ -1,9 +1,17 @@
1
1
  # Change Log - @itwin/imodel-transformer
2
2
 
3
- This log was last generated on Wed, 31 May 2023 13:40:07 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 01 Jun 2023 22:51:33 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.1.14
8
+
9
+ Thu, 01 Jun 2023 22:51:33 GMT
10
+
11
+ ### Patches
12
+
13
+ - update deps to support 3.6-4.0 ([commit](https://github.com/iTwin/transformer/commit/5a175aa5b15fb48e747cccd18be5886727fecb6a))
14
+
7
15
  ## 0.1.12
8
16
 
9
17
  Wed, 31 May 2023 13:40:07 GMT
@@ -0,0 +1,7 @@
1
+ /** given a discrete inclusive range [start, end] e.g. [-10, 12] and several "skipped" values", e.g.
2
+ * (-10, 1, -3, 5, 15), return the ordered set of subranges of the original range that exclude
3
+ * those values
4
+ */
5
+ export declare function rangesFromRangeAndSkipped(start: number, end: number, skipped: number[]): [number, number][];
6
+ export declare function renderRanges(ranges: [number, number][]): number[];
7
+ //# sourceMappingURL=Algo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Algo.d.ts","sourceRoot":"","sources":["../../src/Algo.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAiC3G;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAMjE"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.renderRanges = exports.rangesFromRangeAndSkipped = void 0;
8
+ // FIXME: tests
9
+ /** given a discrete inclusive range [start, end] e.g. [-10, 12] and several "skipped" values", e.g.
10
+ * (-10, 1, -3, 5, 15), return the ordered set of subranges of the original range that exclude
11
+ * those values
12
+ */
13
+ function rangesFromRangeAndSkipped(start, end, skipped) {
14
+ function validRange(range) {
15
+ return range[0] <= range[1];
16
+ }
17
+ const firstRange = [start, end];
18
+ if (!validRange(firstRange))
19
+ throw RangeError(`invalid range: [${start}, ${end}]`);
20
+ const ranges = [firstRange];
21
+ function findRangeContaining(pt, inRanges) {
22
+ // TODO: binary search
23
+ return inRanges.findIndex((r) => (pt >= r[0] && pt <= r[1]));
24
+ }
25
+ for (const skip of skipped) {
26
+ const rangeIndex = findRangeContaining(skip, ranges);
27
+ if (rangeIndex === -1)
28
+ continue;
29
+ const range = ranges[rangeIndex];
30
+ const leftRange = [range[0], skip - 1];
31
+ const rightRange = [skip + 1, range[1]];
32
+ if (validRange(leftRange) && validRange(rightRange))
33
+ ranges.splice(rangeIndex, 1, leftRange, rightRange);
34
+ else if (validRange(leftRange))
35
+ ranges.splice(rangeIndex, 1, leftRange);
36
+ else if (validRange(rightRange))
37
+ ranges.splice(rangeIndex, 1, rightRange);
38
+ }
39
+ return ranges;
40
+ }
41
+ exports.rangesFromRangeAndSkipped = rangesFromRangeAndSkipped;
42
+ function renderRanges(ranges) {
43
+ const result = [];
44
+ for (const range of ranges)
45
+ for (let i = range[0]; i <= range[1]; ++i)
46
+ result.push(i);
47
+ return result;
48
+ }
49
+ exports.renderRanges = renderRanges;
50
+ //# sourceMappingURL=Algo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Algo.js","sourceRoot":"","sources":["../../src/Algo.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,eAAe;AACf;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,KAAa,EAAE,GAAW,EAAE,OAAiB;IACrF,SAAS,UAAU,CAAC,KAAsB;QACxC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,GAAG,CAAqB,CAAC;IAEpD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QACzB,MAAM,UAAU,CAAC,mBAAmB,KAAK,KAAK,GAAG,GAAG,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC;IAE5B,SAAS,mBAAmB,CAAC,EAAU,EAAE,QAA4B;QACnE,sBAAsB;QACtB,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;QAC1B,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,UAAU,KAAK,CAAC,CAAC;YACnB,SAAS;QACX,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAqB,CAAC;QAC3D,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAqB,CAAC;QAC5D,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;aACjD,IAAI,UAAU,CAAC,SAAS,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;aACrC,IAAI,UAAU,CAAC,UAAU,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;KAC5C;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAjCD,8DAiCC;AAED,SAAgB,YAAY,CAAC,MAA0B;IACrD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,KAAK,IAAI,MAAM;QACxB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,OAAO,MAAM,CAAC;AAChB,CAAC;AAND,oCAMC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n// FIXME: tests\n/** given a discrete inclusive range [start, end] e.g. [-10, 12] and several \"skipped\" values\", e.g.\n * (-10, 1, -3, 5, 15), return the ordered set of subranges of the original range that exclude\n * those values\n */\nexport function rangesFromRangeAndSkipped(start: number, end: number, skipped: number[]): [number, number][] {\n function validRange(range: [number,number]): boolean {\n return range[0] <= range[1];\n }\n\n const firstRange = [start, end] as [number, number];\n\n if (!validRange(firstRange))\n throw RangeError(`invalid range: [${start}, ${end}]`);\n\n const ranges = [firstRange];\n\n function findRangeContaining(pt: number, inRanges: [number, number][]): number {\n // TODO: binary search\n return inRanges.findIndex((r) => (pt >= r[0] && pt <= r[1]));\n }\n\n for (const skip of skipped) {\n const rangeIndex = findRangeContaining(skip, ranges);\n if (rangeIndex === -1)\n continue;\n const range = ranges[rangeIndex];\n const leftRange = [range[0], skip - 1] as [number, number];\n const rightRange = [skip + 1, range[1]] as [number, number];\n if (validRange(leftRange) && validRange(rightRange))\n ranges.splice(rangeIndex, 1, leftRange, rightRange);\n else if (validRange(leftRange))\n ranges.splice(rangeIndex, 1, leftRange);\n else if (validRange(rightRange))\n ranges.splice(rangeIndex, 1, rightRange);\n }\n\n return ranges;\n}\n\nexport function renderRanges(ranges: [number, number][]): number[] {\n const result = [];\n for (const range of ranges)\n for (let i = range[0]; i <= range[1]; ++i)\n result.push(i);\n return result;\n}\n\n"]}
@@ -3,8 +3,26 @@
3
3
  */
4
4
  import { BriefcaseDb, Element, ElementAspect, ElementMultiAspect, ElementUniqueAspect, IModelDb, IModelJsNative, Model, Relationship } from "@itwin/core-backend";
5
5
  import { AccessToken, CompressedId64Set, Id64String } from "@itwin/core-bentley";
6
- import { CodeSpec, FontProps } from "@itwin/core-common";
6
+ import { ChangesetIndexOrId, CodeSpec, FontProps } from "@itwin/core-common";
7
7
  import { Schema, SchemaKey } from "@itwin/ecschema-metadata";
8
+ import type { InitArgs } from "./IModelTransformer";
9
+ export interface ExportChangesArgs extends InitArgs {
10
+ accessToken?: AccessToken;
11
+ /**
12
+ * A changeset id or index signifiying the inclusive start of changes
13
+ * to include. The end is implicitly the changeset of the source iModel
14
+ * @note mutually exclusive with @see changesetRanges
15
+ */
16
+ startChangeset?: ChangesetIndexOrId;
17
+ /**
18
+ * An array of changeset index ranges, e.g. [[2,2], [4,5]] is [2,4,5]
19
+ * @note mutually exclusive with @see startChangeset
20
+ */
21
+ changesetRanges?: [number, number][];
22
+ }
23
+ export interface ChangedInstanceIdsInitOptions extends ExportChangesArgs {
24
+ iModel: BriefcaseDb;
25
+ }
8
26
  /**
9
27
  * @beta
10
28
  * The (optional) result of [[IModelExportHandler.onExportSchema]]
@@ -192,12 +210,18 @@ export declare class IModelExporter {
192
210
  */
193
211
  exportAll(): Promise<void>;
194
212
  /** Export changes from the source iModel.
195
- * @param user The user
213
+ * Inserts, updates, and deletes are determined by inspecting the changeset(s).
214
+ * @param accessToken A valid access token string
196
215
  * @param startChangesetId Include changes from this changeset up through and including the current changeset.
197
216
  * If this parameter is not provided, then just the current changeset will be exported.
198
- * @note To form a range of versions to export, set `startChangesetId` for the start (inclusive) of the desired range and open the source iModel as of the end (inclusive) of the desired range.
217
+ * @note To form a range of versions to process, set `startChangesetId` for the start (inclusive) of the desired
218
+ * range and open the source iModel as of the end (inclusive) of the desired range.
219
+ */
220
+ exportChanges(options: ExportChangesArgs): Promise<void>;
221
+ /**
222
+ * @deprecated in 0.1.x.
199
223
  */
200
- exportChanges(user?: AccessToken, startChangesetId?: string): Promise<void>;
224
+ exportChanges(accessToken: AccessToken, startChangesetId?: string): Promise<void>;
201
225
  /** Export schemas from the source iModel.
202
226
  * @note This must be called separately from [[exportAll]] or [[exportChanges]].
203
227
  */
@@ -343,11 +367,9 @@ export declare class ChangedInstanceIds {
343
367
  private constructor();
344
368
  /**
345
369
  * Initializes a new ChangedInstanceIds object with information taken from a range of changesets.
346
- * @param accessToken Access token.
347
- * @param iModel IModel briefcase whose changesets will be queried.
348
- * @param firstChangesetId Changeset id.
349
- * @note Modified element information will be taken from a range of changesets. First changeset in a range will be the 'firstChangesetId', the last will be whichever changeset the 'iModel' briefcase is currently opened on.
350
370
  */
351
- static initialize(accessToken: AccessToken | undefined, iModel: BriefcaseDb, firstChangesetId: string): Promise<ChangedInstanceIds>;
371
+ static initialize(opts: ChangedInstanceIdsInitOptions): Promise<ChangedInstanceIds>;
372
+ /** @deprecated in 0.1.x. Pass a [[ChangedInstanceIdsInitOptions]] object instead of a changeset id */
373
+ static initialize(accessToken: AccessToken | undefined, iModel: BriefcaseDb, startChangesetId: string): Promise<ChangedInstanceIds>;
352
374
  }
353
375
  //# sourceMappingURL=IModelExporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IModelExporter.d.ts","sourceRoot":"","sources":["../../src/IModelExporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IModelExporter.d.ts","sourceRoot":"","sources":["../../src/IModelExporter.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ const core_bentley_1 = require("@itwin/core-bentley");
13
13
  const core_common_1 = require("@itwin/core-common");
14
14
  const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
15
15
  const TransformerLoggerCategory_1 = require("./TransformerLoggerCategory");
16
+ const nodeAssert = require("assert");
16
17
  const loggerCategory = TransformerLoggerCategory_1.TransformerLoggerCategory.IModelExporter;
17
18
  /** Handles the events generated by IModelExporter.
18
19
  * @note Change information is available when `IModelExportHandler` methods are invoked via [IModelExporter.exportChanges]($transformer), but not available when invoked via [IModelExporter.exportAll]($transformer).
@@ -217,13 +218,15 @@ class IModelExporter {
217
218
  await this.exportModel(core_common_1.IModel.repositoryModelId);
218
219
  await this.exportRelationships(core_backend_1.ElementRefersToElements.classFullName);
219
220
  }
220
- /** Export changes from the source iModel.
221
- * @param user The user
222
- * @param startChangesetId Include changes from this changeset up through and including the current changeset.
223
- * If this parameter is not provided, then just the current changeset will be exported.
224
- * @note To form a range of versions to export, set `startChangesetId` for the start (inclusive) of the desired range and open the source iModel as of the end (inclusive) of the desired range.
225
- */
226
- async exportChanges(user, startChangesetId) {
221
+ async exportChanges(optionsOrAccessToken, startChangesetId) {
222
+ const args = typeof optionsOrAccessToken === "string"
223
+ ? {
224
+ accessToken: optionsOrAccessToken,
225
+ startChangeset: startChangesetId
226
+ ? { id: startChangesetId }
227
+ : this.sourceDb.changeset,
228
+ }
229
+ : optionsOrAccessToken;
227
230
  if (!this.sourceDb.isBriefcaseDb()) {
228
231
  throw new core_common_1.IModelError(core_bentley_1.IModelStatus.BadRequest, "Must be a briefcase to export changes");
229
232
  }
@@ -231,10 +234,7 @@ class IModelExporter {
231
234
  await this.exportAll(); // no changesets, so revert to exportAll
232
235
  return;
233
236
  }
234
- if (undefined === startChangesetId) {
235
- startChangesetId = this.sourceDb.changeset.id;
236
- }
237
- this._sourceDbChanges = await ChangedInstanceIds.initialize(user, this.sourceDb, startChangesetId);
237
+ this._sourceDbChanges = await ChangedInstanceIds.initialize({ ...args, iModel: this.sourceDb });
238
238
  await this.exportCodeSpecs();
239
239
  await this.exportFonts();
240
240
  await this.exportModelContents(core_common_1.IModel.repositoryModelId);
@@ -773,21 +773,41 @@ class ChangedInstanceIds {
773
773
  this.relationship = new ChangedInstanceOps();
774
774
  this.font = new ChangedInstanceOps();
775
775
  }
776
- /**
777
- * Initializes a new ChangedInstanceIds object with information taken from a range of changesets.
778
- * @param accessToken Access token.
779
- * @param iModel IModel briefcase whose changesets will be queried.
780
- * @param firstChangesetId Changeset id.
781
- * @note Modified element information will be taken from a range of changesets. First changeset in a range will be the 'firstChangesetId', the last will be whichever changeset the 'iModel' briefcase is currently opened on.
782
- */
783
- static async initialize(accessToken, iModel, firstChangesetId) {
784
- const iModelId = iModel.iModelId;
785
- const first = (await core_backend_1.IModelHost.hubAccess.queryChangeset({ iModelId, changeset: { id: firstChangesetId }, accessToken })).index;
786
- const end = (await core_backend_1.IModelHost.hubAccess.queryChangeset({ iModelId, changeset: { id: iModel.changeset.id }, accessToken })).index;
787
- const changesets = await core_backend_1.IModelHost.hubAccess.downloadChangesets({ accessToken, iModelId, range: { first, end }, targetDir: core_backend_1.BriefcaseManager.getChangeSetsPath(iModelId) });
776
+ static async initialize(accessTokenOrOpts, iModel, startChangesetId) {
777
+ const opts = typeof accessTokenOrOpts === "object"
778
+ ? accessTokenOrOpts
779
+ : {
780
+ accessToken: accessTokenOrOpts,
781
+ iModel: iModel,
782
+ startChangeset: { id: startChangesetId },
783
+ };
784
+ nodeAssert(((opts.startChangeset ? 1 : 0) + (opts.changesetRanges ? 1 : 0)) === 1, "exactly one of options.startChangeset XOR opts.changesetRanges may be used");
785
+ const iModelId = opts.iModel.iModelId;
786
+ const accessToken = opts.accessToken;
787
+ const changesetRanges = opts.changesetRanges
788
+ ?? [[
789
+ opts.startChangeset.index
790
+ ?? (await core_backend_1.IModelHost.hubAccess.queryChangeset({
791
+ iModelId,
792
+ changeset: { id: opts.startChangeset.id },
793
+ accessToken,
794
+ })).index,
795
+ opts.iModel.changeset.index
796
+ ?? (await core_backend_1.IModelHost.hubAccess.queryChangeset({
797
+ iModelId,
798
+ changeset: { id: opts.iModel.changeset.id },
799
+ accessToken,
800
+ })).index,
801
+ ]];
802
+ core_bentley_1.Logger.logTrace(loggerCategory, `ChangedInstanceIds.initialize ranges: ${changesetRanges.join("|")}`);
803
+ const changesets = (await Promise.all(changesetRanges.map(async ([first, end]) => core_backend_1.IModelHost.hubAccess.downloadChangesets({
804
+ accessToken,
805
+ iModelId, range: { first, end },
806
+ targetDir: core_backend_1.BriefcaseManager.getChangeSetsPath(iModelId),
807
+ })))).flat();
788
808
  const changedInstanceIds = new ChangedInstanceIds();
789
809
  const changesetFiles = changesets.map((c) => c.pathname);
790
- const statusOrResult = iModel.nativeDb.extractChangedInstanceIdsFromChangeSets(changesetFiles);
810
+ const statusOrResult = opts.iModel.nativeDb.extractChangedInstanceIdsFromChangeSets(changesetFiles);
791
811
  if (statusOrResult.error) {
792
812
  throw new core_common_1.IModelError(statusOrResult.error.status, "Error processing changeset");
793
813
  }