@itwin/ecschema-rpcinterface-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":""}
@@ -55304,6 +55304,9 @@ class SnapshotIModelRpcInterface extends _RpcInterface__WEBPACK_IMPORTED_MODULE_
55304
55304
  NOTE: Please consult the README in this folder for the semantic versioning rules.
55305
55305
  ===========================================================================================*/
55306
55306
  async openFile(_filePath, _opts) { return this.forward(arguments); }
55307
+ /**
55308
+ * @deprecated in 4.10. Use [[CheckpointConnection.openRemote]].
55309
+ */
55307
55310
  async openRemote(_key, _opts) { return this.forward(arguments); }
55308
55311
  async close(_iModelRpcProps) { return this.forward(arguments); }
55309
55312
  }
@@ -82830,11 +82833,12 @@ class SnapshotConnection extends IModelConnection {
82830
82833
  }
82831
82834
  /** Open an IModelConnection to a remote read-only snapshot iModel from a key that will be resolved by the backend.
82832
82835
  * @note This method is intended for web applications.
82836
+ * @deprecated in 4.10. Use [[CheckpointConnection.openRemote]].
82833
82837
  */
82834
82838
  static async openRemote(fileKey) {
82835
82839
  const routingContext = _IModelRoutingContext__WEBPACK_IMPORTED_MODULE_6__.IModelRoutingContext.current || _IModelRoutingContext__WEBPACK_IMPORTED_MODULE_6__.IModelRoutingContext["default"];
82836
82840
  _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RpcManager.setIModel({ iModelId: "undefined", key: fileKey });
82837
- const openResponse = await _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.SnapshotIModelRpcInterface.getClientForRouting(routingContext.token).openRemote(fileKey);
82841
+ const openResponse = await _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.SnapshotIModelRpcInterface.getClientForRouting(routingContext.token).openRemote(fileKey); // eslint-disable-line deprecation/deprecation
82838
82842
  _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace(loggerCategory, "SnapshotConnection.openRemote", () => ({ fileKey }));
82839
82843
  const connection = new SnapshotConnection(openResponse);
82840
82844
  connection.routingContext = routingContext;
@@ -285568,6 +285572,7 @@ var QuantityStatus;
285568
285572
  QuantityStatus[QuantityStatus["UnableToConvertParseTokensToQuantity"] = 35046] = "UnableToConvertParseTokensToQuantity";
285569
285573
  QuantityStatus[QuantityStatus["UnsupportedUnit"] = 35047] = "UnsupportedUnit";
285570
285574
  QuantityStatus[QuantityStatus["MissingRequiredProperty"] = 35048] = "MissingRequiredProperty";
285575
+ QuantityStatus[QuantityStatus["InvertingZero"] = 35049] = "InvertingZero";
285571
285576
  })(QuantityStatus || (QuantityStatus = {}));
