dce-crosstypes 1.0.0

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 (82) hide show
  1. package/.eslintrc.js +93 -0
  2. package/LICENSE +21 -0
  3. package/lib/Compliance/ComplianceBundle.d.ts +17 -0
  4. package/lib/Compliance/ComplianceBundle.js +3 -0
  5. package/lib/Compliance/ComplianceBundle.js.map +1 -0
  6. package/lib/Compliance/index.d.ts +2 -0
  7. package/lib/Compliance/index.js +3 -0
  8. package/lib/Compliance/index.js.map +1 -0
  9. package/lib/Engagement/ActivityEngagementDataType.d.ts +10 -0
  10. package/lib/Engagement/ActivityEngagementDataType.js +14 -0
  11. package/lib/Engagement/ActivityEngagementDataType.js.map +1 -0
  12. package/lib/Engagement/ActivityId.d.ts +10 -0
  13. package/lib/Engagement/ActivityId.js +14 -0
  14. package/lib/Engagement/ActivityId.js.map +1 -0
  15. package/lib/Engagement/AttendanceMethod.d.ts +12 -0
  16. package/lib/Engagement/AttendanceMethod.js +21 -0
  17. package/lib/Engagement/AttendanceMethod.js.map +1 -0
  18. package/lib/Engagement/CodeSnippet.d.ts +10 -0
  19. package/lib/Engagement/CodeSnippet.js +3 -0
  20. package/lib/Engagement/CodeSnippet.js.map +1 -0
  21. package/lib/Engagement/Drawing.d.ts +9 -0
  22. package/lib/Engagement/Drawing.js +3 -0
  23. package/lib/Engagement/Drawing.js.map +1 -0
  24. package/lib/Engagement/EngagementBundle/ActivityEngagementData.d.ts +17 -0
  25. package/lib/Engagement/EngagementBundle/ActivityEngagementData.js +3 -0
  26. package/lib/Engagement/EngagementBundle/ActivityEngagementData.js.map +1 -0
  27. package/lib/Engagement/EngagementBundle/EngagementPlatform.d.ts +9 -0
  28. package/lib/Engagement/EngagementBundle/EngagementPlatform.js +13 -0
  29. package/lib/Engagement/EngagementBundle/EngagementPlatform.js.map +1 -0
  30. package/lib/Engagement/EngagementBundle/EngagementSource.d.ts +11 -0
  31. package/lib/Engagement/EngagementBundle/EngagementSource.js +19 -0
  32. package/lib/Engagement/EngagementBundle/EngagementSource.js.map +1 -0
  33. package/lib/Engagement/EngagementBundle/UserEngagement.d.ts +29 -0
  34. package/lib/Engagement/EngagementBundle/UserEngagement.js +3 -0
  35. package/lib/Engagement/EngagementBundle/UserEngagement.js.map +1 -0
  36. package/lib/Engagement/EngagementBundle/index.d.ts +14 -0
  37. package/lib/Engagement/EngagementBundle/index.js +3 -0
  38. package/lib/Engagement/EngagementBundle/index.js.map +1 -0
  39. package/lib/Engagement/InferredEngagementSchedule/AverageUserEngagement.d.ts +17 -0
  40. package/lib/Engagement/InferredEngagementSchedule/AverageUserEngagement.js +7 -0
  41. package/lib/Engagement/InferredEngagementSchedule/AverageUserEngagement.js.map +1 -0
  42. package/lib/Engagement/InferredEngagementSchedule/InferredWeekSchedule.d.ts +18 -0
  43. package/lib/Engagement/InferredEngagementSchedule/InferredWeekSchedule.js +7 -0
  44. package/lib/Engagement/InferredEngagementSchedule/InferredWeekSchedule.js.map +1 -0
  45. package/lib/Engagement/InferredEngagementSchedule/index.d.ts +14 -0
  46. package/lib/Engagement/InferredEngagementSchedule/index.js +3 -0
  47. package/lib/Engagement/InferredEngagementSchedule/index.js.map +1 -0
  48. package/lib/Engagement/ProgrammingLanguage.d.ts +15 -0
  49. package/lib/Engagement/ProgrammingLanguage.js +27 -0
  50. package/lib/Engagement/ProgrammingLanguage.js.map +1 -0
  51. package/lib/Engagement/ResponsePack.d.ts +12 -0
  52. package/lib/Engagement/ResponsePack.js +3 -0
  53. package/lib/Engagement/ResponsePack.js.map +1 -0
  54. package/lib/Engagement/ShareoutPostPollResult.d.ts +17 -0
  55. package/lib/Engagement/ShareoutPostPollResult.js +3 -0
  56. package/lib/Engagement/ShareoutPostPollResult.js.map +1 -0
  57. package/lib/Engagement/index.d.ts +14 -0
  58. package/lib/Engagement/index.js +19 -0
  59. package/lib/Engagement/index.js.map +1 -0
  60. package/lib/index.d.ts +18 -0
  61. package/lib/index.js +20 -0
  62. package/lib/index.js.map +1 -0
  63. package/package.json +35 -0
  64. package/src/Compliance/ComplianceBundle.ts +28 -0
  65. package/src/Engagement/ActivityEngagementDataType.ts +11 -0
  66. package/src/Engagement/ActivityId.ts +11 -0
  67. package/src/Engagement/AttendanceMethod.ts +18 -0
  68. package/src/Engagement/CodeSnippet.ts +15 -0
  69. package/src/Engagement/Drawing.ts +12 -0
  70. package/src/Engagement/EngagementBundle/ActivityEngagementData.ts +26 -0
  71. package/src/Engagement/EngagementBundle/EngagementPlatform.ts +10 -0
  72. package/src/Engagement/EngagementBundle/EngagementSource.ts +16 -0
  73. package/src/Engagement/EngagementBundle/UserEngagement.ts +67 -0
  74. package/src/Engagement/EngagementBundle/index.ts +27 -0
  75. package/src/Engagement/InferredEngagementSchedule/AverageUserEngagement.ts +22 -0
  76. package/src/Engagement/InferredEngagementSchedule/InferredWeekSchedule.ts +22 -0
  77. package/src/Engagement/InferredEngagementSchedule/index.ts +25 -0
  78. package/src/Engagement/ProgrammingLanguage.ts +24 -0
  79. package/src/Engagement/ResponsePack.ts +18 -0
  80. package/src/Engagement/ShareoutPostPollResult.ts +32 -0
  81. package/src/index.ts +39 -0
  82. package/tsconfig.json +20 -0
