@itwin/core-common 3.0.0-dev.127 → 3.0.0-dev.131
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/lib/cjs/ConcurrentQuery.d.ts +27 -10
- package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
- package/lib/cjs/ConcurrentQuery.js +25 -11
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/ECSqlReader.d.ts +17 -5
- package/lib/cjs/ECSqlReader.d.ts.map +1 -1
- package/lib/cjs/ECSqlReader.js +55 -22
- package/lib/cjs/ECSqlReader.js.map +1 -1
- package/lib/cjs/NativeAppProps.d.ts +2 -36
- package/lib/cjs/NativeAppProps.d.ts.map +1 -1
- package/lib/cjs/NativeAppProps.js.map +1 -1
- package/lib/cjs/RenderSchedule.d.ts +4 -0
- package/lib/cjs/RenderSchedule.d.ts.map +1 -1
- package/lib/cjs/RenderSchedule.js +4 -0
- package/lib/cjs/RenderSchedule.js.map +1 -1
- package/lib/cjs/TileProps.d.ts +4 -0
- package/lib/cjs/TileProps.d.ts.map +1 -1
- package/lib/cjs/TileProps.js.map +1 -1
- package/lib/cjs/ViewFlags.d.ts.map +1 -1
- package/lib/cjs/ViewFlags.js +20 -6
- package/lib/cjs/ViewFlags.js.map +1 -1
- package/lib/cjs/geometry/FrustumPlanes.d.ts +1 -1
- package/lib/cjs/geometry/FrustumPlanes.d.ts.map +1 -1
- package/lib/cjs/geometry/FrustumPlanes.js +26 -13
- package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
- package/lib/cjs/tile/TileMetadata.d.ts +1 -4
- package/lib/cjs/tile/TileMetadata.d.ts.map +1 -1
- package/lib/cjs/tile/TileMetadata.js +11 -33
- package/lib/cjs/tile/TileMetadata.js.map +1 -1
- package/lib/esm/ConcurrentQuery.d.ts +27 -10
- package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
- package/lib/esm/ConcurrentQuery.js +25 -11
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/ECSqlReader.d.ts +17 -5
- package/lib/esm/ECSqlReader.d.ts.map +1 -1
- package/lib/esm/ECSqlReader.js +56 -23
- package/lib/esm/ECSqlReader.js.map +1 -1
- package/lib/esm/NativeAppProps.d.ts +2 -36
- package/lib/esm/NativeAppProps.d.ts.map +1 -1
- package/lib/esm/NativeAppProps.js.map +1 -1
- package/lib/esm/RenderSchedule.d.ts +4 -0
- package/lib/esm/RenderSchedule.d.ts.map +1 -1
- package/lib/esm/RenderSchedule.js +4 -0
- package/lib/esm/RenderSchedule.js.map +1 -1
- package/lib/esm/TileProps.d.ts +4 -0
- package/lib/esm/TileProps.d.ts.map +1 -1
- package/lib/esm/TileProps.js.map +1 -1
- package/lib/esm/ViewFlags.d.ts.map +1 -1
- package/lib/esm/ViewFlags.js +20 -6
- package/lib/esm/ViewFlags.js.map +1 -1
- package/lib/esm/geometry/FrustumPlanes.d.ts +1 -1
- package/lib/esm/geometry/FrustumPlanes.d.ts.map +1 -1
- package/lib/esm/geometry/FrustumPlanes.js +26 -13
- package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
- package/lib/esm/tile/TileMetadata.d.ts +1 -4
- package/lib/esm/tile/TileMetadata.d.ts.map +1 -1
- package/lib/esm/tile/TileMetadata.js +12 -34
- package/lib/esm/tile/TileMetadata.js.map +1 -1
- package/package.json +7 -9
package/lib/esm/ECSqlReader.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DbQueryRequest, DbQueryResponse, DbRequestExecutor, QueryBinder, QueryOptions, QueryPropertyMetaData
|
|
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(
|
|
55
|
-
getMetaData(): QueryPropertyMetaData[]
|
|
65
|
+
formatCurrentRow(onlyReturnObject?: boolean): any[] | object;
|
|
66
|
+
getMetaData(): Promise<QueryPropertyMetaData[]>;
|
|
67
|
+
private fetchRows;
|
|
56
68
|
step(): Promise<boolean>;
|
|
57
|
-
toArray(
|
|
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,
|
|
1
|
+
{"version":3,"file":"ECSqlReader.d.ts","sourceRoot":"","sources":["../../src/ECSqlReader.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/ECSqlReader.js
CHANGED
|
@@ -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(
|
|
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
|
-
|
|
188
|
-
|
|
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 &&
|
|
191
|
-
|
|
192
|
-
|
|
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 &&
|
|
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(
|
|
200
|
-
if (
|
|
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 =
|
|
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() {
|
|
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
|
-
|
|
261
|
+
await this.fetchRows();
|
|
227
262
|
this._localOffset = 0;
|
|
228
|
-
|
|
229
|
-
this._done = true;
|
|
230
|
-
return false;
|
|
231
|
-
}
|
|
263
|
+
return !this._done;
|
|
232
264
|
}
|
|
233
265
|
return true;
|
|
234
266
|
}
|
|
235
|
-
async toArray(
|
|
267
|
+
async toArray() {
|
|
236
268
|
const rows = [];
|
|
237
269
|
while (await this.step()) {
|
|
238
|
-
rows.push(this.formatCurrentRow(
|
|
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":"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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, 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
|
-
|
|
70
|
-
|
|
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":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;
|
|
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;
|
|
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)
|