285572
285577
  /** The error type thrown by this module. See [[QuantityStatus]] for `errorNumber` values.
285573
285578
  * @beta
@@ -285643,6 +285648,8 @@ class BaseFormat {
285643
285648
  set minWidth(minWidth) { this._minWidth = minWidth; }
285644
285649
  get scientificType() { return this._scientificType; }
285645
285650
  set scientificType(scientificType) { this._scientificType = scientificType; }
285651
+ get ratioType() { return this._ratioType; }
285652
+ set ratioType(ratioType) { this._ratioType = ratioType; }
285646
285653
  get showSignOption() { return this._showSignOption; }
285647
285654
  set showSignOption(showSignOption) { this._showSignOption = showSignOption; }
285648
285655
  get decimalSeparator() { return this._decimalSeparator; }
@@ -285698,6 +285705,11 @@ class BaseFormat {
285698
285705
  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.`);
285699
285706
  this._scientificType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseScientificType)(formatProps.scientificType, this.name);
285700
285707
  }
285708
+ if (this.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio) {
285709
+ if (undefined === formatProps.ratioType)
285710
+ 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.`);
285711
+ this._ratioType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseRatioType)(formatProps.ratioType, this.name);
285712
+ }
285701
285713
  if (undefined !== formatProps.roundFactor) { // optional; default is 0.0
285702
285714
  if (typeof (formatProps.roundFactor) !== "number")
285703
285715
  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'.`);
@@ -285824,6 +285836,7 @@ class Format extends BaseFormat {
285824
285836
  newFormat._azimuthBase = this._azimuthBase;
285825
285837
  newFormat._azimuthBaseUnit = this._azimuthBaseUnit;
285826
285838
  newFormat._azimuthCounterClockwise = this._azimuthCounterClockwise;
285839
+ newFormat._ratioType = this._ratioType;
285827
285840
  newFormat._revolutionUnit = this._revolutionUnit;
285828
285841
  newFormat._customProps = this._customProps;
285829
285842
  this._units && (newFormat._units = [...this._units]);
@@ -285946,28 +285959,7 @@ class Format extends BaseFormat {
285946
285959
  }
285947
285960
  const azimuthBaseUnit = this.azimuthBaseUnit ? this.azimuthBaseUnit.name : undefined;
285948
285961
  const revolutionUnit = this.revolutionUnit ? this.revolutionUnit.name : undefined;
285949
- if (this.customProps)
285950
- return {
285951
- type: (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.formatTypeToString)(this.type),
285952
- precision: this.precision,
285953
- roundFactor: this.roundFactor,
285954
- minWidth: this.minWidth,
285955
- showSignOption: (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.showSignOptionToString)(this.showSignOption),
285956
- formatTraits: (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.formatTraitsToArray)(this.formatTraits),
285957
- decimalSeparator: this.decimalSeparator,
285958
- thousandSeparator: this.thousandSeparator,
285959
- uomSeparator: this.uomSeparator,
285960
- scientificType: this.scientificType ? (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.scientificTypeToString)(this.scientificType) : undefined,
285961
- stationOffsetSize: this.stationOffsetSize,
285962
- stationSeparator: this.stationSeparator,
285963
- azimuthBase: this.azimuthBase,
285964
- azimuthBaseUnit,
285965
- azimuthCounterClockwise: this.azimuthCounterClockwise,
285966
- revolutionUnit,
285967
- composite,
285968
- custom: this.customProps,
285969
- };
285970
- return {
285962
+ const baseFormatProps = {
285971
285963
  type: (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.formatTypeToString)(this.type),
285972
285964
  precision: this.precision,
285973
285965
  roundFactor: this.roundFactor,
@@ -285977,7 +285969,8 @@ class Format extends BaseFormat {
285977
285969
  decimalSeparator: this.decimalSeparator,
285978
285970
  thousandSeparator: this.thousandSeparator,
285979
285971
  uomSeparator: this.uomSeparator,
285980
- scientificType: this.scientificType ? (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.scientificTypeToString)(this.scientificType) : undefined,
285972
+ scientificType: this.scientificType !== undefined ? (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.scientificTypeToString)(this.scientificType) : undefined,
285973
+ ratioType: this.ratioType,
285981
285974
  stationOffsetSize: this.stationOffsetSize,
285982
285975
  stationSeparator: this.stationSeparator,
285983
285976
  azimuthBase: this.azimuthBase,
@@ -285986,6 +285979,12 @@ class Format extends BaseFormat {
285986
285979
  revolutionUnit,
285987
285980
  composite,
285988
285981
  };
285982
+ if (this.customProps)
285983
+ return {
285984
+ ...baseFormatProps,
285985
+ custom: this.customProps,
285986
+ };
285987
+ return baseFormatProps;
285989
285988
  }
285990
285989
  }
285991
285990
 
@@ -286005,6 +286004,7 @@ __webpack_require__.r(__webpack_exports__);
286005
286004
  /* harmony export */ "FormatTraits": () => (/* binding */ FormatTraits),
286006
286005
  /* harmony export */ "FormatType": () => (/* binding */ FormatType),
286007
286006
  /* harmony export */ "FractionalPrecision": () => (/* binding */ FractionalPrecision),
286007
+ /* harmony export */ "RatioType": () => (/* binding */ RatioType),
286008
286008
  /* harmony export */ "ScientificType": () => (/* binding */ ScientificType),
286009
286009
  /* harmony export */ "ShowSignOption": () => (/* binding */ ShowSignOption),
