@itwin/rpcinterface-full-stack-tests 4.10.0-dev.10 → 4.10.0-dev.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"_bea9.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\18\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.1.6\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"_bea9.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\4\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.1.6\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
@@ -61560,6 +61560,9 @@ class SnapshotIModelRpcInterface extends _RpcInterface__WEBPACK_IMPORTED_MODULE_
61560
61560
  NOTE: Please consult the README in this folder for the semantic versioning rules.
61561
61561
  ===========================================================================================*/
61562
61562
  async openFile(_filePath, _opts) { return this.forward(arguments); }
61563
+ /**
61564
+ * @deprecated in 4.10. Use [[CheckpointConnection.openRemote]].
61565
+ */
61563
61566
  async openRemote(_key, _opts) { return this.forward(arguments); }
61564
61567
  async close(_iModelRpcProps) { return this.forward(arguments); }
61565
61568
  }
@@ -88914,11 +88917,12 @@ class SnapshotConnection extends IModelConnection {
88914
88917
  }
88915
88918
  /** Open an IModelConnection to a remote read-only snapshot iModel from a key that will be resolved by the backend.
88916
88919
  * @note This method is intended for web applications.
88920
+ * @deprecated in 4.10. Use [[CheckpointConnection.openRemote]].
88917
88921
  */
88918
88922
  static async openRemote(fileKey) {
88919
88923
  const routingContext = _IModelRoutingContext__WEBPACK_IMPORTED_MODULE_6__.IModelRoutingContext.current || _IModelRoutingContext__WEBPACK_IMPORTED_MODULE_6__.IModelRoutingContext["default"];
88920
88924
  _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RpcManager.setIModel({ iModelId: "undefined", key: fileKey });
88921
- const openResponse = await _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.SnapshotIModelRpcInterface.getClientForRouting(routingContext.token).openRemote(fileKey);
88925
+ const openResponse = await _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.SnapshotIModelRpcInterface.getClientForRouting(routingContext.token).openRemote(fileKey); // eslint-disable-line deprecation/deprecation
88922
88926
  _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace(loggerCategory, "SnapshotConnection.openRemote", () => ({ fileKey }));
88923
88927
  const connection = new SnapshotConnection(openResponse);
88924
88928
  connection.routingContext = routingContext;
@@ -291652,6 +291656,7 @@ var QuantityStatus;
291652
291656
  QuantityStatus[QuantityStatus["UnableToConvertParseTokensToQuantity"] = 35046] = "UnableToConvertParseTokensToQuantity";
291653
291657
  QuantityStatus[QuantityStatus["UnsupportedUnit"] = 35047] = "UnsupportedUnit";
291654
291658
  QuantityStatus[QuantityStatus["MissingRequiredProperty"] = 35048] = "MissingRequiredProperty";
291659
+ QuantityStatus[QuantityStatus["InvertingZero"] = 35049] = "InvertingZero";
291655
291660
  })(QuantityStatus || (QuantityStatus = {}));
