@itwin/ecschema-rpcinterface-tests 5.11.0-dev.3 → 5.11.0-dev.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29017,18 +29017,33 @@ var DbResponseKind;
29017
29017
  /** @internal */
29018
29018
  var DbResponseStatus;
29019
29019
  (function (DbResponseStatus) {
29020
+ /** Query ran to completion. */
29020
29021
  DbResponseStatus[DbResponseStatus["Done"] = 1] = "Done";
29022
+ /** Requested by user. */
29021
29023
  DbResponseStatus[DbResponseStatus["Cancel"] = 2] = "Cancel";
29024
+ /** Query was running but ran out of quota. */
29022
29025
  DbResponseStatus[DbResponseStatus["Partial"] = 3] = "Partial";
29026
+ /** Query time quota expired while it was in queue. */
29023
29027
  DbResponseStatus[DbResponseStatus["Timeout"] = 4] = "Timeout";
29028
+ /** Could not submit the query because the queue was full. */
29024
29029
  DbResponseStatus[DbResponseStatus["QueueFull"] = 5] = "QueueFull";
29030
+ /** Shutdown is in progress. */
29025
29031
  DbResponseStatus[DbResponseStatus["ShuttingDown"] = 6] = "ShuttingDown";
29032
+ /** iModel is not open. */
29033
+ DbResponseStatus[DbResponseStatus["NotOpen"] = 7] = "NotOpen";
29034
+ /** Generic error. */
29026
29035
  DbResponseStatus[DbResponseStatus["Error"] = 100] = "Error";
29036
+ /** ECSQL prepare failed. */
29027
29037
  DbResponseStatus[DbResponseStatus["Error_ECSql_PreparedFailed"] = 101] = "Error_ECSql_PreparedFailed";
29038
+ /** ECSQL step failed. */
29028
29039
  DbResponseStatus[DbResponseStatus["Error_ECSql_StepFailed"] = 102] = "Error_ECSql_StepFailed";
29040
+ /** ECSQL failed to serialize row to JSON. */
29029
29041
  DbResponseStatus[DbResponseStatus["Error_ECSql_RowToJsonFailed"] = 103] = "Error_ECSql_RowToJsonFailed";
29042
+ /** ECSQL binding failed. */
29030
29043
  DbResponseStatus[DbResponseStatus["Error_ECSql_BindingFailed"] = 104] = "Error_ECSql_BindingFailed";
29044
+ /** Class, property, or instance specified was not found, or property is not of type blob. */
29031
29045
  DbResponseStatus[DbResponseStatus["Error_BlobIO_OpenFailed"] = 105] = "Error_BlobIO_OpenFailed";
29046
+ /** Range specified is invalid based on size of blob. */
29032
29047
  DbResponseStatus[DbResponseStatus["Error_BlobIO_OutOfRange"] = 106] = "Error_BlobIO_OutOfRange";
29033
29048
  })(DbResponseStatus || (DbResponseStatus = {}));
29034
29049
  /** @internal */
@@ -31129,7 +31144,7 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.ECSqlRea
31129
31144
  request.includeMetaData = this._props.length > 0 ? false : true;
31130
31145
  request.limit = { offset: this._globalOffset, count: this._globalCount < 1 ? -1 : this._globalCount };
31131
31146
  const resp = await this.runWithRetry(request);
31132
- this._globalDone = resp.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.DbResponseStatus.Done;
31147
+ this._globalDone = resp.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.DbResponseStatus.Done || resp.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.DbResponseStatus.NotOpen;
31133
31148
  if (this._props.length === 0 && resp.meta.length > 0) {
31134
31149
  this._props = new _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.PropertyMetaDataMap(resp.meta);
31135
31150
  }
@@ -69283,6 +69298,278 @@ __webpack_require__.r(__webpack_exports__);
69283
69298
 
69284
69299
 
69285
69300
 
