dce-expresskit 4.0.0-beta.10

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 (95) hide show
  1. package/.eslintrc.js +93 -0
  2. package/LICENSE +21 -0
  3. package/README.md +17 -0
  4. package/genEncodedSecret.ts +107 -0
  5. package/genSalt.ts +15 -0
  6. package/lib/constants/LOG_REVIEW_ROUTE_PATH_PREFIX.d.ts +6 -0
  7. package/lib/constants/LOG_REVIEW_ROUTE_PATH_PREFIX.js +13 -0
  8. package/lib/constants/LOG_REVIEW_ROUTE_PATH_PREFIX.js.map +1 -0
  9. package/lib/constants/LOG_REVIEW_STATUS_ROUTE.d.ts +7 -0
  10. package/lib/constants/LOG_REVIEW_STATUS_ROUTE.js +14 -0
  11. package/lib/constants/LOG_REVIEW_STATUS_ROUTE.js.map +1 -0
  12. package/lib/constants/LOG_ROUTE_PATH.d.ts +6 -0
  13. package/lib/constants/LOG_ROUTE_PATH.js +13 -0
  14. package/lib/constants/LOG_ROUTE_PATH.js.map +1 -0
  15. package/lib/constants/ROUTE_PATH_PREFIX.d.ts +6 -0
  16. package/lib/constants/ROUTE_PATH_PREFIX.js +9 -0
  17. package/lib/constants/ROUTE_PATH_PREFIX.js.map +1 -0
  18. package/lib/errors/ErrorWithCode.d.ts +9 -0
  19. package/lib/errors/ErrorWithCode.js +33 -0
  20. package/lib/errors/ErrorWithCode.js.map +1 -0
  21. package/lib/helpers/addDBEditorEndpoints/generateEndpointPath.d.ts +9 -0
  22. package/lib/helpers/addDBEditorEndpoints/generateEndpointPath.js +17 -0
  23. package/lib/helpers/addDBEditorEndpoints/generateEndpointPath.js.map +1 -0
  24. package/lib/helpers/addDBEditorEndpoints/index.d.ts +41 -0
  25. package/lib/helpers/addDBEditorEndpoints/index.js +134 -0
  26. package/lib/helpers/addDBEditorEndpoints/index.js.map +1 -0
  27. package/lib/helpers/dataSigner.d.ts +40 -0
  28. package/lib/helpers/dataSigner.js +236 -0
  29. package/lib/helpers/dataSigner.js.map +1 -0
  30. package/lib/helpers/genRouteHandler.d.ts +75 -0
  31. package/lib/helpers/genRouteHandler.js +661 -0
  32. package/lib/helpers/genRouteHandler.js.map +1 -0
  33. package/lib/helpers/handleError.d.ts +18 -0
  34. package/lib/helpers/handleError.js +51 -0
  35. package/lib/helpers/handleError.js.map +1 -0
  36. package/lib/helpers/handleSuccess.d.ts +8 -0
  37. package/lib/helpers/handleSuccess.js +20 -0
  38. package/lib/helpers/handleSuccess.js.map +1 -0
  39. package/lib/helpers/initCrossServerCredentialCollection.d.ts +11 -0
  40. package/lib/helpers/initCrossServerCredentialCollection.js +15 -0
  41. package/lib/helpers/initCrossServerCredentialCollection.js.map +1 -0
  42. package/lib/helpers/initLogCollection.d.ts +11 -0
  43. package/lib/helpers/initLogCollection.js +26 -0
  44. package/lib/helpers/initLogCollection.js.map +1 -0
  45. package/lib/helpers/initServer.d.ts +45 -0
  46. package/lib/helpers/initServer.js +293 -0
  47. package/lib/helpers/initServer.js.map +1 -0
  48. package/lib/helpers/parseUserAgent.d.ts +17 -0
  49. package/lib/helpers/parseUserAgent.js +108 -0
  50. package/lib/helpers/parseUserAgent.js.map +1 -0
  51. package/lib/helpers/visitEndpointOnAnotherServer/index.d.ts +18 -0
  52. package/lib/helpers/visitEndpointOnAnotherServer/index.js +156 -0
  53. package/lib/helpers/visitEndpointOnAnotherServer/index.js.map +1 -0
  54. package/lib/helpers/visitEndpointOnAnotherServer/sendServerToServerRequest.d.ts +23 -0
  55. package/lib/helpers/visitEndpointOnAnotherServer/sendServerToServerRequest.js +168 -0
  56. package/lib/helpers/visitEndpointOnAnotherServer/sendServerToServerRequest.js.map +1 -0
  57. package/lib/html/genErrorPage.d.ts +19 -0
  58. package/lib/html/genErrorPage.js +27 -0
  59. package/lib/html/genErrorPage.js.map +1 -0
  60. package/lib/html/genInfoPage.d.ts +13 -0
  61. package/lib/html/genInfoPage.js +16 -0
  62. package/lib/html/genInfoPage.js.map +1 -0
  63. package/lib/index.d.ts +11 -0
  64. package/lib/index.js +68 -0
  65. package/lib/index.js.map +1 -0
  66. package/lib/types/CrossServerCredential.d.ts +11 -0
  67. package/lib/types/CrossServerCredential.js +3 -0
  68. package/lib/types/CrossServerCredential.js.map +1 -0
  69. package/lib/types/ExpressKitErrorCode.d.ts +31 -0
  70. package/lib/types/ExpressKitErrorCode.js +38 -0
  71. package/lib/types/ExpressKitErrorCode.js.map +1 -0
  72. package/package.json +53 -0
  73. package/src/constants/LOG_REVIEW_ROUTE_PATH_PREFIX.ts +9 -0
  74. package/src/constants/LOG_REVIEW_STATUS_ROUTE.ts +10 -0
  75. package/src/constants/LOG_ROUTE_PATH.ts +9 -0
  76. package/src/constants/ROUTE_PATH_PREFIX.ts +7 -0
  77. package/src/errors/ErrorWithCode.tsx +15 -0
  78. package/src/helpers/addDBEditorEndpoints/generateEndpointPath.ts +16 -0
  79. package/src/helpers/addDBEditorEndpoints/index.ts +130 -0
  80. package/src/helpers/dataSigner.ts +306 -0
  81. package/src/helpers/genRouteHandler.ts +914 -0
  82. package/src/helpers/handleError.ts +66 -0
  83. package/src/helpers/handleSuccess.ts +18 -0
  84. package/src/helpers/initCrossServerCredentialCollection.ts +19 -0
  85. package/src/helpers/initLogCollection.ts +31 -0
  86. package/src/helpers/initServer.ts +284 -0
  87. package/src/helpers/parseUserAgent.ts +108 -0
  88. package/src/helpers/visitEndpointOnAnotherServer/index.ts +157 -0
  89. package/src/helpers/visitEndpointOnAnotherServer/sendServerToServerRequest.ts +164 -0
  90. package/src/html/genErrorPage.ts +144 -0
  91. package/src/html/genInfoPage.ts +101 -0
  92. package/src/index.ts +125 -0
  93. package/src/types/CrossServerCredential.ts +16 -0
  94. package/src/types/ExpressKitErrorCode.ts +37 -0
  95. package/tsconfig.json +19 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genRouteHandler.js","sourceRoot":"","sources":["../../src/helpers/genRouteHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Handle an error and respond to the client
