@itwin/core-i18n 3.6.0-dev.3 → 3.6.0-dev.33

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.
@@ -17,13 +17,13 @@
17
17
  /** @packageDocumentation
18
18
  * @module Localization
19
19
  */
20
- function cov_12vai742k9() {
21
- var path = "D:\\vsts_a\\3\\s\\core\\i18n\\lib\\cjs\\ITwinLocalization.js";
22
- var hash = "dfb8d32e11619f1734035709561938a2786b205b";
20
+ function cov_1exkrud5g4() {
21
+ var path = "D:\\vsts_a\\2\\s\\core\\i18n\\lib\\cjs\\ITwinLocalization.js";
22
+ var hash = "52c42599e363954c70ab9795a29069b293c582c6";
23
23
  var global = new Function("return this")();
24
24
  var gcv = "__coverage__";
25
25
  var coverageData = {
26
- path: "D:\\vsts_a\\3\\s\\core\\i18n\\lib\\cjs\\ITwinLocalization.js",
26
+ path: "D:\\vsts_a\\2\\s\\core\\i18n\\lib\\cjs\\ITwinLocalization.js",
27
27
  statementMap: {
28
28
  "0": {
29
29
  start: {
@@ -3086,13 +3086,13 @@ function cov_12vai742k9() {
3086
3086
  inputSourceMap: {
3087
3087
  version: 3,
3088
3088
  file: "ITwinLocalization.js",
3089
- sources: ["D:\\vsts_a\\3\\s\\core\\i18n\\src\\ITwinLocalization.ts"],
3089
+ sources: ["D:\\vsts_a\\2\\s\\core\\i18n\\src\\ITwinLocalization.ts"],
3090
3090
  names: [],
3091
3091
  mappings: "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",
3092
3092
  sourcesContent: ["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Localization\r\n */\r\n\r\nimport i18next, { i18n, InitOptions, Module, TOptionsBase } from \"i18next\";\r\nimport i18nextBrowserLanguageDetector, { DetectorOptions } from \"i18next-browser-languagedetector\";\r\nimport Backend, { BackendOptions } from \"i18next-http-backend\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport type { Localization } from \"@itwin/core-common\";\r\n\r\nconst DEFAULT_MAX_RETRIES: number = 1; // a low number prevents wasted time and potential timeouts when requesting localization files throws an error\r\n\r\n/** Options for ITwinLocalization\r\n * @public\r\n */\r\nexport interface LocalizationOptions {\r\n urlTemplate?: string;\r\n backendPlugin?: Module;\r\n detectorPlugin?: Module;\r\n initOptions?: InitOptions;\r\n backendHttpOptions?: BackendOptions;\r\n detectorOptions?: DetectorOptions;\r\n}\r\n\r\n/** Supplies localizations for iTwin.js\r\n * @note this class uses the [i18next](https://www.i18next.com/) package.\r\n * @public\r\n */\r\nexport class ITwinLocalization implements Localization {\r\n public i18next: i18n;\r\n private readonly _initOptions: InitOptions;\r\n private readonly _backendOptions: BackendOptions;\r\n private readonly _detectionOptions: DetectorOptions;\r\n private readonly _namespaces = new Map<string, Promise<void>>();\r\n\r\n public constructor(options?: LocalizationOptions) {\r\n this.i18next = i18next.createInstance();\r\n\r\n this._backendOptions = {\r\n loadPath: options?.urlTemplate ?? \"locales/{{lng}}/{{ns}}.json\",\r\n crossDomain: true,\r\n ...options?.backendHttpOptions,\r\n };\r\n\r\n this._detectionOptions = {\r\n order: [\"querystring\", \"navigator\", \"htmlTag\"],\r\n lookupQuerystring: \"lng\",\r\n caches: [],\r\n ...options?.detectorOptions,\r\n };\r\n\r\n this._initOptions = {\r\n interpolation: { escapeValue: true },\r\n fallbackLng: \"en\",\r\n maxRetries: DEFAULT_MAX_RETRIES,\r\n backend: this._backendOptions,\r\n detection: this._detectionOptions,\r\n ...options?.initOptions,\r\n };\r\n\r\n this.i18next\r\n .use(options?.detectorPlugin ?? i18nextBrowserLanguageDetector)\r\n .use(options?.backendPlugin ?? Backend)\r\n .use(TranslationLogger);\r\n }\r\n\r\n public async initialize(namespaces: string[]): Promise<void> {\r\n\r\n // Also consider namespaces passed into constructor\r\n const initNamespaces: string[] = [this._initOptions.ns || []].flat();\r\n const combinedNamespaces: Set<string> = new Set([...namespaces, ...initNamespaces]); // without duplicates\r\n\r\n const defaultNamespace: string | false | readonly string[] = this._initOptions.defaultNS ?? namespaces[0];\r\n if (defaultNamespace)\r\n combinedNamespaces.add(defaultNamespace as string); // Make sure default namespace is in namespaces list\r\n\r\n const initOptions: InitOptions = {\r\n ...this._initOptions,\r\n defaultNS: defaultNamespace,\r\n ns: [...combinedNamespaces],\r\n };\r\n\r\n // if in a development environment, set debugging\r\n if (process.env.NODE_ENV === \"development\")\r\n initOptions.debug = true;\r\n\r\n const initPromise = this.i18next.init(initOptions) as unknown as Promise<void>;\r\n\r\n for (const ns of namespaces)\r\n this._namespaces.set(ns, initPromise);\r\n\r\n return initPromise;\r\n }\r\n\r\n /** Replace all instances of `%{key}` within a string with the translations of those keys.\r\n * For example:\r\n * ``` ts\r\n * \"MyKeys\": {\r\n * \"Key1\": \"First value\",\r\n * \"Key2\": \"Second value\"\r\n * }\r\n * ```\r\n *\r\n * ``` ts\r\n * i18.translateKeys(\"string with %{MyKeys.Key1} followed by %{MyKeys.Key2}!\"\") // returns \"string with First Value followed by Second Value!\"\r\n * ```\r\n * @param line The input line, potentially containing %{keys}.\r\n * @returns The line with all %{keys} translated\r\n * @public\r\n */\r\n public getLocalizedKeys(line: string): string {\r\n return line.replace(/\\%\\{(.+?)\\}/g, (_match, tag) => this.getLocalizedString(tag));\r\n }\r\n\r\n /** Return the translated value of a key.\r\n * @param key - the key that matches a property in the JSON localization file.\r\n * @note The key includes the namespace, which identifies the particular localization file that contains the property,\r\n * followed by a colon, followed by the property in the JSON file.\r\n * For example:\r\n * ``` ts\r\n * const dataString: string = IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.BingDataAttribution\");\r\n * ```\r\n * assigns to dataString the string with property BackgroundMap.BingDataAttribution from the iModelJs.json localization file.\r\n * @returns The string corresponding to the first key that resolves.\r\n * @throws Error if no keys resolve to a string.\r\n * @public\r\n */\r\n public getLocalizedString(key: string | string[], options?: TOptionsBase): string {\r\n if (options?.returnDetails || options?.returnObjects) {\r\n throw new Error(\"Translation key must map to a string, but the given options will result in an object\");\r\n }\r\n\r\n const value = this.i18next.t(key, options);\r\n\r\n if (typeof value !== \"string\") {\r\n throw new Error(\"Translation key(s) string not found\");\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /** Similar to `getLocalizedString` but the default namespace is a separate parameter and the key does not need\r\n * to include a namespace. If a key includes a namespace, that namespace will be used for interpolating that key.\r\n * @param namespace - the namespace that identifies the particular localization file that contains the property.\r\n * @param key - the key that matches a property in the JSON localization file.\r\n * @returns The string corresponding to the first key that resolves.\r\n * @throws Error if no keys resolve to a string.\r\n * @internal\r\n */\r\n public getLocalizedStringWithNamespace(namespace: string, key: string | string[], options?: TOptionsBase): string {\r\n let fullKey: string | string[] = \"\";\r\n\r\n if (typeof key === \"string\") {\r\n fullKey = `${namespace}:${key}`;\r\n } else {\r\n fullKey = key.map((subKey: string) => {\r\n return `${namespace}:${subKey}`;\r\n });\r\n }\r\n\r\n return this.getLocalizedString(fullKey, options);\r\n }\r\n\r\n /** Gets the English translation.\r\n * @param namespace - the namespace that identifies the particular localization file that contains the property.\r\n * @param key - the key that matches a property in the JSON localization file.\r\n * @returns The string corresponding to the first key that resolves.\r\n * @throws Error if no keys resolve to a string.\r\n * @internal\r\n */\r\n public getEnglishString(namespace: string, key: string | string[], options?: TOptionsBase): string {\r\n if (options?.returnDetails || options?.returnObjects) {\r\n throw new Error(\"Translation key must map to a string, but the given options will result in an object\");\r\n }\r\n\r\n options = {\r\n ...options,\r\n ns: namespace, // ensure namespace argument is used\r\n };\r\n\r\n const en = this.i18next.getFixedT(\"en\", namespace);\r\n const str = en(key, options);\r\n if (typeof str !== \"string\")\r\n throw new Error(\"Translation key(s) not found\");\r\n\r\n return str;\r\n }\r\n\r\n /** Get the promise for an already registered Namespace.\r\n * @param name - the name of the namespace\r\n * @public\r\n */\r\n public getNamespacePromise(name: string): Promise<void> | undefined {\r\n return this._namespaces.get(name);\r\n }\r\n\r\n /** @internal */\r\n public getLanguageList(): readonly string[] {\r\n return this.i18next.languages;\r\n }\r\n\r\n /** override the language detected in the browser */\r\n public async changeLanguage(language: string) {\r\n return this.i18next.changeLanguage(language) as unknown as Promise<void>;\r\n }\r\n\r\n /** Register a new Namespace and return it. If the namespace is already registered, it will be returned.\r\n * @param name - the name of the namespace, which is the base name of the JSON file that contains the localization properties.\r\n * @note - The registerNamespace method starts fetching the appropriate version of the JSON localization file from the server,\r\n * based on the current locale. To make sure that fetch is complete before performing translations from this namespace, await\r\n * fulfillment of the readPromise Promise property of the returned LocalizationNamespace.\r\n * @see [Localization in iTwin.js]($docs/learning/frontend/Localization.md)\r\n * @public\r\n */\r\n public async registerNamespace(name: string): Promise<void> {\r\n const existing = this._namespaces.get(name);\r\n if (existing !== undefined)\r\n return existing;\r\n\r\n const theReadPromise = new Promise<void>((resolve) => {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.i18next.loadNamespaces(name, (err) => {\r\n if (!err)\r\n return resolve();\r\n\r\n // Here we got a non-null err object.\r\n // This method is called when the system has attempted to load the resources for the namespaces for each possible locale.\r\n // For example 'fr-ca' might be the most specific locale, in which case 'fr' and 'en' are fallback locales.\r\n // Using Backend from i18next-http-backend, err will be an array of strings of each namespace it tried to read and its locale.\r\n // There might be errs for some other namespaces as well as this one. We resolve the promise unless there's an error for each possible locale.\r\n let locales = this.getLanguageList().map((thisLocale: any) => `/${thisLocale}/`);\r\n\r\n try {\r\n for (const thisError of err) {\r\n if (typeof thisError === \"string\")\r\n locales = locales.filter((thisLocale) => !thisError.includes(thisLocale));\r\n }\r\n } catch (e) {\r\n locales = [];\r\n }\r\n // if we removed every locale from the array, it wasn't loaded.\r\n if (locales.length === 0)\r\n Logger.logError(\"i18n\", `No resources for namespace ${name} could be loaded`);\r\n\r\n resolve();\r\n });\r\n });\r\n this._namespaces.set(name, theReadPromise);\r\n return theReadPromise;\r\n }\r\n\r\n /** @internal */\r\n public unregisterNamespace(name: string): void {\r\n this._namespaces.delete(name);\r\n }\r\n}\r\n\r\nclass TranslationLogger {\r\n public static readonly type = \"logger\";\r\n public log(args: string[]) { Logger.logInfo(\"i18n\", this.createLogMessage(args)); }\r\n public warn(args: string[]) { Logger.logWarning(\"i18n\", this.createLogMessage(args)); }\r\n public error(args: string[]) { Logger.logError(\"i18n\", this.createLogMessage(args)); }\r\n private createLogMessage(args: string[]) {\r\n let message = args[0];\r\n for (let i = 1; i < args.length; ++i) {\r\n if (typeof args[i] === \"string\")\r\n message += `\\n ${args[i]}`;\r\n }\r\n return message;\r\n }\r\n}\r\n"]
3093
3093
  },
3094
3094
  _coverageSchema: "1a1c01bbd47fc00a2c39e90264f33305004495a9",
3095
- hash: "dfb8d32e11619f1734035709561938a2786b205b"
3095
+ hash: "52c42599e363954c70ab9795a29069b293c582c6"
3096
3096
  };
3097
3097
  var coverage = global[gcv] || (global[gcv] = {});
3098
3098
  if (!coverage[path] || coverage[path].hash !== hash) {
@@ -3101,57 +3101,57 @@ function cov_12vai742k9() {
3101
3101
  var actualCoverage = coverage[path];
3102
3102
  {
3103
3103
  // @ts-ignore
3104
- cov_12vai742k9 = function () {
3104
+ cov_1exkrud5g4 = function () {
3105
3105
  return actualCoverage;
3106
3106
  };
3107
3107
  }
3108
3108
  return actualCoverage;
3109
3109
  }
3110
- cov_12vai742k9();
3111
- var __importDefault = (cov_12vai742k9().s[0]++, (cov_12vai742k9().b[0][0]++, this) && (cov_12vai742k9().b[0][1]++, this.__importDefault) || (cov_12vai742k9().b[0][2]++, function (mod) {
3112
- cov_12vai742k9().f[0]++;
3113
- cov_12vai742k9().s[1]++;
3114
- return (cov_12vai742k9().b[2][0]++, mod) && (cov_12vai742k9().b[2][1]++, mod.__esModule) ? (cov_12vai742k9().b[1][0]++, mod) : (cov_12vai742k9().b[1][1]++, {
3110
+ cov_1exkrud5g4();
3111
+ var __importDefault = (cov_1exkrud5g4().s[0]++, (cov_1exkrud5g4().b[0][0]++, this) && (cov_1exkrud5g4().b[0][1]++, this.__importDefault) || (cov_1exkrud5g4().b[0][2]++, function (mod) {
3112
+ cov_1exkrud5g4().f[0]++;
3113
+ cov_1exkrud5g4().s[1]++;
3114
+ return (cov_1exkrud5g4().b[2][0]++, mod) && (cov_1exkrud5g4().b[2][1]++, mod.__esModule) ? (cov_1exkrud5g4().b[1][0]++, mod) : (cov_1exkrud5g4().b[1][1]++, {
3115
3115
  "default": mod
3116
3116
  });
3117
3117
  }));
3118
- cov_12vai742k9().s[2]++;
3118
+ cov_1exkrud5g4().s[2]++;
3119
3119
  Object.defineProperty(exports, "__esModule", ({
3120
3120
  value: true
3121
3121
  }));
3122
- cov_12vai742k9().s[3]++;
3122
+ cov_1exkrud5g4().s[3]++;
3123
3123
  exports.ITwinLocalization = void 0;
3124
- const i18next_1 = (cov_12vai742k9().s[4]++, __importDefault(__webpack_require__(/*! i18next */ "../../common/temp/node_modules/.pnpm/i18next@21.10.0/node_modules/i18next/dist/cjs/i18next.js")));
3125
- const i18next_browser_languagedetector_1 = (cov_12vai742k9().s[5]++, __importDefault(__webpack_require__(/*! i18next-browser-languagedetector */ "../../common/temp/node_modules/.pnpm/i18next-browser-languagedetector@6.1.8/node_modules/i18next-browser-languagedetector/dist/cjs/i18nextBrowserLanguageDetector.js")));
3126
- const i18next_http_backend_1 = (cov_12vai742k9().s[6]++, __importDefault(__webpack_require__(/*! i18next-http-backend */ "../../common/temp/node_modules/.pnpm/i18next-http-backend@1.4.5/node_modules/i18next-http-backend/cjs/index.js")));
3127
- const core_bentley_1 = (cov_12vai742k9().s[7]++, __webpack_require__(/*! @itwin/core-bentley */ "../bentley/lib/esm/core-bentley.js"));
3128
- const DEFAULT_MAX_RETRIES = (cov_12vai742k9().s[8]++, 1); // a low number prevents wasted time and potential timeouts when requesting localization files throws an error
3124
+ const i18next_1 = (cov_1exkrud5g4().s[4]++, __importDefault(__webpack_require__(/*! i18next */ "../../common/temp/node_modules/.pnpm/i18next@21.10.0/node_modules/i18next/dist/cjs/i18next.js")));
3125
+ const i18next_browser_languagedetector_1 = (cov_1exkrud5g4().s[5]++, __importDefault(__webpack_require__(/*! i18next-browser-languagedetector */ "../../common/temp/node_modules/.pnpm/i18next-browser-languagedetector@6.1.8/node_modules/i18next-browser-languagedetector/dist/cjs/i18nextBrowserLanguageDetector.js")));
3126
+ const i18next_http_backend_1 = (cov_1exkrud5g4().s[6]++, __importDefault(__webpack_require__(/*! i18next-http-backend */ "../../common/temp/node_modules/.pnpm/i18next-http-backend@1.4.5/node_modules/i18next-http-backend/cjs/index.js")));
3127
+ const core_bentley_1 = (cov_1exkrud5g4().s[7]++, __webpack_require__(/*! @itwin/core-bentley */ "../bentley/lib/esm/core-bentley.js"));
3128
+ const DEFAULT_MAX_RETRIES = (cov_1exkrud5g4().s[8]++, 1); // a low number prevents wasted time and potential timeouts when requesting localization files throws an error
3129
3129
  /** Supplies localizations for iTwin.js
3130
3130
  * @note this class uses the [i18next](https://www.i18next.com/) package.
3131
3131
  * @public
3132
3132
  */
3133
3133
  class ITwinLocalization {
3134
3134
  constructor(options) {
3135
- cov_12vai742k9().f[1]++;
3135
+ cov_1exkrud5g4().f[1]++;
3136
3136
  var _a, _b, _c;
3137
- cov_12vai742k9().s[9]++;
3137
+ cov_1exkrud5g4().s[9]++;
3138
3138
  this._namespaces = new Map();
3139
- cov_12vai742k9().s[10]++;
3139
+ cov_1exkrud5g4().s[10]++;
3140
3140
  this.i18next = i18next_1.default.createInstance();
3141
- cov_12vai742k9().s[11]++;
3141
+ cov_1exkrud5g4().s[11]++;
3142
3142
  this._backendOptions = {
3143
- loadPath: (cov_12vai742k9().b[4][0]++, (_a = (cov_12vai742k9().b[6][0]++, options === null) || (cov_12vai742k9().b[6][1]++, options === void 0) ? (cov_12vai742k9().b[5][0]++, void 0) : (cov_12vai742k9().b[5][1]++, options.urlTemplate)) !== null) && (cov_12vai742k9().b[4][1]++, _a !== void 0) ? (cov_12vai742k9().b[3][0]++, _a) : (cov_12vai742k9().b[3][1]++, "locales/{{lng}}/{{ns}}.json"),
3143
+ loadPath: (cov_1exkrud5g4().b[4][0]++, (_a = (cov_1exkrud5g4().b[6][0]++, options === null) || (cov_1exkrud5g4().b[6][1]++, options === void 0) ? (cov_1exkrud5g4().b[5][0]++, void 0) : (cov_1exkrud5g4().b[5][1]++, options.urlTemplate)) !== null) && (cov_1exkrud5g4().b[4][1]++, _a !== void 0) ? (cov_1exkrud5g4().b[3][0]++, _a) : (cov_1exkrud5g4().b[3][1]++, "locales/{{lng}}/{{ns}}.json"),
3144
3144
  crossDomain: true,
3145
- ...((cov_12vai742k9().b[8][0]++, options === null) || (cov_12vai742k9().b[8][1]++, options === void 0) ? (cov_12vai742k9().b[7][0]++, void 0) : (cov_12vai742k9().b[7][1]++, options.backendHttpOptions))
3145
+ ...((cov_1exkrud5g4().b[8][0]++, options === null) || (cov_1exkrud5g4().b[8][1]++, options === void 0) ? (cov_1exkrud5g4().b[7][0]++, void 0) : (cov_1exkrud5g4().b[7][1]++, options.backendHttpOptions))
3146
3146
  };
3147
- cov_12vai742k9().s[12]++;
3147
+ cov_1exkrud5g4().s[12]++;
3148
3148
  this._detectionOptions = {
3149
3149
  order: ["querystring", "navigator", "htmlTag"],
3150
3150
  lookupQuerystring: "lng",
3151
3151
  caches: [],
3152
- ...((cov_12vai742k9().b[10][0]++, options === null) || (cov_12vai742k9().b[10][1]++, options === void 0) ? (cov_12vai742k9().b[9][0]++, void 0) : (cov_12vai742k9().b[9][1]++, options.detectorOptions))
3152
+ ...((cov_1exkrud5g4().b[10][0]++, options === null) || (cov_1exkrud5g4().b[10][1]++, options === void 0) ? (cov_1exkrud5g4().b[9][0]++, void 0) : (cov_1exkrud5g4().b[9][1]++, options.detectorOptions))
3153
3153
  };
3154
- cov_12vai742k9().s[13]++;
3154
+ cov_1exkrud5g4().s[13]++;
3155
3155
  this._initOptions = {
3156
3156
  interpolation: {
3157
3157
  escapeValue: true
@@ -3160,43 +3160,43 @@ class ITwinLocalization {
3160
3160
  maxRetries: DEFAULT_MAX_RETRIES,
3161
3161
  backend: this._backendOptions,
3162
3162
  detection: this._detectionOptions,
3163
- ...((cov_12vai742k9().b[12][0]++, options === null) || (cov_12vai742k9().b[12][1]++, options === void 0) ? (cov_12vai742k9().b[11][0]++, void 0) : (cov_12vai742k9().b[11][1]++, options.initOptions))
3163
+ ...((cov_1exkrud5g4().b[12][0]++, options === null) || (cov_1exkrud5g4().b[12][1]++, options === void 0) ? (cov_1exkrud5g4().b[11][0]++, void 0) : (cov_1exkrud5g4().b[11][1]++, options.initOptions))
3164
3164
  };
3165
- cov_12vai742k9().s[14]++;
3166
- this.i18next.use((cov_12vai742k9().b[14][0]++, (_b = (cov_12vai742k9().b[16][0]++, options === null) || (cov_12vai742k9().b[16][1]++, options === void 0) ? (cov_12vai742k9().b[15][0]++, void 0) : (cov_12vai742k9().b[15][1]++, options.detectorPlugin)) !== null) && (cov_12vai742k9().b[14][1]++, _b !== void 0) ? (cov_12vai742k9().b[13][0]++, _b) : (cov_12vai742k9().b[13][1]++, i18next_browser_languagedetector_1.default)).use((cov_12vai742k9().b[18][0]++, (_c = (cov_12vai742k9().b[20][0]++, options === null) || (cov_12vai742k9().b[20][1]++, options === void 0) ? (cov_12vai742k9().b[19][0]++, void 0) : (cov_12vai742k9().b[19][1]++, options.backendPlugin)) !== null) && (cov_12vai742k9().b[18][1]++, _c !== void 0) ? (cov_12vai742k9().b[17][0]++, _c) : (cov_12vai742k9().b[17][1]++, i18next_http_backend_1.default)).use(TranslationLogger);
3165
+ cov_1exkrud5g4().s[14]++;
3166
+ this.i18next.use((cov_1exkrud5g4().b[14][0]++, (_b = (cov_1exkrud5g4().b[16][0]++, options === null) || (cov_1exkrud5g4().b[16][1]++, options === void 0) ? (cov_1exkrud5g4().b[15][0]++, void 0) : (cov_1exkrud5g4().b[15][1]++, options.detectorPlugin)) !== null) && (cov_1exkrud5g4().b[14][1]++, _b !== void 0) ? (cov_1exkrud5g4().b[13][0]++, _b) : (cov_1exkrud5g4().b[13][1]++, i18next_browser_languagedetector_1.default)).use((cov_1exkrud5g4().b[18][0]++, (_c = (cov_1exkrud5g4().b[20][0]++, options === null) || (cov_1exkrud5g4().b[20][1]++, options === void 0) ? (cov_1exkrud5g4().b[19][0]++, void 0) : (cov_1exkrud5g4().b[19][1]++, options.backendPlugin)) !== null) && (cov_1exkrud5g4().b[18][1]++, _c !== void 0) ? (cov_1exkrud5g4().b[17][0]++, _c) : (cov_1exkrud5g4().b[17][1]++, i18next_http_backend_1.default)).use(TranslationLogger);
3167
3167
  }
3168
3168
  async initialize(namespaces) {
3169
- cov_12vai742k9().f[2]++;
3169
+ cov_1exkrud5g4().f[2]++;
3170
3170
  var _a;
3171
3171
  // Also consider namespaces passed into constructor
3172
- const initNamespaces = (cov_12vai742k9().s[15]++, [(cov_12vai742k9().b[21][0]++, this._initOptions.ns) || (cov_12vai742k9().b[21][1]++, [])].flat());
3173
- const combinedNamespaces = (cov_12vai742k9().s[16]++, new Set([...namespaces, ...initNamespaces])); // without duplicates
3174
- const defaultNamespace = (cov_12vai742k9().s[17]++, (cov_12vai742k9().b[23][0]++, (_a = this._initOptions.defaultNS) !== null) && (cov_12vai742k9().b[23][1]++, _a !== void 0) ? (cov_12vai742k9().b[22][0]++, _a) : (cov_12vai742k9().b[22][1]++, namespaces[0]));
3175
- cov_12vai742k9().s[18]++;
3172
+ const initNamespaces = (cov_1exkrud5g4().s[15]++, [(cov_1exkrud5g4().b[21][0]++, this._initOptions.ns) || (cov_1exkrud5g4().b[21][1]++, [])].flat());
3173
+ const combinedNamespaces = (cov_1exkrud5g4().s[16]++, new Set([...namespaces, ...initNamespaces])); // without duplicates
3174
+ const defaultNamespace = (cov_1exkrud5g4().s[17]++, (cov_1exkrud5g4().b[23][0]++, (_a = this._initOptions.defaultNS) !== null) && (cov_1exkrud5g4().b[23][1]++, _a !== void 0) ? (cov_1exkrud5g4().b[22][0]++, _a) : (cov_1exkrud5g4().b[22][1]++, namespaces[0]));
3175
+ cov_1exkrud5g4().s[18]++;
3176
3176
  if (defaultNamespace) {
3177
- cov_12vai742k9().b[24][0]++;
3178
- cov_12vai742k9().s[19]++;
3177
+ cov_1exkrud5g4().b[24][0]++;
3178
+ cov_1exkrud5g4().s[19]++;
3179
3179
  combinedNamespaces.add(defaultNamespace);
3180
3180
  } else {
3181
- cov_12vai742k9().b[24][1]++;
3181
+ cov_1exkrud5g4().b[24][1]++;
3182
3182
  } // Make sure default namespace is in namespaces list
3183
- const initOptions = (cov_12vai742k9().s[20]++, {
3183
+ const initOptions = (cov_1exkrud5g4().s[20]++, {
3184
3184
  ...this._initOptions,
3185
3185
  defaultNS: defaultNamespace,
3186
3186
  ns: [...combinedNamespaces]
3187
3187
  });
3188
3188
  // if in a development environment, set debugging
3189
- cov_12vai742k9().s[21]++;
3189
+ cov_1exkrud5g4().s[21]++;
3190
3190
  if (false) {} else {
3191
- cov_12vai742k9().b[25][1]++;
3191
+ cov_1exkrud5g4().b[25][1]++;
3192
3192
  }
3193
- const initPromise = (cov_12vai742k9().s[23]++, this.i18next.init(initOptions));
3194
- cov_12vai742k9().s[24]++;
3193
+ const initPromise = (cov_1exkrud5g4().s[23]++, this.i18next.init(initOptions));
3194
+ cov_1exkrud5g4().s[24]++;
3195
3195
  for (const ns of namespaces) {
3196
- cov_12vai742k9().s[25]++;
3196
+ cov_1exkrud5g4().s[25]++;
3197
3197
  this._namespaces.set(ns, initPromise);
3198
3198
  }
3199
- cov_12vai742k9().s[26]++;
3199
+ cov_1exkrud5g4().s[26]++;
3200
3200
  return initPromise;
3201
3201
  }
3202
3202
  /** Replace all instances of `%{key}` within a string with the translations of those keys.
@@ -3216,11 +3216,11 @@ class ITwinLocalization {
3216
3216
  * @public
3217
3217
  */
3218
3218
  getLocalizedKeys(line) {
3219
- cov_12vai742k9().f[3]++;
3220
- cov_12vai742k9().s[27]++;
3219
+ cov_1exkrud5g4().f[3]++;
3220
+ cov_1exkrud5g4().s[27]++;
3221
3221
  return line.replace(/\%\{(.+?)\}/g, (_match, tag) => {
3222
- cov_12vai742k9().f[4]++;
3223
- cov_12vai742k9().s[28]++;
3222
+ cov_1exkrud5g4().f[4]++;
3223
+ cov_1exkrud5g4().s[28]++;
3224
3224
  return this.getLocalizedString(tag);
3225
3225
  });
3226
3226
  }
@@ -3238,25 +3238,25 @@ class ITwinLocalization {
3238
3238
  * @public
3239
3239
  */
3240
3240
  getLocalizedString(key, options) {
3241
- cov_12vai742k9().f[5]++;
3242
- cov_12vai742k9().s[29]++;
3243
- if ((cov_12vai742k9().b[27][0]++, (cov_12vai742k9().b[29][0]++, options === null) || (cov_12vai742k9().b[29][1]++, options === void 0) ? (cov_12vai742k9().b[28][0]++, void 0) : (cov_12vai742k9().b[28][1]++, options.returnDetails)) || (cov_12vai742k9().b[27][1]++, (cov_12vai742k9().b[31][0]++, options === null) || (cov_12vai742k9().b[31][1]++, options === void 0) ? (cov_12vai742k9().b[30][0]++, void 0) : (cov_12vai742k9().b[30][1]++, options.returnObjects))) {
3244
- cov_12vai742k9().b[26][0]++;
3245
- cov_12vai742k9().s[30]++;
3241
+ cov_1exkrud5g4().f[5]++;
3242
+ cov_1exkrud5g4().s[29]++;
3243
+ if ((cov_1exkrud5g4().b[27][0]++, (cov_1exkrud5g4().b[29][0]++, options === null) || (cov_1exkrud5g4().b[29][1]++, options === void 0) ? (cov_1exkrud5g4().b[28][0]++, void 0) : (cov_1exkrud5g4().b[28][1]++, options.returnDetails)) || (cov_1exkrud5g4().b[27][1]++, (cov_1exkrud5g4().b[31][0]++, options === null) || (cov_1exkrud5g4().b[31][1]++, options === void 0) ? (cov_1exkrud5g4().b[30][0]++, void 0) : (cov_1exkrud5g4().b[30][1]++, options.returnObjects))) {
3244
+ cov_1exkrud5g4().b[26][0]++;
3245
+ cov_1exkrud5g4().s[30]++;
3246
3246
  throw new Error("Translation key must map to a string, but the given options will result in an object");
3247
3247
  } else {
3248
- cov_12vai742k9().b[26][1]++;
3248
+ cov_1exkrud5g4().b[26][1]++;
3249
3249
  }
3250
- const value = (cov_12vai742k9().s[31]++, this.i18next.t(key, options));
3251
- cov_12vai742k9().s[32]++;
3250
+ const value = (cov_1exkrud5g4().s[31]++, this.i18next.t(key, options));
3251
+ cov_1exkrud5g4().s[32]++;
3252
3252
  if (typeof value !== "string") {
3253
- cov_12vai742k9().b[32][0]++;
3254
- cov_12vai742k9().s[33]++;
3253
+ cov_1exkrud5g4().b[32][0]++;
3254
+ cov_1exkrud5g4().s[33]++;
3255
3255
  throw new Error("Translation key(s) string not found");
3256
3256
  } else {
3257
- cov_12vai742k9().b[32][1]++;
3257
+ cov_1exkrud5g4().b[32][1]++;
3258
3258
  }
3259
- cov_12vai742k9().s[34]++;
3259
+ cov_1exkrud5g4().s[34]++;
3260
3260
  return value;
3261
3261
  }
3262
3262
  /** Similar to `getLocalizedString` but the default namespace is a separate parameter and the key does not need
@@ -3268,23 +3268,23 @@ class ITwinLocalization {
3268
3268
  * @internal
3269
3269
  */
3270
3270
  getLocalizedStringWithNamespace(namespace, key, options) {
3271
- cov_12vai742k9().f[6]++;
3272
- let fullKey = (cov_12vai742k9().s[35]++, "");
3273
- cov_12vai742k9().s[36]++;
3271
+ cov_1exkrud5g4().f[6]++;
3272
+ let fullKey = (cov_1exkrud5g4().s[35]++, "");
3273
+ cov_1exkrud5g4().s[36]++;
3274
3274
  if (typeof key === "string") {
3275
- cov_12vai742k9().b[33][0]++;
3276
- cov_12vai742k9().s[37]++;
3275
+ cov_1exkrud5g4().b[33][0]++;
3276
+ cov_1exkrud5g4().s[37]++;
3277
3277
  fullKey = `${namespace}:${key}`;
3278
3278
  } else {
3279
- cov_12vai742k9().b[33][1]++;
3280
- cov_12vai742k9().s[38]++;
3279
+ cov_1exkrud5g4().b[33][1]++;
3280
+ cov_1exkrud5g4().s[38]++;
3281
3281
  fullKey = key.map(subKey => {
3282
- cov_12vai742k9().f[7]++;
3283
- cov_12vai742k9().s[39]++;
3282
+ cov_1exkrud5g4().f[7]++;
3283
+ cov_1exkrud5g4().s[39]++;
3284
3284
  return `${namespace}:${subKey}`;
3285
3285
  });
3286
3286
  }
3287
- cov_12vai742k9().s[40]++;
3287
+ cov_1exkrud5g4().s[40]++;
3288
3288
  return this.getLocalizedString(fullKey, options);
3289
3289
  }
3290
3290
  /** Gets the English translation.
@@ -3295,32 +3295,32 @@ class ITwinLocalization {
3295
3295
  * @internal
3296
3296
  */
3297
3297
  getEnglishString(namespace, key, options) {
3298
- cov_12vai742k9().f[8]++;
3299
- cov_12vai742k9().s[41]++;
3300
- if ((cov_12vai742k9().b[35][0]++, (cov_12vai742k9().b[37][0]++, options === null) || (cov_12vai742k9().b[37][1]++, options === void 0) ? (cov_12vai742k9().b[36][0]++, void 0) : (cov_12vai742k9().b[36][1]++, options.returnDetails)) || (cov_12vai742k9().b[35][1]++, (cov_12vai742k9().b[39][0]++, options === null) || (cov_12vai742k9().b[39][1]++, options === void 0) ? (cov_12vai742k9().b[38][0]++, void 0) : (cov_12vai742k9().b[38][1]++, options.returnObjects))) {
3301
- cov_12vai742k9().b[34][0]++;
3302
- cov_12vai742k9().s[42]++;
3298
+ cov_1exkrud5g4().f[8]++;
3299
+ cov_1exkrud5g4().s[41]++;
3300
+ if ((cov_1exkrud5g4().b[35][0]++, (cov_1exkrud5g4().b[37][0]++, options === null) || (cov_1exkrud5g4().b[37][1]++, options === void 0) ? (cov_1exkrud5g4().b[36][0]++, void 0) : (cov_1exkrud5g4().b[36][1]++, options.returnDetails)) || (cov_1exkrud5g4().b[35][1]++, (cov_1exkrud5g4().b[39][0]++, options === null) || (cov_1exkrud5g4().b[39][1]++, options === void 0) ? (cov_1exkrud5g4().b[38][0]++, void 0) : (cov_1exkrud5g4().b[38][1]++, options.returnObjects))) {
3301
+ cov_1exkrud5g4().b[34][0]++;
3302
+ cov_1exkrud5g4().s[42]++;
3303
3303
  throw new Error("Translation key must map to a string, but the given options will result in an object");
3304
3304
  } else {
3305
- cov_12vai742k9().b[34][1]++;
3305
+ cov_1exkrud5g4().b[34][1]++;
3306
3306
  }
3307
- cov_12vai742k9().s[43]++;
3307
+ cov_1exkrud5g4().s[43]++;
3308
3308
  options = {
3309
3309
  ...options,
3310
3310
  ns: namespace // ensure namespace argument is used
3311
3311
  };
3312
3312
 
3313
- const en = (cov_12vai742k9().s[44]++, this.i18next.getFixedT("en", namespace));
3314
- const str = (cov_12vai742k9().s[45]++, en(key, options));
3315
- cov_12vai742k9().s[46]++;
3313
+ const en = (cov_1exkrud5g4().s[44]++, this.i18next.getFixedT("en", namespace));
3314
+ const str = (cov_1exkrud5g4().s[45]++, en(key, options));
3315
+ cov_1exkrud5g4().s[46]++;
3316
3316
  if (typeof str !== "string") {
3317
- cov_12vai742k9().b[40][0]++;
3318
- cov_12vai742k9().s[47]++;
3317
+ cov_1exkrud5g4().b[40][0]++;
3318
+ cov_1exkrud5g4().s[47]++;
3319
3319
  throw new Error("Translation key(s) not found");
3320
3320
  } else {
3321
- cov_12vai742k9().b[40][1]++;
3321
+ cov_1exkrud5g4().b[40][1]++;
3322
3322
  }
3323
- cov_12vai742k9().s[48]++;
3323
+ cov_1exkrud5g4().s[48]++;
3324
3324
  return str;
3325
3325
  }
3326
3326
  /** Get the promise for an already registered Namespace.
@@ -3328,20 +3328,20 @@ class ITwinLocalization {
3328
3328
  * @public
3329
3329
  */
3330
3330
  getNamespacePromise(name) {
3331
- cov_12vai742k9().f[9]++;
3332
- cov_12vai742k9().s[49]++;
3331
+ cov_1exkrud5g4().f[9]++;
3332
+ cov_1exkrud5g4().s[49]++;
3333
3333
  return this._namespaces.get(name);
3334
3334
  }
3335
3335
  /** @internal */
3336
3336
  getLanguageList() {
3337
- cov_12vai742k9().f[10]++;
3338
- cov_12vai742k9().s[50]++;
3337
+ cov_1exkrud5g4().f[10]++;
3338
+ cov_1exkrud5g4().s[50]++;
3339
3339
  return this.i18next.languages;
3340
3340
  }
3341
3341
  /** override the language detected in the browser */
3342
3342
  async changeLanguage(language) {
3343
- cov_12vai742k9().f[11]++;
3344
- cov_12vai742k9().s[51]++;
3343
+ cov_1exkrud5g4().f[11]++;
3344
+ cov_1exkrud5g4().s[51]++;
3345
3345
  return this.i18next.changeLanguage(language);
3346
3346
  }
3347
3347
  /** Register a new Namespace and return it. If the namespace is already registered, it will be returned.
@@ -3353,123 +3353,123 @@ class ITwinLocalization {
3353
3353
  * @public
3354
3354
  */
3355
3355
  async registerNamespace(name) {
3356
- cov_12vai742k9().f[12]++;
3357
- const existing = (cov_12vai742k9().s[52]++, this._namespaces.get(name));
3358
- cov_12vai742k9().s[53]++;
3356
+ cov_1exkrud5g4().f[12]++;
3357
+ const existing = (cov_1exkrud5g4().s[52]++, this._namespaces.get(name));
3358
+ cov_1exkrud5g4().s[53]++;
3359
3359
  if (existing !== undefined) {
3360
- cov_12vai742k9().b[41][0]++;
3361
- cov_12vai742k9().s[54]++;
3360
+ cov_1exkrud5g4().b[41][0]++;
3361
+ cov_1exkrud5g4().s[54]++;
3362
3362
  return existing;
3363
3363
  } else {
3364
- cov_12vai742k9().b[41][1]++;
3364
+ cov_1exkrud5g4().b[41][1]++;
3365
3365
  }
3366
- const theReadPromise = (cov_12vai742k9().s[55]++, new Promise(resolve => {
3367
- cov_12vai742k9().f[13]++;
3368
- cov_12vai742k9().s[56]++;
3366
+ const theReadPromise = (cov_1exkrud5g4().s[55]++, new Promise(resolve => {
3367
+ cov_1exkrud5g4().f[13]++;
3368
+ cov_1exkrud5g4().s[56]++;
3369
3369
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
3370
3370
  this.i18next.loadNamespaces(name, err => {
3371
- cov_12vai742k9().f[14]++;
3372
- cov_12vai742k9().s[57]++;
3371
+ cov_1exkrud5g4().f[14]++;
3372
+ cov_1exkrud5g4().s[57]++;
3373
3373
  if (!err) {
3374
- cov_12vai742k9().b[42][0]++;
3375
- cov_12vai742k9().s[58]++;
3374
+ cov_1exkrud5g4().b[42][0]++;
3375
+ cov_1exkrud5g4().s[58]++;
3376
3376
  return resolve();
3377
3377
  } else {
3378
- cov_12vai742k9().b[42][1]++;
3378
+ cov_1exkrud5g4().b[42][1]++;
3379
3379
  }
3380
3380
  // Here we got a non-null err object.
3381
3381
  // This method is called when the system has attempted to load the resources for the namespaces for each possible locale.
3382
3382
  // For example 'fr-ca' might be the most specific locale, in which case 'fr' and 'en' are fallback locales.
3383
3383
  // Using Backend from i18next-http-backend, err will be an array of strings of each namespace it tried to read and its locale.
3384
3384
  // There might be errs for some other namespaces as well as this one. We resolve the promise unless there's an error for each possible locale.
3385
- let locales = (cov_12vai742k9().s[59]++, this.getLanguageList().map(thisLocale => {
3386
- cov_12vai742k9().f[15]++;
3387
- cov_12vai742k9().s[60]++;
3385
+ let locales = (cov_1exkrud5g4().s[59]++, this.getLanguageList().map(thisLocale => {
3386
+ cov_1exkrud5g4().f[15]++;
3387
+ cov_1exkrud5g4().s[60]++;
3388
3388
  return `/${thisLocale}/`;
3389
3389
  }));
3390
- cov_12vai742k9().s[61]++;
3390
+ cov_1exkrud5g4().s[61]++;
3391
3391
  try {
3392
- cov_12vai742k9().s[62]++;
3392
+ cov_1exkrud5g4().s[62]++;
3393
3393
  for (const thisError of err) {
3394
- cov_12vai742k9().s[63]++;
3394
+ cov_1exkrud5g4().s[63]++;
3395
3395
  if (typeof thisError === "string") {
3396
- cov_12vai742k9().b[43][0]++;
3397
- cov_12vai742k9().s[64]++;
3396
+ cov_1exkrud5g4().b[43][0]++;
3397
+ cov_1exkrud5g4().s[64]++;
3398
3398
  locales = locales.filter(thisLocale => {
3399
- cov_12vai742k9().f[16]++;
3400
- cov_12vai742k9().s[65]++;
3399
+ cov_1exkrud5g4().f[16]++;
3400
+ cov_1exkrud5g4().s[65]++;
3401
3401
  return !thisError.includes(thisLocale);
3402
3402
  });
3403
3403
  } else {
3404
- cov_12vai742k9().b[43][1]++;
3404
+ cov_1exkrud5g4().b[43][1]++;
3405
3405
  }
3406
3406
  }
3407
3407
  } catch (e) {
3408
- cov_12vai742k9().s[66]++;
3408
+ cov_1exkrud5g4().s[66]++;
3409
3409
  locales = [];
3410
3410
  }
3411
3411
  // if we removed every locale from the array, it wasn't loaded.
3412
- cov_12vai742k9().s[67]++;
3412
+ cov_1exkrud5g4().s[67]++;
3413
3413
  if (locales.length === 0) {
3414
- cov_12vai742k9().b[44][0]++;
3415
- cov_12vai742k9().s[68]++;
3414
+ cov_1exkrud5g4().b[44][0]++;
3415
+ cov_1exkrud5g4().s[68]++;
3416
3416
  core_bentley_1.Logger.logError("i18n", `No resources for namespace ${name} could be loaded`);
3417
3417
  } else {
3418
- cov_12vai742k9().b[44][1]++;
3418
+ cov_1exkrud5g4().b[44][1]++;
3419
3419
  }
3420
- cov_12vai742k9().s[69]++;
3420
+ cov_1exkrud5g4().s[69]++;
3421
3421
  resolve();
3422
3422
  });
3423
3423
  }));
3424
- cov_12vai742k9().s[70]++;
3424
+ cov_1exkrud5g4().s[70]++;
3425
3425
  this._namespaces.set(name, theReadPromise);
3426
- cov_12vai742k9().s[71]++;
3426
+ cov_1exkrud5g4().s[71]++;
3427
3427
  return theReadPromise;
3428
3428
  }
3429
3429
  /** @internal */
3430
3430
  unregisterNamespace(name) {
3431
- cov_12vai742k9().f[17]++;
3432
- cov_12vai742k9().s[72]++;
3431
+ cov_1exkrud5g4().f[17]++;
3432
+ cov_1exkrud5g4().s[72]++;
3433
3433
  this._namespaces.delete(name);
3434
3434
  }
3435
3435
  }
3436
- cov_12vai742k9().s[73]++;
3436
+ cov_1exkrud5g4().s[73]++;
3437
3437
  exports.ITwinLocalization = ITwinLocalization;
3438
3438
  class TranslationLogger {
3439
3439
  log(args) {
3440
- cov_12vai742k9().f[18]++;
3441
- cov_12vai742k9().s[74]++;
3440
+ cov_1exkrud5g4().f[18]++;
3441
+ cov_1exkrud5g4().s[74]++;
3442
3442
  core_bentley_1.Logger.logInfo("i18n", this.createLogMessage(args));
3443
3443
  }
3444
3444
  warn(args) {
3445
- cov_12vai742k9().f[19]++;
3446
- cov_12vai742k9().s[75]++;
3445
+ cov_1exkrud5g4().f[19]++;
3446
+ cov_1exkrud5g4().s[75]++;
3447
3447
  core_bentley_1.Logger.logWarning("i18n", this.createLogMessage(args));
3448
3448
  }
3449
3449
  error(args) {
3450
- cov_12vai742k9().f[20]++;
3451
- cov_12vai742k9().s[76]++;
3450
+ cov_1exkrud5g4().f[20]++;
3451
+ cov_1exkrud5g4().s[76]++;
3452
3452
  core_bentley_1.Logger.logError("i18n", this.createLogMessage(args));
3453
3453
  }
3454
3454
  createLogMessage(args) {
3455
- cov_12vai742k9().f[21]++;
3456
- let message = (cov_12vai742k9().s[77]++, args[0]);
3457
- cov_12vai742k9().s[78]++;
3458
- for (let i = (cov_12vai742k9().s[79]++, 1); i < args.length; ++i) {
3459
- cov_12vai742k9().s[80]++;
3455
+ cov_1exkrud5g4().f[21]++;
3456
+ let message = (cov_1exkrud5g4().s[77]++, args[0]);
3457
+ cov_1exkrud5g4().s[78]++;
3458
+ for (let i = (cov_1exkrud5g4().s[79]++, 1); i < args.length; ++i) {
3459
+ cov_1exkrud5g4().s[80]++;
3460
3460
  if (typeof args[i] === "string") {
3461
- cov_12vai742k9().b[45][0]++;
3462
- cov_12vai742k9().s[81]++;
3461
+ cov_1exkrud5g4().b[45][0]++;
3462
+ cov_1exkrud5g4().s[81]++;
3463
3463
  message += `\n ${args[i]}`;
3464
3464
  } else {
3465
- cov_12vai742k9().b[45][1]++;
3465
+ cov_1exkrud5g4().b[45][1]++;
3466
3466
  }
3467
3467
  }
3468
- cov_12vai742k9().s[82]++;
3468
+ cov_1exkrud5g4().s[82]++;
3469
3469
  return message;
3470
3470
  }
3471
3471
  }
3472
- cov_12vai742k9().s[83]++;
3472
+ cov_1exkrud5g4().s[83]++;
3473
3473
  TranslationLogger.type = "logger";
3474
3474
 
3475
3475
  /***/ }),
@@ -12163,7 +12163,7 @@ exports.transferFlags = __webpack_require__(/*! ./transferFlags */ "../../common
12163
12163
  * Deep equal utility
12164
12164
  */
12165
12165
 
12166
- exports.eql = __webpack_require__(/*! deep-eql */ "../../common/temp/node_modules/.pnpm/deep-eql@4.1.2/node_modules/deep-eql/index.js");
12166
+ exports.eql = __webpack_require__(/*! deep-eql */ "../../common/temp/node_modules/.pnpm/deep-eql@4.1.3/node_modules/deep-eql/index.js");
12167
12167
 
12168
12168
  /*!
12169
12169
  * Deep path info
@@ -13728,9 +13728,9 @@ module.exports = exports
13728
13728
 
13729
13729
  /***/ }),
13730
13730
 
13731
- /***/ "../../common/temp/node_modules/.pnpm/deep-eql@4.1.2/node_modules/deep-eql/index.js":
13731
+ /***/ "../../common/temp/node_modules/.pnpm/deep-eql@4.1.3/node_modules/deep-eql/index.js":
13732
13732
  /*!******************************************************************************************!*\
13733
- !*** ../../common/temp/node_modules/.pnpm/deep-eql@4.1.2/node_modules/deep-eql/index.js ***!
13733
+ !*** ../../common/temp/node_modules/.pnpm/deep-eql@4.1.3/node_modules/deep-eql/index.js ***!
13734
13734
  \******************************************************************************************/
13735
13735
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
13736
13736
 
@@ -14129,8 +14129,15 @@ function getEnumerableKeys(target) {
14129
14129
  return keys;
14130
14130
  }
14131
14131
 
14132
- function getNonEnumerableSymbols(target) {
14133
- var keys = Object.getOwnPropertySymbols(target);
14132
+ function getEnumerableSymbols(target) {
14133
+ var keys = [];
14134
+ var allKeys = Object.getOwnPropertySymbols(target);
14135
+ for (var i = 0; i < allKeys.length; i += 1) {
14136
+ var key = allKeys[i];
14137
+ if (Object.getOwnPropertyDescriptor(target, key).enumerable) {
14138
+ keys.push(key);
14139
+ }
14140
+ }
14134
14141
  return keys;
14135
14142
  }
14136
14143
 
@@ -14169,8 +14176,8 @@ function keysEqual(leftHandOperand, rightHandOperand, keys, options) {
14169
14176
  function objectEqual(leftHandOperand, rightHandOperand, options) {
14170
14177
  var leftHandKeys = getEnumerableKeys(leftHandOperand);
14171
14178
  var rightHandKeys = getEnumerableKeys(rightHandOperand);
14172
- var leftHandSymbols = getNonEnumerableSymbols(leftHandOperand);
14173
- var rightHandSymbols = getNonEnumerableSymbols(rightHandOperand);
14179
+ var leftHandSymbols = getEnumerableSymbols(leftHandOperand);
14180
+ var rightHandSymbols = getEnumerableSymbols(rightHandOperand);
14174
14181
  leftHandKeys = leftHandKeys.concat(leftHandSymbols);
14175
14182
  rightHandKeys = rightHandKeys.concat(rightHandSymbols);
14176
14183
 
@@ -19796,8 +19803,8 @@ var IModelStatus;
19796
19803
  IModelStatus[IModelStatus["FunctionNotFound"] = 65606] = "FunctionNotFound";
19797
19804
  IModelStatus[IModelStatus["NoActiveCommand"] = 65607] = "NoActiveCommand";
19798
19805
  })(IModelStatus || (IModelStatus = {}));
19799
- /** Error status from various briefcase operations
19800
- * @beta Should these be internal?
19806
+ /** Error statuses produced by various briefcase operations, typically encountered as the `errorNumber` of an [IModelError]($common).
19807
+ * @public
19801
19808
  */
19802
19809
  var BriefcaseStatus;
19803
19810
  (function (BriefcaseStatus) {
@@ -19813,7 +19820,7 @@ var BriefcaseStatus;
19813
19820
  BriefcaseStatus[BriefcaseStatus["ContainsDeletedChangeSets"] = 131080] = "ContainsDeletedChangeSets";
19814
19821
  })(BriefcaseStatus || (BriefcaseStatus = {}));
19815
19822
  /** RpcInterface status codes
19816
- * @beta Should these be internal?
19823
+ * @beta
19817
19824
  */
19818
19825
  var RpcInterfaceStatus;
19819
19826
  (function (RpcInterfaceStatus) {
@@ -19822,8 +19829,8 @@ var RpcInterfaceStatus;
19822
19829
  /** The RpcInterface implemented by the server is incompatible with the interface requested by the client. */
19823
19830
  RpcInterfaceStatus[RpcInterfaceStatus["IncompatibleVersion"] = 135168] = "IncompatibleVersion";
19824
19831
  })(RpcInterfaceStatus || (RpcInterfaceStatus = {}));
19825
- /** Error status from various Changeset operations
19826
- * @beta Should these be internal?
19832
+ /** Error statuses produced by various Changeset operations, typically encountered as the `errorNumber` of an [IModelError]($common).
19833
+ * @public
19827
19834
  */
19828
19835
  var ChangeSetStatus;
19829
19836
  (function (ChangeSetStatus) {
@@ -19883,7 +19890,7 @@ var ChangeSetStatus;
19883
19890
  ChangeSetStatus[ChangeSetStatus["DownloadCancelled"] = 90138] = "DownloadCancelled";
19884
19891
  })(ChangeSetStatus || (ChangeSetStatus = {}));
19885
19892
  /** Return codes for methods which perform repository management operations
19886
- * @beta Should these be internal?
19893
+ * @internal
19887
19894
  */
19888
19895
  var RepositoryStatus;
19889
19896
  (function (RepositoryStatus) {
@@ -19920,7 +19927,7 @@ var RepositoryStatus;
19920
19927
  RepositoryStatus[RepositoryStatus["ChannelConstraintViolation"] = 86031] = "ChannelConstraintViolation";
19921
19928
  })(RepositoryStatus || (RepositoryStatus = {}));
19922
19929
  /** Status from returned HTTP status code
19923
- * @beta Should these be internal?
19930
+ * @beta
19924
19931
  */
19925
19932
  var HttpStatus;
19926
19933
  (function (HttpStatus) {
@@ -19935,8 +19942,8 @@ var HttpStatus;
19935
19942
  /** 5xx Server errors */
19936
19943
  HttpStatus[HttpStatus["ServerError"] = 94212] = "ServerError";
19937
19944
  })(HttpStatus || (HttpStatus = {}));
19938
- /** iModelHub Services Errors
19939
- * @beta Right package?
19945
+ /** Statuses produced by APIs that interact with iModelHub, typically encountered as the `errorNumber` of an [IModelError]($common).
19946
+ * @public
19940
19947
  */
19941
19948
  var IModelHubStatus;
19942
19949
  (function (IModelHubStatus) {
@@ -20456,7 +20463,7 @@ __webpack_require__.r(__webpack_exports__);
20456
20463
  /** Allows the contents of an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)
20457
20464
  * to be consumed sequentially using methods to extract
20458
20465
  * data of a particular type from the bytes beginning at the current read position.
20459
- * Methods and properties beginning with 'next' consume data at the current read position and advance it
20466
+ * Methods and properties beginning with 'read' and taking no arguments consume data at the current read position and advance it
20460
20467
  * by the size of the data read. The read position can also be directly adjusted by the caller.
20461
20468
  * @public
20462
20469
  */
@@ -20541,21 +20548,37 @@ class ByteStream {
20541
20548
  /** Resets the current read position to the beginning of the stream */
20542
20549
  reset() { this.curPos = 0; }
20543
20550
  /** Read a unsigned 8-bit integer from the current read position and advance by 1 byte. */
20544
- get nextUint8() { return this.read(1, (view) => view.getUint8(this.curPos)); }
20551
+ readUint8() { return this.read(1, (view) => view.getUint8(this.curPos)); }
20545
20552
  /** Read an unsigned 16-bit integer from the current read position and advance by 2 bytes. */
20546
- get nextUint16() { return this.read(2, (view) => view.getUint16(this.curPos, true)); }
20553
+ readUint16() { return this.read(2, (view) => view.getUint16(this.curPos, true)); }
20547
20554
  /** Read an unsigned 32-bit integer from the current read position and advance by 4 bytes. */
20548
- get nextUint32() { return this.read(4, (view) => view.getUint32(this.curPos, true)); }
20555
+ readUint32() { return this.read(4, (view) => view.getUint32(this.curPos, true)); }
20549
20556
  /** Read a signed 32-bit integer from the current read position and advance by 4 bytes. */
20550
- get nextInt32() { return this.read(4, (view) => view.getInt32(this.curPos, true)); }
20557
+ readInt32() { return this.read(4, (view) => view.getInt32(this.curPos, true)); }
20551
20558
  /** Read a 32-bit floating point number from the current read position and advance by 4 bytes. */
20552
- get nextFloat32() { return this.read(4, (view) => view.getFloat32(this.curPos, true)); }
20559
+ readFloat32() { return this.read(4, (view) => view.getFloat32(this.curPos, true)); }
20553
20560
  /** Read a 64-bit floating point number from the current read position and advance by 8 bytes. */
20554
- get nextFloat64() { return this.read(8, (view) => view.getFloat64(this.curPos, true)); }
20561
+ readFloat64() { return this.read(8, (view) => view.getFloat64(this.curPos, true)); }
20555
20562
  /** Read an unsigned 64-bit integer from the current read position, advance by 8 bytes, and return the 64-bit value as an Id64String. */
20556
- get nextId64() { return _Id__WEBPACK_IMPORTED_MODULE_1__.Id64.fromUint32Pair(this.nextUint32, this.nextUint32); }
20563
+ readId64() { return _Id__WEBPACK_IMPORTED_MODULE_1__.Id64.fromUint32Pair(this.readUint32(), this.readUint32()); }
20557
20564
  /** Read an unsigned 24-bit integer from the current read position and advance by 3 bytes. */
20558
- get nextUint24() { return this.nextUint8 | (this.nextUint8 << 8) | (this.nextUint8 << 16); }
20565
+ readUint24() { return this.readUint8() | (this.readUint8() << 8) | (this.readUint8() << 16); }
20566
+ /** @deprecated use [[readUint8]]. */
20567
+ get nextUint8() { return this.readUint8(); }
20568
+ /** @deprecated use [[readUint16]]. */
20569
+ get nextUint16() { return this.readUint16(); }
20570
+ /** @deprecated use [[readUint32]]. */
20571
+ get nextUint32() { return this.readUint32(); }
20572
+ /** @deprecated use [[readInt32]]. */
20573
+ get nextInt32() { return this.readInt32(); }
20574
+ /** @deprecated use [[readFloat32]]. */
20575
+ get nextFloat32() { return this.readFloat32(); }
20576
+ /** @deprecated use [[readFloat64]]. */
20577
+ get nextFloat64() { return this.readFloat64(); }
20578
+ /** @deprecated use [[readId64]]. */
20579
+ get nextId64() { return this.readId64(); }
20580
+ /** @deprecated use [[readUint32]]. */
20581
+ get nextUint24() { return this.readUint24(); }
20559
20582
  /** Read the specified number of bytes beginning at the current read position into a Uint8Array and advance by the specified number of byte.
20560
20583
  * @param numBytes The number of bytes to read.
20561
20584
  */
@@ -22078,8 +22101,16 @@ class TransientIdSequence {
22078
22101
  constructor() {
22079
22102
  this._localId = 0;
22080
22103
  }
22104
+ /** Generate and return the next transient Id64String in the sequence.
22105
+ * @deprecated Use [[getNext]].
22106
+ */
22107
+ get next() {
22108
+ return this.getNext();
22109
+ }
22081
22110
  /** Generate and return the next transient Id64String in the sequence. */
22082
- get next() { return Id64.fromLocalAndBriefcaseIds(++this._localId, 0xffffff); }
22111
+ getNext() {
22112
+ return Id64.fromLocalAndBriefcaseIds(++this._localId, 0xffffff);
22113
+ }
22083
22114
  }
22084
22115
  /**
22085
22116
  * The Guid namespace provides facilities for working with GUID strings using the "8-4-4-4-12" pattern.
@@ -25150,7 +25181,8 @@ __webpack_require__.r(__webpack_exports__);
25150
25181
  /* harmony export */ "TypedArrayBuilder": () => (/* binding */ TypedArrayBuilder),
25151
25182
  /* harmony export */ "Uint16ArrayBuilder": () => (/* binding */ Uint16ArrayBuilder),
25152
25183
  /* harmony export */ "Uint32ArrayBuilder": () => (/* binding */ Uint32ArrayBuilder),
25153
- /* harmony export */ "Uint8ArrayBuilder": () => (/* binding */ Uint8ArrayBuilder)
25184
+ /* harmony export */ "Uint8ArrayBuilder": () => (/* binding */ Uint8ArrayBuilder),
25185
+ /* harmony export */ "UintArrayBuilder": () => (/* binding */ UintArrayBuilder)
25154
25186
  /* harmony export */ });
25155
25187
  /* harmony import */ var _Assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Assert */ "../bentley/lib/esm/Assert.js");
25156
25188
  /*---------------------------------------------------------------------------------------------
@@ -25161,7 +25193,7 @@ __webpack_require__.r(__webpack_exports__);
25161
25193
  * @module Collections
25162
25194
  */
25163
25195
 
25164
- /** Incrementally builds a [TypedArray] of unsigned 8-, 16-, or 32-bit integers.
25196
+ /** Incrementally builds a [TypedArray](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) of unsigned 8-, 16-, or 32-bit integers.
25165
25197
  * Sometimes you wish to populate a `TypedArray`, but you don't know how many elements you will need.
25166
25198
  * `TypedArray` requires you to specify the size upon construction, and does not permit you to change the size later.
25167
25199
  *
@@ -25172,6 +25204,7 @@ __webpack_require__.r(__webpack_exports__);
25172
25204
  *
25173
25205
  * Once you've finished adding elements, you can obtain the finished `TypedArray` via [[toTypedArray]].
25174
25206
  * @see [[Uint8ArrayBuilder]], [[Uint16ArrayBuilder]], and [[Uint32ArrayBuilder]] to build specific types of arrays.
25207
+ * @see [[UintArrayBuilder]] when you don't know the maximum number of bytes required for each element in the array.
25175
25208
  * @public
25176
25209
  */
25177
25210
  class TypedArrayBuilder {
@@ -25251,7 +25284,7 @@ class TypedArrayBuilder {
25251
25284
  * @public
25252
25285
  */
25253
25286
  class Uint8ArrayBuilder extends TypedArrayBuilder {
25254
- /** @see [[TypedArrayBuilder]] constructor. */
25287
+ /** See [[TypedArrayBuilder]] constructor. */
25255
25288
  constructor(options) {
25256
25289
  super(Uint8Array, options);
25257
25290
  }
@@ -25260,7 +25293,7 @@ class Uint8ArrayBuilder extends TypedArrayBuilder {
25260
25293
  * @public
25261
25294
  */
25262
25295
  class Uint16ArrayBuilder extends TypedArrayBuilder {
25263
- /** @see [[TypedArrayBuilder]] constructor. */
25296
+ /** See [[TypedArrayBuilder]] constructor. */
25264
25297
  constructor(options) {
25265
25298
  super(Uint16Array, options);
25266
25299
  }
@@ -25269,7 +25302,7 @@ class Uint16ArrayBuilder extends TypedArrayBuilder {
25269
25302
  * @public
25270
25303
  */
25271
25304
  class Uint32ArrayBuilder extends TypedArrayBuilder {
25272
- /** @see [[TypedArrayBuilder]] constructor. */
25305
+ /** See [[TypedArrayBuilder]] constructor. */
25273
25306
  constructor(options) {
25274
25307
  super(Uint32Array, options);
25275
25308
  }
@@ -25280,6 +25313,78 @@ class Uint32ArrayBuilder extends TypedArrayBuilder {
25280
25313
  return new Uint8Array(this._data.buffer, 0, this.length * 4);
25281
25314
  }
25282
25315
  }
25316
+ /** A [[TypedArrayBuilder]] that can populate a [[UintArray]] with the minimum
25317
+ * [bytes per element](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/BYTES_PER_ELEMENT) required.
25318
+ *
25319
+ * By default, the underlying array is a `Uint8Array`, though this can be configured via [[UintArrayBuilderOptions.initialType]].
25320
+ * As values are added to the array, if the bytes per element supported by the underlying array is too small to hold one of the new values, the array is
25321
+ * reallocated to a type large enough to hold all of the new values. For example, the following produces a `Uint8Array` because all values are less than 256:
25322
+ *
25323
+ * ```ts
25324
+ * const builder = new UintArrayBuilder();
25325
+ * builder.append([1, 2, 254, 255]);
25326
+ * const array = builder.toTypedArray();
25327
+ * assert(array instanceof Uint8Array);
25328
+ * ```
25329
+ *
25330
+ * However, the following produces a `Uint16Array` because one of the values is larger than 255 but none are larger than 65,535:
25331
+ *
25332
+ * ```ts
25333
+ * const builder = new UintArrayBuilder();
25334
+ * builder.append([1, 255, 257, 65535]);
25335
+ * const array = builder.toTypedArray();
25336
+ * assert(array instanceof Uint16Array);
25337
+ * ```
25338
+ *
25339
+ * @see [[Uint8ArrayBuilder]], [[Uint16ArrayBuilder]], or [[Uint32ArrayBuilder]] if you know the number of bytes you want to allocate for each element in the array.
25340
+ * @public
25341
+ */
25342
+ class UintArrayBuilder extends TypedArrayBuilder {
25343
+ constructor(options) {
25344
+ var _a;
25345
+ super((_a = options === null || options === void 0 ? void 0 : options.initialType) !== null && _a !== void 0 ? _a : Uint8Array, options);
25346
+ }
25347
+ /** The number of bytes (1, 2, or 4) currently allocated per element by the underlying array.
25348
+ * This may change as larger values are added to the array.
25349
+ */
25350
+ get bytesPerElement() {
25351
+ return this._data.BYTES_PER_ELEMENT;
25352
+ }
25353
+ /** Ensures that the underlying array is of a type that can contain the largest value in `newValues`.
25354
+ * For example, if `_data` is a `Uint16Array` and `newValues` contains any value(s) larger than 65,535, it will be replaced with a `Uint32Array`.
25355
+ * This method is invoked by [[push]] and [[append]].
25356
+ */
25357
+ ensureBytesPerElement(newValues) {
25358
+ const curBytesPerElem = this.bytesPerElement;
25359
+ (0,_Assert__WEBPACK_IMPORTED_MODULE_0__.assert)(curBytesPerElem === 1 || curBytesPerElem === 2 || curBytesPerElem === 4);
25360
+ if (curBytesPerElem >= 4)
25361
+ return;
25362
+ let neededBytesPerElem = curBytesPerElem;
25363
+ for (const value of newValues) {
25364
+ if (value > 0xffff) {
25365
+ neededBytesPerElem = 4;
25366
+ break;
25367
+ }
25368
+ else if (value > 0xff) {
25369
+ neededBytesPerElem = 2;
25370
+ }
25371
+ }
25372
+ if (neededBytesPerElem <= curBytesPerElem)
25373
+ return;
25374
+ this._constructor = neededBytesPerElem === 1 ? Uint8Array : (neededBytesPerElem === 2 ? Uint16Array : Uint32Array);
25375
+ this._data = new this._constructor(this._data);
25376
+ }
25377
+ /** See [[TypedArrayBuilder.push]]. */
25378
+ push(value) {
25379
+ this.ensureBytesPerElement([value]);
25380
+ super.push(value);
25381
+ }
25382
+ /** See [[TypedArrayBuilder.append]]. */
25383
+ append(values) {
25384
+ this.ensureBytesPerElement(values);
25385
+ super.append(values);
25386
+ }
25387
+ }
25283
25388
 
25284
25389
 
25285
25390
  /***/ }),
@@ -25531,6 +25636,7 @@ __webpack_require__.r(__webpack_exports__);
25531
25636
  /* harmony export */ "Uint16ArrayBuilder": () => (/* reexport safe */ _TypedArrayBuilder__WEBPACK_IMPORTED_MODULE_32__.Uint16ArrayBuilder),
25532
25637
  /* harmony export */ "Uint32ArrayBuilder": () => (/* reexport safe */ _TypedArrayBuilder__WEBPACK_IMPORTED_MODULE_32__.Uint32ArrayBuilder),
25533
25638
  /* harmony export */ "Uint8ArrayBuilder": () => (/* reexport safe */ _TypedArrayBuilder__WEBPACK_IMPORTED_MODULE_32__.Uint8ArrayBuilder),
25639
+ /* harmony export */ "UintArrayBuilder": () => (/* reexport safe */ _TypedArrayBuilder__WEBPACK_IMPORTED_MODULE_32__.UintArrayBuilder),
25534
25640
  /* harmony export */ "UnexpectedErrors": () => (/* reexport safe */ _UnexpectedErrors__WEBPACK_IMPORTED_MODULE_33__.UnexpectedErrors),
25535
25641
  /* harmony export */ "YieldManager": () => (/* reexport safe */ _YieldManager__WEBPACK_IMPORTED_MODULE_35__.YieldManager),
25536
25642
  /* harmony export */ "areEqualPossiblyUndefined": () => (/* reexport safe */ _Compare__WEBPACK_IMPORTED_MODULE_10__.areEqualPossiblyUndefined),