@itwin/core-bentley 3.0.0-dev.98 → 3.1.0-dev.0

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.
Files changed (76) hide show
  1. package/CHANGELOG.md +76 -1
  2. package/LICENSE.md +1 -1
  3. package/ThirdPartyNotices.md +24 -0
  4. package/lib/cjs/Assert.d.ts +20 -10
  5. package/lib/cjs/Assert.d.ts.map +1 -1
  6. package/lib/cjs/Assert.js +31 -12
  7. package/lib/cjs/Assert.js.map +1 -1
  8. package/lib/cjs/BentleyError.d.ts +1 -2
  9. package/lib/cjs/BentleyError.d.ts.map +1 -1
  10. package/lib/cjs/BentleyError.js +1 -3
  11. package/lib/cjs/BentleyError.js.map +1 -1
  12. package/lib/cjs/ByteStream.d.ts +31 -1
  13. package/lib/cjs/ByteStream.d.ts.map +1 -1
  14. package/lib/cjs/ByteStream.js +33 -1
  15. package/lib/cjs/ByteStream.js.map +1 -1
  16. package/lib/cjs/Compare.d.ts +1 -1
  17. package/lib/cjs/Compare.js.map +1 -1
  18. package/lib/cjs/Disposable.d.ts +1 -1
  19. package/lib/cjs/Disposable.js.map +1 -1
  20. package/lib/cjs/JsonSchema.d.ts +78 -0
  21. package/lib/cjs/JsonSchema.d.ts.map +1 -0
  22. package/lib/cjs/JsonSchema.js +10 -0
  23. package/lib/cjs/JsonSchema.js.map +1 -0
  24. package/lib/cjs/JsonUtils.d.ts +1 -1
  25. package/lib/cjs/JsonUtils.js +1 -1
  26. package/lib/cjs/JsonUtils.js.map +1 -1
  27. package/lib/cjs/Logger.d.ts +2 -0
  28. package/lib/cjs/Logger.d.ts.map +1 -1
  29. package/lib/cjs/Logger.js +7 -2
  30. package/lib/cjs/Logger.js.map +1 -1
  31. package/lib/cjs/SortedArray.d.ts +1 -1
  32. package/lib/cjs/SortedArray.js.map +1 -1
  33. package/lib/cjs/UtilityTypes.d.ts +8 -0
  34. package/lib/cjs/UtilityTypes.d.ts.map +1 -1
  35. package/lib/cjs/UtilityTypes.js.map +1 -1
  36. package/lib/cjs/core-bentley.d.ts +5 -7
  37. package/lib/cjs/core-bentley.d.ts.map +1 -1
  38. package/lib/cjs/core-bentley.js +5 -7
  39. package/lib/cjs/core-bentley.js.map +1 -1
  40. package/lib/esm/Assert.d.ts +20 -10
  41. package/lib/esm/Assert.d.ts.map +1 -1
  42. package/lib/esm/Assert.js +31 -12
  43. package/lib/esm/Assert.js.map +1 -1
  44. package/lib/esm/BentleyError.d.ts +1 -2
  45. package/lib/esm/BentleyError.d.ts.map +1 -1
  46. package/lib/esm/BentleyError.js +1 -3
  47. package/lib/esm/BentleyError.js.map +1 -1
  48. package/lib/esm/ByteStream.d.ts +31 -1
  49. package/lib/esm/ByteStream.d.ts.map +1 -1
  50. package/lib/esm/ByteStream.js +33 -1
  51. package/lib/esm/ByteStream.js.map +1 -1
  52. package/lib/esm/Compare.d.ts +1 -1
  53. package/lib/esm/Compare.js.map +1 -1
  54. package/lib/esm/Disposable.d.ts +1 -1
  55. package/lib/esm/Disposable.js.map +1 -1
  56. package/lib/esm/JsonSchema.d.ts +78 -0
  57. package/lib/esm/JsonSchema.d.ts.map +1 -0
  58. package/lib/esm/JsonSchema.js +9 -0
  59. package/lib/esm/JsonSchema.js.map +1 -0
  60. package/lib/esm/JsonUtils.d.ts +1 -1
  61. package/lib/esm/JsonUtils.js +1 -1
  62. package/lib/esm/JsonUtils.js.map +1 -1
  63. package/lib/esm/Logger.d.ts +2 -0
  64. package/lib/esm/Logger.d.ts.map +1 -1
  65. package/lib/esm/Logger.js +7 -2
  66. package/lib/esm/Logger.js.map +1 -1
  67. package/lib/esm/SortedArray.d.ts +1 -1
  68. package/lib/esm/SortedArray.js.map +1 -1
  69. package/lib/esm/UtilityTypes.d.ts +8 -0
  70. package/lib/esm/UtilityTypes.d.ts.map +1 -1
  71. package/lib/esm/UtilityTypes.js.map +1 -1
  72. package/lib/esm/core-bentley.d.ts +5 -7
  73. package/lib/esm/core-bentley.d.ts.map +1 -1
  74. package/lib/esm/core-bentley.js +5 -7
  75. package/lib/esm/core-bentley.js.map +1 -1
  76. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"BentleyError.js","sourceRoot":"","sources":["../../src/BentleyError.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 Errors\r\n */\r\n\r\nimport { DbResult } from \"./BeSQLite\";\r\n\r\n/** Standard status code.\r\n * This status code should be rarely used.\r\n * Prefer to throw an exception to indicate an error, rather than returning a special status code.\r\n * If a status code is to be returned, prefer to return a more specific error status type such as IModelStatus or DbResult.\r\n * @public\r\n */\r\nexport enum BentleyStatus {\r\n SUCCESS = 0x0000,\r\n ERROR = 0x8000,\r\n}\r\n\r\n/** Status codes that are used in conjunction with [[BentleyError]].\r\n * Error status codes are divided into separate ranges for different kinds of errors. All known ranges at least should be defined here, to avoid collisions.\r\n * @public\r\n */\r\nexport enum IModelStatus {\r\n IMODEL_ERROR_BASE = 0x10000,\r\n Success = 0,\r\n AlreadyLoaded = IMODEL_ERROR_BASE + 1,\r\n AlreadyOpen = IMODEL_ERROR_BASE + 2,\r\n BadArg = IMODEL_ERROR_BASE + 3,\r\n BadElement = IMODEL_ERROR_BASE + 4,\r\n BadModel = IMODEL_ERROR_BASE + 5,\r\n BadRequest = IMODEL_ERROR_BASE + 6,\r\n BadSchema = IMODEL_ERROR_BASE + 7,\r\n CannotUndo = IMODEL_ERROR_BASE + 8,\r\n CodeNotReserved = IMODEL_ERROR_BASE + 9,\r\n DeletionProhibited = IMODEL_ERROR_BASE + 10,\r\n DuplicateCode = IMODEL_ERROR_BASE + 11,\r\n DuplicateName = IMODEL_ERROR_BASE + 12,\r\n ElementBlockedChange = IMODEL_ERROR_BASE + 13,\r\n FileAlreadyExists = IMODEL_ERROR_BASE + 14,\r\n FileNotFound = IMODEL_ERROR_BASE + 15,\r\n FileNotLoaded = IMODEL_ERROR_BASE + 16,\r\n ForeignKeyConstraint = IMODEL_ERROR_BASE + 17,\r\n IdExists = IMODEL_ERROR_BASE + 18,\r\n InDynamicTransaction = IMODEL_ERROR_BASE + 19,\r\n InvalidCategory = IMODEL_ERROR_BASE + 20,\r\n InvalidCode = IMODEL_ERROR_BASE + 21,\r\n InvalidCodeSpec = IMODEL_ERROR_BASE + 22,\r\n InvalidId = IMODEL_ERROR_BASE + 23,\r\n InvalidName = IMODEL_ERROR_BASE + 24,\r\n InvalidParent = IMODEL_ERROR_BASE + 25,\r\n InvalidProfileVersion = IMODEL_ERROR_BASE + 26,\r\n IsCreatingChangeSet = IMODEL_ERROR_BASE + 27,\r\n LockNotHeld = IMODEL_ERROR_BASE + 28,\r\n Mismatch2d3d = IMODEL_ERROR_BASE + 29,\r\n MismatchGcs = IMODEL_ERROR_BASE + 30,\r\n MissingDomain = IMODEL_ERROR_BASE + 31,\r\n MissingHandler = IMODEL_ERROR_BASE + 32,\r\n MissingId = IMODEL_ERROR_BASE + 33,\r\n NoGeometry = IMODEL_ERROR_BASE + 34,\r\n NoMultiTxnOperation = IMODEL_ERROR_BASE + 35,\r\n NotEnabled = IMODEL_ERROR_BASE + 37,\r\n NotFound = IMODEL_ERROR_BASE + 38,\r\n NotOpen = IMODEL_ERROR_BASE + 39,\r\n NotOpenForWrite = IMODEL_ERROR_BASE + 40,\r\n NotSameUnitBase = IMODEL_ERROR_BASE + 41,\r\n NothingToRedo = IMODEL_ERROR_BASE + 42,\r\n NothingToUndo = IMODEL_ERROR_BASE + 43,\r\n ParentBlockedChange = IMODEL_ERROR_BASE + 44,\r\n ReadError = IMODEL_ERROR_BASE + 45,\r\n ReadOnly = IMODEL_ERROR_BASE + 46,\r\n ReadOnlyDomain = IMODEL_ERROR_BASE + 47,\r\n RepositoryManagerError = IMODEL_ERROR_BASE + 48,\r\n SQLiteError = IMODEL_ERROR_BASE + 49,\r\n TransactionActive = IMODEL_ERROR_BASE + 50,\r\n UnitsMissing = IMODEL_ERROR_BASE + 51,\r\n UnknownFormat = IMODEL_ERROR_BASE + 52,\r\n UpgradeFailed = IMODEL_ERROR_BASE + 53,\r\n ValidationFailed = IMODEL_ERROR_BASE + 54,\r\n VersionTooNew = IMODEL_ERROR_BASE + 55,\r\n VersionTooOld = IMODEL_ERROR_BASE + 56,\r\n ViewNotFound = IMODEL_ERROR_BASE + 57,\r\n WriteError = IMODEL_ERROR_BASE + 58,\r\n WrongClass = IMODEL_ERROR_BASE + 59,\r\n WrongIModel = IMODEL_ERROR_BASE + 60,\r\n WrongDomain = IMODEL_ERROR_BASE + 61,\r\n WrongElement = IMODEL_ERROR_BASE + 62,\r\n WrongHandler = IMODEL_ERROR_BASE + 63,\r\n WrongModel = IMODEL_ERROR_BASE + 64,\r\n ConstraintNotUnique = IMODEL_ERROR_BASE + 65,\r\n NoGeoLocation = IMODEL_ERROR_BASE + 66,\r\n ServerTimeout = IMODEL_ERROR_BASE + 67,\r\n NoContent = IMODEL_ERROR_BASE + 68,\r\n NotRegistered = IMODEL_ERROR_BASE + 69,\r\n FunctionNotFound = IMODEL_ERROR_BASE + 70,\r\n NoActiveCommand = IMODEL_ERROR_BASE + 71,\r\n}\r\n\r\n/** Error status from various briefcase operations\r\n * @beta Should these be internal?\r\n */\r\nexport enum BriefcaseStatus {\r\n BRIEFCASE_STATUS_BASE = 0x20000,\r\n CannotAcquire = BRIEFCASE_STATUS_BASE,\r\n CannotDownload = BRIEFCASE_STATUS_BASE + 1,\r\n CannotUpload = BRIEFCASE_STATUS_BASE + 2,\r\n CannotCopy = BRIEFCASE_STATUS_BASE + 3,\r\n CannotDelete = BRIEFCASE_STATUS_BASE + 4,\r\n VersionNotFound = BRIEFCASE_STATUS_BASE + 5,\r\n CannotApplyChanges = BRIEFCASE_STATUS_BASE + 6,\r\n DownloadCancelled = BRIEFCASE_STATUS_BASE + 7,\r\n ContainsDeletedChangeSets = BRIEFCASE_STATUS_BASE + 8,\r\n}\r\n\r\n/** RpcInterface status codes\r\n * @beta Should these be internal?\r\n */\r\nexport enum RpcInterfaceStatus {\r\n Success = 0,\r\n RPC_INTERFACE_ERROR_BASE = 0x21000,\r\n /** The RpcInterface implemented by the server is incompatible with the interface requested by the client. */\r\n IncompatibleVersion = RPC_INTERFACE_ERROR_BASE,\r\n}\r\n\r\n/** Error status from various ChangeSet operations\r\n * @beta Should these be internal?\r\n */\r\nexport enum ChangeSetStatus { // Note: Values must be kept in sync with ChangeSetStatus in DgnPlatform\r\n Success = 0,\r\n CHANGESET_ERROR_BASE = 0x16000,\r\n /** Error applying a change set when reversing or reinstating it */\r\n ApplyError = CHANGESET_ERROR_BASE + 1,\r\n /** Change tracking has not been enabled. The ChangeSet API mandates this. */\r\n ChangeTrackingNotEnabled = CHANGESET_ERROR_BASE + 2,\r\n /** Contents of the change stream are corrupted and does not match the ChangeSet */\r\n CorruptedChangeStream = CHANGESET_ERROR_BASE + 3,\r\n /** File containing the changes to the change set is not found */\r\n FileNotFound = CHANGESET_ERROR_BASE + 4,\r\n /** Error writing the contents of the change set to the backing change stream file */\r\n FileWriteError = CHANGESET_ERROR_BASE + 5,\r\n /** Cannot perform the operation since the Db has local changes */\r\n HasLocalChanges = CHANGESET_ERROR_BASE + 6,\r\n /** Cannot perform the operation since current transaction has uncommitted changes */\r\n HasUncommittedChanges = CHANGESET_ERROR_BASE + 7,\r\n /** Invalid ChangeSet Id */\r\n InvalidId = CHANGESET_ERROR_BASE + 8,\r\n /** Invalid version of the change set */\r\n InvalidVersion = CHANGESET_ERROR_BASE + 9,\r\n /** Cannot perform the operation since system is in the middle of a dynamic transaction */\r\n InDynamicTransaction = CHANGESET_ERROR_BASE + 10,\r\n /** Cannot perform operation since system is in the middle of a creating a change set */\r\n IsCreatingChangeSet = CHANGESET_ERROR_BASE + 11,\r\n /** Cannot perform operation since the system is not creating a change set */\r\n IsNotCreatingChangeSet = CHANGESET_ERROR_BASE + 12,\r\n /** Error propagating the changes after the merge */\r\n MergePropagationError = CHANGESET_ERROR_BASE + 13,\r\n /** No change sets to merge */\r\n NothingToMerge = CHANGESET_ERROR_BASE + 14,\r\n /** No transactions are available to create a change set */\r\n NoTransactions = CHANGESET_ERROR_BASE + 15,\r\n /** Parent change set of the Db does not match the parent id of the change set */\r\n ParentMismatch = CHANGESET_ERROR_BASE + 16,\r\n /** Error performing a SQLite operation on the Db */\r\n SQLiteError = CHANGESET_ERROR_BASE + 17,\r\n /** ChangeSet originated in a different Db */\r\n WrongDgnDb = CHANGESET_ERROR_BASE + 18,\r\n /** Could not open the DgnDb to merge change set */\r\n CouldNotOpenDgnDb = CHANGESET_ERROR_BASE + 19,\r\n /** Cannot merge changes in in an open DgnDb. Close the DgnDb, and process the operation when it is opened. */\r\n MergeSchemaChangesOnOpen = CHANGESET_ERROR_BASE + 20,\r\n /** Cannot reverse or reinstate schema changes. */\r\n ReverseOrReinstateSchemaChanges = CHANGESET_ERROR_BASE + 21,\r\n /** Cannot process changes schema changes in an open DgnDb. Close the DgnDb, and process the operation when it is opened. */\r\n ProcessSchemaChangesOnOpen = CHANGESET_ERROR_BASE + 22,\r\n /** Cannot merge changes into a Readonly DgnDb. */\r\n CannotMergeIntoReadonly = CHANGESET_ERROR_BASE + 23,\r\n /** Cannot merge changes into a Master DgnDb. */\r\n CannotMergeIntoMaster = CHANGESET_ERROR_BASE + 24,\r\n /** Cannot merge changes into a DgnDb that has reversed change sets. */\r\n CannotMergeIntoReversed = CHANGESET_ERROR_BASE + 25,\r\n}\r\n\r\n/** Return codes for methods which perform repository management operations\r\n * @beta Should these be internal?\r\n */\r\nexport enum RepositoryStatus {\r\n Success = 0,\r\n /** The repository server did not respond to a request */\r\n ServerUnavailable = 0x15001,\r\n /** A requested lock was already held by another briefcase */\r\n LockAlreadyHeld = 0x15002,\r\n /** Failed to sync briefcase manager with server */\r\n SyncError = 0x15003,\r\n /** Response from server not understood */\r\n InvalidResponse = 0x15004,\r\n /** An operation requires local changes to be committed or abandoned */\r\n PendingTransactions = 0x15005,\r\n /** A lock cannot be relinquished because the associated object has been modified */\r\n LockUsed = 0x15006,\r\n /** An operation required creation of a ChangeSet, which failed */\r\n CannotCreateChangeSet = 0x15007,\r\n /** Request to server not understood */\r\n InvalidRequest = 0x15008,\r\n /** A change set committed to the server must be integrated into the briefcase before the operation can be completed */\r\n ChangeSetRequired = 0x15009,\r\n /** A requested DgnCode is reserved by another briefcase or in use */\r\n CodeUnavailable = 0x1500A,\r\n /** A DgnCode cannot be released because it has not been reserved by the requesting briefcase */\r\n CodeNotReserved = 0x1500B,\r\n /** A DgnCode cannot be relinquished because it has been used locally */\r\n CodeUsed = 0x1500C,\r\n /** A required lock is not held by this briefcase */\r\n LockNotHeld = 0x1500D,\r\n /** Repository is currently locked, no changes allowed */\r\n RepositoryIsLocked = 0x1500E,\r\n /** Channel write constraint violation, such as an attempt to write outside the designated channel. */\r\n ChannelConstraintViolation = 0x1500F,\r\n}\r\n\r\n/** Status from returned HTTP status code\r\n * @beta Should these be internal?\r\n */\r\nexport enum HttpStatus {\r\n /** 2xx Success */\r\n Success = 0,\r\n /** 1xx Informational responses */\r\n Info = 0x17001,\r\n /** 3xx Redirection */\r\n Redirection = 0x17002,\r\n /** 4xx Client errors */\r\n ClientError = 0x17003,\r\n /** 5xx Server errors */\r\n ServerError = 0x17004,\r\n}\r\n\r\n/** iModelHub Services Errors\r\n * @beta Right package?\r\n */\r\nexport enum IModelHubStatus {\r\n Success = 0,\r\n IMODELHUBERROR_BASE = 0x19000,\r\n IMODELHUBERROR_REQUESTERRORBASE = 0x19100,\r\n Unknown = IMODELHUBERROR_BASE + 1,\r\n MissingRequiredProperties = IMODELHUBERROR_BASE + 2,\r\n InvalidPropertiesValues = IMODELHUBERROR_BASE + 3,\r\n UserDoesNotHavePermission = IMODELHUBERROR_BASE + 4,\r\n UserDoesNotHaveAccess = IMODELHUBERROR_BASE + 5,\r\n InvalidBriefcase = IMODELHUBERROR_BASE + 6,\r\n BriefcaseDoesNotExist = IMODELHUBERROR_BASE + 7,\r\n BriefcaseDoesNotBelongToUser = IMODELHUBERROR_BASE + 8,\r\n AnotherUserPushing = IMODELHUBERROR_BASE + 9,\r\n ChangeSetAlreadyExists = IMODELHUBERROR_BASE + 10,\r\n ChangeSetDoesNotExist = IMODELHUBERROR_BASE + 11,\r\n FileIsNotUploaded = IMODELHUBERROR_BASE + 12,\r\n iModelIsNotInitialized = IMODELHUBERROR_BASE + 13,\r\n ChangeSetPointsToBadSeed = IMODELHUBERROR_BASE + 14,\r\n OperationFailed = IMODELHUBERROR_BASE + 15,\r\n PullIsRequired = IMODELHUBERROR_BASE + 16,\r\n MaximumNumberOfBriefcasesPerUser = IMODELHUBERROR_BASE + 17,\r\n MaximumNumberOfBriefcasesPerUserPerMinute = IMODELHUBERROR_BASE + 18,\r\n DatabaseTemporarilyLocked = IMODELHUBERROR_BASE + 19,\r\n iModelIsLocked = IMODELHUBERROR_BASE + 20,\r\n CodesExist = IMODELHUBERROR_BASE + 21,\r\n LocksExist = IMODELHUBERROR_BASE + 22,\r\n iModelAlreadyExists = IMODELHUBERROR_BASE + 23,\r\n iModelDoesNotExist = IMODELHUBERROR_BASE + 24,\r\n FileDoesNotExist = IMODELHUBERROR_BASE + 25,\r\n FileAlreadyExists = IMODELHUBERROR_BASE + 26,\r\n LockDoesNotExist = IMODELHUBERROR_BASE + 27,\r\n LockOwnedByAnotherBriefcase = IMODELHUBERROR_BASE + 28,\r\n CodeStateInvalid = IMODELHUBERROR_BASE + 29,\r\n CodeReservedByAnotherBriefcase = IMODELHUBERROR_BASE + 30,\r\n CodeDoesNotExist = IMODELHUBERROR_BASE + 31,\r\n EventTypeDoesNotExist = IMODELHUBERROR_BASE + 32,\r\n EventSubscriptionDoesNotExist = IMODELHUBERROR_BASE + 33,\r\n EventSubscriptionAlreadyExists = IMODELHUBERROR_BASE + 34,\r\n ITwinIdIsNotSpecified = IMODELHUBERROR_BASE + 35,\r\n FailedToGetITwinPermissions = IMODELHUBERROR_BASE + 36,\r\n FailedToGetITwinMembers = IMODELHUBERROR_BASE + 37,\r\n ChangeSetAlreadyHasVersion = IMODELHUBERROR_BASE + 38,\r\n VersionAlreadyExists = IMODELHUBERROR_BASE + 39,\r\n JobSchedulingFailed = IMODELHUBERROR_BASE + 40,\r\n ConflictsAggregate = IMODELHUBERROR_BASE + 41,\r\n FailedToGetITwinById = IMODELHUBERROR_BASE + 42,\r\n\r\n DatabaseOperationFailed = IMODELHUBERROR_BASE + 43,\r\n SeedFileInitializationFailed = IMODELHUBERROR_BASE + 44,\r\n\r\n FailedToGetAssetPermissions = IMODELHUBERROR_BASE + 45,\r\n FailedToGetAssetMembers = IMODELHUBERROR_BASE + 46,\r\n ITwinDoesNotExist = IMODELHUBERROR_BASE + 47,\r\n FailedToGetProductSettings = IMODELHUBERROR_BASE + 48,\r\n\r\n LockChunkDoesNotExist = IMODELHUBERROR_BASE + 49,\r\n\r\n CheckpointAlreadyExists = IMODELHUBERROR_BASE + 50,\r\n CheckpointDoesNotExist = IMODELHUBERROR_BASE + 51,\r\n\r\n // Errors that are returned for incorrect iModelHub request.\r\n UndefinedArgumentError = IMODELHUBERROR_REQUESTERRORBASE + 1,\r\n InvalidArgumentError = IMODELHUBERROR_REQUESTERRORBASE + 2,\r\n MissingDownloadUrlError = IMODELHUBERROR_REQUESTERRORBASE + 3,\r\n NotSupportedInBrowser = IMODELHUBERROR_REQUESTERRORBASE + 4,\r\n FileHandlerNotSet = IMODELHUBERROR_REQUESTERRORBASE + 5,\r\n FileNotFound = IMODELHUBERROR_REQUESTERRORBASE + 6,\r\n InitializationTimeout = IMODELHUBERROR_REQUESTERRORBASE + 7,\r\n}\r\n\r\n/** Authentication Errors\r\n * @beta Internal? Right package?\r\n */\r\nexport enum AuthStatus {\r\n Success = 0,\r\n AUTHSTATUS_BASE = 0x22000,\r\n Error = AUTHSTATUS_BASE,\r\n}\r\n\r\n/** GeoServiceStatus errors\r\n * @public\r\n */\r\nexport enum GeoServiceStatus {\r\n Success = 0,\r\n GEOSERVICESTATUS_BASE = 0x24000,\r\n // Error mapped from 'IModelStatus'\r\n NoGeoLocation = IModelStatus.NoGeoLocation,\r\n // Following errors are mapped from 'GeoCoordStatus'\r\n OutOfUsefulRange = GEOSERVICESTATUS_BASE + 1,\r\n OutOfMathematicalDomain = GEOSERVICESTATUS_BASE + 2,\r\n NoDatumConverter = GEOSERVICESTATUS_BASE + 3,\r\n VerticalDatumConvertError = GEOSERVICESTATUS_BASE + 4,\r\n CSMapError = GEOSERVICESTATUS_BASE + 5,\r\n Pending = GEOSERVICESTATUS_BASE + 6,\r\n}\r\n\r\n/** When you want to associate an explanatory message with an error status value.\r\n * @beta Internal?\r\n */\r\nexport interface StatusCodeWithMessage<ErrorCodeType> {\r\n status: ErrorCodeType;\r\n message: string;\r\n}\r\n\r\n/** A function that returns a metadata object for a [[BentleyError]].\r\n * This is generally used for logging. However not every exception is logged, so use this if the metadata for an exception is expensive to create.\r\n * @public\r\n */\r\nexport type GetMetaDataFunction = () => object | undefined;\r\n\r\n/** Optional metadata attached to a [[BentleyError]]. May either be an object or a function that returns an object.\r\n * If this exception is logged and metadata is present, the metaData object is attached to the log entry via `JSON.stringify`\r\n * @public\r\n */\r\nexport type LoggingMetaData = GetMetaDataFunction | object | undefined;\r\n\r\nfunction isObject(obj: unknown): obj is { [key: string]: unknown } {\r\n return typeof obj === \"object\" && obj !== null;\r\n}\r\n\r\ninterface ErrorProps {\r\n message: string;\r\n stack?: string;\r\n metadata?: object;\r\n}\r\n\r\n/** Base exception class for iTwin.js exceptions.\r\n * @public\r\n */\r\nexport class BentleyError extends Error {\r\n private readonly _metaData: LoggingMetaData;\r\n\r\n /**\r\n * @param errorNumber The a number that identifies of the problem.\r\n * @param message message that describes the problem (should not be localized).\r\n * @param metaData metaData about the exception.\r\n */\r\n public constructor(public errorNumber: number, message?: string, metaData?: LoggingMetaData) {\r\n super(message);\r\n this.errorNumber = errorNumber;\r\n this._metaData = metaData;\r\n this.name = this._initName();\r\n }\r\n\r\n /** Returns true if this BentleyError includes (optional) metadata. */\r\n public get hasMetaData(): boolean { return undefined !== this._metaData; }\r\n\r\n /** get the meta data associated with this BentleyError, if any. */\r\n public getMetaData(): object | undefined {\r\n return BentleyError.getMetaData(this._metaData);\r\n }\r\n\r\n /** get the metadata object associated with an ExceptionMetaData, if any. */\r\n public static getMetaData(metaData: LoggingMetaData): object | undefined {\r\n return (typeof metaData === \"function\") ? metaData() : metaData;\r\n }\r\n\r\n /** This function returns the name of each error status. Override this method to handle more error status codes. */\r\n protected _initName(): string {\r\n switch (this.errorNumber) {\r\n case IModelStatus.AlreadyLoaded: return \"Already Loaded\";\r\n case IModelStatus.AlreadyOpen: return \"Already Open\";\r\n case IModelStatus.BadArg: return \"Bad Arg\";\r\n case IModelStatus.BadElement: return \"Bad Element\";\r\n case IModelStatus.BadModel: return \"Bad Model\";\r\n case IModelStatus.BadRequest: return \"Bad Request\";\r\n case IModelStatus.BadSchema: return \"Bad Schema\";\r\n case IModelStatus.CannotUndo: return \"Can not Undo\";\r\n case IModelStatus.CodeNotReserved: return \"Code Not Reserved\";\r\n case IModelStatus.DeletionProhibited: return \"Deletion Prohibited\";\r\n case IModelStatus.DuplicateCode: return \"Duplicate Code\";\r\n case IModelStatus.DuplicateName: return \"Duplicate Name\";\r\n case IModelStatus.ElementBlockedChange: return \"Element Blocked Change\";\r\n case IModelStatus.FileAlreadyExists: return \"File Already Exists\";\r\n case IModelStatus.FileNotFound: return \"File Not Found\";\r\n case IModelStatus.FileNotLoaded: return \"File Not Loaded\";\r\n case IModelStatus.ForeignKeyConstraint: return \"ForeignKey Constraint\";\r\n case IModelStatus.IdExists: return \"Id Exists\";\r\n case IModelStatus.InDynamicTransaction: return \"InDynamicTransaction\";\r\n case IModelStatus.InvalidCategory: return \"Invalid Category\";\r\n case IModelStatus.InvalidCode: return \"Invalid Code\";\r\n case IModelStatus.InvalidCodeSpec: return \"Invalid CodeSpec\";\r\n case IModelStatus.InvalidId: return \"Invalid Id\";\r\n case IModelStatus.InvalidName: return \"Invalid Name\";\r\n case IModelStatus.InvalidParent: return \"Invalid Parent\";\r\n case IModelStatus.InvalidProfileVersion: return \"Invalid Profile Version\";\r\n case IModelStatus.IsCreatingChangeSet: return \"IsCreatingChangeSet\";\r\n case IModelStatus.LockNotHeld: return \"Lock Not Held\";\r\n case IModelStatus.Mismatch2d3d: return \"Mismatch 2d3d\";\r\n case IModelStatus.MismatchGcs: return \"Mismatch Gcs\";\r\n case IModelStatus.MissingDomain: return \"Missing Domain\";\r\n case IModelStatus.MissingHandler: return \"Missing Handler\";\r\n case IModelStatus.MissingId: return \"Missing Id\";\r\n case IModelStatus.NoGeometry: return \"No Geometry\";\r\n case IModelStatus.NoMultiTxnOperation: return \"NoMultiTxnOperation\";\r\n case IModelStatus.NotEnabled: return \"Not Enabled\";\r\n case IModelStatus.NotFound: return \"Not Found\";\r\n case IModelStatus.NotOpen: return \"Not Open\";\r\n case IModelStatus.NotOpenForWrite: return \"Not Open For Write\";\r\n case IModelStatus.NotSameUnitBase: return \"Not Same Unit Base\";\r\n case IModelStatus.NothingToRedo: return \"Nothing To Redo\";\r\n case IModelStatus.NothingToUndo: return \"Nothing To Undo\";\r\n case IModelStatus.ParentBlockedChange: return \"Parent Blocked Change\";\r\n case IModelStatus.ReadError: return \"Read Error\";\r\n case IModelStatus.ReadOnly: return \"ReadOnly\";\r\n case IModelStatus.ReadOnlyDomain: return \"ReadOnlyDomain\";\r\n case IModelStatus.RepositoryManagerError: return \"RepositoryManagerError\";\r\n case IModelStatus.SQLiteError: return \"SQLiteError\";\r\n case IModelStatus.TransactionActive: return \"Transaction Active\";\r\n case IModelStatus.UnitsMissing: return \"Units Missing\";\r\n case IModelStatus.UnknownFormat: return \"Unknown Format\";\r\n case IModelStatus.UpgradeFailed: return \"Upgrade Failed\";\r\n case IModelStatus.ValidationFailed: return \"Validation Failed\";\r\n case IModelStatus.VersionTooNew: return \"Version Too New\";\r\n case IModelStatus.VersionTooOld: return \"Version Too Old\";\r\n case IModelStatus.ViewNotFound: return \"View Not Found\";\r\n case IModelStatus.WriteError: return \"Write Error\";\r\n case IModelStatus.WrongClass: return \"Wrong Class\";\r\n case IModelStatus.WrongIModel: return \"Wrong IModel\";\r\n case IModelStatus.WrongDomain: return \"Wrong Domain\";\r\n case IModelStatus.WrongElement: return \"Wrong Element\";\r\n case IModelStatus.WrongHandler: return \"Wrong Handler\";\r\n case IModelStatus.WrongModel: return \"Wrong Model\";\r\n case DbResult.BE_SQLITE_ERROR: return \"BE_SQLITE_ERROR\";\r\n case DbResult.BE_SQLITE_INTERNAL: return \"BE_SQLITE_INTERNAL\";\r\n case DbResult.BE_SQLITE_PERM: return \"BE_SQLITE_PERM\";\r\n case DbResult.BE_SQLITE_ABORT: return \"BE_SQLITE_ABORT\";\r\n case DbResult.BE_SQLITE_BUSY: return \"Db is busy\";\r\n case DbResult.BE_SQLITE_LOCKED: return \"Db is Locked\";\r\n case DbResult.BE_SQLITE_NOMEM: return \"BE_SQLITE_NOMEM\";\r\n case DbResult.BE_SQLITE_READONLY: return \"Readonly\";\r\n case DbResult.BE_SQLITE_INTERRUPT: return \"BE_SQLITE_INTERRUPT\";\r\n case DbResult.BE_SQLITE_IOERR: return \"BE_SQLITE_IOERR\";\r\n case DbResult.BE_SQLITE_CORRUPT: return \"BE_SQLITE_CORRUPT\";\r\n case DbResult.BE_SQLITE_NOTFOUND: return \"Not Found\";\r\n case DbResult.BE_SQLITE_FULL: return \"BE_SQLITE_FULL\";\r\n case DbResult.BE_SQLITE_CANTOPEN: return \"Can't open\";\r\n case DbResult.BE_SQLITE_PROTOCOL: return \"BE_SQLITE_PROTOCOL\";\r\n case DbResult.BE_SQLITE_EMPTY: return \"BE_SQLITE_EMPTY\";\r\n case DbResult.BE_SQLITE_SCHEMA: return \"BE_SQLITE_SCHEMA\";\r\n case DbResult.BE_SQLITE_TOOBIG: return \"BE_SQLITE_TOOBIG\";\r\n case DbResult.BE_SQLITE_MISMATCH: return \"BE_SQLITE_MISMATCH\";\r\n case DbResult.BE_SQLITE_MISUSE: return \"BE_SQLITE_MISUSE\";\r\n case DbResult.BE_SQLITE_NOLFS: return \"BE_SQLITE_NOLFS\";\r\n case DbResult.BE_SQLITE_AUTH: return \"BE_SQLITE_AUTH\";\r\n case DbResult.BE_SQLITE_FORMAT: return \"BE_SQLITE_FORMAT\";\r\n case DbResult.BE_SQLITE_RANGE: return \"BE_SQLITE_RANGE\";\r\n case DbResult.BE_SQLITE_NOTADB: return \"Not a Database\";\r\n case DbResult.BE_SQLITE_IOERR_READ: return \"BE_SQLITE_IOERR_READ\";\r\n case DbResult.BE_SQLITE_IOERR_SHORT_READ: return \"BE_SQLITE_IOERR_SHORT_READ\";\r\n case DbResult.BE_SQLITE_IOERR_WRITE: return \"BE_SQLITE_IOERR_WRITE\";\r\n case DbResult.BE_SQLITE_IOERR_FSYNC: return \"BE_SQLITE_IOERR_FSYNC\";\r\n case DbResult.BE_SQLITE_IOERR_DIR_FSYNC: return \"BE_SQLITE_IOERR_DIR_FSYNC\";\r\n case DbResult.BE_SQLITE_IOERR_TRUNCATE: return \"BE_SQLITE_IOERR_TRUNCATE\";\r\n case DbResult.BE_SQLITE_IOERR_FSTAT: return \"BE_SQLITE_IOERR_FSTAT\";\r\n case DbResult.BE_SQLITE_IOERR_UNLOCK: return \"BE_SQLITE_IOERR_UNLOCK\";\r\n case DbResult.BE_SQLITE_IOERR_RDLOCK: return \"BE_SQLITE_IOERR_RDLOCK\";\r\n case DbResult.BE_SQLITE_IOERR_DELETE: return \"BE_SQLITE_IOERR_DELETE\";\r\n case DbResult.BE_SQLITE_IOERR_BLOCKED: return \"BE_SQLITE_IOERR_BLOCKED\";\r\n case DbResult.BE_SQLITE_IOERR_NOMEM: return \"BE_SQLITE_IOERR_NOMEM\";\r\n case DbResult.BE_SQLITE_IOERR_ACCESS: return \"BE_SQLITE_IOERR_ACCESS\";\r\n case DbResult.BE_SQLITE_IOERR_CHECKRESERVEDLOCK: return \"BE_SQLITE_IOERR_CHECKRESERVEDLOCK\";\r\n case DbResult.BE_SQLITE_IOERR_LOCK: return \"BE_SQLITE_IOERR_LOCK\";\r\n case DbResult.BE_SQLITE_IOERR_CLOSE: return \"BE_SQLITE_IOERR_CLOSE\";\r\n case DbResult.BE_SQLITE_IOERR_DIR_CLOSE: return \"BE_SQLITE_IOERR_DIR_CLOSE\";\r\n case DbResult.BE_SQLITE_IOERR_SHMOPEN: return \"BE_SQLITE_IOERR_SHMOPEN\";\r\n case DbResult.BE_SQLITE_IOERR_SHMSIZE: return \"BE_SQLITE_IOERR_SHMSIZE\";\r\n case DbResult.BE_SQLITE_IOERR_SHMLOCK: return \"BE_SQLITE_IOERR_SHMLOCK\";\r\n case DbResult.BE_SQLITE_IOERR_SHMMAP: return \"BE_SQLITE_IOERR_SHMMAP\";\r\n case DbResult.BE_SQLITE_IOERR_SEEK: return \"BE_SQLITE_IOERR_SEEK\";\r\n case DbResult.BE_SQLITE_IOERR_DELETE_NOENT: return \"BE_SQLITE_IOERR_DELETE_NOENT\";\r\n case DbResult.BE_SQLITE_ERROR_FileExists: return \"File Exists\";\r\n case DbResult.BE_SQLITE_ERROR_AlreadyOpen: return \"Already Open\";\r\n case DbResult.BE_SQLITE_ERROR_NoPropertyTable: return \"No Property Table\";\r\n case DbResult.BE_SQLITE_ERROR_FileNotFound: return \"File Not Found\";\r\n case DbResult.BE_SQLITE_ERROR_NoTxnActive: return \"No Txn Active\";\r\n case DbResult.BE_SQLITE_ERROR_BadDbProfile: return \"Bad Db Profile\";\r\n case DbResult.BE_SQLITE_ERROR_InvalidProfileVersion: return \"Invalid Profile Version\";\r\n case DbResult.BE_SQLITE_ERROR_ProfileUpgradeFailed: return \"Profile Upgrade Failed\";\r\n case DbResult.BE_SQLITE_ERROR_ProfileTooOldForReadWrite: return \"Profile Too Old For ReadWrite\";\r\n case DbResult.BE_SQLITE_ERROR_ProfileTooOld: return \"Profile Too Old\";\r\n case DbResult.BE_SQLITE_ERROR_ProfileTooNewForReadWrite: return \"Profile Too New For ReadWrite\";\r\n case DbResult.BE_SQLITE_ERROR_ProfileTooNew: return \"Profile Too New\";\r\n case DbResult.BE_SQLITE_ERROR_ChangeTrackError: return \"ChangeTrack Error\";\r\n case DbResult.BE_SQLITE_ERROR_InvalidChangeSetVersion: return \"Invalid ChangeSet Version\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaUpgradeRequired: return \"Schema Upgrade Required\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaTooNew: return \"Schema Too New\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaTooOld: return \"Schema Too Old\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaLockFailed: return \"Schema Lock Failed\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaUpgradeFailed: return \"Schema Upgrade Failed\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaImportFailed: return \"Schema Import Failed\";\r\n case DbResult.BE_SQLITE_ERROR_CouldNotAcquireLocksOrCodes: return \"Could Not Acquire Locks Or Codes\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaUpgradeRecommended: return \"Recommended that the schemas found in the database be upgraded\";\r\n case DbResult.BE_SQLITE_LOCKED_SHAREDCACHE: return \"BE_SQLITE_LOCKED_SHAREDCACHE\";\r\n case DbResult.BE_SQLITE_BUSY_RECOVERY: return \"BE_SQLITE_BUSY_RECOVERY\";\r\n case DbResult.BE_SQLITE_CANTOPEN_NOTEMPDIR: return \"SQLite No Temp Dir\";\r\n case DbResult.BE_SQLITE_CANTOPEN_ISDIR: return \"BE_SQLITE_CANTOPEN_ISDIR\";\r\n case DbResult.BE_SQLITE_CANTOPEN_FULLPATH: return \"BE_SQLITE_CANTOPEN_FULLPATH\";\r\n case DbResult.BE_SQLITE_CORRUPT_VTAB: return \"BE_SQLITE_CORRUPT_VTAB\";\r\n case DbResult.BE_SQLITE_READONLY_RECOVERY: return \"BE_SQLITE_READONLY_RECOVERY\";\r\n case DbResult.BE_SQLITE_READONLY_CANTLOCK: return \"BE_SQLITE_READONLY_CANTLOCK\";\r\n case DbResult.BE_SQLITE_READONLY_ROLLBACK: return \"BE_SQLITE_READONLY_ROLLBACK\";\r\n case DbResult.BE_SQLITE_ABORT_ROLLBACK: return \"BE_SQLITE_ABORT_ROLLBACK\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_CHECK: return \"BE_SQLITE_CONSTRAINT_CHECK\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_COMMITHOOK: return \"CommitHook Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_FOREIGNKEY: return \"Foreign Key Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_FUNCTION: return \"Function Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_NOTNULL: return \"NotNull Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_PRIMARYKEY: return \"Primary Key Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_TRIGGER: return \"Trigger Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_UNIQUE: return \"Unique Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_VTAB: return \"VTable Constraint Error\";\r\n case BentleyStatus.ERROR: return \"Error\";\r\n case BriefcaseStatus.CannotAcquire: return \"CannotAcquire\";\r\n case BriefcaseStatus.CannotDownload: return \"CannotDownload\";\r\n case BriefcaseStatus.CannotCopy: return \"CannotCopy\";\r\n case BriefcaseStatus.CannotDelete: return \"CannotDelete\";\r\n case BriefcaseStatus.VersionNotFound: return \"VersionNotFound\";\r\n case BriefcaseStatus.DownloadCancelled: return \"DownloadCancelled\";\r\n case BriefcaseStatus.ContainsDeletedChangeSets: return \"ContainsDeletedChangeSets\";\r\n case RpcInterfaceStatus.IncompatibleVersion: return \"RpcInterfaceStatus.IncompatibleVersion\";\r\n case ChangeSetStatus.ApplyError: return \"Error applying a change set\";\r\n case ChangeSetStatus.ChangeTrackingNotEnabled: return \"Change tracking has not been enabled. The ChangeSet API mandates this\";\r\n case ChangeSetStatus.CorruptedChangeStream: return \"Contents of the change stream are corrupted and does not match the ChangeSet\";\r\n case ChangeSetStatus.FileNotFound: return \"File containing the changes was not found\";\r\n case ChangeSetStatus.FileWriteError: return \"Error writing the contents of the change set to the backing change stream file\";\r\n case ChangeSetStatus.HasLocalChanges: return \"Cannot perform the operation since the Db has local changes\";\r\n case ChangeSetStatus.HasUncommittedChanges: return \"Cannot perform the operation since current transaction has uncommitted changes\";\r\n case ChangeSetStatus.InvalidId: return \"Invalid ChangeSet Id\";\r\n case ChangeSetStatus.InvalidVersion: return \"Invalid version of the change set\";\r\n case ChangeSetStatus.InDynamicTransaction: return \"Cannot perform the operation since system is in the middle of a dynamic transaction\";\r\n case ChangeSetStatus.IsCreatingChangeSet: return \"Cannot perform operation since system is in the middle of a creating a change set\";\r\n case ChangeSetStatus.IsNotCreatingChangeSet: return \"Cannot perform operation since the system is not creating a change set\";\r\n case ChangeSetStatus.MergePropagationError: return \"Error propagating the changes after the merge\";\r\n case ChangeSetStatus.NothingToMerge: return \"No change sets to merge\";\r\n case ChangeSetStatus.NoTransactions: return \"No transactions are available to create a change set\";\r\n case ChangeSetStatus.ParentMismatch: return \"Parent change set of the Db does not match the parent id of the change set\";\r\n case ChangeSetStatus.SQLiteError: return \"Error performing a SQLite operation on the Db\";\r\n case ChangeSetStatus.WrongDgnDb: return \"ChangeSet originated in a different Db\";\r\n case ChangeSetStatus.CouldNotOpenDgnDb: return \"Could not open the DgnDb to merge change set\";\r\n case ChangeSetStatus.MergeSchemaChangesOnOpen: return \"Cannot merge changes in in an open DgnDb. Close the DgnDb, and process the operation when it is opened\";\r\n case ChangeSetStatus.ReverseOrReinstateSchemaChanges: return \"Cannot reverse or reinstate schema changes.\";\r\n case ChangeSetStatus.ProcessSchemaChangesOnOpen: return \"Cannot process changes schema changes in an open DgnDb. Close the DgnDb, and process the operation when it is opened\";\r\n case ChangeSetStatus.CannotMergeIntoReadonly: return \"Cannot merge changes into a Readonly DgnDb\";\r\n case ChangeSetStatus.CannotMergeIntoMaster: return \"Cannot merge changes into a Master DgnDb\";\r\n case ChangeSetStatus.CannotMergeIntoReversed: return \"Cannot merge changes into a DgnDb that has reversed change sets\";\r\n case RepositoryStatus.ServerUnavailable: return \"ServerUnavailable\";\r\n case RepositoryStatus.LockAlreadyHeld: return \"LockAlreadyHeld\";\r\n case RepositoryStatus.SyncError: return \"SyncError\";\r\n case RepositoryStatus.InvalidResponse: return \"InvalidResponse\";\r\n case RepositoryStatus.PendingTransactions: return \"PendingTransactions\";\r\n case RepositoryStatus.LockUsed: return \"LockUsed\";\r\n case RepositoryStatus.CannotCreateChangeSet: return \"CannotCreateChangeSet\";\r\n case RepositoryStatus.InvalidRequest: return \"InvalidRequest\";\r\n case RepositoryStatus.ChangeSetRequired: return \"ChangeSetRequired\";\r\n case RepositoryStatus.CodeUnavailable: return \"CodeUnavailable\";\r\n case RepositoryStatus.CodeNotReserved: return \"CodeNotReserved\";\r\n case RepositoryStatus.CodeUsed: return \"CodeUsed\";\r\n case RepositoryStatus.LockNotHeld: return \"LockNotHeld\";\r\n case RepositoryStatus.RepositoryIsLocked: return \"RepositoryIsLocked\";\r\n case RepositoryStatus.ChannelConstraintViolation: return \"ChannelConstraintViolation\";\r\n case HttpStatus.Info: return \"HTTP Info\";\r\n case HttpStatus.Redirection: return \"HTTP Redirection\";\r\n case HttpStatus.ClientError: return \"HTTP Client error\";\r\n case HttpStatus.ServerError: return \"HTTP Server error\";\r\n case IModelHubStatus.Unknown: return \"Unknown error\";\r\n case IModelHubStatus.MissingRequiredProperties: return \"Missing required properties\";\r\n case IModelHubStatus.InvalidPropertiesValues: return \"Invalid properties values\";\r\n case IModelHubStatus.UserDoesNotHavePermission: return \"User does not have permission\";\r\n case IModelHubStatus.UserDoesNotHaveAccess: return \"User does not have access\";\r\n case IModelHubStatus.InvalidBriefcase: return \"Invalid briefcase\";\r\n case IModelHubStatus.BriefcaseDoesNotExist: return \"Briefcase does not exist\";\r\n case IModelHubStatus.BriefcaseDoesNotBelongToUser: return \"Briefcase does not belong to user\";\r\n case IModelHubStatus.AnotherUserPushing: return \"Another user pushing\";\r\n case IModelHubStatus.ChangeSetAlreadyExists: return \"ChangeSet already exists\";\r\n case IModelHubStatus.ChangeSetDoesNotExist: return \"ChangeSet does not exist\";\r\n case IModelHubStatus.FileIsNotUploaded: return \"File is not uploaded\";\r\n case IModelHubStatus.iModelIsNotInitialized: return \"iModel is not initialized\";\r\n case IModelHubStatus.ChangeSetPointsToBadSeed: return \"ChangeSet points to a bad seed file\";\r\n case IModelHubStatus.OperationFailed: return \"iModelHub operation has failed\";\r\n case IModelHubStatus.PullIsRequired: return \"Pull is required\";\r\n case IModelHubStatus.MaximumNumberOfBriefcasesPerUser: return \"Limit of briefcases per user was reached\";\r\n case IModelHubStatus.MaximumNumberOfBriefcasesPerUserPerMinute: return \"Limit of briefcases per user per minute was reached\";\r\n case IModelHubStatus.DatabaseTemporarilyLocked: return \"Database is temporarily locked\";\r\n case IModelHubStatus.iModelIsLocked: return \"iModel is locked\";\r\n case IModelHubStatus.CodesExist: return \"Code already exists\";\r\n case IModelHubStatus.LocksExist: return \"Lock already exists\";\r\n case IModelHubStatus.iModelAlreadyExists: return \"iModel already exists\";\r\n case IModelHubStatus.iModelDoesNotExist: return \"iModel does not exist\";\r\n case IModelHubStatus.LockDoesNotExist: return \"Lock does not exist\";\r\n case IModelHubStatus.LockChunkDoesNotExist: return \"Lock chunk does not exist\";\r\n case IModelHubStatus.LockOwnedByAnotherBriefcase: return \"Lock is owned by another briefcase\";\r\n case IModelHubStatus.CodeStateInvalid: return \"Code state is invalid\";\r\n case IModelHubStatus.CodeReservedByAnotherBriefcase: return \"Code is reserved by another briefcase\";\r\n case IModelHubStatus.CodeDoesNotExist: return \"Code does not exist\";\r\n case IModelHubStatus.FileDoesNotExist: return \"File does not exist\";\r\n case IModelHubStatus.FileAlreadyExists: return \"File already exists\";\r\n case IModelHubStatus.EventTypeDoesNotExist: return \"Event type does not exist\";\r\n case IModelHubStatus.EventSubscriptionDoesNotExist: return \"Event subscription does not exist\";\r\n case IModelHubStatus.EventSubscriptionAlreadyExists: return \"Event subscription already exists\";\r\n case IModelHubStatus.ITwinIdIsNotSpecified: return \"ITwin Id is not specified\";\r\n case IModelHubStatus.FailedToGetITwinPermissions: return \"Failed to get iTwin permissions\";\r\n case IModelHubStatus.FailedToGetITwinMembers: return \"Failed to get iTwin members\";\r\n case IModelHubStatus.FailedToGetAssetPermissions: return \"Failed to get asset permissions\";\r\n case IModelHubStatus.FailedToGetAssetMembers: return \"Failed to get asset members\";\r\n case IModelHubStatus.ChangeSetAlreadyHasVersion: return \"ChangeSet already has version\";\r\n case IModelHubStatus.VersionAlreadyExists: return \"Version already exists\";\r\n case IModelHubStatus.JobSchedulingFailed: return \"Failed to schedule a background job\";\r\n case IModelHubStatus.ConflictsAggregate: return \"Codes or locks are owned by another briefcase\";\r\n case IModelHubStatus.FailedToGetITwinById: return \"Failed to query iTwin by its id\";\r\n case IModelHubStatus.FailedToGetProductSettings: return \"Failed to get product settings\";\r\n case IModelHubStatus.DatabaseOperationFailed: return \"Database operation has failed\";\r\n case IModelHubStatus.ITwinDoesNotExist: return \"ITwin does not exist\";\r\n case IModelHubStatus.UndefinedArgumentError: return \"Undefined argument\";\r\n case IModelHubStatus.InvalidArgumentError: return \"Invalid argument\";\r\n case IModelHubStatus.MissingDownloadUrlError: return \"Missing download url\";\r\n case IModelHubStatus.NotSupportedInBrowser: return \"Not supported in browser\";\r\n case IModelHubStatus.FileHandlerNotSet: return \"File handler is not set\";\r\n case IModelHubStatus.FileNotFound: return \"File not found\";\r\n case AuthStatus.Error: return \"Authorization error\";\r\n case GeoServiceStatus.NoGeoLocation: return \"No GeoLocation\";\r\n case GeoServiceStatus.OutOfUsefulRange: return \"Out of useful range\";\r\n case GeoServiceStatus.OutOfMathematicalDomain: return \"Out of mathematical domain\";\r\n case GeoServiceStatus.NoDatumConverter: return \"No datum converter\";\r\n case GeoServiceStatus.VerticalDatumConvertError: return \"Vertical datum convert error\";\r\n case GeoServiceStatus.CSMapError: return \"CSMap error\";\r\n case GeoServiceStatus.Pending: return \"Pending\";\r\n case IModelStatus.Success:\r\n case DbResult.BE_SQLITE_OK:\r\n case DbResult.BE_SQLITE_ROW:\r\n case DbResult.BE_SQLITE_DONE:\r\n case BentleyStatus.SUCCESS:\r\n return \"Success\";\r\n\r\n default:\r\n return `Error (${this.errorNumber})`;\r\n }\r\n }\r\n\r\n /** Use run-time type checking to safely get a useful string summary of an unknown error value, or `\"\"` if none exists.\r\n * @note It's recommended to use this function in `catch` clauses, where a caught value cannot be assumed to be `instanceof Error`\r\n * @public\r\n */\r\n public static getErrorMessage(error: unknown): string {\r\n if (typeof error === \"string\")\r\n return error;\r\n\r\n if (error instanceof Error)\r\n return error.toString();\r\n\r\n if (isObject(error)) {\r\n if (typeof error.message === \"string\")\r\n return error.message;\r\n\r\n if (typeof error.msg === \"string\")\r\n return error.msg;\r\n\r\n if (error.toString() !== \"[object Object]\")\r\n return error.toString();\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n /** Use run-time type checking to safely get the call stack of an unknown error value, if possible.\r\n * @note It's recommended to use this function in `catch` clauses, where a caught value cannot be assumed to be `instanceof Error`\r\n * @public\r\n */\r\n public static getErrorStack(error: unknown): string | undefined {\r\n if (isObject(error) && typeof error.stack === \"string\")\r\n return error.stack;\r\n\r\n return undefined;\r\n }\r\n\r\n /** Use run-time type checking to safely get the metadata with an unknown error value, if possible.\r\n * @note It's recommended to use this function in `catch` clauses, where a caught value cannot be assumed to be `instanceof BentleyError`\r\n * @see [[BentleyError.getMetaData]]\r\n * @public\r\n */\r\n public static getErrorMetadata(error: unknown): object | undefined {\r\n if (isObject(error) && typeof error.getMetaData === \"function\") {\r\n const metadata = error.getMetaData();\r\n if (typeof metadata === \"object\" && metadata !== null)\r\n return metadata;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Returns a new `ErrorProps` object representing an unknown error value. Useful for logging or wrapping/re-throwing caught errors.\r\n * @note Unlike `Error` objects (which lose messages and call stacks when serialized to JSON), objects\r\n * returned by this are plain old JavaScript objects, and can be easily logged/serialized to JSON.\r\n * @public\r\n */\r\n public static getErrorProps(error: unknown): ErrorProps {\r\n const serialized: ErrorProps = {\r\n message: BentleyError.getErrorMessage(error),\r\n };\r\n\r\n const stack = BentleyError.getErrorStack(error);\r\n if (stack)\r\n serialized.stack = stack;\r\n\r\n const metadata = BentleyError.getErrorMetadata(error);\r\n if (metadata)\r\n serialized.metadata = metadata;\r\n\r\n return serialized;\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"BentleyError.js","sourceRoot":"","sources":["../../src/BentleyError.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,yCAAsC;AAEtC;;;;;GAKG;AACH,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,uDAAgB,CAAA;IAChB,uDAAc,CAAA;AAChB,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB;AAED;;;GAGG;AACH,IAAY,YAyEX;AAzED,WAAY,YAAY;IACtB,6EAA2B,CAAA;IAC3B,qDAAW,CAAA;IACX,qEAAqC,CAAA;IACrC,iEAAmC,CAAA;IACnC,uDAA8B,CAAA;IAC9B,+DAAkC,CAAA;IAClC,2DAAgC,CAAA;IAChC,+DAAkC,CAAA;IAClC,6DAAiC,CAAA;IACjC,+DAAkC,CAAA;IAClC,yEAAuC,CAAA;IACvC,+EAA2C,CAAA;IAC3C,qEAAsC,CAAA;IACtC,qEAAsC,CAAA;IACtC,mFAA6C,CAAA;IAC7C,6EAA0C,CAAA;IAC1C,mEAAqC,CAAA;IACrC,qEAAsC,CAAA;IACtC,mFAA6C,CAAA;IAC7C,2DAAiC,CAAA;IACjC,mFAA6C,CAAA;IAC7C,yEAAwC,CAAA;IACxC,iEAAoC,CAAA;IACpC,yEAAwC,CAAA;IACxC,6DAAkC,CAAA;IAClC,iEAAoC,CAAA;IACpC,qEAAsC,CAAA;IACtC,qFAA8C,CAAA;IAC9C,iFAA4C,CAAA;IAC5C,iEAAoC,CAAA;IACpC,mEAAqC,CAAA;IACrC,iEAAoC,CAAA;IACpC,qEAAsC,CAAA;IACtC,uEAAuC,CAAA;IACvC,6DAAkC,CAAA;IAClC,+DAAmC,CAAA;IACnC,iFAA4C,CAAA;IAC5C,+DAAmC,CAAA;IACnC,2DAAiC,CAAA;IACjC,yDAAgC,CAAA;IAChC,yEAAwC,CAAA;IACxC,yEAAwC,CAAA;IACxC,qEAAsC,CAAA;IACtC,qEAAsC,CAAA;IACtC,iFAA4C,CAAA;IAC5C,6DAAkC,CAAA;IAClC,2DAAiC,CAAA;IACjC,uEAAuC,CAAA;IACvC,uFAA+C,CAAA;IAC/C,iEAAoC,CAAA;IACpC,6EAA0C,CAAA;IAC1C,mEAAqC,CAAA;IACrC,qEAAsC,CAAA;IACtC,qEAAsC,CAAA;IACtC,2EAAyC,CAAA;IACzC,qEAAsC,CAAA;IACtC,qEAAsC,CAAA;IACtC,mEAAqC,CAAA;IACrC,+DAAmC,CAAA;IACnC,+DAAmC,CAAA;IACnC,iEAAoC,CAAA;IACpC,iEAAoC,CAAA;IACpC,mEAAqC,CAAA;IACrC,mEAAqC,CAAA;IACrC,+DAAmC,CAAA;IACnC,iFAA4C,CAAA;IAC5C,qEAAsC,CAAA;IACtC,qEAAsC,CAAA;IACtC,6DAAkC,CAAA;IAClC,qEAAsC,CAAA;IACtC,2EAAyC,CAAA;IACzC,yEAAwC,CAAA;AAC1C,CAAC,EAzEW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAyEvB;AAED;;GAEG;AACH,IAAY,eAWX;AAXD,WAAY,eAAe;IACzB,4FAA+B,CAAA;IAC/B,4EAAqC,CAAA;IACrC,8EAA0C,CAAA;IAC1C,0EAAwC,CAAA;IACxC,sEAAsC,CAAA;IACtC,0EAAwC,CAAA;IACxC,gFAA2C,CAAA;IAC3C,sFAA8C,CAAA;IAC9C,oFAA6C,CAAA;IAC7C,oGAAqD,CAAA;AACvD,CAAC,EAXW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAW1B;AAED;;GAEG;AACH,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,iEAAW,CAAA;IACX,wGAAkC,CAAA;IAClC,6GAA6G;IAC7G,8FAA8C,CAAA;AAChD,CAAC,EALW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAK7B;AAED;;GAEG;AACH,IAAY,eAqDX;AArDD,WAAY,eAAe;IACzB,2DAAW,CAAA;IACX,yFAA8B,CAAA;IAC9B,mEAAmE;IACnE,qEAAqC,CAAA;IACrC,6EAA6E;IAC7E,iGAAmD,CAAA;IACnD,mFAAmF;IACnF,2FAAgD,CAAA;IAChD,iEAAiE;IACjE,yEAAuC,CAAA;IACvC,qFAAqF;IACrF,6EAAyC,CAAA;IACzC,mEAAmE;IACnE,+EAA0C,CAAA;IAC1C,sFAAsF;IACtF,2FAAgD,CAAA;IAChD,4BAA4B;IAC5B,mEAAoC,CAAA;IACpC,yCAAyC;IACzC,6EAAyC,CAAA;IACzC,0FAA0F;IAC1F,yFAAgD,CAAA;IAChD,wFAAwF;IACxF,uFAA+C,CAAA;IAC/C,6EAA6E;IAC7E,6FAAkD,CAAA;IAClD,oDAAoD;IACpD,2FAAiD,CAAA;IACjD,8BAA8B;IAC9B,6EAA0C,CAAA;IAC1C,2DAA2D;IAC3D,6EAA0C,CAAA;IAC1C,iFAAiF;IACjF,6EAA0C,CAAA;IAC1C,oDAAoD;IACpD,uEAAuC,CAAA;IACvC,6CAA6C;IAC7C,qEAAsC,CAAA;IACtC,mDAAmD;IACnD,mFAA6C,CAAA;IAC7C,8GAA8G;IAC9G,iGAAoD,CAAA;IACpD,kDAAkD;IAClD,+GAA2D,CAAA;IAC3D,4HAA4H;IAC5H,qGAAsD,CAAA;IACtD,kDAAkD;IAClD,+FAAmD,CAAA;IACnD,iDAAiD;IACjD,2FAAiD,CAAA;IACjD,uEAAuE;IACvE,+FAAmD,CAAA;AACrD,CAAC,EArDW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAqD1B;AAED;;GAEG;AACH,IAAY,gBAgCX;AAhCD,WAAY,gBAAgB;IAC1B,6DAAW,CAAA;IACX,yDAAyD;IACzD,qFAA2B,CAAA;IAC3B,6DAA6D;IAC7D,iFAAyB,CAAA;IACzB,mDAAmD;IACnD,qEAAmB,CAAA;IACnB,0CAA0C;IAC1C,iFAAyB,CAAA;IACzB,uEAAuE;IACvE,yFAA6B,CAAA;IAC7B,oFAAoF;IACpF,mEAAkB,CAAA;IAClB,kEAAkE;IAClE,6FAA+B,CAAA;IAC/B,uCAAuC;IACvC,+EAAwB,CAAA;IACxB,uHAAuH;IACvH,qFAA2B,CAAA;IAC3B,qEAAqE;IACrE,iFAAyB,CAAA;IACzB,gGAAgG;IAChG,iFAAyB,CAAA;IACzB,wEAAwE;IACxE,mEAAkB,CAAA;IAClB,oDAAoD;IACpD,yEAAqB,CAAA;IACrB,yDAAyD;IACzD,uFAA4B,CAAA;IAC5B,sGAAsG;IACtG,uGAAoC,CAAA;AACtC,CAAC,EAhCW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAgC3B;AAED;;GAEG;AACH,IAAY,UAWX;AAXD,WAAY,UAAU;IACpB,kBAAkB;IAClB,iDAAW,CAAA;IACX,kCAAkC;IAClC,+CAAc,CAAA;IACd,sBAAsB;IACtB,6DAAqB,CAAA;IACrB,wBAAwB;IACxB,6DAAqB,CAAA;IACrB,wBAAwB;IACxB,6DAAqB,CAAA;AACvB,CAAC,EAXW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAWrB;AAED;;GAEG;AACH,IAAY,eAmEX;AAnED,WAAY,eAAe;IACzB,2DAAW,CAAA;IACX,wFAA6B,CAAA;IAC7B,gHAAyC,CAAA;IACzC,gEAAiC,CAAA;IACjC,oGAAmD,CAAA;IACnD,gGAAiD,CAAA;IACjD,oGAAmD,CAAA;IACnD,4FAA+C,CAAA;IAC/C,kFAA0C,CAAA;IAC1C,4FAA+C,CAAA;IAC/C,0GAAsD,CAAA;IACtD,sFAA4C,CAAA;IAC5C,8FAAiD,CAAA;IACjD,4FAAgD,CAAA;IAChD,oFAA4C,CAAA;IAC5C,8FAAiD,CAAA;IACjD,kGAAmD,CAAA;IACnD,gFAA0C,CAAA;IAC1C,8EAAyC,CAAA;IACzC,kHAA2D,CAAA;IAC3D,oIAAoE,CAAA;IACpE,oGAAoD,CAAA;IACpD,8EAAyC,CAAA;IACzC,sEAAqC,CAAA;IACrC,sEAAqC,CAAA;IACrC,wFAA8C,CAAA;IAC9C,sFAA6C,CAAA;IAC7C,kFAA2C,CAAA;IAC3C,oFAA4C,CAAA;IAC5C,kFAA2C,CAAA;IAC3C,wGAAsD,CAAA;IACtD,kFAA2C,CAAA;IAC3C,8GAAyD,CAAA;IACzD,kFAA2C,CAAA;IAC3C,4FAAgD,CAAA;IAChD,4GAAwD,CAAA;IACxD,8GAAyD,CAAA;IACzD,4FAAgD,CAAA;IAChD,wGAAsD,CAAA;IACtD,gGAAkD,CAAA;IAClD,sGAAqD,CAAA;IACrD,0FAA+C,CAAA;IAC/C,wFAA8C,CAAA;IAC9C,sFAA6C,CAAA;IAC7C,0FAA+C,CAAA;IAE/C,gGAAkD,CAAA;IAClD,0GAAuD,CAAA;IAEvD,wGAAsD,CAAA;IACtD,gGAAkD,CAAA;IAClD,oFAA4C,CAAA;IAE5C,4FAAgD,CAAA;IAEhD,gGAAkD,CAAA;IAClD,8FAAiD,CAAA;IAEjD,4DAA4D;IAC5D,8FAA4D,CAAA;IAC5D,0FAA0D,CAAA;IAC1D,gGAA6D,CAAA;IAC7D,4FAA2D,CAAA;IAC3D,oFAAuD,CAAA;IACvD,0EAAkD,CAAA;IAClD,4FAA2D,CAAA;AAC7D,CAAC,EAnEW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAmE1B;AAED;;GAEG;AACH,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,iDAAW,CAAA;IACX,sEAAyB,CAAA;IACzB,kDAAuB,CAAA;AACzB,CAAC,EAJW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAIrB;AAED;;GAEG;AACH,IAAY,gBAYX;AAZD,WAAY,gBAAgB;IAC1B,6DAAW,CAAA;IACX,8FAA+B,CAAA;IAC/B,mCAAmC;IACnC,6EAA0C,CAAA;IAC1C,oDAAoD;IACpD,oFAA4C,CAAA;IAC5C,kGAAmD,CAAA;IACnD,oFAA4C,CAAA;IAC5C,sGAAqD,CAAA;IACrD,wEAAsC,CAAA;IACtC,kEAAmC,CAAA;AACrC,CAAC,EAZW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAY3B;AAsBD,SAAS,QAAQ,CAAC,GAAY;IAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;AACjD,CAAC;AAQD;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK;IAGrC;;;;OAIG;IACH,YAA0B,WAAmB,EAAE,OAAgB,EAAE,QAA0B;QACzF,KAAK,CAAC,OAAO,CAAC,CAAC;QADS,gBAAW,GAAX,WAAW,CAAQ;QAE3C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,sEAAsE;IACtE,IAAW,WAAW,KAAc,OAAO,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAE1E,mEAAmE;IAC5D,WAAW;QAChB,OAAO,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,4EAA4E;IACrE,MAAM,CAAC,WAAW,CAAC,QAAyB;QACjD,OAAO,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClE,CAAC;IAED,mHAAmH;IACzG,SAAS;QACjB,QAAQ,IAAI,CAAC,WAAW,EAAE;YACxB,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACzD,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,cAAc,CAAC;YACrD,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC;YAC3C,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC;YACnD,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC;YAC/C,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC;YACnD,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,YAAY,CAAC;YACjD,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,cAAc,CAAC;YACpD,KAAK,YAAY,CAAC,eAAe,CAAC,CAAC,OAAO,mBAAmB,CAAC;YAC9D,KAAK,YAAY,CAAC,kBAAkB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YACnE,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACzD,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACzD,KAAK,YAAY,CAAC,oBAAoB,CAAC,CAAC,OAAO,wBAAwB,CAAC;YACxE,KAAK,YAAY,CAAC,iBAAiB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YAClE,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACxD,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,iBAAiB,CAAC;YAC1D,KAAK,YAAY,CAAC,oBAAoB,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACvE,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC;YAC/C,KAAK,YAAY,CAAC,oBAAoB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YACtE,KAAK,YAAY,CAAC,eAAe,CAAC,CAAC,OAAO,kBAAkB,CAAC;YAC7D,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,cAAc,CAAC;YACrD,KAAK,YAAY,CAAC,eAAe,CAAC,CAAC,OAAO,kBAAkB,CAAC;YAC7D,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,YAAY,CAAC;YACjD,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,cAAc,CAAC;YACrD,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACzD,KAAK,YAAY,CAAC,qBAAqB,CAAC,CAAC,OAAO,yBAAyB,CAAC;YAC1E,KAAK,YAAY,CAAC,mBAAmB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YACpE,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,eAAe,CAAC;YACtD,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,OAAO,eAAe,CAAC;YACvD,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,cAAc,CAAC;YACrD,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACzD,KAAK,YAAY,CAAC,cAAc,CAAC,CAAC,OAAO,iBAAiB,CAAC;YAC3D,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,YAAY,CAAC;YACjD,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC;YACnD,KAAK,YAAY,CAAC,mBAAmB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YACpE,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC;YACnD,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC;YAC/C,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,UAAU,CAAC;YAC7C,KAAK,YAAY,CAAC,eAAe,CAAC,CAAC,OAAO,oBAAoB,CAAC;YAC/D,KAAK,YAAY,CAAC,eAAe,CAAC,CAAC,OAAO,oBAAoB,CAAC;YAC/D,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,iBAAiB,CAAC;YAC1D,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,iBAAiB,CAAC;YAC1D,KAAK,YAAY,CAAC,mBAAmB,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACtE,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,YAAY,CAAC;YACjD,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,UAAU,CAAC;YAC9C,KAAK,YAAY,CAAC,cAAc,CAAC,CAAC,OAAO,gBAAgB,CAAC;YAC1D,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAC,OAAO,wBAAwB,CAAC;YAC1E,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,aAAa,CAAC;YACpD,KAAK,YAAY,CAAC,iBAAiB,CAAC,CAAC,OAAO,oBAAoB,CAAC;YACjE,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,OAAO,eAAe,CAAC;YACvD,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACzD,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACzD,KAAK,YAAY,CAAC,gBAAgB,CAAC,CAAC,OAAO,mBAAmB,CAAC;YAC/D,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,iBAAiB,CAAC;YAC1D,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,iBAAiB,CAAC;YAC1D,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACxD,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC;YACnD,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC;YACnD,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,cAAc,CAAC;YACrD,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,cAAc,CAAC;YACrD,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,OAAO,eAAe,CAAC;YACvD,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,OAAO,eAAe,CAAC;YACvD,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC;YACnD,KAAK,mBAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YACxD,KAAK,mBAAQ,CAAC,kBAAkB,CAAC,CAAC,OAAO,oBAAoB,CAAC;YAC9D,KAAK,mBAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACtD,KAAK,mBAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YACxD,KAAK,mBAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,YAAY,CAAC;YAClD,KAAK,mBAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,cAAc,CAAC;YACtD,KAAK,mBAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YACxD,KAAK,mBAAQ,CAAC,kBAAkB,CAAC,CAAC,OAAO,UAAU,CAAC;YACpD,KAAK,mBAAQ,CAAC,mBAAmB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YAChE,KAAK,mBAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YACxD,KAAK,mBAAQ,CAAC,iBAAiB,CAAC,CAAC,OAAO,mBAAmB,CAAC;YAC5D,KAAK,mBAAQ,CAAC,kBAAkB,CAAC,CAAC,OAAO,WAAW,CAAC;YACrD,KAAK,mBAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACtD,KAAK,mBAAQ,CAAC,kBAAkB,CAAC,CAAC,OAAO,YAAY,CAAC;YACtD,KAAK,mBAAQ,CAAC,kBAAkB,CAAC,CAAC,OAAO,oBAAoB,CAAC;YAC9D,KAAK,mBAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YACxD,KAAK,mBAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,kBAAkB,CAAC;YAC1D,KAAK,mBAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,kBAAkB,CAAC;YAC1D,KAAK,mBAAQ,CAAC,kBAAkB,CAAC,CAAC,OAAO,oBAAoB,CAAC;YAC9D,KAAK,mBAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,kBAAkB,CAAC;YAC1D,KAAK,mBAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YACxD,KAAK,mBAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACtD,KAAK,mBAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,kBAAkB,CAAC;YAC1D,KAAK,mBAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YACxD,KAAK,mBAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACxD,KAAK,mBAAQ,CAAC,oBAAoB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YAClE,KAAK,mBAAQ,CAAC,0BAA0B,CAAC,CAAC,OAAO,4BAA4B,CAAC;YAC9E,KAAK,mBAAQ,CAAC,qBAAqB,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACpE,KAAK,mBAAQ,CAAC,qBAAqB,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACpE,KAAK,mBAAQ,CAAC,yBAAyB,CAAC,CAAC,OAAO,2BAA2B,CAAC;YAC5E,KAAK,mBAAQ,CAAC,wBAAwB,CAAC,CAAC,OAAO,0BAA0B,CAAC;YAC1E,KAAK,mBAAQ,CAAC,qBAAqB,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACpE,KAAK,mBAAQ,CAAC,sBAAsB,CAAC,CAAC,OAAO,wBAAwB,CAAC;YACtE,KAAK,mBAAQ,CAAC,sBAAsB,CAAC,CAAC,OAAO,wBAAwB,CAAC;YACtE,KAAK,mBAAQ,CAAC,sBAAsB,CAAC,CAAC,OAAO,wBAAwB,CAAC;YACtE,KAAK,mBAAQ,CAAC,uBAAuB,CAAC,CAAC,OAAO,yBAAyB,CAAC;YACxE,KAAK,mBAAQ,CAAC,qBAAqB,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACpE,KAAK,mBAAQ,CAAC,sBAAsB,CAAC,CAAC,OAAO,wBAAwB,CAAC;YACtE,KAAK,mBAAQ,CAAC,iCAAiC,CAAC,CAAC,OAAO,mCAAmC,CAAC;YAC5F,KAAK,mBAAQ,CAAC,oBAAoB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YAClE,KAAK,mBAAQ,CAAC,qBAAqB,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACpE,KAAK,mBAAQ,CAAC,yBAAyB,CAAC,CAAC,OAAO,2BAA2B,CAAC;YAC5E,KAAK,mBAAQ,CAAC,uBAAuB,CAAC,CAAC,OAAO,yBAAyB,CAAC;YACxE,KAAK,mBAAQ,CAAC,uBAAuB,CAAC,CAAC,OAAO,yBAAyB,CAAC;YACxE,KAAK,mBAAQ,CAAC,uBAAuB,CAAC,CAAC,OAAO,yBAAyB,CAAC;YACxE,KAAK,mBAAQ,CAAC,sBAAsB,CAAC,CAAC,OAAO,wBAAwB,CAAC;YACtE,KAAK,mBAAQ,CAAC,oBAAoB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YAClE,KAAK,mBAAQ,CAAC,4BAA4B,CAAC,CAAC,OAAO,8BAA8B,CAAC;YAClF,KAAK,mBAAQ,CAAC,0BAA0B,CAAC,CAAC,OAAO,aAAa,CAAC;YAC/D,KAAK,mBAAQ,CAAC,2BAA2B,CAAC,CAAC,OAAO,cAAc,CAAC;YACjE,KAAK,mBAAQ,CAAC,+BAA+B,CAAC,CAAC,OAAO,mBAAmB,CAAC;YAC1E,KAAK,mBAAQ,CAAC,4BAA4B,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACpE,KAAK,mBAAQ,CAAC,2BAA2B,CAAC,CAAC,OAAO,eAAe,CAAC;YAClE,KAAK,mBAAQ,CAAC,4BAA4B,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACpE,KAAK,mBAAQ,CAAC,qCAAqC,CAAC,CAAC,OAAO,yBAAyB,CAAC;YACtF,KAAK,mBAAQ,CAAC,oCAAoC,CAAC,CAAC,OAAO,wBAAwB,CAAC;YACpF,KAAK,mBAAQ,CAAC,yCAAyC,CAAC,CAAC,OAAO,+BAA+B,CAAC;YAChG,KAAK,mBAAQ,CAAC,6BAA6B,CAAC,CAAC,OAAO,iBAAiB,CAAC;YACtE,KAAK,mBAAQ,CAAC,yCAAyC,CAAC,CAAC,OAAO,+BAA+B,CAAC;YAChG,KAAK,mBAAQ,CAAC,6BAA6B,CAAC,CAAC,OAAO,iBAAiB,CAAC;YACtE,KAAK,mBAAQ,CAAC,gCAAgC,CAAC,CAAC,OAAO,mBAAmB,CAAC;YAC3E,KAAK,mBAAQ,CAAC,uCAAuC,CAAC,CAAC,OAAO,2BAA2B,CAAC;YAC1F,KAAK,mBAAQ,CAAC,qCAAqC,CAAC,CAAC,OAAO,yBAAyB,CAAC;YACtF,KAAK,mBAAQ,CAAC,4BAA4B,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACpE,KAAK,mBAAQ,CAAC,4BAA4B,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACpE,KAAK,mBAAQ,CAAC,gCAAgC,CAAC,CAAC,OAAO,oBAAoB,CAAC;YAC5E,KAAK,mBAAQ,CAAC,mCAAmC,CAAC,CAAC,OAAO,uBAAuB,CAAC;YAClF,KAAK,mBAAQ,CAAC,kCAAkC,CAAC,CAAC,OAAO,sBAAsB,CAAC;YAChF,KAAK,mBAAQ,CAAC,2CAA2C,CAAC,CAAC,OAAO,kCAAkC,CAAC;YACrG,KAAK,mBAAQ,CAAC,wCAAwC,CAAC,CAAC,OAAO,gEAAgE,CAAC;YAChI,KAAK,mBAAQ,CAAC,4BAA4B,CAAC,CAAC,OAAO,8BAA8B,CAAC;YAClF,KAAK,mBAAQ,CAAC,uBAAuB,CAAC,CAAC,OAAO,yBAAyB,CAAC;YACxE,KAAK,mBAAQ,CAAC,4BAA4B,CAAC,CAAC,OAAO,oBAAoB,CAAC;YACxE,KAAK,mBAAQ,CAAC,wBAAwB,CAAC,CAAC,OAAO,0BAA0B,CAAC;YAC1E,KAAK,mBAAQ,CAAC,2BAA2B,CAAC,CAAC,OAAO,6BAA6B,CAAC;YAChF,KAAK,mBAAQ,CAAC,sBAAsB,CAAC,CAAC,OAAO,wBAAwB,CAAC;YACtE,KAAK,mBAAQ,CAAC,2BAA2B,CAAC,CAAC,OAAO,6BAA6B,CAAC;YAChF,KAAK,mBAAQ,CAAC,2BAA2B,CAAC,CAAC,OAAO,6BAA6B,CAAC;YAChF,KAAK,mBAAQ,CAAC,2BAA2B,CAAC,CAAC,OAAO,6BAA6B,CAAC;YAChF,KAAK,mBAAQ,CAAC,wBAAwB,CAAC,CAAC,OAAO,0BAA0B,CAAC;YAC1E,KAAK,mBAAQ,CAAC,0BAA0B,CAAC,CAAC,OAAO,4BAA4B,CAAC;YAC9E,KAAK,mBAAQ,CAAC,+BAA+B,CAAC,CAAC,OAAO,6BAA6B,CAAC;YACpF,KAAK,mBAAQ,CAAC,+BAA+B,CAAC,CAAC,OAAO,8BAA8B,CAAC;YACrF,KAAK,mBAAQ,CAAC,6BAA6B,CAAC,CAAC,OAAO,2BAA2B,CAAC;YAChF,KAAK,mBAAQ,CAAC,4BAA4B,CAAC,CAAC,OAAO,0BAA0B,CAAC;YAC9E,KAAK,mBAAQ,CAAC,+BAA+B,CAAC,CAAC,OAAO,8BAA8B,CAAC;YACrF,KAAK,mBAAQ,CAAC,4BAA4B,CAAC,CAAC,OAAO,0BAA0B,CAAC;YAC9E,KAAK,mBAAQ,CAAC,2BAA2B,CAAC,CAAC,OAAO,yBAAyB,CAAC;YAC5E,KAAK,mBAAQ,CAAC,yBAAyB,CAAC,CAAC,OAAO,yBAAyB,CAAC;YAC1E,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,OAAO,CAAC;YACzC,KAAK,eAAe,CAAC,aAAa,CAAC,CAAC,OAAO,eAAe,CAAC;YAC3D,KAAK,eAAe,CAAC,cAAc,CAAC,CAAC,OAAO,gBAAgB,CAAC;YAC7D,KAAK,eAAe,CAAC,UAAU,CAAC,CAAC,OAAO,YAAY,CAAC;YACrD,KAAK,eAAe,CAAC,YAAY,CAAC,CAAC,OAAO,cAAc,CAAC;YACzD,KAAK,eAAe,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YAC/D,KAAK,eAAe,CAAC,iBAAiB,CAAC,CAAC,OAAO,mBAAmB,CAAC;YACnE,KAAK,eAAe,CAAC,yBAAyB,CAAC,CAAC,OAAO,2BAA2B,CAAC;YACnF,KAAK,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,OAAO,wCAAwC,CAAC;YAC7F,KAAK,eAAe,CAAC,UAAU,CAAC,CAAC,OAAO,6BAA6B,CAAC;YACtE,KAAK,eAAe,CAAC,wBAAwB,CAAC,CAAC,OAAO,uEAAuE,CAAC;YAC9H,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC,OAAO,8EAA8E,CAAC;YAClI,KAAK,eAAe,CAAC,YAAY,CAAC,CAAC,OAAO,2CAA2C,CAAC;YACtF,KAAK,eAAe,CAAC,cAAc,CAAC,CAAC,OAAO,gFAAgF,CAAC;YAC7H,KAAK,eAAe,CAAC,eAAe,CAAC,CAAC,OAAO,6DAA6D,CAAC;YAC3G,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC,OAAO,gFAAgF,CAAC;YACpI,KAAK,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,sBAAsB,CAAC;YAC9D,KAAK,eAAe,CAAC,cAAc,CAAC,CAAC,OAAO,mCAAmC,CAAC;YAChF,KAAK,eAAe,CAAC,oBAAoB,CAAC,CAAC,OAAO,qFAAqF,CAAC;YACxI,KAAK,eAAe,CAAC,mBAAmB,CAAC,CAAC,OAAO,mFAAmF,CAAC;YACrI,KAAK,eAAe,CAAC,sBAAsB,CAAC,CAAC,OAAO,wEAAwE,CAAC;YAC7H,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC,OAAO,+CAA+C,CAAC;YACnG,KAAK,eAAe,CAAC,cAAc,CAAC,CAAC,OAAO,yBAAyB,CAAC;YACtE,KAAK,eAAe,CAAC,cAAc,CAAC,CAAC,OAAO,sDAAsD,CAAC;YACnG,KAAK,eAAe,CAAC,cAAc,CAAC,CAAC,OAAO,4EAA4E,CAAC;YACzH,KAAK,eAAe,CAAC,WAAW,CAAC,CAAC,OAAO,+CAA+C,CAAC;YACzF,KAAK,eAAe,CAAC,UAAU,CAAC,CAAC,OAAO,wCAAwC,CAAC;YACjF,KAAK,eAAe,CAAC,iBAAiB,CAAC,CAAC,OAAO,8CAA8C,CAAC;YAC9F,KAAK,eAAe,CAAC,wBAAwB,CAAC,CAAC,OAAO,wGAAwG,CAAC;YAC/J,KAAK,eAAe,CAAC,+BAA+B,CAAC,CAAC,OAAO,6CAA6C,CAAC;YAC3G,KAAK,eAAe,CAAC,0BAA0B,CAAC,CAAC,OAAO,sHAAsH,CAAC;YAC/K,KAAK,eAAe,CAAC,uBAAuB,CAAC,CAAC,OAAO,4CAA4C,CAAC;YAClG,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC,OAAO,0CAA0C,CAAC;YAC9F,KAAK,eAAe,CAAC,uBAAuB,CAAC,CAAC,OAAO,iEAAiE,CAAC;YACvH,KAAK,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,mBAAmB,CAAC;YACpE,KAAK,gBAAgB,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YAChE,KAAK,gBAAgB,CAAC,SAAS,CAAC,CAAC,OAAO,WAAW,CAAC;YACpD,KAAK,gBAAgB,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YAChE,KAAK,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YACxE,KAAK,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,UAAU,CAAC;YAClD,KAAK,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,OAAO,uBAAuB,CAAC;YAC5E,KAAK,gBAAgB,CAAC,cAAc,CAAC,CAAC,OAAO,gBAAgB,CAAC;YAC9D,KAAK,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,mBAAmB,CAAC;YACpE,KAAK,gBAAgB,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YAChE,KAAK,gBAAgB,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC;YAChE,KAAK,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,UAAU,CAAC;YAClD,KAAK,gBAAgB,CAAC,WAAW,CAAC,CAAC,OAAO,aAAa,CAAC;YACxD,KAAK,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,OAAO,oBAAoB,CAAC;YACtE,KAAK,gBAAgB,CAAC,0BAA0B,CAAC,CAAC,OAAO,4BAA4B,CAAC;YACtF,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,WAAW,CAAC;YACzC,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,kBAAkB,CAAC;YACvD,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,mBAAmB,CAAC;YACxD,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,mBAAmB,CAAC;YACxD,KAAK,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,eAAe,CAAC;YACrD,KAAK,eAAe,CAAC,yBAAyB,CAAC,CAAC,OAAO,6BAA6B,CAAC;YACrF,KAAK,eAAe,CAAC,uBAAuB,CAAC,CAAC,OAAO,2BAA2B,CAAC;YACjF,KAAK,eAAe,CAAC,yBAAyB,CAAC,CAAC,OAAO,+BAA+B,CAAC;YACvF,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC,OAAO,2BAA2B,CAAC;YAC/E,KAAK,eAAe,CAAC,gBAAgB,CAAC,CAAC,OAAO,mBAAmB,CAAC;YAClE,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC,OAAO,0BAA0B,CAAC;YAC9E,KAAK,eAAe,CAAC,4BAA4B,CAAC,CAAC,OAAO,mCAAmC,CAAC;YAC9F,KAAK,eAAe,CAAC,kBAAkB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YACvE,KAAK,eAAe,CAAC,sBAAsB,CAAC,CAAC,OAAO,0BAA0B,CAAC;YAC/E,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC,OAAO,0BAA0B,CAAC;YAC9E,KAAK,eAAe,CAAC,iBAAiB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YACtE,KAAK,eAAe,CAAC,sBAAsB,CAAC,CAAC,OAAO,2BAA2B,CAAC;YAChF,KAAK,eAAe,CAAC,wBAAwB,CAAC,CAAC,OAAO,qCAAqC,CAAC;YAC5F,KAAK,eAAe,CAAC,eAAe,CAAC,CAAC,OAAO,gCAAgC,CAAC;YAC9E,KAAK,eAAe,CAAC,cAAc,CAAC,CAAC,OAAO,kBAAkB,CAAC;YAC/D,KAAK,eAAe,CAAC,gCAAgC,CAAC,CAAC,OAAO,0CAA0C,CAAC;YACzG,KAAK,eAAe,CAAC,yCAAyC,CAAC,CAAC,OAAO,qDAAqD,CAAC;YAC7H,KAAK,eAAe,CAAC,yBAAyB,CAAC,CAAC,OAAO,gCAAgC,CAAC;YACxF,KAAK,eAAe,CAAC,cAAc,CAAC,CAAC,OAAO,kBAAkB,CAAC;YAC/D,KAAK,eAAe,CAAC,UAAU,CAAC,CAAC,OAAO,qBAAqB,CAAC;YAC9D,KAAK,eAAe,CAAC,UAAU,CAAC,CAAC,OAAO,qBAAqB,CAAC;YAC9D,KAAK,eAAe,CAAC,mBAAmB,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACzE,KAAK,eAAe,CAAC,kBAAkB,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACxE,KAAK,eAAe,CAAC,gBAAgB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YACpE,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC,OAAO,2BAA2B,CAAC;YAC/E,KAAK,eAAe,CAAC,2BAA2B,CAAC,CAAC,OAAO,oCAAoC,CAAC;YAC9F,KAAK,eAAe,CAAC,gBAAgB,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACtE,KAAK,eAAe,CAAC,8BAA8B,CAAC,CAAC,OAAO,uCAAuC,CAAC;YACpG,KAAK,eAAe,CAAC,gBAAgB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YACpE,KAAK,eAAe,CAAC,gBAAgB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YACpE,KAAK,eAAe,CAAC,iBAAiB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YACrE,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC,OAAO,2BAA2B,CAAC;YAC/E,KAAK,eAAe,CAAC,6BAA6B,CAAC,CAAC,OAAO,mCAAmC,CAAC;YAC/F,KAAK,eAAe,CAAC,8BAA8B,CAAC,CAAC,OAAO,mCAAmC,CAAC;YAChG,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC,OAAO,2BAA2B,CAAC;YAC/E,KAAK,eAAe,CAAC,2BAA2B,CAAC,CAAC,OAAO,iCAAiC,CAAC;YAC3F,KAAK,eAAe,CAAC,uBAAuB,CAAC,CAAC,OAAO,6BAA6B,CAAC;YACnF,KAAK,eAAe,CAAC,2BAA2B,CAAC,CAAC,OAAO,iCAAiC,CAAC;YAC3F,KAAK,eAAe,CAAC,uBAAuB,CAAC,CAAC,OAAO,6BAA6B,CAAC;YACnF,KAAK,eAAe,CAAC,0BAA0B,CAAC,CAAC,OAAO,+BAA+B,CAAC;YACxF,KAAK,eAAe,CAAC,oBAAoB,CAAC,CAAC,OAAO,wBAAwB,CAAC;YAC3E,KAAK,eAAe,CAAC,mBAAmB,CAAC,CAAC,OAAO,qCAAqC,CAAC;YACvF,KAAK,eAAe,CAAC,kBAAkB,CAAC,CAAC,OAAO,+CAA+C,CAAC;YAChG,KAAK,eAAe,CAAC,oBAAoB,CAAC,CAAC,OAAO,iCAAiC,CAAC;YACpF,KAAK,eAAe,CAAC,uBAAuB,CAAC,CAAC,OAAO,+BAA+B,CAAC;YACrF,KAAK,eAAe,CAAC,iBAAiB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YACtE,KAAK,eAAe,CAAC,sBAAsB,CAAC,CAAC,OAAO,oBAAoB,CAAC;YACzE,KAAK,eAAe,CAAC,oBAAoB,CAAC,CAAC,OAAO,kBAAkB,CAAC;YACrE,KAAK,eAAe,CAAC,uBAAuB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YAC5E,KAAK,eAAe,CAAC,qBAAqB,CAAC,CAAC,OAAO,0BAA0B,CAAC;YAC9E,KAAK,eAAe,CAAC,iBAAiB,CAAC,CAAC,OAAO,yBAAyB,CAAC;YACzE,KAAK,eAAe,CAAC,YAAY,CAAC,CAAC,OAAO,gBAAgB,CAAC;YAC3D,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,qBAAqB,CAAC;YACpD,KAAK,gBAAgB,CAAC,aAAa,CAAC,CAAC,OAAO,gBAAgB,CAAC;YAC7D,KAAK,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YACrE,KAAK,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,OAAO,4BAA4B,CAAC;YACnF,KAAK,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,OAAO,oBAAoB,CAAC;YACpE,KAAK,gBAAgB,CAAC,yBAAyB,CAAC,CAAC,OAAO,8BAA8B,CAAC;YACvF,KAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC;YACvD,KAAK,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;YAChD,KAAK,YAAY,CAAC,OAAO,CAAC;YAC1B,KAAK,mBAAQ,CAAC,YAAY,CAAC;YAC3B,KAAK,mBAAQ,CAAC,aAAa,CAAC;YAC5B,KAAK,mBAAQ,CAAC,cAAc,CAAC;YAC7B,KAAK,aAAa,CAAC,OAAO;gBACxB,OAAO,SAAS,CAAC;YAEnB;gBACE,OAAO,UAAU,IAAI,CAAC,WAAW,GAAG,CAAC;SACxC;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,KAAc;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC3B,OAAO,KAAK,CAAC;QAEf,IAAI,KAAK,YAAY,KAAK;YACxB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QAE1B,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;gBACnC,OAAO,KAAK,CAAC,OAAO,CAAC;YAEvB,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAC/B,OAAO,KAAK,CAAC,GAAG,CAAC;YAEnB,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,iBAAiB;gBACxC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;SAC3B;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,aAAa,CAAC,KAAc;QACxC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YACpD,OAAO,KAAK,CAAC,KAAK,CAAC;QAErB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,gBAAgB,CAAC,KAAc;QAC3C,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU,EAAE;YAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;gBACnD,OAAO,QAAQ,CAAC;SACnB;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,KAAc;QACxC,MAAM,UAAU,GAAe;YAC7B,OAAO,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC;SAC7C,CAAC;QAEF,MAAM,KAAK,GAAG,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,KAAK;YACP,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;QAE3B,MAAM,QAAQ,GAAG,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,QAAQ;YACV,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEjC,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AA5XD,oCA4XC","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 { DbResult } from \"./BeSQLite\";\r\n\r\n/** Standard status code.\r\n * This status code should be rarely used.\r\n * Prefer to throw an exception to indicate an error, rather than returning a special status code.\r\n * If a status code is to be returned, prefer to return a more specific error status type such as IModelStatus or DbResult.\r\n * @public\r\n */\r\nexport enum BentleyStatus {\r\n SUCCESS = 0x0000,\r\n ERROR = 0x8000,\r\n}\r\n\r\n/** Status codes that are used in conjunction with [[BentleyError]].\r\n * Error status codes are divided into separate ranges for different kinds of errors. All known ranges at least should be defined here, to avoid collisions.\r\n * @public\r\n */\r\nexport enum IModelStatus {\r\n IMODEL_ERROR_BASE = 0x10000,\r\n Success = 0,\r\n AlreadyLoaded = IMODEL_ERROR_BASE + 1,\r\n AlreadyOpen = IMODEL_ERROR_BASE + 2,\r\n BadArg = IMODEL_ERROR_BASE + 3,\r\n BadElement = IMODEL_ERROR_BASE + 4,\r\n BadModel = IMODEL_ERROR_BASE + 5,\r\n BadRequest = IMODEL_ERROR_BASE + 6,\r\n BadSchema = IMODEL_ERROR_BASE + 7,\r\n CannotUndo = IMODEL_ERROR_BASE + 8,\r\n CodeNotReserved = IMODEL_ERROR_BASE + 9,\r\n DeletionProhibited = IMODEL_ERROR_BASE + 10,\r\n DuplicateCode = IMODEL_ERROR_BASE + 11,\r\n DuplicateName = IMODEL_ERROR_BASE + 12,\r\n ElementBlockedChange = IMODEL_ERROR_BASE + 13,\r\n FileAlreadyExists = IMODEL_ERROR_BASE + 14,\r\n FileNotFound = IMODEL_ERROR_BASE + 15,\r\n FileNotLoaded = IMODEL_ERROR_BASE + 16,\r\n ForeignKeyConstraint = IMODEL_ERROR_BASE + 17,\r\n IdExists = IMODEL_ERROR_BASE + 18,\r\n InDynamicTransaction = IMODEL_ERROR_BASE + 19,\r\n InvalidCategory = IMODEL_ERROR_BASE + 20,\r\n InvalidCode = IMODEL_ERROR_BASE + 21,\r\n InvalidCodeSpec = IMODEL_ERROR_BASE + 22,\r\n InvalidId = IMODEL_ERROR_BASE + 23,\r\n InvalidName = IMODEL_ERROR_BASE + 24,\r\n InvalidParent = IMODEL_ERROR_BASE + 25,\r\n InvalidProfileVersion = IMODEL_ERROR_BASE + 26,\r\n IsCreatingChangeSet = IMODEL_ERROR_BASE + 27,\r\n LockNotHeld = IMODEL_ERROR_BASE + 28,\r\n Mismatch2d3d = IMODEL_ERROR_BASE + 29,\r\n MismatchGcs = IMODEL_ERROR_BASE + 30,\r\n MissingDomain = IMODEL_ERROR_BASE + 31,\r\n MissingHandler = IMODEL_ERROR_BASE + 32,\r\n MissingId = IMODEL_ERROR_BASE + 33,\r\n NoGeometry = IMODEL_ERROR_BASE + 34,\r\n NoMultiTxnOperation = IMODEL_ERROR_BASE + 35,\r\n NotEnabled = IMODEL_ERROR_BASE + 37,\r\n NotFound = IMODEL_ERROR_BASE + 38,\r\n NotOpen = IMODEL_ERROR_BASE + 39,\r\n NotOpenForWrite = IMODEL_ERROR_BASE + 40,\r\n NotSameUnitBase = IMODEL_ERROR_BASE + 41,\r\n NothingToRedo = IMODEL_ERROR_BASE + 42,\r\n NothingToUndo = IMODEL_ERROR_BASE + 43,\r\n ParentBlockedChange = IMODEL_ERROR_BASE + 44,\r\n ReadError = IMODEL_ERROR_BASE + 45,\r\n ReadOnly = IMODEL_ERROR_BASE + 46,\r\n ReadOnlyDomain = IMODEL_ERROR_BASE + 47,\r\n RepositoryManagerError = IMODEL_ERROR_BASE + 48,\r\n SQLiteError = IMODEL_ERROR_BASE + 49,\r\n TransactionActive = IMODEL_ERROR_BASE + 50,\r\n UnitsMissing = IMODEL_ERROR_BASE + 51,\r\n UnknownFormat = IMODEL_ERROR_BASE + 52,\r\n UpgradeFailed = IMODEL_ERROR_BASE + 53,\r\n ValidationFailed = IMODEL_ERROR_BASE + 54,\r\n VersionTooNew = IMODEL_ERROR_BASE + 55,\r\n VersionTooOld = IMODEL_ERROR_BASE + 56,\r\n ViewNotFound = IMODEL_ERROR_BASE + 57,\r\n WriteError = IMODEL_ERROR_BASE + 58,\r\n WrongClass = IMODEL_ERROR_BASE + 59,\r\n WrongIModel = IMODEL_ERROR_BASE + 60,\r\n WrongDomain = IMODEL_ERROR_BASE + 61,\r\n WrongElement = IMODEL_ERROR_BASE + 62,\r\n WrongHandler = IMODEL_ERROR_BASE + 63,\r\n WrongModel = IMODEL_ERROR_BASE + 64,\r\n ConstraintNotUnique = IMODEL_ERROR_BASE + 65,\r\n NoGeoLocation = IMODEL_ERROR_BASE + 66,\r\n ServerTimeout = IMODEL_ERROR_BASE + 67,\r\n NoContent = IMODEL_ERROR_BASE + 68,\r\n NotRegistered = IMODEL_ERROR_BASE + 69,\r\n FunctionNotFound = IMODEL_ERROR_BASE + 70,\r\n NoActiveCommand = IMODEL_ERROR_BASE + 71,\r\n}\r\n\r\n/** Error status from various briefcase operations\r\n * @beta Should these be internal?\r\n */\r\nexport enum BriefcaseStatus {\r\n BRIEFCASE_STATUS_BASE = 0x20000,\r\n CannotAcquire = BRIEFCASE_STATUS_BASE,\r\n CannotDownload = BRIEFCASE_STATUS_BASE + 1,\r\n CannotUpload = BRIEFCASE_STATUS_BASE + 2,\r\n CannotCopy = BRIEFCASE_STATUS_BASE + 3,\r\n CannotDelete = BRIEFCASE_STATUS_BASE + 4,\r\n VersionNotFound = BRIEFCASE_STATUS_BASE + 5,\r\n CannotApplyChanges = BRIEFCASE_STATUS_BASE + 6,\r\n DownloadCancelled = BRIEFCASE_STATUS_BASE + 7,\r\n ContainsDeletedChangeSets = BRIEFCASE_STATUS_BASE + 8,\r\n}\r\n\r\n/** RpcInterface status codes\r\n * @beta Should these be internal?\r\n */\r\nexport enum RpcInterfaceStatus {\r\n Success = 0,\r\n RPC_INTERFACE_ERROR_BASE = 0x21000,\r\n /** The RpcInterface implemented by the server is incompatible with the interface requested by the client. */\r\n IncompatibleVersion = RPC_INTERFACE_ERROR_BASE,\r\n}\r\n\r\n/** Error status from various Changeset operations\r\n * @beta Should these be internal?\r\n */\r\nexport enum ChangeSetStatus { // Note: Values must be kept in sync with ChangeSetStatus in DgnPlatform\r\n Success = 0,\r\n CHANGESET_ERROR_BASE = 0x16000,\r\n /** Error applying a change set when reversing or reinstating it */\r\n ApplyError = CHANGESET_ERROR_BASE + 1,\r\n /** Change tracking has not been enabled. The ChangeSet API mandates this. */\r\n ChangeTrackingNotEnabled = CHANGESET_ERROR_BASE + 2,\r\n /** Contents of the change stream are corrupted and does not match the ChangeSet */\r\n CorruptedChangeStream = CHANGESET_ERROR_BASE + 3,\r\n /** File containing the changes to the change set is not found */\r\n FileNotFound = CHANGESET_ERROR_BASE + 4,\r\n /** Error writing the contents of the change set to the backing change stream file */\r\n FileWriteError = CHANGESET_ERROR_BASE + 5,\r\n /** Cannot perform the operation since the Db has local changes */\r\n HasLocalChanges = CHANGESET_ERROR_BASE + 6,\r\n /** Cannot perform the operation since current transaction has uncommitted changes */\r\n HasUncommittedChanges = CHANGESET_ERROR_BASE + 7,\r\n /** Invalid ChangeSet Id */\r\n InvalidId = CHANGESET_ERROR_BASE + 8,\r\n /** Invalid version of the change set */\r\n InvalidVersion = CHANGESET_ERROR_BASE + 9,\r\n /** Cannot perform the operation since system is in the middle of a dynamic transaction */\r\n InDynamicTransaction = CHANGESET_ERROR_BASE + 10,\r\n /** Cannot perform operation since system is in the middle of a creating a change set */\r\n IsCreatingChangeSet = CHANGESET_ERROR_BASE + 11,\r\n /** Cannot perform operation since the system is not creating a change set */\r\n IsNotCreatingChangeSet = CHANGESET_ERROR_BASE + 12,\r\n /** Error propagating the changes after the merge */\r\n MergePropagationError = CHANGESET_ERROR_BASE + 13,\r\n /** No change sets to merge */\r\n NothingToMerge = CHANGESET_ERROR_BASE + 14,\r\n /** No transactions are available to create a change set */\r\n NoTransactions = CHANGESET_ERROR_BASE + 15,\r\n /** Parent change set of the Db does not match the parent id of the change set */\r\n ParentMismatch = CHANGESET_ERROR_BASE + 16,\r\n /** Error performing a SQLite operation on the Db */\r\n SQLiteError = CHANGESET_ERROR_BASE + 17,\r\n /** ChangeSet originated in a different Db */\r\n WrongDgnDb = CHANGESET_ERROR_BASE + 18,\r\n /** Could not open the DgnDb to merge change set */\r\n CouldNotOpenDgnDb = CHANGESET_ERROR_BASE + 19,\r\n /** Cannot merge changes in in an open DgnDb. Close the DgnDb, and process the operation when it is opened. */\r\n MergeSchemaChangesOnOpen = CHANGESET_ERROR_BASE + 20,\r\n /** Cannot reverse or reinstate schema changes. */\r\n ReverseOrReinstateSchemaChanges = CHANGESET_ERROR_BASE + 21,\r\n /** Cannot process changes schema changes in an open DgnDb. Close the DgnDb, and process the operation when it is opened. */\r\n ProcessSchemaChangesOnOpen = CHANGESET_ERROR_BASE + 22,\r\n /** Cannot merge changes into a Readonly DgnDb. */\r\n CannotMergeIntoReadonly = CHANGESET_ERROR_BASE + 23,\r\n /** Cannot merge changes into a Master DgnDb. */\r\n CannotMergeIntoMaster = CHANGESET_ERROR_BASE + 24,\r\n /** Cannot merge changes into a DgnDb that has reversed change sets. */\r\n CannotMergeIntoReversed = CHANGESET_ERROR_BASE + 25,\r\n}\r\n\r\n/** Return codes for methods which perform repository management operations\r\n * @beta Should these be internal?\r\n */\r\nexport enum RepositoryStatus {\r\n Success = 0,\r\n /** The repository server did not respond to a request */\r\n ServerUnavailable = 0x15001,\r\n /** A requested lock was already held by another briefcase */\r\n LockAlreadyHeld = 0x15002,\r\n /** Failed to sync briefcase manager with server */\r\n SyncError = 0x15003,\r\n /** Response from server not understood */\r\n InvalidResponse = 0x15004,\r\n /** An operation requires local changes to be committed or abandoned */\r\n PendingTransactions = 0x15005,\r\n /** A lock cannot be relinquished because the associated object has been modified */\r\n LockUsed = 0x15006,\r\n /** An operation required creation of a ChangeSet, which failed */\r\n CannotCreateChangeSet = 0x15007,\r\n /** Request to server not understood */\r\n InvalidRequest = 0x15008,\r\n /** A change set committed to the server must be integrated into the briefcase before the operation can be completed */\r\n ChangeSetRequired = 0x15009,\r\n /** A requested DgnCode is reserved by another briefcase or in use */\r\n CodeUnavailable = 0x1500A,\r\n /** A DgnCode cannot be released because it has not been reserved by the requesting briefcase */\r\n CodeNotReserved = 0x1500B,\r\n /** A DgnCode cannot be relinquished because it has been used locally */\r\n CodeUsed = 0x1500C,\r\n /** A required lock is not held by this briefcase */\r\n LockNotHeld = 0x1500D,\r\n /** Repository is currently locked, no changes allowed */\r\n RepositoryIsLocked = 0x1500E,\r\n /** Channel write constraint violation, such as an attempt to write outside the designated channel. */\r\n ChannelConstraintViolation = 0x1500F,\r\n}\r\n\r\n/** Status from returned HTTP status code\r\n * @beta Should these be internal?\r\n */\r\nexport enum HttpStatus {\r\n /** 2xx Success */\r\n Success = 0,\r\n /** 1xx Informational responses */\r\n Info = 0x17001,\r\n /** 3xx Redirection */\r\n Redirection = 0x17002,\r\n /** 4xx Client errors */\r\n ClientError = 0x17003,\r\n /** 5xx Server errors */\r\n ServerError = 0x17004,\r\n}\r\n\r\n/** iModelHub Services Errors\r\n * @beta Right package?\r\n */\r\nexport enum IModelHubStatus {\r\n Success = 0,\r\n IMODELHUBERROR_BASE = 0x19000,\r\n IMODELHUBERROR_REQUESTERRORBASE = 0x19100,\r\n Unknown = IMODELHUBERROR_BASE + 1,\r\n MissingRequiredProperties = IMODELHUBERROR_BASE + 2,\r\n InvalidPropertiesValues = IMODELHUBERROR_BASE + 3,\r\n UserDoesNotHavePermission = IMODELHUBERROR_BASE + 4,\r\n UserDoesNotHaveAccess = IMODELHUBERROR_BASE + 5,\r\n InvalidBriefcase = IMODELHUBERROR_BASE + 6,\r\n BriefcaseDoesNotExist = IMODELHUBERROR_BASE + 7,\r\n BriefcaseDoesNotBelongToUser = IMODELHUBERROR_BASE + 8,\r\n AnotherUserPushing = IMODELHUBERROR_BASE + 9,\r\n ChangeSetAlreadyExists = IMODELHUBERROR_BASE + 10,\r\n ChangeSetDoesNotExist = IMODELHUBERROR_BASE + 11,\r\n FileIsNotUploaded = IMODELHUBERROR_BASE + 12,\r\n iModelIsNotInitialized = IMODELHUBERROR_BASE + 13,\r\n ChangeSetPointsToBadSeed = IMODELHUBERROR_BASE + 14,\r\n OperationFailed = IMODELHUBERROR_BASE + 15,\r\n PullIsRequired = IMODELHUBERROR_BASE + 16,\r\n MaximumNumberOfBriefcasesPerUser = IMODELHUBERROR_BASE + 17,\r\n MaximumNumberOfBriefcasesPerUserPerMinute = IMODELHUBERROR_BASE + 18,\r\n DatabaseTemporarilyLocked = IMODELHUBERROR_BASE + 19,\r\n iModelIsLocked = IMODELHUBERROR_BASE + 20,\r\n CodesExist = IMODELHUBERROR_BASE + 21,\r\n LocksExist = IMODELHUBERROR_BASE + 22,\r\n iModelAlreadyExists = IMODELHUBERROR_BASE + 23,\r\n iModelDoesNotExist = IMODELHUBERROR_BASE + 24,\r\n FileDoesNotExist = IMODELHUBERROR_BASE + 25,\r\n FileAlreadyExists = IMODELHUBERROR_BASE + 26,\r\n LockDoesNotExist = IMODELHUBERROR_BASE + 27,\r\n LockOwnedByAnotherBriefcase = IMODELHUBERROR_BASE + 28,\r\n CodeStateInvalid = IMODELHUBERROR_BASE + 29,\r\n CodeReservedByAnotherBriefcase = IMODELHUBERROR_BASE + 30,\r\n CodeDoesNotExist = IMODELHUBERROR_BASE + 31,\r\n EventTypeDoesNotExist = IMODELHUBERROR_BASE + 32,\r\n EventSubscriptionDoesNotExist = IMODELHUBERROR_BASE + 33,\r\n EventSubscriptionAlreadyExists = IMODELHUBERROR_BASE + 34,\r\n ITwinIdIsNotSpecified = IMODELHUBERROR_BASE + 35,\r\n FailedToGetITwinPermissions = IMODELHUBERROR_BASE + 36,\r\n FailedToGetITwinMembers = IMODELHUBERROR_BASE + 37,\r\n ChangeSetAlreadyHasVersion = IMODELHUBERROR_BASE + 38,\r\n VersionAlreadyExists = IMODELHUBERROR_BASE + 39,\r\n JobSchedulingFailed = IMODELHUBERROR_BASE + 40,\r\n ConflictsAggregate = IMODELHUBERROR_BASE + 41,\r\n FailedToGetITwinById = IMODELHUBERROR_BASE + 42,\r\n\r\n DatabaseOperationFailed = IMODELHUBERROR_BASE + 43,\r\n SeedFileInitializationFailed = IMODELHUBERROR_BASE + 44,\r\n\r\n FailedToGetAssetPermissions = IMODELHUBERROR_BASE + 45,\r\n FailedToGetAssetMembers = IMODELHUBERROR_BASE + 46,\r\n ITwinDoesNotExist = IMODELHUBERROR_BASE + 47,\r\n\r\n LockChunkDoesNotExist = IMODELHUBERROR_BASE + 49,\r\n\r\n CheckpointAlreadyExists = IMODELHUBERROR_BASE + 50,\r\n CheckpointDoesNotExist = IMODELHUBERROR_BASE + 51,\r\n\r\n // Errors that are returned for incorrect iModelHub request.\r\n UndefinedArgumentError = IMODELHUBERROR_REQUESTERRORBASE + 1,\r\n InvalidArgumentError = IMODELHUBERROR_REQUESTERRORBASE + 2,\r\n MissingDownloadUrlError = IMODELHUBERROR_REQUESTERRORBASE + 3,\r\n NotSupportedInBrowser = IMODELHUBERROR_REQUESTERRORBASE + 4,\r\n FileHandlerNotSet = IMODELHUBERROR_REQUESTERRORBASE + 5,\r\n FileNotFound = IMODELHUBERROR_REQUESTERRORBASE + 6,\r\n InitializationTimeout = IMODELHUBERROR_REQUESTERRORBASE + 7,\r\n}\r\n\r\n/** Authentication Errors\r\n * @beta Internal? Right package?\r\n */\r\nexport enum AuthStatus {\r\n Success = 0,\r\n AUTHSTATUS_BASE = 0x22000,\r\n Error = AUTHSTATUS_BASE,\r\n}\r\n\r\n/** GeoServiceStatus errors\r\n * @public\r\n */\r\nexport enum GeoServiceStatus {\r\n Success = 0,\r\n GEOSERVICESTATUS_BASE = 0x24000,\r\n // Error mapped from 'IModelStatus'\r\n NoGeoLocation = IModelStatus.NoGeoLocation,\r\n // Following errors are mapped from 'GeoCoordStatus'\r\n OutOfUsefulRange = GEOSERVICESTATUS_BASE + 1,\r\n OutOfMathematicalDomain = GEOSERVICESTATUS_BASE + 2,\r\n NoDatumConverter = GEOSERVICESTATUS_BASE + 3,\r\n VerticalDatumConvertError = GEOSERVICESTATUS_BASE + 4,\r\n CSMapError = GEOSERVICESTATUS_BASE + 5,\r\n Pending = GEOSERVICESTATUS_BASE + 6,\r\n}\r\n\r\n/** When you want to associate an explanatory message with an error status value.\r\n * @beta Internal?\r\n */\r\nexport interface StatusCodeWithMessage<ErrorCodeType> {\r\n status: ErrorCodeType;\r\n message: string;\r\n}\r\n\r\n/** A function that returns a metadata object for a [[BentleyError]].\r\n * This is generally used for logging. However not every exception is logged, so use this if the metadata for an exception is expensive to create.\r\n * @public\r\n */\r\nexport type GetMetaDataFunction = () => object | undefined;\r\n\r\n/** Optional metadata attached to a [[BentleyError]]. May either be an object or a function that returns an object.\r\n * If this exception is logged and metadata is present, the metaData object is attached to the log entry via `JSON.stringify`\r\n * @public\r\n */\r\nexport type LoggingMetaData = GetMetaDataFunction | object | undefined;\r\n\r\nfunction isObject(obj: unknown): obj is { [key: string]: unknown } {\r\n return typeof obj === \"object\" && obj !== null;\r\n}\r\n\r\ninterface ErrorProps {\r\n message: string;\r\n stack?: string;\r\n metadata?: object;\r\n}\r\n\r\n/** Base exception class for iTwin.js exceptions.\r\n * @public\r\n */\r\nexport class BentleyError extends Error {\r\n private readonly _metaData: LoggingMetaData;\r\n\r\n /**\r\n * @param errorNumber The a number that identifies of the problem.\r\n * @param message message that describes the problem (should not be localized).\r\n * @param metaData metaData about the exception.\r\n */\r\n public constructor(public errorNumber: number, message?: string, metaData?: LoggingMetaData) {\r\n super(message);\r\n this.errorNumber = errorNumber;\r\n this._metaData = metaData;\r\n this.name = this._initName();\r\n }\r\n\r\n /** Returns true if this BentleyError includes (optional) metadata. */\r\n public get hasMetaData(): boolean { return undefined !== this._metaData; }\r\n\r\n /** get the meta data associated with this BentleyError, if any. */\r\n public getMetaData(): object | undefined {\r\n return BentleyError.getMetaData(this._metaData);\r\n }\r\n\r\n /** get the metadata object associated with an ExceptionMetaData, if any. */\r\n public static getMetaData(metaData: LoggingMetaData): object | undefined {\r\n return (typeof metaData === \"function\") ? metaData() : metaData;\r\n }\r\n\r\n /** This function returns the name of each error status. Override this method to handle more error status codes. */\r\n protected _initName(): string {\r\n switch (this.errorNumber) {\r\n case IModelStatus.AlreadyLoaded: return \"Already Loaded\";\r\n case IModelStatus.AlreadyOpen: return \"Already Open\";\r\n case IModelStatus.BadArg: return \"Bad Arg\";\r\n case IModelStatus.BadElement: return \"Bad Element\";\r\n case IModelStatus.BadModel: return \"Bad Model\";\r\n case IModelStatus.BadRequest: return \"Bad Request\";\r\n case IModelStatus.BadSchema: return \"Bad Schema\";\r\n case IModelStatus.CannotUndo: return \"Can not Undo\";\r\n case IModelStatus.CodeNotReserved: return \"Code Not Reserved\";\r\n case IModelStatus.DeletionProhibited: return \"Deletion Prohibited\";\r\n case IModelStatus.DuplicateCode: return \"Duplicate Code\";\r\n case IModelStatus.DuplicateName: return \"Duplicate Name\";\r\n case IModelStatus.ElementBlockedChange: return \"Element Blocked Change\";\r\n case IModelStatus.FileAlreadyExists: return \"File Already Exists\";\r\n case IModelStatus.FileNotFound: return \"File Not Found\";\r\n case IModelStatus.FileNotLoaded: return \"File Not Loaded\";\r\n case IModelStatus.ForeignKeyConstraint: return \"ForeignKey Constraint\";\r\n case IModelStatus.IdExists: return \"Id Exists\";\r\n case IModelStatus.InDynamicTransaction: return \"InDynamicTransaction\";\r\n case IModelStatus.InvalidCategory: return \"Invalid Category\";\r\n case IModelStatus.InvalidCode: return \"Invalid Code\";\r\n case IModelStatus.InvalidCodeSpec: return \"Invalid CodeSpec\";\r\n case IModelStatus.InvalidId: return \"Invalid Id\";\r\n case IModelStatus.InvalidName: return \"Invalid Name\";\r\n case IModelStatus.InvalidParent: return \"Invalid Parent\";\r\n case IModelStatus.InvalidProfileVersion: return \"Invalid Profile Version\";\r\n case IModelStatus.IsCreatingChangeSet: return \"IsCreatingChangeSet\";\r\n case IModelStatus.LockNotHeld: return \"Lock Not Held\";\r\n case IModelStatus.Mismatch2d3d: return \"Mismatch 2d3d\";\r\n case IModelStatus.MismatchGcs: return \"Mismatch Gcs\";\r\n case IModelStatus.MissingDomain: return \"Missing Domain\";\r\n case IModelStatus.MissingHandler: return \"Missing Handler\";\r\n case IModelStatus.MissingId: return \"Missing Id\";\r\n case IModelStatus.NoGeometry: return \"No Geometry\";\r\n case IModelStatus.NoMultiTxnOperation: return \"NoMultiTxnOperation\";\r\n case IModelStatus.NotEnabled: return \"Not Enabled\";\r\n case IModelStatus.NotFound: return \"Not Found\";\r\n case IModelStatus.NotOpen: return \"Not Open\";\r\n case IModelStatus.NotOpenForWrite: return \"Not Open For Write\";\r\n case IModelStatus.NotSameUnitBase: return \"Not Same Unit Base\";\r\n case IModelStatus.NothingToRedo: return \"Nothing To Redo\";\r\n case IModelStatus.NothingToUndo: return \"Nothing To Undo\";\r\n case IModelStatus.ParentBlockedChange: return \"Parent Blocked Change\";\r\n case IModelStatus.ReadError: return \"Read Error\";\r\n case IModelStatus.ReadOnly: return \"ReadOnly\";\r\n case IModelStatus.ReadOnlyDomain: return \"ReadOnlyDomain\";\r\n case IModelStatus.RepositoryManagerError: return \"RepositoryManagerError\";\r\n case IModelStatus.SQLiteError: return \"SQLiteError\";\r\n case IModelStatus.TransactionActive: return \"Transaction Active\";\r\n case IModelStatus.UnitsMissing: return \"Units Missing\";\r\n case IModelStatus.UnknownFormat: return \"Unknown Format\";\r\n case IModelStatus.UpgradeFailed: return \"Upgrade Failed\";\r\n case IModelStatus.ValidationFailed: return \"Validation Failed\";\r\n case IModelStatus.VersionTooNew: return \"Version Too New\";\r\n case IModelStatus.VersionTooOld: return \"Version Too Old\";\r\n case IModelStatus.ViewNotFound: return \"View Not Found\";\r\n case IModelStatus.WriteError: return \"Write Error\";\r\n case IModelStatus.WrongClass: return \"Wrong Class\";\r\n case IModelStatus.WrongIModel: return \"Wrong IModel\";\r\n case IModelStatus.WrongDomain: return \"Wrong Domain\";\r\n case IModelStatus.WrongElement: return \"Wrong Element\";\r\n case IModelStatus.WrongHandler: return \"Wrong Handler\";\r\n case IModelStatus.WrongModel: return \"Wrong Model\";\r\n case DbResult.BE_SQLITE_ERROR: return \"BE_SQLITE_ERROR\";\r\n case DbResult.BE_SQLITE_INTERNAL: return \"BE_SQLITE_INTERNAL\";\r\n case DbResult.BE_SQLITE_PERM: return \"BE_SQLITE_PERM\";\r\n case DbResult.BE_SQLITE_ABORT: return \"BE_SQLITE_ABORT\";\r\n case DbResult.BE_SQLITE_BUSY: return \"Db is busy\";\r\n case DbResult.BE_SQLITE_LOCKED: return \"Db is Locked\";\r\n case DbResult.BE_SQLITE_NOMEM: return \"BE_SQLITE_NOMEM\";\r\n case DbResult.BE_SQLITE_READONLY: return \"Readonly\";\r\n case DbResult.BE_SQLITE_INTERRUPT: return \"BE_SQLITE_INTERRUPT\";\r\n case DbResult.BE_SQLITE_IOERR: return \"BE_SQLITE_IOERR\";\r\n case DbResult.BE_SQLITE_CORRUPT: return \"BE_SQLITE_CORRUPT\";\r\n case DbResult.BE_SQLITE_NOTFOUND: return \"Not Found\";\r\n case DbResult.BE_SQLITE_FULL: return \"BE_SQLITE_FULL\";\r\n case DbResult.BE_SQLITE_CANTOPEN: return \"Can't open\";\r\n case DbResult.BE_SQLITE_PROTOCOL: return \"BE_SQLITE_PROTOCOL\";\r\n case DbResult.BE_SQLITE_EMPTY: return \"BE_SQLITE_EMPTY\";\r\n case DbResult.BE_SQLITE_SCHEMA: return \"BE_SQLITE_SCHEMA\";\r\n case DbResult.BE_SQLITE_TOOBIG: return \"BE_SQLITE_TOOBIG\";\r\n case DbResult.BE_SQLITE_MISMATCH: return \"BE_SQLITE_MISMATCH\";\r\n case DbResult.BE_SQLITE_MISUSE: return \"BE_SQLITE_MISUSE\";\r\n case DbResult.BE_SQLITE_NOLFS: return \"BE_SQLITE_NOLFS\";\r\n case DbResult.BE_SQLITE_AUTH: return \"BE_SQLITE_AUTH\";\r\n case DbResult.BE_SQLITE_FORMAT: return \"BE_SQLITE_FORMAT\";\r\n case DbResult.BE_SQLITE_RANGE: return \"BE_SQLITE_RANGE\";\r\n case DbResult.BE_SQLITE_NOTADB: return \"Not a Database\";\r\n case DbResult.BE_SQLITE_IOERR_READ: return \"BE_SQLITE_IOERR_READ\";\r\n case DbResult.BE_SQLITE_IOERR_SHORT_READ: return \"BE_SQLITE_IOERR_SHORT_READ\";\r\n case DbResult.BE_SQLITE_IOERR_WRITE: return \"BE_SQLITE_IOERR_WRITE\";\r\n case DbResult.BE_SQLITE_IOERR_FSYNC: return \"BE_SQLITE_IOERR_FSYNC\";\r\n case DbResult.BE_SQLITE_IOERR_DIR_FSYNC: return \"BE_SQLITE_IOERR_DIR_FSYNC\";\r\n case DbResult.BE_SQLITE_IOERR_TRUNCATE: return \"BE_SQLITE_IOERR_TRUNCATE\";\r\n case DbResult.BE_SQLITE_IOERR_FSTAT: return \"BE_SQLITE_IOERR_FSTAT\";\r\n case DbResult.BE_SQLITE_IOERR_UNLOCK: return \"BE_SQLITE_IOERR_UNLOCK\";\r\n case DbResult.BE_SQLITE_IOERR_RDLOCK: return \"BE_SQLITE_IOERR_RDLOCK\";\r\n case DbResult.BE_SQLITE_IOERR_DELETE: return \"BE_SQLITE_IOERR_DELETE\";\r\n case DbResult.BE_SQLITE_IOERR_BLOCKED: return \"BE_SQLITE_IOERR_BLOCKED\";\r\n case DbResult.BE_SQLITE_IOERR_NOMEM: return \"BE_SQLITE_IOERR_NOMEM\";\r\n case DbResult.BE_SQLITE_IOERR_ACCESS: return \"BE_SQLITE_IOERR_ACCESS\";\r\n case DbResult.BE_SQLITE_IOERR_CHECKRESERVEDLOCK: return \"BE_SQLITE_IOERR_CHECKRESERVEDLOCK\";\r\n case DbResult.BE_SQLITE_IOERR_LOCK: return \"BE_SQLITE_IOERR_LOCK\";\r\n case DbResult.BE_SQLITE_IOERR_CLOSE: return \"BE_SQLITE_IOERR_CLOSE\";\r\n case DbResult.BE_SQLITE_IOERR_DIR_CLOSE: return \"BE_SQLITE_IOERR_DIR_CLOSE\";\r\n case DbResult.BE_SQLITE_IOERR_SHMOPEN: return \"BE_SQLITE_IOERR_SHMOPEN\";\r\n case DbResult.BE_SQLITE_IOERR_SHMSIZE: return \"BE_SQLITE_IOERR_SHMSIZE\";\r\n case DbResult.BE_SQLITE_IOERR_SHMLOCK: return \"BE_SQLITE_IOERR_SHMLOCK\";\r\n case DbResult.BE_SQLITE_IOERR_SHMMAP: return \"BE_SQLITE_IOERR_SHMMAP\";\r\n case DbResult.BE_SQLITE_IOERR_SEEK: return \"BE_SQLITE_IOERR_SEEK\";\r\n case DbResult.BE_SQLITE_IOERR_DELETE_NOENT: return \"BE_SQLITE_IOERR_DELETE_NOENT\";\r\n case DbResult.BE_SQLITE_ERROR_FileExists: return \"File Exists\";\r\n case DbResult.BE_SQLITE_ERROR_AlreadyOpen: return \"Already Open\";\r\n case DbResult.BE_SQLITE_ERROR_NoPropertyTable: return \"No Property Table\";\r\n case DbResult.BE_SQLITE_ERROR_FileNotFound: return \"File Not Found\";\r\n case DbResult.BE_SQLITE_ERROR_NoTxnActive: return \"No Txn Active\";\r\n case DbResult.BE_SQLITE_ERROR_BadDbProfile: return \"Bad Db Profile\";\r\n case DbResult.BE_SQLITE_ERROR_InvalidProfileVersion: return \"Invalid Profile Version\";\r\n case DbResult.BE_SQLITE_ERROR_ProfileUpgradeFailed: return \"Profile Upgrade Failed\";\r\n case DbResult.BE_SQLITE_ERROR_ProfileTooOldForReadWrite: return \"Profile Too Old For ReadWrite\";\r\n case DbResult.BE_SQLITE_ERROR_ProfileTooOld: return \"Profile Too Old\";\r\n case DbResult.BE_SQLITE_ERROR_ProfileTooNewForReadWrite: return \"Profile Too New For ReadWrite\";\r\n case DbResult.BE_SQLITE_ERROR_ProfileTooNew: return \"Profile Too New\";\r\n case DbResult.BE_SQLITE_ERROR_ChangeTrackError: return \"ChangeTrack Error\";\r\n case DbResult.BE_SQLITE_ERROR_InvalidChangeSetVersion: return \"Invalid ChangeSet Version\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaUpgradeRequired: return \"Schema Upgrade Required\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaTooNew: return \"Schema Too New\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaTooOld: return \"Schema Too Old\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaLockFailed: return \"Schema Lock Failed\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaUpgradeFailed: return \"Schema Upgrade Failed\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaImportFailed: return \"Schema Import Failed\";\r\n case DbResult.BE_SQLITE_ERROR_CouldNotAcquireLocksOrCodes: return \"Could Not Acquire Locks Or Codes\";\r\n case DbResult.BE_SQLITE_ERROR_SchemaUpgradeRecommended: return \"Recommended that the schemas found in the database be upgraded\";\r\n case DbResult.BE_SQLITE_LOCKED_SHAREDCACHE: return \"BE_SQLITE_LOCKED_SHAREDCACHE\";\r\n case DbResult.BE_SQLITE_BUSY_RECOVERY: return \"BE_SQLITE_BUSY_RECOVERY\";\r\n case DbResult.BE_SQLITE_CANTOPEN_NOTEMPDIR: return \"SQLite No Temp Dir\";\r\n case DbResult.BE_SQLITE_CANTOPEN_ISDIR: return \"BE_SQLITE_CANTOPEN_ISDIR\";\r\n case DbResult.BE_SQLITE_CANTOPEN_FULLPATH: return \"BE_SQLITE_CANTOPEN_FULLPATH\";\r\n case DbResult.BE_SQLITE_CORRUPT_VTAB: return \"BE_SQLITE_CORRUPT_VTAB\";\r\n case DbResult.BE_SQLITE_READONLY_RECOVERY: return \"BE_SQLITE_READONLY_RECOVERY\";\r\n case DbResult.BE_SQLITE_READONLY_CANTLOCK: return \"BE_SQLITE_READONLY_CANTLOCK\";\r\n case DbResult.BE_SQLITE_READONLY_ROLLBACK: return \"BE_SQLITE_READONLY_ROLLBACK\";\r\n case DbResult.BE_SQLITE_ABORT_ROLLBACK: return \"BE_SQLITE_ABORT_ROLLBACK\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_CHECK: return \"BE_SQLITE_CONSTRAINT_CHECK\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_COMMITHOOK: return \"CommitHook Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_FOREIGNKEY: return \"Foreign Key Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_FUNCTION: return \"Function Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_NOTNULL: return \"NotNull Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_PRIMARYKEY: return \"Primary Key Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_TRIGGER: return \"Trigger Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_UNIQUE: return \"Unique Constraint Error\";\r\n case DbResult.BE_SQLITE_CONSTRAINT_VTAB: return \"VTable Constraint Error\";\r\n case BentleyStatus.ERROR: return \"Error\";\r\n case BriefcaseStatus.CannotAcquire: return \"CannotAcquire\";\r\n case BriefcaseStatus.CannotDownload: return \"CannotDownload\";\r\n case BriefcaseStatus.CannotCopy: return \"CannotCopy\";\r\n case BriefcaseStatus.CannotDelete: return \"CannotDelete\";\r\n case BriefcaseStatus.VersionNotFound: return \"VersionNotFound\";\r\n case BriefcaseStatus.DownloadCancelled: return \"DownloadCancelled\";\r\n case BriefcaseStatus.ContainsDeletedChangeSets: return \"ContainsDeletedChangeSets\";\r\n case RpcInterfaceStatus.IncompatibleVersion: return \"RpcInterfaceStatus.IncompatibleVersion\";\r\n case ChangeSetStatus.ApplyError: return \"Error applying a change set\";\r\n case ChangeSetStatus.ChangeTrackingNotEnabled: return \"Change tracking has not been enabled. The ChangeSet API mandates this\";\r\n case ChangeSetStatus.CorruptedChangeStream: return \"Contents of the change stream are corrupted and does not match the ChangeSet\";\r\n case ChangeSetStatus.FileNotFound: return \"File containing the changes was not found\";\r\n case ChangeSetStatus.FileWriteError: return \"Error writing the contents of the change set to the backing change stream file\";\r\n case ChangeSetStatus.HasLocalChanges: return \"Cannot perform the operation since the Db has local changes\";\r\n case ChangeSetStatus.HasUncommittedChanges: return \"Cannot perform the operation since current transaction has uncommitted changes\";\r\n case ChangeSetStatus.InvalidId: return \"Invalid ChangeSet Id\";\r\n case ChangeSetStatus.InvalidVersion: return \"Invalid version of the change set\";\r\n case ChangeSetStatus.InDynamicTransaction: return \"Cannot perform the operation since system is in the middle of a dynamic transaction\";\r\n case ChangeSetStatus.IsCreatingChangeSet: return \"Cannot perform operation since system is in the middle of a creating a change set\";\r\n case ChangeSetStatus.IsNotCreatingChangeSet: return \"Cannot perform operation since the system is not creating a change set\";\r\n case ChangeSetStatus.MergePropagationError: return \"Error propagating the changes after the merge\";\r\n case ChangeSetStatus.NothingToMerge: return \"No change sets to merge\";\r\n case ChangeSetStatus.NoTransactions: return \"No transactions are available to create a change set\";\r\n case ChangeSetStatus.ParentMismatch: return \"Parent change set of the Db does not match the parent id of the change set\";\r\n case ChangeSetStatus.SQLiteError: return \"Error performing a SQLite operation on the Db\";\r\n case ChangeSetStatus.WrongDgnDb: return \"ChangeSet originated in a different Db\";\r\n case ChangeSetStatus.CouldNotOpenDgnDb: return \"Could not open the DgnDb to merge change set\";\r\n case ChangeSetStatus.MergeSchemaChangesOnOpen: return \"Cannot merge changes in in an open DgnDb. Close the DgnDb, and process the operation when it is opened\";\r\n case ChangeSetStatus.ReverseOrReinstateSchemaChanges: return \"Cannot reverse or reinstate schema changes.\";\r\n case ChangeSetStatus.ProcessSchemaChangesOnOpen: return \"Cannot process changes schema changes in an open DgnDb. Close the DgnDb, and process the operation when it is opened\";\r\n case ChangeSetStatus.CannotMergeIntoReadonly: return \"Cannot merge changes into a Readonly DgnDb\";\r\n case ChangeSetStatus.CannotMergeIntoMaster: return \"Cannot merge changes into a Master DgnDb\";\r\n case ChangeSetStatus.CannotMergeIntoReversed: return \"Cannot merge changes into a DgnDb that has reversed change sets\";\r\n case RepositoryStatus.ServerUnavailable: return \"ServerUnavailable\";\r\n case RepositoryStatus.LockAlreadyHeld: return \"LockAlreadyHeld\";\r\n case RepositoryStatus.SyncError: return \"SyncError\";\r\n case RepositoryStatus.InvalidResponse: return \"InvalidResponse\";\r\n case RepositoryStatus.PendingTransactions: return \"PendingTransactions\";\r\n case RepositoryStatus.LockUsed: return \"LockUsed\";\r\n case RepositoryStatus.CannotCreateChangeSet: return \"CannotCreateChangeSet\";\r\n case RepositoryStatus.InvalidRequest: return \"InvalidRequest\";\r\n case RepositoryStatus.ChangeSetRequired: return \"ChangeSetRequired\";\r\n case RepositoryStatus.CodeUnavailable: return \"CodeUnavailable\";\r\n case RepositoryStatus.CodeNotReserved: return \"CodeNotReserved\";\r\n case RepositoryStatus.CodeUsed: return \"CodeUsed\";\r\n case RepositoryStatus.LockNotHeld: return \"LockNotHeld\";\r\n case RepositoryStatus.RepositoryIsLocked: return \"RepositoryIsLocked\";\r\n case RepositoryStatus.ChannelConstraintViolation: return \"ChannelConstraintViolation\";\r\n case HttpStatus.Info: return \"HTTP Info\";\r\n case HttpStatus.Redirection: return \"HTTP Redirection\";\r\n case HttpStatus.ClientError: return \"HTTP Client error\";\r\n case HttpStatus.ServerError: return \"HTTP Server error\";\r\n case IModelHubStatus.Unknown: return \"Unknown error\";\r\n case IModelHubStatus.MissingRequiredProperties: return \"Missing required properties\";\r\n case IModelHubStatus.InvalidPropertiesValues: return \"Invalid properties values\";\r\n case IModelHubStatus.UserDoesNotHavePermission: return \"User does not have permission\";\r\n case IModelHubStatus.UserDoesNotHaveAccess: return \"User does not have access\";\r\n case IModelHubStatus.InvalidBriefcase: return \"Invalid briefcase\";\r\n case IModelHubStatus.BriefcaseDoesNotExist: return \"Briefcase does not exist\";\r\n case IModelHubStatus.BriefcaseDoesNotBelongToUser: return \"Briefcase does not belong to user\";\r\n case IModelHubStatus.AnotherUserPushing: return \"Another user pushing\";\r\n case IModelHubStatus.ChangeSetAlreadyExists: return \"ChangeSet already exists\";\r\n case IModelHubStatus.ChangeSetDoesNotExist: return \"ChangeSet does not exist\";\r\n case IModelHubStatus.FileIsNotUploaded: return \"File is not uploaded\";\r\n case IModelHubStatus.iModelIsNotInitialized: return \"iModel is not initialized\";\r\n case IModelHubStatus.ChangeSetPointsToBadSeed: return \"ChangeSet points to a bad seed file\";\r\n case IModelHubStatus.OperationFailed: return \"iModelHub operation has failed\";\r\n case IModelHubStatus.PullIsRequired: return \"Pull is required\";\r\n case IModelHubStatus.MaximumNumberOfBriefcasesPerUser: return \"Limit of briefcases per user was reached\";\r\n case IModelHubStatus.MaximumNumberOfBriefcasesPerUserPerMinute: return \"Limit of briefcases per user per minute was reached\";\r\n case IModelHubStatus.DatabaseTemporarilyLocked: return \"Database is temporarily locked\";\r\n case IModelHubStatus.iModelIsLocked: return \"iModel is locked\";\r\n case IModelHubStatus.CodesExist: return \"Code already exists\";\r\n case IModelHubStatus.LocksExist: return \"Lock already exists\";\r\n case IModelHubStatus.iModelAlreadyExists: return \"iModel already exists\";\r\n case IModelHubStatus.iModelDoesNotExist: return \"iModel does not exist\";\r\n case IModelHubStatus.LockDoesNotExist: return \"Lock does not exist\";\r\n case IModelHubStatus.LockChunkDoesNotExist: return \"Lock chunk does not exist\";\r\n case IModelHubStatus.LockOwnedByAnotherBriefcase: return \"Lock is owned by another briefcase\";\r\n case IModelHubStatus.CodeStateInvalid: return \"Code state is invalid\";\r\n case IModelHubStatus.CodeReservedByAnotherBriefcase: return \"Code is reserved by another briefcase\";\r\n case IModelHubStatus.CodeDoesNotExist: return \"Code does not exist\";\r\n case IModelHubStatus.FileDoesNotExist: return \"File does not exist\";\r\n case IModelHubStatus.FileAlreadyExists: return \"File already exists\";\r\n case IModelHubStatus.EventTypeDoesNotExist: return \"Event type does not exist\";\r\n case IModelHubStatus.EventSubscriptionDoesNotExist: return \"Event subscription does not exist\";\r\n case IModelHubStatus.EventSubscriptionAlreadyExists: return \"Event subscription already exists\";\r\n case IModelHubStatus.ITwinIdIsNotSpecified: return \"ITwin Id is not specified\";\r\n case IModelHubStatus.FailedToGetITwinPermissions: return \"Failed to get iTwin permissions\";\r\n case IModelHubStatus.FailedToGetITwinMembers: return \"Failed to get iTwin members\";\r\n case IModelHubStatus.FailedToGetAssetPermissions: return \"Failed to get asset permissions\";\r\n case IModelHubStatus.FailedToGetAssetMembers: return \"Failed to get asset members\";\r\n case IModelHubStatus.ChangeSetAlreadyHasVersion: return \"ChangeSet already has version\";\r\n case IModelHubStatus.VersionAlreadyExists: return \"Version already exists\";\r\n case IModelHubStatus.JobSchedulingFailed: return \"Failed to schedule a background job\";\r\n case IModelHubStatus.ConflictsAggregate: return \"Codes or locks are owned by another briefcase\";\r\n case IModelHubStatus.FailedToGetITwinById: return \"Failed to query iTwin by its id\";\r\n case IModelHubStatus.DatabaseOperationFailed: return \"Database operation has failed\";\r\n case IModelHubStatus.ITwinDoesNotExist: return \"ITwin does not exist\";\r\n case IModelHubStatus.UndefinedArgumentError: return \"Undefined argument\";\r\n case IModelHubStatus.InvalidArgumentError: return \"Invalid argument\";\r\n case IModelHubStatus.MissingDownloadUrlError: return \"Missing download url\";\r\n case IModelHubStatus.NotSupportedInBrowser: return \"Not supported in browser\";\r\n case IModelHubStatus.FileHandlerNotSet: return \"File handler is not set\";\r\n case IModelHubStatus.FileNotFound: return \"File not found\";\r\n case AuthStatus.Error: return \"Authorization error\";\r\n case GeoServiceStatus.NoGeoLocation: return \"No GeoLocation\";\r\n case GeoServiceStatus.OutOfUsefulRange: return \"Out of useful range\";\r\n case GeoServiceStatus.OutOfMathematicalDomain: return \"Out of mathematical domain\";\r\n case GeoServiceStatus.NoDatumConverter: return \"No datum converter\";\r\n case GeoServiceStatus.VerticalDatumConvertError: return \"Vertical datum convert error\";\r\n case GeoServiceStatus.CSMapError: return \"CSMap error\";\r\n case GeoServiceStatus.Pending: return \"Pending\";\r\n case IModelStatus.Success:\r\n case DbResult.BE_SQLITE_OK:\r\n case DbResult.BE_SQLITE_ROW:\r\n case DbResult.BE_SQLITE_DONE:\r\n case BentleyStatus.SUCCESS:\r\n return \"Success\";\r\n\r\n default:\r\n return `Error (${this.errorNumber})`;\r\n }\r\n }\r\n\r\n /** Use run-time type checking to safely get a useful string summary of an unknown error value, or `\"\"` if none exists.\r\n * @note It's recommended to use this function in `catch` clauses, where a caught value cannot be assumed to be `instanceof Error`\r\n * @public\r\n */\r\n public static getErrorMessage(error: unknown): string {\r\n if (typeof error === \"string\")\r\n return error;\r\n\r\n if (error instanceof Error)\r\n return error.toString();\r\n\r\n if (isObject(error)) {\r\n if (typeof error.message === \"string\")\r\n return error.message;\r\n\r\n if (typeof error.msg === \"string\")\r\n return error.msg;\r\n\r\n if (error.toString() !== \"[object Object]\")\r\n return error.toString();\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n /** Use run-time type checking to safely get the call stack of an unknown error value, if possible.\r\n * @note It's recommended to use this function in `catch` clauses, where a caught value cannot be assumed to be `instanceof Error`\r\n * @public\r\n */\r\n public static getErrorStack(error: unknown): string | undefined {\r\n if (isObject(error) && typeof error.stack === \"string\")\r\n return error.stack;\r\n\r\n return undefined;\r\n }\r\n\r\n /** Use run-time type checking to safely get the metadata with an unknown error value, if possible.\r\n * @note It's recommended to use this function in `catch` clauses, where a caught value cannot be assumed to be `instanceof BentleyError`\r\n * @see [[BentleyError.getMetaData]]\r\n * @public\r\n */\r\n public static getErrorMetadata(error: unknown): object | undefined {\r\n if (isObject(error) && typeof error.getMetaData === \"function\") {\r\n const metadata = error.getMetaData();\r\n if (typeof metadata === \"object\" && metadata !== null)\r\n return metadata;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Returns a new `ErrorProps` object representing an unknown error value. Useful for logging or wrapping/re-throwing caught errors.\r\n * @note Unlike `Error` objects (which lose messages and call stacks when serialized to JSON), objects\r\n * returned by this are plain old JavaScript objects, and can be easily logged/serialized to JSON.\r\n * @public\r\n */\r\n public static getErrorProps(error: unknown): ErrorProps {\r\n const serialized: ErrorProps = {\r\n message: BentleyError.getErrorMessage(error),\r\n };\r\n\r\n const stack = BentleyError.getErrorStack(error);\r\n if (stack)\r\n serialized.stack = stack;\r\n\r\n const metadata = BentleyError.getErrorMetadata(error);\r\n if (metadata)\r\n serialized.metadata = metadata;\r\n\r\n return serialized;\r\n }\r\n}\r\n\r\n"]}