69301
+ /***/ }),
69302
+
69303
+ /***/ "../../core/ecschema-metadata/lib/esm/Localization/LocalizationProvider.js":
69304
+ /*!*********************************************************************************!*\
69305
+ !*** ../../core/ecschema-metadata/lib/esm/Localization/LocalizationProvider.js ***!
69306
+ \*********************************************************************************/
69307
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
69308
+
69309
+ "use strict";
69310
+ __webpack_require__.r(__webpack_exports__);
69311
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
69312
+ /* harmony export */ LocalizationProvider: () => (/* binding */ LocalizationProvider)
69313
+ /* harmony export */ });
69314
+ /**
69315
+ * The provider to load the localization JSON files.
69316
+ * @beta
69317
+ */
69318
+ class LocalizationProvider {
69319
+ _loader;
69320
+ /**
69321
+ * Constructs a LocalizationProvider.
69322
+ * @param _loader Function that loads JSON content given a schema name and locale
69323
+ */
69324
+ constructor(_loader) {
69325
+ this._loader = _loader;
69326
+ }
69327
+ /**
69328
+ * Load localization JSON for a given schema and locale.
69329
+ */
69330
+ async getLocalization(schemaName, locale) {
69331
+ const localizationData = await this._loader(schemaName, locale);
69332
+ if (localizationData) {
69333
+ if (!localizationData.name || !localizationData.locale) {
69334
+ throw new Error(`Invalid localization JSON for ${schemaName}:${locale} - missing schema name or locale`);
69335
+ }
69336
+ if (localizationData.name !== schemaName) {
69337
+ throw new Error(`Localization JSON mismatch for ${schemaName}:${locale} - expected schema name "${schemaName}" but got "${localizationData.name}"`);
69338
+ }
69339
+ if (localizationData.locale !== locale) {
69340
+ throw new Error(`Localization JSON mismatch for ${schemaName}:${locale} - expected locale "${locale}" but got "${localizationData.locale}"`);
69341
+ }
69342
+ }
69343
+ return localizationData;
69344
+ }
69345
+ }
69346
+
69347
+
69348
+ /***/ }),
69349
+
69350
+ /***/ "../../core/ecschema-metadata/lib/esm/Localization/LocalizationTypes.js":
69351
+ /*!******************************************************************************!*\
69352
+ !*** ../../core/ecschema-metadata/lib/esm/Localization/LocalizationTypes.js ***!
69353
+ \******************************************************************************/
69354
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
69355
+
69356
+ "use strict";
69357
+ __webpack_require__.r(__webpack_exports__);
69358
+ /*---------------------------------------------------------------------------------------------
69359
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
69360
+ * See LICENSE.md in the project root for license terms and full copyright notice.
69361
+ *--------------------------------------------------------------------------------------------*/
69362
+
69363
+
69364
+
69365
+ /***/ }),
69366
+
69367
+ /***/ "../../core/ecschema-metadata/lib/esm/Localization/SchemaLocalization.js":
69368
+ /*!*******************************************************************************!*\
69369
+ !*** ../../core/ecschema-metadata/lib/esm/Localization/SchemaLocalization.js ***!
69370
+ \*******************************************************************************/
69371
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
69372
+
69373
+ "use strict";
69374
+ __webpack_require__.r(__webpack_exports__);
69375
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
69376
+ /* harmony export */ SchemaLocalization: () => (/* binding */ SchemaLocalization)
69377
+ /* harmony export */ });
69378
+ /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
69379
+ /*---------------------------------------------------------------------------------------------
69380
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
69381
+ * See LICENSE.md in the project root for license terms and full copyright notice.
69382
+ *--------------------------------------------------------------------------------------------*/
69383
+
69384
+ const loggerCategory = "SchemaLocalization";
69385
+ /**
69386
+ * Manages schema localization to provide localized labels and descriptions.
69387
+ * @beta
69388
+ */
69389
+ class SchemaLocalization {
69390
+ _provider;
69391
+ _locale;
69392
+ _cache = new Map();
69393
+ constructor(provider, locale) {
69394
+ this._provider = provider;
69395
+ this._locale = locale;
69396
+ }
69397
+ get _baseLocale() {
69398
+ return this._locale.includes("-") ? this._locale.split("-")[0] : undefined;
69399
+ }
69400
+ cacheKey(schemaName, locale) {
69401
+ return `${schemaName}:${locale}`;
69402
+ }
69403
+ /**
69404
+ * Create a SchemaLocalization instance and pre-load localization files for the given schemas.
69405
+ * @param provider The localization provider to use for loading localization files
69406
+ * @param locale The target locale (e.g., "de", "fr", "es-CO")
69407
+ * @param schemas The schemas whose localization should be pre-loaded
69408
+ */
69409
+ static async create(provider, locale, schemaKeys) {
69410
+ const localization = new SchemaLocalization(provider, locale);
69411
+ await localization.loadLocalizations(schemaKeys);
69412
+ return localization;
69413
+ }
69414
+ get locale() {
69415
+ return this._locale;
69416
+ }
69417
+ setLocale(locale) {
69418
+ this._locale = locale;
69419
+ this._cache.clear();
69420
+ }
69421
+ /**
69422
+ * Get localization provider.
69423
+ */
69424
+ get provider() {
69425
+ return this._provider;
69426
+ }
69427
+ /**
69428
+ * Load localizations for the given schema keys.
69429
+ * @param schemaKeys The schema keys to load localization for
69430
+ */
69431
+ async loadLocalizations(schemaKeys) {
69432
+ const promises = [];
69433
+ for (const key of schemaKeys) {
69434
+ promises.push(this.loadLocalizationInfo(key.name, key.readVersion, this._locale));
69435
+ if (this._baseLocale !== undefined)
69436
+ promises.push(this.loadLocalizationInfo(key.name, key.readVersion, this._baseLocale));
69437
+ }
69438
+ await Promise.all(promises);
69439
+ }
69440
+ /**
69441
+ * Get a localized label for a schema, schema item, or member.
69442
+ */
69443
+ getLabel(schemaName, itemName, memberName) {
69444
+ const localization = this.getCachedLocalization(schemaName, this._locale);
69445
+ const label = this.resolveLabel(localization, itemName, memberName);
69446
+ if (label)
69447
+ return label;
69448
+ if (this._baseLocale) {
69449
+ const baseLocalization = this.getCachedLocalization(schemaName, this._baseLocale);
69450
+ return this.resolveLabel(baseLocalization, itemName, memberName);
69451
+ }
69452
+ return undefined;
69453
+ }
69454
+ /**
69455
+ * Get a localized description for a schema, schema item, or member.
69456
+ */
69457
+ getDescription(schemaName, itemName, memberName) {
69458
+ const localization = this.getCachedLocalization(schemaName, this._locale);
69459
+ const description = this.resolveDescription(localization, itemName, memberName);
69460
+ if (description)
69461
+ return description;
69462
+ if (this._baseLocale) {
69463
+ const baseLocalization = this.getCachedLocalization(schemaName, this._baseLocale);
69464
+ return this.resolveDescription(baseLocalization, itemName, memberName);
69465
+ }
69466
+ return undefined;
69467
+ }
69468
+ /**
69469
+ * Get localized label and description of a schema.
69470
+ * Label fallback: localized label → base locale label → original label → schema name
69471
+ * Description fallback: localized description → base locale description → original description
69472
+ */
69473
+ getLocalizedSchema(schema) {
69474
+ const label = this.getLabel(schema.name) ?? (schema.label || schema.name);
69475
+ const description = this.getDescription(schema.name) ?? schema.description;
69476
+ return { label, description };
69477
+ }
69478
+ /**
69479
+ * Get localized label and description of a schema item (class, enumeration, unit, etc.).
69480
+ * Label fallback: localized label → base locale label → original label → item name
69481
+ * Description fallback: localized description → base locale description → original description
69482
+ */
69483
+ getLocalizedSchemaItem(item) {
69484
+ const label = this.getLabel(item.schema.name, item.name) ?? (item.label || item.name);
69485
+ const description = this.getDescription(item.schema.name, item.name) ?? item.description;
69486
+ return { label, description };
69487
+ }
69488
+ /**
69489
+ * Get localized label and description of a property.
69490
+ * Label fallback: localized label → base locale label → original label → property name
69491
+ * Description fallback: localized description → base locale description → original description
69492
+ */
69493
+ getLocalizedProperty(ecClass, property) {
69494
+ const label = this.getLabel(ecClass.schema.name, ecClass.name, property.name) ?? (property.label || property.name);
69495
+ const description = this.getDescription(ecClass.schema.name, ecClass.name, property.name) ?? property.description;
69496
+ return { label, description };
69497
+ }
69498
+ /**
69499
+ * Get localized label and description of an enumerator.
69500
+ * Label fallback: localized label → base locale label → original label → enumerator name
69501
+ * Description fallback: localized description → base locale description → original description
69502
+ */
69503
+ getLocalizedEnumerator(enumeration, enumerator) {
69504
+ const label = this.getLabel(enumeration.schema.name, enumeration.name, enumerator.name) ?? (enumerator.label || enumerator.name);
69505
+ const description = this.getDescription(enumeration.schema.name, enumeration.name, enumerator.name) ?? enumerator.description;
69506
+ return { label, description };
69507
+ }
69508
+ /**
69509
+ * Load localization information for a specific schema and locale.
69510
+ */
69511
+ async loadLocalizationInfo(schemaName, readVersion, locale) {
69512
+ const cacheKey = this.cacheKey(schemaName, locale);
69513
+ if (this._cache.has(cacheKey))
69514
+ return;
69515
+ const localization = await this._provider.getLocalization(schemaName, locale);
69516
+ if (localization?.version) {
69517
+ const localizationMajor = this.getMajorVersion(localization.version);
69518
+ if (localizationMajor === undefined || readVersion !== localizationMajor) {
69519
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(loggerCategory, `Localization version mismatch for schema "${schemaName}". Schema major version is ${readVersion.toString()}, but localization is for major version ${localizationMajor?.toString() ?? "undefined"}.`);
69520
+ this._cache.set(cacheKey, undefined);
69521
+ return;
69522
+ }
69523
+ }
69524
+ this._cache.set(cacheKey, localization);
69525
+ }
69526
+ /**
69527
+ * Get major version from version string
69528
+ */
69529
+ getMajorVersion(version) {
69530
+ const rawVersion = version.split(".");
69531
+ if (rawVersion.length > 0) {
69532
+ const majorVersion = parseInt(rawVersion[0], 10);
69533
+ return isNaN(majorVersion) ? undefined : majorVersion;
69534
+ }
69535
+ return undefined;
69536
+ }
69537
+ /**
69538
+ * Retrieve the cached localization for a locale
69539
+ */
69540
+ getCachedLocalization(schemaName, locale) {
69541
+ const cacheKey = this.cacheKey(schemaName, locale);
69542
+ return this._cache.get(cacheKey);
69543
+ }
69544
+ /**
69545
+ * Resolve a label from a localization object by item and optional member path.
69546
+ */
69547
+ resolveLabel(localization, itemName, memberName) {
69548
+ if (!localization)
69549
+ return undefined;
69550
+ if (!itemName)
69551
+ return localization.label;
69552
+ const item = localization.items?.[itemName];
69553
+ if (!memberName)
69554
+ return item?.label;
69555
+ return item?.members?.[memberName]?.label;
69556
+ }
69557
+ /**
69558
+ * Resolve a description from a localization object by item and optional member path.
69559
+ */
69560
+ resolveDescription(localization, itemName, memberName) {
69561
+ if (!localization)
69562
+ return undefined;
69563
+ if (!itemName)
69564
+ return localization.description;
69565
+ const item = localization.items?.[itemName];
69566
+ if (!memberName)
69567
+ return item?.description;
69568
+ return item?.members?.[memberName]?.description;
69569
+ }
69570
+ }
69571
+
69572
+
69286
69573
  /***/ }),
