@itwin/core-common 3.0.0-dev.126 → 3.0.0-dev.130

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 (59) hide show
  1. package/lib/cjs/ConcurrentQuery.d.ts +27 -10
  2. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  3. package/lib/cjs/ConcurrentQuery.js +25 -11
  4. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  5. package/lib/cjs/ECSqlReader.d.ts +17 -5
  6. package/lib/cjs/ECSqlReader.d.ts.map +1 -1
  7. package/lib/cjs/ECSqlReader.js +55 -22
  8. package/lib/cjs/ECSqlReader.js.map +1 -1
  9. package/lib/cjs/NativeAppProps.d.ts +2 -36
  10. package/lib/cjs/NativeAppProps.d.ts.map +1 -1
  11. package/lib/cjs/NativeAppProps.js.map +1 -1
  12. package/lib/cjs/RenderSchedule.d.ts +4 -0
  13. package/lib/cjs/RenderSchedule.d.ts.map +1 -1
  14. package/lib/cjs/RenderSchedule.js +4 -0
  15. package/lib/cjs/RenderSchedule.js.map +1 -1
  16. package/lib/cjs/TileProps.d.ts +4 -0
  17. package/lib/cjs/TileProps.d.ts.map +1 -1
  18. package/lib/cjs/TileProps.js.map +1 -1
  19. package/lib/cjs/ViewFlags.d.ts.map +1 -1
  20. package/lib/cjs/ViewFlags.js +20 -6
  21. package/lib/cjs/ViewFlags.js.map +1 -1
  22. package/lib/cjs/geometry/FrustumPlanes.d.ts +1 -1
  23. package/lib/cjs/geometry/FrustumPlanes.d.ts.map +1 -1
  24. package/lib/cjs/geometry/FrustumPlanes.js +26 -13
  25. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  26. package/lib/cjs/tile/TileMetadata.d.ts +1 -4
  27. package/lib/cjs/tile/TileMetadata.d.ts.map +1 -1
  28. package/lib/cjs/tile/TileMetadata.js +11 -33
  29. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  30. package/lib/esm/ConcurrentQuery.d.ts +27 -10
  31. package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
  32. package/lib/esm/ConcurrentQuery.js +25 -11
  33. package/lib/esm/ConcurrentQuery.js.map +1 -1
  34. package/lib/esm/ECSqlReader.d.ts +17 -5
  35. package/lib/esm/ECSqlReader.d.ts.map +1 -1
  36. package/lib/esm/ECSqlReader.js +56 -23
  37. package/lib/esm/ECSqlReader.js.map +1 -1
  38. package/lib/esm/NativeAppProps.d.ts +2 -36
  39. package/lib/esm/NativeAppProps.d.ts.map +1 -1
  40. package/lib/esm/NativeAppProps.js.map +1 -1
  41. package/lib/esm/RenderSchedule.d.ts +4 -0
  42. package/lib/esm/RenderSchedule.d.ts.map +1 -1
  43. package/lib/esm/RenderSchedule.js +4 -0
  44. package/lib/esm/RenderSchedule.js.map +1 -1
  45. package/lib/esm/TileProps.d.ts +4 -0
  46. package/lib/esm/TileProps.d.ts.map +1 -1
  47. package/lib/esm/TileProps.js.map +1 -1
  48. package/lib/esm/ViewFlags.d.ts.map +1 -1
  49. package/lib/esm/ViewFlags.js +20 -6
  50. package/lib/esm/ViewFlags.js.map +1 -1
  51. package/lib/esm/geometry/FrustumPlanes.d.ts +1 -1
  52. package/lib/esm/geometry/FrustumPlanes.d.ts.map +1 -1
  53. package/lib/esm/geometry/FrustumPlanes.js +26 -13
  54. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  55. package/lib/esm/tile/TileMetadata.d.ts +1 -4
  56. package/lib/esm/tile/TileMetadata.d.ts.map +1 -1
  57. package/lib/esm/tile/TileMetadata.js +12 -34
  58. package/lib/esm/tile/TileMetadata.js.map +1 -1
  59. package/package.json +7 -9
@@ -1,4 +1,4 @@
1
- import { DbQueryRequest, DbQueryResponse, DbRequestExecutor, QueryBinder, QueryOptions, QueryPropertyMetaData, QueryRowFormat } from "./ConcurrentQuery";
1
+ import { DbQueryRequest, DbQueryResponse, DbRequestExecutor, QueryBinder, QueryOptions, QueryPropertyMetaData } from "./ConcurrentQuery";
2
2
  /** @beta */