291656
291661
  /** The error type thrown by this module. See [[QuantityStatus]] for `errorNumber` values.
291657
291662
  * @beta
@@ -291727,6 +291732,8 @@ class BaseFormat {
291727
291732
  set minWidth(minWidth) { this._minWidth = minWidth; }
291728
291733
  get scientificType() { return this._scientificType; }
291729
291734
  set scientificType(scientificType) { this._scientificType = scientificType; }
291735
+ get ratioType() { return this._ratioType; }
291736
+ set ratioType(ratioType) { this._ratioType = ratioType; }
291730
291737
  get showSignOption() { return this._showSignOption; }
291731
291738
  set showSignOption(showSignOption) { this._showSignOption = showSignOption; }
291732
291739
  get decimalSeparator() { return this._decimalSeparator; }
@@ -291782,6 +291789,11 @@ class BaseFormat {
291782
291789
  throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${this.name} is 'Scientific' type therefore the attribute 'scientificType' is required.`);
291783
291790
  this._scientificType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseScientificType)(formatProps.scientificType, this.name);
291784
291791
  }
291792
+ if (this.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio) {
291793
+ if (undefined === formatProps.ratioType)
291794
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${this.name} is 'Ratio' type therefore the attribute 'ratioType' is required.`);
291795
+ this._ratioType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseRatioType)(formatProps.ratioType, this.name);
291796
+ }
291785
291797
  if (undefined !== formatProps.roundFactor) { // optional; default is 0.0
291786
291798
  if (typeof (formatProps.roundFactor) !== "number")
291787
291799
  throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${this.name} has an invalid 'roundFactor' attribute. It should be of type 'number'.`);
@@ -291908,6 +291920,7 @@ class Format extends BaseFormat {
291908
291920
  newFormat._azimuthBase = this._azimuthBase;
291909
291921
  newFormat._azimuthBaseUnit = this._azimuthBaseUnit;
291910
291922
  newFormat._azimuthCounterClockwise = this._azimuthCounterClockwise;
291923
+ newFormat._ratioType = this._ratioType;
291911
291924
  newFormat._revolutionUnit = this._revolutionUnit;
291912
291925
  newFormat._customProps = this._customProps;
291913
291926
  this._units && (newFormat._units = [...this._units]);
@@ -292030,28 +292043,7 @@ class Format extends BaseFormat {
292030
292043
  }
292031
292044
  const azimuthBaseUnit = this.azimuthBaseUnit ? this.azimuthBaseUnit.name : undefined;
292032
292045
  const revolutionUnit = this.revolutionUnit ? this.revolutionUnit.name : undefined;
292033
- if (this.customProps)
292034
- return {
292035
- type: (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.formatTypeToString)(this.type),
292036
- precision: this.precision,
292037
- roundFactor: this.roundFactor,
292038
- minWidth: this.minWidth,
292039
- showSignOption: (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.showSignOptionToString)(this.showSignOption),
292040
- formatTraits: (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.formatTraitsToArray)(this.formatTraits),
292041
- decimalSeparator: this.decimalSeparator,
292042
- thousandSeparator: this.thousandSeparator,
292043
- uomSeparator: this.uomSeparator,
292044
- scientificType: this.scientificType ? (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.scientificTypeToString)(this.scientificType) : undefined,
292045
- stationOffsetSize: this.stationOffsetSize,
292046
- stationSeparator: this.stationSeparator,
292047
- azimuthBase: this.azimuthBase,
292048
- azimuthBaseUnit,
292049
- azimuthCounterClockwise: this.azimuthCounterClockwise,
292050
- revolutionUnit,
292051
- composite,
292052
- custom: this.customProps,
292053
- };
292054
- return {
292046
+ const baseFormatProps = {
292055
292047
  type: (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.formatTypeToString)(this.type),
292056
292048
  precision: this.precision,
292057
292049
  roundFactor: this.roundFactor,
@@ -292061,7 +292053,8 @@ class Format extends BaseFormat {
292061
292053
  decimalSeparator: this.decimalSeparator,
292062
292054
  thousandSeparator: this.thousandSeparator,
292063
292055
  uomSeparator: this.uomSeparator,
292064
- scientificType: this.scientificType ? (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.scientificTypeToString)(this.scientificType) : undefined,
292056
+ scientificType: this.scientificType !== undefined ? (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.scientificTypeToString)(this.scientificType) : undefined,
292057
+ ratioType: this.ratioType,
292065
292058
  stationOffsetSize: this.stationOffsetSize,
292066
292059
  stationSeparator: this.stationSeparator,
292067
292060
  azimuthBase: this.azimuthBase,
@@ -292070,6 +292063,12 @@ class Format extends BaseFormat {
292070
292063
  revolutionUnit,
292071
292064
  composite,
292072
292065
  };
292066
+ if (this.customProps)
292067
+ return {
292068
+ ...baseFormatProps,
292069
+ custom: this.customProps,
292070
+ };
292071
+ return baseFormatProps;
292073
292072
  }
292074
292073
  }
292075
292074
 
@@ -292089,6 +292088,7 @@ __webpack_require__.r(__webpack_exports__);
292089
292088
  /* harmony export */ "FormatTraits": () => (/* binding */ FormatTraits),
292090
292089
  /* harmony export */ "FormatType": () => (/* binding */ FormatType),
292091
292090
  /* harmony export */ "FractionalPrecision": () => (/* binding */ FractionalPrecision),
292091
+ /* harmony export */ "RatioType": () => (/* binding */ RatioType),
292092
292092
  /* harmony export */ "ScientificType": () => (/* binding */ ScientificType),
292093
292093
  /* harmony export */ "ShowSignOption": () => (/* binding */ ShowSignOption),
292094
292094
  /* harmony export */ "formatStringRgx": () => (/* binding */ formatStringRgx),
@@ -292101,6 +292101,7 @@ __webpack_require__.r(__webpack_exports__);
292101
292101
  /* harmony export */ "parseFormatType": () => (/* binding */ parseFormatType),
292102
292102
  /* harmony export */ "parseFractionalPrecision": () => (/* binding */ parseFractionalPrecision),