69287
69574
 
69288
69575
  /***/ "../../core/ecschema-metadata/lib/esm/Metadata/Class.js":
@@ -78085,6 +78372,7 @@ __webpack_require__.r(__webpack_exports__);
78085
78372
  /* harmony export */ IncrementalSchemaLocater: () => (/* reexport safe */ _IncrementalLoading_IncrementalSchemaLocater__WEBPACK_IMPORTED_MODULE_40__.IncrementalSchemaLocater),
78086
78373
  /* harmony export */ InvertedUnit: () => (/* reexport safe */ _Metadata_InvertedUnit__WEBPACK_IMPORTED_MODULE_17__.InvertedUnit),
78087
78374
  /* harmony export */ KindOfQuantity: () => (/* reexport safe */ _Metadata_KindOfQuantity__WEBPACK_IMPORTED_MODULE_18__.KindOfQuantity),
78375
+ /* harmony export */ LocalizationProvider: () => (/* reexport safe */ _Localization_LocalizationProvider__WEBPACK_IMPORTED_MODULE_46__.LocalizationProvider),
78088
78376
  /* harmony export */ Mixin: () => (/* reexport safe */ _Metadata_Mixin__WEBPACK_IMPORTED_MODULE_19__.Mixin),
78089
78377
  /* harmony export */ NavigationProperty: () => (/* reexport safe */ _Metadata_Property__WEBPACK_IMPORTED_MODULE_22__.NavigationProperty),