286010
286010
  /* harmony export */ "formatStringRgx": () => (/* binding */ formatStringRgx),
@@ -286017,6 +286017,7 @@ __webpack_require__.r(__webpack_exports__);
286017
286017
  /* harmony export */ "parseFormatType": () => (/* binding */ parseFormatType),
286018
286018
  /* harmony export */ "parseFractionalPrecision": () => (/* binding */ parseFractionalPrecision),
286019
286019
  /* harmony export */ "parsePrecision": () => (/* binding */ parsePrecision),
286020
+ /* harmony export */ "parseRatioType": () => (/* binding */ parseRatioType),
286020
286021
  /* harmony export */ "parseScientificType": () => (/* binding */ parseScientificType),
286021
286022
  /* harmony export */ "parseShowSignOption": () => (/* binding */ parseShowSignOption),
286022
286023
  /* harmony export */ "scientificTypeToString": () => (/* binding */ scientificTypeToString),
@@ -286135,6 +286136,8 @@ var FormatType;
286135
286136
  FormatType[FormatType["Bearing"] = 4] = "Bearing";
286136
286137
  /** Azimuth angle e.g. 45°30'00". Requires provided quantities to be of the angle phenomenon */
286137
286138
  FormatType[FormatType["Azimuth"] = 5] = "Azimuth";
286139
+ /** Ratio display e,g. 1:2 or 0.3:1. */
286140
+ FormatType[FormatType["Ratio"] = 6] = "Ratio";
286138
286141
  })(FormatType || (FormatType = {}));
286139
286142
  /** required if type is scientific
286140
286143
  * @beta */
@@ -286145,6 +286148,19 @@ var ScientificType;
286145
286148
  /** Zero value left of decimal point (ie 0.12345e4) */
286146
286149
  ScientificType[ScientificType["ZeroNormalized"] = 1] = "ZeroNormalized";
286147
286150
  })(ScientificType || (ScientificType = {}));
286151
+ /** required if type is ratio
286152
+ * @beta */
286153
+ var RatioType;
286154
+ (function (RatioType) {
286155
+ /** One to N ratio (ie 1:N) */
286156
+ RatioType["OneToN"] = "OneToN";
286157
+ /** N to One ratio (ie N:1) */
286158
+ RatioType["NToOne"] = "NToOne";
286159
+ /** the lesser value scales to 1. e.g. input 0.5 turns into 2:1 | input 2 turns into 1:2 */
286160
+ RatioType["ValueBased"] = "ValueBased";
286161
+ /** 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 */
286162
+ RatioType["UseGreatestCommonDivisor"] = "UseGreatestCommonDivisor";
286163
+ })(RatioType || (RatioType = {}));
286148
286164
  /** Determines how the sign of values are displayed
286149
286165
  * @beta */
286150
286166
  var ShowSignOption;
@@ -286172,6 +286188,19 @@ function parseScientificType(scientificType, formatName) {
286172
286188
  function scientificTypeToString(scientificType) {
286173
286189
  return (scientificType === ScientificType.Normalized) ? "Normalized" : "ZeroNormalized";
286174
286190
  }
286191
+ /** @beta */
286192
+ function parseRatioType(ratioType, formatName) {
286193
+ const normalizedValue = ratioType.toLowerCase();
286194
+ for (const key in RatioType) {
286195
+ if (RatioType.hasOwnProperty(key)) {
286196
+ const enumValue = RatioType[key];
286197
+ if (enumValue.toLowerCase() === normalizedValue) {
286198
+ return enumValue;
286199
+ }
286200
+ }
286201
+ }
286202
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityStatus.InvalidJson, `The Format ${formatName} has an invalid 'ratioType' attribute.`);
286203
+ }
286175
286204
  /** @beta */
