miva-proctor-sdk 0.0.2

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.
Files changed (104) hide show
  1. package/README.md +31 -0
  2. package/dist/cjs/index.d.ts +5 -0
  3. package/dist/cjs/index.js +22 -0
  4. package/dist/cjs/src/core/client/axios/axiosServerError.d.ts +14 -0
  5. package/dist/cjs/src/core/client/axios/axiosServerError.js +25 -0
  6. package/dist/cjs/src/core/client/axios/errors.d.ts +9 -0
  7. package/dist/cjs/src/core/client/axios/errors.js +28 -0
  8. package/dist/cjs/src/core/client/axios/index.d.ts +6 -0
  9. package/dist/cjs/src/core/client/axios/index.js +34 -0
  10. package/dist/cjs/src/core/client/baseAPI.d.ts +11 -0
  11. package/dist/cjs/src/core/client/baseAPI.js +40 -0
  12. package/dist/cjs/src/core/client/config.d.ts +14 -0
  13. package/dist/cjs/src/core/client/config.js +18 -0
  14. package/dist/cjs/src/core/client/proctor-metric.service.d.ts +16 -0
  15. package/dist/cjs/src/core/client/proctor-metric.service.js +83 -0
  16. package/dist/cjs/src/core/client/proctor-metric.type.d.ts +24 -0
  17. package/dist/cjs/src/core/client/proctor-metric.type.js +3 -0
  18. package/dist/cjs/src/core/index.d.ts +6 -0
  19. package/dist/cjs/src/core/index.js +23 -0
  20. package/dist/cjs/src/core/proctor/audioDetector.d.ts +38 -0
  21. package/dist/cjs/src/core/proctor/audioDetector.js +319 -0
  22. package/dist/cjs/src/core/proctor/faceDetector.d.ts +15 -0
  23. package/dist/cjs/src/core/proctor/faceDetector.js +42 -0
  24. package/dist/cjs/src/core/proctor/index.d.ts +39 -0
  25. package/dist/cjs/src/core/proctor/index.js +299 -0
  26. package/dist/cjs/src/core/proctor/mediaPermission.d.ts +17 -0
  27. package/dist/cjs/src/core/proctor/mediaPermission.js +77 -0
  28. package/dist/cjs/src/index.d.ts +3 -0
  29. package/dist/cjs/src/index.js +20 -0
  30. package/dist/cjs/src/modules/ProctoringManager.d.ts +30 -0
  31. package/dist/cjs/src/modules/ProctoringManager.js +74 -0
  32. package/dist/cjs/src/modules/index.d.ts +1 -0
  33. package/dist/cjs/src/modules/index.js +18 -0
  34. package/dist/cjs/src/types/common.d.ts +5 -0
  35. package/dist/cjs/src/types/common.js +10 -0
  36. package/dist/cjs/src/types/index.d.ts +2 -0
  37. package/dist/cjs/src/types/index.js +19 -0
  38. package/dist/cjs/src/types/sessions.d.ts +15 -0
  39. package/dist/cjs/src/types/sessions.js +14 -0
  40. package/dist/cjs/src/utils/index.d.ts +1 -0
  41. package/dist/cjs/src/utils/index.js +3 -0
  42. package/dist/esm/index.d.ts +5 -0
  43. package/dist/esm/index.js +6 -0
  44. package/dist/esm/src/core/client/axios/axiosServerError.d.ts +14 -0
  45. package/dist/esm/src/core/client/axios/axiosServerError.js +20 -0
  46. package/dist/esm/src/core/client/axios/errors.d.ts +9 -0
  47. package/dist/esm/src/core/client/axios/errors.js +22 -0
  48. package/dist/esm/src/core/client/axios/index.d.ts +6 -0
  49. package/dist/esm/src/core/client/axios/index.js +27 -0
  50. package/dist/esm/src/core/client/baseAPI.d.ts +11 -0
  51. package/dist/esm/src/core/client/baseAPI.js +34 -0
  52. package/dist/esm/src/core/client/config.d.ts +14 -0
  53. package/dist/esm/src/core/client/config.js +15 -0
  54. package/dist/esm/src/core/client/proctor-metric.service.d.ts +16 -0
  55. package/dist/esm/src/core/client/proctor-metric.service.js +80 -0
  56. package/dist/esm/src/core/client/proctor-metric.type.d.ts +24 -0
  57. package/dist/esm/src/core/client/proctor-metric.type.js +2 -0
  58. package/dist/esm/src/core/index.d.ts +6 -0
  59. package/dist/esm/src/core/index.js +7 -0
  60. package/dist/esm/src/core/proctor/audioDetector.d.ts +38 -0
  61. package/dist/esm/src/core/proctor/audioDetector.js +315 -0
  62. package/dist/esm/src/core/proctor/faceDetector.d.ts +15 -0
  63. package/dist/esm/src/core/proctor/faceDetector.js +38 -0
  64. package/dist/esm/src/core/proctor/index.d.ts +39 -0
  65. package/dist/esm/src/core/proctor/index.js +295 -0
  66. package/dist/esm/src/core/proctor/mediaPermission.d.ts +17 -0
  67. package/dist/esm/src/core/proctor/mediaPermission.js +74 -0
  68. package/dist/esm/src/index.d.ts +3 -0
  69. package/dist/esm/src/index.js +4 -0
  70. package/dist/esm/src/modules/ProctoringManager.d.ts +30 -0
  71. package/dist/esm/src/modules/ProctoringManager.js +71 -0
  72. package/dist/esm/src/modules/index.d.ts +1 -0
  73. package/dist/esm/src/modules/index.js +2 -0
  74. package/dist/esm/src/types/common.d.ts +5 -0
  75. package/dist/esm/src/types/common.js +7 -0
  76. package/dist/esm/src/types/index.d.ts +2 -0
  77. package/dist/esm/src/types/index.js +3 -0
  78. package/dist/esm/src/types/sessions.d.ts +15 -0
  79. package/dist/esm/src/types/sessions.js +11 -0
  80. package/dist/esm/src/utils/index.d.ts +1 -0
  81. package/dist/esm/src/utils/index.js +2 -0
  82. package/dist/types/index.d.ts +5 -0
  83. package/dist/types/src/core/client/axios/axiosServerError.d.ts +14 -0
  84. package/dist/types/src/core/client/axios/errors.d.ts +9 -0
  85. package/dist/types/src/core/client/axios/index.d.ts +6 -0
  86. package/dist/types/src/core/client/baseAPI.d.ts +11 -0
  87. package/dist/types/src/core/client/config.d.ts +14 -0
  88. package/dist/types/src/core/client/proctor-metric.service.d.ts +16 -0
  89. package/dist/types/src/core/client/proctor-metric.type.d.ts +24 -0
  90. package/dist/types/src/core/index.d.ts +6 -0
  91. package/dist/types/src/core/proctor/audioDetector.d.ts +38 -0
  92. package/dist/types/src/core/proctor/faceDetector.d.ts +15 -0
  93. package/dist/types/src/core/proctor/index.d.ts +39 -0
  94. package/dist/types/src/core/proctor/mediaPermission.d.ts +17 -0
  95. package/dist/types/src/index.d.ts +3 -0
  96. package/dist/types/src/modules/ProctoringManager.d.ts +30 -0
  97. package/dist/types/src/modules/index.d.ts +1 -0
  98. package/dist/types/src/types/common.d.ts +5 -0
  99. package/dist/types/src/types/index.d.ts +2 -0
  100. package/dist/types/src/types/sessions.d.ts +15 -0
  101. package/dist/types/src/utils/index.d.ts +1 -0
  102. package/dist/umd/index.js +2 -0
  103. package/dist/umd/index.js.LICENSE.txt +8 -0
  104. package/package.json +94 -0