292103
292103
  /* harmony export */ "parsePrecision": () => (/* binding */ parsePrecision),
292104
+ /* harmony export */ "parseRatioType": () => (/* binding */ parseRatioType),
292104
292105
  /* harmony export */ "parseScientificType": () => (/* binding */ parseScientificType),
292105
292106
  /* harmony export */ "parseShowSignOption": () => (/* binding */ parseShowSignOption),
292106
292107
  /* harmony export */ "scientificTypeToString": () => (/* binding */ scientificTypeToString),
@@ -292219,6 +292220,8 @@ var FormatType;
292219
292220
  FormatType[FormatType["Bearing"] = 4] = "Bearing";
292220
292221
  /** Azimuth angle e.g. 45°30'00". Requires provided quantities to be of the angle phenomenon */
292221
292222
  FormatType[FormatType["Azimuth"] = 5] = "Azimuth";
292223
+ /** Ratio display e,g. 1:2 or 0.3:1. */
292224
+ FormatType[FormatType["Ratio"] = 6] = "Ratio";
292222
292225
  })(FormatType || (FormatType = {}));
292223
292226
  /** required if type is scientific
292224
292227
  * @beta */
@@ -292229,6 +292232,19 @@ var ScientificType;
292229
292232
  /** Zero value left of decimal point (ie 0.12345e4) */
292230
292233
  ScientificType[ScientificType["ZeroNormalized"] = 1] = "ZeroNormalized";
292231
292234
  })(ScientificType || (ScientificType = {}));
292235
+ /** required if type is ratio
292236
+ * @beta */
292237
+ var RatioType;
292238
+ (function (RatioType) {
292239
+ /** One to N ratio (ie 1:N) */
292240
+ RatioType["OneToN"] = "OneToN";
292241
+ /** N to One ratio (ie N:1) */
292242
+ RatioType["NToOne"] = "NToOne";
292243
+ /** the lesser value scales to 1. e.g. input 0.5 turns into 2:1 | input 2 turns into 1:2 */
292244
+ RatioType["ValueBased"] = "ValueBased";
292245
+ /** scales the input ratio to its simplest integer form using the greatest common divisor (GCD) of the values. e.g. 0.3 turns into 3:10 */
292246
+ RatioType["UseGreatestCommonDivisor"] = "UseGreatestCommonDivisor";
292247
+ })(RatioType || (RatioType = {}));
292232
292248
  /** Determines how the sign of values are displayed
292233
292249
  * @beta */
292234
292250
  var ShowSignOption;
@@ -292256,6 +292272,19 @@ function parseScientificType(scientificType, formatName) {
292256
292272
  function scientificTypeToString(scientificType) {
292257
292273
  return (scientificType === ScientificType.Normalized) ? "Normalized" : "ZeroNormalized";
292258
292274
  }
292275
+ /** @beta */
292276
+ function parseRatioType(ratioType, formatName) {
292277
+ const normalizedValue = ratioType.toLowerCase();
292278
+ for (const key in RatioType) {
292279
+ if (RatioType.hasOwnProperty(key)) {
292280
+ const enumValue = RatioType[key];
292281
+ if (enumValue.toLowerCase() === normalizedValue) {
292282
+ return enumValue;
292283
+ }
292284
+ }
292285
+ }
292286
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityStatus.InvalidJson, `The Format ${formatName} has an invalid 'ratioType' attribute.`);
292287
+ }
292259
292288
  /** @beta */
292260
292289
  function parseShowSignOption(showSignOption, formatName) {
292261
292290
  switch (showSignOption.toLowerCase()) {
@@ -292353,6 +292382,7 @@ function parseFormatType(jsonObjType, formatName) {
292353
292382
  case "fractional": return FormatType.Fractional;
292354
292383
  case "bearing": return FormatType.Bearing;
292355
292384
  case "azimuth": return FormatType.Azimuth;
292385
+ case "ratio": return FormatType.Ratio;
292356
292386
  default:
292357
292387
  throw new _Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityStatus.InvalidJson, `The Format ${formatName} has an invalid 'type' attribute.`);
292358
292388
  }
@@ -292366,6 +292396,7 @@ function formatTypeToString(type) {
292366
292396
  case FormatType.Fractional: return "Fractional";
292367
292397
  case FormatType.Bearing: return "Bearing";
292368
292398
  case FormatType.Azimuth: return "Azimuth";
292399
+ case FormatType.Ratio: return "Ratio";
292369
292400
  }
292370
292401
  }
292371
292402
  /** @beta */