286176
286205
  function parseShowSignOption(showSignOption, formatName) {
286177
286206
  switch (showSignOption.toLowerCase()) {
@@ -286269,6 +286298,7 @@ function parseFormatType(jsonObjType, formatName) {
286269
286298
  case "fractional": return FormatType.Fractional;
286270
286299
  case "bearing": return FormatType.Bearing;
286271
286300
  case "azimuth": return FormatType.Azimuth;
286301
+ case "ratio": return FormatType.Ratio;
286272
286302
  default:
286273
286303
  throw new _Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityStatus.InvalidJson, `The Format ${formatName} has an invalid 'type' attribute.`);
286274
286304
  }
@@ -286282,6 +286312,7 @@ function formatTypeToString(type) {
286282
286312
  case FormatType.Fractional: return "Fractional";
286283
286313
  case FormatType.Bearing: return "Bearing";
286284
286314
  case FormatType.Azimuth: return "Azimuth";
286315
+ case FormatType.Ratio: return "Ratio";
286285
286316
  }
286286
286317
  }
286287
286318
  /** @beta */
@@ -286326,6 +286357,7 @@ function parsePrecision(precision, type, formatName) {
286326
286357
  case FormatType.Decimal:
286327
286358
  case FormatType.Scientific:
286328
286359
  case FormatType.Station:
286360
+ case FormatType.Ratio:
286329
286361
  case FormatType.Bearing:
286330
286362
  case FormatType.Azimuth:
286331
286363
  return parseDecimalPrecision(precision, formatName);
@@ -286393,13 +286425,13 @@ class FractionalNumeric {
286393
286425
  this._integral += 1;
286394
286426
  }
286395
286427
  else {
286396
- this._greatestCommonFactor = this.getGreatestCommonFactor(this._numerator, this._denominator);
286428
+ this._greatestCommonFactor = FractionalNumeric.getGreatestCommonFactor(this._numerator, this._denominator);
286397
286429
  }
286398
286430
  }
286399
286431
  /** Determine the GCD given two values. This value can be used to reduce a fraction.
286400
286432
  * See algorithm description http://en.wikipedia.org/wiki/Euclidean_algorithm
286401
286433
  */