3
+ * @author Gabe Abrams
4
+ * @param res express response
5
+ * @param error error info
6
+ * @param opts.err the error to send to the client
7
+ * or the error message
8
+ * @param [opts.code] an error code (only used if err.code is not
9
+ * included)
10
+ * @param [opts.status=500] the https status code to use
11
+ * defined)
12
+ */
13
+ declare const handleError: (res: any, error: ({
14
+ message: any;
15
+ code?: string;
16
+ status?: number;
17
+ } | Error | string | any)) => undefined;
18
+ export default handleError;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // Import shared types
4
+ var dce_reactkit_1 = require("dce-reactkit");
5
+ /**
6
+ * Handle an error and respond to the client
7
+ * @author Gabe Abrams
8
+ * @param res express response
9
+ * @param error error info
10
+ * @param opts.err the error to send to the client
11
+ * or the error message
12
+ * @param [opts.code] an error code (only used if err.code is not
13
+ * included)
14
+ * @param [opts.status=500] the https status code to use
15
+ * defined)
16
+ */
17
+ var handleError = function (res, error) {
18
+ // Get the error message
19
+ var message;
20
+ if (error && error.message) {
21
+ message = (error.message || 'An unknown error occurred.');
22
+ }
23
+ else if (typeof error === 'string') {
24
+ message = (error.trim().length > 0
25
+ ? error
26
+ : 'An unknown error occurred.');
27
+ }
28
+ else {
29
+ message = 'An unknown error occurred.';
30
+ }
31
+ // Get the error code
32
+ var code = (error.code || dce_reactkit_1.ReactKitErrorCode.NoCode);
33
+ // Get the status code
34
+ var status = (error.status || 500);
35
+ // Respond to user
36
+ res
37
+ // Set the http status code
38
+ .status(status)
39
+ // Send a JSON response
40
+ .json({
41
+ // Error message
42
+ message: message,
43
+ // Error code
44
+ code: code,
45
+ // Success = false flag so client can detect server-side errors
46
+ success: false,
47
+ });
48
+ return undefined;
49
+ };
50
+ exports.default = handleError;
51
+ //# sourceMappingURL=handleError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleError.js","sourceRoot":"","sources":["../../src/helpers/handleError.ts"],"names":[],"mappings":";;AAAA,sBAAsB;AACtB,6CAAiD;AAGjD;;;;;;;;;;;GAWG;AACH,IAAM,WAAW,GAAG,UAClB,GAAQ,EACR,KASC;IAED,wBAAwB;IACxB,IAAI,OAAO,CAAC;IACZ,IAAI,KAAK,IAAK,KAAa,CAAC,OAAO,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,4BAA4B,CAAC,CAAC;IAC5D,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,GAAG,CACR,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,4BAA4B,CACjC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,4BAA4B,CAAC;IACzC,CAAC;IAED,qBAAqB;IACrB,IAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,gCAAiB,CAAC,MAAM,CAAC,CAAC;IAEtD,sBAAsB;IACtB,IAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;IAErC,kBAAkB;IAClB,GAAG;QACD,2BAA2B;SAC1B,MAAM,CAAC,MAAM,CAAC;QACf,uBAAuB;SACtB,IAAI,CAAC;QACJ,gBAAgB;QAChB,OAAO,SAAA;QACP,aAAa;QACb,IAAI,MAAA;QACJ,+DAA+D;QAC/D,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IACL,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Send successful API response
3
+ * @author Gabe Abrams
4
+ * @param res express response
5
+ * @param body the body of the response to send to the client
6
+ */
7
+ declare const handleSuccess: (res: any, body: any) => undefined;
8
+ export default handleSuccess;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Send successful API response
5
+ * @author Gabe Abrams
6
+ * @param res express response
7
+ * @param body the body of the response to send to the client
8
+ */
9
+ var handleSuccess = function (res, body) {
10
+ // Send a http 200 json response
11
+ res.json({
12
+ // Include the body as a parameter
13
+ body: body,
14
+ // Success = true flag so client can detect successful responses
15
+ success: true,
16
+ });
17
+ return undefined;
18
+ };
19
+ exports.default = handleSuccess;
20
+ //# sourceMappingURL=handleSuccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleSuccess.js","sourceRoot":"","sources":["../../src/helpers/handleSuccess.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,IAAM,aAAa,GAAG,UAAC,GAAQ,EAAE,IAAS;IACxC,gCAAgC;IAChC,GAAG,CAAC,IAAI,CAAC;QACP,kCAAkC;QAClC,IAAI,MAAA;QACJ,gEAAgE;QAChE,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Collection as MangoCollection } from 'dce-mango';
2
+ /**
3
+ * Initialize a cross-server credential collection given the dce-mango Collection class
4
+ * @author Gabe Abrams
5
+ * @param Collection the Collection class from dce-mango
6
+ * @returns initialized logCollection
7
+ */
8
+ declare const initCrossServerCredentialCollection: (Collection: typeof MangoCollection) => MangoCollection<{
9
+ [k: string]: any;
10
+ }>;
11
+ export default initCrossServerCredentialCollection;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Initialize a cross-server credential collection given the dce-mango Collection class
5
+ * @author Gabe Abrams
6
+ * @param Collection the Collection class from dce-mango
7
+ * @returns initialized logCollection
8
+ */
9
+ var initCrossServerCredentialCollection = function (Collection) {
10
+ return new Collection('CrossServerCredential', {
11
+ uniqueIndexKey: 'key',
12
+ });
13
+ };
14
+ exports.default = initCrossServerCredentialCollection;
15
+ //# sourceMappingURL=initCrossServerCredentialCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initCrossServerCredentialCollection.js","sourceRoot":"","sources":["../../src/helpers/initCrossServerCredentialCollection.ts"],"names":[],"mappings":";;AAGA;;;;;GAKG;AACH,IAAM,mCAAmC,GAAG,UAAC,UAAkC;IAC7E,OAAO,IAAI,UAAU,CACnB,uBAAuB,EACvB;QACE,cAAc,EAAE,KAAK;KACtB,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,mCAAmC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Collection as MangoCollection } from 'dce-mango';
2
+ /**
3
+ * Initialize a log collection given the dce-mango Collection class
4
+ * @author Gabe Abrams
5
+ * @param Collection the Collection class from dce-mango
6
+ * @returns initialized logCollection
7
+ */
8
+ declare const initLogCollection: (Collection: typeof MangoCollection) => MangoCollection<{
9
+ [k: string]: any;
10
+ }>;
11
+ export default initLogCollection;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Initialize a log collection given the dce-mango Collection class
5
+ * @author Gabe Abrams
6
+ * @param Collection the Collection class from dce-mango
7
+ * @returns initialized logCollection
8
+ */
9
+ var initLogCollection = function (Collection) {
10
+ return new Collection('Log', {
11
+ uniqueIndexKey: 'id',
12
+ indexKeys: [
13
+ 'courseId',
14
+ 'context',
15
+ 'subcontext',
16
+ 'tags',
17
+ 'year',
18
+ 'month',
19
+ 'day',
20
+ 'hour',
21
+ 'type',
22
+ ],
23
+ });
24
+ };
25
+ exports.default = initLogCollection;
26
+ //# sourceMappingURL=initLogCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initLogCollection.js","sourceRoot":"","sources":["../../src/helpers/initLogCollection.ts"],"names":[],"mappings":";;AAIA;;;;;GAKG;AACH,IAAM,iBAAiB,GAAG,UAAC,UAAkC;IAC3D,OAAO,IAAI,UAAU,CACnB,KAAK,EACL;QACE,cAAc,EAAE,IAAI;QACpB,SAAS,EAAE;YACT,UAAU;YACV,SAAS;YACT,YAAY;YACZ,MAAM;YACN,MAAM;YACN,OAAO;YACP,KAAK;YACL,MAAM;YACN,MAAM;SACP;KACF,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import express from 'express';
2
+ import { Collection } from 'dce-mango';
3
+ import { Log } from 'dce-reactkit';
4
+ import CrossServerCredential from '../types/CrossServerCredential';
5
+ /**
6
+ * Get log collection
7
+ * @author Gabe Abrams
8
+ * @returns log collection if one was included during launch or null if we don't
9
+ * have a log collection (yet)
10
+ */
11
+ export declare const internalGetLogCollection: () => Collection<Log>;
12
+ /**
13
+ * Get cross-server credential collection
14
+ * @author Gabe Abrams
15
+ * @return cross-server credential collection if one was included during launch or null
16
+ * if we don't have a cross-server credential collection (yet)
17
+ */
18
+ export declare const internalGetCrossServerCredentialCollection: () => Collection<CrossServerCredential>;
19
+ /**
20
+ * Prepare dce-reactkit to run on the server
21
+ * @author Gabe Abrams
22
+ * @param opts object containing all arguments
23
+ * @param opts.app express app from inside of the postprocessor function that
24
+ * we will add routes to
25
+ * @param opts.getLaunchInfo CACCL LTI's get launch info function
26
+ * @param [opts.logCollection] mongo collection from dce-mango to use for
27
+ * storing logs. If none is included, logs are written to the console
28
+ * @param [opts.logReviewAdmins=all] info on which admins can review
29
+ * logs from the client. If not included, all Canvas admins are allowed to
30
+ * review logs. If null, no Canvas admins are allowed to review logs.
31
+ * If an array of Canvas userIds (numbers), only Canvas admins with those
32
+ * userIds are allowed to review logs. If a dce-mango collection, only
33
+ * Canvas admins with entries in that collection ({ userId, ...}) are allowed
34
+ * to review logs
35
+ * @param [opts.crossServerCredentialCollection] mongo collection from dce-mango to use for
36
+ * storing cross-server credentials. If none is included, cross-server credentials
37
+ * are not supported
38
+ */
39
+ declare const initServer: (opts: {
40
+ app: express.Application;
41
+ logReviewAdmins?: (number[] | Collection<any>);
42
+ logCollection?: Collection<Log>;
43
+ crossServerCredentialCollection?: Collection<CrossServerCredential>;
44
+ }) => void;
45
+ export default initServer;
@@ -0,0 +1,293 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.internalGetCrossServerCredentialCollection = exports.internalGetLogCollection = void 0;
54
+ // Import dce-reactkit
55
+ var dce_reactkit_1 = require("dce-reactkit");
56
+ // Import shared helpers
57
+ var genRouteHandler_1 = __importDefault(require("./genRouteHandler"));
58
+ // Import shared types
59
+ var ExpressKitErrorCode_1 = __importDefault(require("../types/ExpressKitErrorCode"));
60
+ // Stored copy of dce-mango log collection
61
+ var _logCollection;
62
+ // Stored copy of dce-mango cross-server credential collection
63
+ var _crossServerCredentialCollection;
64
+ /*------------------------------------------------------------------------*/
65
+ /* Helpers */
66
+ /*------------------------------------------------------------------------*/
67
+ /**
68
+ * Get log collection
69
+ * @author Gabe Abrams
70
+ * @returns log collection if one was included during launch or null if we don't
71
+ * have a log collection (yet)
72
+ */
73
+ var internalGetLogCollection = function () {
74
+ return _logCollection !== null && _logCollection !== void 0 ? _logCollection : null;
75
+ };
76
+ exports.internalGetLogCollection = internalGetLogCollection;
77
+ /**
78
+ * Get cross-server credential collection
79
+ * @author Gabe Abrams
80
+ * @return cross-server credential collection if one was included during launch or null
81
+ * if we don't have a cross-server credential collection (yet)
82
+ */
83
+ var internalGetCrossServerCredentialCollection = function () {
84
+ return _crossServerCredentialCollection !== null && _crossServerCredentialCollection !== void 0 ? _crossServerCredentialCollection : null;
85
+ };
86
+ exports.internalGetCrossServerCredentialCollection = internalGetCrossServerCredentialCollection;
87
+ /*------------------------------------------------------------------------*/
88
+ /* Main */
89
+ /*------------------------------------------------------------------------*/
90
+ /**
91
+ * Prepare dce-reactkit to run on the server
92
+ * @author Gabe Abrams
93
+ * @param opts object containing all arguments
94
+ * @param opts.app express app from inside of the postprocessor function that
95
+ * we will add routes to
96
+ * @param opts.getLaunchInfo CACCL LTI's get launch info function
97
+ * @param [opts.logCollection] mongo collection from dce-mango to use for
98
+ * storing logs. If none is included, logs are written to the console
99
+ * @param [opts.logReviewAdmins=all] info on which admins can review
100
+ * logs from the client. If not included, all Canvas admins are allowed to
101
+ * review logs. If null, no Canvas admins are allowed to review logs.
102
+ * If an array of Canvas userIds (numbers), only Canvas admins with those
103
+ * userIds are allowed to review logs. If a dce-mango collection, only
104
+ * Canvas admins with entries in that collection ({ userId, ...}) are allowed
105
+ * to review logs
106
+ * @param [opts.crossServerCredentialCollection] mongo collection from dce-mango to use for
107
+ * storing cross-server credentials. If none is included, cross-server credentials
108
+ * are not supported
109
+ */
110
+ var initServer = function (opts) {
111
+ _logCollection = opts.logCollection;
112
+ _crossServerCredentialCollection = opts.crossServerCredentialCollection;
113
+ /*----------------------------------------*/
114
+ /* Logging */
115
+ /*----------------------------------------*/
116
+ /**
117
+ * Log an event
118
+ * @author Gabe Abrams
119
+ * @param {string} context Context of the event (each app determines how to
120
+ * organize its contexts)
121
+ * @param {string} subcontext Subcontext of the event (each app determines
122
+ * how to organize its subcontexts)
123
+ * @param {string} tags stringified list of tags that apply to this action
124
+ * (each app determines tag usage)
125
+ * @param {string} metadata stringified object containing optional custom metadata
126
+ * @param {string} level log level
127
+ * @param {string} [errorMessage] error message if type is an error
128
+ * @param {string} [errorCode] error code if type is an error
129
+ * @param {string} [errorStack] error stack if type is an error
130
+ * @param {string} [target] Target of the action (each app determines the list
131
+ * of targets) These are usually buttons, panels, elements, etc.
132
+ * @param {LogAction} [action] the type of action performed on the target
133
+ * @returns {Log}
134
+ */
135
+ opts.app.post(dce_reactkit_1.LOG_ROUTE_PATH, (0, genRouteHandler_1.default)({
136
+ paramTypes: {
137
+ context: dce_reactkit_1.ParamType.String,
138
+ subcontext: dce_reactkit_1.ParamType.String,
139
+ tags: dce_reactkit_1.ParamType.JSON,
140
+ level: dce_reactkit_1.ParamType.String,
141
+ metadata: dce_reactkit_1.ParamType.JSON,
142
+ errorMessage: dce_reactkit_1.ParamType.StringOptional,
143
+ errorCode: dce_reactkit_1.ParamType.StringOptional,
144
+ errorStack: dce_reactkit_1.ParamType.StringOptional,
145
+ target: dce_reactkit_1.ParamType.StringOptional,
146
+ action: dce_reactkit_1.ParamType.StringOptional,
147
+ },
148
+ handler: function (_a) {
149
+ var params = _a.params, logServerEvent = _a.logServerEvent;
150
+ // Create log info
151
+ var logInfo = ((params.errorMessage || params.errorCode || params.errorStack)
152
+ // Error
153
+ ? {
154
+ context: params.context,
155
+ subcontext: params.subcontext,
156
+ tags: params.tags,
157
+ level: params.level,
158
+ metadata: params.metadata,
159
+ error: {
160
+ message: params.errorMessage,
161
+ code: params.errorCode,
162
+ stack: params.errorStack,
163
+ },
164
+ }
165
+ // Action
166
+ : {
167
+ context: params.context,
168
+ subcontext: params.subcontext,
169
+ tags: params.tags,
170
+ level: params.level,
171
+ metadata: params.metadata,
172
+ target: params.target,
173
+ action: params.action,
174
+ });
175
+ // Add hidden boolean to change source to "client"
176
+ var logInfoForcedFromClient = __assign(__assign({}, logInfo), { overrideAsClientEvent: true });
177
+ // Write the log
178
+ var log = logServerEvent(logInfoForcedFromClient);
179
+ // Return
180
+ return log;
181
+ },
182
+ }));
183
+ /*----------------------------------------*/
184
+ /* Log Reviewer */
185
+ /*----------------------------------------*/
186
+ /**
187
+ * Check if a given user is allowed to review logs
188
+ * @author Gabe Abrams
189
+ * @param userId the id of the user
190
+ * @param isAdmin if true, the user is an admin
191
+ * @returns true if the user can review logs
192
+ */
193
+ var canReviewLogs = function (userId, isAdmin) { return __awaiter(void 0, void 0, void 0, function () {
194
+ var matches, err_1;
195
+ return __generator(this, function (_a) {
196
+ switch (_a.label) {
197
+ case 0:
198
+ // Immediately deny access if user is not an admin
199
+ if (!isAdmin) {
200
+ return [2 /*return*/, false];
201
+ }
202
+ // If all admins are allowed, we're done
203
+ if (!opts.logReviewAdmins) {
204
+ return [2 /*return*/, true];
205
+ }
206
+ _a.label = 1;
207
+ case 1:
208
+ _a.trys.push([1, 3, , 4]);
209
+ // Array of userIds
210
+ if (Array.isArray(opts.logReviewAdmins)) {
211
+ return [2 /*return*/, opts.logReviewAdmins.some(function (allowedId) {
212
+ return (userId === allowedId);
213
+ })];
214
+ }
215
+ return [4 /*yield*/, opts.logReviewAdmins.find({ userId: userId })];
216
+ case 2:
217
+ matches = _a.sent();
218
+ // Make sure at least one entry matches
219
+ return [2 /*return*/, matches.length > 0];
220
+ case 3:
221
+ err_1 = _a.sent();
222
+ // If an error occurred, simply return false
223
+ return [2 /*return*/, false];
224
+ case 4: return [2 /*return*/];
225
+ }
226
+ });
227
+ }); };
228
+ /**
229
+ * Check if the current user has access to logs
230
+ * @author Gabe Abrams
231
+ * @returns {boolean} true if user has access
232
+ */
233
+ opts.app.get(dce_reactkit_1.LOG_REVIEW_STATUS_ROUTE, (0, genRouteHandler_1.default)({
234
+ handler: function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
235
+ var userId, isAdmin, canReview;
236
+ var params = _b.params;
237
+ return __generator(this, function (_c) {
238
+ switch (_c.label) {
239
+ case 0:
240
+ userId = params.userId, isAdmin = params.isAdmin;
241
+ return [4 /*yield*/, canReviewLogs(userId, isAdmin)];
242
+ case 1:
243
+ canReview = _c.sent();
244
+ return [2 /*return*/, canReview];
245
+ }
246
+ });
247
+ }); },
248
+ }));
249
+ /**
250
+ * Get all logs for a certain month
251
+ * @author Gabe Abrams
252
+ * @param {number} year the year to query (e.g. 2022)
253
+ * @param {number} month the month to query (e.g. 1 = January)
254
+ * @returns {Log[]} list of logs from the given month
255
+ */
256
+ opts.app.get("".concat(dce_reactkit_1.LOG_REVIEW_ROUTE_PATH_PREFIX, "/years/:year/months/:month"), (0, genRouteHandler_1.default)({
257
+ paramTypes: {
258
+ year: dce_reactkit_1.ParamType.Int,
259
+ month: dce_reactkit_1.ParamType.Int,
260
+ pageNumber: dce_reactkit_1.ParamType.Int,
261
+ },
262
+ handler: function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
263
+ var year, month, pageNumber, userId, isAdmin, canReview, response;
264
+ var params = _b.params;
265
+ return __generator(this, function (_c) {
266
+ switch (_c.label) {
267
+ case 0:
268
+ year = params.year, month = params.month, pageNumber = params.pageNumber, userId = params.userId, isAdmin = params.isAdmin;
269
+ return [4 /*yield*/, canReviewLogs(userId, isAdmin)];
270
+ case 1:
271
+ canReview = _c.sent();
272
+ if (!canReview) {
273
+ throw new dce_reactkit_1.ErrorWithCode('You cannot access this resource because you do not have the appropriate permissions.', ExpressKitErrorCode_1.default.NotAllowedToReviewLogs);
274
+ }
275
+ return [4 /*yield*/, _logCollection.findPaged({
276
+ query: {
277
+ year: year,
278
+ month: month,
279
+ },
280
+ perPage: 1000,
281
+ pageNumber: pageNumber,
282
+ })];
283
+ case 2:
284
+ response = _c.sent();
285
+ // Return response
286
+ return [2 /*return*/, response];
287
+ }
288
+ });
289
+ }); },
290
+ }));
291
+ };
292
+ exports.default = initServer;
293
+ //# sourceMappingURL=initServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initServer.js","sourceRoot":"","sources":["../../src/helpers/initServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Perform a rudimentary parsing of the user's browser agent string
3
+ * @author Gabe Abrams
4
+ * @param userAgent the user's browser agent
5
+ * @returns user info
6
+ */
7
+ declare const parseUserAgent: (userAgent: string) => {
8
+ browser: {
9
+ name: string;
10
+ version: string;
11
+ };
12
+ device: {
13
+ isMobile: boolean;
14
+ os: string;
15
+ };
16
+ };
17
+ export default parseUserAgent;