@@ -292410,6 +292441,7 @@ function parsePrecision(precision, type, formatName) {
292410
292441
  case FormatType.Decimal:
292411
292442
  case FormatType.Scientific:
292412
292443
  case FormatType.Station:
292444
+ case FormatType.Ratio:
292413
292445
  case FormatType.Bearing:
292414
292446
  case FormatType.Azimuth:
292415
292447
  return parseDecimalPrecision(precision, formatName);
@@ -292477,13 +292509,13 @@ class FractionalNumeric {
292477
292509
  this._integral += 1;
292478
292510
  }
292479
292511
  else {
292480
- this._greatestCommonFactor = this.getGreatestCommonFactor(this._numerator, this._denominator);
292512
+ this._greatestCommonFactor = FractionalNumeric.getGreatestCommonFactor(this._numerator, this._denominator);
292481
292513
  }
292482
292514
  }
292483
292515
  /** Determine the GCD given two values. This value can be used to reduce a fraction.
292484
292516
  * See algorithm description http://en.wikipedia.org/wiki/Euclidean_algorithm
292485
292517
  */
292486
- getGreatestCommonFactor(numerator, denominator) {
292518
+ static getGreatestCommonFactor(numerator, denominator) {
292487
292519
  let r;
292488
292520
  while (denominator !== 0) {
292489
292521
  r = numerator % denominator;
@@ -292614,9 +292646,26 @@ class Formatter {
292614
292646
  const unitConversion = spec.unitConversions[i].conversion;
292615
292647
  if (i > 0 && unitConversion.factor < 1.0)
292616
292648
  throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidCompositeFormat, `The Format ${spec.format.name} has a invalid unit specification..`);
292617
- if (i > 0 && unitConversion.offset !== 0)
292649
+ if (i > 0 && unitConversion.offset !== 0) // offset should only ever be defined for major unit
292618
292650
  throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidCompositeFormat, `The Format ${spec.format.name} has a invalid unit specification..`);
292619
- let unitValue = (posMagnitude * unitConversion.factor) + unitConversion.offset + Formatter.FPV_MINTHRESHOLD; // offset should only ever be defined for major unit
292651
+ let unitValue = 0.0;
292652
+ if (spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio) {
292653
+ if (1 !== spec.format.units.length)
292654
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidCompositeFormat, `The Format ${spec.format.name} has an invalid unit specification, we require single presentation unit when using format type 'ratio'`);
292655
+ try {
292656
+ unitValue = (0,_Quantity__WEBPACK_IMPORTED_MODULE_3__.applyConversion)(posMagnitude, unitConversion) + this.FPV_MINTHRESHOLD;
292657
+ }
292658
+ catch (e) {
292659
+ // The "InvertingZero" error is thrown when the value is zero and the conversion factor is inverted.
292660
+ // For ratio, we actually want to support this corner case and return "1:0" as the formatted value.
292661
+ if (e instanceof _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError && e.errorNumber === _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvertingZero) {
292662
+ return "1:0";
292663
+ }
292664
+ }
292665
+ compositeStrings.push(this.formatRatio(unitValue, spec));
292666
+ continue;
292667
+ }
292668
+ unitValue = (0,_Quantity__WEBPACK_IMPORTED_MODULE_3__.applyConversion)(posMagnitude, unitConversion) + this.FPV_MINTHRESHOLD;
292620
292669
  if (0 === i) {
292621
292670
  const precisionScale = Math.pow(10, 8); // use a fixed round off precision of 8 to avoid loss of precision in actual magnitude
292622
292671
  unitValue = Math.floor(unitValue * precisionScale + FPV_ROUNDFACTOR) / precisionScale;
@@ -292646,7 +292695,7 @@ class Formatter {
292646
292695
  if (spec.format.hasFormatTraitSet(_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatTraits.ApplyRounding))
292647
292696
  posMagnitude = Math.abs(Formatter.roundDouble(magnitude, spec.format.roundFactor));
292648
292697
  const isSci = ((posMagnitude > 1.0e12) || spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Scientific);
292649
- const isDecimal = (isSci || spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Decimal || spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing || spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth);
292698
+ const isDecimal = (isSci || spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Decimal || spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing || spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth) || spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio;
292650
292699
  const isFractional = (!isDecimal && spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Fractional);
292651
292700
  /* const usesStops = spec.format.type === FormatType.Station; */
292652
292701
  const isPrecisionZero = spec.format.precision === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.DecimalPrecision.Zero;
@@ -292851,7 +292900,7 @@ class Formatter {
292851
292900
  if (quadrant === 2 && spec.unitConversions.length > 0) {
292852
292901
  // To determine if value is small, we need to convert it to the smallest unit presented and use the provided precision on it
292853
292902
  const unitConversion = spec.unitConversions[spec.unitConversions.length - 1].conversion;
292854
- const smallestFormattedValue = (magnitude * unitConversion.factor) + unitConversion.offset + Formatter.FPV_MINTHRESHOLD;
292903
+ const smallestFormattedValue = (0,_Quantity__WEBPACK_IMPORTED_MODULE_3__.applyConversion)(magnitude, unitConversion) + this.FPV_MINTHRESHOLD;
292855
292904
  const precisionScale = Math.pow(10.0, spec.format.precision);
292856
292905
  const floor = Math.floor((smallestFormattedValue) * precisionScale + FPV_ROUNDFACTOR) / precisionScale;
292857
292906
  if (floor === 0) {
@@ -292903,6 +292952,37 @@ class Formatter {
292903
292952
  }
292904
292953
  return converted.magnitude;
292905
292954
  }
292955
+ static formatRatio(magnitude, spec) {
292956
+ if (null === spec.format.ratioType)
292957
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidCompositeFormat, `The Format ${spec.format.name} must have a ratio type specified.`);
292958
+ const precisionScale = Math.pow(10.0, spec.format.precision);
292959
+ let reciprocal = 0;
292960
+ if (magnitude === 0.0)
292961
+ return "0:1";
292962
+ else
292963
+ reciprocal = 1.0 / magnitude;
292964
+ switch (spec.format.ratioType) {
292965
+ case _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.RatioType.OneToN:
292966
+ return `1:${this.formatMagnitude(reciprocal, spec)}`;
292967
+ case _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.RatioType.NToOne:
292968
+ return `${this.formatMagnitude(magnitude, spec)}:1`;
292969
+ case _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.RatioType.ValueBased:
292970
+ if (magnitude > 1.0)
292971
+ return `${this.formatMagnitude(magnitude, spec)}:1`;
292972
+ else
292973
+ return `1:${this.formatMagnitude(reciprocal, spec)}`;
292974
+ case _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.RatioType.UseGreatestCommonDivisor:
292975
+ magnitude = Math.round(magnitude * precisionScale) / precisionScale;
292976
+ let numerator = magnitude * precisionScale;
292977
+ let denominator = precisionScale;
292978
+ const gcd = FractionalNumeric.getGreatestCommonFactor(numerator, denominator);
292979
+ numerator /= gcd;
292980
+ denominator /= gcd;
292981
+ return `${this.formatMagnitude(numerator, spec)}:${this.formatMagnitude(denominator, spec)}`;
292982
+ default:
292983
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidCompositeFormat, `The Format ${spec.format.name} has an invalid ratio type specified.`);
292984
+ }
292985
+ }
292906
292986
  }
292907
292987
  // eslint-disable-next-line @typescript-eslint/naming-convention
292908
292988
  Formatter.FPV_MINTHRESHOLD = 1.0e-14;
@@ -293083,6 +293163,9 @@ const isCustomFormatProps = (item) => {
293083
293163
 
293084
293164
  "use strict";
293085
293165
  __webpack_require__.r(__webpack_exports__);
293166
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
293167
+ /* harmony export */ "UnitConversionInvert": () => (/* binding */ UnitConversionInvert)
293168
+ /* harmony export */ });
293086
293169
  /*---------------------------------------------------------------------------------------------
293087
293170
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
293088
293171
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -293090,7 +293173,16 @@ __webpack_require__.r(__webpack_exports__);
293090
293173
  /** @packageDocumentation
293091
293174
  * @module Quantity
293092
293175
  */
293093
-
293176
+ /** Indicates the way in which unit values are inverted during conversion
293177
+ * @beta
293178
+ */
293179
+ var UnitConversionInvert;
293180
+ (function (UnitConversionInvert) {
293181
+ /** Invert value before applying the other conversion steps (the from-unit is the inverted unit) */
293182
+ UnitConversionInvert["InvertPreConversion"] = "InvertPreConversion";
293183
+ /** Invert value after applying the other conversion steps (the to-unit is the inverted unit) */
293184
+ UnitConversionInvert["InvertPostConversion"] = "InvertPostConversion";
293185
+ })(UnitConversionInvert || (UnitConversionInvert = {}));
293094
293186
 
293095
293187
 
293096
293188
  /***/ }),