package/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # Miva Proctor Library Tools
2
+
3
+ Miva Proctor SDK is a Typescript library that allows interacting with Miva Exam Portal components.
4
+
5
+ ## Installation
6
+
7
+ ### Npm
8
+ ```bash
9
+ npm install
10
+ ```
11
+
12
+ ### Yarn
13
+ ```bash
14
+ yarn install
15
+ ```
16
+
17
+
18
+ ## Steps for Generate and Release Documentation
19
+
20
+
21
+ Step 1:
22
+ Choose newer good version for release.
23
+ Use command:
24
+
25
+ ```
26
+ yarn publish
27
+ ```
28
+
29
+
30
+ ## License
31
+ Miva Development Team
@@ -0,0 +1,5 @@
1
+ export * from './src/modules';
2
+ export * from './src/utils';
3
+ export * from './src/types';
4
+ export * from './src/core';
5
+ export * from './src/index';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./src/modules"), exports);
18
+ __exportStar(require("./src/utils"), exports);
19
+ __exportStar(require("./src/types"), exports);
20
+ __exportStar(require("./src/core"), exports);
21
+ __exportStar(require("./src/index"), exports);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsZ0RBQThCO0FBQzlCLDhDQUE0QjtBQUM1Qiw4Q0FBNEI7QUFDNUIsNkNBQTJCO0FBQzNCLDhDQUE0QiJ9
@@ -0,0 +1,14 @@
1
+ import { WrappedError } from './errors';
2
+ export declare type AxiosErrorObject = {};
3
+ export declare class AxiosError extends WrappedError<AxiosErrorObject> {
4
+ }
5
+ export declare class AxiosServerError extends AxiosError {
6
+ readonly status: number;
7
+ readonly statusText: string;
8
+ readonly data: {};
9
+ constructor(response: {
10
+ data: {};
11
+ status: number;
12
+ statusText: string;
13
+ }, originalError: AxiosErrorObject);
14
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AxiosServerError = exports.AxiosError = void 0;
4
+ const errors_1 = require("./errors");
5
+ // /**
6
+ // * An error thrown by axios made r with large fields removed and the original error converted
7
+ // * into an object with its config removed.
8
+ // */
9
+ class AxiosError extends errors_1.WrappedError {
10
+ }
11
+ exports.AxiosError = AxiosError;
12
+ // /**
13
+ // * Axios error with only status, statusText and data response error fields and a smaller original
14
+ // * error.
15
+ // */
16
+ class AxiosServerError extends AxiosError {
17
+ constructor(response, originalError) {
18
+ super(`${response.status}: ${response.statusText} - ${JSON.stringify(response.data, null, 2)}`, originalError);
19
+ this.status = response.status;
20
+ this.statusText = response.statusText;
21
+ this.data = response.data;
22
+ }
23
+ }
24
+ exports.AxiosServerError = AxiosServerError;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3NTZXJ2ZXJFcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL2NsaWVudC9heGlvcy9heGlvc1NlcnZlckVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUF3QztBQUt4QyxNQUFNO0FBQ04sZ0dBQWdHO0FBQ2hHLDZDQUE2QztBQUM3QyxNQUFNO0FBQ04sTUFBYSxVQUFXLFNBQVEscUJBQThCO0NBQUc7QUFBakUsZ0NBQWlFO0FBRWpFLE1BQU07QUFDTixxR0FBcUc7QUFDckcsYUFBYTtBQUNiLE9BQU87QUFDUCxNQUFhLGdCQUFpQixTQUFRLFVBQVU7SUFLOUMsWUFDRSxRQUEwRCxFQUMxRCxhQUErQjtRQUUvQixLQUFLLENBQ0gsR0FBRyxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxVQUFVLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUN4RixhQUFhLENBQ2QsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQWpCRCw0Q0FpQkMifQ==
@@ -0,0 +1,9 @@
1
+ export declare class CustomError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export declare class WrappedError<T = Error> extends CustomError {
5
+ readonly originalError: T;
6
+ constructor(message: string, originalError: T);
7
+ }
8
+ export declare class ConfigError extends CustomError {
9
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigError = exports.WrappedError = exports.CustomError = void 0;
4
+ // /**
5
+ // * Base class for custom errors.
6
+ // */
7
+ class CustomError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ // Set a more specific name. This will show up in e.g. console.log.
11
+ this.name = this.constructor.name;
12
+ }
13
+ }
14
+ exports.CustomError = CustomError;
15
+ // /**
16
+ // * Base class for a custom error which wraps another error.
17
+ // */
18
+ class WrappedError extends CustomError {
19
+ constructor(message, originalError) {
20
+ super(message);
21
+ this.originalError = originalError;
22
+ }
23
+ }
24
+ exports.WrappedError = WrappedError;
25
+ class ConfigError extends CustomError {
26
+ }
27
+ exports.ConfigError = ConfigError;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvcmUvY2xpZW50L2F4aW9zL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFNO0FBQ04sbUNBQW1DO0FBQ25DLE1BQU07QUFDTixNQUFhLFdBQVksU0FBUSxLQUFLO0lBQ2xDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUFOSCxrQ0FNRztBQUVELE1BQU07QUFDTixnRUFBZ0U7QUFDaEUsUUFBUTtBQUNSLE1BQWEsWUFBd0IsU0FBUSxXQUFXO0lBR3BELFlBQ0UsT0FBZSxFQUNmLGFBQWdCO1FBRWhCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7Q0FDSjtBQVZELG9DQVVDO0FBRUQsTUFBYSxXQUFZLFNBQVEsV0FBVztDQUFHO0FBQS9DLGtDQUErQyJ9
@@ -0,0 +1,6 @@
1
+ import { AxiosInstance, AxiosRequestConfig } from 'axios';
2
+ export declare class AxiosWrapper {
3
+ axiosInstance: AxiosInstance;
4
+ constructor(axiosInstance: AxiosInstance);
5
+ makeRequest(options: AxiosRequestConfig): Promise<any>;
6
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AxiosWrapper = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ const axiosServerError_1 = require("./axiosServerError");
10
+ class AxiosWrapper {
11
+ constructor(axiosInstance) {
12
+ this.axiosInstance = axiosInstance;
13
+ }
14
+ async makeRequest(options) {
15
+ try {
16
+ const response = await this.axiosInstance(options);
17
+ return response.data;
18
+ }
19
+ catch (error) {
20
+ if (axios_1.default.isAxiosError(error)) {
21
+ const Error = lodash_1.default.omit(error.toJSON(), 'config');
22
+ if (error.response) {
23
+ const smallerResponse = lodash_1.default.pick(error.response, ['data', 'status', 'statusText']);
24
+ throw new axiosServerError_1.AxiosServerError(smallerResponse, Error);
25
+ }
26
+ // request error or timeout error
27
+ throw new axiosServerError_1.AxiosError(`Axios: ${error.message}`, Error);
28
+ }
29
+ throw error;
30
+ }
31
+ }
32
+ }
33
+ exports.AxiosWrapper = AxiosWrapper;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29yZS9jbGllbnQvYXhpb3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQWlFO0FBQ2pFLG9EQUF1QjtBQUV2Qix5REFBb0Y7QUFFcEYsTUFBYSxZQUFZO0lBR3ZCLFlBQVksYUFBNEI7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBMkI7UUFDbEQsSUFBSTtZQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdEI7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksZUFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDN0IsTUFBTSxLQUFLLEdBQXFCLGdCQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDakUsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO29CQUNsQixNQUFNLGVBQWUsR0FBcUQsZ0JBQUMsQ0FBQyxJQUFJLENBQzlFLEtBQUssQ0FBQyxRQUFRLEVBQ2QsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUNqQyxDQUFDO29CQUNGLE1BQU0sSUFBSSxtQ0FBZ0IsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQ3BEO2dCQUNELGlDQUFpQztnQkFDakMsTUFBTSxJQUFJLDZCQUFVLENBQUMsVUFBVSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDeEQ7WUFDRCxNQUFNLEtBQUssQ0FBQztTQUNiO0lBQ0gsQ0FBQztDQUNGO0FBM0JELG9DQTJCQyJ9
@@ -0,0 +1,11 @@
1
+ import { AxiosInstance } from "axios";
2
+ import { Environment } from '../../types/common';
3
+ export declare const API_STAGING_HOST = "https://metrics.staging.miva.university";
4
+ export declare const API_UAT_HOST = "https://metrics.miva.university";
5
+ export declare const API_PROD_HOST = "https://metrics.miva.university";
6
+ export declare const STAGING_API_KEY = "";
7
+ export declare const UAT_API_KEY = "";
8
+ export declare const PROD_API_KEY = "";
9
+ export declare const MIVA_PROCTOR_SERVICE_ENDPOINT = "https://metrics.staging.miva.university";
10
+ declare const createAxios: (env: Environment) => AxiosInstance;
11
+ export { createAxios };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createAxios = exports.MIVA_PROCTOR_SERVICE_ENDPOINT = exports.PROD_API_KEY = exports.UAT_API_KEY = exports.STAGING_API_KEY = exports.API_PROD_HOST = exports.API_UAT_HOST = exports.API_STAGING_HOST = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const common_1 = require("../../types/common");
9
+ const TIMEOUT = 30000;
10
+ exports.API_STAGING_HOST = 'https://metrics.staging.miva.university';
11
+ exports.API_UAT_HOST = 'https://metrics.miva.university';
12
+ exports.API_PROD_HOST = 'https://metrics.miva.university';
13
+ exports.STAGING_API_KEY = '';
14
+ exports.UAT_API_KEY = '';
15
+ exports.PROD_API_KEY = '';
16
+ const host = {
17
+ [common_1.Environment.Staging]: exports.API_STAGING_HOST,
18
+ [common_1.Environment.UAT]: exports.API_UAT_HOST,
19
+ [common_1.Environment.Prod]: exports.API_PROD_HOST
20
+ };
21
+ const apiKeys = {
22
+ [common_1.Environment.Staging]: exports.STAGING_API_KEY,
23
+ [common_1.Environment.UAT]: exports.UAT_API_KEY,
24
+ [common_1.Environment.Prod]: exports.PROD_API_KEY
25
+ };
26
+ exports.MIVA_PROCTOR_SERVICE_ENDPOINT = exports.API_STAGING_HOST;
27
+ const createAxios = (env) => {
28
+ const baseUrl = host[env];
29
+ const apiKey = apiKeys[env];
30
+ return axios_1.default.create({
31
+ baseURL: baseUrl,
32
+ headers: {
33
+ 'Content-Type': 'application/json',
34
+ 'x-api-key': apiKey,
35
+ },
36
+ timeout: TIMEOUT
37
+ });
38
+ };
39
+ exports.createAxios = createAxios;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZUFQSS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL2NsaWVudC9iYXNlQVBJLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUE0RDtBQUM1RCwrQ0FBaUQ7QUFFakQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBRVQsUUFBQSxnQkFBZ0IsR0FBRyx5Q0FBeUMsQ0FBQztBQUM3RCxRQUFBLFlBQVksR0FBRyxpQ0FBaUMsQ0FBQztBQUNqRCxRQUFBLGFBQWEsR0FBRyxpQ0FBaUMsQ0FBQztBQUdsRCxRQUFBLGVBQWUsR0FBRyxFQUFFLENBQUM7QUFDckIsUUFBQSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBQ2pCLFFBQUEsWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUUvQixNQUFNLElBQUksR0FBRztJQUNYLENBQUMsb0JBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSx3QkFBZ0I7SUFDdkMsQ0FBQyxvQkFBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLG9CQUFZO0lBQy9CLENBQUMsb0JBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxxQkFBYTtDQUNsQyxDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUc7SUFDWixDQUFDLG9CQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsdUJBQWU7SUFDdEMsQ0FBQyxvQkFBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLG1CQUFXO0lBQzlCLENBQUMsb0JBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxvQkFBWTtDQUNuQyxDQUFDO0FBR1csUUFBQSw2QkFBNkIsR0FBRyx3QkFBZ0IsQ0FBQTtBQUU3RCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQWdCLEVBQWlCLEVBQUU7SUFFcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU1QixPQUFPLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDbEIsT0FBTyxFQUFFLE9BQU87UUFDaEIsT0FBTyxFQUFFO1lBQ1AsY0FBYyxFQUFFLGtCQUFrQjtZQUNsQyxXQUFXLEVBQUcsTUFBTTtTQUNyQjtRQUNELE9BQU8sRUFBRSxPQUFPO0tBQ2pCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUtBLGtDQUFXIn0=
@@ -0,0 +1,14 @@
1
+ declare const CONFIG: {
2
+ API_SESSIONS_PATH: {
3
+ START_SESSION: string;
4
+ END_SESSION: string;
5
+ PING_SESSION: string;
6
+ DELETE_SESSION: string;
7
+ SESSIONS: string;
8
+ SESSIONS_ACTIVE: string;
9
+ };
10
+ API_ACTIVITIES_PATH: {
11
+ ACTIVITIES: string;
12
+ };
13
+ };
14
+ export { CONFIG };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONFIG = void 0;
4
+ const CONFIG = {
5
+ API_SESSIONS_PATH: {
6
+ START_SESSION: '/sessions/start',
7
+ END_SESSION: '/sessions/:id/end',
8
+ PING_SESSION: '/sessions/:id/ping',
9
+ DELETE_SESSION: '/sessions/:id',
10
+ SESSIONS: '/sessions',
11
+ SESSIONS_ACTIVE: '/sessions/active',
12
+ },
13
+ API_ACTIVITIES_PATH: {
14
+ ACTIVITIES: '/activities',
15
+ },
16
+ };
17
+ exports.CONFIG = CONFIG;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvcmUvY2xpZW50L2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFNLE1BQU0sR0FBRztJQUNiLGlCQUFpQixFQUFFO1FBQ2pCLGFBQWEsRUFBRSxpQkFBaUI7UUFDaEMsV0FBVyxFQUFFLG1CQUFtQjtRQUNoQyxZQUFZLEVBQUUsb0JBQW9CO1FBQ2xDLGNBQWMsRUFBRSxlQUFlO1FBQy9CLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLGVBQWUsRUFBRSxrQkFBa0I7S0FDcEM7SUFDRCxtQkFBbUIsRUFBRTtRQUNuQixVQUFVLEVBQUUsYUFBYTtLQUMxQjtDQUNGLENBQUM7QUFFTyx3QkFBTSJ9
@@ -0,0 +1,16 @@
1
+ import { Environment } from '../../types/common';
2
+ import { IGetActivitiesParams, IGetSessionsParams, IStartSessionParams, IUpdateActivitiesParams } from './proctor-metric.type';
3
+ declare class ProctorMetricService {
4
+ private axiosInstance;
5
+ private axiosWrapper;
6
+ constructor(env: Environment);
7
+ startSession(params: IStartSessionParams): Promise<any>;
8
+ getSessions(params: IGetSessionsParams): Promise<any>;
9
+ getActiveSessions(userId: string): Promise<any>;
10
+ endSession(sessionId: string): Promise<any>;
11
+ pingSession(sessionId: string): Promise<any>;
12
+ deleteSession(sessionId: string): Promise<any>;
13
+ updateActivities(params: IUpdateActivitiesParams): Promise<any>;
14
+ getActivities(params: IGetActivitiesParams): Promise<any>;
15
+ }
16
+ export { ProctorMetricService };
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProctorMetricService = void 0;
4
+ const axios_1 = require("./axios");
5
+ const baseAPI_1 = require("./baseAPI");
6
+ const config_1 = require("./config");
7
+ class ProctorMetricService {
8
+ constructor(env) {
9
+ this.axiosInstance = (0, baseAPI_1.createAxios)(env);
10
+ this.axiosWrapper = new axios_1.AxiosWrapper(this.axiosInstance);
11
+ }
12
+ async startSession(params) {
13
+ const data = await this.axiosWrapper.makeRequest({
14
+ url: config_1.CONFIG.API_SESSIONS_PATH.START_SESSION,
15
+ method: 'POST',
16
+ data: params,
17
+ });
18
+ return data;
19
+ }
20
+ async getSessions(params) {
21
+ const data = await this.axiosWrapper.makeRequest({
22
+ url: config_1.CONFIG.API_SESSIONS_PATH.SESSIONS,
23
+ method: 'GET',
24
+ data: params,
25
+ });
26
+ return data;
27
+ }
28
+ async getActiveSessions(userId) {
29
+ const data = await this.axiosWrapper.makeRequest({
30
+ url: config_1.CONFIG.API_SESSIONS_PATH.SESSIONS_ACTIVE,
31
+ method: 'GET',
32
+ params: {
33
+ studentId: userId,
34
+ },
35
+ });
36
+ return data;
37
+ }
38
+ async endSession(sessionId) {
39
+ const data = await this.axiosWrapper.makeRequest({
40
+ url: config_1.CONFIG.API_SESSIONS_PATH.END_SESSION.replace(':id', sessionId),
41
+ method: 'POST',
42
+ data: {
43
+ timestamp: new Date().toISOString(),
44
+ },
45
+ });
46
+ return data;
47
+ }
48
+ async pingSession(sessionId) {
49
+ const data = await this.axiosWrapper.makeRequest({
50
+ url: config_1.CONFIG.API_SESSIONS_PATH.PING_SESSION.replace(':id', sessionId),
51
+ method: 'POST',
52
+ data: {
53
+ timestamp: new Date().toISOString(),
54
+ },
55
+ });
56
+ return data;
57
+ }
58
+ async deleteSession(sessionId) {
59
+ const data = await this.axiosWrapper.makeRequest({
60
+ url: config_1.CONFIG.API_SESSIONS_PATH.DELETE_SESSION.replace(':id', sessionId),
61
+ method: 'DELETE',
62
+ });
63
+ return data;
64
+ }
65
+ async updateActivities(params) {
66
+ const data = await this.axiosWrapper.makeRequest({
67
+ url: config_1.CONFIG.API_ACTIVITIES_PATH.ACTIVITIES,
68
+ method: 'POST',
69
+ data: params,
70
+ });
71
+ return data;
72
+ }
73
+ async getActivities(params) {
74
+ const data = await this.axiosWrapper.makeRequest({
75
+ url: config_1.CONFIG.API_ACTIVITIES_PATH.ACTIVITIES,
76
+ method: 'GET',
77
+ params: params,
78
+ });
79
+ return data;
80
+ }
81
+ }
82
+ exports.ProctorMetricService = ProctorMetricService;
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY3Rvci1tZXRyaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL2NsaWVudC9wcm9jdG9yLW1ldHJpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG1DQUF1QztBQUV2Qyx1Q0FBd0M7QUFDeEMscUNBQWtDO0FBR2xDLE1BQU0sb0JBQW9CO0lBSXhCLFlBQW1CLEdBQWdCO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBQSxxQkFBVyxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxvQkFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUEyQjtRQUNuRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQy9DLEdBQUcsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsYUFBYTtZQUMzQyxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxNQUFNO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUEwQjtRQUNqRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQy9DLEdBQUcsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBUTtZQUN0QyxNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBRSxNQUFNO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQWM7UUFDM0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUMvQyxHQUFHLEVBQUUsZUFBTSxDQUFDLGlCQUFpQixDQUFDLGVBQWU7WUFDN0MsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLE1BQU07YUFDbEI7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQWlCO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDL0MsR0FBRyxFQUFFLGVBQU0sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7WUFDbkUsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUU7Z0JBQ0osU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2FBQ3BDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFpQjtRQUN4QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQy9DLEdBQUcsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1lBQ3BFLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTthQUNwQztTQUNGLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBaUI7UUFDMUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUMvQyxHQUFHLEVBQUUsZUFBTSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUN0RSxNQUFNLEVBQUUsUUFBUTtTQUNqQixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBK0I7UUFDM0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUMvQyxHQUFHLEVBQUUsZUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQVU7WUFDMUMsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBNEI7UUFDckQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUMvQyxHQUFHLEVBQUUsZUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQVU7WUFDMUMsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBRVEsb0RBQW9CIn0=
@@ -0,0 +1,24 @@
1
+ import { Evidence } from '../../types/sessions';
2
+ export interface IStartSessionParams {
3
+ courseId: string;
4
+ examId: string;
5
+ studentId: string;
6
+ timestamp: string;
7
+ }
8
+ export interface IGetSessionsParams {
9
+ courseId: string;
10
+ examId: string;
11
+ studentId: string;
12
+ }
13
+ export interface IUpdateActivitiesParams {
14
+ sessionId: string;
15
+ activityType: string;
16
+ timestamp: string;
17
+ details: string;
18
+ image?: Evidence;
19
+ }
20
+ export interface IGetActivitiesParams {
21
+ sessionId: string;
22
+ page: number;
23
+ limit: number;
24
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY3Rvci1tZXRyaWMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL2NsaWVudC9wcm9jdG9yLW1ldHJpYy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,6 @@
1
+ export * from './proctor';
2
+ export * from './client/proctor-metric.service';
3
+ export * from './client/proctor-metric.type';
4
+ export * from './client/config';
5
+ export * from './client/baseAPI';
6
+ export * from './client/axios';
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./proctor"), exports);
18
+ __exportStar(require("./client/proctor-metric.service"), exports);
19
+ __exportStar(require("./client/proctor-metric.type"), exports);
20
+ __exportStar(require("./client/config"), exports);
21
+ __exportStar(require("./client/baseAPI"), exports);
22
+ __exportStar(require("./client/axios"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLGtFQUFnRDtBQUNoRCwrREFBNkM7QUFDN0Msa0RBQWdDO0FBQ2hDLG1EQUFpQztBQUNqQyxpREFBK0IifQ==
@@ -0,0 +1,38 @@
1
+ declare type VolumeState = 'mute' | 'silence' | 'signal' | 'clipping';
2
+ export declare type AudioEvents = {
3
+ onMute: (event: Event) => void;
4
+ onUnmute: (event: Event) => void;
5
+ onAudioBlob: (blob: Blob) => void;
6
+ };
7
+ export declare class AudioDetector {
8
+ volumeState: VolumeState;
9
+ speechStarted: boolean;
10
+ silenceItems: number;
11
+ signalItems: number;
12
+ speechStartTime: number;
13
+ prerecordingItems: number;
14
+ speechVolumesList: any[];
15
+ meter: any;
16
+ mediaStreamSource: any;
17
+ audioContext?: AudioContext;
18
+ recorder: MediaRecorder | undefined;
19
+ recordedChunks: Blob[];
20
+ events: AudioEvents;
21
+ constructor(events: AudioEvents);
22
+ start(): Promise<void>;
23
+ stop(): Promise<void>;
24
+ average(array: number[]): number;
25
+ averageSignal(): number;
26
+ dispatchEvent(eventName: string, eventData: any): boolean;
27
+ mute(timestamp: any, duration: any): void;
28
+ signal(timestamp: any, duration: any): void;
29
+ silence(timestamp: any, duration: any): void;
30
+ sampleThresholdsDecision(muteVolume: number, speakingMinVolume: number): void;
31
+ prerecording(prespeechstartMsecs: number, timeoutMsecs: number): void;
32
+ audioDetection(config: any): void;
33
+ createAudioMeter(audioContext: any, clipLevel?: any, averaging?: any, clipLag?: any): any;
34
+ private audioStream;
35
+ volumeAudioProcess(event: any): void;
36
+ addEventListeners(): void;
37
+ }
38
+ export {};