@itwin/core-bentley 3.0.0-dev.84 → 3.0.0-dev.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +914 -914
- package/LICENSE.md +9 -9
- package/README.md +11 -11
- package/ThirdPartyNotices.md +37 -37
- package/lib/cjs/Assert.js.map +1 -1
- package/lib/cjs/BeEvent.d.ts.map +1 -1
- package/lib/cjs/BeEvent.js +7 -1
- package/lib/cjs/BeEvent.js.map +1 -1
- package/lib/cjs/BeSQLite.js.map +1 -1
- package/lib/cjs/BentleyError.js.map +1 -1
- package/lib/cjs/CompressedId64Set.js.map +1 -1
- package/lib/cjs/Dictionary.js.map +1 -1
- package/lib/cjs/Disposable.js.map +1 -1
- package/lib/cjs/IndexMap.js.map +1 -1
- package/lib/cjs/JsonUtils.js.map +1 -1
- package/lib/cjs/LRUMap.js.map +1 -1
- package/lib/cjs/Logger.js.map +1 -1
- package/lib/cjs/OrderedSet.js.map +1 -1
- package/lib/cjs/PriorityQueue.js.map +1 -1
- package/lib/cjs/StringUtils.js.map +1 -1
- package/lib/cjs/Time.js.map +1 -1
- package/lib/cjs/UnexpectedErrors.d.ts +44 -0
- package/lib/cjs/UnexpectedErrors.d.ts.map +1 -0
- package/lib/cjs/UnexpectedErrors.js +66 -0
- package/lib/cjs/UnexpectedErrors.js.map +1 -0
- package/lib/cjs/UtilityTypes.js.map +1 -1
- package/lib/cjs/core-bentley.d.ts +1 -0
- package/lib/cjs/core-bentley.d.ts.map +1 -1
- package/lib/cjs/core-bentley.js +1 -0
- package/lib/cjs/core-bentley.js.map +1 -1
- package/lib/esm/Assert.js.map +1 -1
- package/lib/esm/BeEvent.d.ts.map +1 -1
- package/lib/esm/BeEvent.js +7 -1
- package/lib/esm/BeEvent.js.map +1 -1
- package/lib/esm/BeSQLite.js.map +1 -1
- package/lib/esm/BentleyError.js.map +1 -1
- package/lib/esm/CompressedId64Set.js.map +1 -1
- package/lib/esm/Dictionary.js.map +1 -1
- package/lib/esm/Disposable.js.map +1 -1
- package/lib/esm/IndexMap.js.map +1 -1
- package/lib/esm/JsonUtils.js.map +1 -1
- package/lib/esm/LRUMap.js.map +1 -1
- package/lib/esm/Logger.js.map +1 -1
- package/lib/esm/OrderedSet.js.map +1 -1
- package/lib/esm/PriorityQueue.js.map +1 -1
- package/lib/esm/StringUtils.js.map +1 -1
- package/lib/esm/Time.js.map +1 -1
- package/lib/esm/UnexpectedErrors.d.ts +44 -0
- package/lib/esm/UnexpectedErrors.d.ts.map +1 -0
- package/lib/esm/UnexpectedErrors.js +62 -0
- package/lib/esm/UnexpectedErrors.js.map +1 -0
- package/lib/esm/UtilityTypes.js.map +1 -1
- package/lib/esm/core-bentley.d.ts +1 -0
- package/lib/esm/core-bentley.d.ts.map +1 -1
- package/lib/esm/core-bentley.js +1 -0
- package/lib/esm/core-bentley.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderedSet.js","sourceRoot":"","sources":["../../src/OrderedSet.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,+CAAyE;AAEzE;;;;GAIG;AACH,MAAa,kBAAkB;IAG7B;;;OAGG;IACH,YAAmB,OAA6B,EAAE,QAA0B,0BAAY;QACtF,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAW,CAAI,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,yCAAyC;IACzC,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,qDAAqD;IAC9C,GAAG,CAAC,KAAQ;QACjB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,6HAA6H;IACtH,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;CACF;AAzBD,gDAyBC;AAED;;GAEG;AACH,MAAa,UAAc,SAAQ,kBAAqB;IACtD;;;OAGG;IACH,YAAmB,OAA6B,EAAE,QAA0B,0BAAY;QACtF,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,wCAAwC;IACjC,KAAK;QACV,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,8DAA8D;IACvD,GAAG,CAAC,KAAQ;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6FAA6F;IACtF,MAAM,CAAC,KAAQ;QACpB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AAxBD,gCAwBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Collections\n */\n\nimport { OrderedComparator } from \"./Compare\";\nimport { CloneFunction, shallowClone, SortedArray } from \"./SortedArray\";\n\n/** A read-only equivalent of `Set<T>` that maintains its elements in sorted order as specified by a comparison function.\n * Iteration returns elements in the order specified by the comparison function, as opposed to `Set` which returns elements in insertion order.\n * Implemented in terms of [[SortedArray]].\n * @public\n */\nexport class ReadonlyOrderedSet<T> implements Iterable<T> {\n protected readonly _array: SortedArray<T>;\n\n /** Construct a new ReadonlyOrderedSet<T>.\n * @param compare The function used to compare elements within the set, determining their ordering.\n * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.\n */\n public constructor(compare: OrderedComparator<T>, clone: CloneFunction<T> = shallowClone) {\n this._array = new SortedArray<T>(compare, false, clone);\n }\n\n /** The number of elements in the set. */\n public get size(): number {\n return this._array.length;\n }\n\n /** Returns true if `value` is present in the set. */\n public has(value: T): boolean {\n return -1 !== this._array.indexOf(value);\n }\n\n /** Iterate over the elements in sorted order (as opposed to `Set`'s iterator, which returns elements in insertion order). */\n public [Symbol.iterator](): Iterator<T> {\n return this._array[Symbol.iterator]();\n }\n}\n\n/** A mutable [[ReadonlyOrderedSet]].\n * @public\n */\nexport class OrderedSet<T> extends ReadonlyOrderedSet<T> {\n /** Construct a new OrderedSet<T>.\n * @param compare The function used to compare elements within the set, determining their ordering.\n * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.\n */\n public constructor(compare: OrderedComparator<T>, clone: CloneFunction<T> = shallowClone) {\n super(compare, clone);\n }\n\n /** Remove all elements from the set. */\n public clear(): void {\n this._array.clear();\n }\n\n /** Add the specified element to the set. Returns this set. */\n public add(value: T): this {\n this._array.insert(value);\n return this;\n }\n\n /** Removes the specified element from the set. Returns `true` if the element was present. */\n public delete(value: T): boolean {\n return -1 !== this._array.remove(value);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"OrderedSet.js","sourceRoot":"","sources":["../../src/OrderedSet.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,+CAAyE;AAEzE;;;;GAIG;AACH,MAAa,kBAAkB;IAG7B;;;OAGG;IACH,YAAmB,OAA6B,EAAE,QAA0B,0BAAY;QACtF,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAW,CAAI,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,yCAAyC;IACzC,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,qDAAqD;IAC9C,GAAG,CAAC,KAAQ;QACjB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,6HAA6H;IACtH,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;CACF;AAzBD,gDAyBC;AAED;;GAEG;AACH,MAAa,UAAc,SAAQ,kBAAqB;IACtD;;;OAGG;IACH,YAAmB,OAA6B,EAAE,QAA0B,0BAAY;QACtF,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,wCAAwC;IACjC,KAAK;QACV,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,8DAA8D;IACvD,GAAG,CAAC,KAAQ;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6FAA6F;IACtF,MAAM,CAAC,KAAQ;QACpB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AAxBD,gCAwBC","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 Collections\r\n */\r\n\r\nimport { OrderedComparator } from \"./Compare\";\r\nimport { CloneFunction, shallowClone, SortedArray } from \"./SortedArray\";\r\n\r\n/** A read-only equivalent of `Set<T>` that maintains its elements in sorted order as specified by a comparison function.\r\n * Iteration returns elements in the order specified by the comparison function, as opposed to `Set` which returns elements in insertion order.\r\n * Implemented in terms of [[SortedArray]].\r\n * @public\r\n */\r\nexport class ReadonlyOrderedSet<T> implements Iterable<T> {\r\n protected readonly _array: SortedArray<T>;\r\n\r\n /** Construct a new ReadonlyOrderedSet<T>.\r\n * @param compare The function used to compare elements within the set, determining their ordering.\r\n * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.\r\n */\r\n public constructor(compare: OrderedComparator<T>, clone: CloneFunction<T> = shallowClone) {\r\n this._array = new SortedArray<T>(compare, false, clone);\r\n }\r\n\r\n /** The number of elements in the set. */\r\n public get size(): number {\r\n return this._array.length;\r\n }\r\n\r\n /** Returns true if `value` is present in the set. */\r\n public has(value: T): boolean {\r\n return -1 !== this._array.indexOf(value);\r\n }\r\n\r\n /** Iterate over the elements in sorted order (as opposed to `Set`'s iterator, which returns elements in insertion order). */\r\n public [Symbol.iterator](): Iterator<T> {\r\n return this._array[Symbol.iterator]();\r\n }\r\n}\r\n\r\n/** A mutable [[ReadonlyOrderedSet]].\r\n * @public\r\n */\r\nexport class OrderedSet<T> extends ReadonlyOrderedSet<T> {\r\n /** Construct a new OrderedSet<T>.\r\n * @param compare The function used to compare elements within the set, determining their ordering.\r\n * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.\r\n */\r\n public constructor(compare: OrderedComparator<T>, clone: CloneFunction<T> = shallowClone) {\r\n super(compare, clone);\r\n }\r\n\r\n /** Remove all elements from the set. */\r\n public clear(): void {\r\n this._array.clear();\r\n }\r\n\r\n /** Add the specified element to the set. Returns this set. */\r\n public add(value: T): this {\r\n this._array.insert(value);\r\n return this;\r\n }\r\n\r\n /** Removes the specified element from the set. Returns `true` if the element was present. */\r\n public delete(value: T): boolean {\r\n return -1 !== this._array.remove(value);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PriorityQueue.js","sourceRoot":"","sources":["../../src/PriorityQueue.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Collections\n */\n\nimport { OrderedComparator } from \"./Compare\";\nimport { CloneFunction, shallowClone } from \"./SortedArray\";\n\n/** @public */\nexport type ComputePriorityFunction<T> = (value: T) => number;\n\n/**\n * A [priority queue](https://en.wikipedia.org/wiki/Priority_queue) implemented as a heap array.\n * The queue is ordered by an [[OrderedComparator]] function supplied by the user such that the value in the queue that compares less than all other values is always located at the front of the queue.\n * @public\n */\nexport class PriorityQueue<T> implements Iterable<T> {\n protected _array: T[] = [];\n protected readonly _compare: OrderedComparator<T>;\n protected readonly _clone: CloneFunction<T>;\n\n /**\n * Constructor\n * @param compare The function used to compare values in the queue. If `compare(x, y)` returns a negative value, then x is placed before y in the queue.\n * @param clone The function used to clone a value for insertion onto the queue. The default implementation simply returns its input.\n * @note If the criterion which control the result of the `compare` function changes, then [[PriorityQueue.sort]] should be used to reorder the queue according to the new criterion.\n */\n public constructor(compare: OrderedComparator<T>, clone: CloneFunction<T> = shallowClone) {\n this._compare = compare;\n this._clone = clone;\n }\n\n /** The number of values in the queue. */\n public get length(): number { return this._array.length; }\n\n /** Returns true if the queue contains no values. */\n public get isEmpty(): boolean { return 0 === this.length; }\n\n /** Returns an iterator over the contents of the heap suitable for use in `for-of` loops. */\n public [Symbol.iterator](): Iterator<T> { return this._array[Symbol.iterator](); }\n\n protected _swap(a: number, b: number) {\n const temp = this._array[a];\n this._array[a] = this._array[b];\n this._array[b] = temp;\n }\n\n protected _heapify(index: number): void {\n let candidate = -1;\n while (true) {\n const right = 2 * (index + 1);\n const left = right - 1;\n if (left < this.length && this._compare(this._array[left], this._array[index]) < 0)\n candidate = left;\n else\n candidate = index;\n\n if (right < this.length && this._compare(this._array[right], this._array[candidate]) < 0)\n candidate = right;\n\n if (candidate !== index) {\n this._swap(candidate, index);\n index = candidate;\n } else {\n break;\n }\n }\n }\n\n /**\n * Reorders the queue. This function should only (and *always*) be called when the criteria governing the ordering of items on the queue have changed.\n * For example, a priority queue containing graphics sorted by their distance from the camera would need to be reordered when the position of the camera changes.\n */\n public sort(): void {\n for (let i = Math.ceil(this.length / 2); i >= 0; i--)\n this._heapify(i);\n }\n\n /**\n * Pushes a value onto the queue according to the sorting criterion.\n * @param value The value to insert\n * @returns The inserted value, cloned according to the [[CloneFunction]] supplied to this queue's constructor.\n */\n public push(value: T): T {\n const clone = this._clone(value);\n\n let index = this.length;\n this._array.push(clone);\n\n while (index !== 0) {\n const parent = Math.floor((index - 1) / 2);\n if (this._compare(this._array[index], this._array[parent]) < 0) {\n this._swap(index, parent);\n index = parent;\n } else {\n break;\n }\n }\n\n return clone;\n }\n\n /** Pushes a value onto the back of the queue without making any attempt to enforce ordering.\n * After using this function, you must manually invoke sort() to ensure the queue is sorted again.\n * @param value The value to append\n * @returns The appended value, cloned according to the [[CloneFunction]] supplied to this queue's constructor.\n */\n public append(value: T): T {\n const clone = this._clone(value);\n this._array.push(clone);\n return clone;\n }\n\n /** Returns the element at the front of the queue, or `undefined` if the queue is empty. */\n public get front(): T | undefined {\n return this._peek(0);\n }\n\n /**\n * Removes the front-most element off of the queue and returns it.\n * @returns The front-most element, or undefined if the queue is empty.\n */\n public pop(): T | undefined {\n return this._pop(0);\n }\n\n /** Removes all values from the queue. */\n public clear(): void {\n this._array.length = 0;\n }\n\n /**\n * Removes the value at the specified index from the queue and reorders the queue.\n * @param index The index of the value to remove\n * @returns the value at the specified index, or undefined if the index is out of range.\n */\n protected _pop(index: number): T | undefined {\n if (index < 0 || index >= this.length)\n return undefined;\n\n const root = this._array[index];\n this._swap(index, this.length - 1);\n this._array.length--;\n\n this._heapify(index);\n return root;\n }\n\n /**\n * Returns the value at the specified index in the queue.\n * @param index The index of the value to retrieve\n * @returns the value at the specified index, or undefined if the index is out of range.\n */\n protected _peek(index: number): T | undefined {\n if (index < 0 || index >= this.length)\n return undefined;\n else\n return this._array[index];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PriorityQueue.js","sourceRoot":"","sources":["../../src/PriorityQueue.ts"],"names":[],"mappings":"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","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 Collections\r\n */\r\n\r\nimport { OrderedComparator } from \"./Compare\";\r\nimport { CloneFunction, shallowClone } from \"./SortedArray\";\r\n\r\n/** @public */\r\nexport type ComputePriorityFunction<T> = (value: T) => number;\r\n\r\n/**\r\n * A [priority queue](https://en.wikipedia.org/wiki/Priority_queue) implemented as a heap array.\r\n * The queue is ordered by an [[OrderedComparator]] function supplied by the user such that the value in the queue that compares less than all other values is always located at the front of the queue.\r\n * @public\r\n */\r\nexport class PriorityQueue<T> implements Iterable<T> {\r\n protected _array: T[] = [];\r\n protected readonly _compare: OrderedComparator<T>;\r\n protected readonly _clone: CloneFunction<T>;\r\n\r\n /**\r\n * Constructor\r\n * @param compare The function used to compare values in the queue. If `compare(x, y)` returns a negative value, then x is placed before y in the queue.\r\n * @param clone The function used to clone a value for insertion onto the queue. The default implementation simply returns its input.\r\n * @note If the criterion which control the result of the `compare` function changes, then [[PriorityQueue.sort]] should be used to reorder the queue according to the new criterion.\r\n */\r\n public constructor(compare: OrderedComparator<T>, clone: CloneFunction<T> = shallowClone) {\r\n this._compare = compare;\r\n this._clone = clone;\r\n }\r\n\r\n /** The number of values in the queue. */\r\n public get length(): number { return this._array.length; }\r\n\r\n /** Returns true if the queue contains no values. */\r\n public get isEmpty(): boolean { return 0 === this.length; }\r\n\r\n /** Returns an iterator over the contents of the heap suitable for use in `for-of` loops. */\r\n public [Symbol.iterator](): Iterator<T> { return this._array[Symbol.iterator](); }\r\n\r\n protected _swap(a: number, b: number) {\r\n const temp = this._array[a];\r\n this._array[a] = this._array[b];\r\n this._array[b] = temp;\r\n }\r\n\r\n protected _heapify(index: number): void {\r\n let candidate = -1;\r\n while (true) {\r\n const right = 2 * (index + 1);\r\n const left = right - 1;\r\n if (left < this.length && this._compare(this._array[left], this._array[index]) < 0)\r\n candidate = left;\r\n else\r\n candidate = index;\r\n\r\n if (right < this.length && this._compare(this._array[right], this._array[candidate]) < 0)\r\n candidate = right;\r\n\r\n if (candidate !== index) {\r\n this._swap(candidate, index);\r\n index = candidate;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Reorders the queue. This function should only (and *always*) be called when the criteria governing the ordering of items on the queue have changed.\r\n * For example, a priority queue containing graphics sorted by their distance from the camera would need to be reordered when the position of the camera changes.\r\n */\r\n public sort(): void {\r\n for (let i = Math.ceil(this.length / 2); i >= 0; i--)\r\n this._heapify(i);\r\n }\r\n\r\n /**\r\n * Pushes a value onto the queue according to the sorting criterion.\r\n * @param value The value to insert\r\n * @returns The inserted value, cloned according to the [[CloneFunction]] supplied to this queue's constructor.\r\n */\r\n public push(value: T): T {\r\n const clone = this._clone(value);\r\n\r\n let index = this.length;\r\n this._array.push(clone);\r\n\r\n while (index !== 0) {\r\n const parent = Math.floor((index - 1) / 2);\r\n if (this._compare(this._array[index], this._array[parent]) < 0) {\r\n this._swap(index, parent);\r\n index = parent;\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n return clone;\r\n }\r\n\r\n /** Pushes a value onto the back of the queue without making any attempt to enforce ordering.\r\n * After using this function, you must manually invoke sort() to ensure the queue is sorted again.\r\n * @param value The value to append\r\n * @returns The appended value, cloned according to the [[CloneFunction]] supplied to this queue's constructor.\r\n */\r\n public append(value: T): T {\r\n const clone = this._clone(value);\r\n this._array.push(clone);\r\n return clone;\r\n }\r\n\r\n /** Returns the element at the front of the queue, or `undefined` if the queue is empty. */\r\n public get front(): T | undefined {\r\n return this._peek(0);\r\n }\r\n\r\n /**\r\n * Removes the front-most element off of the queue and returns it.\r\n * @returns The front-most element, or undefined if the queue is empty.\r\n */\r\n public pop(): T | undefined {\r\n return this._pop(0);\r\n }\r\n\r\n /** Removes all values from the queue. */\r\n public clear(): void {\r\n this._array.length = 0;\r\n }\r\n\r\n /**\r\n * Removes the value at the specified index from the queue and reorders the queue.\r\n * @param index The index of the value to remove\r\n * @returns the value at the specified index, or undefined if the index is out of range.\r\n */\r\n protected _pop(index: number): T | undefined {\r\n if (index < 0 || index >= this.length)\r\n return undefined;\r\n\r\n const root = this._array[index];\r\n this._swap(index, this.length - 1);\r\n this._array.length--;\r\n\r\n this._heapify(index);\r\n return root;\r\n }\r\n\r\n /**\r\n * Returns the value at the specified index in the queue.\r\n * @param index The index of the value to retrieve\r\n * @returns the value at the specified index, or undefined if the index is out of range.\r\n */\r\n protected _peek(index: number): T | undefined {\r\n if (index < 0 || index >= this.length)\r\n return undefined;\r\n else\r\n return this._array[index];\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../src/StringUtils.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utils\n */\n\n// TextDecoder is not supported on all platforms - this is an alternative for utf-8.\n// From https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Core/getStringFromTypedArray.js\n// which is itself inspired by https://github.com/inexorabletash/text-encoding\n/** @internal */\nnamespace Utf8ToString {\n function inRange(a: number, min: number, max: number): boolean { return min <= a && a <= max; }\n\n function utf8Handler(bytes: Uint8Array): number[] | undefined {\n let codePoint = 0;\n let bytesSeen = 0;\n let bytesNeeded = 0;\n let lowerBoundary = 0x80;\n let upperBoundary = 0xbf;\n\n const codePoints: number[] = [];\n const length = bytes.length;\n for (let i = 0; i < length; i++) {\n const currentByte = bytes[i];\n\n // If bytesNeeded = 0, then we are starting a new character\n if (0 === bytesNeeded) {\n // 1 byte ascii character\n if (inRange(currentByte, 0x00, 0x7f)) {\n // return a code point whose value is byte.\n codePoints.push(currentByte);\n continue;\n }\n\n // 2 byte character\n if (inRange(currentByte, 0xc2, 0xdf)) {\n bytesNeeded = 1;\n codePoint = currentByte & 0x1f;\n continue;\n }\n\n // 3 byte character\n if (inRange(currentByte, 0xe0, 0xef)) {\n if (0xe0 === currentByte)\n lowerBoundary = 0xa0;\n else if (0xed === currentByte)\n upperBoundary = 0x9f;\n\n bytesNeeded = 2;\n codePoint = currentByte & 0xf;\n continue;\n }\n\n // 4 byte character\n if (inRange(currentByte, 0xf0, 0xf4)) {\n if (0xf0 === currentByte)\n lowerBoundary = 0x90;\n else if (0xf4 === currentByte)\n upperBoundary = 0x8f;\n\n bytesNeeded = 3;\n codePoint = currentByte & 0x7;\n continue;\n }\n\n // invalid utf-8\n return undefined;\n }\n\n // out of range so ignore the first part(s) of the character and continue with this byte on its own\n if (!inRange(currentByte, lowerBoundary, upperBoundary)) {\n codePoint = bytesNeeded = bytesSeen = 0;\n lowerBoundary = 0x80;\n upperBoundary = 0xbf;\n --i;\n continue;\n }\n\n // set appropriate boundaries since we've now checked byte 2 of a potential longer character\n lowerBoundary = 0x80;\n upperBoundary = 0xbf;\n\n // add byte to code point\n codePoint = (codePoint << 6) | (currentByte & 0x3f);\n\n // We have the correct number of bytes, so push and reset for next character\n ++bytesSeen;\n if (bytesSeen === bytesNeeded) {\n codePoints.push(codePoint);\n codePoint = bytesNeeded = bytesSeen = 0;\n }\n }\n\n return codePoints;\n }\n\n export function decodeWithFromCharCode(view: Uint8Array): string | undefined {\n let result = \"\";\n const codePoints = utf8Handler(view);\n if (undefined === codePoints)\n return undefined;\n\n for (let cp of codePoints) {\n if (cp <= 0xffff) {\n result += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n result += String.fromCharCode((cp >> 10) + 0xd800, (cp & 0x3ff) + 0xdc00);\n }\n }\n\n return result;\n }\n}\n\n/** Exposed only for testing the fall-back used when TextDecoder is unsupported.\n * @internal\n */\nexport function utf8ToStringPolyfill(utf8: Uint8Array): string | undefined {\n return Utf8ToString.decodeWithFromCharCode(utf8);\n}\n\n// TextDecoder unsupported in Edge at time of writing.\nlet textDecoderSupported = true;\n\n/** Given an array of bytes containing a utf-8 string, convert to a string.\n * @param utf8: An array of utf-8 characters as a byte array\n * @returns An equivalent string, or undefined if the array does not contain a valid utf-8 string.\n * @note This function uses Javascript's TextDecoder if supported by the browser; otherwise, it\n * falls back to a less efficient polyfill.\n * @public\n */\nexport function utf8ToString(utf8: Uint8Array): string | undefined {\n let decoder: TextDecoder | undefined;\n if (textDecoderSupported) {\n try {\n decoder = new TextDecoder(\"utf-8\");\n } catch (_ex) {\n textDecoderSupported = false;\n }\n }\n\n if (undefined !== decoder)\n return decoder.decode(utf8);\n else\n return utf8ToStringPolyfill(utf8);\n}\n\n/** Given a base-64-encoded string, decode it into an array of bytes.\n * @param base64 The base-64-encoded string.\n * @returns the decoded byte array.\n * @throws DOMException if the length of the input string is not a multiple of 4.\n * @public\n */\nexport function base64StringToUint8Array(base64: string): Uint8Array {\n return new Uint8Array(atob(base64).split(\"\").map((c) => c.charCodeAt(0))); // eslint-disable-line deprecation/deprecation\n}\n"]}
|
|
1
|
+
{"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../src/StringUtils.ts"],"names":[],"mappings":"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","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 Utils\r\n */\r\n\r\n// TextDecoder is not supported on all platforms - this is an alternative for utf-8.\r\n// From https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Core/getStringFromTypedArray.js\r\n// which is itself inspired by https://github.com/inexorabletash/text-encoding\r\n/** @internal */\r\nnamespace Utf8ToString {\r\n function inRange(a: number, min: number, max: number): boolean { return min <= a && a <= max; }\r\n\r\n function utf8Handler(bytes: Uint8Array): number[] | undefined {\r\n let codePoint = 0;\r\n let bytesSeen = 0;\r\n let bytesNeeded = 0;\r\n let lowerBoundary = 0x80;\r\n let upperBoundary = 0xbf;\r\n\r\n const codePoints: number[] = [];\r\n const length = bytes.length;\r\n for (let i = 0; i < length; i++) {\r\n const currentByte = bytes[i];\r\n\r\n // If bytesNeeded = 0, then we are starting a new character\r\n if (0 === bytesNeeded) {\r\n // 1 byte ascii character\r\n if (inRange(currentByte, 0x00, 0x7f)) {\r\n // return a code point whose value is byte.\r\n codePoints.push(currentByte);\r\n continue;\r\n }\r\n\r\n // 2 byte character\r\n if (inRange(currentByte, 0xc2, 0xdf)) {\r\n bytesNeeded = 1;\r\n codePoint = currentByte & 0x1f;\r\n continue;\r\n }\r\n\r\n // 3 byte character\r\n if (inRange(currentByte, 0xe0, 0xef)) {\r\n if (0xe0 === currentByte)\r\n lowerBoundary = 0xa0;\r\n else if (0xed === currentByte)\r\n upperBoundary = 0x9f;\r\n\r\n bytesNeeded = 2;\r\n codePoint = currentByte & 0xf;\r\n continue;\r\n }\r\n\r\n // 4 byte character\r\n if (inRange(currentByte, 0xf0, 0xf4)) {\r\n if (0xf0 === currentByte)\r\n lowerBoundary = 0x90;\r\n else if (0xf4 === currentByte)\r\n upperBoundary = 0x8f;\r\n\r\n bytesNeeded = 3;\r\n codePoint = currentByte & 0x7;\r\n continue;\r\n }\r\n\r\n // invalid utf-8\r\n return undefined;\r\n }\r\n\r\n // out of range so ignore the first part(s) of the character and continue with this byte on its own\r\n if (!inRange(currentByte, lowerBoundary, upperBoundary)) {\r\n codePoint = bytesNeeded = bytesSeen = 0;\r\n lowerBoundary = 0x80;\r\n upperBoundary = 0xbf;\r\n --i;\r\n continue;\r\n }\r\n\r\n // set appropriate boundaries since we've now checked byte 2 of a potential longer character\r\n lowerBoundary = 0x80;\r\n upperBoundary = 0xbf;\r\n\r\n // add byte to code point\r\n codePoint = (codePoint << 6) | (currentByte & 0x3f);\r\n\r\n // We have the correct number of bytes, so push and reset for next character\r\n ++bytesSeen;\r\n if (bytesSeen === bytesNeeded) {\r\n codePoints.push(codePoint);\r\n codePoint = bytesNeeded = bytesSeen = 0;\r\n }\r\n }\r\n\r\n return codePoints;\r\n }\r\n\r\n export function decodeWithFromCharCode(view: Uint8Array): string | undefined {\r\n let result = \"\";\r\n const codePoints = utf8Handler(view);\r\n if (undefined === codePoints)\r\n return undefined;\r\n\r\n for (let cp of codePoints) {\r\n if (cp <= 0xffff) {\r\n result += String.fromCharCode(cp);\r\n } else {\r\n cp -= 0x10000;\r\n result += String.fromCharCode((cp >> 10) + 0xd800, (cp & 0x3ff) + 0xdc00);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\n/** Exposed only for testing the fall-back used when TextDecoder is unsupported.\r\n * @internal\r\n */\r\nexport function utf8ToStringPolyfill(utf8: Uint8Array): string | undefined {\r\n return Utf8ToString.decodeWithFromCharCode(utf8);\r\n}\r\n\r\n// TextDecoder unsupported in Edge at time of writing.\r\nlet textDecoderSupported = true;\r\n\r\n/** Given an array of bytes containing a utf-8 string, convert to a string.\r\n * @param utf8: An array of utf-8 characters as a byte array\r\n * @returns An equivalent string, or undefined if the array does not contain a valid utf-8 string.\r\n * @note This function uses Javascript's TextDecoder if supported by the browser; otherwise, it\r\n * falls back to a less efficient polyfill.\r\n * @public\r\n */\r\nexport function utf8ToString(utf8: Uint8Array): string | undefined {\r\n let decoder: TextDecoder | undefined;\r\n if (textDecoderSupported) {\r\n try {\r\n decoder = new TextDecoder(\"utf-8\");\r\n } catch (_ex) {\r\n textDecoderSupported = false;\r\n }\r\n }\r\n\r\n if (undefined !== decoder)\r\n return decoder.decode(utf8);\r\n else\r\n return utf8ToStringPolyfill(utf8);\r\n}\r\n\r\n/** Given a base-64-encoded string, decode it into an array of bytes.\r\n * @param base64 The base-64-encoded string.\r\n * @returns the decoded byte array.\r\n * @throws DOMException if the length of the input string is not a multiple of 4.\r\n * @public\r\n */\r\nexport function base64StringToUint8Array(base64: string): Uint8Array {\r\n return new Uint8Array(atob(base64).split(\"\").map((c) => c.charCodeAt(0))); // eslint-disable-line deprecation/deprecation\r\n}\r\n"]}
|
package/lib/cjs/Time.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Time.js","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utils\n */\n\n/** A duration of time. Can be either positive (towards future) or negative (in the past).\n * BeDurations are immutable.\n * @public\n */\nexport class BeDuration {\n private readonly _milliseconds: number;\n private constructor(milliseconds: number = 0) { this._milliseconds = milliseconds; }\n\n /** The duration in milliseconds */\n public get milliseconds() { return this._milliseconds; }\n public get seconds() { return this._milliseconds / 1000; }\n\n /** Create a BeDuration from seconds.\n * @param seconds the number of seconds for this BeDuration\n */\n public static fromSeconds(seconds: number) { return new BeDuration(seconds * 1000); }\n /** Create a BeDuration from milliseconds.\n * @param milliseconds the number of milliseconds for this BeDuration\n */\n public static fromMilliseconds(milliseconds: number) { return new BeDuration(milliseconds); }\n /** Determine whether this BeDuration is 0 seconds */\n public get isZero() { return this._milliseconds === 0; }\n /** Determine whether this BeDuration is towards the future */\n public get isTowardsFuture(): boolean { return this._milliseconds > 0; }\n /** Determine whether this BeDuration is towards the past */\n public get isTowardsPast(): boolean { return this._milliseconds < 0; }\n /** Subtract a BeDuration from this BeDuration, returning a new BeDuration. */\n public minus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds - other._milliseconds); }\n /** Add a BeDuration to this BeDuration, returning a new BeDuration */\n public plus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds + other._milliseconds); }\n\n /** Utility function to just wait for the specified time\n * @param ms Duration in milliseconds to wait\n * @return Promise that resolves after the specified wait period\n */\n public static async wait(ms: number): Promise<void> {\n return new Promise<void>((resolve: any) => setTimeout(resolve, ms));\n }\n\n /** Utility function to wait for either the specified time or a promise, whichever resolves first\n * @param ms Maximum duration in milliseconds to wait\n * @param promise A pending promise to wait for\n * @return Promise that resolves after the specified wait period or the provided promise resolves, whichever comes first\n */\n public static async race<T>(ms: number, promise: PromiseLike<T>): Promise<T | void> {\n let timeout: any;\n const waitPromise = new Promise<void>((resolve) => {\n timeout = setTimeout(resolve, ms);\n });\n return Promise.race([waitPromise, promise]).finally(() => {\n if (timeout)\n clearTimeout(timeout);\n });\n }\n\n /** Utility function to just wait for the specified time\n * @return Promise that resolves after the specified wait period\n */\n public async wait(): Promise<void> {\n return new Promise<void>((resolve: any) => setTimeout(resolve, this._milliseconds));\n }\n\n /** Execute a function after delaying by this duration.\n * @param fn the function to execute after the delay\n * @param scope An optional object scope to serve as the 'this' pointer when `fn` is invoked.\n * @param args optional arguments to `fn`\n * @return Promise resolved by `fn`\n */\n public async executeAfter<T>(fn: (...args: any[]) => T, scope?: any, ...args: any[]): Promise<T> {\n return new Promise<T>((resolve: any) => setTimeout(() => resolve(fn.apply(scope, args)), this._milliseconds));\n }\n}\n\n/** A specific point in time relative to the current time.\n * BeTimePoints are used for timing operations. They are created from a BeDuration relative to the \"now\".\n * BeTimePoints are immutable.\n * @public\n */\nexport class BeTimePoint {\n private readonly _milliseconds: number;\n /** the time in milliseconds, of this BeTimePoint (relative to January 1, 1970 00:00:00 UTC.) */\n public get milliseconds() { return this._milliseconds; }\n private constructor(milliseconds: number) { this._milliseconds = milliseconds; }\n\n /** Create a BeTimePoint from Date.now() */\n public static now() { return new BeTimePoint(Date.now()); }\n\n /** Create a BeTimePoint at a specified duration in the future from now\n * @param val the duration from now\n */\n public static fromNow(val: BeDuration) { return new BeTimePoint(Date.now() + val.milliseconds); }\n\n /** Create a BeTimePoint at a specified duration in the past before now\n * @param val the duration before now\n */\n public static beforeNow(val: BeDuration) { return new BeTimePoint(Date.now() - val.milliseconds); }\n\n /** Determine whether this BeTimePoint is a time in the future from the time this method is called (it calls now()!) */\n public get isInFuture(): boolean { return Date.now() < this._milliseconds; }\n\n /** Determine whether this BeTimePoint is a time that has already passed before the time this method is called (it calls now()!) */\n public get isInPast(): boolean { return Date.now() > this._milliseconds; }\n\n /** Determine whether this BeTimePoint happens before another one.\n * @param other the other BeTimePoint.\n */\n public before(other: BeTimePoint): boolean { return this._milliseconds < other._milliseconds; }\n\n /** Determine whether this BeTimePoint happens after another one.\n * @param other the other BeTimePoint.\n */\n public after(other: BeTimePoint): boolean { return this._milliseconds > other._milliseconds; }\n\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\n * @param duration the duration to subtract.\n */\n public minus(duration: BeDuration): BeTimePoint { return new BeTimePoint(this._milliseconds - duration.milliseconds); }\n\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\n * @param duration the duration to subtract.\n */\n public plus(duration: BeDuration) { return new BeTimePoint(this._milliseconds + duration.milliseconds); }\n}\n\n/** A StopWatch for timing operations.\n * @public\n */\nexport class StopWatch {\n private _start?: BeTimePoint;\n private _stop?: BeTimePoint;\n /** Get the elapsed time since start() on a running timer. */\n public get current(): BeDuration { return BeDuration.fromMilliseconds(BeTimePoint.now().milliseconds - (!!this._start ? this._start.milliseconds : 0)); }\n /** Get the elapsed time, in seconds, since start() on a running timer. */\n public get currentSeconds(): number { return this.current.seconds; }\n /** Get the elapsed time between start() and stop() on this timer. */\n public get elapsed(): BeDuration { return BeDuration.fromMilliseconds((!!this._stop ? this._stop.milliseconds : BeTimePoint.now().milliseconds) - (!!this._start ? this._start.milliseconds : 0)); }\n /** Get the elapsed time, in seconds, between start() and stop() on this timer. */\n public get elapsedSeconds(): number { return this.elapsed.seconds; }\n /** ctor for StopWatch\n * @param description optional string stored with the StopWatch\n * @param startImmediately if true, StopWatch is started when created. Otherwise, call start() explicitly.\n */\n constructor(public description?: string, startImmediately = false) { if (startImmediately) this.start(); }\n /** Start the stopwatch. Any future time measurements will be based on this new value. */\n public start(): void { this.reset(); this._start = BeTimePoint.now(); }\n /** Stop the stopwatch so that the duration can be viewed later. */\n public stop(): BeDuration { this._stop = BeTimePoint.now(); return this.elapsed; }\n /** Clear the StopWatch */\n public reset(): void { this._start = this._stop = undefined; }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Time.js","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"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","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 Utils\r\n */\r\n\r\n/** A duration of time. Can be either positive (towards future) or negative (in the past).\r\n * BeDurations are immutable.\r\n * @public\r\n */\r\nexport class BeDuration {\r\n private readonly _milliseconds: number;\r\n private constructor(milliseconds: number = 0) { this._milliseconds = milliseconds; }\r\n\r\n /** The duration in milliseconds */\r\n public get milliseconds() { return this._milliseconds; }\r\n public get seconds() { return this._milliseconds / 1000; }\r\n\r\n /** Create a BeDuration from seconds.\r\n * @param seconds the number of seconds for this BeDuration\r\n */\r\n public static fromSeconds(seconds: number) { return new BeDuration(seconds * 1000); }\r\n /** Create a BeDuration from milliseconds.\r\n * @param milliseconds the number of milliseconds for this BeDuration\r\n */\r\n public static fromMilliseconds(milliseconds: number) { return new BeDuration(milliseconds); }\r\n /** Determine whether this BeDuration is 0 seconds */\r\n public get isZero() { return this._milliseconds === 0; }\r\n /** Determine whether this BeDuration is towards the future */\r\n public get isTowardsFuture(): boolean { return this._milliseconds > 0; }\r\n /** Determine whether this BeDuration is towards the past */\r\n public get isTowardsPast(): boolean { return this._milliseconds < 0; }\r\n /** Subtract a BeDuration from this BeDuration, returning a new BeDuration. */\r\n public minus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds - other._milliseconds); }\r\n /** Add a BeDuration to this BeDuration, returning a new BeDuration */\r\n public plus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds + other._milliseconds); }\r\n\r\n /** Utility function to just wait for the specified time\r\n * @param ms Duration in milliseconds to wait\r\n * @return Promise that resolves after the specified wait period\r\n */\r\n public static async wait(ms: number): Promise<void> {\r\n return new Promise<void>((resolve: any) => setTimeout(resolve, ms));\r\n }\r\n\r\n /** Utility function to wait for either the specified time or a promise, whichever resolves first\r\n * @param ms Maximum duration in milliseconds to wait\r\n * @param promise A pending promise to wait for\r\n * @return Promise that resolves after the specified wait period or the provided promise resolves, whichever comes first\r\n */\r\n public static async race<T>(ms: number, promise: PromiseLike<T>): Promise<T | void> {\r\n let timeout: any;\r\n const waitPromise = new Promise<void>((resolve) => {\r\n timeout = setTimeout(resolve, ms);\r\n });\r\n return Promise.race([waitPromise, promise]).finally(() => {\r\n if (timeout)\r\n clearTimeout(timeout);\r\n });\r\n }\r\n\r\n /** Utility function to just wait for the specified time\r\n * @return Promise that resolves after the specified wait period\r\n */\r\n public async wait(): Promise<void> {\r\n return new Promise<void>((resolve: any) => setTimeout(resolve, this._milliseconds));\r\n }\r\n\r\n /** Execute a function after delaying by this duration.\r\n * @param fn the function to execute after the delay\r\n * @param scope An optional object scope to serve as the 'this' pointer when `fn` is invoked.\r\n * @param args optional arguments to `fn`\r\n * @return Promise resolved by `fn`\r\n */\r\n public async executeAfter<T>(fn: (...args: any[]) => T, scope?: any, ...args: any[]): Promise<T> {\r\n return new Promise<T>((resolve: any) => setTimeout(() => resolve(fn.apply(scope, args)), this._milliseconds));\r\n }\r\n}\r\n\r\n/** A specific point in time relative to the current time.\r\n * BeTimePoints are used for timing operations. They are created from a BeDuration relative to the \"now\".\r\n * BeTimePoints are immutable.\r\n * @public\r\n */\r\nexport class BeTimePoint {\r\n private readonly _milliseconds: number;\r\n /** the time in milliseconds, of this BeTimePoint (relative to January 1, 1970 00:00:00 UTC.) */\r\n public get milliseconds() { return this._milliseconds; }\r\n private constructor(milliseconds: number) { this._milliseconds = milliseconds; }\r\n\r\n /** Create a BeTimePoint from Date.now() */\r\n public static now() { return new BeTimePoint(Date.now()); }\r\n\r\n /** Create a BeTimePoint at a specified duration in the future from now\r\n * @param val the duration from now\r\n */\r\n public static fromNow(val: BeDuration) { return new BeTimePoint(Date.now() + val.milliseconds); }\r\n\r\n /** Create a BeTimePoint at a specified duration in the past before now\r\n * @param val the duration before now\r\n */\r\n public static beforeNow(val: BeDuration) { return new BeTimePoint(Date.now() - val.milliseconds); }\r\n\r\n /** Determine whether this BeTimePoint is a time in the future from the time this method is called (it calls now()!) */\r\n public get isInFuture(): boolean { return Date.now() < this._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint is a time that has already passed before the time this method is called (it calls now()!) */\r\n public get isInPast(): boolean { return Date.now() > this._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint happens before another one.\r\n * @param other the other BeTimePoint.\r\n */\r\n public before(other: BeTimePoint): boolean { return this._milliseconds < other._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint happens after another one.\r\n * @param other the other BeTimePoint.\r\n */\r\n public after(other: BeTimePoint): boolean { return this._milliseconds > other._milliseconds; }\r\n\r\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\r\n * @param duration the duration to subtract.\r\n */\r\n public minus(duration: BeDuration): BeTimePoint { return new BeTimePoint(this._milliseconds - duration.milliseconds); }\r\n\r\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\r\n * @param duration the duration to subtract.\r\n */\r\n public plus(duration: BeDuration) { return new BeTimePoint(this._milliseconds + duration.milliseconds); }\r\n}\r\n\r\n/** A StopWatch for timing operations.\r\n * @public\r\n */\r\nexport class StopWatch {\r\n private _start?: BeTimePoint;\r\n private _stop?: BeTimePoint;\r\n /** Get the elapsed time since start() on a running timer. */\r\n public get current(): BeDuration { return BeDuration.fromMilliseconds(BeTimePoint.now().milliseconds - (!!this._start ? this._start.milliseconds : 0)); }\r\n /** Get the elapsed time, in seconds, since start() on a running timer. */\r\n public get currentSeconds(): number { return this.current.seconds; }\r\n /** Get the elapsed time between start() and stop() on this timer. */\r\n public get elapsed(): BeDuration { return BeDuration.fromMilliseconds((!!this._stop ? this._stop.milliseconds : BeTimePoint.now().milliseconds) - (!!this._start ? this._start.milliseconds : 0)); }\r\n /** Get the elapsed time, in seconds, between start() and stop() on this timer. */\r\n public get elapsedSeconds(): number { return this.elapsed.seconds; }\r\n /** ctor for StopWatch\r\n * @param description optional string stored with the StopWatch\r\n * @param startImmediately if true, StopWatch is started when created. Otherwise, call start() explicitly.\r\n */\r\n constructor(public description?: string, startImmediately = false) { if (startImmediately) this.start(); }\r\n /** Start the stopwatch. Any future time measurements will be based on this new value. */\r\n public start(): void { this.reset(); this._start = BeTimePoint.now(); }\r\n /** Stop the stopwatch so that the duration can be viewed later. */\r\n public stop(): BeDuration { this._stop = BeTimePoint.now(); return this.elapsed; }\r\n /** Clear the StopWatch */\r\n public reset(): void { this._start = this._stop = undefined; }\r\n}\r\n"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Errors
|
|
3
|
+
*/
|
|
4
|
+
/// <reference types="node" />
|
|
5
|
+
/** A function to be notified when an unexpected error happens
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export declare type OnUnexpectedError = (error: any) => void;
|
|
9
|
+
/**
|
|
10
|
+
* Utility for handling/reporting unexpected runtime errors. This class establishes a global handler for
|
|
11
|
+
* unexpected errors, and programmers should use its `handle` method when they occur. Generally, unexpected
|
|
12
|
+
* errors should not cause program termination, and should instead be logged and swallowed. However, for
|
|
13
|
+
* development/debugging, it can be helpful to re-throw exceptions so they are not missed.
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export declare class UnexpectedErrors {
|
|
17
|
+
/** handler for re-throwing exceptions directly */
|
|
18
|
+
static readonly reThrowImmediate: (e: any) => never;
|
|
19
|
+
/** handler for re-throwing exceptions from an asynchronous interval (so the current call stack is not aborted) */
|
|
20
|
+
static readonly reThrowDeferred: (e: any) => NodeJS.Timeout;
|
|
21
|
+
/** handler for logging exception to console */
|
|
22
|
+
static readonly consoleLog: (e: any) => void;
|
|
23
|
+
/** handler for logging exception with [[Logger]] */
|
|
24
|
+
static readonly errorLog: (e: any) => void;
|
|
25
|
+
private static _telemetry;
|
|
26
|
+
private static _handler;
|
|
27
|
+
private constructor();
|
|
28
|
+
/** Add a "telemetry tracker" for unexpected errors. Useful for tracking/reporting errors without changing handler.
|
|
29
|
+
* @returns a method to remove the tracker
|
|
30
|
+
*/
|
|
31
|
+
static addTelemetry(tracker: OnUnexpectedError): () => void;
|
|
32
|
+
/** call this method when an unexpected error happens so the global handler can process it.
|
|
33
|
+
* @param error the unexpected error
|
|
34
|
+
* @param notifyTelemetry if false, don't notify telemetry trackers. Use this for exceptions from third-party code, for example.
|
|
35
|
+
*/
|
|
36
|
+
static handle(error: any, notifyTelemetry?: boolean): void;
|
|
37
|
+
/** establish a new global *unexpected error* handler.
|
|
38
|
+
* @param handler the new global handler. You may provide your own function or use one of the static members of this class.
|
|
39
|
+
* The default is [[errorLog]].
|
|
40
|
+
* @returns the previous handler. Useful to temporarily change the handler.
|
|
41
|
+
*/
|
|
42
|
+
static setHandler(handler: OnUnexpectedError): OnUnexpectedError;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=UnexpectedErrors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnexpectedErrors.d.ts","sourceRoot":"","sources":["../../src/UnexpectedErrors.ts"],"names":[],"mappings":"AAIA;;GAEG;;AAIH;;GAEG;AACH,oBAAY,iBAAiB,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;AAErD;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,kDAAkD;IAClD,gBAAuB,gBAAgB,MAAO,GAAG,WAAkB;IACnE,kHAAkH;IAClH,gBAAuB,eAAe,MAAO,GAAG,oBAAuC;IACvF,+CAA+C;IAC/C,gBAAuB,UAAU,MAAO,GAAG,UAAsB;IACjE,oDAAoD;IACpD,gBAAuB,QAAQ,MAAO,GAAG,UAAyC;IAElF,OAAO,CAAC,MAAM,CAAC,UAAU,CAA2B;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO;IAEP;;OAEG;WACW,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAKlE;;;OAGG;WACW,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,eAAe,UAAO,GAAG,IAAI;IAQ9D;;;;OAIG;WACW,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB;CAKxE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module Errors
|
|
8
|
+
*/
|
|
9
|
+
var _a;
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.UnexpectedErrors = void 0;
|
|
12
|
+
const Logger_1 = require("./Logger");
|
|
13
|
+
/**
|
|
14
|
+
* Utility for handling/reporting unexpected runtime errors. This class establishes a global handler for
|
|
15
|
+
* unexpected errors, and programmers should use its `handle` method when they occur. Generally, unexpected
|
|
16
|
+
* errors should not cause program termination, and should instead be logged and swallowed. However, for
|
|
17
|
+
* development/debugging, it can be helpful to re-throw exceptions so they are not missed.
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
class UnexpectedErrors {
|
|
21
|
+
constructor() { } // this is a singleton
|
|
22
|
+
/** Add a "telemetry tracker" for unexpected errors. Useful for tracking/reporting errors without changing handler.
|
|
23
|
+
* @returns a method to remove the tracker
|
|
24
|
+
*/
|
|
25
|
+
static addTelemetry(tracker) {
|
|
26
|
+
this._telemetry.push(tracker);
|
|
27
|
+
return () => this._telemetry.splice(this._telemetry.indexOf(tracker), 1);
|
|
28
|
+
}
|
|
29
|
+
/** call this method when an unexpected error happens so the global handler can process it.
|
|
30
|
+
* @param error the unexpected error
|
|
31
|
+
* @param notifyTelemetry if false, don't notify telemetry trackers. Use this for exceptions from third-party code, for example.
|
|
32
|
+
*/
|
|
33
|
+
static handle(error, notifyTelemetry = true) {
|
|
34
|
+
this._handler(error);
|
|
35
|
+
if (notifyTelemetry)
|
|
36
|
+
this._telemetry.forEach((telemetry) => {
|
|
37
|
+
try {
|
|
38
|
+
telemetry(error);
|
|
39
|
+
}
|
|
40
|
+
catch (_) { } // ignore errors from telemetry trackers
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/** establish a new global *unexpected error* handler.
|
|
44
|
+
* @param handler the new global handler. You may provide your own function or use one of the static members of this class.
|
|
45
|
+
* The default is [[errorLog]].
|
|
46
|
+
* @returns the previous handler. Useful to temporarily change the handler.
|
|
47
|
+
*/
|
|
48
|
+
static setHandler(handler) {
|
|
49
|
+
const oldHandler = this._handler;
|
|
50
|
+
this._handler = handler;
|
|
51
|
+
return oldHandler;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.UnexpectedErrors = UnexpectedErrors;
|
|
55
|
+
_a = UnexpectedErrors;
|
|
56
|
+
/** handler for re-throwing exceptions directly */
|
|
57
|
+
UnexpectedErrors.reThrowImmediate = (e) => { throw e; };
|
|
58
|
+
/** handler for re-throwing exceptions from an asynchronous interval (so the current call stack is not aborted) */
|
|
59
|
+
UnexpectedErrors.reThrowDeferred = (e) => setTimeout(() => { throw e; }, 0);
|
|
60
|
+
/** handler for logging exception to console */
|
|
61
|
+
UnexpectedErrors.consoleLog = (e) => console.error(e); // eslint-disable-line no-console
|
|
62
|
+
/** handler for logging exception with [[Logger]] */
|
|
63
|
+
UnexpectedErrors.errorLog = (e) => Logger_1.Logger.logException("unhandled", e);
|
|
64
|
+
UnexpectedErrors._telemetry = [];
|
|
65
|
+
UnexpectedErrors._handler = _a.errorLog; // default to error logging
|
|
66
|
+
//# sourceMappingURL=UnexpectedErrors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnexpectedErrors.js","sourceRoot":"","sources":["../../src/UnexpectedErrors.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;AAEH,qCAAkC;AAOlC;;;;;;GAMG;AACH,MAAa,gBAAgB;IAY3B,gBAAwB,CAAC,CAAC,sBAAsB;IAEhD;;OAEG;IACI,MAAM,CAAC,YAAY,CAAC,OAA0B;QACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,MAAM,CAAC,KAAU,EAAE,eAAe,GAAG,IAAI;QACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,eAAe;YACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBACpC,IAAI;oBAAE,SAAS,CAAC,KAAK,CAAC,CAAC;iBAAE;gBAAC,OAAO,CAAC,EAAE,GAAG,CAAC,wCAAwC;YAClF,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,UAAU,CAAC,OAA0B;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,OAAO,UAAU,CAAC;IACpB,CAAC;;AA3CH,4CA4CC;;AA3CC,kDAAkD;AAC3B,iCAAgB,GAAG,CAAC,CAAM,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAE,CAAA;AACnE,kHAAkH;AAC3F,gCAAe,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,CAAA;AACvF,+CAA+C;AACxB,2BAAU,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAA,CAAC,iCAAiC;AACnG,oDAAoD;AAC7B,yBAAQ,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,eAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAE,CAAA;AAEnE,2BAAU,GAAwB,EAAG,CAAA;AACrC,yBAAQ,GAAG,EAAI,CAAC,QAAS,CAAA,CAAC,2BAA2B","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 Errors\r\n */\r\n\r\nimport { Logger } from \"./Logger\";\r\n\r\n/** A function to be notified when an unexpected error happens\r\n * @public\r\n */\r\nexport type OnUnexpectedError = (error: any) => void;\r\n\r\n/**\r\n * Utility for handling/reporting unexpected runtime errors. This class establishes a global handler for\r\n * unexpected errors, and programmers should use its `handle` method when they occur. Generally, unexpected\r\n * errors should not cause program termination, and should instead be logged and swallowed. However, for\r\n * development/debugging, it can be helpful to re-throw exceptions so they are not missed.\r\n * @public\r\n */\r\nexport class UnexpectedErrors {\r\n /** handler for re-throwing exceptions directly */\r\n public static readonly reThrowImmediate = (e: any) => { throw e; };\r\n /** handler for re-throwing exceptions from an asynchronous interval (so the current call stack is not aborted) */\r\n public static readonly reThrowDeferred = (e: any) => setTimeout(() => { throw e; }, 0);\r\n /** handler for logging exception to console */\r\n public static readonly consoleLog = (e: any) => console.error(e); // eslint-disable-line no-console\r\n /** handler for logging exception with [[Logger]] */\r\n public static readonly errorLog = (e: any) => Logger.logException(\"unhandled\", e);\r\n\r\n private static _telemetry: OnUnexpectedError[] = [];\r\n private static _handler = this.errorLog; // default to error logging\r\n private constructor() { } // this is a singleton\r\n\r\n /** Add a \"telemetry tracker\" for unexpected errors. Useful for tracking/reporting errors without changing handler.\r\n * @returns a method to remove the tracker\r\n */\r\n public static addTelemetry(tracker: OnUnexpectedError): () => void {\r\n this._telemetry.push(tracker);\r\n return () => this._telemetry.splice(this._telemetry.indexOf(tracker), 1);\r\n }\r\n\r\n /** call this method when an unexpected error happens so the global handler can process it.\r\n * @param error the unexpected error\r\n * @param notifyTelemetry if false, don't notify telemetry trackers. Use this for exceptions from third-party code, for example.\r\n */\r\n public static handle(error: any, notifyTelemetry = true): void {\r\n this._handler(error);\r\n if (notifyTelemetry)\r\n this._telemetry.forEach((telemetry) => {\r\n try { telemetry(error); } catch (_) { } // ignore errors from telemetry trackers\r\n });\r\n }\r\n\r\n /** establish a new global *unexpected error* handler.\r\n * @param handler the new global handler. You may provide your own function or use one of the static members of this class.\r\n * The default is [[errorLog]].\r\n * @returns the previous handler. Useful to temporarily change the handler.\r\n */\r\n public static setHandler(handler: OnUnexpectedError): OnUnexpectedError {\r\n const oldHandler = this._handler;\r\n this._handler = handler;\r\n return oldHandler;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UtilityTypes.js","sourceRoot":"","sources":["../../src/UtilityTypes.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAiBH;;;GAGG;AACH,SAAgB,YAAY,CAAI,GAAQ,EAAE,WAA2B;IACnE,OAAO,QAAQ,KAAK,OAAO,GAAG,IAAI,GAAG,YAAY,WAAW,CAAC;AAC/D,CAAC;AAFD,oCAEC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAI,GAAQ,EAAE,WAA2B;IACnE,OAAO,YAAY,CAAI,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAFD,oCAEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utils\n */\n\n/** The inverse of TypeScript's Readonly<T> type, producing a type that has all the properties of `T` with any `readonly` modifiers removed.\n * @public\n */\nexport type Mutable<T> = {\n -readonly [K in keyof T]: T[K];\n};\n\n/** Generically represents a class `T`, for use in type annotations.\n * @note A variable of type `Constructor<T>` matches a class `T` only if `T` has a **public** constructor.\n * @see [[asInstanceOf]] to attempt to cast an arbitrary value to class `T`.\n * @see [[isInstanceOf]] to determine if an arbitrary value is an instance of class `T`.\n * @public\n */\nexport type Constructor<T> = new (...args: any[]) => T;\n\n/** Returns true if `obj` is an object of class `T`.\n * @see [[asInstanceOf]] to cast `obj` to class `T`.\n * @public\n */\nexport function isInstanceOf<T>(obj: any, constructor: Constructor<T>): boolean {\n return \"object\" === typeof obj && obj instanceof constructor;\n}\n\n/** Cast `obj` to an instance of class `T`, or return undefined if `obj` is not an instance of class `T`.\n * @see [[isInstanceOf]] to query whether `obj` is of class `T`.\n * @public\n */\nexport function asInstanceOf<T>(obj: any, constructor: Constructor<T>): T | undefined {\n return isInstanceOf<T>(obj, constructor) ? obj as T : undefined;\n}\n\n/** Extracts the names of all public properties of `T` that are not of type `function`.\n * This includes properties defined using `get` syntax. Care should be used when using this type in conjunction with\n * the object spread (`...`) operator, because the spread operator omits properties defined using `get` syntax and, therefore,\n * so too does the type that TypeScript infers from that operator.\n * `get` syntax. For example:\n * ```ts\n * class Thing {\n * private _a = \"a\"; // a private variable\n * public b = \"b\"; // a public variable\n * public get c() { return \"c\"; } // a public property\n * public d() { return \"d\"; } // a public method\n * public e = () => \"e\"; // a public variable of type `function`\n * }\n *\n * // The following can have the values \"b\" or \"c\" - those are the public, non-function properties of Thing.\n * let nonFunctionProperty: NonFunctionPropertyNamesOf<Thing> = \"c\";\n *\n * // The following produces an error: \"Property 'c' is missing in type '{ b: string; e: () => string; }' but required in type 'NonFunctionPropertiesOf<Thing>'\"\n * const thing1 = new Thing();\n * const thing2: NonFunctionPropertiesOf<Thing> = { ...thing1 };\n * ```\n * @see [[NonFunctionPropertiesOf]] to obtain a type that includes only these properties.\n * @public\n */\nexport type NonFunctionPropertyNamesOf<T> = {\n [K in keyof T]: T[K] extends Function ? never : K;\n}[keyof T];\n\n/** Produces a type consisting of all of the public properties of `T` except for those of type `function`.\n * @see [[NonFunctionPropertyNamesOf]] for potential pitfalls when used in conjunction with the object spread operator.\n * @public\n */\nexport type NonFunctionPropertiesOf<T> = Pick<T, NonFunctionPropertyNamesOf<T>>;\n\n/** Any function returning a Promise.\n * @see [[AsyncMethodsOf]] to extract all async methods from a type.\n * @see [[PromiseReturnType]] to extract the type to which the Promise resolves.\n * @public\n */\nexport type AsyncFunction = (...args: any) => Promise<any>;\n\n/** Extracts the names of all function properties of `T` that return a Promise.\n * @public\n */\nexport type AsyncMethodsOf<T> = { [P in keyof T]: T[P] extends AsyncFunction ? P : never }[keyof T];\n\n/** Extracts the type to which the Promise returned by an async function resolves.\n * @public\n */\nexport type PromiseReturnType<T extends AsyncFunction> = T extends (...args: any) => Promise<infer R> ? R : any;\n"]}
|
|
1
|
+
{"version":3,"file":"UtilityTypes.js","sourceRoot":"","sources":["../../src/UtilityTypes.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAiBH;;;GAGG;AACH,SAAgB,YAAY,CAAI,GAAQ,EAAE,WAA2B;IACnE,OAAO,QAAQ,KAAK,OAAO,GAAG,IAAI,GAAG,YAAY,WAAW,CAAC;AAC/D,CAAC;AAFD,oCAEC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAI,GAAQ,EAAE,WAA2B;IACnE,OAAO,YAAY,CAAI,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAFD,oCAEC","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 Utils\r\n */\r\n\r\n/** The inverse of TypeScript's Readonly<T> type, producing a type that has all the properties of `T` with any `readonly` modifiers removed.\r\n * @public\r\n */\r\nexport type Mutable<T> = {\r\n -readonly [K in keyof T]: T[K];\r\n};\r\n\r\n/** Generically represents a class `T`, for use in type annotations.\r\n * @note A variable of type `Constructor<T>` matches a class `T` only if `T` has a **public** constructor.\r\n * @see [[asInstanceOf]] to attempt to cast an arbitrary value to class `T`.\r\n * @see [[isInstanceOf]] to determine if an arbitrary value is an instance of class `T`.\r\n * @public\r\n */\r\nexport type Constructor<T> = new (...args: any[]) => T;\r\n\r\n/** Returns true if `obj` is an object of class `T`.\r\n * @see [[asInstanceOf]] to cast `obj` to class `T`.\r\n * @public\r\n */\r\nexport function isInstanceOf<T>(obj: any, constructor: Constructor<T>): boolean {\r\n return \"object\" === typeof obj && obj instanceof constructor;\r\n}\r\n\r\n/** Cast `obj` to an instance of class `T`, or return undefined if `obj` is not an instance of class `T`.\r\n * @see [[isInstanceOf]] to query whether `obj` is of class `T`.\r\n * @public\r\n */\r\nexport function asInstanceOf<T>(obj: any, constructor: Constructor<T>): T | undefined {\r\n return isInstanceOf<T>(obj, constructor) ? obj as T : undefined;\r\n}\r\n\r\n/** Extracts the names of all public properties of `T` that are not of type `function`.\r\n * This includes properties defined using `get` syntax. Care should be used when using this type in conjunction with\r\n * the object spread (`...`) operator, because the spread operator omits properties defined using `get` syntax and, therefore,\r\n * so too does the type that TypeScript infers from that operator.\r\n * `get` syntax. For example:\r\n * ```ts\r\n * class Thing {\r\n * private _a = \"a\"; // a private variable\r\n * public b = \"b\"; // a public variable\r\n * public get c() { return \"c\"; } // a public property\r\n * public d() { return \"d\"; } // a public method\r\n * public e = () => \"e\"; // a public variable of type `function`\r\n * }\r\n *\r\n * // The following can have the values \"b\" or \"c\" - those are the public, non-function properties of Thing.\r\n * let nonFunctionProperty: NonFunctionPropertyNamesOf<Thing> = \"c\";\r\n *\r\n * // The following produces an error: \"Property 'c' is missing in type '{ b: string; e: () => string; }' but required in type 'NonFunctionPropertiesOf<Thing>'\"\r\n * const thing1 = new Thing();\r\n * const thing2: NonFunctionPropertiesOf<Thing> = { ...thing1 };\r\n * ```\r\n * @see [[NonFunctionPropertiesOf]] to obtain a type that includes only these properties.\r\n * @public\r\n */\r\nexport type NonFunctionPropertyNamesOf<T> = {\r\n [K in keyof T]: T[K] extends Function ? never : K;\r\n}[keyof T];\r\n\r\n/** Produces a type consisting of all of the public properties of `T` except for those of type `function`.\r\n * @see [[NonFunctionPropertyNamesOf]] for potential pitfalls when used in conjunction with the object spread operator.\r\n * @public\r\n */\r\nexport type NonFunctionPropertiesOf<T> = Pick<T, NonFunctionPropertyNamesOf<T>>;\r\n\r\n/** Any function returning a Promise.\r\n * @see [[AsyncMethodsOf]] to extract all async methods from a type.\r\n * @see [[PromiseReturnType]] to extract the type to which the Promise resolves.\r\n * @public\r\n */\r\nexport type AsyncFunction = (...args: any) => Promise<any>;\r\n\r\n/** Extracts the names of all function properties of `T` that return a Promise.\r\n * @public\r\n */\r\nexport type AsyncMethodsOf<T> = { [P in keyof T]: T[P] extends AsyncFunction ? P : never }[keyof T];\r\n\r\n/** Extracts the type to which the Promise returned by an async function resolves.\r\n * @public\r\n */\r\nexport type PromiseReturnType<T extends AsyncFunction> = T extends (...args: any) => Promise<infer R> ? R : any;\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-bentley.d.ts","sourceRoot":"","sources":["../../src/core-bentley.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAE/B;;GAEG;AAEH;;GAEG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG"}
|
|
1
|
+
{"version":3,"file":"core-bentley.d.ts","sourceRoot":"","sources":["../../src/core-bentley.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAE/B;;GAEG;AAEH;;GAEG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG"}
|
package/lib/cjs/core-bentley.js
CHANGED
|
@@ -41,6 +41,7 @@ __exportStar(require("./ProcessDetector"), exports);
|
|
|
41
41
|
__exportStar(require("./SortedArray"), exports);
|
|
42
42
|
__exportStar(require("./StringUtils"), exports);
|
|
43
43
|
__exportStar(require("./Time"), exports);
|
|
44
|
+
__exportStar(require("./UnexpectedErrors"), exports);
|
|
44
45
|
__exportStar(require("./UtilityTypes"), exports);
|
|
45
46
|
/** @packageDocumentation
|
|
46
47
|
* @module Utils
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-bentley.js","sourceRoot":"","sources":["../../src/core-bentley.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,gDAA8B;AAC9B,2CAAyB;AACzB,+CAA6B;AAC7B,4CAA0B;AAC1B,iDAA+B;AAC/B,0DAAwC;AACxC,6CAA2B;AAC3B,+CAA6B;AAC7B,4CAA0B;AAC1B,sDAAoC;AACpC,+CAA6B;AAC7B,+CAA6B;AAC7B,uCAAqB;AACrB,6CAA2B;AAC3B,8CAA4B;AAC5B,2CAAyB;AACzB,2CAAyB;AACzB,kDAAgC;AAChC,qDAAmC;AACnC,wDAAsC;AACtC,+CAA6B;AAC7B,mDAAiC;AACjC,kDAAgC;AAChC,oDAAkC;AAClC,gDAA8B;AAC9B,gDAA8B;AAC9B,yCAAuB;AACvB,iDAA+B;AAE/B;;GAEG;AAEH;;GAEG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nexport * from \"./AccessToken\";\nexport * from \"./Assert\";\nexport * from \"./AsyncMutex\";\nexport * from \"./BeEvent\";\nexport * from \"./BentleyError\";\nexport * from \"./BentleyLoggerCategory\";\nexport * from \"./BeSQLite\";\nexport * from \"./ByteStream\";\nexport * from \"./Compare\";\nexport * from \"./CompressedId64Set\";\nexport * from \"./Dictionary\";\nexport * from \"./Disposable\";\nexport * from \"./Id\";\nexport * from \"./IndexMap\";\nexport * from \"./JsonUtils\";\nexport * from \"./Logger\";\nexport * from \"./LRUMap\";\nexport * from \"./ObservableSet\";\nexport * from \"./OneAtATimeAction\";\nexport * from \"./OrderedId64Iterable\";\nexport * from \"./OrderedSet\";\nexport * from \"./partitionArray\";\nexport * from \"./PriorityQueue\";\nexport * from \"./ProcessDetector\";\nexport * from \"./SortedArray\";\nexport * from \"./StringUtils\";\nexport * from \"./Time\";\nexport * from \"./UtilityTypes\";\n\n/** @packageDocumentation\n * @module Utils\n */\n\n/** @docs-package-description\n * The core-bentley package contains classes to solve problems that are common for both client and server use cases.\n */\n/**\n * @docs-group-description BeSQLite\n * Classes for working with SQLite databases. SQLite underlies IModelDb and ECDb - see [Executing ECSQL]($docs/learning/ECSQL.md)\n */\n/**\n * @docs-group-description Configuration\n * Class for easily managing configuration variables for an iModel.js application.\n */\n/**\n * @docs-group-description Errors\n * Classes for working with errors.\n */\n/**\n * @docs-group-description Events\n * Classes for raising and handling events.\n */\n/**\n * @docs-group-description Ids\n * Classes for working with unique identifiers.\n */\n/**\n * @docs-group-description Logging\n * Classes for configuring and logging diagnostic messages - see [Learning about Logging]($docs/learning/common/Logging.md)\n */\n/**\n * @docs-group-description Collections\n * Specialized, customizable collection classes like priority queues.\n */\n/**\n * @docs-group-description Utils\n * Miscellaneous utility classes.\n */\n/**\n * @docs-group-description ProcessDetector\n * Functions for determining the type of the current JavaScript process.\n */\n"]}
|
|
1
|
+
{"version":3,"file":"core-bentley.js","sourceRoot":"","sources":["../../src/core-bentley.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,gDAA8B;AAC9B,2CAAyB;AACzB,+CAA6B;AAC7B,4CAA0B;AAC1B,iDAA+B;AAC/B,0DAAwC;AACxC,6CAA2B;AAC3B,+CAA6B;AAC7B,4CAA0B;AAC1B,sDAAoC;AACpC,+CAA6B;AAC7B,+CAA6B;AAC7B,uCAAqB;AACrB,6CAA2B;AAC3B,8CAA4B;AAC5B,2CAAyB;AACzB,2CAAyB;AACzB,kDAAgC;AAChC,qDAAmC;AACnC,wDAAsC;AACtC,+CAA6B;AAC7B,mDAAiC;AACjC,kDAAgC;AAChC,oDAAkC;AAClC,gDAA8B;AAC9B,gDAA8B;AAC9B,yCAAuB;AACvB,qDAAmC;AACnC,iDAA+B;AAE/B;;GAEG;AAEH;;GAEG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG","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\nexport * from \"./AccessToken\";\r\nexport * from \"./Assert\";\r\nexport * from \"./AsyncMutex\";\r\nexport * from \"./BeEvent\";\r\nexport * from \"./BentleyError\";\r\nexport * from \"./BentleyLoggerCategory\";\r\nexport * from \"./BeSQLite\";\r\nexport * from \"./ByteStream\";\r\nexport * from \"./Compare\";\r\nexport * from \"./CompressedId64Set\";\r\nexport * from \"./Dictionary\";\r\nexport * from \"./Disposable\";\r\nexport * from \"./Id\";\r\nexport * from \"./IndexMap\";\r\nexport * from \"./JsonUtils\";\r\nexport * from \"./Logger\";\r\nexport * from \"./LRUMap\";\r\nexport * from \"./ObservableSet\";\r\nexport * from \"./OneAtATimeAction\";\r\nexport * from \"./OrderedId64Iterable\";\r\nexport * from \"./OrderedSet\";\r\nexport * from \"./partitionArray\";\r\nexport * from \"./PriorityQueue\";\r\nexport * from \"./ProcessDetector\";\r\nexport * from \"./SortedArray\";\r\nexport * from \"./StringUtils\";\r\nexport * from \"./Time\";\r\nexport * from \"./UnexpectedErrors\";\r\nexport * from \"./UtilityTypes\";\r\n\r\n/** @packageDocumentation\r\n * @module Utils\r\n */\r\n\r\n/** @docs-package-description\r\n * The core-bentley package contains classes to solve problems that are common for both client and server use cases.\r\n */\r\n/**\r\n * @docs-group-description BeSQLite\r\n * Classes for working with SQLite databases. SQLite underlies IModelDb and ECDb - see [Executing ECSQL]($docs/learning/ECSQL.md)\r\n */\r\n/**\r\n * @docs-group-description Configuration\r\n * Class for easily managing configuration variables for an iModel.js application.\r\n */\r\n/**\r\n * @docs-group-description Errors\r\n * Classes for working with errors.\r\n */\r\n/**\r\n * @docs-group-description Events\r\n * Classes for raising and handling events.\r\n */\r\n/**\r\n * @docs-group-description Ids\r\n * Classes for working with unique identifiers.\r\n */\r\n/**\r\n * @docs-group-description Logging\r\n * Classes for configuring and logging diagnostic messages - see [Learning about Logging]($docs/learning/common/Logging.md)\r\n */\r\n/**\r\n * @docs-group-description Collections\r\n * Specialized, customizable collection classes like priority queues.\r\n */\r\n/**\r\n * @docs-group-description Utils\r\n * Miscellaneous utility classes.\r\n */\r\n/**\r\n * @docs-group-description ProcessDetector\r\n * Functions for determining the type of the current JavaScript process.\r\n */\r\n"]}
|
package/lib/esm/Assert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Assert.js","sourceRoot":"","sources":["../../src/Assert.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,SAAkB,EAAE,GAAY;IACrD,IAAI,CAAC,SAAS;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,kBAAkB,EAAE,CAAC,CAAC;AAC5D,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utils\n */\n\n/**\n * Asserts that a condition is `true`, and in development builds throws an error if it is not.\n * This is an [assertion function](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions) that alters the\n * behavior of the TypeScript compiler.\n * @param condition The result of a boolean expression.\n * @param msg An optional message to include in the thrown exception. Defaults to \"Programmer Error\".\n * @throws Error containing the specified message if condition is false.\n * @note This function should be used to validate conditions that should never realistically occur, or\n * which indicate a misuse of the API which should be eliminated during development.\n * @public\n */\nexport function assert(condition: boolean, msg?: string): asserts condition {\n if (!condition)\n throw new Error(`Assert: ${msg ?? \"Programmer Error\"}`);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Assert.js","sourceRoot":"","sources":["../../src/Assert.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,SAAkB,EAAE,GAAY;IACrD,IAAI,CAAC,SAAS;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,kBAAkB,EAAE,CAAC,CAAC;AAC5D,CAAC","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 Utils\r\n */\r\n\r\n/**\r\n * Asserts that a condition is `true`, and in development builds throws an error if it is not.\r\n * This is an [assertion function](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions) that alters the\r\n * behavior of the TypeScript compiler.\r\n * @param condition The result of a boolean expression.\r\n * @param msg An optional message to include in the thrown exception. Defaults to \"Programmer Error\".\r\n * @throws Error containing the specified message if condition is false.\r\n * @note This function should be used to validate conditions that should never realistically occur, or\r\n * which indicate a misuse of the API which should be eliminated during development.\r\n * @public\r\n */\r\nexport function assert(condition: boolean, msg?: string): asserts condition {\r\n if (!condition)\r\n throw new Error(`Assert: ${msg ?? \"Programmer Error\"}`);\r\n}\r\n"]}
|
package/lib/esm/BeEvent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeEvent.d.ts","sourceRoot":"","sources":["../../src/BeEvent.ts"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"BeEvent.d.ts","sourceRoot":"","sources":["../../src/BeEvent.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH;;GAEG;AACH,oBAAY,QAAQ,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAQ/C;;;;;GAKG;AACH,qBAAa,OAAO,CAAC,CAAC,SAAS,QAAQ;IACrC,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,iBAAiB,CAAkB;IAE3C,iEAAiE;IACjE,IAAW,iBAAiB,WAAqC;IAEjE;;;;;;OAMG;IACI,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,MAAM,IAAI;IAKxD;;;;;;OAMG;IACI,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,MAAM,IAAI;IAKpD;;;;;;OAMG;IACI,cAAc,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO;IAiBxD;;;;OAIG;IACI,UAAU,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IA+BxC;;;OAGG;IACI,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO;IAS7C,6CAA6C;IACtC,KAAK,IAAI,IAAI;CACrB;AAED;;GAEG;AACH,qBAAa,SAAS,CAAC,UAAU,CAAE,SAAQ,OAAO,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5E,wDAAwD;IACjD,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;CACpC;AAED;;;;GAIG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,QAAQ;IACzC,OAAO,CAAC,OAAO,CAAkD;IAEjE;;;OAGG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAUpC;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAGlC"}
|
package/lib/esm/BeEvent.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module Events
|
|
7
7
|
*/
|
|
8
|
+
import { UnexpectedErrors } from "./UnexpectedErrors";
|
|
8
9
|
/**
|
|
9
10
|
* Manages a set of *listeners* for a particular event and notifies them when the event is raised.
|
|
10
11
|
* This class is usually instantiated inside of a container class and
|
|
@@ -79,7 +80,12 @@ export class BeEvent {
|
|
|
79
80
|
dropped = true;
|
|
80
81
|
}
|
|
81
82
|
else {
|
|
82
|
-
|
|
83
|
+
try {
|
|
84
|
+
context.listener.apply(context.scope, args);
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
UnexpectedErrors.handle(e);
|
|
88
|
+
}
|
|
83
89
|
if (context.once) {
|
|
84
90
|
context.listener = undefined;
|
|
85
91
|
dropped = true;
|
package/lib/esm/BeEvent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeEvent.js","sourceRoot":"","sources":["../../src/BeEvent.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;
|
|
1
|
+
{"version":3,"file":"BeEvent.js","sourceRoot":"","sources":["../../src/BeEvent.ts"],"names":[],"mappings":"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","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 Events\r\n */\r\n\r\nimport { UnexpectedErrors } from \"./UnexpectedErrors\";\r\n\r\n/** A function invoked when a BeEvent is raised.\r\n * @public\r\n */\r\nexport type Listener = (...arg: any[]) => void;\r\n\r\ninterface EventContext {\r\n listener: Listener | undefined;\r\n scope: any;\r\n once: boolean;\r\n}\r\n\r\n/**\r\n * Manages a set of *listeners* for a particular event and notifies them when the event is raised.\r\n * This class is usually instantiated inside of a container class and\r\n * exposed as a property for others to *subscribe* via [[BeEvent.addListener]].\r\n * @public\r\n */\r\nexport class BeEvent<T extends Listener> {\r\n private _listeners: EventContext[] = [];\r\n private _insideRaiseEvent: boolean = false;\r\n\r\n /** The number of listeners currently subscribed to the event. */\r\n public get numberOfListeners() { return this._listeners.length; }\r\n\r\n /**\r\n * Registers a Listener to be executed whenever this event is raised.\r\n * @param listener The function to be executed when the event is raised.\r\n * @param scope An optional object scope to serve as the 'this' pointer when listener is invoked.\r\n * @returns A function that will remove this event listener.\r\n * @see [[BeEvent.raiseEvent]], [[BeEvent.removeListener]]\r\n */\r\n public addListener(listener: T, scope?: any): () => void {\r\n this._listeners.push({ listener, scope, once: false });\r\n return () => this.removeListener(listener, scope);\r\n }\r\n\r\n /**\r\n * Registers a callback function to be executed *only once* when the event is raised.\r\n * @param listener The function to be executed once when the event is raised.\r\n * @param scope An optional object scope to serve as the `this` pointer in which the listener function will execute.\r\n * @returns A function that will remove this event listener.\r\n * @see [[BeEvent.raiseEvent]], [[BeEvent.removeListener]]\r\n */\r\n public addOnce(listener: T, scope?: any): () => void {\r\n this._listeners.push({ listener, scope, once: true });\r\n return () => this.removeListener(listener, scope);\r\n }\r\n\r\n /**\r\n * Un-register a previously registered listener.\r\n * @param listener The listener to be unregistered.\r\n * @param scope The scope that was originally passed to addListener.\r\n * @returns 'true' if the listener was removed; 'false' if the listener and scope are not registered with the event.\r\n * @see [[BeEvent.raiseEvent]], [[BeEvent.addListener]]\r\n */\r\n public removeListener(listener: T, scope?: any): boolean {\r\n const listeners = this._listeners;\r\n\r\n for (let i = 0; i < listeners.length; ++i) {\r\n const context = listeners[i];\r\n if (context.listener === listener && context.scope === scope) {\r\n if (this._insideRaiseEvent) {\r\n context.listener = undefined;\r\n } else {\r\n listeners.splice(i, 1);\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Raises the event by calling each registered listener with the supplied arguments.\r\n * @param args This method takes any number of parameters and passes them through to the listeners.\r\n * @see [[BeEvent.removeListener]], [[BeEvent.addListener]]\r\n */\r\n public raiseEvent(...args: Parameters<T>) {\r\n this._insideRaiseEvent = true;\r\n\r\n const listeners = this._listeners;\r\n const length = listeners.length;\r\n let dropped = false;\r\n\r\n for (let i = 0; i < length; ++i) {\r\n const context = listeners[i];\r\n if (!context.listener) {\r\n dropped = true;\r\n } else {\r\n try {\r\n context.listener.apply(context.scope, args);\r\n } catch (e) {\r\n UnexpectedErrors.handle(e);\r\n }\r\n if (context.once) {\r\n context.listener = undefined;\r\n dropped = true;\r\n }\r\n }\r\n }\r\n\r\n // if we had dropped listeners, remove them now\r\n if (dropped)\r\n this._listeners = this._listeners.filter((ctx) => ctx.listener !== undefined);\r\n\r\n this._insideRaiseEvent = false;\r\n }\r\n\r\n /** Determine whether this BeEvent has a specified listener registered.\r\n * @param listener The listener to check.\r\n * @param scope optional scope argument to match call to addListener\r\n */\r\n public has(listener: T, scope?: any): boolean {\r\n for (const ctx of this._listeners) {\r\n if (ctx.listener === listener && ctx.scope === scope) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** Clear all Listeners from this BeEvent. */\r\n public clear(): void { this._listeners.length = 0; }\r\n}\r\n\r\n/** Specialization of BeEvent for events that take a single strongly typed argument, primarily used for UI events.\r\n * @public\r\n */\r\nexport class BeUiEvent<TEventArgs> extends BeEvent<(args: TEventArgs) => void> {\r\n /** Raises event with single strongly typed argument. */\r\n public emit(args: TEventArgs): void { this.raiseEvent(args); }\r\n}\r\n\r\n/**\r\n * A list of BeEvent objects, accessible by an event name.\r\n * This class may be used instead of explicitly declaring each BeEvent as a member of a containing class.\r\n * @public\r\n */\r\nexport class BeEventList<T extends Listener> {\r\n private _events: { [name: string]: BeEvent<T> | undefined } = {};\r\n\r\n /**\r\n * Gets the event associated with the specified name, creating the event if it does not already exist.\r\n * @param name The name of the event.\r\n */\r\n public get(name: string): BeEvent<T> {\r\n let event = this._events[name];\r\n if (event)\r\n return event;\r\n\r\n event = new BeEvent();\r\n this._events[name] = event;\r\n return event;\r\n }\r\n\r\n /**\r\n * Removes the event associated with a name.\r\n * @param name The name of the event.\r\n */\r\n public remove(name: string): void {\r\n this._events[name] = undefined;\r\n }\r\n}\r\n"]}
|
package/lib/esm/BeSQLite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeSQLite.js","sourceRoot":"","sources":["../../src/BeSQLite.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module BeSQLite\n */\n\n/** Whether to open a database readonly or writeable.\n * @public\n */\nexport enum OpenMode {\n Readonly = 0x00000001,\n ReadWrite = 0x00000002,\n}\n\n/** Values, stored in changesets, that indicate what operation was performed on the database.\n * @public\n */\nexport enum DbOpcode {\n /** A row was deleted. */\n Delete = 9,\n /** A new row was inserted. */\n Insert = 18,\n /** Some columns of an existing row were updated. */\n Update = 23,\n}\n\n/** Values for return codes from BeSQLite functions. Consult SQLite documentation for further explanations.\n * @public\n */\n/* eslint-disable @typescript-eslint/naming-convention */\n// Disabling for the rest of the file since eslint does not correctly parse the entire enum, only parts of it\nexport enum DbResult {\n /** Success */\n BE_SQLITE_OK = 0,\n /** SQL error or missing database */\n BE_SQLITE_ERROR = 1,\n /** Internal logic error */\n BE_SQLITE_INTERNAL = 2,\n /** Access permission denied */\n BE_SQLITE_PERM = 3,\n /** Callback routine requested an abort */\n BE_SQLITE_ABORT = 4,\n /** The database file is locked */\n BE_SQLITE_BUSY = 5,\n /** A table in the database is locked */\n BE_SQLITE_LOCKED = 6,\n /** A malloc() failed */\n BE_SQLITE_NOMEM = 7,\n /** Attempt to write a readonly database */\n BE_SQLITE_READONLY = 8,\n /** Operation terminated by interrupt */\n BE_SQLITE_INTERRUPT = 9,\n /** Some kind of disk I/O error occurred */\n BE_SQLITE_IOERR = 10,\n /** The database disk image is malformed */\n BE_SQLITE_CORRUPT = 11,\n /** NOT USED. Table or record not found */\n BE_SQLITE_NOTFOUND = 12,\n /** Insertion failed because database is full or write operation failed because disk is full */\n BE_SQLITE_FULL = 13,\n /** Unable to open the database file */\n BE_SQLITE_CANTOPEN = 14,\n /** Database lock protocol error */\n BE_SQLITE_PROTOCOL = 15,\n /** Database is empty */\n BE_SQLITE_EMPTY = 16,\n /** The database schema changed */\n BE_SQLITE_SCHEMA = 17,\n /** String or BLOB exceeds size limit */\n BE_SQLITE_TOOBIG = 18,\n /** Abort due to constraint violation. See extended error values. */\n BE_SQLITE_CONSTRAINT_BASE = 19,\n /** Data type mismatch */\n BE_SQLITE_MISMATCH = 20,\n /** Library used incorrectly */\n BE_SQLITE_MISUSE = 21,\n /** Uses OS features not supported on host */\n BE_SQLITE_NOLFS = 22,\n /** Authorization denied */\n BE_SQLITE_AUTH = 23,\n /** Auxiliary database format error */\n BE_SQLITE_FORMAT = 24,\n /** 2nd parameter to Bind out of range */\n BE_SQLITE_RANGE = 25,\n /** File opened that is not a database file */\n BE_SQLITE_NOTADB = 26,\n /** Step() has another row ready */\n BE_SQLITE_ROW = 100,\n /** Step() has finished executing */\n BE_SQLITE_DONE = 101,\n\n BE_SQLITE_IOERR_READ = (BE_SQLITE_IOERR | (1 << 8)),\n BE_SQLITE_IOERR_SHORT_READ = (BE_SQLITE_IOERR | (2 << 8)),\n BE_SQLITE_IOERR_WRITE = (BE_SQLITE_IOERR | (3 << 8)),\n BE_SQLITE_IOERR_FSYNC = (BE_SQLITE_IOERR | (4 << 8)),\n BE_SQLITE_IOERR_DIR_FSYNC = (BE_SQLITE_IOERR | (5 << 8)),\n BE_SQLITE_IOERR_TRUNCATE = (BE_SQLITE_IOERR | (6 << 8)),\n BE_SQLITE_IOERR_FSTAT = (BE_SQLITE_IOERR | (7 << 8)),\n BE_SQLITE_IOERR_UNLOCK = (BE_SQLITE_IOERR | (8 << 8)),\n BE_SQLITE_IOERR_RDLOCK = (BE_SQLITE_IOERR | (9 << 8)),\n BE_SQLITE_IOERR_DELETE = (BE_SQLITE_IOERR | (10 << 8)),\n BE_SQLITE_IOERR_BLOCKED = (BE_SQLITE_IOERR | (11 << 8)),\n BE_SQLITE_IOERR_NOMEM = (BE_SQLITE_IOERR | (12 << 8)),\n BE_SQLITE_IOERR_ACCESS = (BE_SQLITE_IOERR | (13 << 8)),\n BE_SQLITE_IOERR_CHECKRESERVEDLOCK = (BE_SQLITE_IOERR | (14 << 8)),\n BE_SQLITE_IOERR_LOCK = (BE_SQLITE_IOERR | (15 << 8)),\n BE_SQLITE_IOERR_CLOSE = (BE_SQLITE_IOERR | (16 << 8)),\n BE_SQLITE_IOERR_DIR_CLOSE = (BE_SQLITE_IOERR | (17 << 8)),\n BE_SQLITE_IOERR_SHMOPEN = (BE_SQLITE_IOERR | (18 << 8)),\n BE_SQLITE_IOERR_SHMSIZE = (BE_SQLITE_IOERR | (19 << 8)),\n BE_SQLITE_IOERR_SHMLOCK = (BE_SQLITE_IOERR | (20 << 8)),\n BE_SQLITE_IOERR_SHMMAP = (BE_SQLITE_IOERR | (21 << 8)),\n BE_SQLITE_IOERR_SEEK = (BE_SQLITE_IOERR | (22 << 8)),\n BE_SQLITE_IOERR_DELETE_NOENT = (BE_SQLITE_IOERR | (23 << 8)),\n\n /** attempt to create a new file when a file by that name already exists */\n BE_SQLITE_ERROR_FileExists = (BE_SQLITE_IOERR | (1 << 24)),\n /** attempt to open a BeSQLite::Db that is already in use somewhere. */\n BE_SQLITE_ERROR_AlreadyOpen = (BE_SQLITE_IOERR | (2 << 24)),\n /** attempt to open a BeSQLite::Db that doesn't have a property table. */\n BE_SQLITE_ERROR_NoPropertyTable = (BE_SQLITE_IOERR | (3 << 24)),\n /** the database name is not a file. */\n BE_SQLITE_ERROR_FileNotFound = (BE_SQLITE_IOERR | (4 << 24)),\n /** there is no transaction active and the database was opened with AllowImplicitTransactions=false */\n BE_SQLITE_ERROR_NoTxnActive = (BE_SQLITE_IOERR | (5 << 24)),\n /** wrong BeSQLite profile version */\n BE_SQLITE_ERROR_BadDbProfile = (BE_SQLITE_IOERR | (6 << 24)),\n /** Profile of file could not be determined. */\n BE_SQLITE_ERROR_InvalidProfileVersion = (BE_SQLITE_IOERR | (7 << 24)),\n /** Upgrade of profile of file failed. */\n BE_SQLITE_ERROR_ProfileUpgradeFailed = (BE_SQLITE_IOERR | (8 << 24)),\n /** Profile of file is too old. Therefore file can only be opened read-only. */\n BE_SQLITE_ERROR_ProfileTooOldForReadWrite = (BE_SQLITE_IOERR | (9 << 24)),\n /** Profile of file is too old. Therefore file cannot be opened. */\n BE_SQLITE_ERROR_ProfileTooOld = (BE_SQLITE_IOERR | (10 << 24)),\n /** Profile of file is too new for read-write access. Therefore file can only be opened read-only. */\n BE_SQLITE_ERROR_ProfileTooNewForReadWrite = (BE_SQLITE_IOERR | (11 << 24)),\n /** Profile of file is too new. Therefore file cannot be opened. */\n BE_SQLITE_ERROR_ProfileTooNew = (BE_SQLITE_IOERR | (12 << 24)),\n /** attempt to commit with active changetrack */\n BE_SQLITE_ERROR_ChangeTrackError = (BE_SQLITE_IOERR | (13 << 24)),\n /** invalid version of the revision file is being imported */\n BE_SQLITE_ERROR_InvalidChangeSetVersion = (BE_SQLITE_IOERR | (14 << 24)),\n /** The schemas found in the database need to be upgraded */\n BE_SQLITE_ERROR_SchemaUpgradeRequired = (BE_SQLITE_IOERR | 15 << 24),\n /** The schemas found in the database are too new, and the application needs to be upgraded. */\n BE_SQLITE_ERROR_SchemaTooNew = (BE_SQLITE_IOERR | 16 << 24),\n /** The schemas found in the database are too old, and the DgnDb needs to be upgraded. */\n BE_SQLITE_ERROR_SchemaTooOld = (BE_SQLITE_IOERR | 17 << 24),\n /** Error acquiring a lock on the schemas before upgrade. */\n BE_SQLITE_ERROR_SchemaLockFailed = (BE_SQLITE_IOERR | 18 << 24),\n /** Error upgrading the schemas in the database. */\n BE_SQLITE_ERROR_SchemaUpgradeFailed = (BE_SQLITE_IOERR | 19 << 24),\n /** Error importing the schemas into the database. */\n BE_SQLITE_ERROR_SchemaImportFailed = (BE_SQLITE_IOERR | 20 << 24),\n /** Error acquiring locks or codes */\n BE_SQLITE_ERROR_CouldNotAcquireLocksOrCodes = (BE_SQLITE_IOERR | 21 << 24),\n /** Recommended that the schemas found in the database be upgraded */\n BE_SQLITE_ERROR_SchemaUpgradeRecommended = (BE_SQLITE_IOERR | 22 << 24),\n\n BE_SQLITE_LOCKED_SHAREDCACHE = (BE_SQLITE_LOCKED | (1 << 8)),\n BE_SQLITE_BUSY_RECOVERY = (BE_SQLITE_BUSY | (1 << 8)),\n BE_SQLITE_CANTOPEN_NOTEMPDIR = (BE_SQLITE_CANTOPEN | (1 << 8)),\n BE_SQLITE_CANTOPEN_ISDIR = (BE_SQLITE_CANTOPEN | (2 << 8)),\n BE_SQLITE_CANTOPEN_FULLPATH = (BE_SQLITE_CANTOPEN | (3 << 8)),\n BE_SQLITE_CORRUPT_VTAB = (BE_SQLITE_CORRUPT | (1 << 8)),\n BE_SQLITE_READONLY_RECOVERY = (BE_SQLITE_READONLY | (1 << 8)),\n BE_SQLITE_READONLY_CANTLOCK = (BE_SQLITE_READONLY | (2 << 8)),\n BE_SQLITE_READONLY_ROLLBACK = (BE_SQLITE_READONLY | (3 << 8)),\n BE_SQLITE_ABORT_ROLLBACK = (BE_SQLITE_ABORT | (2 << 8)),\n BE_SQLITE_CONSTRAINT_CHECK = (BE_SQLITE_CONSTRAINT_BASE | (1 << 8)),\n BE_SQLITE_CONSTRAINT_COMMITHOOK = (BE_SQLITE_CONSTRAINT_BASE | (2 << 8)),\n BE_SQLITE_CONSTRAINT_FOREIGNKEY = (BE_SQLITE_CONSTRAINT_BASE | (3 << 8)),\n BE_SQLITE_CONSTRAINT_FUNCTION = (BE_SQLITE_CONSTRAINT_BASE | (4 << 8)),\n BE_SQLITE_CONSTRAINT_NOTNULL = (BE_SQLITE_CONSTRAINT_BASE | (5 << 8)),\n BE_SQLITE_CONSTRAINT_PRIMARYKEY = (BE_SQLITE_CONSTRAINT_BASE | (6 << 8)),\n BE_SQLITE_CONSTRAINT_TRIGGER = (BE_SQLITE_CONSTRAINT_BASE | (7 << 8)),\n BE_SQLITE_CONSTRAINT_UNIQUE = (BE_SQLITE_CONSTRAINT_BASE | (8 << 8)),\n BE_SQLITE_CONSTRAINT_VTAB = (BE_SQLITE_CONSTRAINT_BASE | (9 << 8)),\n}\n/* eslint-enable @typescript-eslint/naming-convention */\n"]}
|
|
1
|
+
{"version":3,"file":"BeSQLite.js","sourceRoot":"","sources":["../../src/BeSQLite.ts"],"names":[],"mappings":"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","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 BeSQLite\r\n */\r\n\r\n/** Whether to open a database readonly or writeable.\r\n * @public\r\n */\r\nexport enum OpenMode {\r\n Readonly = 0x00000001,\r\n ReadWrite = 0x00000002,\r\n}\r\n\r\n/** Values, stored in changesets, that indicate what operation was performed on the database.\r\n * @public\r\n */\r\nexport enum DbOpcode {\r\n /** A row was deleted. */\r\n Delete = 9,\r\n /** A new row was inserted. */\r\n Insert = 18,\r\n /** Some columns of an existing row were updated. */\r\n Update = 23,\r\n}\r\n\r\n/** Values for return codes from BeSQLite functions. Consult SQLite documentation for further explanations.\r\n * @public\r\n */\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n// Disabling for the rest of the file since eslint does not correctly parse the entire enum, only parts of it\r\nexport enum DbResult {\r\n /** Success */\r\n BE_SQLITE_OK = 0,\r\n /** SQL error or missing database */\r\n BE_SQLITE_ERROR = 1,\r\n /** Internal logic error */\r\n BE_SQLITE_INTERNAL = 2,\r\n /** Access permission denied */\r\n BE_SQLITE_PERM = 3,\r\n /** Callback routine requested an abort */\r\n BE_SQLITE_ABORT = 4,\r\n /** The database file is locked */\r\n BE_SQLITE_BUSY = 5,\r\n /** A table in the database is locked */\r\n BE_SQLITE_LOCKED = 6,\r\n /** A malloc() failed */\r\n BE_SQLITE_NOMEM = 7,\r\n /** Attempt to write a readonly database */\r\n BE_SQLITE_READONLY = 8,\r\n /** Operation terminated by interrupt */\r\n BE_SQLITE_INTERRUPT = 9,\r\n /** Some kind of disk I/O error occurred */\r\n BE_SQLITE_IOERR = 10,\r\n /** The database disk image is malformed */\r\n BE_SQLITE_CORRUPT = 11,\r\n /** NOT USED. Table or record not found */\r\n BE_SQLITE_NOTFOUND = 12,\r\n /** Insertion failed because database is full or write operation failed because disk is full */\r\n BE_SQLITE_FULL = 13,\r\n /** Unable to open the database file */\r\n BE_SQLITE_CANTOPEN = 14,\r\n /** Database lock protocol error */\r\n BE_SQLITE_PROTOCOL = 15,\r\n /** Database is empty */\r\n BE_SQLITE_EMPTY = 16,\r\n /** The database schema changed */\r\n BE_SQLITE_SCHEMA = 17,\r\n /** String or BLOB exceeds size limit */\r\n BE_SQLITE_TOOBIG = 18,\r\n /** Abort due to constraint violation. See extended error values. */\r\n BE_SQLITE_CONSTRAINT_BASE = 19,\r\n /** Data type mismatch */\r\n BE_SQLITE_MISMATCH = 20,\r\n /** Library used incorrectly */\r\n BE_SQLITE_MISUSE = 21,\r\n /** Uses OS features not supported on host */\r\n BE_SQLITE_NOLFS = 22,\r\n /** Authorization denied */\r\n BE_SQLITE_AUTH = 23,\r\n /** Auxiliary database format error */\r\n BE_SQLITE_FORMAT = 24,\r\n /** 2nd parameter to Bind out of range */\r\n BE_SQLITE_RANGE = 25,\r\n /** File opened that is not a database file */\r\n BE_SQLITE_NOTADB = 26,\r\n /** Step() has another row ready */\r\n BE_SQLITE_ROW = 100,\r\n /** Step() has finished executing */\r\n BE_SQLITE_DONE = 101,\r\n\r\n BE_SQLITE_IOERR_READ = (BE_SQLITE_IOERR | (1 << 8)),\r\n BE_SQLITE_IOERR_SHORT_READ = (BE_SQLITE_IOERR | (2 << 8)),\r\n BE_SQLITE_IOERR_WRITE = (BE_SQLITE_IOERR | (3 << 8)),\r\n BE_SQLITE_IOERR_FSYNC = (BE_SQLITE_IOERR | (4 << 8)),\r\n BE_SQLITE_IOERR_DIR_FSYNC = (BE_SQLITE_IOERR | (5 << 8)),\r\n BE_SQLITE_IOERR_TRUNCATE = (BE_SQLITE_IOERR | (6 << 8)),\r\n BE_SQLITE_IOERR_FSTAT = (BE_SQLITE_IOERR | (7 << 8)),\r\n BE_SQLITE_IOERR_UNLOCK = (BE_SQLITE_IOERR | (8 << 8)),\r\n BE_SQLITE_IOERR_RDLOCK = (BE_SQLITE_IOERR | (9 << 8)),\r\n BE_SQLITE_IOERR_DELETE = (BE_SQLITE_IOERR | (10 << 8)),\r\n BE_SQLITE_IOERR_BLOCKED = (BE_SQLITE_IOERR | (11 << 8)),\r\n BE_SQLITE_IOERR_NOMEM = (BE_SQLITE_IOERR | (12 << 8)),\r\n BE_SQLITE_IOERR_ACCESS = (BE_SQLITE_IOERR | (13 << 8)),\r\n BE_SQLITE_IOERR_CHECKRESERVEDLOCK = (BE_SQLITE_IOERR | (14 << 8)),\r\n BE_SQLITE_IOERR_LOCK = (BE_SQLITE_IOERR | (15 << 8)),\r\n BE_SQLITE_IOERR_CLOSE = (BE_SQLITE_IOERR | (16 << 8)),\r\n BE_SQLITE_IOERR_DIR_CLOSE = (BE_SQLITE_IOERR | (17 << 8)),\r\n BE_SQLITE_IOERR_SHMOPEN = (BE_SQLITE_IOERR | (18 << 8)),\r\n BE_SQLITE_IOERR_SHMSIZE = (BE_SQLITE_IOERR | (19 << 8)),\r\n BE_SQLITE_IOERR_SHMLOCK = (BE_SQLITE_IOERR | (20 << 8)),\r\n BE_SQLITE_IOERR_SHMMAP = (BE_SQLITE_IOERR | (21 << 8)),\r\n BE_SQLITE_IOERR_SEEK = (BE_SQLITE_IOERR | (22 << 8)),\r\n BE_SQLITE_IOERR_DELETE_NOENT = (BE_SQLITE_IOERR | (23 << 8)),\r\n\r\n /** attempt to create a new file when a file by that name already exists */\r\n BE_SQLITE_ERROR_FileExists = (BE_SQLITE_IOERR | (1 << 24)),\r\n /** attempt to open a BeSQLite::Db that is already in use somewhere. */\r\n BE_SQLITE_ERROR_AlreadyOpen = (BE_SQLITE_IOERR | (2 << 24)),\r\n /** attempt to open a BeSQLite::Db that doesn't have a property table. */\r\n BE_SQLITE_ERROR_NoPropertyTable = (BE_SQLITE_IOERR | (3 << 24)),\r\n /** the database name is not a file. */\r\n BE_SQLITE_ERROR_FileNotFound = (BE_SQLITE_IOERR | (4 << 24)),\r\n /** there is no transaction active and the database was opened with AllowImplicitTransactions=false */\r\n BE_SQLITE_ERROR_NoTxnActive = (BE_SQLITE_IOERR | (5 << 24)),\r\n /** wrong BeSQLite profile version */\r\n BE_SQLITE_ERROR_BadDbProfile = (BE_SQLITE_IOERR | (6 << 24)),\r\n /** Profile of file could not be determined. */\r\n BE_SQLITE_ERROR_InvalidProfileVersion = (BE_SQLITE_IOERR | (7 << 24)),\r\n /** Upgrade of profile of file failed. */\r\n BE_SQLITE_ERROR_ProfileUpgradeFailed = (BE_SQLITE_IOERR | (8 << 24)),\r\n /** Profile of file is too old. Therefore file can only be opened read-only. */\r\n BE_SQLITE_ERROR_ProfileTooOldForReadWrite = (BE_SQLITE_IOERR | (9 << 24)),\r\n /** Profile of file is too old. Therefore file cannot be opened. */\r\n BE_SQLITE_ERROR_ProfileTooOld = (BE_SQLITE_IOERR | (10 << 24)),\r\n /** Profile of file is too new for read-write access. Therefore file can only be opened read-only. */\r\n BE_SQLITE_ERROR_ProfileTooNewForReadWrite = (BE_SQLITE_IOERR | (11 << 24)),\r\n /** Profile of file is too new. Therefore file cannot be opened. */\r\n BE_SQLITE_ERROR_ProfileTooNew = (BE_SQLITE_IOERR | (12 << 24)),\r\n /** attempt to commit with active changetrack */\r\n BE_SQLITE_ERROR_ChangeTrackError = (BE_SQLITE_IOERR | (13 << 24)),\r\n /** invalid version of the revision file is being imported */\r\n BE_SQLITE_ERROR_InvalidChangeSetVersion = (BE_SQLITE_IOERR | (14 << 24)),\r\n /** The schemas found in the database need to be upgraded */\r\n BE_SQLITE_ERROR_SchemaUpgradeRequired = (BE_SQLITE_IOERR | 15 << 24),\r\n /** The schemas found in the database are too new, and the application needs to be upgraded. */\r\n BE_SQLITE_ERROR_SchemaTooNew = (BE_SQLITE_IOERR | 16 << 24),\r\n /** The schemas found in the database are too old, and the DgnDb needs to be upgraded. */\r\n BE_SQLITE_ERROR_SchemaTooOld = (BE_SQLITE_IOERR | 17 << 24),\r\n /** Error acquiring a lock on the schemas before upgrade. */\r\n BE_SQLITE_ERROR_SchemaLockFailed = (BE_SQLITE_IOERR | 18 << 24),\r\n /** Error upgrading the schemas in the database. */\r\n BE_SQLITE_ERROR_SchemaUpgradeFailed = (BE_SQLITE_IOERR | 19 << 24),\r\n /** Error importing the schemas into the database. */\r\n BE_SQLITE_ERROR_SchemaImportFailed = (BE_SQLITE_IOERR | 20 << 24),\r\n /** Error acquiring locks or codes */\r\n BE_SQLITE_ERROR_CouldNotAcquireLocksOrCodes = (BE_SQLITE_IOERR | 21 << 24),\r\n /** Recommended that the schemas found in the database be upgraded */\r\n BE_SQLITE_ERROR_SchemaUpgradeRecommended = (BE_SQLITE_IOERR | 22 << 24),\r\n\r\n BE_SQLITE_LOCKED_SHAREDCACHE = (BE_SQLITE_LOCKED | (1 << 8)),\r\n BE_SQLITE_BUSY_RECOVERY = (BE_SQLITE_BUSY | (1 << 8)),\r\n BE_SQLITE_CANTOPEN_NOTEMPDIR = (BE_SQLITE_CANTOPEN | (1 << 8)),\r\n BE_SQLITE_CANTOPEN_ISDIR = (BE_SQLITE_CANTOPEN | (2 << 8)),\r\n BE_SQLITE_CANTOPEN_FULLPATH = (BE_SQLITE_CANTOPEN | (3 << 8)),\r\n BE_SQLITE_CORRUPT_VTAB = (BE_SQLITE_CORRUPT | (1 << 8)),\r\n BE_SQLITE_READONLY_RECOVERY = (BE_SQLITE_READONLY | (1 << 8)),\r\n BE_SQLITE_READONLY_CANTLOCK = (BE_SQLITE_READONLY | (2 << 8)),\r\n BE_SQLITE_READONLY_ROLLBACK = (BE_SQLITE_READONLY | (3 << 8)),\r\n BE_SQLITE_ABORT_ROLLBACK = (BE_SQLITE_ABORT | (2 << 8)),\r\n BE_SQLITE_CONSTRAINT_CHECK = (BE_SQLITE_CONSTRAINT_BASE | (1 << 8)),\r\n BE_SQLITE_CONSTRAINT_COMMITHOOK = (BE_SQLITE_CONSTRAINT_BASE | (2 << 8)),\r\n BE_SQLITE_CONSTRAINT_FOREIGNKEY = (BE_SQLITE_CONSTRAINT_BASE | (3 << 8)),\r\n BE_SQLITE_CONSTRAINT_FUNCTION = (BE_SQLITE_CONSTRAINT_BASE | (4 << 8)),\r\n BE_SQLITE_CONSTRAINT_NOTNULL = (BE_SQLITE_CONSTRAINT_BASE | (5 << 8)),\r\n BE_SQLITE_CONSTRAINT_PRIMARYKEY = (BE_SQLITE_CONSTRAINT_BASE | (6 << 8)),\r\n BE_SQLITE_CONSTRAINT_TRIGGER = (BE_SQLITE_CONSTRAINT_BASE | (7 << 8)),\r\n BE_SQLITE_CONSTRAINT_UNIQUE = (BE_SQLITE_CONSTRAINT_BASE | (8 << 8)),\r\n BE_SQLITE_CONSTRAINT_VTAB = (BE_SQLITE_CONSTRAINT_BASE | (9 << 8)),\r\n}\r\n/* eslint-enable @typescript-eslint/naming-convention */\r\n"]}
|