@@ -293143,7 +293235,7 @@ var Operator;
293143
293235
  })(Operator || (Operator = {}));
293144
293236
  function isOperator(char) {
293145
293237
  if (typeof char === "number") {
293146
- // Convert the charcode to string.
293238
+ // Convert the CharCode to string.
293147
293239
  char = String.fromCharCode(char);
293148
293240
  }
293149
293241
  return Object.values(Operator).includes(char);
@@ -293390,7 +293482,7 @@ class Parser {
293390
293482
  continue;
293391
293483
  }
293392
293484
  if (wipToken.length === 0 && charCode === _Constants__WEBPACK_IMPORTED_MODULE_0__.QuantityConstants.CHAR_SPACE) {
293393
- // Dont add space when the wip token is empty.
293485
+ // Don't add space when the wip token is empty.
293394
293486
  continue;
293395
293487
  }
293396
293488
  wipToken = wipToken.concat(str[i]);
@@ -293640,7 +293732,7 @@ class Parser {
293640
293732
  }
293641
293733
  }
293642
293734
  if (conversion) {
293643
- value = (value * conversion.factor) + conversion.offset;
293735
+ value = (0,_Quantity__WEBPACK_IMPORTED_MODULE_3__.applyConversion)(value, conversion);
293644
293736
  }