3
3
  export declare class PropertyMetaDataMap implements Iterable<QueryPropertyMetaData> {
4
4
  readonly properties: QueryPropertyMetaData[];
@@ -18,7 +18,6 @@ export declare class PropertyMetaDataMap implements Iterable<QueryPropertyMetaDa
18
18
  export declare type QueryValueType = any;
19
19
  /** @beta */
20
20
  export interface QueryRowProxy {
21
- toJsRow(): any;
22
21
  toRow(): any;
23
22
  toArray(): QueryValueType[];
24
23
  getMetaData(): QueryPropertyMetaData[];
@@ -26,9 +25,19 @@ export interface QueryRowProxy {
26
25
  [propertyIndex: number]: QueryValueType;
27
26
  }
28
27
  /** @beta */
28
+ export interface QueryStats {
29
+ backendCpuTime: number;
30
+ backendTotalTime: number;
31
+ backendMemUsed: number;
32
+ backendRowsReturned: number;
33
+ totalTime: number;
34
+ retryCount: number;
35
+ }
36
+ /** @beta */
29
37
  export declare class ECSqlReader {
30
38
  private _executor;
31
39
  readonly query: string;
40
+ private static readonly _maxRetryCount;
32
41
  private _localRows;
33
42
  private _localOffset;
34
43
  private _globalOffset;
@@ -38,6 +47,7 @@ export declare class ECSqlReader {
38
47
  private _props;
39
48
  private _param;
40
49
  private _lockArgs;
50
+ private _stats;
41
51
  private _rowProxy;
42
52
  private _options;
43
53
  /** @internal */
@@ -49,11 +59,13 @@ export declare class ECSqlReader {
49
59
  resetBindings(): void;
50
60
  get done(): boolean;
51
61
  getRowInternal(): any[];
62
+ get stats(): QueryStats;
52
63
  private readRows;
53
64
  private runWithRetry;
54
- formatCurrentRow(format: QueryRowFormat): any[] | object;
55
- getMetaData(): QueryPropertyMetaData[];
65
+ formatCurrentRow(onlyReturnObject?: boolean): any[] | object;
66
+ getMetaData(): Promise<QueryPropertyMetaData[]>;
67
+ private fetchRows;
56
68
  step(): Promise<boolean>;
57
- toArray(format: QueryRowFormat): Promise<any[]>;
69
+ toArray(): Promise<any[]>;
58
70
  }
59
71
  //# sourceMappingURL=ECSqlReader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlReader.d.ts","sourceRoot":"","sources":["../../src/ECSqlReader.ts"],"names":[],"mappings":"AAQA,OAAO,EACS,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAmC,WAAW,EAAE,YAAY,EAC5H,qBAAqB,EAAE,cAAc,EACtC,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACZ,qBAAa,mBAAoB,YAAW,QAAQ,CAAC,qBAAqB,CAAC;aAItC,UAAU,EAAE,qBAAqB,EAAE;IAHtE,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,SAAS,CAA6B;gBACX,UAAU,EAAE,qBAAqB,EAAE;IAQtE,IAAW,MAAM,IAAI,MAAM,CAAmC;IAEvD,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,SAAS,CAAC;IAGpE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAO3D,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAO/D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;CAOrE;AACD;;EAEE;AACF,oBAAY,cAAc,GAAG,GAAG,CAAC;AAEjC,YAAY;AACZ,MAAM,WAAW,aAAa;IAC5B,OAAO,IAAI,GAAG,CAAC;IACf,KAAK,IAAI,GAAG,CAAC;IACb,OAAO,IAAI,cAAc,EAAE,CAAC;IAC5B,WAAW,IAAI,qBAAqB,EAAE,CAAC;IACvC,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;IACvC,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAAC;CACzC;AACD,YAAY;AACZ,qBAAa,WAAW;IAiDH,OAAO,CAAC,SAAS;aAAsE,KAAK,EAAE,MAAM;IAhDvH,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAoCd;IACH,OAAO,CAAC,QAAQ,CAAwD;IACxE,gBAAgB;gBACW,SAAS,EAAE,iBAAiB,CAAC,cAAc,EAAE,eAAe,CAAC,EAAkB,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,YAAY;IASpK,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAYnC,SAAS,CAAC,KAAK,EAAE,WAAW;IAM5B,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY;IAiBnC,IAAW,OAAO,IAAI,aAAa,CAAoC;IAChE,aAAa;IAIpB,IAAW,IAAI,IAAI,OAAO,CAAuB;IAC1C,cAAc,IAAI,GAAG,EAAE;YAKhB,QAAQ;YA4BR,YAAY;IAanB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,GAAG,MAAM;IAiBxD,WAAW,IAAI,qBAAqB,EAAE;IAChC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAiBxB,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CAO7D"}
1
+ {"version":3,"file":"ECSqlReader.d.ts","sourceRoot":"","sources":["../../src/ECSqlReader.ts"],"names":[],"mappings":"AAQA,OAAO,EACS,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAkD,WAAW,EAAE,YAAY,EAC3I,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACZ,qBAAa,mBAAoB,YAAW,QAAQ,CAAC,qBAAqB,CAAC;aAItC,UAAU,EAAE,qBAAqB,EAAE;IAHtE,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,SAAS,CAA6B;gBACX,UAAU,EAAE,qBAAqB,EAAE;IAQtE,IAAW,MAAM,IAAI,MAAM,CAAmC;IAEvD,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,SAAS,CAAC;IAGpE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAO3D,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAO/D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;CAOrE;AACD;;EAEE;AACF,oBAAY,cAAc,GAAG,GAAG,CAAC;AAEjC,YAAY;AACZ,MAAM,WAAW,aAAa;IAC5B,KAAK,IAAI,GAAG,CAAC;IACb,OAAO,IAAI,cAAc,EAAE,CAAC;IAC5B,WAAW,IAAI,qBAAqB,EAAE,CAAC;IACvC,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;IACvC,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAAC;CACzC;AAED,YAAY;AACZ,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,YAAY;AACZ,qBAAa,WAAW;IAgDH,OAAO,CAAC,SAAS;aAAsE,KAAK,EAAE,MAAM;IA/CvH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAM;IAC5C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAsH;IACpI,OAAO,CAAC,SAAS,CAiCd;IACH,OAAO,CAAC,QAAQ,CAAwD;IACxE,gBAAgB;gBACW,SAAS,EAAE,iBAAiB,CAAC,cAAc,EAAE,eAAe,CAAC,EAAkB,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,YAAY;IASpK,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAYnC,SAAS,CAAC,KAAK,EAAE,WAAW;IAM5B,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY;IAmBnC,IAAW,OAAO,IAAI,aAAa,CAAoC;IAEhE,aAAa;IAKpB,IAAW,IAAI,IAAI,OAAO,CAAuB;IAC1C,cAAc,IAAI,GAAG,EAAE;IAM9B,IAAW,KAAK,IAAI,UAAU,CAAwB;YACxC,QAAQ;YA8BR,YAAY;IA8BnB,gBAAgB,CAAC,gBAAgB,GAAE,OAAe,GAAG,GAAG,EAAE,GAAG,MAAM;IAiB7D,WAAW,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAM9C,SAAS;IAOV,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAcxB,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;CAOvC"}
@@ -6,7 +6,7 @@
6
6
  * @module iModels
7
7
  */
8
8
  import { Base64EncodedString } from "./Base64EncodedString";
9
- import { DbQueryError, DbRequestKind, DbResponseStatus, QueryBinder, QueryOptionsBuilder, QueryRowFormat, } from "./ConcurrentQuery";
9
+ import { DbQueryError, DbRequestKind, DbResponseStatus, DbValueFormat, QueryBinder, QueryOptionsBuilder, QueryRowFormat, } from "./ConcurrentQuery";
10
10
  /** @beta */
11
11
  export class PropertyMetaDataMap {
12
12
  constructor(properties) {
@@ -62,6 +62,7 @@ export class ECSqlReader {
62
62
  this._props = new PropertyMetaDataMap([]);
63
63
  this._param = new QueryBinder().serialize();
64
64
  this._lockArgs = false;
65
+ this._stats = { backendCpuTime: 0, backendTotalTime: 0, backendMemUsed: 0, backendRowsReturned: 0, totalTime: 0, retryCount: 0 };
65
66
  this._rowProxy = new Proxy(this, {
66
67
  get: (target, key) => {
67
68
  if (typeof key === "string") {
@@ -77,10 +78,7 @@ export class ECSqlReader {
77
78
  return () => target._props.properties;
78
79
  }
79
80
  if (key === "toRow") {
80
- return () => target.formatCurrentRow(QueryRowFormat.UseECSqlPropertyNames);
81
- }
82
- if (key === "toJsRow") {
83
- return () => target.formatCurrentRow(QueryRowFormat.UseJsPropertyNames);
81
+ return () => target.formatCurrentRow(true);
84
82
  }
85
83
  if (key === "getArray" || key === "toJSON") {
86
84
  return () => this.getRowInternal();
@@ -136,6 +134,8 @@ export class ECSqlReader {
136
134
  this._globalDone = false;
137
135
  this._globalOffset = 0;
138
136
  this._globalCount = -1;
137
+ if (typeof this._options.rowFormat === "undefined")
138
+ this._options.rowFormat = QueryRowFormat.UseECSqlPropertyIndexes;
139
139
  if (this._options.limit) {
140
140
  if (typeof this._options.limit.offset === "number" && this._options.limit.offset > 0)
141
141
  this._globalOffset = this._options.limit.offset;
@@ -145,16 +145,20 @@ export class ECSqlReader {
145
145
  this._done = false;
146
146
  }
147
147
  get current() { return this._rowProxy; }
148
+ // clear all bindings
148
149
  resetBindings() {
149
150
  this._param = new QueryBinder().serialize();
150
151
  this._lockArgs = false;
151
152
  }
153
+ // return if there is any more rows available
152
154
  get done() { return this._done; }
153
155
  getRowInternal() {
154
156
  if (this._localRows.length <= this._localOffset)
155
157
  throw new Error("no current row");
156
158
  return this._localRows[this._localOffset];
157
159
  }
160
+ // return performance related statistics for current query.
161
+ get stats() { return this._stats; }
158
162
  async readRows() {
159
163
  if (this._globalDone) {
160
164
  return [];
@@ -165,11 +169,13 @@ export class ECSqlReader {
165
169
  if (this._globalCount === 0) {
166
170
  return [];
167
171
  }
172
+ const valueFormat = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames ? DbValueFormat.JsNames : DbValueFormat.ECSqlNames;
168
173
  const request = {
174
+ ...this._options,
169
175
  kind: DbRequestKind.ECSql,
176
+ valueFormat,
170
177
  query: this.query,
171
178
  args: this._param,
172
- ...this._options,
173
179
  };
174
180
  request.includeMetaData = this._props.length > 0 ? false : true;
175
181
  request.limit = { offset: this._globalOffset, count: this._globalCount < 1 ? -1 : this._globalCount };
@@ -184,25 +190,42 @@ export class ECSqlReader {
184
190
  return resp.data;
185
191
  }
186
192
  async runWithRetry(request) {
187
- let resp = await this._executor.execute(request);
188
- let retry = 10;
193
+ const needRetry = (rs) => (rs.status === DbResponseStatus.Partial || rs.status === DbResponseStatus.QueueFull || rs.status === DbResponseStatus.Timeout) && (rs.data.length === 0);
194
+ const updateStats = (rs) => {
195
+ this._stats.backendCpuTime += rs.stats.cpuTime;
196
+ this._stats.backendTotalTime += rs.stats.totalTime;
197
+ this._stats.backendMemUsed += rs.stats.memUsed;
198
+ this._stats.backendRowsReturned += rs.data.length;
199
+ };
200
+ const execQuery = async (req) => {
201
+ const startTime = Date.now();
202
+ const rs = await this._executor.execute(req);
203
+ this.stats.totalTime += (Date.now() - startTime);
204
+ return rs;
205
+ };
206
+ let retry = ECSqlReader._maxRetryCount;
207
+ let resp = await execQuery(request);
189
208
  DbQueryError.throwIfError(resp, request);
190
- while (--retry > 0 && resp.data.length === 0 && (resp.status === DbResponseStatus.Partial || resp.status === DbResponseStatus.QueueFull || resp.status === DbResponseStatus.TimeOut)) {
191
- // add timeout
192
- resp = await this._executor.execute(request);
209
+ while (--retry > 0 && needRetry(resp)) {
210
+ resp = await execQuery(request);
211
+ this._stats.retryCount += 1;
212
+ if (needRetry(resp)) {
213
+ updateStats(resp);
214
+ }
193
215
  }
194
- if (retry === 0 && resp.data.length === 0 && (resp.status === DbResponseStatus.Partial || resp.status === DbResponseStatus.QueueFull || resp.status === DbResponseStatus.TimeOut)) {
216
+ if (retry === 0 && needRetry(resp)) {
195
217
  throw new Error("query too long to execute or server is too busy");
196
218
  }
219
+ updateStats(resp);
197
220
  return resp;
198
221
  }
199
- formatCurrentRow(format) {
200
- if (format === QueryRowFormat.UseArrayIndexes) {
222
+ formatCurrentRow(onlyReturnObject = false) {
223
+ if (!onlyReturnObject && this._options.rowFormat === QueryRowFormat.UseECSqlPropertyIndexes) {
201
224
  return this.getRowInternal();
202
225
  }
203
226
  const formattedRow = {};
204
227
  for (const prop of this._props) {
205
- const propName = format === QueryRowFormat.UseJsPropertyNames ? prop.jsonName : prop.name;
228
+ const propName = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames ? prop.jsonName : prop.name;
206
229
  const val = this.getRowInternal()[prop.index];
207
230
  if (typeof val !== "undefined" && val !== null) {
208
231
  Object.defineProperty(formattedRow, propName, {
@@ -213,7 +236,19 @@ export class ECSqlReader {
213
236
  }
214
237
  return formattedRow;
215
238
  }
216
- getMetaData() { return this._props.properties; }
239
+ async getMetaData() {
240
+ if (this._props.length === 0) {
241
+ await this.fetchRows();
242
+ }
243
+ return this._props.properties;
244
+ }
245
+ async fetchRows() {
246
+ this._localOffset = -1;
247
+ this._localRows = await this.readRows();
248
+ if (this._localRows.length === 0) {
249
+ this._done = true;
250
+ }
251
+ }
217
252
  async step() {
218
253
  if (this._done) {
219
254
  return false;
@@ -223,21 +258,19 @@ export class ECSqlReader {
223
258
  ++this._localOffset;
224
259
  }
225
260
  else {
226
- this._localRows = await this.readRows();
261
+ await this.fetchRows();
227
262
  this._localOffset = 0;
228
- if (this._localRows.length === 0) {
229
- this._done = true;
230
- return false;
231
- }
263
+ return !this._done;
232
264
  }
233
265
  return true;
234
266
  }
235
- async toArray(format) {
267
+ async toArray() {
236
268
  const rows = [];
237
269
  while (await this.step()) {
238
- rows.push(this.formatCurrentRow(format));
270
+ rows.push(this.formatCurrentRow());
239
271
  }
240
272
  return rows;
241
273
  }
242
274
  }
275
+ ECSqlReader._maxRetryCount = 10;
243
276
  //# sourceMappingURL=ECSqlReader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlReader.js","sourceRoot":"","sources":["../../src/ECSqlReader.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 iModels\r\n */\r\nimport { Base64EncodedString } from \"./Base64EncodedString\";\r\nimport {\r\n DbQueryError, DbQueryRequest, DbQueryResponse, DbRequestExecutor, DbRequestKind, DbResponseStatus, QueryBinder, QueryOptions, QueryOptionsBuilder,\r\n QueryPropertyMetaData, QueryRowFormat,\r\n} from \"./ConcurrentQuery\";\r\n\r\n/** @beta */\r\nexport class PropertyMetaDataMap implements Iterable<QueryPropertyMetaData> {\r\n private _byPropName = new Map<string, number>();\r\n private _byJsonName = new Map<string, number>();\r\n private _byNoCase = new Map<string, number>();\r\n public constructor(public readonly properties: QueryPropertyMetaData[]) {\r\n for (const property of this.properties) {\r\n this._byPropName.set(property.name, property.index);\r\n this._byJsonName.set(property.jsonName, property.index);\r\n this._byNoCase.set(property.name.toLowerCase(), property.index);\r\n this._byNoCase.set(property.jsonName.toLowerCase(), property.index);\r\n }\r\n }\r\n public get length(): number { return this.properties.length; }\r\n\r\n public [Symbol.iterator](): Iterator<QueryPropertyMetaData, any, undefined> {\r\n return this.properties[Symbol.iterator]();\r\n }\r\n public findByName(name: string): QueryPropertyMetaData | undefined {\r\n const index = this._byPropName.get(name);\r\n if (typeof index === \"number\") {\r\n return this.properties[index];\r\n }\r\n return undefined;\r\n }\r\n public findByJsonName(name: string): QueryPropertyMetaData | undefined {\r\n const index = this._byJsonName.get(name);\r\n if (typeof index === \"number\") {\r\n return this.properties[index];\r\n }\r\n return undefined;\r\n }\r\n public findByNoCase(name: string): QueryPropertyMetaData | undefined {\r\n const index = this._byNoCase.get(name.toLowerCase());\r\n if (typeof index === \"number\") {\r\n return this.properties[index];\r\n }\r\n return undefined;\r\n }\r\n}\r\n/**\r\n * @beta\r\n*/\r\nexport type QueryValueType = any;\r\n\r\n/** @beta */\r\nexport interface QueryRowProxy {\r\n toJsRow(): any;\r\n toRow(): any;\r\n toArray(): QueryValueType[];\r\n getMetaData(): QueryPropertyMetaData[];\r\n [propertyName: string]: QueryValueType;\r\n [propertyIndex: number]: QueryValueType;\r\n}\r\n/** @beta */\r\nexport class ECSqlReader {\r\n private _localRows: any[] = [];\r\n private _localOffset: number = 0;\r\n private _globalOffset: number = -1;\r\n private _globalCount: number = -1;\r\n private _done: boolean = false;\r\n private _globalDone: boolean = false;\r\n private _props = new PropertyMetaDataMap([]);\r\n private _param = new QueryBinder().serialize();\r\n private _lockArgs: boolean = false;\r\n private _rowProxy = new Proxy<ECSqlReader>(this, {\r\n get: (target: ECSqlReader, key: string | Symbol) => {\r\n if (typeof key === \"string\") {\r\n const idx = Number.parseInt(key, 10);\r\n if (!Number.isNaN(idx)) {\r\n return target.getRowInternal()[idx];\r\n }\r\n const prop = target._props.findByNoCase(key);\r\n if (prop) {\r\n return target.getRowInternal()[prop.index];\r\n }\r\n if (key === \"getMetaData\") {\r\n return () => target._props.properties;\r\n }\r\n if (key === \"toRow\") {\r\n return () => target.formatCurrentRow(QueryRowFormat.UseECSqlPropertyNames);\r\n }\r\n if (key === \"toJsRow\") {\r\n return () => target.formatCurrentRow(QueryRowFormat.UseJsPropertyNames);\r\n }\r\n if (key === \"getArray\" || key === \"toJSON\") {\r\n return () => this.getRowInternal();\r\n }\r\n }\r\n return undefined;\r\n },\r\n has: (target: ECSqlReader, p: string | symbol) => {\r\n return !target._props.findByNoCase(p as string);\r\n },\r\n ownKeys: (target: ECSqlReader) => {\r\n const keys = [];\r\n for (const prop of target._props) {\r\n keys.push(prop.name);\r\n }\r\n return keys;\r\n },\r\n });\r\n private _options: QueryOptions = new QueryOptionsBuilder().getOptions();\r\n /** @internal */\r\n public constructor(private _executor: DbRequestExecutor<DbQueryRequest, DbQueryResponse>, public readonly query: string, param?: QueryBinder, options?: QueryOptions) {\r\n if (query.trim().length === 0) {\r\n throw new Error(\"expecting non-empty ecsql statement\");\r\n }\r\n if (param) {\r\n this._param = param.serialize();\r\n }\r\n this.reset(options);\r\n }\r\n private static replaceBase64WithUint8Array(row: any) {\r\n for (const key of Object.keys(row)) {\r\n const val = row[key];\r\n if (typeof val === \"string\") {\r\n if (Base64EncodedString.hasPrefix(val)) {\r\n row[key] = Base64EncodedString.toUint8Array(val);\r\n }\r\n } else if (typeof val === \"object\" && val !== null) {\r\n this.replaceBase64WithUint8Array(val);\r\n }\r\n }\r\n }\r\n public setParams(param: QueryBinder) {\r\n if (this._lockArgs) {\r\n throw new Error(\"call resetBindings() before setting or changing parameters\");\r\n }\r\n this._param = param.serialize();\r\n }\r\n public reset(options?: QueryOptions) {\r\n if (options) {\r\n this._options = options;\r\n }\r\n this._props = new PropertyMetaDataMap([]);\r\n this._localRows = [];\r\n this._globalDone = false;\r\n this._globalOffset = 0;\r\n this._globalCount = -1;\r\n if (this._options.limit) {\r\n if (typeof this._options.limit.offset === \"number\" && this._options.limit.offset > 0)\r\n this._globalOffset = this._options.limit.offset;\r\n if (typeof this._options.limit.count === \"number\" && this._options.limit.count > 0)\r\n this._globalCount = this._options.limit.count;\r\n }\r\n this._done = false;\r\n }\r\n public get current(): QueryRowProxy { return (this._rowProxy as any); }\r\n public resetBindings() {\r\n this._param = new QueryBinder().serialize();\r\n this._lockArgs = false;\r\n }\r\n public get done(): boolean { return this._done; }\r\n public getRowInternal(): any[] {\r\n if (this._localRows.length <= this._localOffset)\r\n throw new Error(\"no current row\");\r\n return this._localRows[this._localOffset] as any[];\r\n }\r\n private async readRows(): Promise<any[]> {\r\n if (this._globalDone) {\r\n return [];\r\n }\r\n this._lockArgs = true;\r\n this._globalOffset += this._localRows.length;\r\n this._globalCount -= this._localRows.length;\r\n if (this._globalCount === 0) {\r\n return [];\r\n }\r\n const request: DbQueryRequest = {\r\n kind: DbRequestKind.ECSql,\r\n query: this.query,\r\n args: this._param,\r\n ... this._options,\r\n };\r\n request.includeMetaData = this._props.length > 0 ? false : true;\r\n request.limit = { offset: this._globalOffset, count: this._globalCount < 1 ? -1 : this._globalCount };\r\n const resp = await this.runWithRetry(request);\r\n this._globalDone = resp.status === DbResponseStatus.Done;\r\n if (this._props.length === 0 && resp.meta.length > 0) {\r\n this._props = new PropertyMetaDataMap(resp.meta);\r\n }\r\n for (const row of resp.data) {\r\n ECSqlReader.replaceBase64WithUint8Array(row);\r\n }\r\n return resp.data;\r\n }\r\n private async runWithRetry(request: DbQueryRequest) {\r\n let resp = await this._executor.execute(request);\r\n let retry = 10;\r\n DbQueryError.throwIfError(resp, request);\r\n while (--retry > 0 && resp.data.length === 0 && (resp.status === DbResponseStatus.Partial || resp.status === DbResponseStatus.QueueFull || resp.status === DbResponseStatus.TimeOut)) {\r\n // add timeout\r\n resp = await this._executor.execute(request);\r\n }\r\n if (retry === 0 && resp.data.length === 0 && (resp.status === DbResponseStatus.Partial || resp.status === DbResponseStatus.QueueFull || resp.status === DbResponseStatus.TimeOut)) {\r\n throw new Error(\"query too long to execute or server is too busy\");\r\n }\r\n return resp;\r\n }\r\n public formatCurrentRow(format: QueryRowFormat): any[] | object {\r\n if (format === QueryRowFormat.UseArrayIndexes) {\r\n return this.getRowInternal();\r\n }\r\n const formattedRow = {};\r\n for (const prop of this._props) {\r\n const propName = format === QueryRowFormat.UseJsPropertyNames ? prop.jsonName : prop.name;\r\n const val = this.getRowInternal()[prop.index];\r\n if (typeof val !== \"undefined\" && val !== null) {\r\n Object.defineProperty(formattedRow, propName, {\r\n value: val,\r\n enumerable: true,\r\n });\r\n }\r\n }\r\n return formattedRow;\r\n }\r\n public getMetaData(): QueryPropertyMetaData[] { return this._props.properties; }\r\n public async step(): Promise<boolean> {\r\n if (this._done) {\r\n return false;\r\n }\r\n const cachedRows = this._localRows.length;\r\n if (this._localOffset < cachedRows - 1) {\r\n ++this._localOffset;\r\n } else {\r\n this._localRows = await this.readRows();\r\n this._localOffset = 0;\r\n if (this._localRows.length === 0) {\r\n this._done = true;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n public async toArray(format: QueryRowFormat): Promise<any[]> {\r\n const rows = [];\r\n while (await this.step()) {\r\n rows.push(this.formatCurrentRow(format));\r\n }\r\n return rows;\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"ECSqlReader.js","sourceRoot":"","sources":["../../src/ECSqlReader.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,YAAY,EAAsD,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAgB,mBAAmB,EACzI,cAAc,GACtC,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACZ,MAAM,OAAO,mBAAmB;IAI9B,YAAmC,UAAmC;QAAnC,eAAU,GAAV,UAAU,CAAyB;QAH9D,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,cAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE5C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;YACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;SACrE;IACH,CAAC;IACD,IAAW,MAAM,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvD,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5C,CAAC;IACM,UAAU,CAAC,IAAY;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC/B;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACM,cAAc,CAAC,IAAY;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC/B;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACM,YAAY,CAAC,IAAY;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC/B;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAyBD,YAAY;AACZ,MAAM,OAAO,WAAW;IA+CtB,gBAAgB;IAChB,YAA2B,SAA6D,EAAkB,KAAa,EAAE,KAAmB,EAAE,OAAsB;QAAzI,cAAS,GAAT,SAAS,CAAoD;QAAkB,UAAK,GAAL,KAAK,CAAQ;QA9C/G,eAAU,GAAU,EAAE,CAAC;QACvB,iBAAY,GAAW,CAAC,CAAC;QACzB,kBAAa,GAAW,CAAC,CAAC,CAAC;QAC3B,iBAAY,GAAW,CAAC,CAAC,CAAC;QAC1B,UAAK,GAAY,KAAK,CAAC;QACvB,gBAAW,GAAY,KAAK,CAAC;QAC7B,WAAM,GAAG,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACrC,WAAM,GAAG,IAAI,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC;QACvC,cAAS,GAAY,KAAK,CAAC;QAC3B,WAAM,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QAC5H,cAAS,GAAG,IAAI,KAAK,CAAc,IAAI,EAAE;YAC/C,GAAG,EAAE,CAAC,MAAmB,EAAE,GAAoB,EAAE,EAAE;gBACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;oBAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBACtB,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC;qBACrC;oBACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBAC7C,IAAI,IAAI,EAAE;wBACR,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC5C;oBACD,IAAI,GAAG,KAAK,aAAa,EAAE;wBACzB,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;qBACvC;oBACD,IAAI,GAAG,KAAK,OAAO,EAAE;wBACnB,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;qBAC5C;oBACD,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,QAAQ,EAAE;wBAC1C,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;qBACpC;iBACF;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,GAAG,EAAE,CAAC,MAAmB,EAAE,CAAkB,EAAE,EAAE;gBAC/C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAW,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,EAAE,CAAC,MAAmB,EAAE,EAAE;gBAC/B,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE;oBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtB;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;QACK,aAAQ,GAAiB,IAAI,mBAAmB,EAAE,CAAC,UAAU,EAAE,CAAC;QAGtE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;QACD,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;SACjC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IACO,MAAM,CAAC,2BAA2B,CAAC,GAAQ;QACjD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gBAC3B,IAAI,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACtC,GAAG,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;iBAClD;aACF;iBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;gBAClD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;aACvC;SACF;IACH,CAAC;IACM,SAAS,CAAC,KAAkB;QACjC,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;SAC/E;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IACM,KAAK,CAAC,OAAsB;QACjC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;SACzB;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,WAAW;YAChD,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,cAAc,CAAC,uBAAuB,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACvB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAClF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YAClD,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;gBAChF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;SACjD;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IACD,IAAW,OAAO,KAAoB,OAAQ,IAAI,CAAC,SAAiB,CAAC,CAAC,CAAC;IACvE,qBAAqB;IACd,aAAa;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,6CAA6C;IAC7C,IAAW,IAAI,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,cAAc;QACnB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY;YAC7C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAU,CAAC;IACrD,CAAC;IACD,2DAA2D;IAC3D,IAAW,KAAK,KAAiB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,KAAK,CAAC,QAAQ;QACpB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,EAAE,CAAC;SACX;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5C,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;YAC3B,OAAO,EAAE,CAAC;SACX;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,cAAc,CAAC,kBAAkB,CAAA,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA,aAAa,CAAC,UAAU,CAAC;QACnI,MAAM,OAAO,GAAmB;YAC9B,GAAI,IAAI,CAAC,QAAQ;YACjB,IAAI,EAAE,aAAa,CAAC,KAAK;YACzB,WAAW;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,MAAM;SAClB,CAAC;QACF,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,OAAO,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,IAAI,CAAC;QACzD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClD;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;YAC3B,WAAW,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;SAC9C;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACO,KAAK,CAAC,YAAY,CAAC,OAAuB;QAChD,MAAM,SAAS,GAAG,CAAC,EAAmB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,gBAAgB,CAAC,OAAO,IAAI,EAAE,CAAC,MAAM,KAAK,gBAAgB,CAAC,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QACpM,MAAM,WAAW,GAAG,CAAC,EAAmB,EAAE,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;QACpD,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,EAAE,GAAmB,EAAE,EAAE;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;YACjD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,IAAI,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC;QACvC,IAAI,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACpC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,OAAO,EAAE,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;YAC5B,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;gBACnB,WAAW,CAAC,IAAI,CAAC,CAAC;aACnB;SACF;QACD,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;SACpE;QACD,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACM,gBAAgB,CAAC,mBAA4B,KAAK;QACvD,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,cAAc,CAAC,uBAAuB,EAAE;YAC3F,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;SAC9B;QACD,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3G,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE;gBAC9C,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE;oBAC5C,KAAK,EAAE,GAAG;oBACV,UAAU,EAAE,IAAI;iBACjB,CAAC,CAAC;aACJ;SACF;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IACM,KAAK,CAAC,WAAW;QACtB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IACO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IACM,KAAK,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,KAAK,CAAC;SACd;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC1C,IAAI,IAAI,CAAC,YAAY,GAAG,UAAU,GAAG,CAAC,EAAE;YACtC,EAAE,IAAI,CAAC,YAAY,CAAC;SACrB;aAAM;YACL,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SACpB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACpC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;;AA1NuB,0BAAc,GAAG,EAAE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module iModels\r\n */\r\nimport { Base64EncodedString } from \"./Base64EncodedString\";\r\nimport {\r\n DbQueryError, DbQueryRequest, DbQueryResponse, DbRequestExecutor, DbRequestKind, DbResponseStatus, DbValueFormat, QueryBinder, QueryOptions, QueryOptionsBuilder,\r\n QueryPropertyMetaData, QueryRowFormat,\r\n} from \"./ConcurrentQuery\";\r\n\r\n/** @beta */\r\nexport class PropertyMetaDataMap implements Iterable<QueryPropertyMetaData> {\r\n private _byPropName = new Map<string, number>();\r\n private _byJsonName = new Map<string, number>();\r\n private _byNoCase = new Map<string, number>();\r\n public constructor(public readonly properties: QueryPropertyMetaData[]) {\r\n for (const property of this.properties) {\r\n this._byPropName.set(property.name, property.index);\r\n this._byJsonName.set(property.jsonName, property.index);\r\n this._byNoCase.set(property.name.toLowerCase(), property.index);\r\n this._byNoCase.set(property.jsonName.toLowerCase(), property.index);\r\n }\r\n }\r\n public get length(): number { return this.properties.length; }\r\n\r\n public [Symbol.iterator](): Iterator<QueryPropertyMetaData, any, undefined> {\r\n return this.properties[Symbol.iterator]();\r\n }\r\n public findByName(name: string): QueryPropertyMetaData | undefined {\r\n const index = this._byPropName.get(name);\r\n if (typeof index === \"number\") {\r\n return this.properties[index];\r\n }\r\n return undefined;\r\n }\r\n public findByJsonName(name: string): QueryPropertyMetaData | undefined {\r\n const index = this._byJsonName.get(name);\r\n if (typeof index === \"number\") {\r\n return this.properties[index];\r\n }\r\n return undefined;\r\n }\r\n public findByNoCase(name: string): QueryPropertyMetaData | undefined {\r\n const index = this._byNoCase.get(name.toLowerCase());\r\n if (typeof index === \"number\") {\r\n return this.properties[index];\r\n }\r\n return undefined;\r\n }\r\n}\r\n/**\r\n * @beta\r\n*/\r\nexport type QueryValueType = any;\r\n\r\n/** @beta */\r\nexport interface QueryRowProxy {\r\n toRow(): any;\r\n toArray(): QueryValueType[];\r\n getMetaData(): QueryPropertyMetaData[];\r\n [propertyName: string]: QueryValueType;\r\n [propertyIndex: number]: QueryValueType;\r\n}\r\n\r\n/** @beta */\r\nexport interface QueryStats {\r\n backendCpuTime: number; // Time spent running the query. It exclude query time in queue. Time is in microseconds.\r\n backendTotalTime: number; // backend total time spent running the query. Time is in milliseconds.\r\n backendMemUsed: number; // Estimated m emory used for query. Time is in milliseconds.\r\n backendRowsReturned: number; // Total rows returned by backend.\r\n totalTime: number; // Round trip time from client perspective.Time is in milliseconds.\r\n retryCount: number;\r\n}\r\n\r\n/** @beta */\r\nexport class ECSqlReader {\r\n private static readonly _maxRetryCount = 10;\r\n private _localRows: any[] = [];\r\n private _localOffset: number = 0;\r\n private _globalOffset: number = -1;\r\n private _globalCount: number = -1;\r\n private _done: boolean = false;\r\n private _globalDone: boolean = false;\r\n private _props = new PropertyMetaDataMap([]);\r\n private _param = new QueryBinder().serialize();\r\n private _lockArgs: boolean = false;\r\n private _stats = { backendCpuTime: 0, backendTotalTime: 0, backendMemUsed: 0, backendRowsReturned: 0, totalTime: 0, retryCount: 0 };\r\n private _rowProxy = new Proxy<ECSqlReader>(this, {\r\n get: (target: ECSqlReader, key: string | Symbol) => {\r\n if (typeof key === \"string\") {\r\n const idx = Number.parseInt(key, 10);\r\n if (!Number.isNaN(idx)) {\r\n return target.getRowInternal()[idx];\r\n }\r\n const prop = target._props.findByNoCase(key);\r\n if (prop) {\r\n return target.getRowInternal()[prop.index];\r\n }\r\n if (key === \"getMetaData\") {\r\n return () => target._props.properties;\r\n }\r\n if (key === \"toRow\") {\r\n return () => target.formatCurrentRow(true);\r\n }\r\n if (key === \"getArray\" || key === \"toJSON\") {\r\n return () => this.getRowInternal();\r\n }\r\n }\r\n return undefined;\r\n },\r\n has: (target: ECSqlReader, p: string | symbol) => {\r\n return !target._props.findByNoCase(p as string);\r\n },\r\n ownKeys: (target: ECSqlReader) => {\r\n const keys = [];\r\n for (const prop of target._props) {\r\n keys.push(prop.name);\r\n }\r\n return keys;\r\n },\r\n });\r\n private _options: QueryOptions = new QueryOptionsBuilder().getOptions();\r\n /** @internal */\r\n public constructor(private _executor: DbRequestExecutor<DbQueryRequest, DbQueryResponse>, public readonly query: string, param?: QueryBinder, options?: QueryOptions) {\r\n if (query.trim().length === 0) {\r\n throw new Error(\"expecting non-empty ecsql statement\");\r\n }\r\n if (param) {\r\n this._param = param.serialize();\r\n }\r\n this.reset(options);\r\n }\r\n private static replaceBase64WithUint8Array(row: any) {\r\n for (const key of Object.keys(row)) {\r\n const val = row[key];\r\n if (typeof val === \"string\") {\r\n if (Base64EncodedString.hasPrefix(val)) {\r\n row[key] = Base64EncodedString.toUint8Array(val);\r\n }\r\n } else if (typeof val === \"object\" && val !== null) {\r\n this.replaceBase64WithUint8Array(val);\r\n }\r\n }\r\n }\r\n public setParams(param: QueryBinder) {\r\n if (this._lockArgs) {\r\n throw new Error(\"call resetBindings() before setting or changing parameters\");\r\n }\r\n this._param = param.serialize();\r\n }\r\n public reset(options?: QueryOptions) {\r\n if (options) {\r\n this._options = options;\r\n }\r\n this._props = new PropertyMetaDataMap([]);\r\n this._localRows = [];\r\n this._globalDone = false;\r\n this._globalOffset = 0;\r\n this._globalCount = -1;\r\n if (typeof this._options.rowFormat === \"undefined\")\r\n this._options.rowFormat = QueryRowFormat.UseECSqlPropertyIndexes;\r\n if (this._options.limit) {\r\n if (typeof this._options.limit.offset === \"number\" && this._options.limit.offset > 0)\r\n this._globalOffset = this._options.limit.offset;\r\n if (typeof this._options.limit.count === \"number\" && this._options.limit.count > 0)\r\n this._globalCount = this._options.limit.count;\r\n }\r\n this._done = false;\r\n }\r\n public get current(): QueryRowProxy { return (this._rowProxy as any); }\r\n // clear all bindings\r\n public resetBindings() {\r\n this._param = new QueryBinder().serialize();\r\n this._lockArgs = false;\r\n }\r\n // return if there is any more rows available\r\n public get done(): boolean { return this._done; }\r\n public getRowInternal(): any[] {\r\n if (this._localRows.length <= this._localOffset)\r\n throw new Error(\"no current row\");\r\n return this._localRows[this._localOffset] as any[];\r\n }\r\n // return performance related statistics for current query.\r\n public get stats(): QueryStats { return this._stats; }\r\n private async readRows(): Promise<any[]> {\r\n if (this._globalDone) {\r\n return [];\r\n }\r\n this._lockArgs = true;\r\n this._globalOffset += this._localRows.length;\r\n this._globalCount -= this._localRows.length;\r\n if (this._globalCount === 0) {\r\n return [];\r\n }\r\n const valueFormat = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames? DbValueFormat.JsNames :DbValueFormat.ECSqlNames;\r\n const request: DbQueryRequest = {\r\n ... this._options,\r\n kind: DbRequestKind.ECSql,\r\n valueFormat,\r\n query: this.query,\r\n args: this._param,\r\n };\r\n request.includeMetaData = this._props.length > 0 ? false : true;\r\n request.limit = { offset: this._globalOffset, count: this._globalCount < 1 ? -1 : this._globalCount };\r\n const resp = await this.runWithRetry(request);\r\n this._globalDone = resp.status === DbResponseStatus.Done;\r\n if (this._props.length === 0 && resp.meta.length > 0) {\r\n this._props = new PropertyMetaDataMap(resp.meta);\r\n }\r\n for (const row of resp.data) {\r\n ECSqlReader.replaceBase64WithUint8Array(row);\r\n }\r\n return resp.data;\r\n }\r\n private async runWithRetry(request: DbQueryRequest) {\r\n const needRetry = (rs: DbQueryResponse) => (rs.status === DbResponseStatus.Partial || rs.status === DbResponseStatus.QueueFull || rs.status === DbResponseStatus.Timeout) && (rs.data.length === 0);\r\n const updateStats = (rs: DbQueryResponse) => {\r\n this._stats.backendCpuTime += rs.stats.cpuTime;\r\n this._stats.backendTotalTime += rs.stats.totalTime;\r\n this._stats.backendMemUsed += rs.stats.memUsed;\r\n this._stats.backendRowsReturned += rs.data.length;\r\n };\r\n const execQuery = async (req: DbQueryRequest) => {\r\n const startTime = Date.now();\r\n const rs = await this._executor.execute(req);\r\n this.stats.totalTime += (Date.now() - startTime);\r\n return rs;\r\n };\r\n let retry = ECSqlReader._maxRetryCount;\r\n let resp = await execQuery(request);\r\n DbQueryError.throwIfError(resp, request);\r\n while (--retry > 0 && needRetry(resp)) {\r\n resp = await execQuery(request);\r\n this._stats.retryCount += 1;\r\n if (needRetry(resp)) {\r\n updateStats(resp);\r\n }\r\n }\r\n if (retry === 0 && needRetry(resp)) {\r\n throw new Error(\"query too long to execute or server is too busy\");\r\n }\r\n updateStats(resp);\r\n return resp;\r\n }\r\n public formatCurrentRow(onlyReturnObject: boolean = false): any[] | object {\r\n if (!onlyReturnObject && this._options.rowFormat === QueryRowFormat.UseECSqlPropertyIndexes) {\r\n return this.getRowInternal();\r\n }\r\n const formattedRow = {};\r\n for (const prop of this._props) {\r\n const propName = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames ? prop.jsonName : prop.name;\r\n const val = this.getRowInternal()[prop.index];\r\n if (typeof val !== \"undefined\" && val !== null) {\r\n Object.defineProperty(formattedRow, propName, {\r\n value: val,\r\n enumerable: true,\r\n });\r\n }\r\n }\r\n return formattedRow;\r\n }\r\n public async getMetaData(): Promise<QueryPropertyMetaData[]> {\r\n if (this._props.length === 0) {\r\n await this.fetchRows();\r\n }\r\n return this._props.properties;\r\n }\r\n private async fetchRows() {\r\n this._localOffset = -1;\r\n this._localRows = await this.readRows();\r\n if (this._localRows.length === 0) {\r\n this._done = true;\r\n }\r\n }\r\n public async step(): Promise<boolean> {\r\n if (this._done) {\r\n return false;\r\n }\r\n const cachedRows = this._localRows.length;\r\n if (this._localOffset < cachedRows - 1) {\r\n ++this._localOffset;\r\n } else {\r\n await this.fetchRows();\r\n this._localOffset = 0;\r\n return !this._done;\r\n }\r\n return true;\r\n }\r\n public async toArray(): Promise<any[]> {\r\n const rows = [];\r\n while (await this.step()) {\r\n rows.push(this.formatCurrentRow());\r\n }\r\n return rows;\r\n }\r\n}\r\n\r\n"]}
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import { AccessToken, GuidString } from "@itwin/core-bentley";
5
5
  import { BriefcaseProps, LocalBriefcaseProps, RequestNewBriefcaseProps } from "./BriefcaseTypes";
6
- import { SessionProps } from "./SessionProps";
7
6
  /** @internal */
8
7
  export declare const nativeAppChannel = "nativeApp";
9
8
  /** @internal */
@@ -33,47 +32,14 @@ export declare enum OverriddenBy {
33
32
  */
34
33
  export interface NativeAppNotifications {
35
34
  notifyInternetConnectivityChanged(status: InternetConnectivityStatus): void;
36
- notifyAccessTokenChanged(accessToken: AccessToken): void;
37
- }
38
- /**
39
- * Client configuration to generate OIDC/OAuth tokens for native applications
40
- * @beta
41
- */
42
- export interface NativeAppAuthorizationConfiguration {
43
- /**
44
- * The OAuth token issuer URL. Defaults to Bentley's auth URL if undefined.
45
- */
46
- issuerUrl?: string;
47
- /**
48
- * Upon signing in, the client application receives a response from the Bentley IMS OIDC/OAuth2 provider at this URI
49
- * For mobile/desktop applications, must start with `http://localhost:${redirectPort}` or `https://localhost:${redirectPort}`
50
- */
51
- readonly redirectUri?: string;
52
- /** Client application's identifier as registered with the OIDC/OAuth2 provider. */
53
- readonly clientId: string;
54
- /** List of space separated scopes to request access to various resources. */
55
- readonly scope: string;
56
- /**
57
- * Time in seconds that's used as a buffer to check the token for validity/expiry.
58
- * The checks for authorization, and refreshing access tokens all use this buffer - i.e., the token is considered expired if the current time is within the specified
59
- * time of the actual expiry.
60
- * @note If unspecified this defaults to 10 minutes.
61
- */
62
- readonly expiryBuffer?: number;
63
35
  }
64
36
  /**
65
37
  * The methods that may be invoked via Ipc from the frontend of a Native App and are implemented on its backend.
66
38
  * @internal
67
39
  */
68
40
  export interface NativeAppFunctions {
69
- setAccessToken(token: AccessToken): Promise<void>;
70
- /** returns expirySafety, in seconds */
71
- initializeAuth(props: SessionProps, config?: NativeAppAuthorizationConfiguration): Promise<number>;
72
- /** Called to start the sign-in process. Subscribe to onAccessTokenChanged to be notified when sign-in completes */
73
- signIn(): Promise<void>;
74
- /** Called to start the sign-out process. Subscribe to onAccessTokenChanged to be notified when sign-out completes */
75
- signOut(): Promise<void>;
76
- getAccessToken: () => Promise<AccessToken>;
41
+ /** If the user is signed in a valid access token will be returned. */
42
+ getAccessToken: () => Promise<AccessToken | undefined>;
77
43
  /** Check if the internet is reachable. */
78
44
  checkInternetConnectivity(): Promise<InternetConnectivityStatus>;
79
45
  /** Manually override internet reachability for testing purposes.
@@ -1 +1 @@
1
- {"version":3,"file":"NativeAppProps.d.ts","sourceRoot":"","sources":["../../src/NativeAppProps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NativeAppProps.d.ts","sourceRoot":"","sources":["../../src/NativeAppProps.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NativeAppProps.js","sourceRoot":"","sources":["../../src/NativeAppProps.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAMH,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAC5C,gBAAgB;AAChB,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAQlD;;GAEG;AACH,MAAM,CAAN,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,+EAAM,CAAA;IACN,iFAAO,CAAA;AACT,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,QAGrC;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,qDAAO,CAAA;IACP,+CAAI,CAAA;AACN,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB","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 NativeApp\r\n */\r\n\r\nimport { AccessToken, GuidString } from \"@itwin/core-bentley\";\r\nimport { BriefcaseProps, LocalBriefcaseProps, RequestNewBriefcaseProps } from \"./BriefcaseTypes\";\r\nimport { SessionProps } from \"./SessionProps\";\r\n\r\n/** @internal */\r\nexport const nativeAppChannel = \"nativeApp\";\r\n/** @internal */\r\nexport const nativeAppNotify = \"nativeApp-notify\";\r\n\r\n/**\r\n * Type of value for storage values\r\n * @beta\r\n */\r\nexport type StorageValue = string | number | boolean | undefined | Uint8Array;\r\n\r\n/** Indicates whether or not the computer is currently connected to the internet.\r\n * @beta\r\n */\r\nexport enum InternetConnectivityStatus {\r\n Online,\r\n Offline,\r\n}\r\n\r\n/** Describes whether the user or the browser overrode the internet connectivity status.\r\n * @beta\r\n */\r\nexport enum OverriddenBy {\r\n Browser,\r\n User,\r\n}\r\n\r\n/**\r\n * Interface implemented by the frontend [NotificationHandler]($common) to be notified of events from NativeApp backend.\r\n * @internal\r\n */\r\nexport interface NativeAppNotifications {\r\n notifyInternetConnectivityChanged(status: InternetConnectivityStatus): void;\r\n notifyAccessTokenChanged(accessToken: AccessToken): void;\r\n}\r\n\r\n/**\r\n * Client configuration to generate OIDC/OAuth tokens for native applications\r\n * @beta\r\n */\r\nexport interface NativeAppAuthorizationConfiguration {\r\n /**\r\n * The OAuth token issuer URL. Defaults to Bentley's auth URL if undefined.\r\n */\r\n issuerUrl?: string;\r\n\r\n /**\r\n * Upon signing in, the client application receives a response from the Bentley IMS OIDC/OAuth2 provider at this URI\r\n * For mobile/desktop applications, must start with `http://localhost:${redirectPort}` or `https://localhost:${redirectPort}`\r\n */\r\n readonly redirectUri?: string;\r\n\r\n /** Client application's identifier as registered with the OIDC/OAuth2 provider. */\r\n readonly clientId: string;\r\n\r\n /** List of space separated scopes to request access to various resources. */\r\n readonly scope: string;\r\n\r\n /**\r\n * Time in seconds that's used as a buffer to check the token for validity/expiry.\r\n * The checks for authorization, and refreshing access tokens all use this buffer - i.e., the token is considered expired if the current time is within the specified\r\n * time of the actual expiry.\r\n * @note If unspecified this defaults to 10 minutes.\r\n */\r\n readonly expiryBuffer?: number;\r\n}\r\n\r\n/**\r\n * The methods that may be invoked via Ipc from the frontend of a Native App and are implemented on its backend.\r\n * @internal\r\n */\r\nexport interface NativeAppFunctions {\r\n setAccessToken(token: AccessToken): Promise<void>;\r\n\r\n /** returns expirySafety, in seconds */\r\n initializeAuth(props: SessionProps, config?: NativeAppAuthorizationConfiguration): Promise<number>;\r\n\r\n /** Called to start the sign-in process. Subscribe to onAccessTokenChanged to be notified when sign-in completes */\r\n signIn(): Promise<void>;\r\n\r\n /** Called to start the sign-out process. Subscribe to onAccessTokenChanged to be notified when sign-out completes */\r\n signOut(): Promise<void>;\r\n\r\n getAccessToken: () => Promise<AccessToken>;\r\n\r\n /** Check if the internet is reachable. */\r\n checkInternetConnectivity(): Promise<InternetConnectivityStatus>;\r\n\r\n /** Manually override internet reachability for testing purposes.\r\n * @param _status New status to set on backend.\r\n */\r\n overrideInternetConnectivity(_overriddenBy: OverriddenBy, _status: InternetConnectivityStatus): Promise<void>;\r\n\r\n /** Acquire a new BriefcaseId for the supplied iModelId from iModelHub */\r\n acquireNewBriefcaseId(_iModelId: GuidString): Promise<number>;\r\n\r\n /** Get the filename in the briefcase cache for the supplied BriefcaseId and iModelId.\r\n * @note this merely returns the full path fileName. It does not test for the existence of the file.\r\n */\r\n getBriefcaseFileName(_props: BriefcaseProps): Promise<string>;\r\n\r\n /** Download a briefcase file for the supplied briefcase properties. */\r\n downloadBriefcase(_requestProps: RequestNewBriefcaseProps, _reportProgress: boolean, _interval?: number): Promise<LocalBriefcaseProps>;\r\n\r\n /**\r\n * Cancels the previously requested download of a briefcase\r\n * @param _key Key to locate the briefcase in the disk cache\r\n * @note returns true if the cancel request was acknowledged. false otherwise\r\n */\r\n requestCancelDownloadBriefcase(_fileName: string): Promise<boolean>;\r\n\r\n /**\r\n * Delete a previously downloaded briefcase. The briefcase must be closed.\r\n * @param _fileName the Briefcase to delete\r\n */\r\n deleteBriefcaseFiles(_fileName: string): Promise<void>;\r\n\r\n /**\r\n * Gets a list of all briefcases that were previously downloaded to the system briefcase cache.\r\n * @note returns array of LocalBriefcaseProps.\r\n */\r\n getCachedBriefcases(_iModelId?: GuidString): Promise<LocalBriefcaseProps[]>;\r\n\r\n /**\r\n * Open a key/value pair base storage\r\n * @param _storageId string identifier of storage\r\n */\r\n storageMgrOpen(_storageId: string): Promise<string>;\r\n\r\n /**\r\n * Close a key/value pair base storage\r\n * @param _storageId string identifier of storage\r\n * @param _deleteOnClose delete the storage on close\r\n */\r\n storageMgrClose(_storageId: string, _deleteOnClose: boolean): Promise<void>;\r\n\r\n /**\r\n * Get the names of available storages\r\n * @note returns list of storage names\r\n */\r\n storageMgrNames(): Promise<string[]>;\r\n\r\n /**\r\n * Get the value associated with a key.\r\n * @param _storageId string identifier of storage\r\n * @param _key key identifier for value\r\n * @note returns key value or undefined\r\n */\r\n storageGet(_storageId: string, _key: string): Promise<StorageValue | undefined>;\r\n\r\n /**\r\n * Set a value for a key.\r\n * @param _storageId string identifier of storage\r\n * @param _key key identifier for value\r\n * @param _value value to be set\r\n */\r\n storageSet(_storageId: string, _key: string, _value: StorageValue): Promise<void>;\r\n\r\n /**\r\n * Remove a key/value pair.\r\n * @param _storageId string identifier of storage\r\n * @param _key key identifier for value\r\n */\r\n storageRemove(_storageId: string, _key: string): Promise<void>;\r\n\r\n /**\r\n * Get list of keys in a storage.\r\n * @param _storageId string identifier of storage\r\n * @note returns list of storage ids\r\n */\r\n storageKeys(_storageId: string): Promise<string[]>;\r\n\r\n /**\r\n * Delete all key/value pairs.\r\n * @param _storageId string identifier of storage\r\n */\r\n storageRemoveAll(_storageId: string): Promise<void>;\r\n\r\n /** get the type of a value for a key, or undefined if not present. */\r\n storageGetValueType(_storageId: string, _key: string): Promise<\"number\" | \"string\" | \"boolean\" | \"Uint8Array\" | \"null\" | undefined>;\r\n}\r\n"]}
1
+ {"version":3,"file":"NativeAppProps.js","sourceRoot":"","sources":["../../src/NativeAppProps.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAKH,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAC5C,gBAAgB;AAChB,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAQlD;;GAEG;AACH,MAAM,CAAN,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,+EAAM,CAAA;IACN,iFAAO,CAAA;AACT,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,QAGrC;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,qDAAO,CAAA;IACP,+CAAI,CAAA;AACN,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB","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 NativeApp\r\n */\r\n\r\nimport { AccessToken, GuidString } from \"@itwin/core-bentley\";\r\nimport { BriefcaseProps, LocalBriefcaseProps, RequestNewBriefcaseProps } from \"./BriefcaseTypes\";\r\n\r\n/** @internal */\r\nexport const nativeAppChannel = \"nativeApp\";\r\n/** @internal */\r\nexport const nativeAppNotify = \"nativeApp-notify\";\r\n\r\n/**\r\n * Type of value for storage values\r\n * @beta\r\n */\r\nexport type StorageValue = string | number | boolean | undefined | Uint8Array;\r\n\r\n/** Indicates whether or not the computer is currently connected to the internet.\r\n * @beta\r\n */\r\nexport enum InternetConnectivityStatus {\r\n Online,\r\n Offline,\r\n}\r\n\r\n/** Describes whether the user or the browser overrode the internet connectivity status.\r\n * @beta\r\n */\r\nexport enum OverriddenBy {\r\n Browser,\r\n User,\r\n}\r\n\r\n/**\r\n * Interface implemented by the frontend [NotificationHandler]($common) to be notified of events from NativeApp backend.\r\n * @internal\r\n */\r\nexport interface NativeAppNotifications {\r\n notifyInternetConnectivityChanged(status: InternetConnectivityStatus): void;\r\n}\r\n\r\n/**\r\n * The methods that may be invoked via Ipc from the frontend of a Native App and are implemented on its backend.\r\n * @internal\r\n */\r\nexport interface NativeAppFunctions {\r\n\r\n /** If the user is signed in a valid access token will be returned. */\r\n getAccessToken: () => Promise<AccessToken | undefined>;\r\n\r\n /** Check if the internet is reachable. */\r\n checkInternetConnectivity(): Promise<InternetConnectivityStatus>;\r\n\r\n /** Manually override internet reachability for testing purposes.\r\n * @param _status New status to set on backend.\r\n */\r\n overrideInternetConnectivity(_overriddenBy: OverriddenBy, _status: InternetConnectivityStatus): Promise<void>;\r\n\r\n /** Acquire a new BriefcaseId for the supplied iModelId from iModelHub */\r\n acquireNewBriefcaseId(_iModelId: GuidString): Promise<number>;\r\n\r\n /** Get the filename in the briefcase cache for the supplied BriefcaseId and iModelId.\r\n * @note this merely returns the full path fileName. It does not test for the existence of the file.\r\n */\r\n getBriefcaseFileName(_props: BriefcaseProps): Promise<string>;\r\n\r\n /** Download a briefcase file for the supplied briefcase properties. */\r\n downloadBriefcase(_requestProps: RequestNewBriefcaseProps, _reportProgress: boolean, _interval?: number): Promise<LocalBriefcaseProps>;\r\n\r\n /**\r\n * Cancels the previously requested download of a briefcase\r\n * @param _key Key to locate the briefcase in the disk cache\r\n * @note returns true if the cancel request was acknowledged. false otherwise\r\n */\r\n requestCancelDownloadBriefcase(_fileName: string): Promise<boolean>;\r\n\r\n /**\r\n * Delete a previously downloaded briefcase. The briefcase must be closed.\r\n * @param _fileName the Briefcase to delete\r\n */\r\n deleteBriefcaseFiles(_fileName: string): Promise<void>;\r\n\r\n /**\r\n * Gets a list of all briefcases that were previously downloaded to the system briefcase cache.\r\n * @note returns array of LocalBriefcaseProps.\r\n */\r\n getCachedBriefcases(_iModelId?: GuidString): Promise<LocalBriefcaseProps[]>;\r\n\r\n /**\r\n * Open a key/value pair base storage\r\n * @param _storageId string identifier of storage\r\n */\r\n storageMgrOpen(_storageId: string): Promise<string>;\r\n\r\n /**\r\n * Close a key/value pair base storage\r\n * @param _storageId string identifier of storage\r\n * @param _deleteOnClose delete the storage on close\r\n */\r\n storageMgrClose(_storageId: string, _deleteOnClose: boolean): Promise<void>;\r\n\r\n /**\r\n * Get the names of available storages\r\n * @note returns list of storage names\r\n */\r\n storageMgrNames(): Promise<string[]>;\r\n\r\n /**\r\n * Get the value associated with a key.\r\n * @param _storageId string identifier of storage\r\n * @param _key key identifier for value\r\n * @note returns key value or undefined\r\n */\r\n storageGet(_storageId: string, _key: string): Promise<StorageValue | undefined>;\r\n\r\n /**\r\n * Set a value for a key.\r\n * @param _storageId string identifier of storage\r\n * @param _key key identifier for value\r\n * @param _value value to be set\r\n */\r\n storageSet(_storageId: string, _key: string, _value: StorageValue): Promise<void>;\r\n\r\n /**\r\n * Remove a key/value pair.\r\n * @param _storageId string identifier of storage\r\n * @param _key key identifier for value\r\n */\r\n storageRemove(_storageId: string, _key: string): Promise<void>;\r\n\r\n /**\r\n * Get list of keys in a storage.\r\n * @param _storageId string identifier of storage\r\n * @note returns list of storage ids\r\n */\r\n storageKeys(_storageId: string): Promise<string[]>;\r\n\r\n /**\r\n * Delete all key/value pairs.\r\n * @param _storageId string identifier of storage\r\n */\r\n storageRemoveAll(_storageId: string): Promise<void>;\r\n\r\n /** get the type of a value for a key, or undefined if not present. */\r\n storageGetValueType(_storageId: string, _key: string): Promise<\"number\" | \"string\" | \"boolean\" | \"Uint8Array\" | \"null\" | undefined>;\r\n}\r\n"]}
@@ -347,6 +347,10 @@ export declare namespace RenderSchedule {
347
347
  readonly containsFeatureOverrides: boolean;
348
348
  /** The total time period over which this script animates. */
349
349
  readonly duration: Range1d;
350
+ /** The batchIds of all nodes in all timelines that apply a transform.
351
+ * @internal
352
+ */
353
+ readonly transformBatchIds: ReadonlySet<number>;
350
354
  protected constructor(props: Readonly<ScriptProps>);
351
355
  static fromJSON(props: Readonly<ScriptProps>): Script | undefined;
352
356
  toJSON(): ScriptProps;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderSchedule.d.ts","sourceRoot":"","sources":["../../src/RenderSchedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderSchedule.d.ts","sourceRoot":"","sources":["../../src/RenderSchedule.ts"],"names":[],"mappings":"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"}
@@ -534,6 +534,7 @@ export var RenderSchedule;
534
534
  class Script {
535
535
  constructor(props) {
536
536
  this.duration = Range1d.createNull();
537
+ const transformBatchIds = new Set();
537
538
  const modelTimelines = [];
538
539
  let containsModelClipping = false;
539
540
  let requiresBatching = false;
@@ -547,12 +548,15 @@ export var RenderSchedule;
547
548
  requiresBatching || (requiresBatching = model.requiresBatching);
548
549
  containsTransform || (containsTransform = model.containsTransform);
549
550
  containsFeatureOverrides || (containsFeatureOverrides = model.containsFeatureOverrides);
551
+ for (const batchId of model.transformBatchIds)
552
+ transformBatchIds.add(batchId);
550
553
  }
551
554
  this.modelTimelines = modelTimelines;
552
555
  this.containsModelClipping = containsModelClipping;
553
556
  this.containsTransform = containsTransform;
554
557
  this.requiresBatching = requiresBatching || this.containsTransform;
555
558
  this.containsFeatureOverrides = containsFeatureOverrides;
559
+ this.transformBatchIds = transformBatchIds;
556
560
  }
557
561
  static fromJSON(props) {
558
562
  if (!Array.isArray(props) || props.length === 0)