78090
78378
  /* harmony export */ OverrideFormat: () => (/* reexport safe */ _Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_20__.OverrideFormat),
@@ -78114,6 +78402,7 @@ __webpack_require__.r(__webpack_exports__);
78114
78402
  /* harmony export */ SchemaJsonLocater: () => (/* reexport safe */ _SchemaJsonLocater__WEBPACK_IMPORTED_MODULE_30__.SchemaJsonLocater),
78115
78403
  /* harmony export */ SchemaKey: () => (/* reexport safe */ _SchemaKey__WEBPACK_IMPORTED_MODULE_31__.SchemaKey),
78116
78404
  /* harmony export */ SchemaLoader: () => (/* reexport safe */ _SchemaLoader__WEBPACK_IMPORTED_MODULE_32__.SchemaLoader),
78405
+ /* harmony export */ SchemaLocalization: () => (/* reexport safe */ _Localization_SchemaLocalization__WEBPACK_IMPORTED_MODULE_47__.SchemaLocalization),
78117
78406
  /* harmony export */ SchemaMatchType: () => (/* reexport safe */ _ECObjects__WEBPACK_IMPORTED_MODULE_8__.SchemaMatchType),
78118
78407
  /* harmony export */ SchemaPartVisitorDelegate: () => (/* reexport safe */ _SchemaPartVisitorDelegate__WEBPACK_IMPORTED_MODULE_36__.SchemaPartVisitorDelegate),
78119
78408
  /* harmony export */ SchemaReadHelper: () => (/* reexport safe */ _Deserialization_Helper__WEBPACK_IMPORTED_MODULE_5__.SchemaReadHelper),
@@ -78197,6 +78486,9 @@ __webpack_require__.r(__webpack_exports__);
78197
78486
  /* harmony import */ var _SchemaViewBinaryReader__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./SchemaViewBinaryReader */ "../../core/ecschema-metadata/lib/esm/SchemaViewBinaryReader.js");
78198
78487
  /* harmony import */ var _SchemaView__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./SchemaView */ "../../core/ecschema-metadata/lib/esm/SchemaView.js");
78199
78488
  /* harmony import */ var _SchemaViewInterfaces__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./SchemaViewInterfaces */ "../../core/ecschema-metadata/lib/esm/SchemaViewInterfaces.js");
78489
+ /* harmony import */ var _Localization_LocalizationTypes__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./Localization/LocalizationTypes */ "../../core/ecschema-metadata/lib/esm/Localization/LocalizationTypes.js");
78490
+ /* harmony import */ var _Localization_LocalizationProvider__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./Localization/LocalizationProvider */ "../../core/ecschema-metadata/lib/esm/Localization/LocalizationProvider.js");
78491
+ /* harmony import */ var _Localization_SchemaLocalization__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./Localization/SchemaLocalization */ "../../core/ecschema-metadata/lib/esm/Localization/SchemaLocalization.js");
78200
78492
  /*---------------------------------------------------------------------------------------------
78201
78493
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
78202
78494
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -78242,6 +78534,9 @@ __webpack_require__.r(__webpack_exports__);
78242
78534
 
78243
78535
 
78244
78536
 
78537
+
78538
+
78539
+
78245
78540
 
78246
78541
 
78247
78542
 
@@ -91427,6 +91722,10 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
91427
91722
  createQueryReader(ecsql, params, config) {
91428
91723
  const executor = {
91429
91724
  execute: async (request) => {
91725
+ // Best-effort guard for the common case where the connection closes before iteration starts.
91726
+ if (!this.isOpen) {
91727
+ return { status: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.DbResponseStatus.NotOpen, data: [], meta: [], rowCount: 0, stats: { cpuTime: 0, totalTime: 0, memUsed: 0, prepareTime: 0, timeLimit: 0, memLimit: 0 }, kind: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.DbResponseKind.ECSql };
91728
+ }
91430
91729
  return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelReadRpcInterface.getClientForRouting(this.routingContext.token).queryRows(this.getRpcProps(), request);
91431
91730
  },
91432
91731
  };
@@ -193235,7 +193534,7 @@ class BSplineCurve3dBase extends _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_
193235
193534
  }
193236
193535
  /**
193237
193536
  * Return the number of Bezier spans in the curve. Note that this number includes the number of null
193238
- * spans at repeated knows.
193537
+ * spans at repeated knots.
193239
193538
  */
193240
193539
  get numSpan() {
193241
193540
  return this._bcurve.numSpan;
@@ -199529,7 +199828,7 @@ class BooleanClipNode {
199529
199828
  }
199530
199829
  }
199531
199830
  /**
199532
- * Implement [BooleanClipNode] virtual methods for intersection (boolean OR) among children.
199831
+ * Implement [BooleanClipNode] virtual methods for union (boolean OR) among children.
199533
199832
  * @internal
199534
199833
  */
199535
199834
  class BooleanClipNodeUnion extends BooleanClipNode {
@@ -199555,7 +199854,7 @@ class BooleanClipNodeUnion extends BooleanClipNode {
199555
199854
  }
199556
199855
  }
199557
199856
  /**
199558
- * Implement [BooleanClipNode] virtual methods for intersection (boolean OR) among children.
199857
+ * Implement [BooleanClipNode] virtual methods for parity (boolean XOR) among children.
199559
199858
  * @internal
199560
199859
  */