293645
293737
  mag = mag + value;
293646
293738
  compositeUnitIndex++;
@@ -293679,6 +293771,9 @@ class Parser {
293679
293771
  if (parserSpec.format.type === _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth) {
293680
293772
  return this.parseAzimuthFormat(inString, parserSpec);
293681
293773
  }
293774
+ if (parserSpec.format.type === _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio) {
293775
+ return this.parseRatioFormat(inString, parserSpec);
293776
+ }
293682
293777
  return this.parseAndProcessTokens(inString, parserSpec.format, parserSpec.unitConversions);
293683
293778
  }
293684
293779
  /** Method to generate a Quantity given a string that represents a quantity value and likely a unit label.
@@ -293701,9 +293796,9 @@ class Parser {
293701
293796
  }
293702
293797
  });
293703
293798
  }
293704
- if (format.type === _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing || format.type === _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth) {
293799
+ if (format.type === _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing || format.type === _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth || format.type === _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio) {
293705
293800
  // throw error indicating to call parseQuantityString instead
293706
- throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.UnsupportedUnit, `Bearing and Azimuth format must be parsed using a ParserSpec. Call parseQuantityString instead.`);
293801
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.UnsupportedUnit, `Bearing, Azimuth or Ratio format must be parsed using a ParserSpec. Call parseQuantityString instead.`);
293707
293802
  }
293708
293803
  return this.parseAndProcessTokens(inString, format, unitsConversions);
293709
293804
  }
@@ -293799,6 +293894,55 @@ class Parser {
293799
293894
  magnitude = this.normalizeAngle(magnitude, revolution);
293800
293895
  return { ok: true, value: magnitude };
293801
293896
  }
293897
+ static parseRatioFormat(inString, spec) {
293898
+ if (!inString)
293899
+ return { ok: false, error: ParseError.NoValueOrUnitFoundInString };
293900
+ const parts = inString.split(":");
293901
+ if (parts.length > 2)
293902
+ return { ok: false, error: ParseError.UnableToConvertParseTokensToQuantity };
293903
+ const numerator = parseFloat(parts[0]);
293904
+ let denominator;
293905
+ if (parts.length === 1) {
293906
+ denominator = 1.0;
293907
+ }
293908
+ else {
293909
+ denominator = parseFloat(parts[1]);
293910
+ }
293911
+ if (isNaN(numerator) || isNaN(denominator))
293912
+ return { ok: false, error: ParseError.NoValueOrUnitFoundInString };
293913
+ const defaultUnit = spec.format.units && spec.format.units.length > 0 ? spec.format.units[0][0] : undefined;
293914
+ const unitConversion = defaultUnit ? Parser.tryFindUnitConversion(defaultUnit.label, spec.unitConversions, defaultUnit) : undefined;
293915
+ if (!unitConversion) {
293916
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.MissingRequiredProperty, `Missing input unit or unit conversion for interpreting ${spec.format.name}.`);
293917
+ }
293918
+ if (denominator === 0) {
293919
+ if (unitConversion.inversion && numerator === 1)
293920
+ return { ok: true, value: 0.0 };
293921
+ else
293922
+ return { ok: false, error: ParseError.MathematicOperationFoundButIsNotAllowed };
293923
+ }
293924
+ let quantity;
293925
+ if (spec.format.units && spec.outUnit) {
293926
+ quantity = new _Quantity__WEBPACK_IMPORTED_MODULE_3__.Quantity(spec.format.units[0][0], numerator / denominator);
293927
+ }
293928
+ else {
293929
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.MissingRequiredProperty, "Missing presentation unit or persistence unit for ratio format.");
293930
+ }
293931
+ let converted;
293932
+ try {
293933
+ converted = quantity.convertTo(spec.outUnit, unitConversion);
293934
+ }
293935
+ catch (err) {
293936
+ // for input of "0:N" with reversed unit
293937
+ if (err instanceof _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError && err.errorNumber === _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvertingZero) {
293938
+ return { ok: false, error: ParseError.MathematicOperationFoundButIsNotAllowed };
293939
+ }
293940
+ }
293941
+ if (converted === undefined || !converted.isValid) {
293942
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.UnsupportedUnit, `Failed to convert from ${spec.format.units[0][0].name} to ${spec.outUnit.name} On format ${spec.format.name}.`);
293943
+ }
293944
+ return { ok: true, value: converted.magnitude };
293945
+ }
293802
293946
  // TODO: The following two methods are redundant with Formatter. We should consider consolidating them.
293803
293947
  static normalizeAngle(magnitude, revolution) {
293804
293948
  magnitude = magnitude % revolution; // Strip anything that goes around more than once
@@ -294000,8 +294144,12 @@ class ParserSpec {
294000
294144
  __webpack_require__.r(__webpack_exports__);
294001
294145
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
294002
294146
  /* harmony export */ "Quantity": () => (/* binding */ Quantity),
