authscape 1.0.768 → 1.0.772
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/index.js +292 -412
- package/package.json +1 -1
- package/src/components/AuthScapeApp.js +59 -5
- package/src/services/authService.js +12 -44
- package/src/services/signInValidator.js +0 -117
package/index.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.AuthScapeApp = AuthScapeApp;
|
|
7
|
+
exports.AuthScapeProvider = void 0;
|
|
7
8
|
Object.defineProperty(exports, "Bounce", {
|
|
8
9
|
enumerable: true,
|
|
9
10
|
get: function get() {
|
|
@@ -41,10 +42,9 @@ exports.useNotifications = useNotifications;
|
|
|
41
42
|
var _react = _interopRequireWildcard(require("react"));
|
|
42
43
|
var _reactToastify = require("react-toastify");
|
|
43
44
|
var _head = _interopRequireDefault(require("next/head"));
|
|
44
|
-
var
|
|
45
|
+
var _router = _interopRequireWildcard(require("next/router"));
|
|
45
46
|
var _axios = _interopRequireDefault(require("axios"));
|
|
46
47
|
var _queryString = _interopRequireDefault(require("query-string"));
|
|
47
|
-
var _router = _interopRequireDefault(require("next/router"));
|
|
48
48
|
var _ga4React = _interopRequireDefault(require("ga-4-react"));
|
|
49
49
|
var _zustand = require("zustand");
|
|
50
50
|
var _reactMicrosoftClarity = require("react-microsoft-clarity");
|
|
@@ -136,10 +136,10 @@ function logError(_x) {
|
|
|
136
136
|
return _logError.apply(this, arguments);
|
|
137
137
|
}
|
|
138
138
|
function _logError() {
|
|
139
|
-
_logError = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function
|
|
139
|
+
_logError = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee0(errorData) {
|
|
140
140
|
var error, response;
|
|
141
|
-
return _regeneratorRuntime().wrap(function
|
|
142
|
-
while (1) switch (
|
|
141
|
+
return _regeneratorRuntime().wrap(function _callee0$(_context0) {
|
|
142
|
+
while (1) switch (_context0.prev = _context0.next) {
|
|
143
143
|
case 0:
|
|
144
144
|
if (!errorTrackingSessionId && typeof window !== 'undefined') {
|
|
145
145
|
errorTrackingSessionId = getOrCreateSessionId();
|
|
@@ -156,25 +156,25 @@ function _logError() {
|
|
|
156
156
|
ipAddress: '',
|
|
157
157
|
metadata: errorData.metadata || null
|
|
158
158
|
};
|
|
159
|
-
|
|
160
|
-
|
|
159
|
+
_context0.prev = 2;
|
|
160
|
+
_context0.next = 5;
|
|
161
161
|
return module.exports.apiService().post('/ErrorTracking/LogError', error);
|
|
162
162
|
case 5:
|
|
163
|
-
response =
|
|
163
|
+
response = _context0.sent;
|
|
164
164
|
if (response && response.status !== 200) {
|
|
165
165
|
console.error('Error tracking API returned:', response.status);
|
|
166
166
|
}
|
|
167
|
-
|
|
167
|
+
_context0.next = 12;
|
|
168
168
|
break;
|
|
169
169
|
case 9:
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
console.error('Failed to send error to tracking system:',
|
|
170
|
+
_context0.prev = 9;
|
|
171
|
+
_context0.t0 = _context0["catch"](2);
|
|
172
|
+
console.error('Failed to send error to tracking system:', _context0.t0.message);
|
|
173
173
|
case 12:
|
|
174
174
|
case "end":
|
|
175
|
-
return
|
|
175
|
+
return _context0.stop();
|
|
176
176
|
}
|
|
177
|
-
},
|
|
177
|
+
}, _callee0, null, [[2, 9]]);
|
|
178
178
|
}));
|
|
179
179
|
return _logError.apply(this, arguments);
|
|
180
180
|
}
|
|
@@ -725,57 +725,68 @@ function ensureUserHelpers(u) {
|
|
|
725
725
|
// ============================================================================
|
|
726
726
|
// AuthScapeApp Component
|
|
727
727
|
// ============================================================================
|
|
728
|
-
function AuthScapeApp(
|
|
729
|
-
var
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
onUserLoaded = _ref10$onUserLoaded === void 0 ? null : _ref10$onUserLoaded;
|
|
728
|
+
function AuthScapeApp(_ref0) {
|
|
729
|
+
var Component = _ref0.Component,
|
|
730
|
+
layout = _ref0.layout,
|
|
731
|
+
loadingLayout = _ref0.loadingLayout,
|
|
732
|
+
signInLoadingComponent = _ref0.signInLoadingComponent,
|
|
733
|
+
pageProps = _ref0.pageProps,
|
|
734
|
+
_ref0$muiTheme = _ref0.muiTheme,
|
|
735
|
+
muiTheme = _ref0$muiTheme === void 0 ? null : _ref0$muiTheme,
|
|
736
|
+
_ref0$store = _ref0.store,
|
|
737
|
+
store = _ref0$store === void 0 ? {} : _ref0$store,
|
|
738
|
+
_ref0$enforceLoggedIn = _ref0.enforceLoggedIn,
|
|
739
|
+
enforceLoggedIn = _ref0$enforceLoggedIn === void 0 ? false : _ref0$enforceLoggedIn,
|
|
740
|
+
_ref0$enableAuth = _ref0.enableAuth,
|
|
741
|
+
enableAuth = _ref0$enableAuth === void 0 ? true : _ref0$enableAuth,
|
|
742
|
+
_ref0$enableNotificat = _ref0.enableNotifications,
|
|
743
|
+
enableNotifications = _ref0$enableNotificat === void 0 ? true : _ref0$enableNotificat,
|
|
744
|
+
_ref0$enableErrorTrac = _ref0.enableErrorTracking,
|
|
745
|
+
enableErrorTracking = _ref0$enableErrorTrac === void 0 ? true : _ref0$enableErrorTrac,
|
|
746
|
+
_ref0$toastConfig = _ref0.toastConfig,
|
|
747
|
+
toastConfig = _ref0$toastConfig === void 0 ? {} : _ref0$toastConfig,
|
|
748
|
+
_ref0$onUserLoaded = _ref0.onUserLoaded,
|
|
749
|
+
onUserLoaded = _ref0$onUserLoaded === void 0 ? null : _ref0$onUserLoaded;
|
|
751
750
|
var _useState9 = (0, _react.useState)(false),
|
|
752
|
-
|
|
753
|
-
frontEndLoadedState =
|
|
754
|
-
setFrontEndLoadedState =
|
|
755
|
-
var
|
|
751
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
752
|
+
frontEndLoadedState = _useState0[0],
|
|
753
|
+
setFrontEndLoadedState = _useState0[1];
|
|
754
|
+
var _useState1 = (0, _react.useState)(false),
|
|
755
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
756
|
+
isLoadingShow = _useState10[0],
|
|
757
|
+
setIsLoadingShow = _useState10[1];
|
|
758
|
+
var _useState11 = (0, _react.useState)(null),
|
|
756
759
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
var _useState13 = (0, _react.useState)(
|
|
760
|
+
signedInUserState = _useState12[0],
|
|
761
|
+
setSignedInUserState = _useState12[1];
|
|
762
|
+
var _useState13 = (0, _react.useState)(false),
|
|
760
763
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
var _useState15 = (0, _react.useState)(false),
|
|
764
|
-
_useState16 = _slicedToArray(_useState15, 2),
|
|
765
|
-
isSigningIn = _useState16[0],
|
|
766
|
-
setIsSigningIn = _useState16[1];
|
|
764
|
+
isSigningIn = _useState14[0],
|
|
765
|
+
setIsSigningIn = _useState14[1];
|
|
767
766
|
var loadingAuth = (0, _react.useRef)(false);
|
|
768
767
|
var signedInUser = (0, _react.useRef)(null);
|
|
769
768
|
var queryCodeUsed = (0, _react.useRef)(null);
|
|
770
769
|
var ga4React = (0, _react.useRef)(null);
|
|
771
770
|
var errorTrackingInitializedRef = (0, _react.useRef)(false);
|
|
772
771
|
var loginRedirectPending = (0, _react.useRef)(false);
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
772
|
+
|
|
773
|
+
// Use Pages Router's `useRouter` instead of `useSearchParams`/`usePathname`
|
|
774
|
+
// from `next/navigation`. The `next/navigation` hooks don't hydrate query
|
|
775
|
+
// params reliably on the 404 page in Webkit/Safari — when the IDP redirects
|
|
776
|
+
// back to /signin-oidc (a URL with no Next.js page in the consumer project),
|
|
777
|
+
// useSearchParams() returns null and the PKCE code is never picked up.
|
|
778
|
+
// The Pages Router router parses query from `asPath` and works on 404 too.
|
|
779
|
+
var router = (0, _router.useRouter)();
|
|
780
|
+
var rawQueryCode = router.isReady ? router.query.code : null;
|
|
781
|
+
// router.query values can be string | string[] — coerce to a single string.
|
|
782
|
+
var queryCode = typeof rawQueryCode === "string" ? rawQueryCode : Array.isArray(rawQueryCode) ? rawQueryCode[0] : null;
|
|
783
|
+
// Pages Router's `router.pathname` returns the route file path (e.g. "/_error"
|
|
784
|
+
// for the 404 page). The auth-redirect guard below compares against
|
|
785
|
+
// "/signin-oidc", so we derive the actual URL path from `asPath` instead.
|
|
786
|
+
var pathname = (router.asPath || "").split("?")[0].split("#")[0];
|
|
776
787
|
var signInValidator = /*#__PURE__*/function () {
|
|
777
|
-
var
|
|
778
|
-
var codeVerifier, headers, body, response, domainHost, redirectUri;
|
|
788
|
+
var _ref1 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(codeFromQuery) {
|
|
789
|
+
var codeVerifier, headers, body, response, domainHost, redirectUri, usr, enrichedUser;
|
|
779
790
|
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
780
791
|
while (1) switch (_context8.prev = _context8.next) {
|
|
781
792
|
case 0:
|
|
@@ -844,24 +855,65 @@ function AuthScapeApp(_ref10) {
|
|
|
844
855
|
resetRedirectCounter();
|
|
845
856
|
redirectUri = window.localStorage.getItem("redirectUri") || "/";
|
|
846
857
|
window.localStorage.clear();
|
|
847
|
-
|
|
848
|
-
|
|
858
|
+
|
|
859
|
+
// Pre-load user while spinner is still showing — eliminates the
|
|
860
|
+
// second GetCurrentUser call (and resulting re-renders) on the destination page.
|
|
861
|
+
usr = null;
|
|
862
|
+
_context8.prev = 27;
|
|
863
|
+
_context8.next = 30;
|
|
864
|
+
return module.exports.apiService().GetCurrentUser();
|
|
865
|
+
case 30:
|
|
866
|
+
usr = _context8.sent;
|
|
867
|
+
_context8.next = 36;
|
|
849
868
|
break;
|
|
850
|
-
case
|
|
851
|
-
_context8.prev =
|
|
852
|
-
_context8.t0 = _context8["catch"](
|
|
853
|
-
console.
|
|
869
|
+
case 33:
|
|
870
|
+
_context8.prev = 33;
|
|
871
|
+
_context8.t0 = _context8["catch"](27);
|
|
872
|
+
console.warn("[AuthScape] GetCurrentUser failed after token exchange:", _context8.t0);
|
|
873
|
+
case 36:
|
|
874
|
+
enrichedUser = ensureUserHelpers(usr);
|
|
875
|
+
signedInUser.current = enrichedUser;
|
|
876
|
+
setSignedInUserState(enrichedUser);
|
|
877
|
+
setFrontEndLoadedState(true);
|
|
878
|
+
|
|
879
|
+
// Prevent the useEffect from calling GetCurrentUser again when queryCode → null.
|
|
880
|
+
loadingAuth.current = true;
|
|
881
|
+
if (enableErrorTracking && enrichedUser && !errorTrackingInitializedRef.current) {
|
|
882
|
+
initializeErrorTracking(enrichedUser);
|
|
883
|
+
errorTrackingInitializedRef.current = true;
|
|
884
|
+
}
|
|
885
|
+
if (onUserLoaded && enrichedUser) {
|
|
886
|
+
onUserLoaded(enrichedUser);
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
// Dismiss spinner before navigating so destination renders logged-in UI on first paint.
|
|
890
|
+
setIsSigningIn(false);
|
|
891
|
+
|
|
892
|
+
// Client-side navigation preserves the React component tree and all ref values,
|
|
893
|
+
// eliminating the hard-reload → remount → re-render chain.
|
|
894
|
+
// Fall back to hard navigation for absolute external URLs.
|
|
895
|
+
if (redirectUri.startsWith("http://") || redirectUri.startsWith("https://")) {
|
|
896
|
+
window.location.href = redirectUri;
|
|
897
|
+
} else {
|
|
898
|
+
_router["default"].push(redirectUri);
|
|
899
|
+
}
|
|
900
|
+
_context8.next = 53;
|
|
901
|
+
break;
|
|
902
|
+
case 47:
|
|
903
|
+
_context8.prev = 47;
|
|
904
|
+
_context8.t1 = _context8["catch"](14);
|
|
905
|
+
console.error("PKCE sign-in failed", _context8.t1);
|
|
854
906
|
window.localStorage.clear();
|
|
855
907
|
setIsSigningIn(false);
|
|
856
908
|
setFrontEndLoadedState(true);
|
|
857
|
-
case
|
|
909
|
+
case 53:
|
|
858
910
|
case "end":
|
|
859
911
|
return _context8.stop();
|
|
860
912
|
}
|
|
861
|
-
}, _callee8, null, [[14,
|
|
913
|
+
}, _callee8, null, [[14, 47], [27, 33]]);
|
|
862
914
|
}));
|
|
863
915
|
return function signInValidator(_x4) {
|
|
864
|
-
return
|
|
916
|
+
return _ref1.apply(this, arguments);
|
|
865
917
|
};
|
|
866
918
|
}();
|
|
867
919
|
function initGA(_x5) {
|
|
@@ -1063,6 +1115,11 @@ function AuthScapeApp(_ref10) {
|
|
|
1063
1115
|
customTheme: muiTheme
|
|
1064
1116
|
}, wrappedContent), /*#__PURE__*/_react["default"].createElement(_reactToastify.ToastContainer, defaultToastConfig), loadingLayout && loadingLayout(isLoadingShow));
|
|
1065
1117
|
}
|
|
1118
|
+
|
|
1119
|
+
// AuthScapeProvider is the umbrella component that bundles the three always-on AuthScape
|
|
1120
|
+
// features (auth, error tracking, analytics) plus optional in-app notifications. Wrap your
|
|
1121
|
+
// NextJS _app.js return value with it. Existing call sites can continue using AuthScapeApp.
|
|
1122
|
+
var AuthScapeProvider = exports.AuthScapeProvider = AuthScapeApp;
|
|
1066
1123
|
"use strict";
|
|
1067
1124
|
|
|
1068
1125
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
@@ -1546,25 +1603,25 @@ var DocumentManager = exports.DocumentManager = function DocumentManager(_ref) {
|
|
|
1546
1603
|
masterFolder = _useState8[0],
|
|
1547
1604
|
setMasterFolder = _useState8[1];
|
|
1548
1605
|
var _useState9 = (0, _react.useState)([]),
|
|
1549
|
-
|
|
1550
|
-
breadCrumb =
|
|
1551
|
-
setBreadCrumb =
|
|
1606
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
1607
|
+
breadCrumb = _useState0[0],
|
|
1608
|
+
setBreadCrumb = _useState0[1];
|
|
1609
|
+
var _useState1 = (0, _react.useState)(null),
|
|
1610
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
1611
|
+
uploadParentId = _useState10[0],
|
|
1612
|
+
setUploadParentId = _useState10[1];
|
|
1552
1613
|
var _useState11 = (0, _react.useState)(null),
|
|
1553
1614
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
1554
|
-
|
|
1555
|
-
|
|
1615
|
+
contextMenu = _useState12[0],
|
|
1616
|
+
setContextMenu = _useState12[1];
|
|
1556
1617
|
var _useState13 = (0, _react.useState)(null),
|
|
1557
1618
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
var _useState15 = (0, _react.useState)(
|
|
1619
|
+
contextFile = _useState14[0],
|
|
1620
|
+
setContextFile = _useState14[1];
|
|
1621
|
+
var _useState15 = (0, _react.useState)(false),
|
|
1561
1622
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
var _useState17 = (0, _react.useState)(false),
|
|
1565
|
-
_useState18 = _slicedToArray(_useState17, 2),
|
|
1566
|
-
dialogDelete = _useState18[0],
|
|
1567
|
-
setDialogDelete = _useState18[1];
|
|
1623
|
+
dialogDelete = _useState16[0],
|
|
1624
|
+
setDialogDelete = _useState16[1];
|
|
1568
1625
|
var handleContextMenu = function handleContextMenu(event, file) {
|
|
1569
1626
|
event.preventDefault();
|
|
1570
1627
|
setContextFile(file);
|
|
@@ -1657,10 +1714,10 @@ var DocumentManager = exports.DocumentManager = function DocumentManager(_ref) {
|
|
|
1657
1714
|
fetchDocuments();
|
|
1658
1715
|
}
|
|
1659
1716
|
}, [loadedUser, folderParent, update]);
|
|
1660
|
-
var
|
|
1661
|
-
|
|
1662
|
-
anchorEl =
|
|
1663
|
-
setAnchorEl =
|
|
1717
|
+
var _useState17 = (0, _react.useState)(null),
|
|
1718
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
1719
|
+
anchorEl = _useState18[0],
|
|
1720
|
+
setAnchorEl = _useState18[1];
|
|
1664
1721
|
var open = Boolean(anchorEl);
|
|
1665
1722
|
var handleClick = function handleClick(event) {
|
|
1666
1723
|
setAnchorEl(event.currentTarget);
|
|
@@ -2536,21 +2593,21 @@ var FileUploader = exports.FileUploader = function FileUploader(_ref) {
|
|
|
2536
2593
|
viewDeleteDialog = _useState8[0],
|
|
2537
2594
|
setViewDeleteDialog = _useState8[1];
|
|
2538
2595
|
var _useState9 = (0, _react.useState)([]),
|
|
2539
|
-
|
|
2540
|
-
filesUploaded =
|
|
2541
|
-
setFilesUploaded =
|
|
2596
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
2597
|
+
filesUploaded = _useState0[0],
|
|
2598
|
+
setFilesUploaded = _useState0[1];
|
|
2599
|
+
var _useState1 = (0, _react.useState)(null),
|
|
2600
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
2601
|
+
orderFileId = _useState10[0],
|
|
2602
|
+
setOrderFileId = _useState10[1];
|
|
2542
2603
|
var _useState11 = (0, _react.useState)(null),
|
|
2543
2604
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
var _useState13 = (0, _react.useState)(
|
|
2605
|
+
filesDownloadable = _useState12[0],
|
|
2606
|
+
setFilesDownloadable = _useState12[1];
|
|
2607
|
+
var _useState13 = (0, _react.useState)([]),
|
|
2547
2608
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
var _useState15 = (0, _react.useState)([]),
|
|
2551
|
-
_useState16 = _slicedToArray(_useState15, 2),
|
|
2552
|
-
parameters = _useState16[0],
|
|
2553
|
-
setParameters = _useState16[1];
|
|
2609
|
+
parameters = _useState14[0],
|
|
2610
|
+
setParameters = _useState14[1];
|
|
2554
2611
|
var fileUploader = (0, _react.useRef)();
|
|
2555
2612
|
var handleUpload = /*#__PURE__*/function () {
|
|
2556
2613
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) {
|
|
@@ -3282,13 +3339,13 @@ var GoogleMapsAutoComplete = exports.GoogleMapsAutoComplete = function GoogleMap
|
|
|
3282
3339
|
zip = _useState8[0],
|
|
3283
3340
|
setPostalcode = _useState8[1];
|
|
3284
3341
|
var _useState9 = (0, _react.useState)(null),
|
|
3285
|
-
|
|
3286
|
-
lat =
|
|
3287
|
-
setLat =
|
|
3288
|
-
var
|
|
3289
|
-
|
|
3290
|
-
lng =
|
|
3291
|
-
setLng =
|
|
3342
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
3343
|
+
lat = _useState0[0],
|
|
3344
|
+
setLat = _useState0[1];
|
|
3345
|
+
var _useState1 = (0, _react.useState)(null),
|
|
3346
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
3347
|
+
lng = _useState10[0],
|
|
3348
|
+
setLng = _useState10[1];
|
|
3292
3349
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Box["default"], null, /*#__PURE__*/_react["default"].createElement(AutoCompleteDialog, {
|
|
3293
3350
|
placeholder: "Address",
|
|
3294
3351
|
defaultValue: address,
|
|
@@ -3412,25 +3469,25 @@ function AssignMapping(_ref) {
|
|
|
3412
3469
|
documentType = _useState8[0],
|
|
3413
3470
|
setDocumentType = _useState8[1];
|
|
3414
3471
|
var _useState9 = (0, _react.useState)(null),
|
|
3415
|
-
|
|
3416
|
-
documentName =
|
|
3417
|
-
setDocumentName =
|
|
3418
|
-
var
|
|
3472
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
3473
|
+
documentName = _useState0[0],
|
|
3474
|
+
setDocumentName = _useState0[1];
|
|
3475
|
+
var _useState1 = (0, _react.useState)(1),
|
|
3476
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
3477
|
+
urlTick = _useState10[0],
|
|
3478
|
+
setURLTick = _useState10[1];
|
|
3479
|
+
var _useState11 = (0, _react.useState)(null),
|
|
3419
3480
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
var _useState13 = (0, _react.useState)(
|
|
3481
|
+
spreadSheetAddress = _useState12[0],
|
|
3482
|
+
setSpreadSheetAddress = _useState12[1];
|
|
3483
|
+
var _useState13 = (0, _react.useState)(false),
|
|
3423
3484
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
3424
|
-
|
|
3425
|
-
|
|
3426
|
-
var _useState15 = (0, _react.useState)(
|
|
3485
|
+
showPreviewDialog = _useState14[0],
|
|
3486
|
+
setShowPreviewDialog = _useState14[1];
|
|
3487
|
+
var _useState15 = (0, _react.useState)(null),
|
|
3427
3488
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
var _useState17 = (0, _react.useState)(null),
|
|
3431
|
-
_useState18 = _slicedToArray(_useState17, 2),
|
|
3432
|
-
advanceQuery = _useState18[0],
|
|
3433
|
-
setAdvanceQuery = _useState18[1];
|
|
3489
|
+
advanceQuery = _useState16[0],
|
|
3490
|
+
setAdvanceQuery = _useState16[1];
|
|
3434
3491
|
var spreadSheetRef = (0, _react.useRef)(null);
|
|
3435
3492
|
var fetchMappingTo = /*#__PURE__*/function () {
|
|
3436
3493
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
@@ -3936,9 +3993,9 @@ function Datasources(_ref) {
|
|
|
3936
3993
|
databaseTables = _useState8[0],
|
|
3937
3994
|
setDatabaseTables = _useState8[1];
|
|
3938
3995
|
var _useState9 = (0, _react.useState)("database"),
|
|
3939
|
-
|
|
3940
|
-
mappingType =
|
|
3941
|
-
setMappingType =
|
|
3996
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
3997
|
+
mappingType = _useState0[0],
|
|
3998
|
+
setMappingType = _useState0[1];
|
|
3942
3999
|
var refTypeName = (0, _react.useRef)(null);
|
|
3943
4000
|
var refAssemblyFullName = (0, _react.useRef)(null);
|
|
3944
4001
|
(0, _react.useEffect)(function () {
|
|
@@ -4283,49 +4340,49 @@ function ManageMappingDocuments(_ref) {
|
|
|
4283
4340
|
showTrainingDocument = _useState8[0],
|
|
4284
4341
|
setShowTrainingDocument = _useState8[1];
|
|
4285
4342
|
var _useState9 = (0, _react.useState)(''),
|
|
4286
|
-
|
|
4287
|
-
columnName =
|
|
4288
|
-
setColumnName =
|
|
4343
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
4344
|
+
columnName = _useState0[0],
|
|
4345
|
+
setColumnName = _useState0[1];
|
|
4346
|
+
var _useState1 = (0, _react.useState)(null),
|
|
4347
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
4348
|
+
selectedAddedColumn = _useState10[0],
|
|
4349
|
+
setSelectedAddedColumn = _useState10[1];
|
|
4289
4350
|
var _useState11 = (0, _react.useState)(null),
|
|
4290
4351
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
4291
|
-
|
|
4292
|
-
|
|
4352
|
+
documentMappingColumns = _useState12[0],
|
|
4353
|
+
setDocumentMappingColumns = _useState12[1];
|
|
4293
4354
|
var _useState13 = (0, _react.useState)(null),
|
|
4294
4355
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
4295
|
-
|
|
4296
|
-
|
|
4356
|
+
toColumnOptions = _useState14[0],
|
|
4357
|
+
setToColumnOptions = _useState14[1];
|
|
4297
4358
|
var _useState15 = (0, _react.useState)(null),
|
|
4298
4359
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
4299
|
-
|
|
4300
|
-
|
|
4360
|
+
removeDocument = _useState16[0],
|
|
4361
|
+
setRemoveDocument = _useState16[1];
|
|
4301
4362
|
var _useState17 = (0, _react.useState)(null),
|
|
4302
4363
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
4303
|
-
|
|
4304
|
-
|
|
4305
|
-
var _useState19 = (0, _react.useState)(
|
|
4364
|
+
selectedDocumentComponentId = _useState18[0],
|
|
4365
|
+
setSelectedDocumentComponentId = _useState18[1];
|
|
4366
|
+
var _useState19 = (0, _react.useState)(0),
|
|
4306
4367
|
_useState20 = _slicedToArray(_useState19, 2),
|
|
4307
|
-
|
|
4308
|
-
|
|
4368
|
+
dataGridRefreshKey = _useState20[0],
|
|
4369
|
+
setDataGridRefreshKey = _useState20[1];
|
|
4309
4370
|
var _useState21 = (0, _react.useState)(0),
|
|
4310
4371
|
_useState22 = _slicedToArray(_useState21, 2),
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
var _useState23 = (0, _react.useState)(
|
|
4372
|
+
dataGridMappingRefreshKey = _useState22[0],
|
|
4373
|
+
setDataGridMappingRefreshKey = _useState22[1];
|
|
4374
|
+
var _useState23 = (0, _react.useState)(null),
|
|
4314
4375
|
_useState24 = _slicedToArray(_useState23, 2),
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
var _useState25 = (0, _react.useState)(
|
|
4376
|
+
selectedDocument = _useState24[0],
|
|
4377
|
+
setSelectedDocument = _useState24[1];
|
|
4378
|
+
var _useState25 = (0, _react.useState)(0),
|
|
4318
4379
|
_useState26 = _slicedToArray(_useState25, 2),
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
var _useState27 = (0, _react.useState)(
|
|
4380
|
+
status = _useState26[0],
|
|
4381
|
+
setStatus = _useState26[1];
|
|
4382
|
+
var _useState27 = (0, _react.useState)([]),
|
|
4322
4383
|
_useState28 = _slicedToArray(_useState27, 2),
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
var _useState29 = (0, _react.useState)([]),
|
|
4326
|
-
_useState30 = _slicedToArray(_useState29, 2),
|
|
4327
|
-
componentTypes = _useState30[0],
|
|
4328
|
-
setComponentTypes = _useState30[1];
|
|
4384
|
+
componentTypes = _useState28[0],
|
|
4385
|
+
setComponentTypes = _useState28[1];
|
|
4329
4386
|
var refHeaderRowInput = (0, _react.useRef)(null);
|
|
4330
4387
|
var fileUploaderRef = (0, _react.useRef)(null);
|
|
4331
4388
|
var refNewDocumentName = (0, _react.useRef)(null);
|
|
@@ -6050,9 +6107,9 @@ function AddDomain(_ref) {
|
|
|
6050
6107
|
fullDomain = _useState8[0],
|
|
6051
6108
|
setFullDomain = _useState8[1];
|
|
6052
6109
|
var _useState9 = (0, _react.useState)(null),
|
|
6053
|
-
|
|
6054
|
-
errorMessage =
|
|
6055
|
-
setErrorMessage =
|
|
6110
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
6111
|
+
errorMessage = _useState0[0],
|
|
6112
|
+
setErrorMessage = _useState0[1];
|
|
6056
6113
|
var refDomain = (0, _react.useRef)(null);
|
|
6057
6114
|
var refCNameTarget = (0, _react.useRef)(null);
|
|
6058
6115
|
var reftxtTarget = (0, _react.useRef)(null);
|
|
@@ -6590,29 +6647,29 @@ function PrivateLabelEditor(_ref) {
|
|
|
6590
6647
|
oEMDomainList = _useState8[0],
|
|
6591
6648
|
setOEMDomainList = _useState8[1];
|
|
6592
6649
|
var _useState9 = (0, _react.useState)([]),
|
|
6593
|
-
|
|
6594
|
-
dnsFields =
|
|
6595
|
-
setDnsFields =
|
|
6650
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
6651
|
+
dnsFields = _useState0[0],
|
|
6652
|
+
setDnsFields = _useState0[1];
|
|
6653
|
+
var _useState1 = (0, _react.useState)(null),
|
|
6654
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
6655
|
+
selectedFont = _useState10[0],
|
|
6656
|
+
setSelectedFont = _useState10[1];
|
|
6596
6657
|
var _useState11 = (0, _react.useState)(null),
|
|
6597
6658
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
6598
|
-
|
|
6599
|
-
|
|
6659
|
+
fontUri = _useState12[0],
|
|
6660
|
+
setFontUri = _useState12[1];
|
|
6600
6661
|
var _useState13 = (0, _react.useState)(null),
|
|
6601
6662
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
var _useState15 = (0, _react.useState)(
|
|
6663
|
+
oEMDomain = _useState14[0],
|
|
6664
|
+
setOEMDomain = _useState14[1];
|
|
6665
|
+
var _useState15 = (0, _react.useState)(''),
|
|
6605
6666
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
6606
|
-
|
|
6607
|
-
|
|
6608
|
-
var _useState17 = (0, _react.useState)(
|
|
6667
|
+
stateBaseUri = _useState16[0],
|
|
6668
|
+
setBaseUri = _useState16[1];
|
|
6669
|
+
var _useState17 = (0, _react.useState)(false),
|
|
6609
6670
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
6610
|
-
|
|
6611
|
-
|
|
6612
|
-
var _useState19 = (0, _react.useState)(false),
|
|
6613
|
-
_useState20 = _slicedToArray(_useState19, 2),
|
|
6614
|
-
isNewAccount = _useState20[0],
|
|
6615
|
-
setIsNewAccount = _useState20[1];
|
|
6671
|
+
isNewAccount = _useState18[0],
|
|
6672
|
+
setIsNewAccount = _useState18[1];
|
|
6616
6673
|
var handleChange = function handleChange(event, newValue) {
|
|
6617
6674
|
setValue(newValue);
|
|
6618
6675
|
};
|
|
@@ -7312,17 +7369,17 @@ function Toolbar(_ref3) {
|
|
|
7312
7369
|
isUnderline = _useState8[0],
|
|
7313
7370
|
setIsUnderline = _useState8[1];
|
|
7314
7371
|
var _useState9 = (0, _react.useState)(false),
|
|
7315
|
-
|
|
7316
|
-
isStrikethrough =
|
|
7317
|
-
setIsStrikethrough =
|
|
7318
|
-
var
|
|
7372
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
7373
|
+
isStrikethrough = _useState0[0],
|
|
7374
|
+
setIsStrikethrough = _useState0[1];
|
|
7375
|
+
var _useState1 = (0, _react.useState)(false),
|
|
7376
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
7377
|
+
isCode = _useState10[0],
|
|
7378
|
+
setIsCode = _useState10[1];
|
|
7379
|
+
var _useState11 = (0, _react.useState)('paragraph'),
|
|
7319
7380
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
7320
|
-
|
|
7321
|
-
|
|
7322
|
-
var _useState13 = (0, _react.useState)('paragraph'),
|
|
7323
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
7324
|
-
blockType = _useState14[0],
|
|
7325
|
-
setBlockType = _useState14[1];
|
|
7381
|
+
blockType = _useState12[0],
|
|
7382
|
+
setBlockType = _useState12[1];
|
|
7326
7383
|
var updateToolbar = (0, _react.useCallback)(function () {
|
|
7327
7384
|
var selection = (0, _lexical.$getSelection)();
|
|
7328
7385
|
if ((0, _lexical.$isRangeSelection)(selection)) {
|
|
@@ -7551,14 +7608,14 @@ var RichTextEditor = exports.RichTextEditor = function RichTextEditor(_ref5) {
|
|
|
7551
7608
|
height = _ref5$height === void 0 ? 400 : _ref5$height,
|
|
7552
7609
|
_ref5$isDisabled = _ref5.isDisabled,
|
|
7553
7610
|
isDisabled = _ref5$isDisabled === void 0 ? false : _ref5$isDisabled;
|
|
7554
|
-
var
|
|
7611
|
+
var _useState13 = (0, _react.useState)(html || ''),
|
|
7612
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
7613
|
+
editorHtml = _useState14[0],
|
|
7614
|
+
setEditorHtml = _useState14[1];
|
|
7615
|
+
var _useState15 = (0, _react.useState)(false),
|
|
7555
7616
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
7556
|
-
|
|
7557
|
-
|
|
7558
|
-
var _useState17 = (0, _react.useState)(false),
|
|
7559
|
-
_useState18 = _slicedToArray(_useState17, 2),
|
|
7560
|
-
isMounted = _useState18[0],
|
|
7561
|
-
setIsMounted = _useState18[1];
|
|
7617
|
+
isMounted = _useState16[0],
|
|
7618
|
+
setIsMounted = _useState16[1];
|
|
7562
7619
|
(0, _react.useEffect)(function () {
|
|
7563
7620
|
setIsMounted(true);
|
|
7564
7621
|
}, []);
|
|
@@ -7732,52 +7789,52 @@ var SpreadsheetViewer = exports.SpreadsheetViewer = /*#__PURE__*/(0, _react.forw
|
|
|
7732
7789
|
var _useState9 = (0, _react.useState)(function () {
|
|
7733
7790
|
return [];
|
|
7734
7791
|
}),
|
|
7735
|
-
|
|
7736
|
-
cellChanges =
|
|
7737
|
-
setCellChanges =
|
|
7792
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
7793
|
+
cellChanges = _useState0[0],
|
|
7794
|
+
setCellChanges = _useState0[1];
|
|
7738
7795
|
var highlightsRef = (0, _react.useRef)([]);
|
|
7739
7796
|
var userIdRef = (0, _react.useRef)(0);
|
|
7740
7797
|
var returnedRef = (0, _react.useRef)([]);
|
|
7741
|
-
var
|
|
7742
|
-
|
|
7743
|
-
showStickyDialog =
|
|
7744
|
-
setShowStickyDialog =
|
|
7798
|
+
var _useState1 = (0, _react.useState)(false),
|
|
7799
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
7800
|
+
showStickyDialog = _useState10[0],
|
|
7801
|
+
setShowStickyDialog = _useState10[1];
|
|
7745
7802
|
var leftColumnRef = (0, _react.useRef)(null);
|
|
7746
7803
|
var rightColumnRef = (0, _react.useRef)(null);
|
|
7747
7804
|
var topRowRef = (0, _react.useRef)(null);
|
|
7748
7805
|
var bottomRowRef = (0, _react.useRef)(null);
|
|
7806
|
+
var _useState11 = (0, _react.useState)(null),
|
|
7807
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
7808
|
+
leftColumnSticky = _useState12[0],
|
|
7809
|
+
setLeftColumnSticky = _useState12[1];
|
|
7749
7810
|
var _useState13 = (0, _react.useState)(null),
|
|
7750
7811
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
7751
|
-
|
|
7752
|
-
|
|
7812
|
+
rightColumnSticky = _useState14[0],
|
|
7813
|
+
setRightColumnSticky = _useState14[1];
|
|
7753
7814
|
var _useState15 = (0, _react.useState)(null),
|
|
7754
7815
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
7755
|
-
|
|
7756
|
-
|
|
7816
|
+
topRowSticky = _useState16[0],
|
|
7817
|
+
setTopRowSticky = _useState16[1];
|
|
7757
7818
|
var _useState17 = (0, _react.useState)(null),
|
|
7758
7819
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
7759
|
-
|
|
7760
|
-
|
|
7761
|
-
var _useState19 = (0, _react.useState)(
|
|
7820
|
+
bottomRowSticky = _useState18[0],
|
|
7821
|
+
setBottomRowSticky = _useState18[1];
|
|
7822
|
+
var _useState19 = (0, _react.useState)([]),
|
|
7762
7823
|
_useState20 = _slicedToArray(_useState19, 2),
|
|
7763
|
-
|
|
7764
|
-
|
|
7824
|
+
highlights = _useState20[0],
|
|
7825
|
+
setHighlights = _useState20[1];
|
|
7765
7826
|
var _useState21 = (0, _react.useState)([]),
|
|
7766
7827
|
_useState22 = _slicedToArray(_useState21, 2),
|
|
7767
|
-
|
|
7768
|
-
|
|
7828
|
+
sessions = _useState22[0],
|
|
7829
|
+
setSessions = _useState22[1];
|
|
7769
7830
|
var _useState23 = (0, _react.useState)([]),
|
|
7770
7831
|
_useState24 = _slicedToArray(_useState23, 2),
|
|
7771
|
-
|
|
7772
|
-
|
|
7773
|
-
var _useState25 = (0, _react.useState)(
|
|
7832
|
+
requestedChanges = _useState24[0],
|
|
7833
|
+
setRequestedChanges = _useState24[1];
|
|
7834
|
+
var _useState25 = (0, _react.useState)(null),
|
|
7774
7835
|
_useState26 = _slicedToArray(_useState25, 2),
|
|
7775
|
-
|
|
7776
|
-
|
|
7777
|
-
var _useState27 = (0, _react.useState)(null),
|
|
7778
|
-
_useState28 = _slicedToArray(_useState27, 2),
|
|
7779
|
-
hubConnection = _useState28[0],
|
|
7780
|
-
setHubConnection = _useState28[1];
|
|
7836
|
+
hubConnection = _useState26[0],
|
|
7837
|
+
setHubConnection = _useState26[1];
|
|
7781
7838
|
var getRows = function getRows() {
|
|
7782
7839
|
return returnedRef.current;
|
|
7783
7840
|
};
|
|
@@ -8837,17 +8894,17 @@ function StripePayment(_ref3) {
|
|
|
8837
8894
|
walletId = _useState8[0],
|
|
8838
8895
|
setWalletId = _useState8[1];
|
|
8839
8896
|
var _useState9 = (0, _react.useState)(0),
|
|
8840
|
-
|
|
8841
|
-
value =
|
|
8842
|
-
setValue =
|
|
8843
|
-
var
|
|
8897
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
8898
|
+
value = _useState0[0],
|
|
8899
|
+
setValue = _useState0[1];
|
|
8900
|
+
var _useState1 = (0, _react.useState)([]),
|
|
8901
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
8902
|
+
paymentMethods = _useState10[0],
|
|
8903
|
+
setPaymentMethods = _useState10[1];
|
|
8904
|
+
var _useState11 = (0, _react.useState)(null),
|
|
8844
8905
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
8845
|
-
|
|
8846
|
-
|
|
8847
|
-
var _useState13 = (0, _react.useState)(null),
|
|
8848
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
8849
|
-
paymentMethod = _useState14[0],
|
|
8850
|
-
setPaymentMethod = _useState14[1];
|
|
8906
|
+
paymentMethod = _useState12[0],
|
|
8907
|
+
setPaymentMethod = _useState12[1];
|
|
8851
8908
|
var paymentMethodOpened = /*#__PURE__*/function () {
|
|
8852
8909
|
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
8853
8910
|
var response, responsePayments;
|
|
@@ -10043,7 +10100,7 @@ var apiService = exports.apiService = function apiService() {
|
|
|
10043
10100
|
}
|
|
10044
10101
|
}, _callee9, null, [[4, 21]]);
|
|
10045
10102
|
}));
|
|
10046
|
-
function DownloadFile(
|
|
10103
|
+
function DownloadFile(_x0, _x1, _x10) {
|
|
10047
10104
|
return _DownloadFile.apply(this, arguments);
|
|
10048
10105
|
}
|
|
10049
10106
|
return DownloadFile;
|
|
@@ -10141,7 +10198,7 @@ function _asyncToGenerator(n) { return function () { var t = this, e = arguments
|
|
|
10141
10198
|
var _authService = exports.authService = function authService() {
|
|
10142
10199
|
return {
|
|
10143
10200
|
dec2hex: function dec2hex(dec) {
|
|
10144
|
-
return ('0' + dec.toString(16)).
|
|
10201
|
+
return ('0' + dec.toString(16)).slice(-2);
|
|
10145
10202
|
},
|
|
10146
10203
|
generateRandomString: function generateRandomString() {
|
|
10147
10204
|
var array = new Uint32Array(56 / 2);
|
|
@@ -10242,12 +10299,10 @@ var _authService = exports.authService = function authService() {
|
|
|
10242
10299
|
login: function () {
|
|
10243
10300
|
var _login = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
10244
10301
|
var redirectUserUri,
|
|
10245
|
-
dnsRecord,
|
|
10246
10302
|
deviceId,
|
|
10247
10303
|
state,
|
|
10248
10304
|
verifier,
|
|
10249
10305
|
challenge,
|
|
10250
|
-
storedVerifier,
|
|
10251
10306
|
redirectUri,
|
|
10252
10307
|
loginUri,
|
|
10253
10308
|
_args4 = arguments;
|
|
@@ -10255,34 +10310,24 @@ var _authService = exports.authService = function authService() {
|
|
|
10255
10310
|
while (1) switch (_context4.prev = _context4.next) {
|
|
10256
10311
|
case 0:
|
|
10257
10312
|
redirectUserUri = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : null;
|
|
10258
|
-
|
|
10259
|
-
|
|
10260
|
-
state = "1234";
|
|
10313
|
+
deviceId = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : null;
|
|
10314
|
+
state = _authService().generateRandomString();
|
|
10261
10315
|
if (redirectUserUri != null) {
|
|
10262
10316
|
localStorage.setItem("redirectUri", redirectUserUri);
|
|
10263
10317
|
}
|
|
10264
10318
|
verifier = _authService().generateRandomString();
|
|
10265
|
-
_context4.next =
|
|
10319
|
+
_context4.next = 7;
|
|
10266
10320
|
return _authService().challenge_from_verifier(verifier);
|
|
10267
|
-
case
|
|
10321
|
+
case 7:
|
|
10268
10322
|
challenge = _context4.sent;
|
|
10269
|
-
console.log('[PKCE] Login initiated');
|
|
10270
|
-
console.log('[PKCE] Verifier generated | length:', verifier.length, '| preview:', verifier.substring(0, 10) + '...');
|
|
10271
|
-
console.log('[PKCE] Challenge generated | value:', challenge);
|
|
10272
|
-
console.log('[PKCE] authorityUri:', process.env.authorityUri);
|
|
10273
|
-
console.log('[PKCE] client_id:', process.env.client_id);
|
|
10274
10323
|
window.localStorage.setItem("verifier", verifier);
|
|
10275
|
-
storedVerifier = window.localStorage.getItem("verifier");
|
|
10276
|
-
console.log('[PKCE] Verifier stored successfully:', storedVerifier === verifier);
|
|
10277
|
-
console.log('[PKCE] Stored verifier length:', storedVerifier === null || storedVerifier === void 0 ? void 0 : storedVerifier.length);
|
|
10278
10324
|
redirectUri = window.location.origin + "/signin-oidc";
|
|
10279
10325
|
loginUri = process.env.authorityUri + "/connect/authorize?response_type=code&state=" + state + "&client_id=" + process.env.client_id + "&scope=email%20openid%20offline_access%20profile%20api1&redirect_uri=" + redirectUri + "&code_challenge=" + challenge + "&code_challenge_method=S256";
|
|
10280
10326
|
if (deviceId) {
|
|
10281
10327
|
loginUri += "&deviceId=" + deviceId; // will be for chrome extention and mobile apps later
|
|
10282
10328
|
}
|
|
10283
|
-
console.log('[PKCE] Redirecting to:', loginUri);
|
|
10284
10329
|
window.location.href = loginUri;
|
|
10285
|
-
case
|
|
10330
|
+
case 13:
|
|
10286
10331
|
case "end":
|
|
10287
10332
|
return _context4.stop();
|
|
10288
10333
|
}
|
|
@@ -10350,32 +10395,11 @@ var _authService = exports.authService = function authService() {
|
|
|
10350
10395
|
domain: domainHost,
|
|
10351
10396
|
secure: true
|
|
10352
10397
|
});
|
|
10353
|
-
|
|
10354
|
-
|
|
10355
|
-
|
|
10356
|
-
|
|
10357
|
-
|
|
10358
|
-
// });
|
|
10359
|
-
|
|
10360
|
-
// destroyCookie({}, "refresh_token", {
|
|
10361
|
-
// maxAge: 2147483647,
|
|
10362
|
-
// path: '/',
|
|
10363
|
-
// domain: domainHost
|
|
10364
|
-
// });
|
|
10365
|
-
|
|
10366
|
-
// destroyCookie({}, "expires_in", {
|
|
10367
|
-
// maxAge: 2147483647,
|
|
10368
|
-
// path: '/',
|
|
10369
|
-
// domain: domainHost
|
|
10370
|
-
// });
|
|
10371
|
-
|
|
10372
|
-
setTimeout(function () {
|
|
10373
|
-
if (redirectUri == null) {
|
|
10374
|
-
window.location.href = AuthUri + "/connect/logout?redirect=" + window.location.href;
|
|
10375
|
-
} else {
|
|
10376
|
-
window.location.href = AuthUri + "/connect/logout?redirect=" + redirectUri;
|
|
10377
|
-
}
|
|
10378
|
-
}, 500);
|
|
10398
|
+
if (redirectUri == null) {
|
|
10399
|
+
window.location.href = AuthUri + "/connect/logout?redirect=" + window.location.href;
|
|
10400
|
+
} else {
|
|
10401
|
+
window.location.href = AuthUri + "/connect/logout?redirect=" + redirectUri;
|
|
10402
|
+
}
|
|
10379
10403
|
case 7:
|
|
10380
10404
|
case "end":
|
|
10381
10405
|
return _context6.stop();
|
|
@@ -10479,150 +10503,6 @@ function HeaderRecords(_ref) {
|
|
|
10479
10503
|
}
|
|
10480
10504
|
"use strict";
|
|
10481
10505
|
|
|
10482
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
10483
|
-
Object.defineProperty(exports, "__esModule", {
|
|
10484
|
-
value: true
|
|
10485
|
-
});
|
|
10486
|
-
exports.signInValidator = void 0;
|
|
10487
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
10488
|
-
var _axios = _interopRequireDefault(require("axios"));
|
|
10489
|
-
var _queryString = _interopRequireDefault(require("query-string"));
|
|
10490
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10491
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
10492
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
10493
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
10494
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10495
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10496
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
10497
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
10498
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10499
|
-
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
10500
|
-
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
10501
|
-
// import Cookies from 'js-cookie';
|
|
10502
|
-
|
|
10503
|
-
var signInValidator = exports.signInValidator = /*#__PURE__*/function () {
|
|
10504
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(queryCode) {
|
|
10505
|
-
var codeVerifier, _tokenParams$code, _tokenParams$code_ver, _tokenParams$code_ver2, headers, tokenParams, queryString, response, _response$data, _response$data2, _err$response, _err$response2, domainHost, redirectUri;
|
|
10506
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
10507
|
-
while (1) switch (_context.prev = _context.next) {
|
|
10508
|
-
case 0:
|
|
10509
|
-
codeVerifier = window.localStorage.getItem("verifier");
|
|
10510
|
-
console.log('[PKCE] signInValidator called');
|
|
10511
|
-
console.log('[PKCE] queryCode present:', !!queryCode, '| value:', queryCode);
|
|
10512
|
-
console.log('[PKCE] codeVerifier present:', !!codeVerifier, '| length:', codeVerifier === null || codeVerifier === void 0 ? void 0 : codeVerifier.length);
|
|
10513
|
-
if (!(queryCode != null && codeVerifier != null)) {
|
|
10514
|
-
_context.next = 38;
|
|
10515
|
-
break;
|
|
10516
|
-
}
|
|
10517
|
-
headers = {
|
|
10518
|
-
'Content-Type': 'application/x-www-form-urlencoded'
|
|
10519
|
-
};
|
|
10520
|
-
tokenParams = {
|
|
10521
|
-
code: queryCode,
|
|
10522
|
-
grant_type: "authorization_code",
|
|
10523
|
-
redirect_uri: window.location.origin + "/signin-oidc",
|
|
10524
|
-
client_id: process.env.client_id,
|
|
10525
|
-
client_secret: process.env.client_secret,
|
|
10526
|
-
code_verifier: codeVerifier
|
|
10527
|
-
};
|
|
10528
|
-
console.log('[PKCE] Token request params:', _objectSpread(_objectSpread({}, tokenParams), {}, {
|
|
10529
|
-
client_secret: tokenParams.client_secret ? '***' : '(missing!)',
|
|
10530
|
-
code: ((_tokenParams$code = tokenParams.code) === null || _tokenParams$code === void 0 ? void 0 : _tokenParams$code.substring(0, 10)) + '...',
|
|
10531
|
-
code_verifier: ((_tokenParams$code_ver = tokenParams.code_verifier) === null || _tokenParams$code_ver === void 0 ? void 0 : _tokenParams$code_ver.substring(0, 10)) + '... (length: ' + ((_tokenParams$code_ver2 = tokenParams.code_verifier) === null || _tokenParams$code_ver2 === void 0 ? void 0 : _tokenParams$code_ver2.length) + ')'
|
|
10532
|
-
}));
|
|
10533
|
-
console.log('[PKCE] Token endpoint:', process.env.authorityUri + '/connect/token');
|
|
10534
|
-
console.log('[PKCE] redirect_uri:', tokenParams.redirect_uri);
|
|
10535
|
-
queryString = _queryString["default"].stringify(tokenParams);
|
|
10536
|
-
_context.prev = 11;
|
|
10537
|
-
_context.next = 14;
|
|
10538
|
-
return _axios["default"].post(process.env.authorityUri + '/connect/token', queryString, {
|
|
10539
|
-
headers: headers
|
|
10540
|
-
});
|
|
10541
|
-
case 14:
|
|
10542
|
-
response = _context.sent;
|
|
10543
|
-
console.log('[PKCE] Token response status:', response.status);
|
|
10544
|
-
console.log('[PKCE] Token response has access_token:', !!((_response$data = response.data) !== null && _response$data !== void 0 && _response$data.access_token));
|
|
10545
|
-
console.log('[PKCE] Token response has refresh_token:', !!((_response$data2 = response.data) !== null && _response$data2 !== void 0 && _response$data2.refresh_token));
|
|
10546
|
-
_context.next = 27;
|
|
10547
|
-
break;
|
|
10548
|
-
case 20:
|
|
10549
|
-
_context.prev = 20;
|
|
10550
|
-
_context.t0 = _context["catch"](11);
|
|
10551
|
-
console.error('[PKCE] Token request FAILED');
|
|
10552
|
-
console.error('[PKCE] Status:', (_err$response = _context.t0.response) === null || _err$response === void 0 ? void 0 : _err$response.status);
|
|
10553
|
-
console.error('[PKCE] Error data:', JSON.stringify((_err$response2 = _context.t0.response) === null || _err$response2 === void 0 ? void 0 : _err$response2.data));
|
|
10554
|
-
console.error('[PKCE] Error message:', _context.t0.message);
|
|
10555
|
-
throw _context.t0;
|
|
10556
|
-
case 27:
|
|
10557
|
-
domainHost = window.location.hostname.split('.').slice(-2).join('.');
|
|
10558
|
-
window.localStorage.removeItem("verifier");
|
|
10559
|
-
_context.next = 31;
|
|
10560
|
-
return setCookie('access_token', response.data.access_token, {
|
|
10561
|
-
maxAge: 60 * 60 * 24 * 365,
|
|
10562
|
-
// 1 year,
|
|
10563
|
-
path: '/',
|
|
10564
|
-
domain: domainHost,
|
|
10565
|
-
secure: true
|
|
10566
|
-
});
|
|
10567
|
-
case 31:
|
|
10568
|
-
_context.next = 33;
|
|
10569
|
-
return setCookie('expires_in', response.data.expires_in, {
|
|
10570
|
-
maxAge: 60 * 60 * 24 * 365,
|
|
10571
|
-
// 1 year,
|
|
10572
|
-
path: '/',
|
|
10573
|
-
domain: domainHost,
|
|
10574
|
-
secure: true
|
|
10575
|
-
});
|
|
10576
|
-
case 33:
|
|
10577
|
-
_context.next = 35;
|
|
10578
|
-
return setCookie('refresh_token', response.data.refresh_token, {
|
|
10579
|
-
maxAge: 60 * 60 * 24 * 365,
|
|
10580
|
-
// 1 year,
|
|
10581
|
-
path: '/',
|
|
10582
|
-
domain: domainHost,
|
|
10583
|
-
secure: true
|
|
10584
|
-
});
|
|
10585
|
-
case 35:
|
|
10586
|
-
// await setCookie(null, "access_token", response.data.access_token,
|
|
10587
|
-
// {
|
|
10588
|
-
// maxAge: 2147483647,
|
|
10589
|
-
// path: '/',
|
|
10590
|
-
// domain: domainHost,
|
|
10591
|
-
// secure: true
|
|
10592
|
-
// });
|
|
10593
|
-
// await setCookie(null, "expires_in", response.data.expires_in,
|
|
10594
|
-
// {
|
|
10595
|
-
// maxAge: 2147483647,
|
|
10596
|
-
// path: '/',
|
|
10597
|
-
// domain: domainHost,
|
|
10598
|
-
// secure: true
|
|
10599
|
-
// });
|
|
10600
|
-
// await setCookie(null, "refresh_token", response.data.refresh_token,
|
|
10601
|
-
// {
|
|
10602
|
-
// maxAge: 2147483647,
|
|
10603
|
-
// path: '/',
|
|
10604
|
-
// domain: domainHost,
|
|
10605
|
-
// secure: true
|
|
10606
|
-
// });
|
|
10607
|
-
redirectUri = localStorage.getItem("redirectUri");
|
|
10608
|
-
localStorage.clear();
|
|
10609
|
-
if (redirectUri != null) {
|
|
10610
|
-
window.location.href = redirectUri;
|
|
10611
|
-
} else {
|
|
10612
|
-
window.location.href = "/";
|
|
10613
|
-
}
|
|
10614
|
-
case 38:
|
|
10615
|
-
case "end":
|
|
10616
|
-
return _context.stop();
|
|
10617
|
-
}
|
|
10618
|
-
}, _callee, null, [[11, 20]]);
|
|
10619
|
-
}));
|
|
10620
|
-
return function signInValidator(_x) {
|
|
10621
|
-
return _ref.apply(this, arguments);
|
|
10622
|
-
};
|
|
10623
|
-
}();
|
|
10624
|
-
"use strict";
|
|
10625
|
-
|
|
10626
10506
|
Object.defineProperty(exports, "__esModule", {
|
|
10627
10507
|
value: true
|
|
10628
10508
|
});
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@ import Head from "next/head";
|
|
|
4
4
|
|
|
5
5
|
// Re-export toast and transitions so pages can import from authscape
|
|
6
6
|
export { toast, Bounce, Slide, Zoom, Flip };
|
|
7
|
-
import {
|
|
7
|
+
import { useRouter } from "next/router";
|
|
8
8
|
import axios from "axios";
|
|
9
9
|
import querystring from "query-string";
|
|
10
10
|
import Router from "next/router";
|
|
@@ -501,9 +501,22 @@ export function AuthScapeApp({
|
|
|
501
501
|
const errorTrackingInitializedRef = useRef(false);
|
|
502
502
|
const loginRedirectPending = useRef(false);
|
|
503
503
|
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
504
|
+
// Use Pages Router's `useRouter` instead of `useSearchParams`/`usePathname`
|
|
505
|
+
// from `next/navigation`. The `next/navigation` hooks don't hydrate query
|
|
506
|
+
// params reliably on the 404 page in Webkit/Safari — when the IDP redirects
|
|
507
|
+
// back to /signin-oidc (a URL with no Next.js page in the consumer project),
|
|
508
|
+
// useSearchParams() returns null and the PKCE code is never picked up.
|
|
509
|
+
// The Pages Router router parses query from `asPath` and works on 404 too.
|
|
510
|
+
const router = useRouter();
|
|
511
|
+
const rawQueryCode = router.isReady ? router.query.code : null;
|
|
512
|
+
// router.query values can be string | string[] — coerce to a single string.
|
|
513
|
+
const queryCode = typeof rawQueryCode === "string"
|
|
514
|
+
? rawQueryCode
|
|
515
|
+
: (Array.isArray(rawQueryCode) ? rawQueryCode[0] : null);
|
|
516
|
+
// Pages Router's `router.pathname` returns the route file path (e.g. "/_error"
|
|
517
|
+
// for the 404 page). The auth-redirect guard below compares against
|
|
518
|
+
// "/signin-oidc", so we derive the actual URL path from `asPath` instead.
|
|
519
|
+
const pathname = (router.asPath || "").split("?")[0].split("#")[0];
|
|
507
520
|
|
|
508
521
|
const signInValidator = async (codeFromQuery) => {
|
|
509
522
|
if (queryCodeUsed.current === codeFromQuery) return;
|
|
@@ -567,7 +580,43 @@ export function AuthScapeApp({
|
|
|
567
580
|
const redirectUri = window.localStorage.getItem("redirectUri") || "/";
|
|
568
581
|
window.localStorage.clear();
|
|
569
582
|
|
|
570
|
-
|
|
583
|
+
// Pre-load user while spinner is still showing — eliminates the
|
|
584
|
+
// second GetCurrentUser call (and resulting re-renders) on the destination page.
|
|
585
|
+
let usr = null;
|
|
586
|
+
try {
|
|
587
|
+
usr = await module.exports.apiService().GetCurrentUser();
|
|
588
|
+
} catch (fetchErr) {
|
|
589
|
+
console.warn("[AuthScape] GetCurrentUser failed after token exchange:", fetchErr);
|
|
590
|
+
}
|
|
591
|
+
const enrichedUser = ensureUserHelpers(usr);
|
|
592
|
+
|
|
593
|
+
signedInUser.current = enrichedUser;
|
|
594
|
+
setSignedInUserState(enrichedUser);
|
|
595
|
+
setFrontEndLoadedState(true);
|
|
596
|
+
|
|
597
|
+
// Prevent the useEffect from calling GetCurrentUser again when queryCode → null.
|
|
598
|
+
loadingAuth.current = true;
|
|
599
|
+
|
|
600
|
+
if (enableErrorTracking && enrichedUser && !errorTrackingInitializedRef.current) {
|
|
601
|
+
initializeErrorTracking(enrichedUser);
|
|
602
|
+
errorTrackingInitializedRef.current = true;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
if (onUserLoaded && enrichedUser) {
|
|
606
|
+
onUserLoaded(enrichedUser);
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
// Dismiss spinner before navigating so destination renders logged-in UI on first paint.
|
|
610
|
+
setIsSigningIn(false);
|
|
611
|
+
|
|
612
|
+
// Client-side navigation preserves the React component tree and all ref values,
|
|
613
|
+
// eliminating the hard-reload → remount → re-render chain.
|
|
614
|
+
// Fall back to hard navigation for absolute external URLs.
|
|
615
|
+
if (redirectUri.startsWith("http://") || redirectUri.startsWith("https://")) {
|
|
616
|
+
window.location.href = redirectUri;
|
|
617
|
+
} else {
|
|
618
|
+
Router.push(redirectUri);
|
|
619
|
+
}
|
|
571
620
|
} catch (exp) {
|
|
572
621
|
console.error("PKCE sign-in failed", exp);
|
|
573
622
|
window.localStorage.clear();
|
|
@@ -805,3 +854,8 @@ export function AuthScapeApp({
|
|
|
805
854
|
</>
|
|
806
855
|
);
|
|
807
856
|
}
|
|
857
|
+
|
|
858
|
+
// AuthScapeProvider is the umbrella component that bundles the three always-on AuthScape
|
|
859
|
+
// features (auth, error tracking, analytics) plus optional in-app notifications. Wrap your
|
|
860
|
+
// NextJS _app.js return value with it. Existing call sites can continue using AuthScapeApp.
|
|
861
|
+
export const AuthScapeProvider = AuthScapeApp;
|
|
@@ -5,7 +5,7 @@ export const authService = () => {
|
|
|
5
5
|
return {
|
|
6
6
|
|
|
7
7
|
dec2hex: (dec) => {
|
|
8
|
-
return ('0' + dec.toString(16)).
|
|
8
|
+
return ('0' + dec.toString(16)).slice(-2)
|
|
9
9
|
},
|
|
10
10
|
generateRandomString: () => {
|
|
11
11
|
var array = new Uint32Array(56/2);
|
|
@@ -64,9 +64,10 @@ export const authService = () => {
|
|
|
64
64
|
|
|
65
65
|
return response;
|
|
66
66
|
},
|
|
67
|
-
login: async (redirectUserUri = null,
|
|
67
|
+
login: async (redirectUserUri = null, deviceId = null) => {
|
|
68
|
+
|
|
69
|
+
let state = authService().generateRandomString();
|
|
68
70
|
|
|
69
|
-
let state = "1234";
|
|
70
71
|
if (redirectUserUri != null)
|
|
71
72
|
{
|
|
72
73
|
localStorage.setItem("redirectUri", redirectUserUri);
|
|
@@ -75,18 +76,8 @@ export const authService = () => {
|
|
|
75
76
|
let verifier = authService().generateRandomString();
|
|
76
77
|
var challenge = await authService().challenge_from_verifier(verifier);
|
|
77
78
|
|
|
78
|
-
console.log('[PKCE] Login initiated');
|
|
79
|
-
console.log('[PKCE] Verifier generated | length:', verifier.length, '| preview:', verifier.substring(0, 10) + '...');
|
|
80
|
-
console.log('[PKCE] Challenge generated | value:', challenge);
|
|
81
|
-
console.log('[PKCE] authorityUri:', process.env.authorityUri);
|
|
82
|
-
console.log('[PKCE] client_id:', process.env.client_id);
|
|
83
|
-
|
|
84
79
|
window.localStorage.setItem("verifier", verifier);
|
|
85
80
|
|
|
86
|
-
const storedVerifier = window.localStorage.getItem("verifier");
|
|
87
|
-
console.log('[PKCE] Verifier stored successfully:', storedVerifier === verifier);
|
|
88
|
-
console.log('[PKCE] Stored verifier length:', storedVerifier?.length);
|
|
89
|
-
|
|
90
81
|
let redirectUri = window.location.origin + "/signin-oidc";
|
|
91
82
|
let loginUri = process.env.authorityUri + "/connect/authorize?response_type=code&state=" + state + "&client_id=" + process.env.client_id + "&scope=email%20openid%20offline_access%20profile%20api1&redirect_uri=" + redirectUri + "&code_challenge=" + challenge + "&code_challenge_method=S256";
|
|
92
83
|
|
|
@@ -95,7 +86,6 @@ export const authService = () => {
|
|
|
95
86
|
loginUri += "&deviceId=" + deviceId; // will be for chrome extention and mobile apps later
|
|
96
87
|
}
|
|
97
88
|
|
|
98
|
-
console.log('[PKCE] Redirecting to:', loginUri);
|
|
99
89
|
window.location.href = loginUri;
|
|
100
90
|
},
|
|
101
91
|
signUp: (redirectUrl = null) => {
|
|
@@ -126,40 +116,18 @@ export const authService = () => {
|
|
|
126
116
|
let domainHost = window.location.hostname.split('.').slice(-2).join('.');
|
|
127
117
|
let AuthUri = process.env.authorityUri;
|
|
128
118
|
|
|
129
|
-
|
|
130
119
|
Cookies.remove('access_token', { path: '/', domain: domainHost, secure: true });
|
|
131
120
|
Cookies.remove('refresh_token', { path: '/', domain: domainHost, secure: true });
|
|
132
121
|
Cookies.remove('expires_in', { path: '/', domain: domainHost, secure: true });
|
|
133
122
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
// maxAge: 2147483647,
|
|
143
|
-
// path: '/',
|
|
144
|
-
// domain: domainHost
|
|
145
|
-
// });
|
|
146
|
-
|
|
147
|
-
// destroyCookie({}, "expires_in", {
|
|
148
|
-
// maxAge: 2147483647,
|
|
149
|
-
// path: '/',
|
|
150
|
-
// domain: domainHost
|
|
151
|
-
// });
|
|
152
|
-
|
|
153
|
-
setTimeout(() => {
|
|
154
|
-
if (redirectUri == null)
|
|
155
|
-
{
|
|
156
|
-
window.location.href = AuthUri + "/connect/logout?redirect=" + window.location.href;
|
|
157
|
-
}
|
|
158
|
-
else
|
|
159
|
-
{
|
|
160
|
-
window.location.href = AuthUri + "/connect/logout?redirect=" + redirectUri;
|
|
161
|
-
}
|
|
162
|
-
}, 500);
|
|
123
|
+
if (redirectUri == null)
|
|
124
|
+
{
|
|
125
|
+
window.location.href = AuthUri + "/connect/logout?redirect=" + window.location.href;
|
|
126
|
+
}
|
|
127
|
+
else
|
|
128
|
+
{
|
|
129
|
+
window.location.href = AuthUri + "/connect/logout?redirect=" + redirectUri;
|
|
130
|
+
}
|
|
163
131
|
|
|
164
132
|
},
|
|
165
133
|
}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import axios from 'axios';
|
|
3
|
-
import querystring from "query-string";
|
|
4
|
-
// import Cookies from 'js-cookie';
|
|
5
|
-
|
|
6
|
-
export const signInValidator = async (queryCode) => {
|
|
7
|
-
|
|
8
|
-
let codeVerifier = window.localStorage.getItem("verifier");
|
|
9
|
-
|
|
10
|
-
console.log('[PKCE] signInValidator called');
|
|
11
|
-
console.log('[PKCE] queryCode present:', !!queryCode, '| value:', queryCode);
|
|
12
|
-
console.log('[PKCE] codeVerifier present:', !!codeVerifier, '| length:', codeVerifier?.length);
|
|
13
|
-
|
|
14
|
-
if (queryCode != null && codeVerifier != null)
|
|
15
|
-
{
|
|
16
|
-
const headers = {'Content-Type': 'application/x-www-form-urlencoded'}
|
|
17
|
-
|
|
18
|
-
const tokenParams = {
|
|
19
|
-
code: queryCode,
|
|
20
|
-
grant_type: "authorization_code",
|
|
21
|
-
redirect_uri: window.location.origin + "/signin-oidc",
|
|
22
|
-
client_id: process.env.client_id,
|
|
23
|
-
client_secret: process.env.client_secret,
|
|
24
|
-
code_verifier: codeVerifier
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
console.log('[PKCE] Token request params:', {
|
|
28
|
-
...tokenParams,
|
|
29
|
-
client_secret: tokenParams.client_secret ? '***' : '(missing!)',
|
|
30
|
-
code: tokenParams.code?.substring(0, 10) + '...',
|
|
31
|
-
code_verifier: tokenParams.code_verifier?.substring(0, 10) + '... (length: ' + tokenParams.code_verifier?.length + ')',
|
|
32
|
-
});
|
|
33
|
-
console.log('[PKCE] Token endpoint:', process.env.authorityUri + '/connect/token');
|
|
34
|
-
console.log('[PKCE] redirect_uri:', tokenParams.redirect_uri);
|
|
35
|
-
|
|
36
|
-
let queryString = querystring.stringify(tokenParams);
|
|
37
|
-
|
|
38
|
-
let response;
|
|
39
|
-
try {
|
|
40
|
-
response = await axios.post(process.env.authorityUri + '/connect/token', queryString, {
|
|
41
|
-
headers: headers
|
|
42
|
-
});
|
|
43
|
-
console.log('[PKCE] Token response status:', response.status);
|
|
44
|
-
console.log('[PKCE] Token response has access_token:', !!response.data?.access_token);
|
|
45
|
-
console.log('[PKCE] Token response has refresh_token:', !!response.data?.refresh_token);
|
|
46
|
-
} catch (err) {
|
|
47
|
-
console.error('[PKCE] Token request FAILED');
|
|
48
|
-
console.error('[PKCE] Status:', err.response?.status);
|
|
49
|
-
console.error('[PKCE] Error data:', JSON.stringify(err.response?.data));
|
|
50
|
-
console.error('[PKCE] Error message:', err.message);
|
|
51
|
-
throw err;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
let domainHost = window.location.hostname.split('.').slice(-2).join('.');
|
|
55
|
-
window.localStorage.removeItem("verifier");
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
await setCookie('access_token', response.data.access_token, {
|
|
60
|
-
maxAge: 60 * 60 * 24 * 365, // 1 year,
|
|
61
|
-
path: '/',
|
|
62
|
-
domain: domainHost,
|
|
63
|
-
secure: true
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
await setCookie('expires_in', response.data.expires_in, {
|
|
67
|
-
maxAge: 60 * 60 * 24 * 365, // 1 year,
|
|
68
|
-
path: '/',
|
|
69
|
-
domain: domainHost,
|
|
70
|
-
secure: true
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
await setCookie('refresh_token', response.data.refresh_token, {
|
|
74
|
-
maxAge: 60 * 60 * 24 * 365, // 1 year,
|
|
75
|
-
path: '/',
|
|
76
|
-
domain: domainHost,
|
|
77
|
-
secure: true
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
// await setCookie(null, "access_token", response.data.access_token,
|
|
82
|
-
// {
|
|
83
|
-
// maxAge: 2147483647,
|
|
84
|
-
// path: '/',
|
|
85
|
-
// domain: domainHost,
|
|
86
|
-
// secure: true
|
|
87
|
-
// });
|
|
88
|
-
|
|
89
|
-
// await setCookie(null, "expires_in", response.data.expires_in,
|
|
90
|
-
// {
|
|
91
|
-
// maxAge: 2147483647,
|
|
92
|
-
// path: '/',
|
|
93
|
-
// domain: domainHost,
|
|
94
|
-
// secure: true
|
|
95
|
-
// });
|
|
96
|
-
|
|
97
|
-
// await setCookie(null, "refresh_token", response.data.refresh_token,
|
|
98
|
-
// {
|
|
99
|
-
// maxAge: 2147483647,
|
|
100
|
-
// path: '/',
|
|
101
|
-
// domain: domainHost,
|
|
102
|
-
// secure: true
|
|
103
|
-
// });
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
let redirectUri = localStorage.getItem("redirectUri")
|
|
107
|
-
localStorage.clear();
|
|
108
|
-
if (redirectUri != null)
|
|
109
|
-
{
|
|
110
|
-
window.location.href = redirectUri;
|
|
111
|
-
}
|
|
112
|
-
else
|
|
113
|
-
{
|
|
114
|
-
window.location.href = "/";
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|