199561
199860
  class BooleanClipNodeParity extends BooleanClipNode {
@@ -199836,11 +200135,17 @@ class ClipPlane extends _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_1__.Plane3d
199836
200135
  get inwardNormalRef() {
199837
200136
  return this._inwardNormal;
199838
200137
  }
199839
- /** Return the "interior" property flag. Interpretation of this flag is algorithm-specific. */
200138
+ /**
200139
+ * Return the "interior" property flag. Interpretation of this flag is algorithm-specific.
200140
+ * * One way this flag is used is to indicate a plane that has been added to partition the exterior region of a masked ClipShape.
200141
+ */
199840
200142
  get interior() {
199841
200143
  return this._interior;
199842
200144
  }
199843
- /** Return the "invisible" property flag. Interpretation of this flag is algorithm-specific. */
200145
+ /**
200146
+ * Return the "invisible" property flag. Interpretation of this flag is algorithm-specific.
200147
+ * * One way this flag is used is to indicate a plane that should not be used to compute intersection edges.
200148
+ */
199844
200149
  get invisible() {
199845
200150
  return this._invisible;
199846
200151
  }
@@ -200318,30 +200623,27 @@ var ClipMaskXYZRangePlanes;
200318
200623
  ClipMaskXYZRangePlanes[ClipMaskXYZRangePlanes["All"] = 63] = "All";
200319
200624
  })(ClipMaskXYZRangePlanes || (ClipMaskXYZRangePlanes = {}));
200320
200625
  /**
200321
- * * ClipPrimitive is a base class for clipping implementations that use
200322
- * * A UnionOfConvexClipPlaneSets designated "clipPlanes".
200626
+ * * ClipPrimitive is a base class for clipping implementations that use:
200627
+ * * A [[UnionOfConvexClipPlaneSets]] designated "clipPlanes".
200323
200628
  * * An "invisible" flag.
200324
- * * When constructed directly, objects of type ClipPrimitive (directly, not through a derived class) will have just planes.
200325
- * * Derived classes (e.g. ClipShape) carry additional data such as a swept shape.
200326
- * * ClipPrimitive can be constructed with no planes.
200327
- * * Derived class is responsible for filling the plane sets.
200328
- * * At discretion of derived classes, plane construction can be done at construction time or "on demand when" queries
200329
- * call `ensurePlaneSets ()`
200330
- * * ClipPrimitive can be constructed directly with planes (and no derived class).
200331
- * * The prevailing use is via a ClipShape derived class.
200332
- * * The ClipShape has an "isMask" property
200333
- * * isMask === false means the plane sets should cover the inside of its polygon.
200334
- * * isMask === true means the plane sets should cover the outside of its polygon.
200335
- * * Note that the ClipShape's `isMask` property and the ClipPrimitive's `isInvisible` property are distinct controls.
200336
- * * In normal usage, callers get "outside" clip behavior using ONLY the ClipShape isMask property.
200337
- * * The ClipShape happens to pass the _invisible bit down to ClipPlanes that it creates.
200338
- * * At that level, the flag controls whether the cut edges are produced on the plane
200629
+ * * A ClipPrimitive can be constructed with or without planes. If without planes:
200630
+ * * The derived class is responsible for filling the plane sets.
200631
+ * * The derived class can populate the plane sets at construction time or afterwards with [[ClipPrimitive.ensurePlaneSets]].
200632
+ * * The prevailing use is via derived class [[ClipShape]].
200633
+ * * A ClipShape carries a swept shape that generates the planes.
200634
+ * * A ClipShape has an `isMask` property
200635
+ * * `isMask === false` means the plane sets should cover the inside of its polygon.
200636
+ * * `isMask === true` means the plane sets should cover the outside of its polygon, i.e., the ClipShape acts as a hole.
200637
+ * * Note that the ClipShape's `isMask` property and the ClipPrimitive's `invisible` property are distinct flags.
200638
+ * * In normal usage, callers get "outside" clip behavior using ONLY the ClipShape `isMask` property.
200639
+ * * The ClipShape passes its `invisible` flag down to ClipPlanes that it creates.
200640
+ * * At that level, this flag controls whether cut edges are produced on the planes.
200339
200641
  * @public
200340
200642
  */