294003
- /* harmony export */ "almostEqual": () => (/* binding */ almostEqual)
294147
+ /* harmony export */ "almostEqual": () => (/* binding */ almostEqual),
294148
+ /* harmony export */ "almostZero": () => (/* binding */ almostZero),
294149
+ /* harmony export */ "applyConversion": () => (/* binding */ applyConversion)
294004
294150
  /* harmony export */ });
294151
+ /* harmony import */ var _Exception__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Exception */ "../../core/quantity/lib/esm/Exception.js");
294152
+ /* harmony import */ var _Interfaces__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Interfaces */ "../../core/quantity/lib/esm/Interfaces.js");
294005
294153
  /*---------------------------------------------------------------------------------------------
294006
294154
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
294007
294155
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -294009,6 +294157,8 @@ __webpack_require__.r(__webpack_exports__);
294009
294157
  /** @packageDocumentation
294010
294158
  * @module Quantity
294011
294159
  */
294160
+
294161
+
294012
294162
  /**
294013
294163
  * Checks if two numbers are approximately equal within given relative tolerance.
294014
294164
  * @param a - The first number to compare.
@@ -294053,10 +294203,44 @@ class Quantity {
294053
294203
  * returned from the UnitsProvider.
294054
294204
  */
294055
294205
  convertTo(toUnit, conversion) {
294056
- const newMagnitude = (this.magnitude * conversion.factor) + conversion.offset;
294206
+ const newMagnitude = applyConversion(this.magnitude, conversion);
294057
294207
  return new Quantity(toUnit, newMagnitude);
294058
294208
  }
294059
294209
  }
294210
+ function invert(input) {
294211
+ if (almostZero(input)) // mimic the behavior of native here. We don't want to invert those very small values
294212
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityStatus.InvertingZero, "Cannot invert zero value");
294213
+ return 1 / input;
294214
+ }
294215
+ /** Determines if a value is almost zero. (less than 1e-16)
294216
+ * @param value - The value to be checked.
294217
+ * @returns `true` if the value is almost zero, `false` otherwise.
294218
+ * @internal
294219
+ */
294220
+ function almostZero(value) {
294221
+ return almostEqual(value, 0.0);
294222
+ }
294223
+ /**
294224
+ * Applies a unit conversion to a given value.
294225
+ * @param value - The value to be converted.
294226
+ * @param props - The unit conversion properties.
294227
+ * @returns The converted value.
294228
+ * @internal
294229
+ */
294230
+ function applyConversion(value, props) {
294231
+ let convertedValue = value;
294232
+ // Apply pre-conversion inversion if specified
294233
+ if (props.inversion === _Interfaces__WEBPACK_IMPORTED_MODULE_1__.UnitConversionInvert.InvertPreConversion) {
294234
+ convertedValue = invert(convertedValue);
294235
+ }
294236
+ // Apply the conversion factor and offset
294237
+ convertedValue = (convertedValue * props.factor) + props.offset;
294238
+ // Apply post-conversion inversion if specified
294239
+ if (props.inversion === _Interfaces__WEBPACK_IMPORTED_MODULE_1__.UnitConversionInvert.InvertPostConversion) {
294240
+ convertedValue = invert(convertedValue);
294241
+ }
294242
+ return convertedValue;
294243
+ }
294060
294244
 