package/.eslintrc.js ADDED
@@ -0,0 +1,93 @@
1
+ const config = {
2
+ extends: [
3
+ 'airbnb',
4
+ 'airbnb/hooks',
5
+ ],
6
+ overrides: [
7
+ {
8
+ files: [
9
+ '*.ts',
10
+ '*.tsx',
11
+ ],
12
+ extends: [
13
+ 'airbnb-typescript',
14
+ ],
15
+ parserOptions: {
16
+ project: './tsconfig.json',
17
+ tsconfigRootDir: __dirname,
18
+ sourceType: 'module',
19
+ },
20
+ rules: {
21
+ '@typescript-eslint/lines-between-class-members': 'off',
22
+ '@typescript-eslint/no-unused-expressions': 'off',
23
+ },
24
+ },
25
+ ],
26
+ rules: {
27
+ 'arrow-body-style': [
28
+ 'warn',
29
+ 'always',
30
+ ],
31
+ 'react/prop-types': 'off',
32
+ 'react/function-component-definition': [
33
+ 2,
34
+ {
35
+ namedComponents: 'arrow-function',
36
+ },
37
+ ],
38
+ 'no-spaced-func': 'off',
39
+ 'react-hooks/exhaustive-deps': 'off',
40
+ 'lines-between-class-members': 'off',
41
+ 'no-case-declarations': 'off',
42
+ 'react/require-default-props': 'off',
43
+ 'react/react-in-jsx-scope': 'off',
44
+ 'arrow-parens': [
45
+ 'warn',
46
+ 'always',
47
+ ],
48
+ 'comma-dangle': [
49
+ 'error',
50
+ {
51
+ arrays: 'always-multiline',
52
+ objects: 'always-multiline',
53
+ imports: 'always-multiline',
54
+ exports: 'always-multiline',
55
+ functions: 'always-multiline',
56
+ },
57
+ ],
58
+ 'consistent-return': 'off',
59
+ 'id-length': 'off',
60
+ 'max-len': [
61
+ 'error',
62
+ {
63
+ code: 125,
64
+ ignoreStrings: true,
65
+ ignoreTemplateLiterals: true,
66
+ ignoreUrls: true,
67
+ },
68
+ ],
69
+ 'newline-per-chained-call': [
70
+ 'error',
71
+ {
72
+ ignoreChainWithDepth: 2,
73
+ },
74
+ ],
75
+ 'no-plusplus': [
76
+ 'warn',
77
+ {
78
+ allowForLoopAfterthoughts: true,
79
+ },
80
+ ],
81
+ 'prefer-template': 1,
82
+ radix: 'error',
83
+ 'no-await-in-loop': 'off',
84
+ 'max-params': [
85
+ 'warn',
86
+ {
87
+ max: 3,
88
+ },
89
+ ],
90
+ },
91
+ };
92
+
93
+ module.exports = config;
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Harvard Edtech
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,17 @@
1
+ /**
2
+ * A compliance bundle that contains compliance records for every student in
3
+ * a course, organized by the start of each week (Monday).
4
+ *
5
+ * This bundle is used for federal compliance tracking to ensure that students
6
+ * are in compliance with federal requirements for financial aid.
7
+ * @author Allison Zhang
8
+ */
9
+ type ComplianceBundle = {
10
+ courseId: number;
11
+ complianceByWeek: {
12
+ [weekStart: string]: {
13
+ userIds: number[];
14
+ };
15
+ };
16
+ };
17
+ export default ComplianceBundle;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ComplianceBundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComplianceBundle.js","sourceRoot":"","sources":["../../src/Compliance/ComplianceBundle.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import ComplianceBundle from './ComplianceBundle';
2
+ export { ComplianceBundle, };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Compliance/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Types of Engagements/Shareouts
3
+ * @author Allison Zhang
4
+ */
5
+ declare enum ActivityEngagementDataType {
6
+ Reply = "Reply",
7
+ ShareoutPost = "ShareoutPost",
8
+ Vote = "Vote"
9
+ }
10
+ export default ActivityEngagementDataType;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Types of Engagements/Shareouts
5
+ * @author Allison Zhang
6
+ */
7
+ var ActivityEngagementDataType;
8
+ (function (ActivityEngagementDataType) {
9
+ ActivityEngagementDataType["Reply"] = "Reply";
10
+ ActivityEngagementDataType["ShareoutPost"] = "ShareoutPost";
11
+ ActivityEngagementDataType["Vote"] = "Vote";
12
+ })(ActivityEngagementDataType || (ActivityEngagementDataType = {}));
13
+ exports.default = ActivityEngagementDataType;
14
+ //# sourceMappingURL=ActivityEngagementDataType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityEngagementDataType.js","sourceRoot":"","sources":["../../src/Engagement/ActivityEngagementDataType.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,IAAK,0BAIJ;AAJD,WAAK,0BAA0B;IAC7B,6CAAe,CAAA;IACf,2DAA6B,CAAA;IAC7B,2CAAa,CAAA;AACf,CAAC,EAJI,0BAA0B,KAA1B,0BAA0B,QAI9B;AAED,kBAAe,0BAA0B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Available activity ids
3
+ * @author Gabe Abrams
4
+ */
5
+ declare enum ActivityId {
6
+ PairUp = "PairUp",
7
+ Respond = "Respond",
8
+ Poll = "Poll"
9
+ }
10
+ export default ActivityId;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Available activity ids
5
+ * @author Gabe Abrams
6
+ */
7
+ var ActivityId;
8
+ (function (ActivityId) {
9
+ ActivityId["PairUp"] = "PairUp";
10
+ ActivityId["Respond"] = "Respond";
11
+ ActivityId["Poll"] = "Poll";
12
+ })(ActivityId || (ActivityId = {}));
13
+ exports.default = ActivityId;
14
+ //# sourceMappingURL=ActivityId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityId.js","sourceRoot":"","sources":["../../src/Engagement/ActivityId.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,IAAK,UAIJ;AAJD,WAAK,UAAU;IACb,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;IACnB,2BAAa,CAAA;AACf,CAAC,EAJI,UAAU,KAAV,UAAU,QAId;AAED,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Enum for the attendance method
3
+ * @author Gabe Abrams
4
+ */
5
+ declare enum AttendanceMethod {
6
+ InPerson = "in-person",
7
+ Live = "live",
8
+ Async = "async",
9
+ Excused = "excused",
10
+ Absent = "absent"
11
+ }
12
+ export default AttendanceMethod;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Enum for the attendance method
5
+ * @author Gabe Abrams
6
+ */
7
+ var AttendanceMethod;
8
+ (function (AttendanceMethod) {
9
+ // Attended physically in-person
10
+ AttendanceMethod["InPerson"] = "in-person";
11
+ // Attended synchronously online (Zoom, for example)
12
+ AttendanceMethod["Live"] = "live";
13
+ // Watched a recorded version of the event after the fact
14
+ AttendanceMethod["Async"] = "async";
15
+ // Did not attend, but was excused and gets full credit
16
+ AttendanceMethod["Excused"] = "excused";
17
+ // Did not attend, was not excused
18
+ AttendanceMethod["Absent"] = "absent";
19
+ })(AttendanceMethod || (AttendanceMethod = {}));
20
+ exports.default = AttendanceMethod;
21
+ //# sourceMappingURL=AttendanceMethod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttendanceMethod.js","sourceRoot":"","sources":["../../src/Engagement/AttendanceMethod.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,IAAK,gBAWJ;AAXD,WAAK,gBAAgB;IACnB,gCAAgC;IAChC,0CAAsB,CAAA;IACtB,oDAAoD;IACpD,iCAAa,CAAA;IACb,yDAAyD;IACzD,mCAAe,CAAA;IACf,uDAAuD;IACvD,uCAAmB,CAAA;IACnB,kCAAkC;IAClC,qCAAiB,CAAA;AACnB,CAAC,EAXI,gBAAgB,KAAhB,gBAAgB,QAWpB;AAED,kBAAe,gBAAgB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import ProgrammingLanguage from './ProgrammingLanguage';
2
+ /**
3
+ * Code snippet
4
+ * @author Gabe Abrams
5
+ */
6
+ type CodeSnippet = {
7
+ code: string;
8
+ language: ProgrammingLanguage;
9
+ };
10
+ export default CodeSnippet;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CodeSnippet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeSnippet.js","sourceRoot":"","sources":["../../src/Engagement/CodeSnippet.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Drawing object
3
+ * @author Gabe Abrams
4
+ */
5
+ type Drawing = {
6
+ art: string;
7
+ description?: string;
8
+ };
9
+ export default Drawing;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Drawing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawing.js","sourceRoot":"","sources":["../../src/Engagement/Drawing.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import ResponsePack from '../ResponsePack';
2
+ import ActivityEngagementDataType from '../ActivityEngagementDataType';
3
+ import ShareoutPostPollResult from '../ShareoutPostPollResult';
4
+ /**
5
+ * Metadata for an activity engagement, per-student. It can either contain a
6
+ * response pack (for Shareout engagements) or a poll result
7
+ * (for Poll engagements).
8
+ * @author Allison Zhang
9
+ */
10
+ type ActivityEngagementData = ({
11
+ type: ActivityEngagementDataType;
12
+ responsePack?: ResponsePack;
13
+ } | {
14
+ type: ActivityEngagementDataType.Vote;
15
+ pollResult: ShareoutPostPollResult;
16
+ });
17
+ export default ActivityEngagementData;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ActivityEngagementData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityEngagementData.js","sourceRoot":"","sources":["../../../src/Engagement/EngagementBundle/ActivityEngagementData.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Platform of Engagements/Shareouts
3
+ * @author Allison Zhang
4
+ */
5
+ declare enum EngagementPlatform {
6
+ IC = "IC",
7
+ Gather = "Gather"
8
+ }
9
+ export default EngagementPlatform;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Platform of Engagements/Shareouts
5
+ * @author Allison Zhang
6
+ */
7
+ var EngagementPlatform;
8
+ (function (EngagementPlatform) {
9
+ EngagementPlatform["IC"] = "IC";
10
+ EngagementPlatform["Gather"] = "Gather";
11
+ })(EngagementPlatform || (EngagementPlatform = {}));
12
+ exports.default = EngagementPlatform;
13
+ //# sourceMappingURL=EngagementPlatform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EngagementPlatform.js","sourceRoot":"","sources":["../../../src/Engagement/EngagementBundle/EngagementPlatform.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,IAAK,kBAGJ;AAHD,WAAK,kBAAkB;IACrB,+BAAS,CAAA;IACT,uCAAiB,CAAA;AACnB,CAAC,EAHI,kBAAkB,KAAlB,kBAAkB,QAGtB;AAED,kBAAe,kBAAkB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Source of Engagements/Shareouts
3
+ * @author Allison Zhang
4
+ */
5
+ declare enum EngagementSource {
6
+ Activity = "Activity",
7
+ ZoomChatPlus = "ZoomChatPlus",
8
+ InPerson = "in-person",
9
+ Live = "live"
10
+ }
11
+ export default EngagementSource;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Source of Engagements/Shareouts
5
+ * @author Allison Zhang
6
+ */
7
+ var EngagementSource;
8
+ (function (EngagementSource) {
9
+ // Engagement from IC activities (PairUp, Respond, Poll)
10
+ EngagementSource["Activity"] = "Activity";
11
+ // Engagement from Zoom Chat+
12
+ EngagementSource["ZoomChatPlus"] = "ZoomChatPlus";
13
+ // Attended physically in-person
14
+ EngagementSource["InPerson"] = "in-person";
15
+ // Attended synchronously online (Zoom, for example)
16
+ EngagementSource["Live"] = "live";
17
+ })(EngagementSource || (EngagementSource = {}));
18
+ exports.default = EngagementSource;
19
+ //# sourceMappingURL=EngagementSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EngagementSource.js","sourceRoot":"","sources":["../../../src/Engagement/EngagementBundle/EngagementSource.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,IAAK,gBASJ;AATD,WAAK,gBAAgB;IACnB,wDAAwD;IACxD,yCAAqB,CAAA;IACrB,6BAA6B;IAC7B,iDAA6B,CAAA;IAC7B,gCAAgC;IAChC,0CAAsB,CAAA;IACtB,oDAAoD;IACpD,iCAAa,CAAA;AACf,CAAC,EATI,gBAAgB,KAAhB,gBAAgB,QASpB;AAED,kBAAe,gBAAgB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import ActivityId from '../ActivityId';
2
+ import EngagementSource from './EngagementSource';
3
+ import ActivityEngagementData from './ActivityEngagementData';
4
+ import EngagementPlatform from './EngagementPlatform';
5
+ /**
6
+ * An engagement record for a user for the Universal Attendance Component.
7
+ * Records by video.
8
+ * @author Allison Zhang
9
+ */
10
+ type UserEngagement = ({
11
+ timestamp: number;
12
+ } & (({
13
+ platform: EngagementPlatform.IC;
14
+ videoSecs?: number;
15
+ } & ({
16
+ source: EngagementSource.Activity;
17
+ activityId: ActivityId;
18
+ activityEngagementData: ActivityEngagementData;
19
+ } | {
20
+ source: EngagementSource.ZoomChatPlus;
21
+ })) | ({
22
+ platform: EngagementPlatform.Gather;
23
+ } & ({
24
+ source: EngagementSource.InPerson;
25
+ groupNum?: number;
26
+ } | {
27
+ source: EngagementSource.Live;
28
+ }))));
29
+ export default UserEngagement;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=UserEngagement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserEngagement.js","sourceRoot":"","sources":["../../../src/Engagement/EngagementBundle/UserEngagement.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import UserEngagement from './UserEngagement';
2
+ /**
3
+ * An engagement bundle that contains engagement records for Universal
4
+ * Attendance Component.
5
+ * @author Allison Zhang
6
+ */
7
+ type EngagementBundle = {
8
+ userId: number;
9
+ courseId: number;
10
+ engagementByWeek: {
11
+ [weekStart: string]: UserEngagement[];
12
+ };
13
+ };
14
+ export default EngagementBundle;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Engagement/EngagementBundle/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import ActivityId from '../ActivityId';
2
+ import EngagementSource from '../EngagementBundle/EngagementSource';
3
+ import ActivityEngagementDataType from '../ActivityEngagementDataType';
4
+ /**
5
+ * An engagement record for a user for the Universal Attendance Component.
6
+ * Records by video.
7
+ * @author Allison Zhang
8
+ */
9
+ type AverageUserEngagement = {
10
+ [EngagementSource.Activity]?: {
11
+ [activityId in ActivityId]?: {
12
+ [engagementType in ActivityEngagementDataType]?: number;
13
+ };
14
+ };
15
+ [EngagementSource.ZoomChatPlus]?: {};
16
+ };
17
+ export default AverageUserEngagement;
@@ -0,0 +1,7 @@
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
+ const EngagementSource_1 = __importDefault(require("../EngagementBundle/EngagementSource"));
7
+ //# sourceMappingURL=AverageUserEngagement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AverageUserEngagement.js","sourceRoot":"","sources":["../../../src/Engagement/InferredEngagementSchedule/AverageUserEngagement.ts"],"names":[],"mappings":";;;;;AACA,4FAAoE"}
@@ -0,0 +1,18 @@
1
+ import AttendanceMethod from '../AttendanceMethod';
2
+ import AverageUserEngagement from './AverageUserEngagement';
3
+ /**
4
+ * Information that is contained in the inferred engagement schedule for a week.
5
+ * @author Allison Zhang
6
+ */
7
+ type InferredWeekSchedule = {
8
+ ic?: {
9
+ averageUserEngagement: AverageUserEngagement;
10
+ };
11
+ gather?: {
12
+ attendanceMethodMap: {
13
+ [AttendanceMethod.InPerson]?: boolean;
14
+ [AttendanceMethod.Live]?: boolean;
15
+ };
16
+ };
17
+ };
18
+ export default InferredWeekSchedule;
@@ -0,0 +1,7 @@
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
+ const AttendanceMethod_1 = __importDefault(require("../AttendanceMethod"));
7
+ //# sourceMappingURL=InferredWeekSchedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InferredWeekSchedule.js","sourceRoot":"","sources":["../../../src/Engagement/InferredEngagementSchedule/InferredWeekSchedule.ts"],"names":[],"mappings":";;;;;AAAA,2EAAmD"}
@@ -0,0 +1,14 @@
1
+ import InferredWeekSchedule from './InferredWeekSchedule';
2
+ /**
3
+ * A schedule with average user engagement for each week in the course. The
4
+ * schedule is generated based on the engagement data of the students in the
5
+ * course.
6
+ * @author Allison Zhang
7
+ */
8
+ type InferredEngagementSchedule = {
9
+ courseId: number;
10
+ scheduleByWeek: {
11
+ [week: string]: InferredWeekSchedule;
12
+ };
13
+ };
14
+ export default InferredEngagementSchedule;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Engagement/InferredEngagementSchedule/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Different types of programming languages
3
+ * @author Gabe Abrams
4
+ */
5
+ declare enum ProgrammingLanguage {
6
+ None = "None",
7
+ Python = "Python",
8
+ Java = "Java",
9
+ CPP = "CPP",
10
+ JavaScript = "JavaScript",
11
+ TypeScript = "TypeScript",
12
+ HTML = "HTML",
13
+ CSS = "CSS"
14
+ }
15
+ export default ProgrammingLanguage;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Different types of programming languages
5
+ * @author Gabe Abrams
6
+ */
7
+ var ProgrammingLanguage;
8
+ (function (ProgrammingLanguage) {
9
+ // Generic code with no language (just monospace, not highlighted)
10
+ ProgrammingLanguage["None"] = "None";
11
+ // Python
12
+ ProgrammingLanguage["Python"] = "Python";
13
+ // Java
14
+ ProgrammingLanguage["Java"] = "Java";
15
+ // C++
16
+ ProgrammingLanguage["CPP"] = "CPP";
17
+ // JavaScript
18
+ ProgrammingLanguage["JavaScript"] = "JavaScript";
19
+ // TypeScript
20
+ ProgrammingLanguage["TypeScript"] = "TypeScript";
21
+ // HTML
22
+ ProgrammingLanguage["HTML"] = "HTML";
23
+ // CSS
24
+ ProgrammingLanguage["CSS"] = "CSS";
25
+ })(ProgrammingLanguage || (ProgrammingLanguage = {}));
26
+ exports.default = ProgrammingLanguage;
27
+ //# sourceMappingURL=ProgrammingLanguage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgrammingLanguage.js","sourceRoot":"","sources":["../../src/Engagement/ProgrammingLanguage.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,IAAK,mBAiBJ;AAjBD,WAAK,mBAAmB;IACtB,kEAAkE;IAClE,oCAAa,CAAA;IACb,SAAS;IACT,wCAAiB,CAAA;IACjB,OAAO;IACP,oCAAa,CAAA;IACb,MAAM;IACN,kCAAW,CAAA;IACX,aAAa;IACb,gDAAyB,CAAA;IACzB,aAAa;IACb,gDAAyB,CAAA;IACzB,OAAO;IACP,oCAAa,CAAA;IACb,MAAM;IACN,kCAAW,CAAA;AACb,CAAC,EAjBI,mBAAmB,KAAnB,mBAAmB,QAiBvB;AAED,kBAAe,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import Drawing from './Drawing';
2
+ import CodeSnippet from './CodeSnippet';
3
+ /**
4
+ * Type of a response (defines all types of media that can be included)
5
+ * @author Gabe Abrams
6
+ */
7
+ type ResponsePack = {
8
+ text?: string;
9
+ drawing?: Drawing;
10
+ codeSnippet?: CodeSnippet;
11
+ };
12
+ export default ResponsePack;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ResponsePack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponsePack.js","sourceRoot":"","sources":["../../src/Engagement/ResponsePack.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import ZoomPollQuestionAndAnswerType from 'zaccl/lib/types/ZoomPollQuestionAndAnswerType';
2
+ /**
3
+ * The submitted choices for a poll in a shareout post
4
+ * @author Yuen Ler Chow
5
+ */
6
+ type ShareoutPostPollResult = {
7
+ [questionNumber: string]: ({
8
+ question: string;
9
+ } & ({
10
+ pollType: ZoomPollQuestionAndAnswerType.SingleChoice;
11
+ selectedChoice: string | undefined;
12
+ } | {
13
+ pollType: ZoomPollQuestionAndAnswerType.MultipleChoice;
14
+ selectedChoices: string[];
15
+ }));
16
+ };
17
+ export default ShareoutPostPollResult;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ShareoutPostPollResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShareoutPostPollResult.js","sourceRoot":"","sources":["../../src/Engagement/ShareoutPostPollResult.ts"],"names":[],"mappings":""}