200341
200643
  class ClipPrimitive {
200342
- /** The (union of) convex regions. */
200644
+ /** The union of convex regions. */
200343
200645
  _clipPlanes;
200344
- /** If true, pointInside inverts the sense of the pointInside for the _clipPlanes. */
200646
+ /** The invisible flag of the primitive, passed down to the clip planes. */
200345
200647
  _invisible;
200346
200648
  /**
200347
200649
  * Get a reference to the `UnionOfConvexClipPlaneSets`.
@@ -200352,7 +200654,7 @@ class ClipPrimitive {
200352
200654
  this.ensurePlaneSets();
200353
200655
  return this._clipPlanes;
200354
200656
  }
200355
- /** Ask if this primitive is a hole. */
200657
+ /** Return whether this primitive is invisible. */
200356
200658
  get invisible() {
200357
200659
  return this._invisible;
200358
200660
  }
@@ -200488,7 +200790,7 @@ class ClipPrimitive {
200488
200790
  this._clipPlanes.transformInPlace(transform);
200489
200791
  return true;
200490
200792
  }
200491
- /** Sets both the clip plane set and the mask set visibility */
200793
+ /** Sets the primitive visibility. */
200492
200794
  setInvisible(invisible) {
200493
200795
  this._invisible = invisible;
200494
200796
  }
@@ -200509,24 +200811,14 @@ class ClipPrimitive {
200509
200811
  /**
200510
200812
  * Quick test of whether the given points fall completely inside or outside.
200511
200813
  * @param points points to test.
200512
- * @param ignoreInvisibleSetting if true, do the test with the clip planes and return that, ignoring the
200513
- * invisible setting.
200814
+ * @param _ignoreMasks unused. The [[ClipShape]] override inverts this test when `ignoreMasks` is false and the instance is masked.
200514
200815
  */
200515
- classifyPointContainment(points, ignoreInvisibleSetting) {
200816
+ classifyPointContainment(points, _ignoreMasks = true) {
200516
200817
  this.ensurePlaneSets();
200517
200818
  const planes = this._clipPlanes;
200518
200819
  let inside = _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.StronglyInside;
200519
200820
  if (planes)
200520
200821
  inside = planes.classifyPointContainment(points, false);
200521
- if (this._invisible && !ignoreInvisibleSetting)
200522
- switch (inside) {
200523
- case _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.StronglyInside:
200524
- return _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.StronglyOutside;
200525
- case _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.StronglyOutside:
200526
- return _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.StronglyInside;
200527
- case _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.Ambiguous:
200528
- return _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.Ambiguous;
200529
- }
200530
200822
  return inside;
200531
200823
  }
200532
200824
  /**
@@ -200942,8 +201234,8 @@ class ClipShape extends ClipPrimitive {
200942
201234
  if (nextPerpendicular)
200943
201235
  convexSet.addPlaneToConvexSet(_ClipPlane__WEBPACK_IMPORTED_MODULE_9__.ClipPlane.createNormalAndPoint(nextPerpendicular, nextEdge.pointA, this._invisible, true));
200944
201236
  set.addConvexSet(convexSet);
200945
- set.addOutsideZClipSets(this._invisible, this._zLow, this._zHigh);
200946
201237
  }
201238
+ set.addOutsideZClipSets(this._invisible, this._zLow, this._zHigh);
200947
201239
  }
200948
201240
  else {
200949
201241
  const convexSet = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_2__.ConvexClipPlaneSet.createEmpty();
@@ -200983,7 +201275,7 @@ class ClipShape extends ClipPrimitive {
200983
201275
  if (!node.isMaskSet(_topology_Graph__WEBPACK_IMPORTED_MODULE_11__.HalfEdgeMask.EXTERIOR))
200984
201276
  return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Point3d.create(node.x, node.y, 0);
200985
201277
  });
200986
- // parseConvexPolygonPlanes expects a closed loop (pushing the reference doesn't matter)
201278
+ // parseConvexPolygonPlanes expects a closed loop
200987
201279
  convexFacetPoints.push(convexFacetPoints[0].clone());
200988
201280
  const direction = _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.testXYPolygonTurningDirections(convexFacetPoints); // ###TODO: Can we expect a direction coming out of graph facet?
200989
201281
  this.parseConvexPolygonPlanes(set, convexFacetPoints, direction, false, cameraFocalLength);
@@ -201073,6 +201365,28 @@ class ClipShape extends ClipPrimitive {
201073
201365
  if (this._transformFromClip !== undefined)
201074
201366
  this._transformFromClip.multiplyPoint3d(point, point);
201075
201367
  }
201368
+ /**
201369
+ * Quick test of whether the given points fall completely inside or outside.
201370
+ * @param points points to test.
201371
+ * @param ignoreMasks if false, invert the containment test on a masked (hole) instance; otherwise perform the containment test as usual.
201372
+ */
201373
+ classifyPointContainment(points, ignoreMasks) {
201374
+ this.ensurePlaneSets();
201375
+ const planes = this._clipPlanes;
201376
+ let inside = _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.StronglyInside;
201377
+ if (planes)
201378
+ inside = planes.classifyPointContainment(points, false);
201379
+ if (this._isMask && !ignoreMasks)
201380
+ switch (inside) {
201381
+ case _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.StronglyInside:
201382
+ return _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.StronglyOutside;
201383
+ case _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.StronglyOutside:
201384
+ return _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.StronglyInside;
201385
+ case _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.Ambiguous:
201386
+ return _ClipUtils__WEBPACK_IMPORTED_MODULE_4__.ClipPlaneContainment.Ambiguous;
201387
+ }
201388
+ return inside;
201389
+ }
201076
201390
  }
201077
201391
 
201078
201392
 
@@ -201256,7 +201570,7 @@ class ClipUtilities {
201256
201570
  static collectClippedCurves(curve, clipper) {
201257
201571
  const result = [];
201258
201572
  curve.announceClipIntervals(clipper, (fraction0, fraction1, curveA) => {
201259
- if (fraction1 !== fraction0) {
201573
+ if (fraction0 !== fraction1) {
201260
201574
  const partialCurve = curveA.clonePartialCurve(fraction0, fraction1);
201261
201575
  if (partialCurve)
201262
201576
  result.push(partialCurve);
@@ -202467,9 +202781,10 @@ class ClipVector {
202467
202781
  return true;
202468
202782
  }
202469
202783
  /**
202470
- * Determines whether the given points fall inside or outside this set of ClipShapes. If any set is defined
202471
- * by masking planes, checks the mask planes only, provided that ignoreMasks is false. Otherwise, checks the
202472
- * _clipPlanes member.
202784
+ * Determines whether the given points fall inside or outside this set of ClipPrimitives.
202785
+ * @param points the points to test.
202786
+ * @param ignoreMasks if false (default), the containment test for each masked ClipShape primitive is inverted.
202787
+ * If true, no inversion is performed.
202473
202788
  */
202474
202789
  classifyPointContainment(points, ignoreMasks = false) {
202475
202790
  let currentContainment = _ClipUtils__WEBPACK_IMPORTED_MODULE_6__.ClipPlaneContainment.Ambiguous;
@@ -203728,12 +204043,12 @@ class UnionOfConvexClipPlaneSets {
203728
204043
  addOutsideZClipSets(invisible, zLow, zHigh) {
203729
204044
  if (zLow) {
203730
204045
  const convexSet = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_0__.ConvexClipPlaneSet.createEmpty();
203731
- convexSet.addZClipPlanes(invisible, zLow);
204046
+ convexSet.addZClipPlanes(invisible, undefined, zLow);
203732
204047
  this._convexSets.push(convexSet);
203733
204048
  }
203734
204049
  if (zHigh) {
203735
204050
  const convexSet = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_0__.ConvexClipPlaneSet.createEmpty();
203736
- convexSet.addZClipPlanes(invisible, undefined, zHigh);
204051
+ convexSet.addZClipPlanes(invisible, zHigh);
203737
204052
  this._convexSets.push(convexSet);
203738
204053
  }
203739
204054
  }
@@ -204179,12 +204494,14 @@ __webpack_require__.r(__webpack_exports__);
204179
204494
  /* harmony export */ RegionOps: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_81__.RegionOps),
204180
204495
  /* harmony export */ ReusableObjectCache: () => (/* reexport safe */ _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_31__.ReusableObjectCache),
204181
204496
  /* harmony export */ RotationalSweep: () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_93__.RotationalSweep),
204497
+ /* harmony export */ RotationalSweepConstructiveFrameOptions: () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_93__.RotationalSweepConstructiveFrameOptions),
204182
204498
  /* harmony export */ RuledSweep: () => (/* reexport safe */ _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_94__.RuledSweep),
204183
204499
  /* harmony export */ Segment1d: () => (/* reexport safe */ _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_32__.Segment1d),
204184
204500
  /* harmony export */ SerializationHelpers: () => (/* reexport safe */ _serialization_SerializationHelpers__WEBPACK_IMPORTED_MODULE_132__.SerializationHelpers),
204185
204501
  /* harmony export */ SmallSystem: () => (/* reexport safe */ _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_58__.SmallSystem),
204186
204502
  /* harmony export */ SmoothTransformBetweenFrusta: () => (/* reexport safe */ _geometry3d_FrustumAnimation__WEBPACK_IMPORTED_MODULE_7__.SmoothTransformBetweenFrusta),
204187
204503
  /* harmony export */ SolidPrimitive: () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_95__.SolidPrimitive),
204504
+ /* harmony export */ SolidPrimitiveConstructiveFrameOptions: () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_95__.SolidPrimitiveConstructiveFrameOptions),
204188
204505
  /* harmony export */ SortableEdge: () => (/* reexport safe */ _polyface_IndexedEdgeMatcher__WEBPACK_IMPORTED_MODULE_116__.SortableEdge),
204189
204506
  /* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_129__.SpacePolygonTriangulation),
204190
204507
  /* harmony export */ Sphere: () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_96__.Sphere),
@@ -216253,7 +216570,7 @@ class RegionOps {
216253
216570
  * Return an area tolerance for a given xy-range and optional distance tolerance.
216254
216571
  * @param range range of planar region to tolerance.
216255
216572
  * @param distanceTolerance optional absolute distance tolerance.
216256
- */
216573
+ */
216257
216574
  static computeXYAreaTolerance(range, distanceTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallMetricDistance) {
216258
216575
  // ensure the result is nonzero: we never want to report a zero-area loop as a signed-area loop
216259
216576
  if (distanceTolerance === 0)
@@ -280366,6 +280683,8 @@ class BentleyGeometryFlatBuffer {
280366
280683
  constructor() { }
280367
280684
  /**
280368
280685
  * Serialize bytes to a flatbuffer.
280686
+ * @param data geometry to serialize
280687
+ * @param addVersionSignature whether to prepend a version signature to the output bytes. Pass `true` for iModel FB geometry streams.
280369
280688
  * @public
280370
280689
  */
280371
280690
  static geometryToBytes(data, addVersionSignature = false) {
@@ -280373,8 +280692,9 @@ class BentleyGeometryFlatBuffer {
280373
280692
  }
280374
280693
  /**
280375
280694
  * Deserialize bytes from a flatbuffer.
280376
- * @public
280377
- * @param justTheBytes FlatBuffer bytes as created by BGFBWriter.createFlatBuffer (g);
280695
+ * @param justTheBytes FlatBuffer bytes as created by BGFBWriter.createFlatBuffer
280696
+ * @param hasVersionSignature Whether the input bytes include a version prefix. Pass `true` for iModel FB geometry streams.
280697
+ * @public
280378
280698
  */
280379
280699
  static bytesToGeometry(justTheBytes, hasVersionSignature = false) {
280380
280700
  return _BGFBReader__WEBPACK_IMPORTED_MODULE_1__.BGFBReader.bytesToGeometry(justTheBytes, hasVersionSignature ? signatureBytes : undefined);
@@ -283606,7 +283926,8 @@ class LinearSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrim
283606
283926
  "use strict";
283607
283927
  __webpack_require__.r(__webpack_exports__);
283608
283928
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
283609
- /* harmony export */ RotationalSweep: () => (/* binding */ RotationalSweep)
283929
+ /* harmony export */ RotationalSweep: () => (/* binding */ RotationalSweep),
283930
+ /* harmony export */ RotationalSweepConstructiveFrameOptions: () => (/* binding */ RotationalSweepConstructiveFrameOptions)
283610
283931
  /* harmony export */ });
283611
283932
  /* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
283612
283933
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
@@ -283626,6 +283947,22 @@ __webpack_require__.r(__webpack_exports__);
283626
283947
 
283627
283948
 
283628
283949
 
283950
+ /**
283951
+ * Options for [[RotationalSweep.getConstructiveFrame]].
283952
+ * @public
283953
+ */
283954
+ class RotationalSweepConstructiveFrameOptions extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimitiveConstructiveFrameOptions {
283955
+ /**
283956
+ * Though the y-axis of the frame returned by [[RotationalSweep.getConstructiveFrame]] is perpendicular to the
283957
+ * contour plane, it can point in one of two directions. This option allows the caller to control this direction.
283958
+ * * If `false` (default), the y-axis of the frame is the normal reported by the contour. This direction is
283959
+ * independent of the solid's sweep direction.
283960
+ * * If `true`, the y-axis of the frame is aligned to the solid's sweep direction: specifically, it points in the
283961
+ * direction of positive sweep. With this choice, columns 0, 1 of the returned frame can be used to construct the
283962
+ * `vector0` and `vector90` vectors needed to construct a centerline arc for the solid.
283963
+ */
283964
+ alignToSweep;
283965
+ }
283629
283966
  /**
283630
283967
  * A RotationalSweep is:
283631
283968
  * * A planar contour (any Loop, Path, or parityRegion)
@@ -283648,8 +283985,8 @@ class RotationalSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.Solid
283648
283985
  this._sweepAngle = sweepAngle;
283649
283986
  }
283650
283987
  /**
283651
- * Create a rotational sweep.
283652
- * @param contour profile to sweep, coplanar with axis (CAPTURED).
283988
+ * Create a rotational sweep. All input objects are CAPTURED.
283989
+ * @param contour profile to sweep, coplanar with axis.
283653
283990
  * @param axis rotation axis.
283654
283991
  * @param sweepAngle signed angular sweep.
283655
283992
  * @param capped whether to cap the surface to make a solid.
@@ -283668,8 +284005,14 @@ class RotationalSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.Solid
283668
284005
  * * z direction along the rotation ray.
283669
284006
  * * y direction perpendicular to the base contour plane.
283670
284007
  */
283671
- getConstructiveFrame() {
284008
+ getConstructiveFrame(options) {
283672
284009
  const contourPerpendicular = this._contour.localToWorld.matrix.columnZ();
284010
+ if (options?.alignToSweep) {
284011
+ const center = this._contour.curves.range().diagonalFractionToPoint(0.5); // ASSUME: contour range center is off the axis
284012
+ const toCenter = this._normalizedAxis.perpendicularPartOfVectorToTarget(center);
284013
+ if (this._normalizedAxis.direction.tripleProduct(toCenter, contourPerpendicular) < 0)
284014
+ contourPerpendicular.negate(contourPerpendicular);
284015
+ }
283673
284016
  const axes = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.createRigidFromColumns(contourPerpendicular, this._normalizedAxis.direction, _Geometry__WEBPACK_IMPORTED_MODULE_3__.AxisOrder.YZX);
283674
284017
  if (axes) {
283675
284018
  return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_4__.Transform.createOriginAndMatrix(this._normalizedAxis.origin, axes);
@@ -284034,7 +284377,8 @@ class RuledSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimi
284034
284377
  "use strict";
284035
284378
  __webpack_require__.r(__webpack_exports__);
284036
284379
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
284037
- /* harmony export */ SolidPrimitive: () => (/* binding */ SolidPrimitive)
284380
+ /* harmony export */ SolidPrimitive: () => (/* binding */ SolidPrimitive),
284381
+ /* harmony export */ SolidPrimitiveConstructiveFrameOptions: () => (/* binding */ SolidPrimitiveConstructiveFrameOptions)
284038
284382
  /* harmony export */ });
284039
284383
  /* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
284040
284384
  /*---------------------------------------------------------------------------------------------
@@ -284042,6 +284386,12 @@ __webpack_require__.r(__webpack_exports__);
284042
284386
  * See LICENSE.md in the project root for license terms and full copyright notice.
284043
284387
  *--------------------------------------------------------------------------------------------*/
284044
284388
 
284389
+ /**
284390
+ * Options for [[SolidPrimitive.getConstructiveFrame]], extended by subclasses.
284391
+ * @public
284392
+ */
284393
+ class SolidPrimitiveConstructiveFrameOptions {
284394
+ }
284045
284395
  /**
284046
284396
  * Base class for SolidPrimitive variants.
284047
284397
  * * The base class holds capped flag for all derived classes.
@@ -331340,7 +331690,7 @@ var loadLanguages = instance.loadLanguages;
331340
331690
  /***/ ((module) => {
331341
331691
 
331342
331692
  "use strict";
331343
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.11.0-dev.3","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers && npm run -s copy:draco","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","copy:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts && npm run -s extract","extract":"betools extract --fileExt=ts --extractFrom=./src/test/example-code --recursive --out=../../generated-docs/extract","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@bentley/aec-units-schema":"^1.0.3","@bentley/formats-schema":"^1.0.0","@bentley/units-schema":"^1.0.10","@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/object-storage-core":"^3.0.4","@itwin/eslint-plugin":"^6.0.0","@types/chai-as-promised":"^7","@types/draco3d":"^1.4.10","@types/sinon":"^17.0.2","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.31.0","glob":"^10.5.0","playwright":"~1.56.1","rimraf":"^6.0.1","sinon":"^17.0.2","source-map-loader":"^5.0.0","typescript":"~5.6.2","vitest":"^3.0.6","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"~4.3.4","@loaders.gl/draco":"~4.3.4","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
331693
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.11.0-dev.5","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers && npm run -s copy:draco","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","copy:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts && npm run -s extract","extract":"betools extract --fileExt=ts --extractFrom=./src/test/example-code --recursive --out=../../generated-docs/extract","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@bentley/aec-units-schema":"^1.0.3","@bentley/formats-schema":"^1.0.0","@bentley/units-schema":"^1.0.10","@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/object-storage-core":"^3.0.4","@itwin/eslint-plugin":"^6.0.0","@types/chai-as-promised":"^7","@types/draco3d":"^1.4.10","@types/sinon":"^17.0.2","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.31.0","glob":"^10.5.0","playwright":"~1.56.1","rimraf":"^6.0.1","sinon":"^17.0.2","source-map-loader":"^5.0.0","typescript":"~5.6.2","vitest":"^3.0.6","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"~4.3.4","@loaders.gl/draco":"~4.3.4","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
331344
331694
 
331345
331695
  /***/ })
331346
331696