@newtonschool/react_proctoring_library 0.0.92 → 0.0.94
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/components/fullscreen/index.js +5 -7
- package/dist/components/proctor-app/index.js +4 -3
- package/dist/components/proctor-context-app/index.js +3 -0
- package/dist/components/screenshare-activity-tracker/electron.js +4 -3
- package/dist/components/screenshare-activity-tracker/web.js +3 -0
- package/dist/components/webcam-activity-tracker/electron.js +4 -0
- package/dist/components/webcam-activity-tracker/web.js +3 -0
- package/dist/hooks/electron/useKioskMode.js +11 -1
- package/dist/hooks/electron/usePageVisibility.js +8 -2
- package/dist/hooks/useTrackBreachParameters.js +12 -1
- package/dist/utils/breachUtils.js +3 -0
- package/dist/utils/fullScreen.js +2 -0
- package/dist/utils/loadable.js +3 -0
- package/dist/utils/permission.js +2 -0
- package/dist/utils/webcamMicrophoneUtils.js +3 -0
- package/package.json +1 -1
- package/dist/hooks/electron/useIsPageFocussed.js +0 -25
- package/dist/hooks/useGenericPageFocus.js +0 -17
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
4
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
5
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
3
6
|
Object.defineProperty(exports, "__esModule", {
|
|
4
7
|
value: true
|
|
5
8
|
});
|
|
@@ -17,18 +20,13 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
|
17
20
|
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); }
|
|
18
21
|
function FullScreen(_ref) {
|
|
19
22
|
let {
|
|
20
|
-
setAskPermissionAction
|
|
21
|
-
proctoredContext,
|
|
22
|
-
proctorParams
|
|
23
|
+
setAskPermissionAction
|
|
23
24
|
} = _ref;
|
|
24
25
|
const isElectronApp = (0, _react.useContext)(_ElectronContext.ElectronContext);
|
|
25
26
|
const {
|
|
26
27
|
setFullscreen
|
|
27
28
|
} = (0, _useGenericFullScreenData.default)(isElectronApp);
|
|
28
|
-
(0, _useKioskMode.default)(
|
|
29
|
-
proctoredContext,
|
|
30
|
-
proctorParams
|
|
31
|
-
});
|
|
29
|
+
(0, _useKioskMode.default)();
|
|
32
30
|
(0, _react.useEffect)(() => {
|
|
33
31
|
setAskPermissionAction(oldAskPermissionAction => _objectSpread(_objectSpread({}, oldAskPermissionAction), {}, {
|
|
34
32
|
fullscreen: () => {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("core-js/modules/es.symbol.description.js");
|
|
4
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
4
5
|
require("core-js/modules/es.weak-map.js");
|
|
5
6
|
Object.defineProperty(exports, "__esModule", {
|
|
6
7
|
value: true
|
|
@@ -8,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
9
|
exports.default = exports.ProctorApp = void 0;
|
|
9
10
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
11
|
require("core-js/modules/es.promise.js");
|
|
12
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
13
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
11
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
15
|
require("./index.scss");
|
|
13
16
|
var _permissions = require("../permissions");
|
|
@@ -113,9 +116,7 @@ const ProctorApp = _ref => {
|
|
|
113
116
|
proctoringIdentifier: proctoringIdentifier,
|
|
114
117
|
setAskPermissionAction: setAskPermissionAction
|
|
115
118
|
}), proctorParams.fullscreenExit && /*#__PURE__*/(0, _jsxRuntime.jsx)(_fullscreen.default, {
|
|
116
|
-
setAskPermissionAction: setAskPermissionAction
|
|
117
|
-
proctorParams: proctorParams,
|
|
118
|
-
proctoredContext: proctoredContext
|
|
119
|
+
setAskPermissionAction: setAskPermissionAction
|
|
119
120
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_breachParameters.default, {
|
|
120
121
|
config: config,
|
|
121
122
|
getProctorParamValues: getProctorParamValues,
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
4
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
5
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
3
6
|
require("core-js/modules/es.weak-map.js");
|
|
4
7
|
Object.defineProperty(exports, "__esModule", {
|
|
5
8
|
value: true
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
4
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
5
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
3
6
|
Object.defineProperty(exports, "__esModule", {
|
|
4
7
|
value: true
|
|
5
8
|
});
|
|
@@ -92,9 +95,7 @@ function ElectronScreenShare(_ref) {
|
|
|
92
95
|
const permissionSetter = permission => {
|
|
93
96
|
setScreensharePermission(permission);
|
|
94
97
|
};
|
|
95
|
-
window.electron.states.isScreenShareRecordingStarted(streamDeviceId)
|
|
96
|
-
permissionSetter(recordingStarted);
|
|
97
|
-
});
|
|
98
|
+
window.electron.states.isScreenShareRecordingStarted(streamDeviceId);
|
|
98
99
|
const id = window.electron.listener.screenShareRecordingStatusChanged(streamDeviceId, permissionSetter);
|
|
99
100
|
return () => {
|
|
100
101
|
window.electron.listener.removeListener(id, permissionSetter);
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
4
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
5
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
3
6
|
require("core-js/modules/es.weak-map.js");
|
|
4
7
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
5
8
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("core-js/modules/es.symbol.description.js");
|
|
4
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
5
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
4
6
|
Object.defineProperty(exports, "__esModule", {
|
|
5
7
|
value: true
|
|
6
8
|
});
|
|
7
9
|
exports.default = ElectronWebCam;
|
|
10
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
11
|
+
require("core-js/modules/esnext.iterator.find.js");
|
|
8
12
|
require("core-js/modules/es.array.includes.js");
|
|
9
13
|
require("core-js/modules/es.string.includes.js");
|
|
10
14
|
require("core-js/modules/es.promise.js");
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("core-js/modules/es.symbol.description.js");
|
|
4
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
5
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
6
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
4
7
|
require("core-js/modules/es.weak-map.js");
|
|
5
8
|
Object.defineProperty(exports, "__esModule", {
|
|
6
9
|
value: true
|
|
@@ -7,9 +7,12 @@ exports.default = useKioskMode;
|
|
|
7
7
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _ElectronContext = require("../../contexts/ElectronContext");
|
|
10
|
+
var _usePageVisibility = _interopRequireDefault(require("./usePageVisibility"));
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
12
|
function useKioskMode() {
|
|
11
13
|
const [connectedToInternet, setConnectedToInternet] = (0, _react.useState)(true);
|
|
12
14
|
const isElectronApp = (0, _react.useContext)(_ElectronContext.ElectronContext);
|
|
15
|
+
const isPageVisibile = (0, _usePageVisibility.default)();
|
|
13
16
|
(0, _react.useEffect)(() => {
|
|
14
17
|
const updateOnlineStatus = () => {
|
|
15
18
|
setConnectedToInternet(window.navigator.onLine);
|
|
@@ -29,5 +32,12 @@ function useKioskMode() {
|
|
|
29
32
|
var _window$electron, _window$electron$acti;
|
|
30
33
|
(_window$electron = window.electron) === null || _window$electron === void 0 ? void 0 : (_window$electron$acti = _window$electron.actions) === null || _window$electron$acti === void 0 ? void 0 : _window$electron$acti.disableKioskMode();
|
|
31
34
|
}
|
|
32
|
-
}, [isElectronApp, connectedToInternet]);
|
|
35
|
+
}, [isElectronApp, connectedToInternet, isPageVisibile]);
|
|
36
|
+
(0, _react.useEffect)(() => {
|
|
37
|
+
if (isPageVisibile) {
|
|
38
|
+
if (window.electron.actions.forceFocus) {
|
|
39
|
+
window.electron.actions.forceFocus();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}, [isPageVisibile]);
|
|
33
43
|
}
|
|
@@ -7,19 +7,25 @@ exports.default = usePageVisibility;
|
|
|
7
7
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _ElectronContext = require("../../contexts/ElectronContext");
|
|
10
|
-
function usePageVisibility(
|
|
10
|
+
function usePageVisibility() {
|
|
11
11
|
const [isPageFocused, setIsPageFocused] = (0, _react.useState)(true);
|
|
12
|
+
const [isPageVisible, setIsPageVisible] = (0, _react.useState)(true);
|
|
12
13
|
const isElectronApp = (0, _react.useContext)(_ElectronContext.ElectronContext);
|
|
13
14
|
(0, _react.useEffect)(() => {
|
|
14
15
|
if (isElectronApp) {
|
|
15
16
|
const isPageFocusChanged = isPageFocused => {
|
|
16
17
|
setIsPageFocused(isPageFocused);
|
|
17
18
|
};
|
|
19
|
+
const isPageVisibilityChanged = isPageVisible => {
|
|
20
|
+
setIsPageVisible(isPageVisible);
|
|
21
|
+
};
|
|
18
22
|
const signal = window.electron.listener.isPageFocusedChanged(isPageFocusChanged);
|
|
23
|
+
const visibilitySignal = window.electron.listener.isPageVisibilityChanged(isPageVisibilityChanged);
|
|
19
24
|
return () => {
|
|
20
25
|
window.electron.listener.removeListener(signal, isPageFocusChanged);
|
|
26
|
+
window.electron.listener.removeListener(visibilitySignal, isPageVisibilityChanged);
|
|
21
27
|
};
|
|
22
28
|
}
|
|
23
29
|
}, [isElectronApp]);
|
|
24
|
-
return isPageFocused &&
|
|
30
|
+
return isPageFocused && isPageVisible;
|
|
25
31
|
}
|
|
@@ -10,6 +10,7 @@ var _useGenericPageVisibility = _interopRequireDefault(require("./useGenericPage
|
|
|
10
10
|
var _utils = require("../utils");
|
|
11
11
|
var _useGenericSleepDetected = _interopRequireDefault(require("./useGenericSleepDetected"));
|
|
12
12
|
var _useGenericIllegalKeysCombination = _interopRequireDefault(require("./useGenericIllegalKeysCombination"));
|
|
13
|
+
var _ElectronContext = require("../contexts/ElectronContext");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
const isWebcamProcessingReliable = (0, _utils.isGPUAvailable)();
|
|
15
16
|
const useTrackBreachParameters = _ref => {
|
|
@@ -21,6 +22,7 @@ const useTrackBreachParameters = _ref => {
|
|
|
21
22
|
permissions,
|
|
22
23
|
allPermissionGrantedOnce
|
|
23
24
|
} = _ref;
|
|
25
|
+
const isElectronApp = (0, _react.useContext)(_ElectronContext.ElectronContext);
|
|
24
26
|
const statistics = (0, _react.useRef)((0, _breachUtils.getInitialStats)(proctorParams));
|
|
25
27
|
const {
|
|
26
28
|
recurring = false,
|
|
@@ -68,9 +70,18 @@ const useTrackBreachParameters = _ref => {
|
|
|
68
70
|
(0, _utils.updateStatistics)(statistics, currentStats, proctorParams);
|
|
69
71
|
if (breachData && allPermissionGrantedOnce.current) {
|
|
70
72
|
sendProctoredParamValues(true, breachData.breachedParam);
|
|
73
|
+
if (isElectronApp) {
|
|
74
|
+
var _window$electron$acti, _window$electron$acti2;
|
|
75
|
+
if ((_window$electron$acti = window.electron.actions) !== null && _window$electron$acti !== void 0 && _window$electron$acti.captureAndSendSnapshot) {
|
|
76
|
+
window.electron.actions.captureAndSendSnapshot({});
|
|
77
|
+
}
|
|
78
|
+
if ((_window$electron$acti2 = window.electron.actions) !== null && _window$electron$acti2 !== void 0 && _window$electron$acti2.captureAndSendWebCamSnapshot) {
|
|
79
|
+
window.electron.actions.captureAndSendWebCamSnapshot({});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
71
82
|
}
|
|
72
83
|
previousIllegalKeysCombinationCount.current = illegalKeysCombinationCount;
|
|
73
84
|
previousSleepCount.current = sleepCount;
|
|
74
|
-
}, [illegalKeysCombinationCount, sleepCount, isTabSwitched, isPageFocussed, permissions.fullscreen, sendProctoredParamValues, proctorParams]);
|
|
85
|
+
}, [illegalKeysCombinationCount, sleepCount, isTabSwitched, isPageFocussed, permissions.fullscreen, sendProctoredParamValues, proctorParams, isElectronApp]);
|
|
75
86
|
};
|
|
76
87
|
exports.useTrackBreachParameters = useTrackBreachParameters;
|
package/dist/utils/fullScreen.js
CHANGED
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
require("core-js/modules/es.regexp.to-string.js");
|
|
8
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
9
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
8
10
|
function listenerHandler() {
|
|
9
11
|
const listenerMap = {};
|
|
10
12
|
const addFullScreenListener = callback => {
|
package/dist/utils/loadable.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
4
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
5
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
3
6
|
require("core-js/modules/es.weak-map.js");
|
|
4
7
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
5
8
|
Object.defineProperty(exports, "__esModule", {
|
package/dist/utils/permission.js
CHANGED
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.stopScreenshare = exports.hasAllPermissions = exports.exitFullscreen = void 0;
|
|
7
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
8
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
7
9
|
const hasAllPermissions = (requiredPermissions, permissions) => {
|
|
8
10
|
let hasPermission = true;
|
|
9
11
|
requiredPermissions.forEach(element => {
|
|
@@ -4,6 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.updateVideoPermissions = exports.updateStatistics = exports.updateAudioPermissions = exports.setupScreensharePermission = exports.resetWebcamReference = exports.resetScreenshotReference = exports.isWebcamVideoValid = exports.getVideoPermissionQuery = exports.getVideoPermission = exports.getUpdatedStatistics = exports.getGlancePercentage = exports.getAudioVideoPermission = exports.getAudioPermissionQuery = exports.getAudioPermission = exports.collectScreenshare = exports.captureWebcamSnapshot = exports.captureScreenshot = void 0;
|
|
7
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
8
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
9
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
7
10
|
require("core-js/modules/es.regexp.exec.js");
|
|
8
11
|
require("core-js/modules/es.string.split.js");
|
|
9
12
|
require("core-js/modules/es.array-buffer.slice.js");
|
package/package.json
CHANGED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = useIsPageFocussed;
|
|
7
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
8
|
-
var _react = require("react");
|
|
9
|
-
var _ElectronContext = require("../../contexts/ElectronContext");
|
|
10
|
-
function useIsPageFocussed(isProctorParam) {
|
|
11
|
-
const [isPageFocussed, setIsPageFocussed] = (0, _react.useState)(true);
|
|
12
|
-
const isElectronApp = (0, _react.useContext)(_ElectronContext.ElectronContext);
|
|
13
|
-
(0, _react.useEffect)(() => {
|
|
14
|
-
if (isElectronApp) {
|
|
15
|
-
const pageFocusChangeHandler = isPageFocused => {
|
|
16
|
-
setIsPageFocussed(isPageFocused);
|
|
17
|
-
};
|
|
18
|
-
const signal = window.electron.listener.isPageFocusedChanged(pageFocusChangeHandler);
|
|
19
|
-
return () => {
|
|
20
|
-
window.electron.listener.removeListener(signal, pageFocusChangeHandler);
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
}, [isElectronApp]);
|
|
24
|
-
return isPageFocussed && isProctorParam;
|
|
25
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = useGenericPageFocus;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
var _ElectronContext = require("../contexts/ElectronContext");
|
|
9
|
-
var _useIsPageFocussed = _interopRequireDefault(require("./web/useIsPageFocussed"));
|
|
10
|
-
var _useIsPageFocussed2 = _interopRequireDefault(require("./electron/useIsPageFocussed"));
|
|
11
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
-
function useGenericPageFocus(isProctorParam) {
|
|
13
|
-
const isElectronApp = (0, _react.useContext)(_ElectronContext.ElectronContext);
|
|
14
|
-
const webIsPageFocussed = (0, _useIsPageFocussed.default)(isProctorParam);
|
|
15
|
-
const electronIsPageFocused = (0, _useIsPageFocussed2.default)(isProctorParam);
|
|
16
|
-
return isElectronApp ? electronIsPageFocused : webIsPageFocussed;
|
|
17
|
-
}
|