@itwin/core-bentley 5.0.0-dev.8 → 5.0.0-dev.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -1
- package/lib/cjs/BeEvent.js +3 -7
- package/lib/cjs/BeEvent.js.map +1 -1
- package/lib/cjs/BentleyError.d.ts +3 -0
- package/lib/cjs/BentleyError.d.ts.map +1 -1
- package/lib/cjs/BentleyError.js +6 -1
- package/lib/cjs/BentleyError.js.map +1 -1
- package/lib/cjs/ByteStream.d.ts +3 -22
- package/lib/cjs/ByteStream.d.ts.map +1 -1
- package/lib/cjs/ByteStream.js +7 -21
- package/lib/cjs/ByteStream.js.map +1 -1
- package/lib/cjs/Compare.d.ts +15 -0
- package/lib/cjs/Compare.d.ts.map +1 -1
- package/lib/cjs/Compare.js +48 -0
- package/lib/cjs/Compare.js.map +1 -1
- package/lib/cjs/CompressedId64Set.js +6 -3
- package/lib/cjs/CompressedId64Set.js.map +1 -1
- package/lib/cjs/Dictionary.js +8 -3
- package/lib/cjs/Dictionary.js.map +1 -1
- package/lib/cjs/Disposable.d.ts +18 -0
- package/lib/cjs/Disposable.d.ts.map +1 -1
- package/lib/cjs/Disposable.js +25 -25
- package/lib/cjs/Disposable.js.map +1 -1
- package/lib/cjs/Id.d.ts +0 -4
- package/lib/cjs/Id.d.ts.map +1 -1
- package/lib/cjs/Id.js +9 -11
- package/lib/cjs/Id.js.map +1 -1
- package/lib/cjs/IndexMap.js +6 -1
- package/lib/cjs/IndexMap.js.map +1 -1
- package/lib/cjs/LRUMap.js +16 -0
- package/lib/cjs/LRUMap.js.map +1 -1
- package/lib/cjs/Logger.d.ts +24 -2
- package/lib/cjs/Logger.d.ts.map +1 -1
- package/lib/cjs/Logger.js +26 -7
- package/lib/cjs/Logger.js.map +1 -1
- package/lib/cjs/ObservableSet.js +6 -6
- package/lib/cjs/ObservableSet.js.map +1 -1
- package/lib/cjs/OneAtATimeAction.js +9 -0
- package/lib/cjs/OneAtATimeAction.js.map +1 -1
- package/lib/cjs/OrderedSet.js +1 -0
- package/lib/cjs/OrderedSet.js.map +1 -1
- package/lib/cjs/PriorityQueue.js +3 -1
- package/lib/cjs/PriorityQueue.js.map +1 -1
- package/lib/cjs/SortedArray.js +4 -1
- package/lib/cjs/SortedArray.js.map +1 -1
- package/lib/cjs/StatusCategory.js +42 -105
- package/lib/cjs/StatusCategory.js.map +1 -1
- package/lib/cjs/Time.js +5 -0
- package/lib/cjs/Time.js.map +1 -1
- package/lib/cjs/Tracing.js +2 -0
- package/lib/cjs/Tracing.js.map +1 -1
- package/lib/cjs/TupleKeyedMap.js +2 -2
- package/lib/cjs/TupleKeyedMap.js.map +1 -1
- package/lib/cjs/TypedArrayBuilder.js +8 -0
- package/lib/cjs/TypedArrayBuilder.js.map +1 -1
- package/lib/cjs/UnexpectedErrors.js +10 -12
- package/lib/cjs/UnexpectedErrors.js.map +1 -1
- package/lib/cjs/YieldManager.js +3 -1
- package/lib/cjs/YieldManager.js.map +1 -1
- package/lib/cjs/internal/cross-package.d.ts +0 -1
- package/lib/cjs/internal/cross-package.d.ts.map +1 -1
- package/lib/cjs/internal/cross-package.js +1 -3
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/esm/BeEvent.js +3 -7
- package/lib/esm/BeEvent.js.map +1 -1
- package/lib/esm/BentleyError.d.ts +3 -0
- package/lib/esm/BentleyError.d.ts.map +1 -1
- package/lib/esm/BentleyError.js +6 -1
- package/lib/esm/BentleyError.js.map +1 -1
- package/lib/esm/ByteStream.d.ts +3 -22
- package/lib/esm/ByteStream.d.ts.map +1 -1
- package/lib/esm/ByteStream.js +7 -21
- package/lib/esm/ByteStream.js.map +1 -1
- package/lib/esm/Compare.d.ts +15 -0
- package/lib/esm/Compare.d.ts.map +1 -1
- package/lib/esm/Compare.js +46 -0
- package/lib/esm/Compare.js.map +1 -1
- package/lib/esm/CompressedId64Set.js +6 -3
- package/lib/esm/CompressedId64Set.js.map +1 -1
- package/lib/esm/Dictionary.js +8 -3
- package/lib/esm/Dictionary.js.map +1 -1
- package/lib/esm/Disposable.d.ts +18 -0
- package/lib/esm/Disposable.d.ts.map +1 -1
- package/lib/esm/Disposable.js +24 -25
- package/lib/esm/Disposable.js.map +1 -1
- package/lib/esm/Id.d.ts +0 -4
- package/lib/esm/Id.d.ts.map +1 -1
- package/lib/esm/Id.js +9 -11
- package/lib/esm/Id.js.map +1 -1
- package/lib/esm/IndexMap.js +6 -1
- package/lib/esm/IndexMap.js.map +1 -1
- package/lib/esm/LRUMap.js +16 -0
- package/lib/esm/LRUMap.js.map +1 -1
- package/lib/esm/Logger.d.ts +24 -2
- package/lib/esm/Logger.d.ts.map +1 -1
- package/lib/esm/Logger.js +26 -7
- package/lib/esm/Logger.js.map +1 -1
- package/lib/esm/ObservableSet.js +6 -6
- package/lib/esm/ObservableSet.js.map +1 -1
- package/lib/esm/OneAtATimeAction.js +9 -0
- package/lib/esm/OneAtATimeAction.js.map +1 -1
- package/lib/esm/OrderedSet.js +1 -0
- package/lib/esm/OrderedSet.js.map +1 -1
- package/lib/esm/PriorityQueue.js +3 -1
- package/lib/esm/PriorityQueue.js.map +1 -1
- package/lib/esm/SortedArray.js +4 -1
- package/lib/esm/SortedArray.js.map +1 -1
- package/lib/esm/StatusCategory.js +42 -105
- package/lib/esm/StatusCategory.js.map +1 -1
- package/lib/esm/Time.js +5 -0
- package/lib/esm/Time.js.map +1 -1
- package/lib/esm/Tracing.js +2 -0
- package/lib/esm/Tracing.js.map +1 -1
- package/lib/esm/TupleKeyedMap.js +2 -2
- package/lib/esm/TupleKeyedMap.js.map +1 -1
- package/lib/esm/TypedArrayBuilder.js +8 -0
- package/lib/esm/TypedArrayBuilder.js.map +1 -1
- package/lib/esm/UnexpectedErrors.js +10 -12
- package/lib/esm/UnexpectedErrors.js.map +1 -1
- package/lib/esm/YieldManager.js +3 -1
- package/lib/esm/YieldManager.js.map +1 -1
- package/lib/esm/internal/cross-package.d.ts +0 -1
- package/lib/esm/internal/cross-package.d.ts.map +1 -1
- package/lib/esm/internal/cross-package.js +0 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/package.json +8 -8
- package/lib/cjs/internal/staticLoggerMetadata.d.ts +0 -11
- package/lib/cjs/internal/staticLoggerMetadata.d.ts.map +0 -1
- package/lib/cjs/internal/staticLoggerMetadata.js +0 -17
- package/lib/cjs/internal/staticLoggerMetadata.js.map +0 -1
- package/lib/esm/internal/staticLoggerMetadata.d.ts +0 -11
- package/lib/esm/internal/staticLoggerMetadata.d.ts.map +0 -1
- package/lib/esm/internal/staticLoggerMetadata.js +0 -14
- package/lib/esm/internal/staticLoggerMetadata.js.map +0 -1
|
@@ -11,6 +11,7 @@ import { RepositoryStatus } from "./internal/RepositoryStatus";
|
|
|
11
11
|
* @alpha
|
|
12
12
|
*/
|
|
13
13
|
export class StatusCategory {
|
|
14
|
+
static handlers = new Set();
|
|
14
15
|
static for(error) {
|
|
15
16
|
for (const handler of this.handlers) {
|
|
16
17
|
const category = handler(error);
|
|
@@ -24,179 +25,115 @@ export class StatusCategory {
|
|
|
24
25
|
return new UnknownError();
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
StatusCategory.handlers = new Set();
|
|
28
28
|
/***
|
|
29
29
|
* A success status.
|
|
30
30
|
* @alpha
|
|
31
31
|
*/
|
|
32
32
|
export class SuccessCategory extends StatusCategory {
|
|
33
|
-
|
|
34
|
-
super(...arguments);
|
|
35
|
-
this.error = false;
|
|
36
|
-
}
|
|
33
|
+
error = false;
|
|
37
34
|
}
|
|
38
35
|
/**
|
|
39
36
|
* An error status.
|
|
40
37
|
* @alpha
|
|
41
38
|
*/
|
|
42
39
|
export class ErrorCategory extends StatusCategory {
|
|
43
|
-
|
|
44
|
-
super(...arguments);
|
|
45
|
-
this.error = true;
|
|
46
|
-
}
|
|
40
|
+
error = true;
|
|
47
41
|
}
|
|
48
42
|
var HTTP;
|
|
49
43
|
(function (HTTP) {
|
|
50
44
|
class OK extends SuccessCategory {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
this.name = "OK";
|
|
54
|
-
this.code = 200;
|
|
55
|
-
}
|
|
45
|
+
name = "OK";
|
|
46
|
+
code = 200;
|
|
56
47
|
}
|
|
57
48
|
HTTP.OK = OK;
|
|
58
49
|
class Accepted extends SuccessCategory {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
this.name = "Accepted";
|
|
62
|
-
this.code = 202;
|
|
63
|
-
}
|
|
50
|
+
name = "Accepted";
|
|
51
|
+
code = 202;
|
|
64
52
|
}
|
|
65
53
|
HTTP.Accepted = Accepted;
|
|
66
54
|
class NoContent extends SuccessCategory {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
this.name = "NoContent";
|
|
70
|
-
this.code = 204;
|
|
71
|
-
}
|
|
55
|
+
name = "NoContent";
|
|
56
|
+
code = 204;
|
|
72
57
|
}
|
|
73
58
|
HTTP.NoContent = NoContent;
|
|
74
59
|
class BadRequest extends ErrorCategory {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
this.name = "BadRequest";
|
|
78
|
-
this.code = 400;
|
|
79
|
-
}
|
|
60
|
+
name = "BadRequest";
|
|
61
|
+
code = 400;
|
|
80
62
|
}
|
|
81
63
|
HTTP.BadRequest = BadRequest;
|
|
82
64
|
class Unauthorized extends ErrorCategory {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
this.name = "Unauthorized";
|
|
86
|
-
this.code = 401;
|
|
87
|
-
}
|
|
65
|
+
name = "Unauthorized";
|
|
66
|
+
code = 401;
|
|
88
67
|
}
|
|
89
68
|
HTTP.Unauthorized = Unauthorized;
|
|
90
69
|
class Forbidden extends ErrorCategory {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
this.name = "Forbidden";
|
|
94
|
-
this.code = 403;
|
|
95
|
-
}
|
|
70
|
+
name = "Forbidden";
|
|
71
|
+
code = 403;
|
|
96
72
|
}
|
|
97
73
|
HTTP.Forbidden = Forbidden;
|
|
98
74
|
class NotFound extends ErrorCategory {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
this.name = "NotFound";
|
|
102
|
-
this.code = 404;
|
|
103
|
-
}
|
|
75
|
+
name = "NotFound";
|
|
76
|
+
code = 404;
|
|
104
77
|
}
|
|
105
78
|
HTTP.NotFound = NotFound;
|
|
106
79
|
class RequestTimeout extends ErrorCategory {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
this.name = "RequestTimeout";
|
|
110
|
-
this.code = 408;
|
|
111
|
-
}
|
|
80
|
+
name = "RequestTimeout";
|
|
81
|
+
code = 408;
|
|
112
82
|
}
|
|
113
83
|
HTTP.RequestTimeout = RequestTimeout;
|
|
114
84
|
class Conflict extends ErrorCategory {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
this.name = "Conflict";
|
|
118
|
-
this.code = 409;
|
|
119
|
-
}
|
|
85
|
+
name = "Conflict";
|
|
86
|
+
code = 409;
|
|
120
87
|
}
|
|
121
88
|
HTTP.Conflict = Conflict;
|
|
122
89
|
class Gone extends ErrorCategory {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
this.name = "Gone";
|
|
126
|
-
this.code = 410;
|
|
127
|
-
}
|
|
90
|
+
name = "Gone";
|
|
91
|
+
code = 410;
|
|
128
92
|
}
|
|
129
93
|
HTTP.Gone = Gone;
|
|
130
94
|
class PreconditionFailed extends ErrorCategory {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
this.name = "PreconditionFailed";
|
|
134
|
-
this.code = 412;
|
|
135
|
-
}
|
|
95
|
+
name = "PreconditionFailed";
|
|
96
|
+
code = 412;
|
|
136
97
|
}
|
|
137
98
|
HTTP.PreconditionFailed = PreconditionFailed;
|
|
138
99
|
class ExpectationFailed extends ErrorCategory {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
this.name = "ExpectationFailed";
|
|
142
|
-
this.code = 417;
|
|
143
|
-
}
|
|
100
|
+
name = "ExpectationFailed";
|
|
101
|
+
code = 417;
|
|
144
102
|
}
|
|
145
103
|
HTTP.ExpectationFailed = ExpectationFailed;
|
|
146
104
|
class MisdirectedRequest extends ErrorCategory {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
this.name = "MisdirectedRequest";
|
|
150
|
-
this.code = 421;
|
|
151
|
-
}
|
|
105
|
+
name = "MisdirectedRequest";
|
|
106
|
+
code = 421;
|
|
152
107
|
}
|
|
153
108
|
HTTP.MisdirectedRequest = MisdirectedRequest;
|
|
154
109
|
class UnprocessableEntity extends ErrorCategory {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
this.name = "UnprocessableEntity";
|
|
158
|
-
this.code = 422;
|
|
159
|
-
}
|
|
110
|
+
name = "UnprocessableEntity";
|
|
111
|
+
code = 422;
|
|
160
112
|
}
|
|
161
113
|
HTTP.UnprocessableEntity = UnprocessableEntity;
|
|
162
114
|
class UpgradeRequired extends ErrorCategory {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
this.name = "UpgradeRequired";
|
|
166
|
-
this.code = 426;
|
|
167
|
-
}
|
|
115
|
+
name = "UpgradeRequired";
|
|
116
|
+
code = 426;
|
|
168
117
|
}
|
|
169
118
|
HTTP.UpgradeRequired = UpgradeRequired;
|
|
170
119
|
class PreconditionRequired extends ErrorCategory {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
this.name = "PreconditionRequired";
|
|
174
|
-
this.code = 428;
|
|
175
|
-
}
|
|
120
|
+
name = "PreconditionRequired";
|
|
121
|
+
code = 428;
|
|
176
122
|
}
|
|
177
123
|
HTTP.PreconditionRequired = PreconditionRequired;
|
|
178
124
|
class TooManyRequests extends ErrorCategory {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
this.name = "TooManyRequests";
|
|
182
|
-
this.code = 429;
|
|
183
|
-
}
|
|
125
|
+
name = "TooManyRequests";
|
|
126
|
+
code = 429;
|
|
184
127
|
}
|
|
185
128
|
HTTP.TooManyRequests = TooManyRequests;
|
|
186
129
|
class InternalServerError extends ErrorCategory {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
this.name = "InternalServerError";
|
|
190
|
-
this.code = 500;
|
|
191
|
-
}
|
|
130
|
+
name = "InternalServerError";
|
|
131
|
+
code = 500;
|
|
192
132
|
}
|
|
193
133
|
HTTP.InternalServerError = InternalServerError;
|
|
194
134
|
class NotImplemented extends ErrorCategory {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
this.name = "NotImplemented";
|
|
198
|
-
this.code = 501;
|
|
199
|
-
}
|
|
135
|
+
name = "NotImplemented";
|
|
136
|
+
code = 501;
|
|
200
137
|
}
|
|
201
138
|
HTTP.NotImplemented = NotImplemented;
|
|
202
139
|
})(HTTP || (HTTP = {}));
|
|
@@ -453,7 +390,7 @@ function lookupHttpStatusCategory(statusCode) {
|
|
|
453
390
|
case GeoServiceStatus.NoDatumConverter: return new OperationFailed();
|
|
454
391
|
case GeoServiceStatus.VerticalDatumConvertError: return new OperationFailed();
|
|
455
392
|
case GeoServiceStatus.CSMapError: return new InternalError();
|
|
456
|
-
case GeoServiceStatus.Pending: return new Pending();
|
|
393
|
+
case GeoServiceStatus.Pending: return new Pending(); // eslint-disable-line @typescript-eslint/no-deprecated
|
|
457
394
|
case RealityDataStatus.Success: return new Success();
|
|
458
395
|
case RealityDataStatus.InvalidData: return new InvalidData();
|
|
459
396
|
default: return new UnknownError();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusCategory.js","sourceRoot":"","sources":["../../src/StatusCategory.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Errors\n */\n\nimport {\n BentleyError,\n BentleyStatus,\n BriefcaseStatus,\n ChangeSetStatus,\n GeoServiceStatus,\n HttpStatus,\n IModelHubStatus,\n IModelStatus,\n RealityDataStatus,\n RpcInterfaceStatus,\n} from \"./BentleyError\";\nimport { RepositoryStatus } from \"./internal/RepositoryStatus\";\n\n/* eslint-disable @typescript-eslint/no-shadow */\n\n/** @alpha */\nexport type StatusCategoryHandler = (error: Error) => StatusCategory | undefined;\n\n/** A group of related statuses for aggregate reporting purposes.\n * @alpha\n */\nexport abstract class StatusCategory {\n public static handlers: Set<StatusCategoryHandler> = new Set();\n\n public static for(error: Error): StatusCategory {\n for (const handler of this.handlers) {\n const category = handler(error);\n if (category) {\n return category;\n }\n }\n\n const errorNumber = (error as BentleyError).errorNumber as unknown;\n if (typeof errorNumber === \"number\")\n return lookupHttpStatusCategory(errorNumber);\n\n return new UnknownError();\n }\n\n public abstract name: string;\n public abstract code: number;\n public abstract error: boolean;\n}\n\n/***\n * A success status.\n * @alpha\n */\nexport abstract class SuccessCategory extends StatusCategory {\n public error = false;\n}\n\n/**\n * An error status.\n * @alpha\n */\nexport abstract class ErrorCategory extends StatusCategory {\n public error = true;\n}\n\nnamespace HTTP {\n export class OK extends SuccessCategory { public name = \"OK\"; public code = 200; }\n export class Accepted extends SuccessCategory { public name = \"Accepted\"; public code = 202; }\n export class NoContent extends SuccessCategory { public name = \"NoContent\"; public code = 204; }\n\n export class BadRequest extends ErrorCategory { public name = \"BadRequest\"; public code = 400; }\n export class Unauthorized extends ErrorCategory { public name = \"Unauthorized\"; public code = 401; }\n export class Forbidden extends ErrorCategory { public name = \"Forbidden\"; public code = 403; }\n export class NotFound extends ErrorCategory { public name = \"NotFound\"; public code = 404; }\n export class RequestTimeout extends ErrorCategory { public name = \"RequestTimeout\"; public code = 408; }\n export class Conflict extends ErrorCategory { public name = \"Conflict\"; public code = 409; }\n export class Gone extends ErrorCategory { public name = \"Gone\"; public code = 410; }\n export class PreconditionFailed extends ErrorCategory { public name = \"PreconditionFailed\"; public code = 412; }\n export class ExpectationFailed extends ErrorCategory { public name = \"ExpectationFailed\"; public code = 417; }\n export class MisdirectedRequest extends ErrorCategory { public name = \"MisdirectedRequest\"; public code = 421; }\n export class UnprocessableEntity extends ErrorCategory { public name = \"UnprocessableEntity\"; public code = 422; }\n export class UpgradeRequired extends ErrorCategory { public name = \"UpgradeRequired\"; public code = 426; }\n export class PreconditionRequired extends ErrorCategory { public name = \"PreconditionRequired\"; public code = 428; }\n export class TooManyRequests extends ErrorCategory { public name = \"TooManyRequests\"; public code = 429; }\n\n export class InternalServerError extends ErrorCategory { public name = \"InternalServerError\"; public code = 500; }\n export class NotImplemented extends ErrorCategory { public name = \"NotImplemented\"; public code = 501; }\n}\n\nclass Success extends HTTP.OK { }\n\nclass Pending extends HTTP.Accepted { }\n\nclass NoContent extends HTTP.NoContent { }\nclass NothingToDo extends HTTP.NoContent { }\n\nclass BadRequest extends HTTP.BadRequest { }\n\nclass Forbidden extends HTTP.Forbidden { }\nclass PermissionsViolation extends HTTP.Forbidden { }\nclass ReadOnly extends HTTP.Forbidden { }\n\nclass NotFound extends HTTP.NotFound { }\n\nclass NotEnabled extends HTTP.UnprocessableEntity { }\nclass NotSupported extends HTTP.UnprocessableEntity { }\n\nclass ValidationError extends HTTP.BadRequest { }\n\nclass Timeout extends HTTP.RequestTimeout { }\n\nclass Conflict extends HTTP.Conflict { }\n\nclass Cancelled extends HTTP.Gone { }\n\nclass ConstraintViolation extends HTTP.Forbidden { }\nclass VersioningViolation extends HTTP.Forbidden { }\n\nclass Corruption extends HTTP.InternalServerError { }\nclass InvalidData extends HTTP.InternalServerError { }\nclass OperationFailed extends HTTP.InternalServerError { }\nclass StateViolation extends HTTP.InternalServerError { }\n\nclass Locked extends HTTP.Conflict { }\n\nclass NetworkError extends HTTP.InternalServerError { }\n\nclass Throttled extends HTTP.TooManyRequests { }\n\nclass FileSystemError extends HTTP.InternalServerError { }\nclass InternalError extends HTTP.InternalServerError { }\nclass UnknownError extends HTTP.InternalServerError { }\n\nclass NotImplemented extends HTTP.NotImplemented { }\n\nclass Aborted extends HTTP.BadRequest { }\n\nfunction lookupHttpStatusCategory(statusCode: number): StatusCategory {\n switch (statusCode) {\n case BentleyStatus.SUCCESS: return new Success();\n case BentleyStatus.ERROR: return new UnknownError();\n\n case IModelStatus.Success: return new Success();\n case IModelStatus.AlreadyLoaded: return new StateViolation();\n case IModelStatus.AlreadyOpen: return new StateViolation();\n case IModelStatus.BadArg: return new ValidationError();\n case IModelStatus.BadElement: return new ValidationError();\n case IModelStatus.BadModel: return new ValidationError();\n case IModelStatus.BadRequest: return new BadRequest();\n case IModelStatus.BadSchema: return new ValidationError();\n case IModelStatus.CannotUndo: return new OperationFailed();\n case IModelStatus.CodeNotReserved: return new StateViolation();\n case IModelStatus.DeletionProhibited: return new Forbidden();\n case IModelStatus.DuplicateCode: return new Conflict();\n case IModelStatus.DuplicateName: return new Conflict();\n case IModelStatus.ElementBlockedChange: return new ConstraintViolation();\n case IModelStatus.FileAlreadyExists: return new Conflict();\n case IModelStatus.FileNotFound: return new NotFound();\n case IModelStatus.FileNotLoaded: return new FileSystemError();\n case IModelStatus.ForeignKeyConstraint: return new ConstraintViolation();\n case IModelStatus.IdExists: return new Conflict();\n case IModelStatus.InDynamicTransaction: return new StateViolation();\n case IModelStatus.InvalidCategory: return new ValidationError();\n case IModelStatus.InvalidCode: return new ValidationError();\n case IModelStatus.InvalidCodeSpec: return new ValidationError();\n case IModelStatus.InvalidId: return new ValidationError();\n case IModelStatus.InvalidName: return new ValidationError();\n case IModelStatus.InvalidParent: return new Conflict();\n case IModelStatus.InvalidProfileVersion: return new InvalidData();\n case IModelStatus.IsCreatingChangeSet: return new StateViolation();\n case IModelStatus.LockNotHeld: return new Forbidden();\n case IModelStatus.Mismatch2d3d: return new ValidationError();\n case IModelStatus.MismatchGcs: return new ValidationError();\n case IModelStatus.MissingDomain: return new ValidationError();\n case IModelStatus.MissingHandler: return new ValidationError();\n case IModelStatus.MissingId: return new ValidationError();\n case IModelStatus.NoGeometry: return new NoContent();\n case IModelStatus.NoMultiTxnOperation: return new StateViolation();\n case IModelStatus.NotEnabled: return new NotEnabled();\n case IModelStatus.NotFound: return new NotFound();\n case IModelStatus.NotOpen: return new StateViolation();\n case IModelStatus.NotOpenForWrite: return new Forbidden();\n case IModelStatus.NotSameUnitBase: return new ValidationError();\n case IModelStatus.NothingToRedo: return new NothingToDo();\n case IModelStatus.NothingToUndo: return new NothingToDo();\n case IModelStatus.ParentBlockedChange: return new Forbidden();\n case IModelStatus.ReadError: return new FileSystemError();\n case IModelStatus.ReadOnly: return new ReadOnly();\n case IModelStatus.ReadOnlyDomain: return new ReadOnly();\n case IModelStatus.RepositoryManagerError: return new NetworkError();\n case IModelStatus.SQLiteError: return new InternalError();\n case IModelStatus.TransactionActive: return new StateViolation();\n case IModelStatus.UnitsMissing: return new ValidationError();\n case IModelStatus.UnknownFormat: return new InvalidData();\n case IModelStatus.UpgradeFailed: return new OperationFailed();\n case IModelStatus.ValidationFailed: return new ValidationError();\n case IModelStatus.VersionTooNew: return new VersioningViolation();\n case IModelStatus.VersionTooOld: return new VersioningViolation();\n case IModelStatus.ViewNotFound: return new NotFound();\n case IModelStatus.WriteError: return new FileSystemError();\n case IModelStatus.WrongClass: return new ValidationError();\n case IModelStatus.WrongIModel: return new ValidationError();\n case IModelStatus.WrongDomain: return new ValidationError();\n case IModelStatus.WrongElement: return new ValidationError();\n case IModelStatus.WrongHandler: return new ValidationError();\n case IModelStatus.WrongModel: return new ValidationError();\n case IModelStatus.ConstraintNotUnique: return new ConstraintViolation();\n case IModelStatus.NoGeoLocation: return new ValidationError();\n case IModelStatus.ServerTimeout: return new Timeout();\n case IModelStatus.NoContent: return new NoContent();\n case IModelStatus.NotRegistered: return new NotImplemented();\n case IModelStatus.FunctionNotFound: return new NotImplemented();\n case IModelStatus.NoActiveCommand: return new StateViolation();\n case IModelStatus.Aborted: return new Aborted();\n\n case BriefcaseStatus.CannotAcquire: return new OperationFailed();\n case BriefcaseStatus.CannotDownload: return new OperationFailed();\n case BriefcaseStatus.CannotUpload: return new OperationFailed();\n case BriefcaseStatus.CannotCopy: return new OperationFailed();\n case BriefcaseStatus.CannotDelete: return new OperationFailed();\n case BriefcaseStatus.VersionNotFound: return new NotFound();\n case BriefcaseStatus.CannotApplyChanges: return new OperationFailed();\n case BriefcaseStatus.DownloadCancelled: return new Cancelled();\n case BriefcaseStatus.ContainsDeletedChangeSets: return new ValidationError();\n\n case RpcInterfaceStatus.Success: return new Success();\n case RpcInterfaceStatus.IncompatibleVersion: return new VersioningViolation();\n\n case ChangeSetStatus.Success: return new Success();\n case ChangeSetStatus.ApplyError: return new OperationFailed();\n case ChangeSetStatus.ChangeTrackingNotEnabled: return new NotEnabled();\n case ChangeSetStatus.CorruptedChangeStream: return new Corruption();\n case ChangeSetStatus.FileNotFound: return new NotFound();\n case ChangeSetStatus.FileWriteError: return new FileSystemError();\n case ChangeSetStatus.HasLocalChanges: return new StateViolation();\n case ChangeSetStatus.HasUncommittedChanges: return new StateViolation();\n case ChangeSetStatus.InvalidId: return new Corruption();\n case ChangeSetStatus.InvalidVersion: return new Corruption();\n case ChangeSetStatus.InDynamicTransaction: return new StateViolation();\n case ChangeSetStatus.IsCreatingChangeSet: return new StateViolation();\n case ChangeSetStatus.IsNotCreatingChangeSet: return new StateViolation();\n case ChangeSetStatus.MergePropagationError: return new OperationFailed();\n case ChangeSetStatus.NothingToMerge: return new NothingToDo();\n case ChangeSetStatus.NoTransactions: return new OperationFailed();\n case ChangeSetStatus.ParentMismatch: return new ValidationError();\n case ChangeSetStatus.SQLiteError: return new InternalError();\n case ChangeSetStatus.WrongDgnDb: return new ValidationError();\n case ChangeSetStatus.CouldNotOpenDgnDb: return new OperationFailed();\n case ChangeSetStatus.MergeSchemaChangesOnOpen: return new BadRequest();\n case ChangeSetStatus.ReverseOrReinstateSchemaChanges: return new Conflict();\n case ChangeSetStatus.ProcessSchemaChangesOnOpen: return new BadRequest();\n case ChangeSetStatus.CannotMergeIntoReadonly: return new ValidationError();\n case ChangeSetStatus.CannotMergeIntoMaster: return new ValidationError();\n case ChangeSetStatus.CannotMergeIntoReversed: return new ValidationError();\n\n case RepositoryStatus.Success: return new Success();\n case RepositoryStatus.ServerUnavailable: return new NetworkError();\n case RepositoryStatus.LockAlreadyHeld: return new Conflict();\n case RepositoryStatus.SyncError: return new NetworkError();\n case RepositoryStatus.InvalidResponse: return new NetworkError();\n case RepositoryStatus.PendingTransactions: return new StateViolation();\n case RepositoryStatus.LockUsed: return new StateViolation();\n case RepositoryStatus.CannotCreateChangeSet: return new InternalError();\n case RepositoryStatus.InvalidRequest: return new NetworkError();\n case RepositoryStatus.ChangeSetRequired: return new StateViolation();\n case RepositoryStatus.CodeUnavailable: return new Conflict();\n case RepositoryStatus.CodeNotReserved: return new StateViolation();\n case RepositoryStatus.CodeUsed: return new StateViolation();\n case RepositoryStatus.LockNotHeld: return new Forbidden();\n case RepositoryStatus.RepositoryIsLocked: return new Locked();\n case RepositoryStatus.ChannelConstraintViolation: return new ConstraintViolation();\n\n case HttpStatus.Success: return new Success();\n\n case IModelHubStatus.Success: return new Success();\n case IModelHubStatus.Unknown: return new UnknownError();\n case IModelHubStatus.MissingRequiredProperties: return new ValidationError();\n case IModelHubStatus.InvalidPropertiesValues: return new ValidationError();\n case IModelHubStatus.UserDoesNotHavePermission: return new PermissionsViolation();\n case IModelHubStatus.UserDoesNotHaveAccess: return new PermissionsViolation();\n case IModelHubStatus.InvalidBriefcase: return new ValidationError();\n case IModelHubStatus.BriefcaseDoesNotExist: return new NotFound();\n case IModelHubStatus.BriefcaseDoesNotBelongToUser: return new PermissionsViolation();\n case IModelHubStatus.AnotherUserPushing: return new StateViolation();\n case IModelHubStatus.ChangeSetAlreadyExists: return new Conflict();\n case IModelHubStatus.ChangeSetDoesNotExist: return new NotFound();\n case IModelHubStatus.FileIsNotUploaded: return new StateViolation();\n case IModelHubStatus.iModelIsNotInitialized: return new StateViolation();\n case IModelHubStatus.ChangeSetPointsToBadSeed: return new InvalidData();\n case IModelHubStatus.OperationFailed: return new OperationFailed();\n case IModelHubStatus.PullIsRequired: return new StateViolation();\n case IModelHubStatus.MaximumNumberOfBriefcasesPerUser: return new Throttled();\n case IModelHubStatus.MaximumNumberOfBriefcasesPerUserPerMinute: return new Throttled();\n case IModelHubStatus.DatabaseTemporarilyLocked: return new Locked();\n case IModelHubStatus.iModelIsLocked: return new Locked();\n case IModelHubStatus.CodesExist: return new Conflict();\n case IModelHubStatus.LocksExist: return new Conflict();\n case IModelHubStatus.iModelAlreadyExists: return new Conflict();\n case IModelHubStatus.iModelDoesNotExist: return new NotFound();\n case IModelHubStatus.FileDoesNotExist: return new NotFound();\n case IModelHubStatus.FileAlreadyExists: return new Conflict();\n case IModelHubStatus.LockDoesNotExist: return new NotFound();\n case IModelHubStatus.LockOwnedByAnotherBriefcase: return new Conflict();\n case IModelHubStatus.CodeStateInvalid: return new StateViolation();\n case IModelHubStatus.CodeReservedByAnotherBriefcase: return new Conflict();\n case IModelHubStatus.CodeDoesNotExist: return new NotFound();\n case IModelHubStatus.EventTypeDoesNotExist: return new NotFound();\n case IModelHubStatus.EventSubscriptionDoesNotExist: return new NotFound();\n case IModelHubStatus.EventSubscriptionAlreadyExists: return new StateViolation();\n case IModelHubStatus.ITwinIdIsNotSpecified: return new ValidationError();\n case IModelHubStatus.FailedToGetITwinPermissions: return new OperationFailed();\n case IModelHubStatus.FailedToGetITwinMembers: return new OperationFailed();\n case IModelHubStatus.ChangeSetAlreadyHasVersion: return new Conflict();\n case IModelHubStatus.VersionAlreadyExists: return new Conflict();\n case IModelHubStatus.JobSchedulingFailed: return new InternalError();\n case IModelHubStatus.ConflictsAggregate: return new Conflict();\n case IModelHubStatus.FailedToGetITwinById: return new OperationFailed();\n case IModelHubStatus.DatabaseOperationFailed: return new OperationFailed();\n case IModelHubStatus.SeedFileInitializationFailed: return new OperationFailed();\n case IModelHubStatus.FailedToGetAssetPermissions: return new OperationFailed();\n case IModelHubStatus.FailedToGetAssetMembers: return new OperationFailed();\n case IModelHubStatus.ITwinDoesNotExist: return new NotFound();\n case IModelHubStatus.LockChunkDoesNotExist: return new NotFound();\n case IModelHubStatus.CheckpointAlreadyExists: return new Conflict();\n case IModelHubStatus.CheckpointDoesNotExist: return new NotFound();\n case IModelHubStatus.UndefinedArgumentError: return new ValidationError();\n case IModelHubStatus.InvalidArgumentError: return new ValidationError();\n case IModelHubStatus.MissingDownloadUrlError: return new ValidationError();\n case IModelHubStatus.NotSupportedInBrowser: return new NotSupported();\n case IModelHubStatus.FileHandlerNotSet: return new NotImplemented();\n case IModelHubStatus.FileNotFound: return new NotFound();\n case IModelHubStatus.InitializationTimeout: return new Timeout();\n\n case GeoServiceStatus.Success: return new Success();\n case GeoServiceStatus.NoGeoLocation: return new ValidationError();\n case GeoServiceStatus.OutOfUsefulRange: return new ValidationError();\n case GeoServiceStatus.OutOfMathematicalDomain: return new ValidationError();\n case GeoServiceStatus.NoDatumConverter: return new OperationFailed();\n case GeoServiceStatus.VerticalDatumConvertError: return new OperationFailed();\n case GeoServiceStatus.CSMapError: return new InternalError();\n case GeoServiceStatus.Pending: return new Pending();\n\n case RealityDataStatus.Success: return new Success();\n case RealityDataStatus.InvalidData: return new InvalidData();\n\n default: return new UnknownError();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"StatusCategory.js","sourceRoot":"","sources":["../../src/StatusCategory.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Errors\n */\n\nimport {\n BentleyError,\n BentleyStatus,\n BriefcaseStatus,\n ChangeSetStatus,\n GeoServiceStatus,\n HttpStatus,\n IModelHubStatus,\n IModelStatus,\n RealityDataStatus,\n RpcInterfaceStatus,\n} from \"./BentleyError\";\nimport { RepositoryStatus } from \"./internal/RepositoryStatus\";\n\n/* eslint-disable @typescript-eslint/no-shadow */\n\n/** @alpha */\nexport type StatusCategoryHandler = (error: Error) => StatusCategory | undefined;\n\n/** A group of related statuses for aggregate reporting purposes.\n * @alpha\n */\nexport abstract class StatusCategory {\n public static handlers: Set<StatusCategoryHandler> = new Set();\n\n public static for(error: Error): StatusCategory {\n for (const handler of this.handlers) {\n const category = handler(error);\n if (category) {\n return category;\n }\n }\n\n const errorNumber = (error as BentleyError).errorNumber as unknown;\n if (typeof errorNumber === \"number\")\n return lookupHttpStatusCategory(errorNumber);\n\n return new UnknownError();\n }\n\n public abstract name: string;\n public abstract code: number;\n public abstract error: boolean;\n}\n\n/***\n * A success status.\n * @alpha\n */\nexport abstract class SuccessCategory extends StatusCategory {\n public error = false;\n}\n\n/**\n * An error status.\n * @alpha\n */\nexport abstract class ErrorCategory extends StatusCategory {\n public error = true;\n}\n\nnamespace HTTP {\n export class OK extends SuccessCategory { public name = \"OK\"; public code = 200; }\n export class Accepted extends SuccessCategory { public name = \"Accepted\"; public code = 202; }\n export class NoContent extends SuccessCategory { public name = \"NoContent\"; public code = 204; }\n\n export class BadRequest extends ErrorCategory { public name = \"BadRequest\"; public code = 400; }\n export class Unauthorized extends ErrorCategory { public name = \"Unauthorized\"; public code = 401; }\n export class Forbidden extends ErrorCategory { public name = \"Forbidden\"; public code = 403; }\n export class NotFound extends ErrorCategory { public name = \"NotFound\"; public code = 404; }\n export class RequestTimeout extends ErrorCategory { public name = \"RequestTimeout\"; public code = 408; }\n export class Conflict extends ErrorCategory { public name = \"Conflict\"; public code = 409; }\n export class Gone extends ErrorCategory { public name = \"Gone\"; public code = 410; }\n export class PreconditionFailed extends ErrorCategory { public name = \"PreconditionFailed\"; public code = 412; }\n export class ExpectationFailed extends ErrorCategory { public name = \"ExpectationFailed\"; public code = 417; }\n export class MisdirectedRequest extends ErrorCategory { public name = \"MisdirectedRequest\"; public code = 421; }\n export class UnprocessableEntity extends ErrorCategory { public name = \"UnprocessableEntity\"; public code = 422; }\n export class UpgradeRequired extends ErrorCategory { public name = \"UpgradeRequired\"; public code = 426; }\n export class PreconditionRequired extends ErrorCategory { public name = \"PreconditionRequired\"; public code = 428; }\n export class TooManyRequests extends ErrorCategory { public name = \"TooManyRequests\"; public code = 429; }\n\n export class InternalServerError extends ErrorCategory { public name = \"InternalServerError\"; public code = 500; }\n export class NotImplemented extends ErrorCategory { public name = \"NotImplemented\"; public code = 501; }\n}\n\nclass Success extends HTTP.OK { }\n\nclass Pending extends HTTP.Accepted { }\n\nclass NoContent extends HTTP.NoContent { }\nclass NothingToDo extends HTTP.NoContent { }\n\nclass BadRequest extends HTTP.BadRequest { }\n\nclass Forbidden extends HTTP.Forbidden { }\nclass PermissionsViolation extends HTTP.Forbidden { }\nclass ReadOnly extends HTTP.Forbidden { }\n\nclass NotFound extends HTTP.NotFound { }\n\nclass NotEnabled extends HTTP.UnprocessableEntity { }\nclass NotSupported extends HTTP.UnprocessableEntity { }\n\nclass ValidationError extends HTTP.BadRequest { }\n\nclass Timeout extends HTTP.RequestTimeout { }\n\nclass Conflict extends HTTP.Conflict { }\n\nclass Cancelled extends HTTP.Gone { }\n\nclass ConstraintViolation extends HTTP.Forbidden { }\nclass VersioningViolation extends HTTP.Forbidden { }\n\nclass Corruption extends HTTP.InternalServerError { }\nclass InvalidData extends HTTP.InternalServerError { }\nclass OperationFailed extends HTTP.InternalServerError { }\nclass StateViolation extends HTTP.InternalServerError { }\n\nclass Locked extends HTTP.Conflict { }\n\nclass NetworkError extends HTTP.InternalServerError { }\n\nclass Throttled extends HTTP.TooManyRequests { }\n\nclass FileSystemError extends HTTP.InternalServerError { }\nclass InternalError extends HTTP.InternalServerError { }\nclass UnknownError extends HTTP.InternalServerError { }\n\nclass NotImplemented extends HTTP.NotImplemented { }\n\nclass Aborted extends HTTP.BadRequest { }\n\nfunction lookupHttpStatusCategory(statusCode: number): StatusCategory {\n switch (statusCode) {\n case BentleyStatus.SUCCESS: return new Success();\n case BentleyStatus.ERROR: return new UnknownError();\n\n case IModelStatus.Success: return new Success();\n case IModelStatus.AlreadyLoaded: return new StateViolation();\n case IModelStatus.AlreadyOpen: return new StateViolation();\n case IModelStatus.BadArg: return new ValidationError();\n case IModelStatus.BadElement: return new ValidationError();\n case IModelStatus.BadModel: return new ValidationError();\n case IModelStatus.BadRequest: return new BadRequest();\n case IModelStatus.BadSchema: return new ValidationError();\n case IModelStatus.CannotUndo: return new OperationFailed();\n case IModelStatus.CodeNotReserved: return new StateViolation();\n case IModelStatus.DeletionProhibited: return new Forbidden();\n case IModelStatus.DuplicateCode: return new Conflict();\n case IModelStatus.DuplicateName: return new Conflict();\n case IModelStatus.ElementBlockedChange: return new ConstraintViolation();\n case IModelStatus.FileAlreadyExists: return new Conflict();\n case IModelStatus.FileNotFound: return new NotFound();\n case IModelStatus.FileNotLoaded: return new FileSystemError();\n case IModelStatus.ForeignKeyConstraint: return new ConstraintViolation();\n case IModelStatus.IdExists: return new Conflict();\n case IModelStatus.InDynamicTransaction: return new StateViolation();\n case IModelStatus.InvalidCategory: return new ValidationError();\n case IModelStatus.InvalidCode: return new ValidationError();\n case IModelStatus.InvalidCodeSpec: return new ValidationError();\n case IModelStatus.InvalidId: return new ValidationError();\n case IModelStatus.InvalidName: return new ValidationError();\n case IModelStatus.InvalidParent: return new Conflict();\n case IModelStatus.InvalidProfileVersion: return new InvalidData();\n case IModelStatus.IsCreatingChangeSet: return new StateViolation();\n case IModelStatus.LockNotHeld: return new Forbidden();\n case IModelStatus.Mismatch2d3d: return new ValidationError();\n case IModelStatus.MismatchGcs: return new ValidationError();\n case IModelStatus.MissingDomain: return new ValidationError();\n case IModelStatus.MissingHandler: return new ValidationError();\n case IModelStatus.MissingId: return new ValidationError();\n case IModelStatus.NoGeometry: return new NoContent();\n case IModelStatus.NoMultiTxnOperation: return new StateViolation();\n case IModelStatus.NotEnabled: return new NotEnabled();\n case IModelStatus.NotFound: return new NotFound();\n case IModelStatus.NotOpen: return new StateViolation();\n case IModelStatus.NotOpenForWrite: return new Forbidden();\n case IModelStatus.NotSameUnitBase: return new ValidationError();\n case IModelStatus.NothingToRedo: return new NothingToDo();\n case IModelStatus.NothingToUndo: return new NothingToDo();\n case IModelStatus.ParentBlockedChange: return new Forbidden();\n case IModelStatus.ReadError: return new FileSystemError();\n case IModelStatus.ReadOnly: return new ReadOnly();\n case IModelStatus.ReadOnlyDomain: return new ReadOnly();\n case IModelStatus.RepositoryManagerError: return new NetworkError();\n case IModelStatus.SQLiteError: return new InternalError();\n case IModelStatus.TransactionActive: return new StateViolation();\n case IModelStatus.UnitsMissing: return new ValidationError();\n case IModelStatus.UnknownFormat: return new InvalidData();\n case IModelStatus.UpgradeFailed: return new OperationFailed();\n case IModelStatus.ValidationFailed: return new ValidationError();\n case IModelStatus.VersionTooNew: return new VersioningViolation();\n case IModelStatus.VersionTooOld: return new VersioningViolation();\n case IModelStatus.ViewNotFound: return new NotFound();\n case IModelStatus.WriteError: return new FileSystemError();\n case IModelStatus.WrongClass: return new ValidationError();\n case IModelStatus.WrongIModel: return new ValidationError();\n case IModelStatus.WrongDomain: return new ValidationError();\n case IModelStatus.WrongElement: return new ValidationError();\n case IModelStatus.WrongHandler: return new ValidationError();\n case IModelStatus.WrongModel: return new ValidationError();\n case IModelStatus.ConstraintNotUnique: return new ConstraintViolation();\n case IModelStatus.NoGeoLocation: return new ValidationError();\n case IModelStatus.ServerTimeout: return new Timeout();\n case IModelStatus.NoContent: return new NoContent();\n case IModelStatus.NotRegistered: return new NotImplemented();\n case IModelStatus.FunctionNotFound: return new NotImplemented();\n case IModelStatus.NoActiveCommand: return new StateViolation();\n case IModelStatus.Aborted: return new Aborted();\n\n case BriefcaseStatus.CannotAcquire: return new OperationFailed();\n case BriefcaseStatus.CannotDownload: return new OperationFailed();\n case BriefcaseStatus.CannotUpload: return new OperationFailed();\n case BriefcaseStatus.CannotCopy: return new OperationFailed();\n case BriefcaseStatus.CannotDelete: return new OperationFailed();\n case BriefcaseStatus.VersionNotFound: return new NotFound();\n case BriefcaseStatus.CannotApplyChanges: return new OperationFailed();\n case BriefcaseStatus.DownloadCancelled: return new Cancelled();\n case BriefcaseStatus.ContainsDeletedChangeSets: return new ValidationError();\n\n case RpcInterfaceStatus.Success: return new Success();\n case RpcInterfaceStatus.IncompatibleVersion: return new VersioningViolation();\n\n case ChangeSetStatus.Success: return new Success();\n case ChangeSetStatus.ApplyError: return new OperationFailed();\n case ChangeSetStatus.ChangeTrackingNotEnabled: return new NotEnabled();\n case ChangeSetStatus.CorruptedChangeStream: return new Corruption();\n case ChangeSetStatus.FileNotFound: return new NotFound();\n case ChangeSetStatus.FileWriteError: return new FileSystemError();\n case ChangeSetStatus.HasLocalChanges: return new StateViolation();\n case ChangeSetStatus.HasUncommittedChanges: return new StateViolation();\n case ChangeSetStatus.InvalidId: return new Corruption();\n case ChangeSetStatus.InvalidVersion: return new Corruption();\n case ChangeSetStatus.InDynamicTransaction: return new StateViolation();\n case ChangeSetStatus.IsCreatingChangeSet: return new StateViolation();\n case ChangeSetStatus.IsNotCreatingChangeSet: return new StateViolation();\n case ChangeSetStatus.MergePropagationError: return new OperationFailed();\n case ChangeSetStatus.NothingToMerge: return new NothingToDo();\n case ChangeSetStatus.NoTransactions: return new OperationFailed();\n case ChangeSetStatus.ParentMismatch: return new ValidationError();\n case ChangeSetStatus.SQLiteError: return new InternalError();\n case ChangeSetStatus.WrongDgnDb: return new ValidationError();\n case ChangeSetStatus.CouldNotOpenDgnDb: return new OperationFailed();\n case ChangeSetStatus.MergeSchemaChangesOnOpen: return new BadRequest();\n case ChangeSetStatus.ReverseOrReinstateSchemaChanges: return new Conflict();\n case ChangeSetStatus.ProcessSchemaChangesOnOpen: return new BadRequest();\n case ChangeSetStatus.CannotMergeIntoReadonly: return new ValidationError();\n case ChangeSetStatus.CannotMergeIntoMaster: return new ValidationError();\n case ChangeSetStatus.CannotMergeIntoReversed: return new ValidationError();\n\n case RepositoryStatus.Success: return new Success();\n case RepositoryStatus.ServerUnavailable: return new NetworkError();\n case RepositoryStatus.LockAlreadyHeld: return new Conflict();\n case RepositoryStatus.SyncError: return new NetworkError();\n case RepositoryStatus.InvalidResponse: return new NetworkError();\n case RepositoryStatus.PendingTransactions: return new StateViolation();\n case RepositoryStatus.LockUsed: return new StateViolation();\n case RepositoryStatus.CannotCreateChangeSet: return new InternalError();\n case RepositoryStatus.InvalidRequest: return new NetworkError();\n case RepositoryStatus.ChangeSetRequired: return new StateViolation();\n case RepositoryStatus.CodeUnavailable: return new Conflict();\n case RepositoryStatus.CodeNotReserved: return new StateViolation();\n case RepositoryStatus.CodeUsed: return new StateViolation();\n case RepositoryStatus.LockNotHeld: return new Forbidden();\n case RepositoryStatus.RepositoryIsLocked: return new Locked();\n case RepositoryStatus.ChannelConstraintViolation: return new ConstraintViolation();\n\n case HttpStatus.Success: return new Success();\n\n case IModelHubStatus.Success: return new Success();\n case IModelHubStatus.Unknown: return new UnknownError();\n case IModelHubStatus.MissingRequiredProperties: return new ValidationError();\n case IModelHubStatus.InvalidPropertiesValues: return new ValidationError();\n case IModelHubStatus.UserDoesNotHavePermission: return new PermissionsViolation();\n case IModelHubStatus.UserDoesNotHaveAccess: return new PermissionsViolation();\n case IModelHubStatus.InvalidBriefcase: return new ValidationError();\n case IModelHubStatus.BriefcaseDoesNotExist: return new NotFound();\n case IModelHubStatus.BriefcaseDoesNotBelongToUser: return new PermissionsViolation();\n case IModelHubStatus.AnotherUserPushing: return new StateViolation();\n case IModelHubStatus.ChangeSetAlreadyExists: return new Conflict();\n case IModelHubStatus.ChangeSetDoesNotExist: return new NotFound();\n case IModelHubStatus.FileIsNotUploaded: return new StateViolation();\n case IModelHubStatus.iModelIsNotInitialized: return new StateViolation();\n case IModelHubStatus.ChangeSetPointsToBadSeed: return new InvalidData();\n case IModelHubStatus.OperationFailed: return new OperationFailed();\n case IModelHubStatus.PullIsRequired: return new StateViolation();\n case IModelHubStatus.MaximumNumberOfBriefcasesPerUser: return new Throttled();\n case IModelHubStatus.MaximumNumberOfBriefcasesPerUserPerMinute: return new Throttled();\n case IModelHubStatus.DatabaseTemporarilyLocked: return new Locked();\n case IModelHubStatus.iModelIsLocked: return new Locked();\n case IModelHubStatus.CodesExist: return new Conflict();\n case IModelHubStatus.LocksExist: return new Conflict();\n case IModelHubStatus.iModelAlreadyExists: return new Conflict();\n case IModelHubStatus.iModelDoesNotExist: return new NotFound();\n case IModelHubStatus.FileDoesNotExist: return new NotFound();\n case IModelHubStatus.FileAlreadyExists: return new Conflict();\n case IModelHubStatus.LockDoesNotExist: return new NotFound();\n case IModelHubStatus.LockOwnedByAnotherBriefcase: return new Conflict();\n case IModelHubStatus.CodeStateInvalid: return new StateViolation();\n case IModelHubStatus.CodeReservedByAnotherBriefcase: return new Conflict();\n case IModelHubStatus.CodeDoesNotExist: return new NotFound();\n case IModelHubStatus.EventTypeDoesNotExist: return new NotFound();\n case IModelHubStatus.EventSubscriptionDoesNotExist: return new NotFound();\n case IModelHubStatus.EventSubscriptionAlreadyExists: return new StateViolation();\n case IModelHubStatus.ITwinIdIsNotSpecified: return new ValidationError();\n case IModelHubStatus.FailedToGetITwinPermissions: return new OperationFailed();\n case IModelHubStatus.FailedToGetITwinMembers: return new OperationFailed();\n case IModelHubStatus.ChangeSetAlreadyHasVersion: return new Conflict();\n case IModelHubStatus.VersionAlreadyExists: return new Conflict();\n case IModelHubStatus.JobSchedulingFailed: return new InternalError();\n case IModelHubStatus.ConflictsAggregate: return new Conflict();\n case IModelHubStatus.FailedToGetITwinById: return new OperationFailed();\n case IModelHubStatus.DatabaseOperationFailed: return new OperationFailed();\n case IModelHubStatus.SeedFileInitializationFailed: return new OperationFailed();\n case IModelHubStatus.FailedToGetAssetPermissions: return new OperationFailed();\n case IModelHubStatus.FailedToGetAssetMembers: return new OperationFailed();\n case IModelHubStatus.ITwinDoesNotExist: return new NotFound();\n case IModelHubStatus.LockChunkDoesNotExist: return new NotFound();\n case IModelHubStatus.CheckpointAlreadyExists: return new Conflict();\n case IModelHubStatus.CheckpointDoesNotExist: return new NotFound();\n case IModelHubStatus.UndefinedArgumentError: return new ValidationError();\n case IModelHubStatus.InvalidArgumentError: return new ValidationError();\n case IModelHubStatus.MissingDownloadUrlError: return new ValidationError();\n case IModelHubStatus.NotSupportedInBrowser: return new NotSupported();\n case IModelHubStatus.FileHandlerNotSet: return new NotImplemented();\n case IModelHubStatus.FileNotFound: return new NotFound();\n case IModelHubStatus.InitializationTimeout: return new Timeout();\n\n case GeoServiceStatus.Success: return new Success();\n case GeoServiceStatus.NoGeoLocation: return new ValidationError();\n case GeoServiceStatus.OutOfUsefulRange: return new ValidationError();\n case GeoServiceStatus.OutOfMathematicalDomain: return new ValidationError();\n case GeoServiceStatus.NoDatumConverter: return new OperationFailed();\n case GeoServiceStatus.VerticalDatumConvertError: return new OperationFailed();\n case GeoServiceStatus.CSMapError: return new InternalError();\n case GeoServiceStatus.Pending: return new Pending(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n case RealityDataStatus.Success: return new Success();\n case RealityDataStatus.InvalidData: return new InvalidData();\n\n default: return new UnknownError();\n }\n}\n"]}
|
package/lib/esm/Time.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* @public
|
|
11
11
|
*/
|
|
12
12
|
export class BeDuration {
|
|
13
|
+
_milliseconds;
|
|
13
14
|
constructor(milliseconds = 0) { this._milliseconds = milliseconds; }
|
|
14
15
|
/** The duration in milliseconds */
|
|
15
16
|
get milliseconds() { return this._milliseconds; }
|
|
@@ -76,6 +77,7 @@ export class BeDuration {
|
|
|
76
77
|
* @public
|
|
77
78
|
*/
|
|
78
79
|
export class BeTimePoint {
|
|
80
|
+
_milliseconds;
|
|
79
81
|
/** the time in milliseconds, of this BeTimePoint (relative to January 1, 1970 00:00:00 UTC.) */
|
|
80
82
|
get milliseconds() { return this._milliseconds; }
|
|
81
83
|
constructor(milliseconds) { this._milliseconds = milliseconds; }
|
|
@@ -114,6 +116,9 @@ export class BeTimePoint {
|
|
|
114
116
|
* @public
|
|
115
117
|
*/
|
|
116
118
|
export class StopWatch {
|
|
119
|
+
description;
|
|
120
|
+
_start;
|
|
121
|
+
_stop;
|
|
117
122
|
/** Get the elapsed time since start() on a running timer. */
|
|
118
123
|
get current() { return BeDuration.fromMilliseconds(BeTimePoint.now().milliseconds - (!!this._start ? this._start.milliseconds : 0)); }
|
|
119
124
|
/** Get the elapsed time, in seconds, since start() on a running timer. */
|
package/lib/esm/Time.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Time.js","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utils\n */\n\n/** A duration of time. Can be either positive (towards future) or negative (in the past).\n * BeDurations are immutable.\n * @public\n */\nexport class BeDuration {\n private readonly _milliseconds: number;\n private constructor(milliseconds: number = 0) { this._milliseconds = milliseconds; }\n\n /** The duration in milliseconds */\n public get milliseconds() { return this._milliseconds; }\n public get seconds() { return this._milliseconds / 1000; }\n\n /** Create a BeDuration from seconds.\n * @param seconds the number of seconds for this BeDuration\n */\n public static fromSeconds(seconds: number) { return new BeDuration(seconds * 1000); }\n /** Create a BeDuration from milliseconds.\n * @param milliseconds the number of milliseconds for this BeDuration\n */\n public static fromMilliseconds(milliseconds: number) { return new BeDuration(milliseconds); }\n /** Determine whether this BeDuration is 0 seconds */\n public get isZero() { return this._milliseconds === 0; }\n /** Determine whether this BeDuration is towards the future */\n public get isTowardsFuture(): boolean { return this._milliseconds > 0; }\n /** Determine whether this BeDuration is towards the past */\n public get isTowardsPast(): boolean { return this._milliseconds < 0; }\n /** Subtract a BeDuration from this BeDuration, returning a new BeDuration. */\n public minus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds - other._milliseconds); }\n /** Add a BeDuration to this BeDuration, returning a new BeDuration */\n public plus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds + other._milliseconds); }\n\n /** Utility function to just wait for the specified time\n * @param ms Duration in milliseconds to wait\n * @return Promise that resolves after the specified wait period\n */\n public static async wait(ms: number): Promise<void> {\n return new Promise<void>((resolve: any) => setTimeout(resolve, ms));\n }\n\n /** Utility function to wait for either the specified time or a promise, whichever resolves first\n * @param ms Maximum duration in milliseconds to wait\n * @param promise A pending promise to wait for\n * @return Promise that resolves after the specified wait period or the provided promise resolves, whichever comes first\n */\n public static async race<T>(ms: number, promise: PromiseLike<T>): Promise<T | void> {\n let timeout: any;\n const waitPromise = new Promise<void>((resolve) => {\n timeout = setTimeout(resolve, ms);\n });\n return Promise.race([waitPromise, promise]).finally(() => {\n if (timeout)\n clearTimeout(timeout);\n });\n }\n\n /** Utility function to just wait for the specified time\n * @return Promise that resolves after the specified wait period\n */\n public async wait(): Promise<void> {\n return new Promise<void>((resolve: any) => setTimeout(resolve, this._milliseconds));\n }\n\n /** Execute a function after delaying by this duration.\n * @param fn the function to execute after the delay\n * @param scope An optional object scope to serve as the 'this' pointer when `fn` is invoked.\n * @param args optional arguments to `fn`\n * @return Promise resolved by `fn`\n */\n public async executeAfter<T>(fn: (...args: any[]) => T, scope?: any, ...args: any[]): Promise<T> {\n return new Promise<T>((resolve: any) => setTimeout(() => resolve(fn.apply(scope, args)), this._milliseconds));\n }\n}\n\n/** A specific point in time relative to the current time.\n * BeTimePoints are used for timing operations. They are created from a BeDuration relative to the \"now\".\n * BeTimePoints are immutable.\n * @public\n */\nexport class BeTimePoint {\n private readonly _milliseconds: number;\n /** the time in milliseconds, of this BeTimePoint (relative to January 1, 1970 00:00:00 UTC.) */\n public get milliseconds() { return this._milliseconds; }\n private constructor(milliseconds: number) { this._milliseconds = milliseconds; }\n\n /** Create a BeTimePoint from Date.now() */\n public static now() { return new BeTimePoint(Date.now()); }\n\n /** Create a BeTimePoint at a specified duration in the future from now\n * @param val the duration from now\n */\n public static fromNow(val: BeDuration) { return new BeTimePoint(Date.now() + val.milliseconds); }\n\n /** Create a BeTimePoint at a specified duration in the past before now\n * @param val the duration before now\n */\n public static beforeNow(val: BeDuration) { return new BeTimePoint(Date.now() - val.milliseconds); }\n\n /** Determine whether this BeTimePoint is a time in the future from the time this method is called (it calls now()!) */\n public get isInFuture(): boolean { return Date.now() < this._milliseconds; }\n\n /** Determine whether this BeTimePoint is a time that has already passed before the time this method is called (it calls now()!) */\n public get isInPast(): boolean { return Date.now() > this._milliseconds; }\n\n /** Determine whether this BeTimePoint happens before another one.\n * @param other the other BeTimePoint.\n */\n public before(other: BeTimePoint): boolean { return this._milliseconds < other._milliseconds; }\n\n /** Determine whether this BeTimePoint happens after another one.\n * @param other the other BeTimePoint.\n */\n public after(other: BeTimePoint): boolean { return this._milliseconds > other._milliseconds; }\n\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\n * @param duration the duration to subtract.\n */\n public minus(duration: BeDuration): BeTimePoint { return new BeTimePoint(this._milliseconds - duration.milliseconds); }\n\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\n * @param duration the duration to subtract.\n */\n public plus(duration: BeDuration) { return new BeTimePoint(this._milliseconds + duration.milliseconds); }\n}\n\n/** A StopWatch for timing operations.\n * @public\n */\nexport class StopWatch {\n private _start?: BeTimePoint;\n private _stop?: BeTimePoint;\n /** Get the elapsed time since start() on a running timer. */\n public get current(): BeDuration { return BeDuration.fromMilliseconds(BeTimePoint.now().milliseconds - (!!this._start ? this._start.milliseconds : 0)); }\n /** Get the elapsed time, in seconds, since start() on a running timer. */\n public get currentSeconds(): number { return this.current.seconds; }\n /** Get the elapsed time between start() and stop() on this timer in milliseconds. */\n public get elapsed(): BeDuration { return BeDuration.fromMilliseconds((!!this._stop ? this._stop.milliseconds : BeTimePoint.now().milliseconds) - (!!this._start ? this._start.milliseconds : 0)); }\n /** Get the elapsed time, in seconds, between start() and stop() on this timer. */\n public get elapsedSeconds(): number { return this.elapsed.seconds; }\n /** ctor for StopWatch\n * @param description optional string stored with the StopWatch\n * @param startImmediately if true, StopWatch is started when created. Otherwise, call start() explicitly.\n */\n constructor(public description?: string, startImmediately = false) {\n if (startImmediately)\n this.start();\n }\n\n /** Start the stopwatch. Any future time measurements will be based on this new value. */\n public start(): void {\n this.reset();\n this._start = BeTimePoint.now();\n }\n\n /** Stop the stopwatch so that the duration can be viewed later. */\n public stop(): BeDuration {\n this._stop = BeTimePoint.now();\n return this.elapsed;\n }\n\n /** Clear the StopWatch */\n public reset(): void { this._start = this._stop = undefined; }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Time.js","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utils\n */\n\n/** A duration of time. Can be either positive (towards future) or negative (in the past).\n * BeDurations are immutable.\n * @public\n */\nexport class BeDuration {\n private readonly _milliseconds: number;\n private constructor(milliseconds: number = 0) { this._milliseconds = milliseconds; }\n\n /** The duration in milliseconds */\n public get milliseconds() { return this._milliseconds; }\n public get seconds() { return this._milliseconds / 1000; }\n\n /** Create a BeDuration from seconds.\n * @param seconds the number of seconds for this BeDuration\n */\n public static fromSeconds(seconds: number) { return new BeDuration(seconds * 1000); }\n /** Create a BeDuration from milliseconds.\n * @param milliseconds the number of milliseconds for this BeDuration\n */\n public static fromMilliseconds(milliseconds: number) { return new BeDuration(milliseconds); }\n /** Determine whether this BeDuration is 0 seconds */\n public get isZero() { return this._milliseconds === 0; }\n /** Determine whether this BeDuration is towards the future */\n public get isTowardsFuture(): boolean { return this._milliseconds > 0; }\n /** Determine whether this BeDuration is towards the past */\n public get isTowardsPast(): boolean { return this._milliseconds < 0; }\n /** Subtract a BeDuration from this BeDuration, returning a new BeDuration. */\n public minus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds - other._milliseconds); }\n /** Add a BeDuration to this BeDuration, returning a new BeDuration */\n public plus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds + other._milliseconds); }\n\n /** Utility function to just wait for the specified time\n * @param ms Duration in milliseconds to wait\n * @return Promise that resolves after the specified wait period\n */\n public static async wait(ms: number): Promise<void> {\n return new Promise<void>((resolve: any) => setTimeout(resolve, ms));\n }\n\n /** Utility function to wait for either the specified time or a promise, whichever resolves first\n * @param ms Maximum duration in milliseconds to wait\n * @param promise A pending promise to wait for\n * @return Promise that resolves after the specified wait period or the provided promise resolves, whichever comes first\n */\n public static async race<T>(ms: number, promise: PromiseLike<T>): Promise<T | void> {\n let timeout: any;\n const waitPromise = new Promise<void>((resolve) => {\n timeout = setTimeout(resolve, ms);\n });\n return Promise.race([waitPromise, promise]).finally(() => {\n if (timeout)\n clearTimeout(timeout);\n });\n }\n\n /** Utility function to just wait for the specified time\n * @return Promise that resolves after the specified wait period\n */\n public async wait(): Promise<void> {\n return new Promise<void>((resolve: any) => setTimeout(resolve, this._milliseconds));\n }\n\n /** Execute a function after delaying by this duration.\n * @param fn the function to execute after the delay\n * @param scope An optional object scope to serve as the 'this' pointer when `fn` is invoked.\n * @param args optional arguments to `fn`\n * @return Promise resolved by `fn`\n */\n public async executeAfter<T>(fn: (...args: any[]) => T, scope?: any, ...args: any[]): Promise<T> {\n return new Promise<T>((resolve: any) => setTimeout(() => resolve(fn.apply(scope, args)), this._milliseconds));\n }\n}\n\n/** A specific point in time relative to the current time.\n * BeTimePoints are used for timing operations. They are created from a BeDuration relative to the \"now\".\n * BeTimePoints are immutable.\n * @public\n */\nexport class BeTimePoint {\n private readonly _milliseconds: number;\n /** the time in milliseconds, of this BeTimePoint (relative to January 1, 1970 00:00:00 UTC.) */\n public get milliseconds() { return this._milliseconds; }\n private constructor(milliseconds: number) { this._milliseconds = milliseconds; }\n\n /** Create a BeTimePoint from Date.now() */\n public static now() { return new BeTimePoint(Date.now()); }\n\n /** Create a BeTimePoint at a specified duration in the future from now\n * @param val the duration from now\n */\n public static fromNow(val: BeDuration) { return new BeTimePoint(Date.now() + val.milliseconds); }\n\n /** Create a BeTimePoint at a specified duration in the past before now\n * @param val the duration before now\n */\n public static beforeNow(val: BeDuration) { return new BeTimePoint(Date.now() - val.milliseconds); }\n\n /** Determine whether this BeTimePoint is a time in the future from the time this method is called (it calls now()!) */\n public get isInFuture(): boolean { return Date.now() < this._milliseconds; }\n\n /** Determine whether this BeTimePoint is a time that has already passed before the time this method is called (it calls now()!) */\n public get isInPast(): boolean { return Date.now() > this._milliseconds; }\n\n /** Determine whether this BeTimePoint happens before another one.\n * @param other the other BeTimePoint.\n */\n public before(other: BeTimePoint): boolean { return this._milliseconds < other._milliseconds; }\n\n /** Determine whether this BeTimePoint happens after another one.\n * @param other the other BeTimePoint.\n */\n public after(other: BeTimePoint): boolean { return this._milliseconds > other._milliseconds; }\n\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\n * @param duration the duration to subtract.\n */\n public minus(duration: BeDuration): BeTimePoint { return new BeTimePoint(this._milliseconds - duration.milliseconds); }\n\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\n * @param duration the duration to subtract.\n */\n public plus(duration: BeDuration) { return new BeTimePoint(this._milliseconds + duration.milliseconds); }\n}\n\n/** A StopWatch for timing operations.\n * @public\n */\nexport class StopWatch {\n private _start?: BeTimePoint;\n private _stop?: BeTimePoint;\n /** Get the elapsed time since start() on a running timer. */\n public get current(): BeDuration { return BeDuration.fromMilliseconds(BeTimePoint.now().milliseconds - (!!this._start ? this._start.milliseconds : 0)); }\n /** Get the elapsed time, in seconds, since start() on a running timer. */\n public get currentSeconds(): number { return this.current.seconds; }\n /** Get the elapsed time between start() and stop() on this timer in milliseconds. */\n public get elapsed(): BeDuration { return BeDuration.fromMilliseconds((!!this._stop ? this._stop.milliseconds : BeTimePoint.now().milliseconds) - (!!this._start ? this._start.milliseconds : 0)); }\n /** Get the elapsed time, in seconds, between start() and stop() on this timer. */\n public get elapsedSeconds(): number { return this.elapsed.seconds; }\n /** ctor for StopWatch\n * @param description optional string stored with the StopWatch\n * @param startImmediately if true, StopWatch is started when created. Otherwise, call start() explicitly.\n */\n constructor(public description?: string, startImmediately = false) {\n if (startImmediately)\n this.start();\n }\n\n /** Start the stopwatch. Any future time measurements will be based on this new value. */\n public start(): void {\n this.reset();\n this._start = BeTimePoint.now();\n }\n\n /** Stop the stopwatch so that the duration can be viewed later. */\n public stop(): BeDuration {\n this._stop = BeTimePoint.now();\n return this.elapsed;\n }\n\n /** Clear the StopWatch */\n public reset(): void { this._start = this._stop = undefined; }\n}\n"]}
|
package/lib/esm/Tracing.js
CHANGED
|
@@ -73,6 +73,8 @@ function flattenObject(obj) {
|
|
|
73
73
|
* @deprecated in 4.4 - OpenTelemetry Tracing helpers will become internal in a future release. Apps should use `@opentelemetry/api` directly.
|
|
74
74
|
*/
|
|
75
75
|
export class Tracing {
|
|
76
|
+
static _tracer;
|
|
77
|
+
static _openTelemetry;
|
|
76
78
|
/**
|
|
77
79
|
* If OpenTelemetry tracing is enabled, creates a new span and runs the provided function in it.
|
|
78
80
|
* If OpenTelemetry tracing is _not_ enabled, runs the provided function.
|
package/lib/esm/Tracing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tracing.js","sourceRoot":"","sources":["../../src/Tracing.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Logging\n */\n\nimport type { ContextAPI, SpanAttributes, SpanAttributeValue, SpanContext, SpanOptions, TraceAPI, Tracer } from \"@opentelemetry/api\";\nimport { LogFunction, Logger, LogLevel } from \"./Logger\";\n\n// re-export so that consumers can construct full SpanOptions object without external dependencies\n/**\n * Mirrors the SpanKind enum from [@opentelemetry/api](https://open-telemetry.github.io/opentelemetry-js/enums/_opentelemetry_api.SpanKind.html)\n * @public\n * @deprecated in 4.4 - OpenTelemetry Tracing helpers will become internal in a future release. Apps should use `@opentelemetry/api` directly.\n */\nexport enum SpanKind {\n INTERNAL = 0,\n SERVER = 1,\n CLIENT = 2,\n PRODUCER = 3,\n CONSUMER = 4\n}\n\nfunction isValidPrimitive(val: unknown): val is SpanAttributeValue {\n return typeof val === \"string\" || typeof val === \"number\" || typeof val === \"boolean\";\n}\n\n// Only _homogenous_ arrays of strings, numbers, or booleans are supported as OpenTelemetry Attribute values.\n// Per the spec (https://opentelemetry.io/docs/reference/specification/common/common/#attribute), empty arrays and null values are supported too.\nfunction isValidPrimitiveArray(val: unknown): val is SpanAttributeValue {\n if (!Array.isArray(val))\n return false;\n\n let itemType;\n for (const x of val) {\n if (x === undefined || x === null)\n continue;\n\n if (!itemType) {\n itemType = typeof x;\n if (!isValidPrimitive(x))\n return false;\n }\n\n if (typeof x !== itemType)\n return false;\n }\n return true;\n}\n\nfunction isPlainObject(obj: unknown): obj is object {\n return typeof obj === \"object\" && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n\nfunction* getFlatEntries(obj: unknown, path = \"\"): Iterable<[string, SpanAttributeValue]> {\n if (isValidPrimitiveArray(obj)) {\n yield [path, obj];\n return;\n }\n\n // Prefer JSON serialization over flattening for any non-POJO types.\n // There's just too many ways trying to flatten those can go wrong (Dates, Buffers, TypedArrays, etc.)\n if (!isPlainObject(obj) && !Array.isArray(obj)) {\n yield [path, isValidPrimitive(obj) ? obj : JSON.stringify(obj)];\n return;\n }\n\n // Always serialize empty objects/arrays as empty array values\n const entries = Object.entries(obj);\n if (entries.length === 0)\n yield [path, []];\n\n for (const [key, val] of entries)\n yield* getFlatEntries(val, (path === \"\") ? key : `${path}.${key}`);\n}\n\nfunction flattenObject(obj: object): SpanAttributes {\n return Object.fromEntries(getFlatEntries(obj));\n}\n\n/* eslint-disable @typescript-eslint/no-deprecated -- lots of self-references here... */\n\n/**\n * Enables OpenTelemetry tracing in addition to traditional logging.\n * @public\n * @deprecated in 4.4 - OpenTelemetry Tracing helpers will become internal in a future release. Apps should use `@opentelemetry/api` directly.\n */\nexport class Tracing {\n private static _tracer?: Tracer;\n private static _openTelemetry?: { trace: Pick<TraceAPI, \"setSpan\" | \"setSpanContext\" | \"getSpan\">, context: Pick<ContextAPI, \"active\" | \"with\"> };\n\n /**\n * If OpenTelemetry tracing is enabled, creates a new span and runs the provided function in it.\n * If OpenTelemetry tracing is _not_ enabled, runs the provided function.\n * @param name name of the new span\n * @param fn function to run inside the new span\n * @param options span options\n * @param parentContext optional context used to retrieve parent span id\n */\n public static async withSpan<T>(name: string, fn: () => Promise<T>, options?: SpanOptions, parentContext?: SpanContext): Promise<T> {\n if (Tracing._tracer === undefined || Tracing._openTelemetry === undefined)\n return fn();\n\n // this case is for context propagation - parentContext is typically constructed from HTTP headers\n const parent = parentContext === undefined\n ? Tracing._openTelemetry.context.active()\n : Tracing._openTelemetry.trace.setSpanContext(Tracing._openTelemetry.context.active(), parentContext);\n\n return Tracing._openTelemetry.context.with(\n Tracing._openTelemetry.trace.setSpan(\n parent,\n Tracing._tracer.startSpan(name, options, Tracing._openTelemetry.context.active()),\n ),\n async () => {\n try {\n return await fn();\n } catch (err) {\n if (err instanceof Error) // ignore non-Error throws, such as RpcControlResponse\n Tracing._openTelemetry?.trace.getSpan(Tracing._openTelemetry.context.active())?.setAttribute(\"error\", true);\n throw err;\n } finally {\n Tracing._openTelemetry?.trace.getSpan(Tracing._openTelemetry.context.active())?.end();\n }\n },\n );\n }\n\n /**\n * Adds a span event describing a runtime exception, as advised in OpenTelemetry documentation\n * @param e error (exception) object\n */\n public static recordException(e: Error) {\n Tracing._openTelemetry?.trace.getSpan(Tracing._openTelemetry.context.active())?.recordException(e);\n }\n\n /**\n * Enable logging to OpenTelemetry. [[Tracing.withSpan]] will be enabled, all log entries will be attached to active span as span events.\n * [IModelHost.startup]($backend) will call this automatically if the `enableOpenTelemetry` option is enabled and it succeeds in requiring `@opentelemetry/api`.\n * @note Node.js OpenTelemetry SDK should be initialized by the user.\n */\n public static enableOpenTelemetry(tracer: Tracer, api: typeof Tracing._openTelemetry) {\n Tracing._tracer = tracer;\n Tracing._openTelemetry = api;\n Logger.logTrace = Tracing.withOpenTelemetry(LogLevel.Trace, Logger.logTrace.bind(Logger)).bind(Logger);\n Logger.logInfo = Tracing.withOpenTelemetry(LogLevel.Info, Logger.logInfo.bind(Logger)).bind(Logger);\n Logger.logWarning = Tracing.withOpenTelemetry(LogLevel.Warning, Logger.logWarning.bind(Logger)).bind(Logger);\n Logger.logError = Tracing.withOpenTelemetry(LogLevel.Error, Logger.logError.bind(Logger)).bind(Logger);\n }\n\n private static withOpenTelemetry(level: LogLevel, base: LogFunction, isError: boolean = false): LogFunction {\n return (category, message, metaData) => {\n const oTelContext = Tracing._openTelemetry?.context.active();\n if(Tracing._openTelemetry === undefined || oTelContext === undefined)\n return base(category, message, metaData);\n\n const serializedMetadata = Logger.getMetaData(metaData);\n if(Logger.isEnabled(category, level)) {\n try {\n Tracing._openTelemetry?.trace\n .getSpan(Tracing._openTelemetry.context.active())\n ?.addEvent(message, {\n ...flattenObject(serializedMetadata),\n error: isError,\n loggerCategory: category,\n });\n } catch { } // avoid throwing random errors (with stack trace mangled by async hooks) when openTelemetry collector doesn't work\n\n const spanContext = Tracing._openTelemetry.trace.getSpan(oTelContext)?.spanContext();\n base(category, message, {\n ...serializedMetadata,\n /* eslint-disable @typescript-eslint/naming-convention */\n trace_id: spanContext?.traceId,\n span_id: spanContext?.spanId,\n trace_flags: spanContext?.traceFlags,\n /* eslint-enable @typescript-eslint/naming-convention */\n });\n }\n };\n }\n\n /** Set attributes on currently active openTelemetry span. Doesn't do anything if openTelemetry logging is not initialized.\n * @param attributes The attributes to set\n */\n public static setAttributes(attributes: SpanAttributes) {\n Tracing._openTelemetry?.trace.getSpan(Tracing._openTelemetry.context.active())?.setAttributes(attributes);\n }\n}\n\n/* eslint-enable @typescript-eslint/no-deprecated */\n"]}
|
|
1
|
+
{"version":3,"file":"Tracing.js","sourceRoot":"","sources":["../../src/Tracing.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Logging\n */\n\nimport type { ContextAPI, SpanAttributes, SpanAttributeValue, SpanContext, SpanOptions, TraceAPI, Tracer } from \"@opentelemetry/api\";\nimport { LogFunction, Logger, LogLevel } from \"./Logger\";\n\n// re-export so that consumers can construct full SpanOptions object without external dependencies\n/**\n * Mirrors the SpanKind enum from [@opentelemetry/api](https://open-telemetry.github.io/opentelemetry-js/enums/_opentelemetry_api.SpanKind.html)\n * @public\n * @deprecated in 4.4 - OpenTelemetry Tracing helpers will become internal in a future release. Apps should use `@opentelemetry/api` directly.\n */\nexport enum SpanKind {\n INTERNAL = 0,\n SERVER = 1,\n CLIENT = 2,\n PRODUCER = 3,\n CONSUMER = 4\n}\n\nfunction isValidPrimitive(val: unknown): val is SpanAttributeValue {\n return typeof val === \"string\" || typeof val === \"number\" || typeof val === \"boolean\";\n}\n\n// Only _homogenous_ arrays of strings, numbers, or booleans are supported as OpenTelemetry Attribute values.\n// Per the spec (https://opentelemetry.io/docs/reference/specification/common/common/#attribute), empty arrays and null values are supported too.\nfunction isValidPrimitiveArray(val: unknown): val is SpanAttributeValue {\n if (!Array.isArray(val))\n return false;\n\n let itemType;\n for (const x of val) {\n if (x === undefined || x === null)\n continue;\n\n if (!itemType) {\n itemType = typeof x;\n if (!isValidPrimitive(x))\n return false;\n }\n\n if (typeof x !== itemType)\n return false;\n }\n return true;\n}\n\nfunction isPlainObject(obj: unknown): obj is object {\n return typeof obj === \"object\" && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n\nfunction* getFlatEntries(obj: unknown, path = \"\"): Iterable<[string, SpanAttributeValue]> {\n if (isValidPrimitiveArray(obj)) {\n yield [path, obj];\n return;\n }\n\n // Prefer JSON serialization over flattening for any non-POJO types.\n // There's just too many ways trying to flatten those can go wrong (Dates, Buffers, TypedArrays, etc.)\n if (!isPlainObject(obj) && !Array.isArray(obj)) {\n yield [path, isValidPrimitive(obj) ? obj : JSON.stringify(obj)];\n return;\n }\n\n // Always serialize empty objects/arrays as empty array values\n const entries = Object.entries(obj);\n if (entries.length === 0)\n yield [path, []];\n\n for (const [key, val] of entries)\n yield* getFlatEntries(val, (path === \"\") ? key : `${path}.${key}`);\n}\n\nfunction flattenObject(obj: object): SpanAttributes {\n return Object.fromEntries(getFlatEntries(obj));\n}\n\n/* eslint-disable @typescript-eslint/no-deprecated -- lots of self-references here... */\n\n/**\n * Enables OpenTelemetry tracing in addition to traditional logging.\n * @public\n * @deprecated in 4.4 - OpenTelemetry Tracing helpers will become internal in a future release. Apps should use `@opentelemetry/api` directly.\n */\nexport class Tracing {\n private static _tracer?: Tracer;\n private static _openTelemetry?: { trace: Pick<TraceAPI, \"setSpan\" | \"setSpanContext\" | \"getSpan\">, context: Pick<ContextAPI, \"active\" | \"with\"> };\n\n /**\n * If OpenTelemetry tracing is enabled, creates a new span and runs the provided function in it.\n * If OpenTelemetry tracing is _not_ enabled, runs the provided function.\n * @param name name of the new span\n * @param fn function to run inside the new span\n * @param options span options\n * @param parentContext optional context used to retrieve parent span id\n */\n public static async withSpan<T>(name: string, fn: () => Promise<T>, options?: SpanOptions, parentContext?: SpanContext): Promise<T> {\n if (Tracing._tracer === undefined || Tracing._openTelemetry === undefined)\n return fn();\n\n // this case is for context propagation - parentContext is typically constructed from HTTP headers\n const parent = parentContext === undefined\n ? Tracing._openTelemetry.context.active()\n : Tracing._openTelemetry.trace.setSpanContext(Tracing._openTelemetry.context.active(), parentContext);\n\n return Tracing._openTelemetry.context.with(\n Tracing._openTelemetry.trace.setSpan(\n parent,\n Tracing._tracer.startSpan(name, options, Tracing._openTelemetry.context.active()),\n ),\n async () => {\n try {\n return await fn();\n } catch (err) {\n if (err instanceof Error) // ignore non-Error throws, such as RpcControlResponse\n Tracing._openTelemetry?.trace.getSpan(Tracing._openTelemetry.context.active())?.setAttribute(\"error\", true);\n throw err;\n } finally {\n Tracing._openTelemetry?.trace.getSpan(Tracing._openTelemetry.context.active())?.end();\n }\n },\n );\n }\n\n /**\n * Adds a span event describing a runtime exception, as advised in OpenTelemetry documentation\n * @param e error (exception) object\n */\n public static recordException(e: Error) {\n Tracing._openTelemetry?.trace.getSpan(Tracing._openTelemetry.context.active())?.recordException(e);\n }\n\n /**\n * Enable logging to OpenTelemetry. [[Tracing.withSpan]] will be enabled, all log entries will be attached to active span as span events.\n * [IModelHost.startup]($backend) will call this automatically if the `enableOpenTelemetry` option is enabled and it succeeds in requiring `@opentelemetry/api`.\n * @note Node.js OpenTelemetry SDK should be initialized by the user.\n */\n public static enableOpenTelemetry(tracer: Tracer, api: typeof Tracing._openTelemetry) {\n Tracing._tracer = tracer;\n Tracing._openTelemetry = api;\n Logger.logTrace = Tracing.withOpenTelemetry(LogLevel.Trace, Logger.logTrace.bind(Logger)).bind(Logger);\n Logger.logInfo = Tracing.withOpenTelemetry(LogLevel.Info, Logger.logInfo.bind(Logger)).bind(Logger);\n Logger.logWarning = Tracing.withOpenTelemetry(LogLevel.Warning, Logger.logWarning.bind(Logger)).bind(Logger);\n Logger.logError = Tracing.withOpenTelemetry(LogLevel.Error, Logger.logError.bind(Logger)).bind(Logger);\n }\n\n private static withOpenTelemetry(level: LogLevel, base: LogFunction, isError: boolean = false): LogFunction {\n return (category, message, metaData) => {\n const oTelContext = Tracing._openTelemetry?.context.active();\n if(Tracing._openTelemetry === undefined || oTelContext === undefined)\n return base(category, message, metaData);\n\n const serializedMetadata = Logger.getMetaData(metaData);\n if(Logger.isEnabled(category, level)) {\n try {\n Tracing._openTelemetry?.trace\n .getSpan(Tracing._openTelemetry.context.active())\n ?.addEvent(message, {\n ...flattenObject(serializedMetadata),\n error: isError,\n loggerCategory: category,\n });\n } catch { } // avoid throwing random errors (with stack trace mangled by async hooks) when openTelemetry collector doesn't work\n\n const spanContext = Tracing._openTelemetry.trace.getSpan(oTelContext)?.spanContext();\n base(category, message, {\n ...serializedMetadata,\n /* eslint-disable @typescript-eslint/naming-convention */\n trace_id: spanContext?.traceId,\n span_id: spanContext?.spanId,\n trace_flags: spanContext?.traceFlags,\n /* eslint-enable @typescript-eslint/naming-convention */\n });\n }\n };\n }\n\n /** Set attributes on currently active openTelemetry span. Doesn't do anything if openTelemetry logging is not initialized.\n * @param attributes The attributes to set\n */\n public static setAttributes(attributes: SpanAttributes) {\n Tracing._openTelemetry?.trace.getSpan(Tracing._openTelemetry.context.active())?.setAttributes(attributes);\n }\n}\n\n/* eslint-enable @typescript-eslint/no-deprecated */\n"]}
|
package/lib/esm/TupleKeyedMap.js
CHANGED
|
@@ -26,10 +26,9 @@
|
|
|
26
26
|
* @public
|
|
27
27
|
*/
|
|
28
28
|
export class TupleKeyedMap {
|
|
29
|
+
_map = new Map();
|
|
29
30
|
// argument types match those of Map
|
|
30
31
|
constructor(entries) {
|
|
31
|
-
this._map = new Map();
|
|
32
|
-
this._size = 0;
|
|
33
32
|
if (entries)
|
|
34
33
|
for (const [k, v] of entries) {
|
|
35
34
|
this.set(k, v);
|
|
@@ -89,6 +88,7 @@ export class TupleKeyedMap {
|
|
|
89
88
|
}
|
|
90
89
|
yield* impl(this._map, []);
|
|
91
90
|
}
|
|
91
|
+
_size = 0;
|
|
92
92
|
get size() {
|
|
93
93
|
return this._size;
|
|
94
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TupleKeyedMap.js","sourceRoot":"","sources":["../../src/TupleKeyedMap.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,aAAa;
|
|
1
|
+
{"version":3,"file":"TupleKeyedMap.js","sourceRoot":"","sources":["../../src/TupleKeyedMap.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,aAAa;IAChB,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEhD,oCAAoC;IACpC,YAAmB,OAA6C;QAC9D,IAAI,OAAO;YACT,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjB,CAAC;IACL,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAEO,YAAY;QAClB,OAAO,KAAK,CACV,kEAAkE,CACnE,CAAC;IACJ,CAAC;IAEM,GAAG,CAAC,GAAM;QACf,IAAI,MAAM,GAAsB,IAAI,CAAC,IAAI,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,MAAM,YAAY,GAAG,CAAC;gBAC1B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,MAAM,KAAK,SAAS;gBACtB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,MAAM,YAAY,GAAG;YACvB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,GAAG,CAAC,GAAM;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IACrC,CAAC;IAEM,GAAG,CAAC,GAAM,EAAE,KAAQ;QACzB,IAAI,MAAM,GAAkB,IAAI,CAAC,IAAI,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC;YACD,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,MAAM,YAAY,GAAG,CAAC;YAC1B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvB,QAAS,CAAC,CAAA,IAAI,CAAC,GAAkB,EAAE,SAAyB;YAC1D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;gBAClC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACrB,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,OAAmB,EAAE,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;IAEO,KAAK,GAAW,CAAC,CAAC;IAC1B,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAW,CAAC,MAAM,CAAC,WAAW,CAAC;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Collections\n */\n\n/** A map similar to the standard JavaScript Map collection except that the keys must be a tuple\n * (javascript array), and two keys are considered equal if their elements in order are strict-equal,\n * and the tuples have the same amount of elements\n *\n * This means you can use array literals to key data in Maps that would otherwise be reference-compared\n * if using JavaScript's built in Map\n *\n * Note that JavaScript's Map type, unlike this one that uses strict equality, uses instead\n * SameValueZero equality comparison\n * @see https://262.ecma-international.org/6.0/#sec-samevaluezero\n *\n * ```js\n * const map = new TupleKeyedMap([[1,\"y\"], \"value\"]);\n * const value = map.get([1, \"y\"]); // a normal map would identify these keys as different because they are independent objects\n * ```\n *\n * It is implemented by each index of the tuple key being used as a singular key into a submap\n * @note this only implements a subset of the Map interface\n * @public\n */\nexport class TupleKeyedMap<K extends readonly any[], V> {\n private _map = new Map<K[0], Map<any, V> | V>();\n\n // argument types match those of Map\n public constructor(entries?: readonly (readonly [K, V])[] | null) {\n if (entries)\n for (const [k, v] of entries) {\n this.set(k, v);\n }\n }\n\n public clear(): void {\n return this._map.clear();\n }\n\n private makeKeyError() {\n return Error(\n \"A Bad key was used, it didn't match the key type of the the map.\",\n );\n }\n\n public get(key: K): V | undefined {\n let cursor: Map<any, any> | V = this._map;\n for (const subkey of key) {\n if (!(cursor instanceof Map))\n throw this.makeKeyError();\n cursor = cursor.get(subkey);\n if (cursor === undefined)\n return undefined;\n }\n if (cursor instanceof Map)\n throw this.makeKeyError();\n return cursor;\n }\n\n public has(key: K): boolean {\n return this.get(key) !== undefined;\n }\n\n public set(key: K, value: V): this {\n let cursor: Map<any, any> = this._map;\n for (let i = 0; i < key.length - 1; ++i) {\n const subkey = key[i];\n let next = cursor.get(subkey);\n if (next === undefined) {\n next = new Map();\n cursor.set(subkey, next);\n }\n cursor = next;\n }\n const finalSubkey = key[key.length - 1];\n if (!(cursor instanceof Map))\n throw this.makeKeyError();\n cursor.set(finalSubkey, value);\n this._size++;\n return this;\n }\n\n public *[Symbol.iterator](): IterableIterator<[K, V]> {\n function *impl(map: Map<any, any>, keyPrefix: readonly any[]): IterableIterator<[K, V]> {\n for (const [k, v] of map) {\n const nextKey = [...keyPrefix, k];\n if (v instanceof Map) {\n yield* impl(v, nextKey);\n } else {\n yield [nextKey as any as K, v];\n }\n }\n }\n yield* impl(this._map, []);\n }\n\n private _size: number = 0;\n public get size(): number {\n return this._size;\n }\n\n public get [Symbol.toStringTag](): string {\n return this.constructor.name;\n }\n}\n"]}
|