@machinemetrics/mm-react-tools 2.1.0 → 2.2.0-dev
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/index.js +471 -144
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +471 -144
- package/dist/index.modern.js.map +1 -1
- package/package.json +8 -8
package/dist/index.modern.js
CHANGED
|
@@ -544,11 +544,165 @@ function _taggedTemplateLiteralLoose(strings, raw) {
|
|
|
544
544
|
}
|
|
545
545
|
|
|
546
546
|
// A type of promise-like that resolves synchronously and supports only one observer
|
|
547
|
+
const _Pact = /*#__PURE__*/(function() {
|
|
548
|
+
function _Pact() {}
|
|
549
|
+
_Pact.prototype.then = function(onFulfilled, onRejected) {
|
|
550
|
+
const result = new _Pact();
|
|
551
|
+
const state = this.s;
|
|
552
|
+
if (state) {
|
|
553
|
+
const callback = state & 1 ? onFulfilled : onRejected;
|
|
554
|
+
if (callback) {
|
|
555
|
+
try {
|
|
556
|
+
_settle(result, 1, callback(this.v));
|
|
557
|
+
} catch (e) {
|
|
558
|
+
_settle(result, 2, e);
|
|
559
|
+
}
|
|
560
|
+
return result;
|
|
561
|
+
} else {
|
|
562
|
+
return this;
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
this.o = function(_this) {
|
|
566
|
+
try {
|
|
567
|
+
const value = _this.v;
|
|
568
|
+
if (_this.s & 1) {
|
|
569
|
+
_settle(result, 1, onFulfilled ? onFulfilled(value) : value);
|
|
570
|
+
} else if (onRejected) {
|
|
571
|
+
_settle(result, 1, onRejected(value));
|
|
572
|
+
} else {
|
|
573
|
+
_settle(result, 2, value);
|
|
574
|
+
}
|
|
575
|
+
} catch (e) {
|
|
576
|
+
_settle(result, 2, e);
|
|
577
|
+
}
|
|
578
|
+
};
|
|
579
|
+
return result;
|
|
580
|
+
};
|
|
581
|
+
return _Pact;
|
|
582
|
+
})();
|
|
583
|
+
|
|
584
|
+
// Settles a pact synchronously
|
|
585
|
+
function _settle(pact, state, value) {
|
|
586
|
+
if (!pact.s) {
|
|
587
|
+
if (value instanceof _Pact) {
|
|
588
|
+
if (value.s) {
|
|
589
|
+
if (state & 1) {
|
|
590
|
+
state = value.s;
|
|
591
|
+
}
|
|
592
|
+
value = value.v;
|
|
593
|
+
} else {
|
|
594
|
+
value.o = _settle.bind(null, pact, state);
|
|
595
|
+
return;
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
if (value && value.then) {
|
|
599
|
+
value.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));
|
|
600
|
+
return;
|
|
601
|
+
}
|
|
602
|
+
pact.s = state;
|
|
603
|
+
pact.v = value;
|
|
604
|
+
const observer = pact.o;
|
|
605
|
+
if (observer) {
|
|
606
|
+
observer(pact);
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
function _isSettledPact(thenable) {
|
|
612
|
+
return thenable instanceof _Pact && thenable.s & 1;
|
|
613
|
+
}
|
|
547
614
|
|
|
548
615
|
const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
|
|
549
616
|
|
|
550
617
|
const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator";
|
|
551
618
|
|
|
619
|
+
// Asynchronously implement a generic for loop
|
|
620
|
+
function _for(test, update, body) {
|
|
621
|
+
var stage;
|
|
622
|
+
for (;;) {
|
|
623
|
+
var shouldContinue = test();
|
|
624
|
+
if (_isSettledPact(shouldContinue)) {
|
|
625
|
+
shouldContinue = shouldContinue.v;
|
|
626
|
+
}
|
|
627
|
+
if (!shouldContinue) {
|
|
628
|
+
return result;
|
|
629
|
+
}
|
|
630
|
+
if (shouldContinue.then) {
|
|
631
|
+
stage = 0;
|
|
632
|
+
break;
|
|
633
|
+
}
|
|
634
|
+
var result = body();
|
|
635
|
+
if (result && result.then) {
|
|
636
|
+
if (_isSettledPact(result)) {
|
|
637
|
+
result = result.s;
|
|
638
|
+
} else {
|
|
639
|
+
stage = 1;
|
|
640
|
+
break;
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
if (update) {
|
|
644
|
+
var updateValue = update();
|
|
645
|
+
if (updateValue && updateValue.then && !_isSettledPact(updateValue)) {
|
|
646
|
+
stage = 2;
|
|
647
|
+
break;
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
var pact = new _Pact();
|
|
652
|
+
var reject = _settle.bind(null, pact, 2);
|
|
653
|
+
(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);
|
|
654
|
+
return pact;
|
|
655
|
+
function _resumeAfterBody(value) {
|
|
656
|
+
result = value;
|
|
657
|
+
do {
|
|
658
|
+
if (update) {
|
|
659
|
+
updateValue = update();
|
|
660
|
+
if (updateValue && updateValue.then && !_isSettledPact(updateValue)) {
|
|
661
|
+
updateValue.then(_resumeAfterUpdate).then(void 0, reject);
|
|
662
|
+
return;
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
shouldContinue = test();
|
|
666
|
+
if (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {
|
|
667
|
+
_settle(pact, 1, result);
|
|
668
|
+
return;
|
|
669
|
+
}
|
|
670
|
+
if (shouldContinue.then) {
|
|
671
|
+
shouldContinue.then(_resumeAfterTest).then(void 0, reject);
|
|
672
|
+
return;
|
|
673
|
+
}
|
|
674
|
+
result = body();
|
|
675
|
+
if (_isSettledPact(result)) {
|
|
676
|
+
result = result.v;
|
|
677
|
+
}
|
|
678
|
+
} while (!result || !result.then);
|
|
679
|
+
result.then(_resumeAfterBody).then(void 0, reject);
|
|
680
|
+
}
|
|
681
|
+
function _resumeAfterTest(shouldContinue) {
|
|
682
|
+
if (shouldContinue) {
|
|
683
|
+
result = body();
|
|
684
|
+
if (result && result.then) {
|
|
685
|
+
result.then(_resumeAfterBody).then(void 0, reject);
|
|
686
|
+
} else {
|
|
687
|
+
_resumeAfterBody(result);
|
|
688
|
+
}
|
|
689
|
+
} else {
|
|
690
|
+
_settle(pact, 1, result);
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
function _resumeAfterUpdate() {
|
|
694
|
+
if (shouldContinue = test()) {
|
|
695
|
+
if (shouldContinue.then) {
|
|
696
|
+
shouldContinue.then(_resumeAfterTest).then(void 0, reject);
|
|
697
|
+
} else {
|
|
698
|
+
_resumeAfterTest(shouldContinue);
|
|
699
|
+
}
|
|
700
|
+
} else {
|
|
701
|
+
_settle(pact, 1, result);
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
|
|
552
706
|
// Asynchronously call a function and send errors to recovery continuation
|
|
553
707
|
function _catch(body, recover) {
|
|
554
708
|
try {
|
|
@@ -562,6 +716,19 @@ function _catch(body, recover) {
|
|
|
562
716
|
return result;
|
|
563
717
|
}
|
|
564
718
|
|
|
719
|
+
// Asynchronously await a promise and pass the result to a finally continuation
|
|
720
|
+
function _finallyRethrows(body, finalizer) {
|
|
721
|
+
try {
|
|
722
|
+
var result = body();
|
|
723
|
+
} catch (e) {
|
|
724
|
+
return finalizer(true, e);
|
|
725
|
+
}
|
|
726
|
+
if (result && result.then) {
|
|
727
|
+
return result.then(finalizer.bind(null, false), finalizer.bind(null, true));
|
|
728
|
+
}
|
|
729
|
+
return finalizer(false, result);
|
|
730
|
+
}
|
|
731
|
+
|
|
565
732
|
var MMAuthContext = React.createContext();
|
|
566
733
|
|
|
567
734
|
var MMAuthInternalContext = React.createContext();
|
|
@@ -1189,8 +1356,9 @@ var Authorize = function Authorize(_ref) {
|
|
|
1189
1356
|
return !isAuthenticated ? /*#__PURE__*/React.createElement(Message, null, "Authorizing...") : /*#__PURE__*/React.createElement(Done, null);
|
|
1190
1357
|
};
|
|
1191
1358
|
|
|
1192
|
-
var
|
|
1193
|
-
var
|
|
1359
|
+
var DataWrapper = function DataWrapper(_ref) {
|
|
1360
|
+
var jwtRef = _ref.jwtRef,
|
|
1361
|
+
natsCredsRef = _ref.natsCredsRef,
|
|
1194
1362
|
graphQLRoleOverride = _ref.graphQLRoleOverride,
|
|
1195
1363
|
clientId = _ref.clientId,
|
|
1196
1364
|
accessToken = _ref.accessToken;
|
|
@@ -1198,6 +1366,14 @@ var ApolloApp = function ApolloApp(_ref) {
|
|
|
1198
1366
|
var _useMMAuth = useMMAuth(),
|
|
1199
1367
|
urls = _useMMAuth.urls;
|
|
1200
1368
|
|
|
1369
|
+
var _useState = useState(),
|
|
1370
|
+
client = _useState[0],
|
|
1371
|
+
setClient = _useState[1];
|
|
1372
|
+
|
|
1373
|
+
var _useState2 = useState(),
|
|
1374
|
+
link = _useState2[0],
|
|
1375
|
+
setLink = _useState2[1];
|
|
1376
|
+
|
|
1201
1377
|
var getHierPart = function getHierPart() {
|
|
1202
1378
|
var url = new URL(urls.graphQLUrl);
|
|
1203
1379
|
return "//" + url.host + url.pathname;
|
|
@@ -1209,85 +1385,94 @@ var ApolloApp = function ApolloApp(_ref) {
|
|
|
1209
1385
|
} : {};
|
|
1210
1386
|
};
|
|
1211
1387
|
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1388
|
+
useEffect(function () {
|
|
1389
|
+
var wsLink = new GraphQLWsLink(createClient({
|
|
1390
|
+
url: "wss:" + getHierPart(),
|
|
1391
|
+
lazy: true,
|
|
1392
|
+
reconnect: true,
|
|
1393
|
+
connectionParams: function () {
|
|
1394
|
+
try {
|
|
1395
|
+
return Promise.resolve({
|
|
1396
|
+
headers: _extends({
|
|
1397
|
+
Authorization: "Bearer " + jwtRef.current
|
|
1398
|
+
}, getRoleHeaders())
|
|
1399
|
+
});
|
|
1400
|
+
} catch (e) {
|
|
1401
|
+
return Promise.reject(e);
|
|
1402
|
+
}
|
|
1403
|
+
}
|
|
1404
|
+
}));
|
|
1405
|
+
var errorLink = onError(function (_ref2) {
|
|
1406
|
+
var operation = _ref2.operation,
|
|
1407
|
+
networkError = _ref2.networkError,
|
|
1408
|
+
forward = _ref2.forward;
|
|
1409
|
+
var definition = getMainDefinition(operation.query);
|
|
1410
|
+
|
|
1411
|
+
if (definition.operation === 'subscription' && networkError) {
|
|
1412
|
+
wsLink.client.terminate();
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
return forward(operation);
|
|
1416
|
+
});
|
|
1417
|
+
var jwtAuthLink = setContext(function (_, _ref3) {
|
|
1418
|
+
var headers = _ref3.headers;
|
|
1419
|
+
|
|
1217
1420
|
try {
|
|
1218
1421
|
return Promise.resolve({
|
|
1219
|
-
headers: _extends({
|
|
1220
|
-
Authorization: "Bearer " +
|
|
1422
|
+
headers: _extends({}, headers, {
|
|
1423
|
+
Authorization: "Bearer " + jwtRef.current
|
|
1221
1424
|
}, getRoleHeaders())
|
|
1222
1425
|
});
|
|
1223
1426
|
} catch (e) {
|
|
1224
1427
|
return Promise.reject(e);
|
|
1225
1428
|
}
|
|
1226
|
-
}
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
return forward(operation);
|
|
1239
|
-
});
|
|
1240
|
-
var jwtAuthLink = setContext(function (_, _ref3) {
|
|
1241
|
-
var headers = _ref3.headers;
|
|
1429
|
+
});
|
|
1430
|
+
var httpLink = jwtAuthLink.concat(createHttpLink({
|
|
1431
|
+
uri: "https:" + getHierPart(),
|
|
1432
|
+
fetch: window.fetch
|
|
1433
|
+
}));
|
|
1434
|
+
var graphQlLink = errorLink.split(function (_ref4) {
|
|
1435
|
+
var query = _ref4.query;
|
|
1436
|
+
var definition = getMainDefinition(query);
|
|
1437
|
+
return definition.kind === 'OperationDefinition' && definition.operation === 'subscription';
|
|
1438
|
+
}, wsLink, httpLink);
|
|
1439
|
+
var accessTokenAuthLink = setContext(function (_, _ref5) {
|
|
1440
|
+
var headers = _ref5.headers;
|
|
1242
1441
|
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1442
|
+
try {
|
|
1443
|
+
return Promise.resolve({
|
|
1444
|
+
headers: _extends({}, headers, {
|
|
1445
|
+
Authorization: "Bearer " + accessToken
|
|
1446
|
+
})
|
|
1447
|
+
});
|
|
1448
|
+
} catch (e) {
|
|
1449
|
+
return Promise.reject(e);
|
|
1450
|
+
}
|
|
1451
|
+
});
|
|
1452
|
+
var restLink = accessTokenAuthLink.concat(new RestLink({
|
|
1453
|
+
uri: urls.apiUrl
|
|
1454
|
+
}));
|
|
1455
|
+
setLink(ApolloLink.from([restLink, graphQlLink]));
|
|
1456
|
+
}, []);
|
|
1457
|
+
useEffect(function () {
|
|
1458
|
+
if (!link) {
|
|
1459
|
+
return;
|
|
1251
1460
|
}
|
|
1252
|
-
});
|
|
1253
|
-
var httpLink = jwtAuthLink.concat(createHttpLink({
|
|
1254
|
-
uri: "https:" + getHierPart(),
|
|
1255
|
-
fetch: window.fetch
|
|
1256
|
-
}));
|
|
1257
|
-
var graphQlLink = errorLink.split(function (_ref4) {
|
|
1258
|
-
var query = _ref4.query;
|
|
1259
|
-
var definition = getMainDefinition(query);
|
|
1260
|
-
return definition.kind === 'OperationDefinition' && definition.operation === 'subscription';
|
|
1261
|
-
}, wsLink, httpLink);
|
|
1262
|
-
var accessTokenAuthLink = setContext(function (_, _ref5) {
|
|
1263
|
-
var headers = _ref5.headers;
|
|
1264
1461
|
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
});
|
|
1271
|
-
} catch (e) {
|
|
1272
|
-
return Promise.reject(e);
|
|
1273
|
-
}
|
|
1274
|
-
});
|
|
1275
|
-
var restLink = accessTokenAuthLink.concat(new RestLink({
|
|
1276
|
-
uri: urls.apiUrl
|
|
1277
|
-
}));
|
|
1278
|
-
var link = ApolloLink.from([restLink, graphQlLink]);
|
|
1279
|
-
var client = new ApolloClient({
|
|
1280
|
-
link: link,
|
|
1281
|
-
cache: new InMemoryCache()
|
|
1282
|
-
});
|
|
1462
|
+
setClient(new ApolloClient({
|
|
1463
|
+
link: link,
|
|
1464
|
+
cache: new InMemoryCache()
|
|
1465
|
+
}));
|
|
1466
|
+
}, [link]);
|
|
1283
1467
|
return /*#__PURE__*/React.createElement(MMAuthInternalContext.Provider, {
|
|
1284
1468
|
value: {
|
|
1285
1469
|
link: link,
|
|
1286
|
-
|
|
1470
|
+
natsCredsRef: natsCredsRef,
|
|
1471
|
+
jwtRef: jwtRef,
|
|
1287
1472
|
clientId: clientId,
|
|
1288
1473
|
accessToken: accessToken
|
|
1289
1474
|
}
|
|
1290
|
-
}, /*#__PURE__*/React.createElement(ApolloProvider, {
|
|
1475
|
+
}, client && /*#__PURE__*/React.createElement(ApolloProvider, {
|
|
1291
1476
|
client: client
|
|
1292
1477
|
}, /*#__PURE__*/React.createElement(Outlet, null)));
|
|
1293
1478
|
};
|
|
@@ -1306,13 +1491,8 @@ var MMJwtProvider = function MMJwtProvider(_ref) {
|
|
|
1306
1491
|
isAuthenticated = _useState[0],
|
|
1307
1492
|
setIsAuthenticated = _useState[1];
|
|
1308
1493
|
|
|
1309
|
-
var
|
|
1310
|
-
|
|
1311
|
-
setJwt = _useState2[1];
|
|
1312
|
-
|
|
1313
|
-
var _useState3 = useState(),
|
|
1314
|
-
natsCreds = _useState3[0],
|
|
1315
|
-
setNatsCreds = _useState3[1];
|
|
1494
|
+
var jwtRef = useRef();
|
|
1495
|
+
var natsCredsRef = useRef();
|
|
1316
1496
|
|
|
1317
1497
|
var logout = function logout() {
|
|
1318
1498
|
try {
|
|
@@ -1359,14 +1539,14 @@ var MMJwtProvider = function MMJwtProvider(_ref) {
|
|
|
1359
1539
|
useAsyncInterval(function () {
|
|
1360
1540
|
try {
|
|
1361
1541
|
if (!accessToken) {
|
|
1362
|
-
|
|
1542
|
+
jwtRef.current = null;
|
|
1363
1543
|
setIsAuthenticated(false);
|
|
1364
1544
|
return Promise.resolve();
|
|
1365
1545
|
}
|
|
1366
1546
|
|
|
1367
1547
|
var _temp3 = _catch(function () {
|
|
1368
1548
|
return Promise.resolve(request(urls.apiUrl + "/user-token?graphql=1")).then(function (response) {
|
|
1369
|
-
|
|
1549
|
+
jwtRef.current = response;
|
|
1370
1550
|
setIsAuthenticated(true);
|
|
1371
1551
|
});
|
|
1372
1552
|
}, function () {});
|
|
@@ -1379,13 +1559,13 @@ var MMJwtProvider = function MMJwtProvider(_ref) {
|
|
|
1379
1559
|
useAsyncInterval(function () {
|
|
1380
1560
|
try {
|
|
1381
1561
|
if (!accessToken) {
|
|
1382
|
-
|
|
1562
|
+
natsCredsRef.current = null;
|
|
1383
1563
|
return Promise.resolve();
|
|
1384
1564
|
}
|
|
1385
1565
|
|
|
1386
1566
|
var _temp5 = _catch(function () {
|
|
1387
1567
|
return Promise.resolve(request(urls.apiUrl + "/nats-token")).then(function (response) {
|
|
1388
|
-
|
|
1568
|
+
natsCredsRef.current = response;
|
|
1389
1569
|
});
|
|
1390
1570
|
}, function () {});
|
|
1391
1571
|
|
|
@@ -1400,8 +1580,7 @@ var MMJwtProvider = function MMJwtProvider(_ref) {
|
|
|
1400
1580
|
login: login,
|
|
1401
1581
|
logout: logout,
|
|
1402
1582
|
request: request,
|
|
1403
|
-
urls: urls
|
|
1404
|
-
natsCreds: natsCreds
|
|
1583
|
+
urls: urls
|
|
1405
1584
|
}
|
|
1406
1585
|
}, /*#__PURE__*/React.createElement(Routes, null, /*#__PURE__*/React.createElement(Route, {
|
|
1407
1586
|
exact: true,
|
|
@@ -1411,10 +1590,11 @@ var MMJwtProvider = function MMJwtProvider(_ref) {
|
|
|
1411
1590
|
})
|
|
1412
1591
|
}), /*#__PURE__*/React.createElement(Route, {
|
|
1413
1592
|
path: "/",
|
|
1414
|
-
element: /*#__PURE__*/React.createElement(
|
|
1593
|
+
element: /*#__PURE__*/React.createElement(DataWrapper, {
|
|
1415
1594
|
clientId: clientId,
|
|
1416
1595
|
graphQLRoleOverride: graphQLRoleOverride,
|
|
1417
|
-
|
|
1596
|
+
jwtRef: jwtRef,
|
|
1597
|
+
natsCredsRef: natsCredsRef,
|
|
1418
1598
|
accessToken: accessToken
|
|
1419
1599
|
})
|
|
1420
1600
|
}, children))));
|
|
@@ -1458,21 +1638,26 @@ var MMProvider = function MMProvider(_ref) {
|
|
|
1458
1638
|
clientId = _ref.clientId,
|
|
1459
1639
|
clientSecret = _ref.clientSecret,
|
|
1460
1640
|
releaseStage = _ref.releaseStage,
|
|
1461
|
-
graphQLRoleOverride = _ref.graphQLRoleOverride
|
|
1641
|
+
graphQLRoleOverride = _ref.graphQLRoleOverride,
|
|
1642
|
+
customUrls = _ref.urls;
|
|
1462
1643
|
|
|
1463
1644
|
if (releaseStage === 'release') {
|
|
1464
1645
|
releaseStage = 'production';
|
|
1465
1646
|
console.warn("releaseStage \"release\" has been deprecated. use \"production\" instead.");
|
|
1466
1647
|
}
|
|
1467
1648
|
|
|
1468
|
-
var urls
|
|
1649
|
+
var urls;
|
|
1469
1650
|
|
|
1470
|
-
if (
|
|
1651
|
+
if (URL_MAP[releaseStage]) {
|
|
1652
|
+
urls = URL_MAP[releaseStage];
|
|
1653
|
+
} else {
|
|
1471
1654
|
var stages = _.keys(URL_MAP).join(', ');
|
|
1472
1655
|
|
|
1473
1656
|
throw Error("MMProvider releaseStage must be one of the following: " + stages);
|
|
1474
1657
|
}
|
|
1475
1658
|
|
|
1659
|
+
urls = _.merge(urls, customUrls);
|
|
1660
|
+
|
|
1476
1661
|
var _useState = useState(retrieveAccessToken()),
|
|
1477
1662
|
accessToken = _useState[0],
|
|
1478
1663
|
setAccessToken = _useState[1];
|
|
@@ -1560,17 +1745,14 @@ var MMProvider = function MMProvider(_ref) {
|
|
|
1560
1745
|
}));
|
|
1561
1746
|
};
|
|
1562
1747
|
|
|
1748
|
+
var ALLOWED_DELIVERY_POLICIES = ['new', 'last', 'last_per_subject'];
|
|
1749
|
+
|
|
1563
1750
|
var connectToServer = function connectToServer(url, creds) {
|
|
1564
1751
|
try {
|
|
1565
|
-
|
|
1566
|
-
return Promise.resolve(
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
authenticator: credsAuthenticator(credentialsBytes)
|
|
1570
|
-
}));
|
|
1571
|
-
}, function (error) {
|
|
1572
|
-
console.error("Error connecting to server: " + error.message);
|
|
1573
|
-
throw error;
|
|
1752
|
+
console.info("Connecting to server " + url);
|
|
1753
|
+
return Promise.resolve(connect({
|
|
1754
|
+
servers: [url],
|
|
1755
|
+
authenticator: credsAuthenticator(new TextEncoder().encode(creds))
|
|
1574
1756
|
}));
|
|
1575
1757
|
} catch (e) {
|
|
1576
1758
|
return Promise.reject(e);
|
|
@@ -1617,7 +1799,7 @@ function _decode() {
|
|
|
1617
1799
|
case 14:
|
|
1618
1800
|
_context.prev = 14;
|
|
1619
1801
|
_context.t0 = _context["catch"](9);
|
|
1620
|
-
console.warn("Skipping event
|
|
1802
|
+
console.warn("Skipping event: " + _context.t0);
|
|
1621
1803
|
|
|
1622
1804
|
case 17:
|
|
1623
1805
|
_iteratorAbruptCompletion = false;
|
|
@@ -1672,67 +1854,212 @@ function _decode() {
|
|
|
1672
1854
|
return _decode.apply(this, arguments);
|
|
1673
1855
|
}
|
|
1674
1856
|
|
|
1675
|
-
var
|
|
1676
|
-
|
|
1677
|
-
|
|
1857
|
+
var closeConnection = function closeConnection(eventStreamRef, connectionRef) {
|
|
1858
|
+
if (eventStreamRef.current) {
|
|
1859
|
+
eventStreamRef.current = undefined;
|
|
1860
|
+
}
|
|
1861
|
+
|
|
1862
|
+
if (connectionRef.current) {
|
|
1863
|
+
connectionRef.current.close();
|
|
1864
|
+
connectionRef.current = undefined;
|
|
1865
|
+
}
|
|
1866
|
+
};
|
|
1867
|
+
|
|
1868
|
+
var streamPatterns = {
|
|
1869
|
+
scada: 'mm.0.[location-ref].[machine-ref].[qualifier].[data-category].[metric-key].[message-type]',
|
|
1870
|
+
'machine-service': 'mm.2.[location-ref].[machine-ref].[service-name].[qualifier].[data-category].[metric-key].[message-type]',
|
|
1871
|
+
'edge-service': 'mm.3.[location-ref].[edge-ref].[service-name].[data-category].[metric-key].[message-type]',
|
|
1872
|
+
'machine-source-service': 'mm.4.[location-ref].[machine-ref].[machine-source-ref].[service-name].[data-category].[metric-key].[message-type]',
|
|
1873
|
+
edge: 'mm.7.[location-ref].[edge-ref].[data-category].[metric-key].[message-type]'
|
|
1874
|
+
};
|
|
1875
|
+
var dataCategoryMapping = {
|
|
1876
|
+
undefined: 0,
|
|
1877
|
+
event: 1,
|
|
1878
|
+
eventset: 2,
|
|
1879
|
+
quantity: 3,
|
|
1880
|
+
state: 4,
|
|
1881
|
+
count: 5,
|
|
1882
|
+
info: 6,
|
|
1883
|
+
beat: 7
|
|
1884
|
+
};
|
|
1885
|
+
|
|
1886
|
+
var buildSubject = function buildSubject(streamName, locationRef, filter) {
|
|
1887
|
+
if (!streamPatterns[streamName]) {
|
|
1888
|
+
throw new Error('Unknown stream name');
|
|
1889
|
+
}
|
|
1890
|
+
|
|
1891
|
+
var pattern = streamPatterns[streamName].split('.');
|
|
1892
|
+
var subject = '';
|
|
1893
|
+
pattern.forEach(function (part, index) {
|
|
1894
|
+
switch (part) {
|
|
1895
|
+
case '[location-ref]':
|
|
1896
|
+
subject += '.' + locationRef;
|
|
1897
|
+
break;
|
|
1898
|
+
|
|
1899
|
+
case '[machine-ref]':
|
|
1900
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.machineRef) || '*');
|
|
1901
|
+
break;
|
|
1902
|
+
|
|
1903
|
+
case '[qualifier]':
|
|
1904
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.qualifier) || '0');
|
|
1905
|
+
break;
|
|
1906
|
+
|
|
1907
|
+
case '[data-category]':
|
|
1908
|
+
subject += '.' + (dataCategoryMapping[filter === null || filter === void 0 ? void 0 : filter.dataCategory] || '*');
|
|
1909
|
+
break;
|
|
1910
|
+
|
|
1911
|
+
case '[metric-key]':
|
|
1912
|
+
subject += '.' + (filter !== null && filter !== void 0 && filter.metricKey ? filter === null || filter === void 0 ? void 0 : filter.metricKey.toLowerCase().replace(/[^a-zA-Z0-9_\\-]/gi, '-') : '*');
|
|
1913
|
+
break;
|
|
1914
|
+
|
|
1915
|
+
case '[message-type]':
|
|
1916
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.messageType) || '0');
|
|
1917
|
+
break;
|
|
1918
|
+
|
|
1919
|
+
case '[edge-ref]':
|
|
1920
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.edgeRef) || '*');
|
|
1921
|
+
break;
|
|
1922
|
+
|
|
1923
|
+
case '[service-name]':
|
|
1924
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.serviceName) || '*');
|
|
1925
|
+
break;
|
|
1926
|
+
|
|
1927
|
+
case '[machine-source-ref]':
|
|
1928
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.machineSourceRef) || '*');
|
|
1929
|
+
break;
|
|
1930
|
+
|
|
1931
|
+
default:
|
|
1932
|
+
if (index > 0) {
|
|
1933
|
+
subject += '.';
|
|
1934
|
+
}
|
|
1935
|
+
|
|
1936
|
+
subject += part;
|
|
1937
|
+
break;
|
|
1938
|
+
}
|
|
1939
|
+
});
|
|
1940
|
+
return subject;
|
|
1941
|
+
};
|
|
1942
|
+
|
|
1943
|
+
var useEventStream = function useEventStream(params) {
|
|
1944
|
+
var streamName = params.streamName,
|
|
1945
|
+
locationRef = params.locationRef,
|
|
1946
|
+
filters = params.filters,
|
|
1947
|
+
_params$deliverPolicy = params.deliverPolicy,
|
|
1948
|
+
deliverPolicy = _params$deliverPolicy === void 0 ? 'new' : _params$deliverPolicy,
|
|
1949
|
+
dispatch = params.dispatch;
|
|
1950
|
+
|
|
1951
|
+
if (!ALLOWED_DELIVERY_POLICIES.includes(deliverPolicy)) {
|
|
1952
|
+
throw new Error("Invalid deliverPolicy \"" + deliverPolicy + "\" specified. Valid options are: " + ALLOWED_DELIVERY_POLICIES.join(', '));
|
|
1953
|
+
}
|
|
1954
|
+
|
|
1955
|
+
if (filters && filters.length > 1) {
|
|
1956
|
+
console.warn("Multiple filters are not supported. Only the first filter will be used.");
|
|
1957
|
+
}
|
|
1678
1958
|
|
|
1679
1959
|
var _useMMAuth = useMMAuth(),
|
|
1680
|
-
natsCreds = _useMMAuth.natsCreds,
|
|
1681
1960
|
urls = _useMMAuth.urls;
|
|
1682
1961
|
|
|
1683
|
-
var
|
|
1684
|
-
|
|
1685
|
-
setConnection = _useState[1];
|
|
1686
|
-
|
|
1687
|
-
var _useState2 = useState(),
|
|
1688
|
-
eventStream = _useState2[0],
|
|
1689
|
-
setEventStream = _useState2[1];
|
|
1962
|
+
var _useMMAuthInternal2 = _useMMAuthInternal(),
|
|
1963
|
+
natsCredsRef = _useMMAuthInternal2.natsCredsRef;
|
|
1690
1964
|
|
|
1965
|
+
var connectionRef = useRef();
|
|
1966
|
+
var eventStreamRef = useRef();
|
|
1691
1967
|
useEffect(function () {
|
|
1692
|
-
if (
|
|
1693
|
-
if (natsCreds && subject) {
|
|
1694
|
-
connectToServer(urls.natsUrl, natsCreds).then(function (conn) {
|
|
1695
|
-
try {
|
|
1696
|
-
var _temp2 = function _temp2(stream) {
|
|
1697
|
-
return jc.consumers.get(stream, {
|
|
1698
|
-
filterSubjects: subject,
|
|
1699
|
-
deliver_policy: 'last_per_subject'
|
|
1700
|
-
});
|
|
1701
|
-
};
|
|
1968
|
+
if (!urls.natsUrl || !natsCredsRef.current || !streamName || !locationRef) return;
|
|
1702
1969
|
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1970
|
+
var setupStream = function setupStream() {
|
|
1971
|
+
try {
|
|
1972
|
+
return Promise.resolve(_catch(function () {
|
|
1973
|
+
return Promise.resolve(connectToServer(urls.natsUrl, natsCredsRef.current)).then(function (conn) {
|
|
1974
|
+
connectionRef.current = conn;
|
|
1975
|
+
var subject = buildSubject(streamName, locationRef, filters === null || filters === void 0 ? void 0 : filters[0]);
|
|
1976
|
+
console.info("Consuming events from stream " + streamName + " filtering by subject " + subject);
|
|
1977
|
+
return Promise.resolve(conn.jetstream().consumers.get(streamName, {
|
|
1978
|
+
deliver_policy: deliverPolicy,
|
|
1979
|
+
filterSubjects: subject
|
|
1980
|
+
})).then(function (consumer) {
|
|
1981
|
+
return Promise.resolve(consumer.consume({
|
|
1982
|
+
max_messages: 1000
|
|
1983
|
+
})).then(function (messages) {
|
|
1984
|
+
var eventStream = decode(messages);
|
|
1985
|
+
eventStreamRef.current = eventStream;
|
|
1986
|
+
return function () {
|
|
1987
|
+
if (typeof dispatch === 'function') {
|
|
1988
|
+
var _iteratorAbruptCompletion2 = false;
|
|
1989
|
+
var _didIteratorError2 = false;
|
|
1990
|
+
|
|
1991
|
+
var _iteratorError2;
|
|
1992
|
+
|
|
1993
|
+
return _finallyRethrows(function () {
|
|
1994
|
+
return _catch(function () {
|
|
1995
|
+
var _iterator2 = _asyncIterator(eventStream),
|
|
1996
|
+
_step2;
|
|
1997
|
+
|
|
1998
|
+
var _temp = _for(function () {
|
|
1999
|
+
return Promise.resolve(_iterator2.next()).then(function (_iterator2$next) {
|
|
2000
|
+
return _iteratorAbruptCompletion2 = !(_step2 = _iterator2$next).done;
|
|
2001
|
+
});
|
|
2002
|
+
}, function () {
|
|
2003
|
+
return !!(_iteratorAbruptCompletion2 = false);
|
|
2004
|
+
}, function () {
|
|
2005
|
+
var event = _step2.value;
|
|
2006
|
+
dispatch(event);
|
|
2007
|
+
});
|
|
2008
|
+
|
|
2009
|
+
if (_temp && _temp.then) return _temp.then(function () {});
|
|
2010
|
+
}, function (err) {
|
|
2011
|
+
_didIteratorError2 = true;
|
|
2012
|
+
_iteratorError2 = err;
|
|
2013
|
+
});
|
|
2014
|
+
}, function (_wasThrown, _result2) {
|
|
2015
|
+
var _exit = false;
|
|
2016
|
+
|
|
2017
|
+
function _temp4(_result3) {
|
|
2018
|
+
if (_exit) return _result3;
|
|
2019
|
+
if (_wasThrown) throw _result2;
|
|
2020
|
+
return _result2;
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
var _temp3 = _finallyRethrows(function () {
|
|
2024
|
+
var _temp2 = function () {
|
|
2025
|
+
if (_iteratorAbruptCompletion2 && _iterator2["return"] != null) {
|
|
2026
|
+
return Promise.resolve(_iterator2["return"]()).then(function () {});
|
|
2027
|
+
}
|
|
2028
|
+
}();
|
|
2029
|
+
|
|
2030
|
+
if (_temp2 && _temp2.then) return _temp2.then(function () {});
|
|
2031
|
+
}, function (_wasThrown2, _result3) {
|
|
2032
|
+
if (_didIteratorError2) {
|
|
2033
|
+
throw _iteratorError2;
|
|
2034
|
+
}
|
|
2035
|
+
|
|
2036
|
+
if (_wasThrown2) throw _result3;
|
|
2037
|
+
return _result3;
|
|
2038
|
+
});
|
|
2039
|
+
|
|
2040
|
+
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
|
2041
|
+
});
|
|
2042
|
+
}
|
|
2043
|
+
}();
|
|
2044
|
+
});
|
|
1717
2045
|
});
|
|
1718
|
-
}
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
});
|
|
2046
|
+
});
|
|
2047
|
+
}, function (error) {
|
|
2048
|
+
console.error("Error setting up event stream. " + error);
|
|
2049
|
+
}));
|
|
2050
|
+
} catch (e) {
|
|
2051
|
+
return Promise.reject(e);
|
|
1722
2052
|
}
|
|
1723
|
-
}
|
|
1724
|
-
return function () {
|
|
1725
|
-
if (eventStream) {
|
|
1726
|
-
setEventStream(undefined);
|
|
1727
|
-
}
|
|
2053
|
+
};
|
|
1728
2054
|
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
2055
|
+
setupStream();
|
|
2056
|
+
return function () {
|
|
2057
|
+
return closeConnection(eventStreamRef, connectionRef);
|
|
2058
|
+
};
|
|
2059
|
+
}, [streamName, locationRef, deliverPolicy, urls.natsUrl, natsCredsRef]);
|
|
2060
|
+
return [eventStreamRef.current, function () {
|
|
2061
|
+
return closeConnection(eventStreamRef, connectionRef);
|
|
2062
|
+
}];
|
|
1736
2063
|
};
|
|
1737
2064
|
|
|
1738
2065
|
export { MMProvider, PrivateLayout, _useMMAuthInternal, useApiRequest, useAsyncEffect, useAsyncInterval, useDowntimeQuery, useEventStream, useMMAuth, useMMHash, useMMTemplates, useProductionQuery, useQuantityStream, useThrottleEffect };
|