294061
294245
 
294062
294246
  /***/ }),
@@ -294142,9 +294326,13 @@ __webpack_require__.r(__webpack_exports__);
294142
294326
  /* harmony export */ "QuantityConstants": () => (/* reexport safe */ _Constants__WEBPACK_IMPORTED_MODULE_0__.QuantityConstants),
294143
294327
  /* harmony export */ "QuantityError": () => (/* reexport safe */ _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError),
294144
294328
  /* harmony export */ "QuantityStatus": () => (/* reexport safe */ _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus),
294329
+ /* harmony export */ "RatioType": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.RatioType),
294145
294330
  /* harmony export */ "ScientificType": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.ScientificType),
294146
294331
  /* harmony export */ "ShowSignOption": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.ShowSignOption),
294332
+ /* harmony export */ "UnitConversionInvert": () => (/* reexport safe */ _Interfaces__WEBPACK_IMPORTED_MODULE_2__.UnitConversionInvert),
294147
294333
  /* harmony export */ "almostEqual": () => (/* reexport safe */ _Quantity__WEBPACK_IMPORTED_MODULE_5__.almostEqual),
294334
+ /* harmony export */ "almostZero": () => (/* reexport safe */ _Quantity__WEBPACK_IMPORTED_MODULE_5__.almostZero),
294335
+ /* harmony export */ "applyConversion": () => (/* reexport safe */ _Quantity__WEBPACK_IMPORTED_MODULE_5__.applyConversion),
294148
294336
  /* harmony export */ "formatStringRgx": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.formatStringRgx),
294149
294337
  /* harmony export */ "formatTraitsToArray": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.formatTraitsToArray),
294150
294338
  /* harmony export */ "formatTypeToString": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.formatTypeToString),
@@ -294156,6 +294344,7 @@ __webpack_require__.r(__webpack_exports__);
294156
294344
  /* harmony export */ "parseFormatType": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parseFormatType),
294157
294345
  /* harmony export */ "parseFractionalPrecision": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parseFractionalPrecision),
294158
294346
  /* harmony export */ "parsePrecision": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parsePrecision),
294347
+ /* harmony export */ "parseRatioType": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parseRatioType),
294159
294348
  /* harmony export */ "parseScientificType": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parseScientificType),
294160
294349
  /* harmony export */ "parseShowSignOption": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parseShowSignOption),
294161
294350
  /* harmony export */ "scientificTypeToString": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.scientificTypeToString),
@@ -295236,7 +295425,7 @@ class TestContext {
295236
295425
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
295237
295426
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
295238
295427
  await core_frontend_1.NoRenderApp.startup({
295239
- applicationVersion: "4.10.0-dev.10",
295428
+ applicationVersion: "4.10.0-dev.11",
295240
295429
  applicationId: this.settings.gprid,
295241
295430
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
295242
295431
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -320105,7 +320294,7 @@ function __disposeResources(env) {
320105
320294
  /***/ ((module) => {
320106
320295
 
320107
320296
  "use strict";
320108
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.10.0-dev.10","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","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 ES2020 --outDir lib/esm","clean":"rimraf 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","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","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 -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","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:^4.10.0-dev.10","@itwin/core-bentley":"workspace:^4.10.0-dev.10","@itwin/core-common":"workspace:^4.10.0-dev.10","@itwin/core-geometry":"workspace:^4.10.0-dev.10","@itwin/core-orbitgt":"workspace:^4.10.0-dev.10","@itwin/core-quantity":"workspace:^4.10.0-dev.10"},"//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":{"@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/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.2","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.2","source-map-loader":"^4.0.0","typescript":"~5.3.3","typemoq":"^2.1.0","webpack":"^5.76.0"},"//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/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.2.5","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
320297
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.10.0-dev.11","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","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 ES2020 --outDir lib/esm","clean":"rimraf 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","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","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 -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","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:^4.10.0-dev.11","@itwin/core-bentley":"workspace:^4.10.0-dev.11","@itwin/core-common":"workspace:^4.10.0-dev.11","@itwin/core-geometry":"workspace:^4.10.0-dev.11","@itwin/core-orbitgt":"workspace:^4.10.0-dev.11","@itwin/core-quantity":"workspace:^4.10.0-dev.11"},"//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":{"@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/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.2","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.2","source-map-loader":"^4.0.0","typescript":"~5.3.3","typemoq":"^2.1.0","webpack":"^5.76.0"},"//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/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.2.5","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
320109
320298
 
320110
320299
  /***/ }),
320111
320300