@@ -16,15 +16,43 @@ export declare class ByteStream {
16
16
  /** Construct a new ByteStream with the read position set to the beginning.
17
17
  * @param buffer The underlying buffer from which data is to be extracted.
18
18
  * @param subView If defined, specifies the subset of the underlying buffer's data to use.
19
+ * This constructor is subject to two common mistakes:
20
+ *
21
+ * 1. Given `bytes: Uint8Array`, `new ByteStream(bytes)` will compile but at run-time will produce an error asserting that
22
+ * the DataView constructor requires an ArrayBuffer. The correct usage is `new ByteStream(bytes.buffer)`.
23
+ * 2. Given `bytes: Uint8Array`, `new ByteStream(bytes.buffer)` creates a stream for the entire range of bytes represented by the underlying
24
+ * ArrayBuffer. If `bytes` represents only a **sub-range** of the underlying buffer's data, the results will be unexpected unless the optional `subView`
25
+ * argument is supplied, with correct offset and length.
26
+ *
27
+ * For both of the above reasons, prefer to use [[fromUint8Array]].
28
+ * @deprecated Use [[fromUint8Array]] or [[fromArrayBuffer]].
19
29
  */
20
30
  constructor(buffer: ArrayBuffer | SharedArrayBuffer, subView?: {
21
31
  byteOffset: number;
22
32
  byteLength: number;
23
33
  });
34
+ /** Construct a new ByteStream for the range of bytes represented by `bytes`, which may be a subset of the range of bytes
35
+ * represented by the underlying ArrayBuffer. The read position will be set to the beginning of the range of bytes.
36
+ */
37
+ static fromUint8Array(bytes: Uint8Array): ByteStream;
38
+ /** Construct a new ByteStream with the read position set to the beginning.
39
+ * @param buffer The underlying buffer from which data is to be extracted.
40
+ * @param subView If defined, specifies the subset of the underlying buffer's data to use.
41
+ */
42
+ static fromArrayBuffer(buffer: ArrayBuffer | SharedArrayBuffer, subView?: {
43
+ byteOffset: number;
44
+ byteLength: number;
45
+ }): ByteStream;
24
46
  /** The number of bytes in this stream */
25
47
  get length(): number;
26
- /** Returns true if the current read position has been advanced past the end of the stream */
48
+ /** Returns true if the current read position has been advanced past the end of the stream. This generally indicates that an attempt was made to read more data than is available.
49
+ * @see [[isAtTheEnd]]
50
+ */
27
51
  get isPastTheEnd(): boolean;
52
+ /** Returns true if the current read position has advanced precisely to the end of the stream, indicating all of the data has been consumed.
53
+ * @see [[isPastTheEnd]].
54
+ */
55
+ get isAtTheEnd(): boolean;
28
56
  /** The current read position as an index into the stream of bytes. */
29
57
  get curPos(): number;
30
58
  set curPos(pos: number);
@@ -48,6 +76,8 @@ export declare class ByteStream {
48
76
  get nextFloat64(): number;
49
77
  /** Read an unsigned 64-bit integer from the current read position, advance by 8 bytes, and return the 64-bit value as an Id64String. */
50
78
  get nextId64(): Id64String;
79
+ /** Read an unsigned 24-bit integer from the current read position and advance by 3 bytes. */
80
+ get nextUint24(): number;
51
81
  /** Read the specified number of bytes beginning at the current read position into a Uint8Array and advance by the specified number of byte.
52
82
  * @param numBytes The number of bytes to read.
53
83
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ByteStream.d.ts","sourceRoot":"","sources":["../../src/ByteStream.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAQ,UAAU,EAAE,MAAM,MAAM,CAAC;AAExC;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,OAAO,CAAa;IAE5B;;;OAGG;gBACgB,MAAM,EAAE,WAAW,GAAG,iBAAiB,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAUhH,yCAAyC;IACzC,IAAW,MAAM,IAAI,MAAM,CAAkC;IAC7D,6FAA6F;IAC7F,IAAW,YAAY,IAAI,OAAO,CAAsC;IAExE,sEAAsE;IACtE,IAAW,MAAM,IAAI,MAAM,CAAyB;IACpD,IAAW,MAAM,CAAC,GAAG,EAAE,MAAM,EAAqD;IAElF,sEAAsE;IAC/D,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IACzC,6EAA6E;IACtE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IACxC,sEAAsE;IAC/D,KAAK,IAAI,IAAI;IAEpB,0FAA0F;IAC1F,IAAW,SAAS,IAAI,MAAM,CAA+D;IAC7F,6FAA6F;IAC7F,IAAW,UAAU,IAAI,MAAM,CAAsE;IACrG,6FAA6F;IAC7F,IAAW,UAAU,IAAI,MAAM,CAAsE;IACrG,0FAA0F;IAC1F,IAAW,SAAS,IAAI,MAAM,CAAqE;IACnG,iGAAiG;IACjG,IAAW,WAAW,IAAI,MAAM,CAAuE;IACvG,iGAAiG;IACjG,IAAW,WAAW,IAAI,MAAM,CAAuE;IACvG,wIAAwI;IACxI,IAAW,QAAQ,IAAI,UAAU,CAAkE;IAEnG;;OAEG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAM9C,qGAAqG;IAC9F,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU;IAI/D,0HAA0H;IACnH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAOnD,0CAA0C;IAC1C,IAAW,WAAW,IAAI,WAAW,GAAG,iBAAiB,CAA8B;IAEvF,OAAO,CAAC,IAAI;CAKb"}
1
+ {"version":3,"file":"ByteStream.d.ts","sourceRoot":"","sources":["../../src/ByteStream.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAQ,UAAU,EAAE,MAAM,MAAM,CAAC;AAExC;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,OAAO,CAAa;IAE5B;;;;;;;;;;;;;OAaG;gBACgB,MAAM,EAAE,WAAW,GAAG,iBAAiB,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAUhH;;OAEG;WACW,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAK3D;;;OAGG;WACW,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU;IAIxI,yCAAyC;IACzC,IAAW,MAAM,IAAI,MAAM,CAAkC;IAC7D;;OAEG;IACH,IAAW,YAAY,IAAI,OAAO,CAAsC;IACxE;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAAwC;IAExE,sEAAsE;IACtE,IAAW,MAAM,IAAI,MAAM,CAAyB;IACpD,IAAW,MAAM,CAAC,GAAG,EAAE,MAAM,EAAqD;IAElF,sEAAsE;IAC/D,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IACzC,6EAA6E;IACtE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IACxC,sEAAsE;IAC/D,KAAK,IAAI,IAAI;IAEpB,0FAA0F;IAC1F,IAAW,SAAS,IAAI,MAAM,CAA+D;IAC7F,6FAA6F;IAC7F,IAAW,UAAU,IAAI,MAAM,CAAsE;IACrG,6FAA6F;IAC7F,IAAW,UAAU,IAAI,MAAM,CAAsE;IACrG,0FAA0F;IAC1F,IAAW,SAAS,IAAI,MAAM,CAAqE;IACnG,iGAAiG;IACjG,IAAW,WAAW,IAAI,MAAM,CAAuE;IACvG,iGAAiG;IACjG,IAAW,WAAW,IAAI,MAAM,CAAuE;IACvG,wIAAwI;IACxI,IAAW,QAAQ,IAAI,UAAU,CAAkE;IACnG,6FAA6F;IAC7F,IAAW,UAAU,IAAI,MAAM,CAA4E;IAE3G;;OAEG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAM9C,qGAAqG;IAC9F,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU;IAI/D,0HAA0H;IACnH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAOnD,0CAA0C;IAC1C,IAAW,WAAW,IAAI,WAAW,GAAG,iBAAiB,CAA8B;IAEvF,OAAO,CAAC,IAAI;CAKb"}
@@ -21,6 +21,16 @@ class ByteStream {
21
21
  /** Construct a new ByteStream with the read position set to the beginning.
22
22
  * @param buffer The underlying buffer from which data is to be extracted.
23
23
  * @param subView If defined, specifies the subset of the underlying buffer's data to use.
24
+ * This constructor is subject to two common mistakes:
25
+ *
26
+ * 1. Given `bytes: Uint8Array`, `new ByteStream(bytes)` will compile but at run-time will produce an error asserting that
27
+ * the DataView constructor requires an ArrayBuffer. The correct usage is `new ByteStream(bytes.buffer)`.
28
+ * 2. Given `bytes: Uint8Array`, `new ByteStream(bytes.buffer)` creates a stream for the entire range of bytes represented by the underlying
29
+ * ArrayBuffer. If `bytes` represents only a **sub-range** of the underlying buffer's data, the results will be unexpected unless the optional `subView`
30
+ * argument is supplied, with correct offset and length.
31
+ *
32
+ * For both of the above reasons, prefer to use [[fromUint8Array]].
33
+ * @deprecated Use [[fromUint8Array]] or [[fromArrayBuffer]].
24
34
  */
25
35
  constructor(buffer, subView) {
26
36
  this._curPos = 0;
@@ -33,10 +43,30 @@ class ByteStream {
33
43
  this._byteOffset = 0;
34
44
  }
35
45
  }
46
+ /** Construct a new ByteStream for the range of bytes represented by `bytes`, which may be a subset of the range of bytes
47
+ * represented by the underlying ArrayBuffer. The read position will be set to the beginning of the range of bytes.
48
+ */
49
+ static fromUint8Array(bytes) {
50
+ const { byteOffset, byteLength } = bytes;
51
+ return new ByteStream(bytes.buffer, { byteOffset, byteLength }); // eslint-disable-line deprecation/deprecation
52
+ }
53
+ /** Construct a new ByteStream with the read position set to the beginning.
54
+ * @param buffer The underlying buffer from which data is to be extracted.
55
+ * @param subView If defined, specifies the subset of the underlying buffer's data to use.
56
+ */
57
+ static fromArrayBuffer(buffer, subView) {
58
+ return new ByteStream(buffer, subView); // eslint-disable-line deprecation/deprecation
59
+ }
36
60
  /** The number of bytes in this stream */
37
61
  get length() { return this._view.byteLength; }
38
- /** Returns true if the current read position has been advanced past the end of the stream */
62
+ /** Returns true if the current read position has been advanced past the end of the stream. This generally indicates that an attempt was made to read more data than is available.
63
+ * @see [[isAtTheEnd]]
64
+ */
39
65
  get isPastTheEnd() { return this.curPos > this.length; }
66
+ /** Returns true if the current read position has advanced precisely to the end of the stream, indicating all of the data has been consumed.
67
+ * @see [[isPastTheEnd]].
68
+ */
69
+ get isAtTheEnd() { return this.curPos === this.length; }
40
70
  /** The current read position as an index into the stream of bytes. */
41
71
  get curPos() { return this._curPos; }
42
72
  set curPos(pos) { this._curPos = pos; (0, Assert_1.assert)(!this.isPastTheEnd); }
@@ -61,6 +91,8 @@ class ByteStream {
61
91
  get nextFloat64() { return this.read(8, (view) => view.getFloat64(this.curPos, true)); }
62
92
  /** Read an unsigned 64-bit integer from the current read position, advance by 8 bytes, and return the 64-bit value as an Id64String. */
63
93
  get nextId64() { return Id_1.Id64.fromUint32Pair(this.nextUint32, this.nextUint32); }
94
+ /** Read an unsigned 24-bit integer from the current read position and advance by 3 bytes. */
95
+ get nextUint24() { return this.nextUint8 | (this.nextUint8 << 8) | (this.nextUint8 << 16); }
64
96
  /** Read the specified number of bytes beginning at the current read position into a Uint8Array and advance by the specified number of byte.
65
97
  * @param numBytes The number of bytes to read.
66
98
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ByteStream.js","sourceRoot":"","sources":["../../src/ByteStream.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\nimport { assert } from \"./Assert\";\r\nimport { Id64, Id64String } from \"./Id\";\r\n\r\n/** Allows the contents of an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)\r\n * to be consumed sequentially using methods to extract\r\n * data of a particular type from the bytes beginning at the current read position.\r\n * Methods and properties beginning with 'next' consume data at the current read position and advance it\r\n * by the size of the data read. The read position can also be directly adjusted by the caller.\r\n * @public\r\n */\r\nexport class ByteStream {\r\n private readonly _view: DataView;\r\n private readonly _byteOffset: number;\r\n private _curPos: number = 0;\r\n\r\n /** Construct a new ByteStream with the read position set to the beginning.\r\n * @param buffer The underlying buffer from which data is to be extracted.\r\n * @param subView If defined, specifies the subset of the underlying buffer's data to use.\r\n */\r\n public constructor(buffer: ArrayBuffer | SharedArrayBuffer, subView?: { byteOffset: number, byteLength: number }) {\r\n if (undefined !== subView) {\r\n this._view = new DataView(buffer, subView.byteOffset, subView.byteLength);\r\n this._byteOffset = subView.byteOffset;\r\n } else {\r\n this._view = new DataView(buffer);\r\n this._byteOffset = 0;\r\n }\r\n }\r\n\r\n /** The number of bytes in this stream */\r\n public get length(): number { return this._view.byteLength; }\r\n /** Returns true if the current read position has been advanced past the end of the stream */\r\n public get isPastTheEnd(): boolean { return this.curPos > this.length; }\r\n\r\n /** The current read position as an index into the stream of bytes. */\r\n public get curPos(): number { return this._curPos; }\r\n public set curPos(pos: number) { this._curPos = pos; assert(!this.isPastTheEnd); }\r\n\r\n /** Adds the specified number of bytes to the current read position */\r\n public advance(numBytes: number): boolean { this.curPos = (this.curPos + numBytes); return !this.isPastTheEnd; }\r\n /** Subtracts the specified number of bytes from the current read position */\r\n public rewind(numBytes: number): boolean { if (this.curPos - numBytes < 0) return false; this.curPos = this.curPos - numBytes; return true; }\r\n /** Resets the current read position to the beginning of the stream */\r\n public reset(): void { this.curPos = 0; }\r\n\r\n /** Read a unsigned 8-bit integer from the current read position and advance by 1 byte. */\r\n public get nextUint8(): number { return this.read(1, (view) => view.getUint8(this.curPos)); }\r\n /** Read an unsigned 16-bit integer from the current read position and advance by 2 bytes. */\r\n public get nextUint16(): number { return this.read(2, (view) => view.getUint16(this.curPos, true)); }\r\n /** Read an unsigned 32-bit integer from the current read position and advance by 4 bytes. */\r\n public get nextUint32(): number { return this.read(4, (view) => view.getUint32(this.curPos, true)); }\r\n /** Read a signed 32-bit integer from the current read position and advance by 4 bytes. */\r\n public get nextInt32(): number { return this.read(4, (view) => view.getInt32(this.curPos, true)); }\r\n /** Read a 32-bit floating point number from the current read position and advance by 4 bytes. */\r\n public get nextFloat32(): number { return this.read(4, (view) => view.getFloat32(this.curPos, true)); }\r\n /** Read a 64-bit floating point number from the current read position and advance by 8 bytes. */\r\n public get nextFloat64(): number { return this.read(8, (view) => view.getFloat64(this.curPos, true)); }\r\n /** Read an unsigned 64-bit integer from the current read position, advance by 8 bytes, and return the 64-bit value as an Id64String. */\r\n public get nextId64(): Id64String { return Id64.fromUint32Pair(this.nextUint32, this.nextUint32); }\r\n\r\n /** Read the specified number of bytes beginning at the current read position into a Uint8Array and advance by the specified number of byte.\r\n * @param numBytes The number of bytes to read.\r\n */\r\n public nextBytes(numBytes: number): Uint8Array {\r\n const bytes = new Uint8Array(this.arrayBuffer, this.curPos + this._byteOffset, numBytes);\r\n this.advance(numBytes);\r\n return bytes;\r\n }\r\n\r\n /** Read the specified number of bytes at the specified offset without changing the read position. */\r\n public readBytes(readPos: number, numBytes: number): Uint8Array {\r\n return new Uint8Array(this.arrayBuffer, readPos + this._byteOffset, numBytes);\r\n }\r\n\r\n /** Read the specified number of unsigned 32-bit integers from the current read position and advance the read position. */\r\n public nextUint32s(numUint32s: number): Uint32Array {\r\n const numBytes = numUint32s * 4;\r\n const uint32s = new Uint32Array(this.arrayBuffer, this.curPos + this._byteOffset, numUint32s);\r\n this.advance(numBytes);\r\n return uint32s;\r\n }\r\n\r\n /** Returns the underlying array buffer */\r\n public get arrayBuffer(): ArrayBuffer | SharedArrayBuffer { return this._view.buffer; }\r\n\r\n private read(numBytes: number, read: (view: DataView) => number) {\r\n const result = read(this._view);\r\n this.advance(numBytes);\r\n return result;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ByteStream.js","sourceRoot":"","sources":["../../src/ByteStream.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\nimport { assert } from \"./Assert\";\r\nimport { Id64, Id64String } from \"./Id\";\r\n\r\n/** Allows the contents of an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)\r\n * to be consumed sequentially using methods to extract\r\n * data of a particular type from the bytes beginning at the current read position.\r\n * Methods and properties beginning with 'next' consume data at the current read position and advance it\r\n * by the size of the data read. The read position can also be directly adjusted by the caller.\r\n * @public\r\n */\r\nexport class ByteStream {\r\n private readonly _view: DataView;\r\n private readonly _byteOffset: number;\r\n private _curPos: number = 0;\r\n\r\n /** Construct a new ByteStream with the read position set to the beginning.\r\n * @param buffer The underlying buffer from which data is to be extracted.\r\n * @param subView If defined, specifies the subset of the underlying buffer's data to use.\r\n * This constructor is subject to two common mistakes:\r\n *\r\n * 1. Given `bytes: Uint8Array`, `new ByteStream(bytes)` will compile but at run-time will produce an error asserting that\r\n * the DataView constructor requires an ArrayBuffer. The correct usage is `new ByteStream(bytes.buffer)`.\r\n * 2. Given `bytes: Uint8Array`, `new ByteStream(bytes.buffer)` creates a stream for the entire range of bytes represented by the underlying\r\n * ArrayBuffer. If `bytes` represents only a **sub-range** of the underlying buffer's data, the results will be unexpected unless the optional `subView`\r\n * argument is supplied, with correct offset and length.\r\n *\r\n * For both of the above reasons, prefer to use [[fromUint8Array]].\r\n * @deprecated Use [[fromUint8Array]] or [[fromArrayBuffer]].\r\n */\r\n public constructor(buffer: ArrayBuffer | SharedArrayBuffer, subView?: { byteOffset: number, byteLength: number }) {\r\n if (undefined !== subView) {\r\n this._view = new DataView(buffer, subView.byteOffset, subView.byteLength);\r\n this._byteOffset = subView.byteOffset;\r\n } else {\r\n this._view = new DataView(buffer);\r\n this._byteOffset = 0;\r\n }\r\n }\r\n\r\n /** Construct a new ByteStream for the range of bytes represented by `bytes`, which may be a subset of the range of bytes\r\n * represented by the underlying ArrayBuffer. The read position will be set to the beginning of the range of bytes.\r\n */\r\n public static fromUint8Array(bytes: Uint8Array): ByteStream {\r\n const { byteOffset, byteLength } = bytes;\r\n return new ByteStream(bytes.buffer, { byteOffset, byteLength }); // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n /** Construct a new ByteStream with the read position set to the beginning.\r\n * @param buffer The underlying buffer from which data is to be extracted.\r\n * @param subView If defined, specifies the subset of the underlying buffer's data to use.\r\n */\r\n public static fromArrayBuffer(buffer: ArrayBuffer | SharedArrayBuffer, subView?: { byteOffset: number, byteLength: number }): ByteStream {\r\n return new ByteStream(buffer, subView); // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n /** The number of bytes in this stream */\r\n public get length(): number { return this._view.byteLength; }\r\n /** Returns true if the current read position has been advanced past the end of the stream. This generally indicates that an attempt was made to read more data than is available.\r\n * @see [[isAtTheEnd]]\r\n */\r\n public get isPastTheEnd(): boolean { return this.curPos > this.length; }\r\n /** Returns true if the current read position has advanced precisely to the end of the stream, indicating all of the data has been consumed.\r\n * @see [[isPastTheEnd]].\r\n */\r\n public get isAtTheEnd(): boolean { return this.curPos === this.length; }\r\n\r\n /** The current read position as an index into the stream of bytes. */\r\n public get curPos(): number { return this._curPos; }\r\n public set curPos(pos: number) { this._curPos = pos; assert(!this.isPastTheEnd); }\r\n\r\n /** Adds the specified number of bytes to the current read position */\r\n public advance(numBytes: number): boolean { this.curPos = (this.curPos + numBytes); return !this.isPastTheEnd; }\r\n /** Subtracts the specified number of bytes from the current read position */\r\n public rewind(numBytes: number): boolean { if (this.curPos - numBytes < 0) return false; this.curPos = this.curPos - numBytes; return true; }\r\n /** Resets the current read position to the beginning of the stream */\r\n public reset(): void { this.curPos = 0; }\r\n\r\n /** Read a unsigned 8-bit integer from the current read position and advance by 1 byte. */\r\n public get nextUint8(): number { return this.read(1, (view) => view.getUint8(this.curPos)); }\r\n /** Read an unsigned 16-bit integer from the current read position and advance by 2 bytes. */\r\n public get nextUint16(): number { return this.read(2, (view) => view.getUint16(this.curPos, true)); }\r\n /** Read an unsigned 32-bit integer from the current read position and advance by 4 bytes. */\r\n public get nextUint32(): number { return this.read(4, (view) => view.getUint32(this.curPos, true)); }\r\n /** Read a signed 32-bit integer from the current read position and advance by 4 bytes. */\r\n public get nextInt32(): number { return this.read(4, (view) => view.getInt32(this.curPos, true)); }\r\n /** Read a 32-bit floating point number from the current read position and advance by 4 bytes. */\r\n public get nextFloat32(): number { return this.read(4, (view) => view.getFloat32(this.curPos, true)); }\r\n /** Read a 64-bit floating point number from the current read position and advance by 8 bytes. */\r\n public get nextFloat64(): number { return this.read(8, (view) => view.getFloat64(this.curPos, true)); }\r\n /** Read an unsigned 64-bit integer from the current read position, advance by 8 bytes, and return the 64-bit value as an Id64String. */\r\n public get nextId64(): Id64String { return Id64.fromUint32Pair(this.nextUint32, this.nextUint32); }\r\n /** Read an unsigned 24-bit integer from the current read position and advance by 3 bytes. */\r\n public get nextUint24(): number { return this.nextUint8 | (this.nextUint8 << 8) | (this.nextUint8 << 16); }\r\n\r\n /** Read the specified number of bytes beginning at the current read position into a Uint8Array and advance by the specified number of byte.\r\n * @param numBytes The number of bytes to read.\r\n */\r\n public nextBytes(numBytes: number): Uint8Array {\r\n const bytes = new Uint8Array(this.arrayBuffer, this.curPos + this._byteOffset, numBytes);\r\n this.advance(numBytes);\r\n return bytes;\r\n }\r\n\r\n /** Read the specified number of bytes at the specified offset without changing the read position. */\r\n public readBytes(readPos: number, numBytes: number): Uint8Array {\r\n return new Uint8Array(this.arrayBuffer, readPos + this._byteOffset, numBytes);\r\n }\r\n\r\n /** Read the specified number of unsigned 32-bit integers from the current read position and advance the read position. */\r\n public nextUint32s(numUint32s: number): Uint32Array {\r\n const numBytes = numUint32s * 4;\r\n const uint32s = new Uint32Array(this.arrayBuffer, this.curPos + this._byteOffset, numUint32s);\r\n this.advance(numBytes);\r\n return uint32s;\r\n }\r\n\r\n /** Returns the underlying array buffer */\r\n public get arrayBuffer(): ArrayBuffer | SharedArrayBuffer { return this._view.buffer; }\r\n\r\n private read(numBytes: number, read: (view: DataView) => number) {\r\n const result = read(this._view);\r\n this.advance(numBytes);\r\n return result;\r\n }\r\n}\r\n"]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  /**
5
5
  * A function that returns a numerical value indicating how two objects are ordered in relation to one another.
6
- * Such functions are used by various collection classes in the iModel.js library.
6
+ * Such functions are used by various collection classes throughout the library.
7
7
  * Given values `lhs` and `rhs`, the function returns:
8
8
  * - Zero if lhs == rhs
9
9
  * - A negative number if lhs < rhs
@@ -1 +1 @@
1
- {"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../src/Compare.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAwBH;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,CAAS,EAAE,CAAS,EAAE,SAAS,GAAG,GAAG;IACxE,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS;QACnB,OAAO,CAAC,CAAC,CAAC;SACP,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS;QACxB,OAAO,CAAC,CAAC;;QAET,OAAO,CAAC,CAAC;AACb,CAAC;AAPD,oDAOC;AAED,cAAc;AACd,SAAgB,cAAc,CAAC,CAAS,EAAE,CAAS,IAAY,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAA9E,wCAA8E;AAE9E,cAAc;AACd,SAAgB,eAAe,CAAC,CAAU,EAAE,CAAU,IAAY,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAA1G,0CAA0G;AAE1G,cAAc;AACd,SAAgB,cAAc,CAAC,CAAS,EAAE,CAAS,IAAY,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAAvG,wCAAuG;AAEvG,cAAc;AACd,SAAgB,wBAAwB,CAAI,cAA0C,EAAE,GAAO,EAAE,GAAO;IACtG,IAAI,SAAS,KAAK,GAAG;QACnB,OAAO,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B,IAAI,SAAS,KAAK,GAAG;QACxB,OAAO,CAAC,CAAC;;QAET,OAAO,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC;AAPD,4DAOC;AAED,cAAc;AACd,SAAgB,yBAAyB,CAAC,GAAY,EAAE,GAAY,IAAY,OAAO,wBAAwB,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAA5I,8DAA4I;AAE5I,cAAc;AACd,SAAgB,yBAAyB,CAAC,GAAY,EAAE,GAAY,IAAY,OAAO,wBAAwB,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAA5I,8DAA4I;AAE5I,cAAc;AACd,SAAgB,0BAA0B,CAAC,GAAa,EAAE,GAAa,IAAY,OAAO,wBAAwB,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAAhJ,gEAAgJ;AAEhJ;;GAEG;AACH,SAAgB,yBAAyB,CAAO,CAAgB,EAAE,CAAgB,EAAE,QAAiC;IACnH,IAAI,SAAS,KAAK,CAAC;QACjB,OAAO,SAAS,KAAK,CAAC,CAAC;SACpB,IAAI,SAAS,KAAK,CAAC;QACtB,OAAO,KAAK,CAAC;;QAEb,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AAPD,8DAOC","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 * A function that returns a numerical value indicating how two objects are ordered in relation to one another.\r\n * Such functions are used by various collection classes in the iModel.js library.\r\n * Given values `lhs` and `rhs`, the function returns:\r\n * - Zero if lhs == rhs\r\n * - A negative number if lhs < rhs\r\n * - A positive number if lhs > rhs\r\n *\r\n * An OrderedComparator `must` implement [strict weak ordering](https://en.wikipedia.org/wiki/Weak_ordering#Strict_weak_orderings), which can be summarized by the following rules:\r\n * - `compare(x, x)` returns zero.\r\n * - If `compare(x, y)` returns zero, then so does `compare(y, x)` (i.e., `x == y` implies `y == x`).\r\n * - If `compare(x, y)` returns non-zero, then `compare(y, x)` returns a value with an opposite sign (i.e., `x < y` implies `y > x`).\r\n * - If `compare(x, y)` and `compare(y, z)` return non-zero values with the same sign, then `compare(x, z)` returns a value with the same sign (i.e., `x < y < z` implies `x < z`).\r\n *\r\n * @see SortedArray\r\n * @see Dictionary\r\n * @see IndexMap\r\n * @see PriorityQueue\r\n * @public\r\n */\r\nexport type OrderedComparator<T, U = T> = (lhs: T, rhs: U) => number;\r\n\r\n/**\r\n * An [[OrderedComparator]] for numbers that treats two numbers as equal if the absolute value of their difference is less than a specified tolerance.\r\n * @public\r\n */\r\nexport function compareWithTolerance(a: number, b: number, tolerance = 0.1): number {\r\n if (a < b - tolerance)\r\n return -1;\r\n else if (a > b + tolerance)\r\n return 1;\r\n else\r\n return 0;\r\n}\r\n\r\n/** @public */\r\nexport function compareNumbers(a: number, b: number): number { return a - b; }\r\n\r\n/** @public */\r\nexport function compareBooleans(a: boolean, b: boolean): number { return a !== b ? (a < b ? -1 : 1) : 0; }\r\n\r\n/** @public */\r\nexport function compareStrings(a: string, b: string): number { return a === b ? 0 : (a < b ? -1 : 1); }\r\n\r\n/** @public */\r\nexport function comparePossiblyUndefined<T>(compareDefined: (lhs: T, rhs: T) => number, lhs?: T, rhs?: T): number {\r\n if (undefined === lhs)\r\n return undefined === rhs ? 0 : -1;\r\n else if (undefined === rhs)\r\n return 1;\r\n else\r\n return compareDefined(lhs, rhs);\r\n}\r\n\r\n/** @public */\r\nexport function compareStringsOrUndefined(lhs?: string, rhs?: string): number { return comparePossiblyUndefined(compareStrings, lhs, rhs); }\r\n\r\n/** @public */\r\nexport function compareNumbersOrUndefined(lhs?: number, rhs?: number): number { return comparePossiblyUndefined(compareNumbers, lhs, rhs); }\r\n\r\n/** @public */\r\nexport function compareBooleansOrUndefined(lhs?: boolean, rhs?: boolean): number { return comparePossiblyUndefined(compareBooleans, lhs, rhs); }\r\n\r\n/** Compare two possibly-undefined values for equality. If both are undefined, the comparison is performed by the supplied `areEqual` function.\r\n * @public\r\n */\r\nexport function areEqualPossiblyUndefined<T, U>(t: T | undefined, u: U | undefined, areEqual: (t: T, u: U) => boolean): boolean {\r\n if (undefined === t)\r\n return undefined === u;\r\n else if (undefined === u)\r\n return false;\r\n else\r\n return areEqual(t, u);\r\n}\r\n"]}
1
+ {"version":3,"file":"Compare.js","sourceRoot":"","sources":["../../src/Compare.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAwBH;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,CAAS,EAAE,CAAS,EAAE,SAAS,GAAG,GAAG;IACxE,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS;QACnB,OAAO,CAAC,CAAC,CAAC;SACP,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS;QACxB,OAAO,CAAC,CAAC;;QAET,OAAO,CAAC,CAAC;AACb,CAAC;AAPD,oDAOC;AAED,cAAc;AACd,SAAgB,cAAc,CAAC,CAAS,EAAE,CAAS,IAAY,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAA9E,wCAA8E;AAE9E,cAAc;AACd,SAAgB,eAAe,CAAC,CAAU,EAAE,CAAU,IAAY,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAA1G,0CAA0G;AAE1G,cAAc;AACd,SAAgB,cAAc,CAAC,CAAS,EAAE,CAAS,IAAY,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAAvG,wCAAuG;AAEvG,cAAc;AACd,SAAgB,wBAAwB,CAAI,cAA0C,EAAE,GAAO,EAAE,GAAO;IACtG,IAAI,SAAS,KAAK,GAAG;QACnB,OAAO,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B,IAAI,SAAS,KAAK,GAAG;QACxB,OAAO,CAAC,CAAC;;QAET,OAAO,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC;AAPD,4DAOC;AAED,cAAc;AACd,SAAgB,yBAAyB,CAAC,GAAY,EAAE,GAAY,IAAY,OAAO,wBAAwB,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAA5I,8DAA4I;AAE5I,cAAc;AACd,SAAgB,yBAAyB,CAAC,GAAY,EAAE,GAAY,IAAY,OAAO,wBAAwB,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAA5I,8DAA4I;AAE5I,cAAc;AACd,SAAgB,0BAA0B,CAAC,GAAa,EAAE,GAAa,IAAY,OAAO,wBAAwB,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAAhJ,gEAAgJ;AAEhJ;;GAEG;AACH,SAAgB,yBAAyB,CAAO,CAAgB,EAAE,CAAgB,EAAE,QAAiC;IACnH,IAAI,SAAS,KAAK,CAAC;QACjB,OAAO,SAAS,KAAK,CAAC,CAAC;SACpB,IAAI,SAAS,KAAK,CAAC;QACtB,OAAO,KAAK,CAAC;;QAEb,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AAPD,8DAOC","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 * A function that returns a numerical value indicating how two objects are ordered in relation to one another.\r\n * Such functions are used by various collection classes throughout the library.\r\n * Given values `lhs` and `rhs`, the function returns:\r\n * - Zero if lhs == rhs\r\n * - A negative number if lhs < rhs\r\n * - A positive number if lhs > rhs\r\n *\r\n * An OrderedComparator `must` implement [strict weak ordering](https://en.wikipedia.org/wiki/Weak_ordering#Strict_weak_orderings), which can be summarized by the following rules:\r\n * - `compare(x, x)` returns zero.\r\n * - If `compare(x, y)` returns zero, then so does `compare(y, x)` (i.e., `x == y` implies `y == x`).\r\n * - If `compare(x, y)` returns non-zero, then `compare(y, x)` returns a value with an opposite sign (i.e., `x < y` implies `y > x`).\r\n * - If `compare(x, y)` and `compare(y, z)` return non-zero values with the same sign, then `compare(x, z)` returns a value with the same sign (i.e., `x < y < z` implies `x < z`).\r\n *\r\n * @see SortedArray\r\n * @see Dictionary\r\n * @see IndexMap\r\n * @see PriorityQueue\r\n * @public\r\n */\r\nexport type OrderedComparator<T, U = T> = (lhs: T, rhs: U) => number;\r\n\r\n/**\r\n * An [[OrderedComparator]] for numbers that treats two numbers as equal if the absolute value of their difference is less than a specified tolerance.\r\n * @public\r\n */\r\nexport function compareWithTolerance(a: number, b: number, tolerance = 0.1): number {\r\n if (a < b - tolerance)\r\n return -1;\r\n else if (a > b + tolerance)\r\n return 1;\r\n else\r\n return 0;\r\n}\r\n\r\n/** @public */\r\nexport function compareNumbers(a: number, b: number): number { return a - b; }\r\n\r\n/** @public */\r\nexport function compareBooleans(a: boolean, b: boolean): number { return a !== b ? (a < b ? -1 : 1) : 0; }\r\n\r\n/** @public */\r\nexport function compareStrings(a: string, b: string): number { return a === b ? 0 : (a < b ? -1 : 1); }\r\n\r\n/** @public */\r\nexport function comparePossiblyUndefined<T>(compareDefined: (lhs: T, rhs: T) => number, lhs?: T, rhs?: T): number {\r\n if (undefined === lhs)\r\n return undefined === rhs ? 0 : -1;\r\n else if (undefined === rhs)\r\n return 1;\r\n else\r\n return compareDefined(lhs, rhs);\r\n}\r\n\r\n/** @public */\r\nexport function compareStringsOrUndefined(lhs?: string, rhs?: string): number { return comparePossiblyUndefined(compareStrings, lhs, rhs); }\r\n\r\n/** @public */\r\nexport function compareNumbersOrUndefined(lhs?: number, rhs?: number): number { return comparePossiblyUndefined(compareNumbers, lhs, rhs); }\r\n\r\n/** @public */\r\nexport function compareBooleansOrUndefined(lhs?: boolean, rhs?: boolean): number { return comparePossiblyUndefined(compareBooleans, lhs, rhs); }\r\n\r\n/** Compare two possibly-undefined values for equality. If both are undefined, the comparison is performed by the supplied `areEqual` function.\r\n * @public\r\n */\r\nexport function areEqualPossiblyUndefined<T, U>(t: T | undefined, u: U | undefined, areEqual: (t: T, u: U) => boolean): boolean {\r\n if (undefined === t)\r\n return undefined === u;\r\n else if (undefined === u)\r\n return false;\r\n else\r\n return areEqual(t, u);\r\n}\r\n"]}
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * IDisposable tends to be contagious; that is, if a type has members which implement IDisposable, that type should also implement IDisposable to dispose of those members.
14
14
  *
15
- * Implementations of IDisposable tend to be more "low-level" types. The disposal of such types is often handled on your behalf by imodel.js.
15
+ * Implementations of IDisposable tend to be more "low-level" types. The disposal of such types is often handled on your behalf.
16
16
  * However, always consult the documentation for an IDisposable type to determine under what circumstances you are expected to explicitly dispose of it.
17
17
  * @public
18
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Disposable.js","sourceRoot":"","sources":["../../src/Disposable.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/** Interface adopted by a type which has deterministic cleanup logic.\r\n * For example:\r\n * - Most rendering-related types, such as [[RenderGraphic]] and [[Viewport]], own WebGL resources which must be explicitly released when no longer needed.\r\n * - Some low-level objects like [[ECDb]] own native types defined in C++ code which must be explicitly released when no longer needed.\r\n *\r\n * A similar concept exists in languages like C++ (implemented as \"destructors\") and C# (\"IDisposable\").\r\n * However, because TypeScript and Javascript lack any built-in support for deterministic destruction, it is up to the programmer to ensure dispose() is called appropriately.\r\n * Failure to do so may result in memory leaks or leaking of other resources.\r\n *\r\n * IDisposable tends to be contagious; that is, if a type has members which implement IDisposable, that type should also implement IDisposable to dispose of those members.\r\n *\r\n * Implementations of IDisposable tend to be more \"low-level\" types. The disposal of such types is often handled on your behalf by imodel.js.\r\n * However, always consult the documentation for an IDisposable type to determine under what circumstances you are expected to explicitly dispose of it.\r\n * @public\r\n */\r\nexport interface IDisposable {\r\n /** Disposes of any resources owned by this object.\r\n * @note The object is generally considered unusable after it has been disposed of.\r\n */\r\n dispose(): void;\r\n}\r\n\r\n/**\r\n * A type guard that checks whether the given argument implements `IDisposable` interface\r\n * @public\r\n */\r\nexport function isIDisposable(obj: unknown): obj is IDisposable {\r\n // eslint-disable-next-line @typescript-eslint/unbound-method\r\n return !!obj && (obj instanceof Object) && !!(obj as IDisposable).dispose && (typeof (obj as IDisposable).dispose === \"function\");\r\n}\r\n\r\n/** Convenience function for disposing of a disposable object that may be undefined.\r\n * This is primarily used to simplify implementations of [[IDisposable.dispose]].\r\n * As a simple example:\r\n * ```ts\r\n * class Disposable implements IDisposable {\r\n * public member1?: DisposableType1;\r\n * public member2?: DisposableType2;\r\n *\r\n * public dispose() {\r\n * this.member1 = dispose(this.member1); // If member1 is defined, dispose of it and set it to undefined.\r\n * this.member2 = dispose(this.member2); // Likewise for member2.\r\n * }\r\n * }\r\n * ```\r\n * @param disposable The object to be disposed of.\r\n * @returns undefined\r\n * @public\r\n */\r\nexport function dispose(disposable?: IDisposable): undefined {\r\n if (undefined !== disposable)\r\n disposable.dispose();\r\n return undefined;\r\n}\r\n\r\n/** Disposes of and empties a list of disposable objects.\r\n * @param list The list of disposable objects.\r\n * @returns undefined\r\n * @public\r\n */\r\nexport function disposeArray(list?: IDisposable[]): undefined {\r\n if (undefined === list)\r\n return undefined;\r\n\r\n for (const entry of list)\r\n dispose(entry);\r\n\r\n list.length = 0;\r\n return undefined;\r\n}\r\n\r\n/** A 'using' function which is a substitution for .NET's using statement. It makes sure that 'dispose'\r\n * is called on the resource no matter if the func returns or throws. If func returns, the return value\r\n * of this function is equal to return value of func. If func throws, this function also throws (after\r\n * disposing the resource).\r\n * @public\r\n */\r\nexport function using<T extends IDisposable, TResult>(resources: T | T[], func: (...r: T[]) => TResult): TResult {\r\n if (!Array.isArray(resources))\r\n return using([resources], func);\r\n\r\n const doDispose = () => resources.forEach((disposable) => disposable.dispose());\r\n let shouldDisposeImmediately = true;\r\n\r\n try {\r\n const result = func(...resources);\r\n if (result instanceof Promise) {\r\n shouldDisposeImmediately = false;\r\n result.then(doDispose, doDispose);\r\n }\r\n return result;\r\n } finally {\r\n if (shouldDisposeImmediately)\r\n doDispose();\r\n }\r\n}\r\n\r\n/** A definition of function which may be called to dispose an object\r\n * @public\r\n */\r\nexport type DisposeFunc = () => void;\r\n\r\nclass FuncDisposable implements IDisposable {\r\n private _disposeFunc: () => void;\r\n constructor(disposeFunc: () => void) { this._disposeFunc = disposeFunc; }\r\n public dispose() { this._disposeFunc(); }\r\n}\r\n\r\n/** A disposable container of disposable objects.\r\n * @public\r\n */\r\nexport class DisposableList implements IDisposable {\r\n private _disposables: IDisposable[];\r\n\r\n /** Creates a disposable list. */\r\n constructor(disposables: Array<IDisposable | DisposeFunc> = []) {\r\n this._disposables = [];\r\n disposables.forEach((disposable) => {\r\n this.add(disposable);\r\n });\r\n }\r\n\r\n private isDisposable(x: IDisposable | DisposeFunc): x is IDisposable {\r\n return (x as IDisposable).dispose !== undefined;\r\n }\r\n\r\n /** Register an object for disposal. */\r\n public add(disposable: IDisposable | DisposeFunc) {\r\n if (this.isDisposable(disposable))\r\n this._disposables.push(disposable);\r\n else\r\n this._disposables.push(new FuncDisposable(disposable));\r\n }\r\n\r\n /** Unregister disposable object. */\r\n public remove(disposable: IDisposable): void {\r\n const idx = this._disposables.indexOf(disposable);\r\n if (-1 !== idx)\r\n this._disposables.splice(idx, 1);\r\n }\r\n\r\n /** Disposes all registered objects. */\r\n public dispose(): void {\r\n for (const disposable of this._disposables)\r\n disposable.dispose();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Disposable.js","sourceRoot":"","sources":["../../src/Disposable.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/** Interface adopted by a type which has deterministic cleanup logic.\r\n * For example:\r\n * - Most rendering-related types, such as [[RenderGraphic]] and [[Viewport]], own WebGL resources which must be explicitly released when no longer needed.\r\n * - Some low-level objects like [[ECDb]] own native types defined in C++ code which must be explicitly released when no longer needed.\r\n *\r\n * A similar concept exists in languages like C++ (implemented as \"destructors\") and C# (\"IDisposable\").\r\n * However, because TypeScript and Javascript lack any built-in support for deterministic destruction, it is up to the programmer to ensure dispose() is called appropriately.\r\n * Failure to do so may result in memory leaks or leaking of other resources.\r\n *\r\n * IDisposable tends to be contagious; that is, if a type has members which implement IDisposable, that type should also implement IDisposable to dispose of those members.\r\n *\r\n * Implementations of IDisposable tend to be more \"low-level\" types. The disposal of such types is often handled on your behalf.\r\n * However, always consult the documentation for an IDisposable type to determine under what circumstances you are expected to explicitly dispose of it.\r\n * @public\r\n */\r\nexport interface IDisposable {\r\n /** Disposes of any resources owned by this object.\r\n * @note The object is generally considered unusable after it has been disposed of.\r\n */\r\n dispose(): void;\r\n}\r\n\r\n/**\r\n * A type guard that checks whether the given argument implements `IDisposable` interface\r\n * @public\r\n */\r\nexport function isIDisposable(obj: unknown): obj is IDisposable {\r\n // eslint-disable-next-line @typescript-eslint/unbound-method\r\n return !!obj && (obj instanceof Object) && !!(obj as IDisposable).dispose && (typeof (obj as IDisposable).dispose === \"function\");\r\n}\r\n\r\n/** Convenience function for disposing of a disposable object that may be undefined.\r\n * This is primarily used to simplify implementations of [[IDisposable.dispose]].\r\n * As a simple example:\r\n * ```ts\r\n * class Disposable implements IDisposable {\r\n * public member1?: DisposableType1;\r\n * public member2?: DisposableType2;\r\n *\r\n * public dispose() {\r\n * this.member1 = dispose(this.member1); // If member1 is defined, dispose of it and set it to undefined.\r\n * this.member2 = dispose(this.member2); // Likewise for member2.\r\n * }\r\n * }\r\n * ```\r\n * @param disposable The object to be disposed of.\r\n * @returns undefined\r\n * @public\r\n */\r\nexport function dispose(disposable?: IDisposable): undefined {\r\n if (undefined !== disposable)\r\n disposable.dispose();\r\n return undefined;\r\n}\r\n\r\n/** Disposes of and empties a list of disposable objects.\r\n * @param list The list of disposable objects.\r\n * @returns undefined\r\n * @public\r\n */\r\nexport function disposeArray(list?: IDisposable[]): undefined {\r\n if (undefined === list)\r\n return undefined;\r\n\r\n for (const entry of list)\r\n dispose(entry);\r\n\r\n list.length = 0;\r\n return undefined;\r\n}\r\n\r\n/** A 'using' function which is a substitution for .NET's using statement. It makes sure that 'dispose'\r\n * is called on the resource no matter if the func returns or throws. If func returns, the return value\r\n * of this function is equal to return value of func. If func throws, this function also throws (after\r\n * disposing the resource).\r\n * @public\r\n */\r\nexport function using<T extends IDisposable, TResult>(resources: T | T[], func: (...r: T[]) => TResult): TResult {\r\n if (!Array.isArray(resources))\r\n return using([resources], func);\r\n\r\n const doDispose = () => resources.forEach((disposable) => disposable.dispose());\r\n let shouldDisposeImmediately = true;\r\n\r\n try {\r\n const result = func(...resources);\r\n if (result instanceof Promise) {\r\n shouldDisposeImmediately = false;\r\n result.then(doDispose, doDispose);\r\n }\r\n return result;\r\n } finally {\r\n if (shouldDisposeImmediately)\r\n doDispose();\r\n }\r\n}\r\n\r\n/** A definition of function which may be called to dispose an object\r\n * @public\r\n */\r\nexport type DisposeFunc = () => void;\r\n\r\nclass FuncDisposable implements IDisposable {\r\n private _disposeFunc: () => void;\r\n constructor(disposeFunc: () => void) { this._disposeFunc = disposeFunc; }\r\n public dispose() { this._disposeFunc(); }\r\n}\r\n\r\n/** A disposable container of disposable objects.\r\n * @public\r\n */\r\nexport class DisposableList implements IDisposable {\r\n private _disposables: IDisposable[];\r\n\r\n /** Creates a disposable list. */\r\n constructor(disposables: Array<IDisposable | DisposeFunc> = []) {\r\n this._disposables = [];\r\n disposables.forEach((disposable) => {\r\n this.add(disposable);\r\n });\r\n }\r\n\r\n private isDisposable(x: IDisposable | DisposeFunc): x is IDisposable {\r\n return (x as IDisposable).dispose !== undefined;\r\n }\r\n\r\n /** Register an object for disposal. */\r\n public add(disposable: IDisposable | DisposeFunc) {\r\n if (this.isDisposable(disposable))\r\n this._disposables.push(disposable);\r\n else\r\n this._disposables.push(new FuncDisposable(disposable));\r\n }\r\n\r\n /** Unregister disposable object. */\r\n public remove(disposable: IDisposable): void {\r\n const idx = this._disposables.indexOf(disposable);\r\n if (-1 !== idx)\r\n this._disposables.splice(idx, 1);\r\n }\r\n\r\n /** Disposes all registered objects. */\r\n public dispose(): void {\r\n for (const disposable of this._disposables)\r\n disposable.dispose();\r\n }\r\n}\r\n"]}