286402
- getGreatestCommonFactor(numerator, denominator) {
286434
+ static getGreatestCommonFactor(numerator, denominator) {
286403
286435
  let r;
286404
286436
  while (denominator !== 0) {
286405
286437
  r = numerator % denominator;
@@ -286530,9 +286562,26 @@ class Formatter {
286530
286562
  const unitConversion = spec.unitConversions[i].conversion;
286531
286563
  if (i > 0 && unitConversion.factor < 1.0)
286532
286564
  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..`);
286533
- if (i > 0 && unitConversion.offset !== 0)
286565
+ if (i > 0 && unitConversion.offset !== 0) // offset should only ever be defined for major unit
286534
286566
  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..`);
286535
- let unitValue = (posMagnitude * unitConversion.factor) + unitConversion.offset + Formatter.FPV_MINTHRESHOLD; // offset should only ever be defined for major unit
286567
+ let unitValue = 0.0;
286568
+ if (spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio) {
286569
+ if (1 !== spec.format.units.length)
286570
+ 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'`);
286571
+ try {
286572
+ unitValue = (0,_Quantity__WEBPACK_IMPORTED_MODULE_3__.applyConversion)(posMagnitude, unitConversion) + this.FPV_MINTHRESHOLD;
286573
+ }
286574
+ catch (e) {
286575
+ // The "InvertingZero" error is thrown when the value is zero and the conversion factor is inverted.
286576
+ // For ratio, we actually want to support this corner case and return "1:0" as the formatted value.
286577
+ if (e instanceof _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError && e.errorNumber === _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvertingZero) {
286578
+ return "1:0";
286579
+ }
286580
+ }
286581
+ compositeStrings.push(this.formatRatio(unitValue, spec));
286582
+ continue;
286583
+ }
286584
+ unitValue = (0,_Quantity__WEBPACK_IMPORTED_MODULE_3__.applyConversion)(posMagnitude, unitConversion) + this.FPV_MINTHRESHOLD;
286536
286585
  if (0 === i) {
286537
286586
  const precisionScale = Math.pow(10, 8); // use a fixed round off precision of 8 to avoid loss of precision in actual magnitude
286538
286587
  unitValue = Math.floor(unitValue * precisionScale + FPV_ROUNDFACTOR) / precisionScale;
@@ -286562,7 +286611,7 @@ class Formatter {
286562
286611
  if (spec.format.hasFormatTraitSet(_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatTraits.ApplyRounding))
286563
286612
  posMagnitude = Math.abs(Formatter.roundDouble(magnitude, spec.format.roundFactor));
286564
286613
  const isSci = ((posMagnitude > 1.0e12) || spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Scientific);
286565
- 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);
286614
+ 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;
286566
286615
  const isFractional = (!isDecimal && spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Fractional);
286567
286616
  /* const usesStops = spec.format.type === FormatType.Station; */
286568
286617
  const isPrecisionZero = spec.format.precision === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.DecimalPrecision.Zero;
@@ -286767,7 +286816,7 @@ class Formatter {
286767
286816
  if (quadrant === 2 && spec.unitConversions.length > 0) {
286768
286817
  // To determine if value is small, we need to convert it to the smallest unit presented and use the provided precision on it
286769
286818
  const unitConversion = spec.unitConversions[spec.unitConversions.length - 1].conversion;
286770
- const smallestFormattedValue = (magnitude * unitConversion.factor) + unitConversion.offset + Formatter.FPV_MINTHRESHOLD;
286819
+ const smallestFormattedValue = (0,_Quantity__WEBPACK_IMPORTED_MODULE_3__.applyConversion)(magnitude, unitConversion) + this.FPV_MINTHRESHOLD;
286771
286820
  const precisionScale = Math.pow(10.0, spec.format.precision);
286772
286821
  const floor = Math.floor((smallestFormattedValue) * precisionScale + FPV_ROUNDFACTOR) / precisionScale;
286773
286822
  if (floor === 0) {
@@ -286819,6 +286868,37 @@ class Formatter {
286819
286868
  }
286820
286869
  return converted.magnitude;
286821
286870
  }
286871
+ static formatRatio(magnitude, spec) {
286872
+ if (null === spec.format.ratioType)
286873
+ 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.`);
286874
+ const precisionScale = Math.pow(10.0, spec.format.precision);
286875
+ let reciprocal = 0;
286876
+ if (magnitude === 0.0)
286877
+ return "0:1";
286878
+ else
286879
+ reciprocal = 1.0 / magnitude;
286880
+ switch (spec.format.ratioType) {
286881
+ case _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.RatioType.OneToN:
286882
+ return `1:${this.formatMagnitude(reciprocal, spec)}`;
286883
+ case _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.RatioType.NToOne:
286884
+ return `${this.formatMagnitude(magnitude, spec)}:1`;
286885
+ case _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.RatioType.ValueBased:
286886
+ if (magnitude > 1.0)
286887
+ return `${this.formatMagnitude(magnitude, spec)}:1`;
286888
+ else
286889
+ return `1:${this.formatMagnitude(reciprocal, spec)}`;
286890
+ case _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.RatioType.UseGreatestCommonDivisor:
286891
+ magnitude = Math.round(magnitude * precisionScale) / precisionScale;
286892
+ let numerator = magnitude * precisionScale;
286893
+ let denominator = precisionScale;
286894
+ const gcd = FractionalNumeric.getGreatestCommonFactor(numerator, denominator);
286895
+ numerator /= gcd;
286896
+ denominator /= gcd;
286897
+ return `${this.formatMagnitude(numerator, spec)}:${this.formatMagnitude(denominator, spec)}`;
286898
+ default:
286899
+ 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.`);
286900
+ }
286901
+ }
286822
286902
  }
286823
286903
  // eslint-disable-next-line @typescript-eslint/naming-convention
286824
286904
  Formatter.FPV_MINTHRESHOLD = 1.0e-14;
@@ -286999,6 +287079,9 @@ const isCustomFormatProps = (item) => {
286999
287079
 
287000
287080
  "use strict";
287001
287081
  __webpack_require__.r(__webpack_exports__);
287082
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
287083
+ /* harmony export */ "UnitConversionInvert": () => (/* binding */ UnitConversionInvert)
287084
+ /* harmony export */ });
287002
287085
  /*---------------------------------------------------------------------------------------------
287003
287086
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
287004
287087
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -287006,7 +287089,16 @@ __webpack_require__.r(__webpack_exports__);
287006
287089
  /** @packageDocumentation
287007
287090
  * @module Quantity
287008
287091
  */
287009
-
287092
+ /** Indicates the way in which unit values are inverted during conversion
287093
+ * @beta
287094
+ */
287095
+ var UnitConversionInvert;
287096
+ (function (UnitConversionInvert) {
287097
+ /** Invert value before applying the other conversion steps (the from-unit is the inverted unit) */
287098
+ UnitConversionInvert["InvertPreConversion"] = "InvertPreConversion";
287099
+ /** Invert value after applying the other conversion steps (the to-unit is the inverted unit) */
287100
+ UnitConversionInvert["InvertPostConversion"] = "InvertPostConversion";
287101
+ })(UnitConversionInvert || (UnitConversionInvert = {}));
287010
287102
 
287011
287103
 
287012
287104
  /***/ }),
