@vertexvis/viewer 1.0.2-testing.5 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{controller-C-I_MLA3.js → controller-C74GX70e.js} +138 -34
- package/dist/cjs/controller-C74GX70e.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js +9 -9
- package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-hit-result-indicator.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer.cjs.entry.js +9 -4
- package/dist/cjs/vertex-viewer.cjs.entry.js.map +1 -1
- package/dist/collection/collection-manifest.json +3 -3
- package/dist/collection/components/scene-tree/lib/controller.js +48 -30
- package/dist/collection/components/scene-tree/lib/controller.js.map +1 -1
- package/dist/collection/components/scene-tree/lib/jwt.js +1 -1
- package/dist/collection/components/scene-tree/lib/jwt.js.map +1 -1
- package/dist/collection/components/scene-tree/scene-tree.js +2 -2
- package/dist/collection/components/scene-tree-notification-banner/scene-tree-notification-banner.js +1 -1
- package/dist/collection/components/scene-tree-search/scene-tree-search.js +3 -3
- package/dist/collection/components/scene-tree-table-column/scene-tree-table-column.js +1 -1
- package/dist/collection/components/scene-tree-table-header/scene-tree-table-header.js +1 -1
- package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +5 -5
- package/dist/collection/components/viewer/viewer.css +45 -1
- package/dist/collection/components/viewer/viewer.js +18 -6
- package/dist/collection/components/viewer/viewer.js.map +1 -1
- package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js +2 -2
- package/dist/collection/components/viewer-button/viewer-button.js +1 -1
- package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.js +1 -1
- package/dist/collection/components/viewer-dom-element/viewer-dom-element.js +1 -1
- package/dist/collection/components/viewer-dom-group/viewer-dom-group.js +1 -1
- package/dist/collection/components/viewer-hit-result-indicator/viewer-hit-result-indicator.js +1 -1
- package/dist/collection/components/viewer-layer/viewer-layer.js +1 -1
- package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js.map +1 -1
- package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +2 -2
- package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +3 -3
- package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.js +1 -1
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/{p-DwnNhGFv.js → p-B4MsUZ3n.js} +2 -2
- package/dist/components/p-BAsg2_dY.js +5 -0
- package/dist/components/{p-BwtZ7wGg.js → p-BEkJ7rmE.js} +2 -2
- package/dist/components/{p-XmNH38dk.js → p-BmoTo_-J.js} +2 -2
- package/dist/components/{p-Dymd58Ac.js → p-C--Voxln.js} +2 -2
- package/dist/components/{p-BphxnS-a.js → p-CIuxJYJL.js} +2 -2
- package/dist/components/p-CnYEgl0H.js +5 -0
- package/dist/components/p-CnYEgl0H.js.map +1 -0
- package/dist/components/{p-1qJWPhfT.js → p-D97fhwcJ.js} +2 -2
- package/dist/components/{p-CaXlgCvb.js → p-Dva0y9cX.js} +2 -2
- package/dist/components/{p-BxYIAIHN.js → p-NXN0rSu2.js} +2 -2
- package/dist/components/{p-D0KZu516.js → p-Y8W_BXUk.js} +2 -2
- package/dist/components/{p-CXO1zq8l.js → p-mJhaiMMT.js} +2 -2
- package/dist/components/vertex-scene-tree-notification-banner.js +1 -1
- package/dist/components/vertex-scene-tree-search.js +1 -1
- package/dist/components/vertex-scene-tree-table-column.js +1 -1
- package/dist/components/vertex-scene-tree-table-header.js +1 -1
- package/dist/components/vertex-scene-tree-table-layout.js +1 -1
- package/dist/components/vertex-scene-tree.js +1 -1
- package/dist/components/vertex-viewer-box-query-tool.js +1 -1
- package/dist/components/vertex-viewer-button.js +1 -1
- package/dist/components/vertex-viewer-default-toolbar.js +1 -1
- package/dist/components/vertex-viewer-default-toolbar.js.map +1 -1
- package/dist/components/vertex-viewer-dom-element.js +1 -1
- package/dist/components/vertex-viewer-dom-group.js +1 -1
- package/dist/components/vertex-viewer-hit-result-indicator.js +1 -1
- package/dist/components/vertex-viewer-layer.js +1 -1
- package/dist/components/vertex-viewer-measurement-distance.js.map +1 -1
- package/dist/components/vertex-viewer-pin-group.js +1 -1
- package/dist/components/vertex-viewer-pin-label-line.js +1 -1
- package/dist/components/vertex-viewer-pin-label.js +1 -1
- package/dist/components/vertex-viewer-pin-tool.js +1 -1
- package/dist/components/vertex-viewer-toolbar.js +1 -1
- package/dist/components/vertex-viewer-view-cube.js +1 -1
- package/dist/components/vertex-viewer.js +1 -1
- package/dist/components/vertex-viewer.js.map +1 -1
- package/dist/esm/{controller-CwTBp6Da.js → controller-CE2DwTNf.js} +139 -35
- package/dist/esm/controller-CE2DwTNf.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js +9 -9
- package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
- package/dist/esm/vertex-scene-tree.entry.js +3 -3
- package/dist/esm/vertex-viewer-box-query-tool.entry.js +2 -2
- package/dist/esm/vertex-viewer-button_3.entry.js +1 -1
- package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
- package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
- package/dist/esm/vertex-viewer-dom-group.entry.js +1 -1
- package/dist/esm/vertex-viewer-hit-result-indicator.entry.js +1 -1
- package/dist/esm/vertex-viewer-layer.entry.js +1 -1
- package/dist/esm/vertex-viewer-measurement-distance.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-pin-group.entry.js +3 -3
- package/dist/esm/vertex-viewer-pin-label_2.entry.js +4 -4
- package/dist/esm/vertex-viewer.entry.js +9 -4
- package/dist/esm/vertex-viewer.entry.js.map +1 -1
- package/dist/types/components/scene-tree/lib/controller.d.ts +2 -0
- package/dist/types/components/scene-tree/lib/jwt.d.ts +1 -1
- package/dist/types/components/viewer/viewer.d.ts +9 -1
- package/dist/types/components.d.ts +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/{p-4716c5d5.entry.js → p-06c99572.entry.js} +2 -2
- package/dist/viewer/p-15683a45.entry.js +5 -0
- package/dist/viewer/{p-78b4be75.entry.js → p-39129117.entry.js} +2 -2
- package/dist/viewer/p-5763b907.entry.js +5 -0
- package/dist/viewer/p-5763b907.entry.js.map +1 -0
- package/dist/viewer/{p-def7870b.entry.js → p-72479c7e.entry.js} +2 -2
- package/dist/viewer/{p-f3eff8c9.entry.js → p-7c767052.entry.js} +2 -2
- package/dist/viewer/{p-dd5d4304.entry.js → p-9c02567d.entry.js} +2 -2
- package/dist/viewer/p-CnYEgl0H.js +5 -0
- package/dist/viewer/p-CnYEgl0H.js.map +1 -0
- package/dist/viewer/p-a180d8a2.entry.js.map +1 -1
- package/dist/viewer/p-aceb3ef2.entry.js +5 -0
- package/dist/viewer/{p-21bacf72.entry.js.map → p-aceb3ef2.entry.js.map} +1 -1
- package/dist/viewer/p-b6dfbeec.entry.js +5 -0
- package/dist/viewer/{p-5963afa1.entry.js → p-c2c3579f.entry.js} +2 -2
- package/dist/viewer/p-d357d235.entry.js +5 -0
- package/dist/viewer/{p-c07dec9d.entry.js → p-dca0a6d8.entry.js} +2 -2
- package/dist/viewer/{p-5e162bd2.entry.js → p-ed965902.entry.js} +2 -2
- package/dist/viewer/{p-c76b6bc1.entry.js → p-ff5bb594.entry.js} +2 -2
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +11 -11
- package/readme.md +4 -4
- package/dist/cjs/controller-C-I_MLA3.js.map +0 -1
- package/dist/components/p-C-Bg5fev.js +0 -5
- package/dist/components/p-C-Bg5fev.js.map +0 -1
- package/dist/components/p-CDa0u-Gp.js +0 -5
- package/dist/esm/controller-CwTBp6Da.js.map +0 -1
- package/dist/viewer/p-21bacf72.entry.js +0 -5
- package/dist/viewer/p-27e68321.entry.js +0 -5
- package/dist/viewer/p-27e68321.entry.js.map +0 -1
- package/dist/viewer/p-686eef80.entry.js +0 -5
- package/dist/viewer/p-C-Bg5fev.js +0 -5
- package/dist/viewer/p-C-Bg5fev.js.map +0 -1
- package/dist/viewer/p-ba57a018.entry.js +0 -5
- package/dist/viewer/p-c7bd9aea.entry.js +0 -5
- /package/dist/components/{p-DwnNhGFv.js.map → p-B4MsUZ3n.js.map} +0 -0
- /package/dist/components/{p-CDa0u-Gp.js.map → p-BAsg2_dY.js.map} +0 -0
- /package/dist/components/{p-BwtZ7wGg.js.map → p-BEkJ7rmE.js.map} +0 -0
- /package/dist/components/{p-XmNH38dk.js.map → p-BmoTo_-J.js.map} +0 -0
- /package/dist/components/{p-Dymd58Ac.js.map → p-C--Voxln.js.map} +0 -0
- /package/dist/components/{p-BphxnS-a.js.map → p-CIuxJYJL.js.map} +0 -0
- /package/dist/components/{p-1qJWPhfT.js.map → p-D97fhwcJ.js.map} +0 -0
- /package/dist/components/{p-CaXlgCvb.js.map → p-Dva0y9cX.js.map} +0 -0
- /package/dist/components/{p-BxYIAIHN.js.map → p-NXN0rSu2.js.map} +0 -0
- /package/dist/components/{p-D0KZu516.js.map → p-Y8W_BXUk.js.map} +0 -0
- /package/dist/components/{p-CXO1zq8l.js.map → p-mJhaiMMT.js.map} +0 -0
- /package/dist/viewer/{p-4716c5d5.entry.js.map → p-06c99572.entry.js.map} +0 -0
- /package/dist/viewer/{p-c7bd9aea.entry.js.map → p-15683a45.entry.js.map} +0 -0
- /package/dist/viewer/{p-78b4be75.entry.js.map → p-39129117.entry.js.map} +0 -0
- /package/dist/viewer/{p-def7870b.entry.js.map → p-72479c7e.entry.js.map} +0 -0
- /package/dist/viewer/{p-f3eff8c9.entry.js.map → p-7c767052.entry.js.map} +0 -0
- /package/dist/viewer/{p-dd5d4304.entry.js.map → p-9c02567d.entry.js.map} +0 -0
- /package/dist/viewer/{p-ba57a018.entry.js.map → p-b6dfbeec.entry.js.map} +0 -0
- /package/dist/viewer/{p-5963afa1.entry.js.map → p-c2c3579f.entry.js.map} +0 -0
- /package/dist/viewer/{p-686eef80.entry.js.map → p-d357d235.entry.js.map} +0 -0
- /package/dist/viewer/{p-c07dec9d.entry.js.map → p-dca0a6d8.entry.js.map} +0 -0
- /package/dist/viewer/{p-5e162bd2.entry.js.map → p-ed965902.entry.js.map} +0 -0
- /package/dist/viewer/{p-c76b6bc1.entry.js.map → p-ff5bb594.entry.js.map} +0 -0
|
@@ -2703,7 +2703,8 @@ function requireScene_tree_api_pb () {
|
|
|
2703
2703
|
var f, obj = {
|
|
2704
2704
|
viewId: (f = msg.getViewId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f),
|
|
2705
2705
|
pager: (f = msg.getPager()) && core_protos_paging_pb.OffsetPager.toObject(includeInstance, f),
|
|
2706
|
-
additionalColumnKeysList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f
|
|
2706
|
+
additionalColumnKeysList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
|
|
2707
|
+
requireViewReady: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)
|
|
2707
2708
|
};
|
|
2708
2709
|
|
|
2709
2710
|
if (includeInstance) {
|
|
@@ -2754,6 +2755,10 @@ function requireScene_tree_api_pb () {
|
|
|
2754
2755
|
var value = /** @type {string} */ (reader.readString());
|
|
2755
2756
|
msg.addAdditionalColumnKeys(value);
|
|
2756
2757
|
break;
|
|
2758
|
+
case 4:
|
|
2759
|
+
var value = /** @type {boolean} */ (reader.readBool());
|
|
2760
|
+
msg.setRequireViewReady(value);
|
|
2761
|
+
break;
|
|
2757
2762
|
default:
|
|
2758
2763
|
reader.skipField();
|
|
2759
2764
|
break;
|
|
@@ -2806,6 +2811,13 @@ function requireScene_tree_api_pb () {
|
|
|
2806
2811
|
f
|
|
2807
2812
|
);
|
|
2808
2813
|
}
|
|
2814
|
+
f = message.getRequireViewReady();
|
|
2815
|
+
if (f) {
|
|
2816
|
+
writer.writeBool(
|
|
2817
|
+
4,
|
|
2818
|
+
f
|
|
2819
|
+
);
|
|
2820
|
+
}
|
|
2809
2821
|
};
|
|
2810
2822
|
|
|
2811
2823
|
|
|
@@ -2920,6 +2932,24 @@ function requireScene_tree_api_pb () {
|
|
|
2920
2932
|
};
|
|
2921
2933
|
|
|
2922
2934
|
|
|
2935
|
+
/**
|
|
2936
|
+
* optional bool require_view_ready = 4;
|
|
2937
|
+
* @return {boolean}
|
|
2938
|
+
*/
|
|
2939
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.getRequireViewReady = function() {
|
|
2940
|
+
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
|
|
2941
|
+
};
|
|
2942
|
+
|
|
2943
|
+
|
|
2944
|
+
/**
|
|
2945
|
+
* @param {boolean} value
|
|
2946
|
+
* @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest} returns this
|
|
2947
|
+
*/
|
|
2948
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.setRequireViewReady = function(value) {
|
|
2949
|
+
return jspb.Message.setProto3BooleanField(this, 4, value);
|
|
2950
|
+
};
|
|
2951
|
+
|
|
2952
|
+
|
|
2923
2953
|
|
|
2924
2954
|
/**
|
|
2925
2955
|
* List of repeated fields within this message type.
|
|
@@ -6511,10 +6541,66 @@ function webSocketSubscriptionTransportFactory(options) {
|
|
|
6511
6541
|
}
|
|
6512
6542
|
}
|
|
6513
6543
|
|
|
6514
|
-
|
|
6544
|
+
class InvalidTokenError extends Error {
|
|
6545
|
+
}
|
|
6546
|
+
InvalidTokenError.prototype.name = "InvalidTokenError";
|
|
6547
|
+
function b64DecodeUnicode(str) {
|
|
6548
|
+
return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {
|
|
6549
|
+
let code = p.charCodeAt(0).toString(16).toUpperCase();
|
|
6550
|
+
if (code.length < 2) {
|
|
6551
|
+
code = "0" + code;
|
|
6552
|
+
}
|
|
6553
|
+
return "%" + code;
|
|
6554
|
+
}));
|
|
6555
|
+
}
|
|
6556
|
+
function base64UrlDecode(str) {
|
|
6557
|
+
let output = str.replace(/-/g, "+").replace(/_/g, "/");
|
|
6558
|
+
switch (output.length % 4) {
|
|
6559
|
+
case 0:
|
|
6560
|
+
break;
|
|
6561
|
+
case 2:
|
|
6562
|
+
output += "==";
|
|
6563
|
+
break;
|
|
6564
|
+
case 3:
|
|
6565
|
+
output += "=";
|
|
6566
|
+
break;
|
|
6567
|
+
default:
|
|
6568
|
+
throw new Error("base64 string is not of the correct length");
|
|
6569
|
+
}
|
|
6570
|
+
try {
|
|
6571
|
+
return b64DecodeUnicode(output);
|
|
6572
|
+
}
|
|
6573
|
+
catch (err) {
|
|
6574
|
+
return atob(output);
|
|
6575
|
+
}
|
|
6576
|
+
}
|
|
6577
|
+
function jwtDecode(token, options) {
|
|
6578
|
+
if (typeof token !== "string") {
|
|
6579
|
+
throw new InvalidTokenError("Invalid token specified: must be a string");
|
|
6580
|
+
}
|
|
6581
|
+
options || (options = {});
|
|
6582
|
+
const pos = options.header === true ? 0 : 1;
|
|
6583
|
+
const part = token.split(".")[pos];
|
|
6584
|
+
if (typeof part !== "string") {
|
|
6585
|
+
throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);
|
|
6586
|
+
}
|
|
6587
|
+
let decoded;
|
|
6588
|
+
try {
|
|
6589
|
+
decoded = base64UrlDecode(part);
|
|
6590
|
+
}
|
|
6591
|
+
catch (e) {
|
|
6592
|
+
throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);
|
|
6593
|
+
}
|
|
6594
|
+
try {
|
|
6595
|
+
return JSON.parse(decoded);
|
|
6596
|
+
}
|
|
6597
|
+
catch (e) {
|
|
6598
|
+
throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);
|
|
6599
|
+
}
|
|
6600
|
+
}
|
|
6515
6601
|
|
|
6516
6602
|
function decodeSceneTreeJwt(jwt) {
|
|
6517
|
-
return
|
|
6603
|
+
return jwtDecode(jwt);
|
|
6518
6604
|
}
|
|
6519
6605
|
|
|
6520
6606
|
/**
|
|
@@ -6885,25 +6971,23 @@ class SceneTreeController {
|
|
|
6885
6971
|
* @param index A 0 based index to fetch.
|
|
6886
6972
|
*/
|
|
6887
6973
|
async fetchPage(index) {
|
|
6888
|
-
|
|
6889
|
-
|
|
6890
|
-
|
|
6891
|
-
|
|
6892
|
-
|
|
6893
|
-
|
|
6894
|
-
|
|
6895
|
-
|
|
6896
|
-
|
|
6897
|
-
|
|
6898
|
-
|
|
6899
|
-
|
|
6900
|
-
|
|
6901
|
-
|
|
6902
|
-
|
|
6903
|
-
|
|
6904
|
-
|
|
6905
|
-
}
|
|
6906
|
-
});
|
|
6974
|
+
if (index < 0 || index > this.maxPages - 1) {
|
|
6975
|
+
return;
|
|
6976
|
+
}
|
|
6977
|
+
if (!this.pages.has(index)) {
|
|
6978
|
+
const offset = index * this.rowLimit;
|
|
6979
|
+
this.log('Scene tree fetching page', index, offset);
|
|
6980
|
+
const res = this.fetchTree(offset, this.rowLimit, () => this.ifConnectionHasJwt((jwt) => jwt));
|
|
6981
|
+
const id = this.nextPageId++;
|
|
6982
|
+
const page = { id, res, index, metadataKeys: this.metadataKeys };
|
|
6983
|
+
this.pages.set(index, page);
|
|
6984
|
+
page.done = this.handlePageResult(page);
|
|
6985
|
+
}
|
|
6986
|
+
const page = this.pages.get(index);
|
|
6987
|
+
const [resResult] = await Promise.allSettled([page === null || page === void 0 ? void 0 : page.res, page === null || page === void 0 ? void 0 : page.done]);
|
|
6988
|
+
if ((resResult === null || resResult === void 0 ? void 0 : resResult.status) === 'rejected') {
|
|
6989
|
+
throw resResult.reason;
|
|
6990
|
+
}
|
|
6907
6991
|
}
|
|
6908
6992
|
/**
|
|
6909
6993
|
* Fetches a page that contains the given row offset.
|
|
@@ -7325,16 +7409,34 @@ class SceneTreeController {
|
|
|
7325
7409
|
const pageEnd = this.getPageForOffset(end);
|
|
7326
7410
|
return [pageStart, pageEnd];
|
|
7327
7411
|
}
|
|
7328
|
-
async fetchTree(offset, limit,
|
|
7329
|
-
|
|
7330
|
-
|
|
7331
|
-
|
|
7332
|
-
|
|
7333
|
-
|
|
7334
|
-
|
|
7335
|
-
|
|
7336
|
-
|
|
7337
|
-
|
|
7412
|
+
async fetchTree(offset, limit, jwtProvider, currentAttempt = 1) {
|
|
7413
|
+
const maxAttempts = SceneTreeController.MAX_GET_TREE_ATTEMPTS;
|
|
7414
|
+
try {
|
|
7415
|
+
const jwt = await jwtProvider();
|
|
7416
|
+
return await this.requestUnary(jwt, (metadata, handler) => {
|
|
7417
|
+
const pager = new errors.paging_pbExports.OffsetPager();
|
|
7418
|
+
pager.setOffset(offset);
|
|
7419
|
+
pager.setLimit(limit);
|
|
7420
|
+
const req = new scene_tree_api_pbExports.GetTreeRequest();
|
|
7421
|
+
req.setPager(pager);
|
|
7422
|
+
req.setAdditionalColumnKeysList(this.metadataKeys);
|
|
7423
|
+
req.setRequireViewReady(true);
|
|
7424
|
+
this.client.getTree(req, metadata, handler);
|
|
7425
|
+
});
|
|
7426
|
+
}
|
|
7427
|
+
catch (error) {
|
|
7428
|
+
if (!isGrpcServiceError(error) || error.code !== wrappers_pb.grpcWebClient_umdExports.grpc.Code.Unavailable) {
|
|
7429
|
+
throw error;
|
|
7430
|
+
}
|
|
7431
|
+
if (currentAttempt >= maxAttempts) {
|
|
7432
|
+
throw new Error(`Failed to retrieve scene tree after ${maxAttempts} attempts.`);
|
|
7433
|
+
}
|
|
7434
|
+
const delay = SceneTreeController.GET_TREE_RETRY_DELAYS_IN_MS[currentAttempt - 1];
|
|
7435
|
+
const nextAttempt = currentAttempt + 1;
|
|
7436
|
+
console.warn(`GetTree failed because the view is not ready. Retrying in ${delay}ms (attempt ${nextAttempt}/${maxAttempts}).`);
|
|
7437
|
+
await bundle.async.delay(delay);
|
|
7438
|
+
return this.fetchTree(offset, limit, jwtProvider, nextAttempt);
|
|
7439
|
+
}
|
|
7338
7440
|
}
|
|
7339
7441
|
// TODO(dan): used shared grpc lib
|
|
7340
7442
|
requestUnary(jwt, req) {
|
|
@@ -7436,11 +7538,13 @@ class SceneTreeController {
|
|
|
7436
7538
|
SceneTreeController.IDLE_RECONNECT_IN_SECONDS = 4 * 60;
|
|
7437
7539
|
SceneTreeController.LOST_CONNECTION_RECONNECT_IN_SECONDS = 2;
|
|
7438
7540
|
SceneTreeController.MAX_SUBSCRIPTION_RETRY_COUNT = 2;
|
|
7541
|
+
SceneTreeController.MAX_GET_TREE_ATTEMPTS = 6;
|
|
7542
|
+
SceneTreeController.GET_TREE_RETRY_DELAYS_IN_MS = [1000, 2000, 4000, 8000, 15000];
|
|
7439
7543
|
|
|
7440
7544
|
exports.SceneTreeController = SceneTreeController;
|
|
7441
7545
|
exports.SceneTreeErrorDetails = SceneTreeErrorDetails;
|
|
7442
7546
|
exports.scene_tree_api_pb_serviceExports = scene_tree_api_pb_serviceExports;
|
|
7443
7547
|
exports.webSocketSubscriptionTransportFactory = webSocketSubscriptionTransportFactory;
|
|
7444
|
-
//# sourceMappingURL=controller-
|
|
7548
|
+
//# sourceMappingURL=controller-C74GX70e.js.map
|
|
7445
7549
|
|
|
7446
|
-
//# sourceMappingURL=controller-
|
|
7550
|
+
//# sourceMappingURL=controller-C74GX70e.js.map
|