@@ -287059,7 +287151,7 @@ var Operator;
287059
287151
  })(Operator || (Operator = {}));
287060
287152
  function isOperator(char) {
287061
287153
  if (typeof char === "number") {
287062
- // Convert the charcode to string.
287154
+ // Convert the CharCode to string.
287063
287155
  char = String.fromCharCode(char);
287064
287156
  }
287065
287157
  return Object.values(Operator).includes(char);
@@ -287306,7 +287398,7 @@ class Parser {
287306
287398
  continue;
287307
287399
  }
287308
287400
  if (wipToken.length === 0 && charCode === _Constants__WEBPACK_IMPORTED_MODULE_0__.QuantityConstants.CHAR_SPACE) {
287309
- // Dont add space when the wip token is empty.
287401
+ // Don't add space when the wip token is empty.
287310
287402
  continue;
287311
287403
  }
287312
287404
  wipToken = wipToken.concat(str[i]);
@@ -287556,7 +287648,7 @@ class Parser {
287556
287648
  }
287557
287649
  }
287558
287650
  if (conversion) {
287559
- value = (value * conversion.factor) + conversion.offset;
287651
+ value = (0,_Quantity__WEBPACK_IMPORTED_MODULE_3__.applyConversion)(value, conversion);
287560
287652
  }
287561
287653
  mag = mag + value;
287562
287654
  compositeUnitIndex++;
@@ -287595,6 +287687,9 @@ class Parser {
287595
287687
  if (parserSpec.format.type === _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth) {
287596
287688
  return this.parseAzimuthFormat(inString, parserSpec);
287597
287689
  }
287690
+ if (parserSpec.format.type === _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio) {
287691
+ return this.parseRatioFormat(inString, parserSpec);
287692
+ }
287598
287693
  return this.parseAndProcessTokens(inString, parserSpec.format, parserSpec.unitConversions);
287599
287694
  }
287600
287695
  /** Method to generate a Quantity given a string that represents a quantity value and likely a unit label.
@@ -287617,9 +287712,9 @@ class Parser {
287617
287712
  }
287618
287713
  });
287619
287714
  }
287620
- if (format.type === _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing || format.type === _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth) {
287715
+ 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) {
287621
287716
  // throw error indicating to call parseQuantityString instead
287622
- 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.`);
287717
+ 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.`);
287623
287718
  }
287624
287719
  return this.parseAndProcessTokens(inString, format, unitsConversions);
287625
287720
  }
@@ -287715,6 +287810,55 @@ class Parser {
287715
287810
  magnitude = this.normalizeAngle(magnitude, revolution);
287716
287811
  return { ok: true, value: magnitude };
287717
287812
  }
287813
+ static parseRatioFormat(inString, spec) {
287814
+ if (!inString)
287815
+ return { ok: false, error: ParseError.NoValueOrUnitFoundInString };
287816
+ const parts = inString.split(":");
287817
+ if (parts.length > 2)
287818
+ return { ok: false, error: ParseError.UnableToConvertParseTokensToQuantity };
287819
+ const numerator = parseFloat(parts[0]);
287820
+ let denominator;
287821
+ if (parts.length === 1) {
287822
+ denominator = 1.0;
287823
+ }
287824
+ else {
287825
+ denominator = parseFloat(parts[1]);
287826
+ }
287827
+ if (isNaN(numerator) || isNaN(denominator))
287828
+ return { ok: false, error: ParseError.NoValueOrUnitFoundInString };
287829
+ const defaultUnit = spec.format.units && spec.format.units.length > 0 ? spec.format.units[0][0] : undefined;
287830
+ const unitConversion = defaultUnit ? Parser.tryFindUnitConversion(defaultUnit.label, spec.unitConversions, defaultUnit) : undefined;
287831
+ if (!unitConversion) {
287832
+ 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}.`);
287833
+ }
287834
+ if (denominator === 0) {
287835
+ if (unitConversion.inversion && numerator === 1)
287836
+ return { ok: true, value: 0.0 };
287837
+ else
287838
+ return { ok: false, error: ParseError.MathematicOperationFoundButIsNotAllowed };
287839
+ }
287840
+ let quantity;
287841
+ if (spec.format.units && spec.outUnit) {
287842
+ quantity = new _Quantity__WEBPACK_IMPORTED_MODULE_3__.Quantity(spec.format.units[0][0], numerator / denominator);
287843
+ }
287844
+ else {
287845
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.MissingRequiredProperty, "Missing presentation unit or persistence unit for ratio format.");
287846
+ }
287847
+ let converted;
287848
+ try {
287849
+ converted = quantity.convertTo(spec.outUnit, unitConversion);
287850
+ }
287851
+ catch (err) {
287852
+ // for input of "0:N" with reversed unit
287853
+ if (err instanceof _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError && err.errorNumber === _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvertingZero) {
287854
+ return { ok: false, error: ParseError.MathematicOperationFoundButIsNotAllowed };
287855
+ }
287856
+ }
287857
+ if (converted === undefined || !converted.isValid) {
287858
+ 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}.`);
287859
+ }
287860
+ return { ok: true, value: converted.magnitude };
287861
+ }
287718
287862
  // TODO: The following two methods are redundant with Formatter. We should consider consolidating them.
287719
287863
  static normalizeAngle(magnitude, revolution) {
287720
287864
  magnitude = magnitude % revolution; // Strip anything that goes around more than once
@@ -287916,8 +288060,12 @@ class ParserSpec {
287916
288060
  __webpack_require__.r(__webpack_exports__);
287917
288061
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
287918
288062
  /* harmony export */ "Quantity": () => (/* binding */ Quantity),
287919
- /* harmony export */ "almostEqual": () => (/* binding */ almostEqual)
288063
+ /* harmony export */ "almostEqual": () => (/* binding */ almostEqual),
288064
+ /* harmony export */ "almostZero": () => (/* binding */ almostZero),
288065
+ /* harmony export */ "applyConversion": () => (/* binding */ applyConversion)
287920
288066
  /* harmony export */ });
288067
+ /* harmony import */ var _Exception__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Exception */ "../../core/quantity/lib/esm/Exception.js");
288068
+ /* harmony import */ var _Interfaces__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Interfaces */ "../../core/quantity/lib/esm/Interfaces.js");
287921
288069
  /*---------------------------------------------------------------------------------------------
287922
288070
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
287923
288071
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -287925,6 +288073,8 @@ __webpack_require__.r(__webpack_exports__);
287925
288073
  /** @packageDocumentation
287926
288074
  * @module Quantity
287927
288075
  */
288076
+
288077
+
287928
288078
  /**
287929
288079
  * Checks if two numbers are approximately equal within given relative tolerance.
287930
288080
  * @param a - The first number to compare.
@@ -287969,10 +288119,44 @@ class Quantity {
287969
288119
  * returned from the UnitsProvider.
287970
288120
  */
287971
288121
  convertTo(toUnit, conversion) {
287972
- const newMagnitude = (this.magnitude * conversion.factor) + conversion.offset;
288122
+ const newMagnitude = applyConversion(this.magnitude, conversion);
287973
288123
  return new Quantity(toUnit, newMagnitude);
287974
288124
  }
287975
288125
  }
288126
+ function invert(input) {
288127
+ if (almostZero(input)) // mimic the behavior of native here. We don't want to invert those very small values
288128
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_0__.QuantityStatus.InvertingZero, "Cannot invert zero value");
288129
+ return 1 / input;
288130
+ }
288131
+ /** Determines if a value is almost zero. (less than 1e-16)
288132
+ * @param value - The value to be checked.
288133
+ * @returns `true` if the value is almost zero, `false` otherwise.
288134
+ * @internal
288135
+ */
288136
+ function almostZero(value) {
288137
+ return almostEqual(value, 0.0);
288138
+ }
288139
+ /**
288140
+ * Applies a unit conversion to a given value.
288141
+ * @param value - The value to be converted.
288142
+ * @param props - The unit conversion properties.
288143
+ * @returns The converted value.
288144
+ * @internal
288145
+ */
288146
+ function applyConversion(value, props) {
288147
+ let convertedValue = value;
288148
+ // Apply pre-conversion inversion if specified
288149
+ if (props.inversion === _Interfaces__WEBPACK_IMPORTED_MODULE_1__.UnitConversionInvert.InvertPreConversion) {
288150
+ convertedValue = invert(convertedValue);
288151
+ }
288152
+ // Apply the conversion factor and offset
288153
+ convertedValue = (convertedValue * props.factor) + props.offset;
288154
+ // Apply post-conversion inversion if specified
288155
+ if (props.inversion === _Interfaces__WEBPACK_IMPORTED_MODULE_1__.UnitConversionInvert.InvertPostConversion) {
288156
+ convertedValue = invert(convertedValue);
288157
+ }
288158
+ return convertedValue;
288159
+ }
287976
288160
 
287977
288161
 
287978
288162
  /***/ }),
@@ -288058,9 +288242,13 @@ __webpack_require__.r(__webpack_exports__);
288058
288242
  /* harmony export */ "QuantityConstants": () => (/* reexport safe */ _Constants__WEBPACK_IMPORTED_MODULE_0__.QuantityConstants),
288059
288243
  /* harmony export */ "QuantityError": () => (/* reexport safe */ _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError),
288060
288244
  /* harmony export */ "QuantityStatus": () => (/* reexport safe */ _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus),
288245
+ /* harmony export */ "RatioType": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.RatioType),
288061
288246
  /* harmony export */ "ScientificType": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.ScientificType),
288062
288247
  /* harmony export */ "ShowSignOption": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.ShowSignOption),
288248
+ /* harmony export */ "UnitConversionInvert": () => (/* reexport safe */ _Interfaces__WEBPACK_IMPORTED_MODULE_2__.UnitConversionInvert),
288063
288249
  /* harmony export */ "almostEqual": () => (/* reexport safe */ _Quantity__WEBPACK_IMPORTED_MODULE_5__.almostEqual),
288250
+ /* harmony export */ "almostZero": () => (/* reexport safe */ _Quantity__WEBPACK_IMPORTED_MODULE_5__.almostZero),
288251
+ /* harmony export */ "applyConversion": () => (/* reexport safe */ _Quantity__WEBPACK_IMPORTED_MODULE_5__.applyConversion),
288064
288252
  /* harmony export */ "formatStringRgx": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.formatStringRgx),
288065
288253
  /* harmony export */ "formatTraitsToArray": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.formatTraitsToArray),
288066
288254
  /* harmony export */ "formatTypeToString": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.formatTypeToString),
@@ -288072,6 +288260,7 @@ __webpack_require__.r(__webpack_exports__);
288072
288260
  /* harmony export */ "parseFormatType": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parseFormatType),
288073
288261
  /* harmony export */ "parseFractionalPrecision": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parseFractionalPrecision),
288074
288262
  /* harmony export */ "parsePrecision": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parsePrecision),
288263
+ /* harmony export */ "parseRatioType": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parseRatioType),
288075
288264
  /* harmony export */ "parseScientificType": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parseScientificType),
288076
288265
  /* harmony export */ "parseShowSignOption": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.parseShowSignOption),
288077
288266
  /* harmony export */ "scientificTypeToString": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.scientificTypeToString),
@@ -303062,7 +303251,7 @@ var loadLanguages = instance.loadLanguages;
303062
303251
  /***/ ((module) => {
303063
303252
 
303064
303253
  "use strict";
303065
- 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"}}');
303254
+ 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"}}');
303066
303255
 
303067
303256
  /***/ })
303068
303257