@pie-lib/controller-utils 0.4.0-beta.0 → 0.4.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.
- package/CHANGELOG.json +1 -137
- package/CHANGELOG.md +133 -14
- package/package.json +2 -2
- package/lib/__tests__/partial-scoring.test.js +0 -35
- package/lib/__tests__/persistence.test.js +0 -299
- package/lib/index.js +0 -31
- package/lib/partial-scoring.js +0 -29
- package/lib/persistence.js +0 -140
package/CHANGELOG.json
CHANGED
|
@@ -1,137 +1 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"type": "feat",
|
|
4
|
-
"scope": null,
|
|
5
|
-
"subject": "new package controller-utils",
|
|
6
|
-
"merge": null,
|
|
7
|
-
"header": "feat: new package controller-utils",
|
|
8
|
-
"body": null,
|
|
9
|
-
"footer": null,
|
|
10
|
-
"notes": [],
|
|
11
|
-
"hash": "0994a4bda1c0ed809e565ff3569bbbf8f0713bd0",
|
|
12
|
-
"gitTags": "",
|
|
13
|
-
"committerDate": "2019-04-02 17:02:30 +0100",
|
|
14
|
-
"isTagged": true,
|
|
15
|
-
"tag": "@pie-lib/controller-utils@0.1.0"
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"type": "feat",
|
|
19
|
-
"scope": null,
|
|
20
|
-
"subject": "implement a shuffle/persistence reusable method",
|
|
21
|
-
"merge": null,
|
|
22
|
-
"header": "feat: implement a shuffle/persistence reusable method",
|
|
23
|
-
"body": null,
|
|
24
|
-
"footer": null,
|
|
25
|
-
"notes": [],
|
|
26
|
-
"hash": "33cc7f3ea35019d9896b656134672950c145d28d",
|
|
27
|
-
"gitTags": "",
|
|
28
|
-
"committerDate": "2019-08-29 19:15:16 +0300",
|
|
29
|
-
"isTagged": true,
|
|
30
|
-
"tag": "@pie-lib/controller-utils@0.2.0"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"type": "fix",
|
|
34
|
-
"scope": null,
|
|
35
|
-
"subject": "fix handling and saving of bad shuffled values [ch4723]",
|
|
36
|
-
"merge": null,
|
|
37
|
-
"header": "fix: fix handling and saving of bad shuffled values [ch4723]",
|
|
38
|
-
"body": "* strip null/undefined from arrays, treat empty arrays as if no shuffle\nis set.\n* refuse to save stripped empty shuffled arrays",
|
|
39
|
-
"footer": null,
|
|
40
|
-
"notes": [],
|
|
41
|
-
"hash": "186ff87e9e8db7952203e1629ade8e0c49b56f6b",
|
|
42
|
-
"gitTags": "",
|
|
43
|
-
"committerDate": "2019-10-10 19:29:34 +0100",
|
|
44
|
-
"isTagged": true,
|
|
45
|
-
"tag": "@pie-lib/controller-utils@0.2.1"
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"type": "fix",
|
|
49
|
-
"scope": null,
|
|
50
|
-
"subject": "rm async",
|
|
51
|
-
"merge": null,
|
|
52
|
-
"header": "fix: rm async",
|
|
53
|
-
"body": null,
|
|
54
|
-
"footer": null,
|
|
55
|
-
"notes": [],
|
|
56
|
-
"hash": "3e96db3e5897896f95ed21ec1fc86a029c49b8d6",
|
|
57
|
-
"gitTags": " (origin/fix/rm-async, origin/develop, origin/HEAD, develop)",
|
|
58
|
-
"committerDate": "2019-10-14 13:47:35 +0100",
|
|
59
|
-
"isTagged": true,
|
|
60
|
-
"tag": "@pie-lib/controller-utils@0.2.2"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"type": "fix",
|
|
64
|
-
"scope": null,
|
|
65
|
-
"subject": "allow number 0 to be used as value in shuffledValues",
|
|
66
|
-
"merge": null,
|
|
67
|
-
"header": "fix: allow number 0 to be used as value in shuffledValues",
|
|
68
|
-
"body": null,
|
|
69
|
-
"footer": null,
|
|
70
|
-
"notes": [],
|
|
71
|
-
"hash": "874127ce12bcfa6403d7b883b469f3fd2f09a365",
|
|
72
|
-
"gitTags": " (origin/develop, origin/HEAD, develop)",
|
|
73
|
-
"committerDate": "2019-11-18 11:28:05 +0000",
|
|
74
|
-
"isTagged": true,
|
|
75
|
-
"tag": "@pie-lib/controller-utils@0.2.3"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"type": "fix",
|
|
79
|
-
"scope": null,
|
|
80
|
-
"subject": "Updated using the given documentation.",
|
|
81
|
-
"merge": null,
|
|
82
|
-
"header": "fix: Updated using the given documentation.",
|
|
83
|
-
"body": null,
|
|
84
|
-
"footer": null,
|
|
85
|
-
"notes": [],
|
|
86
|
-
"hash": "14c7b98d1fd3bc20ea3aefc1d3a7db4d4e9bcb14",
|
|
87
|
-
"gitTags": " (origin/fix/PIE-200-partial-scoring)",
|
|
88
|
-
"committerDate": "2020-01-15 13:25:30 +0200",
|
|
89
|
-
"isTagged": true,
|
|
90
|
-
"tag": "@pie-lib/controller-utils@0.2.4"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"type": "fix",
|
|
94
|
-
"scope": null,
|
|
95
|
-
"subject": "add module prop to package.json",
|
|
96
|
-
"merge": null,
|
|
97
|
-
"header": "fix: add module prop to package.json",
|
|
98
|
-
"body": null,
|
|
99
|
-
"footer": null,
|
|
100
|
-
"notes": [],
|
|
101
|
-
"hash": "8a1b445ad76ba8472a6d375d0c604baf951a3b25",
|
|
102
|
-
"gitTags": " (develop)",
|
|
103
|
-
"committerDate": "2020-03-29 23:12:09 +0100",
|
|
104
|
-
"isTagged": true,
|
|
105
|
-
"tag": "@pie-lib/controller-utils@0.2.6"
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
"type": "fix",
|
|
109
|
-
"scope": null,
|
|
110
|
-
"subject": "add module prop to package.json",
|
|
111
|
-
"merge": null,
|
|
112
|
-
"header": "fix: add module prop to package.json",
|
|
113
|
-
"body": null,
|
|
114
|
-
"footer": null,
|
|
115
|
-
"notes": [],
|
|
116
|
-
"hash": "694b1065959105438aeed7fcd88d5537ce234802",
|
|
117
|
-
"gitTags": "",
|
|
118
|
-
"committerDate": "2020-03-30 13:00:38 +0100",
|
|
119
|
-
"isTagged": true,
|
|
120
|
-
"tag": "@pie-lib/controller-utils@0.2.7"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"type": "fix",
|
|
124
|
-
"scope": null,
|
|
125
|
-
"subject": "rm ExportNamespaceSpecifier",
|
|
126
|
-
"merge": null,
|
|
127
|
-
"header": "fix: rm ExportNamespaceSpecifier",
|
|
128
|
-
"body": null,
|
|
129
|
-
"footer": null,
|
|
130
|
-
"notes": [],
|
|
131
|
-
"hash": "970e2edcf797b8eea06449834c9174ac69d718d1",
|
|
132
|
-
"gitTags": "",
|
|
133
|
-
"committerDate": "2020-03-31 12:35:26 +0100",
|
|
134
|
-
"isTagged": true,
|
|
135
|
-
"tag": "@pie-lib/controller-utils@0.2.16"
|
|
136
|
-
}
|
|
137
|
-
]
|
|
1
|
+
[]
|
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
# [0.4.0
|
|
6
|
+
# [0.4.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.4.0) (2025-07-31)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
9
9
|
|
|
@@ -11,7 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
# [0.
|
|
14
|
+
# [0.5.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.5.0) (2025-07-31)
|
|
15
15
|
|
|
16
16
|
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
17
17
|
|
|
@@ -19,7 +19,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
# [0.4.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.4.0) (2025-07-31)
|
|
23
23
|
|
|
24
24
|
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
25
25
|
|
|
@@ -27,18 +27,23 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
# [0.3.0-beta.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.8) (2025-07-25)
|
|
31
31
|
|
|
32
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
32
33
|
|
|
33
|
-
### Bug Fixes
|
|
34
34
|
|
|
35
|
-
* **eslint:** fix eslint problems-PD-2732 ([9eb9976](https://github.com/pie-framework/pie-lib/commit/9eb9976749753da86e1057a07bd2cfc65bf64ae4))
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
|
|
38
|
+
# [0.3.0-beta.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.7) (2025-07-25)
|
|
39
39
|
|
|
40
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
# [0.3.0-beta.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.7) (2025-07-25)
|
|
42
47
|
|
|
43
48
|
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
44
49
|
|
|
@@ -46,7 +51,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
46
51
|
|
|
47
52
|
|
|
48
53
|
|
|
49
|
-
|
|
54
|
+
# [0.3.0-beta.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.6) (2025-07-25)
|
|
50
55
|
|
|
51
56
|
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
52
57
|
|
|
@@ -54,7 +59,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
54
59
|
|
|
55
60
|
|
|
56
61
|
|
|
57
|
-
|
|
62
|
+
# [0.3.0-beta.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.6) (2025-07-25)
|
|
58
63
|
|
|
59
64
|
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
60
65
|
|
|
@@ -62,7 +67,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
62
67
|
|
|
63
68
|
|
|
64
69
|
|
|
65
|
-
|
|
70
|
+
# [0.3.0-beta.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.5) (2025-07-25)
|
|
66
71
|
|
|
67
72
|
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
68
73
|
|
|
@@ -70,7 +75,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
70
75
|
|
|
71
76
|
|
|
72
77
|
|
|
73
|
-
|
|
78
|
+
# [0.3.0-beta.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.5) (2025-07-25)
|
|
74
79
|
|
|
75
80
|
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
76
81
|
|
|
@@ -78,7 +83,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
78
83
|
|
|
79
84
|
|
|
80
85
|
|
|
81
|
-
|
|
86
|
+
# [0.3.0-beta.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.4) (2025-07-25)
|
|
82
87
|
|
|
83
88
|
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
84
89
|
|
|
@@ -86,7 +91,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
86
91
|
|
|
87
92
|
|
|
88
93
|
|
|
89
|
-
|
|
94
|
+
# [0.3.0-beta.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.3) (2025-07-25)
|
|
90
95
|
|
|
91
96
|
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
92
97
|
|
|
@@ -94,13 +99,127 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
94
99
|
|
|
95
100
|
|
|
96
101
|
|
|
97
|
-
|
|
102
|
+
# [0.3.0-beta.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.4) (2025-07-23)
|
|
103
|
+
|
|
104
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
# [0.3.0-beta.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.3) (2025-07-23)
|
|
111
|
+
|
|
112
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
# [0.3.0-beta.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.3) (2025-07-20)
|
|
119
|
+
|
|
120
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
# [0.3.0-beta.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.2) (2025-07-20)
|
|
127
|
+
|
|
128
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
# [0.3.0-beta.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.1) (2025-07-20)
|
|
135
|
+
|
|
136
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
# [0.3.0-beta.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.2) (2025-07-20)
|
|
143
|
+
|
|
144
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
# [0.3.0-beta.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.1) (2025-07-20)
|
|
151
|
+
|
|
152
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
# [0.3.0-beta.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.1) (2025-07-20)
|
|
159
|
+
|
|
160
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
# [0.3.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.0) (2025-07-20)
|
|
167
|
+
|
|
168
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
# [0.4.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.4.0-beta.0) (2025-07-15)
|
|
175
|
+
|
|
176
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
177
|
+
|
|
178
|
+
# [0.3.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.44...@pie-lib/controller-utils@0.3.0-beta.0) (2025-07-15)
|
|
179
|
+
|
|
180
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
181
|
+
|
|
182
|
+
## [0.2.44](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.43...@pie-lib/controller-utils@0.2.44) (2023-06-24)
|
|
183
|
+
|
|
184
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
185
|
+
|
|
186
|
+
## [0.2.43](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.42...@pie-lib/controller-utils@0.2.43) (2023-04-19)
|
|
187
|
+
|
|
188
|
+
### Bug Fixes
|
|
189
|
+
|
|
190
|
+
- **eslint:** fix eslint problems-PD-2732 ([9eb9976](https://github.com/pie-framework/pie-lib/commit/9eb9976749753da86e1057a07bd2cfc65bf64ae4))
|
|
191
|
+
|
|
192
|
+
## [0.2.42](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.40...@pie-lib/controller-utils@0.2.42) (2023-01-31)
|
|
193
|
+
|
|
194
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
195
|
+
|
|
196
|
+
## [0.2.40](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.39...@pie-lib/controller-utils@0.2.40) (2023-01-31)
|
|
98
197
|
|
|
99
198
|
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
100
199
|
|
|
200
|
+
## [0.2.39](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.38...@pie-lib/controller-utils@0.2.39) (2023-01-31)
|
|
201
|
+
|
|
202
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
101
203
|
|
|
204
|
+
## [0.2.38](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.37...@pie-lib/controller-utils@0.2.38) (2023-01-31)
|
|
102
205
|
|
|
206
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
103
207
|
|
|
208
|
+
## [0.2.37](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.31...@pie-lib/controller-utils@0.2.37) (2023-01-31)
|
|
209
|
+
|
|
210
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
211
|
+
|
|
212
|
+
## [0.2.31](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.29...@pie-lib/controller-utils@0.2.31) (2023-01-31)
|
|
213
|
+
|
|
214
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
215
|
+
|
|
216
|
+
## [0.2.29](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.27...@pie-lib/controller-utils@0.2.29) (2023-01-31)
|
|
217
|
+
|
|
218
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
219
|
+
|
|
220
|
+
## [0.2.27](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.26...@pie-lib/controller-utils@0.2.27) (2022-11-23)
|
|
221
|
+
|
|
222
|
+
**Note:** Version bump only for package @pie-lib/controller-utils
|
|
104
223
|
|
|
105
224
|
## [0.2.26](https://github.com/pie-framework/pie-lib/compare/@pie-lib/controller-utils@0.2.24...@pie-lib/controller-utils@0.2.26) (2021-06-25)
|
|
106
225
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/controller-utils",
|
|
3
|
-
"version": "0.4.0
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
@@ -14,5 +14,5 @@
|
|
|
14
14
|
"scripts": {},
|
|
15
15
|
"author": "",
|
|
16
16
|
"license": "ISC",
|
|
17
|
-
"gitHead": "
|
|
17
|
+
"gitHead": "889a13bfea2c768b8a3a6eabfc6fe7b7725aa832"
|
|
18
18
|
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _partialScoring = require("../partial-scoring");
|
|
4
|
-
|
|
5
|
-
describe('enabled', function () {
|
|
6
|
-
var assertEnabled = function assertEnabled(config, env, expected) {
|
|
7
|
-
it("returns ".concat(expected, " for: config: ").concat(config.partialScoring, ", env:").concat(env.partialScoring), function () {
|
|
8
|
-
var result = (0, _partialScoring.enabled)(config, env);
|
|
9
|
-
expect(result).toEqual(expected);
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
var config = function config(v) {
|
|
14
|
-
return {
|
|
15
|
-
partialScoring: v
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
var env = function env(v) {
|
|
20
|
-
return {
|
|
21
|
-
partialScoring: v
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
assertEnabled(config(undefined), env(undefined), true);
|
|
26
|
-
assertEnabled(config(undefined), env(true), true);
|
|
27
|
-
assertEnabled(config(undefined), env(false), false);
|
|
28
|
-
assertEnabled(config(false), env(undefined), false);
|
|
29
|
-
assertEnabled(config(false), env(true), false);
|
|
30
|
-
assertEnabled(config(false), env(false), false);
|
|
31
|
-
assertEnabled(config(true), env(undefined), true);
|
|
32
|
-
assertEnabled(config(true), env(true), true);
|
|
33
|
-
assertEnabled(config(true), env(false), false);
|
|
34
|
-
});
|
|
35
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcGFydGlhbC1zY29yaW5nLnRlc3QuanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJhc3NlcnRFbmFibGVkIiwiY29uZmlnIiwiZW52IiwiZXhwZWN0ZWQiLCJpdCIsInBhcnRpYWxTY29yaW5nIiwicmVzdWx0IiwiZXhwZWN0IiwidG9FcXVhbCIsInYiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBRUFBLFFBQVEsQ0FBQyxTQUFELEVBQVksWUFBTTtBQUN4QixNQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNDLE1BQUQsRUFBU0MsR0FBVCxFQUFjQyxRQUFkLEVBQTJCO0FBQy9DQyxJQUFBQSxFQUFFLG1CQUFZRCxRQUFaLDJCQUFxQ0YsTUFBTSxDQUFDSSxjQUE1QyxtQkFBbUVILEdBQUcsQ0FBQ0csY0FBdkUsR0FBeUYsWUFBTTtBQUMvRixVQUFNQyxNQUFNLEdBQUcsNkJBQVFMLE1BQVIsRUFBZ0JDLEdBQWhCLENBQWY7QUFDQUssTUFBQUEsTUFBTSxDQUFDRCxNQUFELENBQU4sQ0FBZUUsT0FBZixDQUF1QkwsUUFBdkI7QUFDRCxLQUhDLENBQUY7QUFJRCxHQUxEOztBQU9BLE1BQU1GLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNRLENBQUQ7QUFBQSxXQUFRO0FBQUVKLE1BQUFBLGNBQWMsRUFBRUk7QUFBbEIsS0FBUjtBQUFBLEdBQWY7O0FBQ0EsTUFBTVAsR0FBRyxHQUFHLFNBQU5BLEdBQU0sQ0FBQ08sQ0FBRDtBQUFBLFdBQVE7QUFBRUosTUFBQUEsY0FBYyxFQUFFSTtBQUFsQixLQUFSO0FBQUEsR0FBWjs7QUFFQVQsRUFBQUEsYUFBYSxDQUFDQyxNQUFNLENBQUNTLFNBQUQsQ0FBUCxFQUFvQlIsR0FBRyxDQUFDUSxTQUFELENBQXZCLEVBQW9DLElBQXBDLENBQWI7QUFDQVYsRUFBQUEsYUFBYSxDQUFDQyxNQUFNLENBQUNTLFNBQUQsQ0FBUCxFQUFvQlIsR0FBRyxDQUFDLElBQUQsQ0FBdkIsRUFBK0IsSUFBL0IsQ0FBYjtBQUNBRixFQUFBQSxhQUFhLENBQUNDLE1BQU0sQ0FBQ1MsU0FBRCxDQUFQLEVBQW9CUixHQUFHLENBQUMsS0FBRCxDQUF2QixFQUFnQyxLQUFoQyxDQUFiO0FBRUFGLEVBQUFBLGFBQWEsQ0FBQ0MsTUFBTSxDQUFDLEtBQUQsQ0FBUCxFQUFnQkMsR0FBRyxDQUFDUSxTQUFELENBQW5CLEVBQWdDLEtBQWhDLENBQWI7QUFDQVYsRUFBQUEsYUFBYSxDQUFDQyxNQUFNLENBQUMsS0FBRCxDQUFQLEVBQWdCQyxHQUFHLENBQUMsSUFBRCxDQUFuQixFQUEyQixLQUEzQixDQUFiO0FBQ0FGLEVBQUFBLGFBQWEsQ0FBQ0MsTUFBTSxDQUFDLEtBQUQsQ0FBUCxFQUFnQkMsR0FBRyxDQUFDLEtBQUQsQ0FBbkIsRUFBNEIsS0FBNUIsQ0FBYjtBQUVBRixFQUFBQSxhQUFhLENBQUNDLE1BQU0sQ0FBQyxJQUFELENBQVAsRUFBZUMsR0FBRyxDQUFDUSxTQUFELENBQWxCLEVBQStCLElBQS9CLENBQWI7QUFDQVYsRUFBQUEsYUFBYSxDQUFDQyxNQUFNLENBQUMsSUFBRCxDQUFQLEVBQWVDLEdBQUcsQ0FBQyxJQUFELENBQWxCLEVBQTBCLElBQTFCLENBQWI7QUFDQUYsRUFBQUEsYUFBYSxDQUFDQyxNQUFNLENBQUMsSUFBRCxDQUFQLEVBQWVDLEdBQUcsQ0FBQyxLQUFELENBQWxCLEVBQTJCLEtBQTNCLENBQWI7QUFDRCxDQXRCTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5hYmxlZCB9IGZyb20gJy4uL3BhcnRpYWwtc2NvcmluZyc7XG5cbmRlc2NyaWJlKCdlbmFibGVkJywgKCkgPT4ge1xuICBjb25zdCBhc3NlcnRFbmFibGVkID0gKGNvbmZpZywgZW52LCBleHBlY3RlZCkgPT4ge1xuICAgIGl0KGByZXR1cm5zICR7ZXhwZWN0ZWR9IGZvcjogY29uZmlnOiAke2NvbmZpZy5wYXJ0aWFsU2NvcmluZ30sIGVudjoke2Vudi5wYXJ0aWFsU2NvcmluZ31gLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBlbmFibGVkKGNvbmZpZywgZW52KTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGNvbmZpZyA9ICh2KSA9PiAoeyBwYXJ0aWFsU2NvcmluZzogdiB9KTtcbiAgY29uc3QgZW52ID0gKHYpID0+ICh7IHBhcnRpYWxTY29yaW5nOiB2IH0pO1xuXG4gIGFzc2VydEVuYWJsZWQoY29uZmlnKHVuZGVmaW5lZCksIGVudih1bmRlZmluZWQpLCB0cnVlKTtcbiAgYXNzZXJ0RW5hYmxlZChjb25maWcodW5kZWZpbmVkKSwgZW52KHRydWUpLCB0cnVlKTtcbiAgYXNzZXJ0RW5hYmxlZChjb25maWcodW5kZWZpbmVkKSwgZW52KGZhbHNlKSwgZmFsc2UpO1xuXG4gIGFzc2VydEVuYWJsZWQoY29uZmlnKGZhbHNlKSwgZW52KHVuZGVmaW5lZCksIGZhbHNlKTtcbiAgYXNzZXJ0RW5hYmxlZChjb25maWcoZmFsc2UpLCBlbnYodHJ1ZSksIGZhbHNlKTtcbiAgYXNzZXJ0RW5hYmxlZChjb25maWcoZmFsc2UpLCBlbnYoZmFsc2UpLCBmYWxzZSk7XG5cbiAgYXNzZXJ0RW5hYmxlZChjb25maWcodHJ1ZSksIGVudih1bmRlZmluZWQpLCB0cnVlKTtcbiAgYXNzZXJ0RW5hYmxlZChjb25maWcodHJ1ZSksIGVudih0cnVlKSwgdHJ1ZSk7XG4gIGFzc2VydEVuYWJsZWQoY29uZmlnKHRydWUpLCBlbnYoZmFsc2UpLCBmYWxzZSk7XG59KTtcbiJdfQ==
|
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
6
|
-
|
|
7
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
8
|
-
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
-
|
|
11
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
-
|
|
13
|
-
var _persistence = require("../persistence");
|
|
14
|
-
|
|
15
|
-
var _templateObject, _templateObject2, _templateObject3;
|
|
16
|
-
|
|
17
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
-
|
|
19
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
20
|
-
|
|
21
|
-
describe('getShuffledChoices', function () {
|
|
22
|
-
var choices, session, updateSession, key;
|
|
23
|
-
beforeEach(function () {
|
|
24
|
-
updateSession = jest.fn().mockResolvedValue([]);
|
|
25
|
-
session = {
|
|
26
|
-
id: '1',
|
|
27
|
-
element: 'element'
|
|
28
|
-
};
|
|
29
|
-
choices = [{
|
|
30
|
-
value: 1
|
|
31
|
-
}, {
|
|
32
|
-
value: 2
|
|
33
|
-
}];
|
|
34
|
-
key = 'value';
|
|
35
|
-
});
|
|
36
|
-
describe('0 key', function () {
|
|
37
|
-
it('calls update session w/ 0 as a key', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
38
|
-
var result;
|
|
39
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
40
|
-
while (1) {
|
|
41
|
-
switch (_context.prev = _context.next) {
|
|
42
|
-
case 0:
|
|
43
|
-
_context.next = 2;
|
|
44
|
-
return (0, _persistence.getShuffledChoices)([{
|
|
45
|
-
value: 0
|
|
46
|
-
}, {
|
|
47
|
-
value: 1
|
|
48
|
-
}], session, updateSession, 'value');
|
|
49
|
-
|
|
50
|
-
case 2:
|
|
51
|
-
result = _context.sent;
|
|
52
|
-
expect(updateSession).toHaveBeenCalledWith(session.id, session.element, {
|
|
53
|
-
shuffledValues: expect.arrayContaining([0, 1])
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
case 4:
|
|
57
|
-
case "end":
|
|
58
|
-
return _context.stop();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}, _callee);
|
|
62
|
-
})));
|
|
63
|
-
});
|
|
64
|
-
describe('handles null values in session', function () {
|
|
65
|
-
beforeEach( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
66
|
-
var result;
|
|
67
|
-
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
68
|
-
while (1) {
|
|
69
|
-
switch (_context2.prev = _context2.next) {
|
|
70
|
-
case 0:
|
|
71
|
-
_context2.next = 2;
|
|
72
|
-
return (0, _persistence.getShuffledChoices)(choices, _objectSpread(_objectSpread({}, session), {}, {
|
|
73
|
-
shuffledValues: [null]
|
|
74
|
-
}), updateSession, 'value');
|
|
75
|
-
|
|
76
|
-
case 2:
|
|
77
|
-
result = _context2.sent;
|
|
78
|
-
|
|
79
|
-
case 3:
|
|
80
|
-
case "end":
|
|
81
|
-
return _context2.stop();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}, _callee2);
|
|
85
|
-
})));
|
|
86
|
-
it('calls updateSession w/ new shuffle cos [null] is treated as empty', function () {
|
|
87
|
-
expect(updateSession).toHaveBeenCalledWith(session.id, session.element, {
|
|
88
|
-
shuffledValues: expect.arrayContaining([1, 2])
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
describe('bad shuffle generation does not call updateSession', function () {
|
|
93
|
-
beforeEach( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
94
|
-
var result;
|
|
95
|
-
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
96
|
-
while (1) {
|
|
97
|
-
switch (_context3.prev = _context3.next) {
|
|
98
|
-
case 0:
|
|
99
|
-
_context3.next = 2;
|
|
100
|
-
return (0, _persistence.getShuffledChoices)(choices, {}, updateSession, 'foo');
|
|
101
|
-
|
|
102
|
-
case 2:
|
|
103
|
-
result = _context3.sent;
|
|
104
|
-
|
|
105
|
-
case 3:
|
|
106
|
-
case "end":
|
|
107
|
-
return _context3.stop();
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}, _callee3);
|
|
111
|
-
})));
|
|
112
|
-
it('does not call update session', function () {
|
|
113
|
-
expect(updateSession).not.toHaveBeenCalled();
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
describe('session does not exist', function () {
|
|
117
|
-
it('returns undefined for empty session', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
118
|
-
var result;
|
|
119
|
-
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
120
|
-
while (1) {
|
|
121
|
-
switch (_context4.prev = _context4.next) {
|
|
122
|
-
case 0:
|
|
123
|
-
_context4.next = 2;
|
|
124
|
-
return (0, _persistence.getShuffledChoices)(choices, undefined, updateSession, key);
|
|
125
|
-
|
|
126
|
-
case 2:
|
|
127
|
-
result = _context4.sent;
|
|
128
|
-
expect(result).toEqual(undefined);
|
|
129
|
-
|
|
130
|
-
case 4:
|
|
131
|
-
case "end":
|
|
132
|
-
return _context4.stop();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}, _callee4);
|
|
136
|
-
})));
|
|
137
|
-
});
|
|
138
|
-
describe('session exists', function () {
|
|
139
|
-
it('returns compact choices if session has shuffledValues', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
140
|
-
var result;
|
|
141
|
-
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
142
|
-
while (1) {
|
|
143
|
-
switch (_context5.prev = _context5.next) {
|
|
144
|
-
case 0:
|
|
145
|
-
session = {
|
|
146
|
-
shuffledValues: [2, 1]
|
|
147
|
-
};
|
|
148
|
-
_context5.next = 3;
|
|
149
|
-
return (0, _persistence.getShuffledChoices)(choices, session, updateSession, key);
|
|
150
|
-
|
|
151
|
-
case 3:
|
|
152
|
-
result = _context5.sent;
|
|
153
|
-
expect(result).toEqual(expect.arrayContaining(choices));
|
|
154
|
-
|
|
155
|
-
case 5:
|
|
156
|
-
case "end":
|
|
157
|
-
return _context5.stop();
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}, _callee5);
|
|
161
|
-
})));
|
|
162
|
-
it('returns shuffled choices if updateSession is a function', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
163
|
-
var result;
|
|
164
|
-
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
165
|
-
while (1) {
|
|
166
|
-
switch (_context6.prev = _context6.next) {
|
|
167
|
-
case 0:
|
|
168
|
-
session = {};
|
|
169
|
-
updateSession = jest.fn().mockResolvedValue();
|
|
170
|
-
_context6.next = 4;
|
|
171
|
-
return (0, _persistence.getShuffledChoices)(choices, session, updateSession, key);
|
|
172
|
-
|
|
173
|
-
case 4:
|
|
174
|
-
result = _context6.sent;
|
|
175
|
-
expect(result).toEqual(expect.arrayContaining(choices));
|
|
176
|
-
|
|
177
|
-
case 6:
|
|
178
|
-
case "end":
|
|
179
|
-
return _context6.stop();
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}, _callee6);
|
|
183
|
-
})));
|
|
184
|
-
it('calls updateSession as expected if updateSession is a function', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
185
|
-
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
186
|
-
while (1) {
|
|
187
|
-
switch (_context7.prev = _context7.next) {
|
|
188
|
-
case 0:
|
|
189
|
-
session = {
|
|
190
|
-
id: '1',
|
|
191
|
-
element: 'pie-element'
|
|
192
|
-
};
|
|
193
|
-
_context7.next = 3;
|
|
194
|
-
return (0, _persistence.getShuffledChoices)(choices, session, updateSession, key);
|
|
195
|
-
|
|
196
|
-
case 3:
|
|
197
|
-
expect(updateSession).toHaveBeenCalledWith('1', 'pie-element', {
|
|
198
|
-
shuffledValues: expect.arrayContaining([1, 2])
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
case 4:
|
|
202
|
-
case "end":
|
|
203
|
-
return _context7.stop();
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}, _callee7);
|
|
207
|
-
})));
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
describe('lockChoices', function () {
|
|
211
|
-
var env = function env(lockChoiceOrder) {
|
|
212
|
-
var role = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'student';
|
|
213
|
-
return {
|
|
214
|
-
'@pie-element': {
|
|
215
|
-
lockChoiceOrder: lockChoiceOrder
|
|
216
|
-
},
|
|
217
|
-
role: role
|
|
218
|
-
};
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
var session = function session(shuffledValues) {
|
|
222
|
-
return {
|
|
223
|
-
shuffledValues: shuffledValues
|
|
224
|
-
};
|
|
225
|
-
};
|
|
226
|
-
|
|
227
|
-
it.each(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n modelLock | session | env | expected\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n "])), true, session(), env(true), true, true, session(), env(false), true, false, session(), env(true), true, false, session(), env(false), false, false, session(), undefined, false, false, undefined, undefined, false, undefined, session(), env(false), false, undefined, session(), env(undefined), false, false, session(), env(false, 'instructor'), true, false, session([0, 1]), env(false, 'instructor'), true, false, undefined, env(false, 'instructor'), true)('1. model.lockChoiceOrder: $modelLock, $session, $env => $expected', function (_ref8) {
|
|
228
|
-
var modelLock = _ref8.modelLock,
|
|
229
|
-
session = _ref8.session,
|
|
230
|
-
env = _ref8.env,
|
|
231
|
-
expected = _ref8.expected;
|
|
232
|
-
var model = {
|
|
233
|
-
lockChoiceOrder: modelLock
|
|
234
|
-
};
|
|
235
|
-
var result = (0, _persistence.lockChoices)(model, session, env);
|
|
236
|
-
expect(result).toEqual(expected);
|
|
237
|
-
});
|
|
238
|
-
});
|
|
239
|
-
describe('lockChoices mod', function () {
|
|
240
|
-
var env = function env(lockChoiceOrder) {
|
|
241
|
-
var role = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'student';
|
|
242
|
-
return {
|
|
243
|
-
'@pie-element': {
|
|
244
|
-
lockChoiceOrder: lockChoiceOrder
|
|
245
|
-
},
|
|
246
|
-
role: role
|
|
247
|
-
};
|
|
248
|
-
};
|
|
249
|
-
|
|
250
|
-
var session = function session() {
|
|
251
|
-
var answers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['foo', 'bar'];
|
|
252
|
-
return {
|
|
253
|
-
answers: answers
|
|
254
|
-
};
|
|
255
|
-
};
|
|
256
|
-
|
|
257
|
-
it.each(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n modelLock | session | env | expected\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n "])), true, session(), env(true), true, true, session(), env(false), true, false, session(), env(true), true, false, session(), env(false), false, undefined, session(), env(true), true, undefined, session(), env(undefined), false, undefined, session(), env(undefined, 'instructor'), true)('2. model.lockChoiceOrder: $modelLock, $session, $env => $expected', function (_ref9) {
|
|
258
|
-
var modelLock = _ref9.modelLock,
|
|
259
|
-
session = _ref9.session,
|
|
260
|
-
env = _ref9.env,
|
|
261
|
-
expected = _ref9.expected;
|
|
262
|
-
var model = {
|
|
263
|
-
lockChoiceOrder: modelLock
|
|
264
|
-
};
|
|
265
|
-
var result = (0, _persistence.lockChoices)(model, session, env);
|
|
266
|
-
expect(result).toEqual(expected);
|
|
267
|
-
});
|
|
268
|
-
});
|
|
269
|
-
describe('lockChoices', function () {
|
|
270
|
-
var env = function env(lockChoiceOrder) {
|
|
271
|
-
var role = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'student';
|
|
272
|
-
return {
|
|
273
|
-
'@pie-element': {
|
|
274
|
-
lockChoiceOrder: lockChoiceOrder
|
|
275
|
-
},
|
|
276
|
-
role: role
|
|
277
|
-
};
|
|
278
|
-
};
|
|
279
|
-
|
|
280
|
-
var session = function session(shuffledValues) {
|
|
281
|
-
return {
|
|
282
|
-
shuffledValues: shuffledValues,
|
|
283
|
-
answers: ['foo', 'bar']
|
|
284
|
-
};
|
|
285
|
-
};
|
|
286
|
-
|
|
287
|
-
it.each(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n modelLock | session | env | expected\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", "\n "])), true, session(), env(true), true, true, session(), env(false), true, false, session(), env(true), true, false, session(), env(false), false, undefined, session(), env(true), true, undefined, session(), env(undefined), false, undefined, session(), env(undefined, 'instructor'), true)('3. model.lockChoiceOrder: $modelLock, $env => $expected', function (_ref10) {
|
|
288
|
-
var modelLock = _ref10.modelLock,
|
|
289
|
-
session = _ref10.session,
|
|
290
|
-
env = _ref10.env,
|
|
291
|
-
expected = _ref10.expected;
|
|
292
|
-
var model = {
|
|
293
|
-
lockChoiceOrder: modelLock
|
|
294
|
-
};
|
|
295
|
-
var result = (0, _persistence.lockChoices)(model, session, env);
|
|
296
|
-
expect(result).toEqual(expected);
|
|
297
|
-
});
|
|
298
|
-
});
|
|
299
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcGVyc2lzdGVuY2UudGVzdC5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsImNob2ljZXMiLCJzZXNzaW9uIiwidXBkYXRlU2Vzc2lvbiIsImtleSIsImJlZm9yZUVhY2giLCJqZXN0IiwiZm4iLCJtb2NrUmVzb2x2ZWRWYWx1ZSIsImlkIiwiZWxlbWVudCIsInZhbHVlIiwiaXQiLCJyZXN1bHQiLCJleHBlY3QiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInNodWZmbGVkVmFsdWVzIiwiYXJyYXlDb250YWluaW5nIiwibm90IiwidG9IYXZlQmVlbkNhbGxlZCIsInVuZGVmaW5lZCIsInRvRXF1YWwiLCJlbnYiLCJsb2NrQ2hvaWNlT3JkZXIiLCJyb2xlIiwiZWFjaCIsIm1vZGVsTG9jayIsImV4cGVjdGVkIiwibW9kZWwiLCJhbnN3ZXJzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7QUFFQUEsUUFBUSxDQUFDLG9CQUFELEVBQXVCLFlBQU07QUFDbkMsTUFBSUMsT0FBSixFQUFhQyxPQUFiLEVBQXNCQyxhQUF0QixFQUFxQ0MsR0FBckM7QUFFQUMsRUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDZkYsSUFBQUEsYUFBYSxHQUFHRyxJQUFJLENBQUNDLEVBQUwsR0FBVUMsaUJBQVYsQ0FBNEIsRUFBNUIsQ0FBaEI7QUFDQU4sSUFBQUEsT0FBTyxHQUFHO0FBQ1JPLE1BQUFBLEVBQUUsRUFBRSxHQURJO0FBRVJDLE1BQUFBLE9BQU8sRUFBRTtBQUZELEtBQVY7QUFJQVQsSUFBQUEsT0FBTyxHQUFHLENBQ1I7QUFDRVUsTUFBQUEsS0FBSyxFQUFFO0FBRFQsS0FEUSxFQUlSO0FBQ0VBLE1BQUFBLEtBQUssRUFBRTtBQURULEtBSlEsQ0FBVjtBQVFBUCxJQUFBQSxHQUFHLEdBQUcsT0FBTjtBQUNELEdBZlMsQ0FBVjtBQWlCQUosRUFBQUEsUUFBUSxDQUFDLE9BQUQsRUFBVSxZQUFNO0FBQ3RCWSxJQUFBQSxF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QnBCLE9BQU8sRUFMMUIsRUFLa0NvQixHQUFHLENBQUMsS0FBRCxDQUxyQyxFQUtvRSxLQUxwRSxFQU1JRixTQU5KLEVBTW1CbEIsT0FBTyxFQU4xQixFQU1rQ29CLEdBQUcsQ0FBQyxJQUFELENBTnJDLEVBTW9FLElBTnBFLEVBT0lGLFNBUEosRUFPbUJsQixPQUFPLEVBUDFCLEVBT2tDb0IsR0FBRyxDQUFDRixTQUFELENBUHJDLEVBT29FLEtBUHBFLEVBUUlBLFNBUkosRUFRbUJsQixPQUFPLEVBUjFCLEVBUWtDb0IsR0FBRyxDQUFDRixTQUFELEVBQVksWUFBWixDQVJyQyxFQVFvRSxJQVJwRSxFQVNFLHlEQVRGLEVBUzZELGtCQUEyQztBQUFBLFFBQXhDTSxTQUF3QyxVQUF4Q0EsU0FBd0M7QUFBQSxRQUE3QnhCLE9BQTZCLFVBQTdCQSxPQUE2QjtBQUFBLFFBQXBCb0IsR0FBb0IsVUFBcEJBLEdBQW9CO0FBQUEsUUFBZkssUUFBZSxVQUFmQSxRQUFlO0FBQ3RHLFFBQU1DLEtBQUssR0FBRztBQUFFTCxNQUFBQSxlQUFlLEVBQUVHO0FBQW5CLEtBQWQ7QUFDQSxRQUFNYixNQUFNLEdBQUcsOEJBQVllLEtBQVosRUFBbUIxQixPQUFuQixFQUE0Qm9CLEdBQTVCLENBQWY7QUFDQVIsSUFBQUEsTUFBTSxDQUFDRCxNQUFELENBQU4sQ0FBZVEsT0FBZixDQUF1Qk0sUUFBdkI7QUFDRCxHQWJEO0FBY0QsQ0FwQk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFNodWZmbGVkQ2hvaWNlcywgbG9ja0Nob2ljZXMgfSBmcm9tICcuLi9wZXJzaXN0ZW5jZSc7XG5cbmRlc2NyaWJlKCdnZXRTaHVmZmxlZENob2ljZXMnLCAoKSA9PiB7XG4gIGxldCBjaG9pY2VzLCBzZXNzaW9uLCB1cGRhdGVTZXNzaW9uLCBrZXk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgdXBkYXRlU2Vzc2lvbiA9IGplc3QuZm4oKS5tb2NrUmVzb2x2ZWRWYWx1ZShbXSk7XG4gICAgc2Vzc2lvbiA9IHtcbiAgICAgIGlkOiAnMScsXG4gICAgICBlbGVtZW50OiAnZWxlbWVudCcsXG4gICAgfTtcbiAgICBjaG9pY2VzID0gW1xuICAgICAge1xuICAgICAgICB2YWx1ZTogMSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAyLFxuICAgICAgfSxcbiAgICBdO1xuICAgIGtleSA9ICd2YWx1ZSc7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCcwIGtleScsICgpID0+IHtcbiAgICBpdCgnY2FsbHMgdXBkYXRlIHNlc3Npb24gdy8gMCBhcyBhIGtleScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGdldFNodWZmbGVkQ2hvaWNlcyhbeyB2YWx1ZTogMCB9LCB7IHZhbHVlOiAxIH1dLCBzZXNzaW9uLCB1cGRhdGVTZXNzaW9uLCAndmFsdWUnKTtcbiAgICAgIGV4cGVjdCh1cGRhdGVTZXNzaW9uKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChzZXNzaW9uLmlkLCBzZXNzaW9uLmVsZW1lbnQsIHtcbiAgICAgICAgc2h1ZmZsZWRWYWx1ZXM6IGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoWzAsIDFdKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnaGFuZGxlcyBudWxsIHZhbHVlcyBpbiBzZXNzaW9uJywgKCkgPT4ge1xuICAgIGJlZm9yZUVhY2goYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0U2h1ZmZsZWRDaG9pY2VzKGNob2ljZXMsIHsgLi4uc2Vzc2lvbiwgc2h1ZmZsZWRWYWx1ZXM6IFtudWxsXSB9LCB1cGRhdGVTZXNzaW9uLCAndmFsdWUnKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyB1cGRhdGVTZXNzaW9uIHcvIG5ldyBzaHVmZmxlIGNvcyBbbnVsbF0gaXMgdHJlYXRlZCBhcyBlbXB0eScsICgpID0+IHtcbiAgICAgIGV4cGVjdCh1cGRhdGVTZXNzaW9uKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChzZXNzaW9uLmlkLCBzZXNzaW9uLmVsZW1lbnQsIHtcbiAgICAgICAgc2h1ZmZsZWRWYWx1ZXM6IGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoWzEsIDJdKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ2JhZCBzaHVmZmxlIGdlbmVyYXRpb24gZG9lcyBub3QgY2FsbCB1cGRhdGVTZXNzaW9uJywgKCkgPT4ge1xuICAgIGJlZm9yZUVhY2goYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0U2h1ZmZsZWRDaG9pY2VzKGNob2ljZXMsIHt9LCB1cGRhdGVTZXNzaW9uLCAnZm9vJyk7XG4gICAgfSk7XG4gICAgaXQoJ2RvZXMgbm90IGNhbGwgdXBkYXRlIHNlc3Npb24nLCAoKSA9PiB7XG4gICAgICBleHBlY3QodXBkYXRlU2Vzc2lvbikubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nlc3Npb24gZG9lcyBub3QgZXhpc3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgdW5kZWZpbmVkIGZvciBlbXB0eSBzZXNzaW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0U2h1ZmZsZWRDaG9pY2VzKGNob2ljZXMsIHVuZGVmaW5lZCwgdXBkYXRlU2Vzc2lvbiwga2V5KTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nlc3Npb24gZXhpc3RzJywgKCkgPT4ge1xuICAgIGl0KCdyZXR1cm5zIGNvbXBhY3QgY2hvaWNlcyBpZiBzZXNzaW9uIGhhcyBzaHVmZmxlZFZhbHVlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIHNlc3Npb24gPSB7IHNodWZmbGVkVmFsdWVzOiBbMiwgMV0gfTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGdldFNodWZmbGVkQ2hvaWNlcyhjaG9pY2VzLCBzZXNzaW9uLCB1cGRhdGVTZXNzaW9uLCBrZXkpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3QuYXJyYXlDb250YWluaW5nKGNob2ljZXMpKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZXR1cm5zIHNodWZmbGVkIGNob2ljZXMgaWYgdXBkYXRlU2Vzc2lvbiBpcyBhIGZ1bmN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgc2Vzc2lvbiA9IHt9O1xuICAgICAgdXBkYXRlU2Vzc2lvbiA9IGplc3QuZm4oKS5tb2NrUmVzb2x2ZWRWYWx1ZSgpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0U2h1ZmZsZWRDaG9pY2VzKGNob2ljZXMsIHNlc3Npb24sIHVwZGF0ZVNlc3Npb24sIGtleSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoY2hvaWNlcykpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NhbGxzIHVwZGF0ZVNlc3Npb24gYXMgZXhwZWN0ZWQgaWYgdXBkYXRlU2Vzc2lvbiBpcyBhIGZ1bmN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgc2Vzc2lvbiA9IHsgaWQ6ICcxJywgZWxlbWVudDogJ3BpZS1lbGVtZW50JyB9O1xuICAgICAgYXdhaXQgZ2V0U2h1ZmZsZWRDaG9pY2VzKGNob2ljZXMsIHNlc3Npb24sIHVwZGF0ZVNlc3Npb24sIGtleSk7XG4gICAgICBleHBlY3QodXBkYXRlU2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoJzEnLCAncGllLWVsZW1lbnQnLCB7XG4gICAgICAgIHNodWZmbGVkVmFsdWVzOiBleHBlY3QuYXJyYXlDb250YWluaW5nKFsxLCAyXSksXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2xvY2tDaG9pY2VzJywgKCkgPT4ge1xuICBjb25zdCBlbnYgPSAobG9ja0Nob2ljZU9yZGVyLCByb2xlID0gJ3N0dWRlbnQnKSA9PiAoe1xuICAgICdAcGllLWVsZW1lbnQnOiB7IGxvY2tDaG9pY2VPcmRlciB9LFxuICAgIHJvbGUsXG4gIH0pO1xuICBjb25zdCBzZXNzaW9uID0gKHNodWZmbGVkVmFsdWVzKSA9PiAoeyBzaHVmZmxlZFZhbHVlcyB9KTtcbiAgaXQuZWFjaGBcbiAgICBtb2RlbExvY2sgICAgfCBzZXNzaW9uICAgICAgICAgICAgfCBlbnYgICAgICAgICAgICAgICAgICAgICAgICAgfCBleHBlY3RlZFxuICAgICR7dHJ1ZX0gICAgICB8ICR7c2Vzc2lvbigpfSAgICAgICB8ICR7ZW52KHRydWUpfSAgICAgICAgICAgICAgICB8ICR7dHJ1ZX1cbiAgICAke3RydWV9ICAgICAgfCAke3Nlc3Npb24oKX0gICAgICAgfCAke2VudihmYWxzZSl9ICAgICAgICAgICAgICAgfCAke3RydWV9XG4gICAgJHtmYWxzZX0gICAgIHwgJHtzZXNzaW9uKCl9ICAgICAgIHwgJHtlbnYodHJ1ZSl9ICAgICAgICAgICAgICAgIHwgJHt0cnVlfVxuICAgICR7ZmFsc2V9ICAgICB8ICR7c2Vzc2lvbigpfSAgICAgICB8ICR7ZW52KGZhbHNlKX0gICAgICAgICAgICAgICB8ICR7ZmFsc2V9XG4gICAgJHtmYWxzZX0gICAgIHwgJHtzZXNzaW9uKCl9ICAgICAgIHwgJHt1bmRlZmluZWR9ICAgICAgICAgICAgICAgIHwgJHtmYWxzZX1cbiAgICAke2ZhbHNlfSAgICAgfCAke3VuZGVmaW5lZH0gICAgICAgfCAke3VuZGVmaW5lZH0gICAgICAgICAgICAgICAgfCAke2ZhbHNlfVxuICAgICR7dW5kZWZpbmVkfSB8ICR7c2Vzc2lvbigpfSAgICAgICB8ICR7ZW52KGZhbHNlKX0gICAgICAgICAgICAgICB8ICR7ZmFsc2V9XG4gICAgJHt1bmRlZmluZWR9IHwgJHtzZXNzaW9uKCl9ICAgICAgIHwgJHtlbnYodW5kZWZpbmVkKX0gICAgICAgICAgIHwgJHtmYWxzZX1cbiAgICAke2ZhbHNlfSAgICAgfCAke3Nlc3Npb24oKX0gICAgICAgfCAke2VudihmYWxzZSwgJ2luc3RydWN0b3InKX0gfCAke3RydWV9XG4gICAgJHtmYWxzZX0gICAgIHwgJHtzZXNzaW9uKFswLCAxXSl9IHwgJHtlbnYoZmFsc2UsICdpbnN0cnVjdG9yJyl9IHwgJHt0cnVlfVxuICAgICR7ZmFsc2V9ICAgICB8ICR7dW5kZWZpbmVkfSAgICAgICB8ICR7ZW52KGZhbHNlLCAnaW5zdHJ1Y3RvcicpfSB8ICR7dHJ1ZX1cbiAgYCgnMS4gbW9kZWwubG9ja0Nob2ljZU9yZGVyOiAkbW9kZWxMb2NrLCAkc2Vzc2lvbiwgJGVudiA9PiAkZXhwZWN0ZWQnLCAoeyBtb2RlbExvY2ssIHNlc3Npb24sIGVudiwgZXhwZWN0ZWQgfSkgPT4ge1xuICAgIGNvbnN0IG1vZGVsID0geyBsb2NrQ2hvaWNlT3JkZXI6IG1vZGVsTG9jayB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGxvY2tDaG9pY2VzKG1vZGVsLCBzZXNzaW9uLCBlbnYpO1xuICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnbG9ja0Nob2ljZXMgbW9kJywgKCkgPT4ge1xuICBjb25zdCBlbnYgPSAobG9ja0Nob2ljZU9yZGVyLCByb2xlID0gJ3N0dWRlbnQnKSA9PiAoe1xuICAgICdAcGllLWVsZW1lbnQnOiB7IGxvY2tDaG9pY2VPcmRlciB9LFxuICAgIHJvbGUsXG4gIH0pO1xuICBjb25zdCBzZXNzaW9uID0gKGFuc3dlcnMgPSBbJ2ZvbycsICdiYXInXSkgPT4gKHsgYW5zd2VycyB9KTtcbiAgaXQuZWFjaGBcbiAgICBtb2RlbExvY2sgICAgfCBzZXNzaW9uICAgICAgfCBlbnYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZXhwZWN0ZWRcbiAgICAke3RydWV9ICAgICAgfCAke3Nlc3Npb24oKX0gfCAke2Vudih0cnVlKX0gICAgICAgICAgICAgICAgICAgIHwgJHt0cnVlfVxuICAgICR7dHJ1ZX0gICAgICB8ICR7c2Vzc2lvbigpfSB8ICR7ZW52KGZhbHNlKX0gICAgICAgICAgICAgICAgICAgfCAke3RydWV9XG4gICAgJHtmYWxzZX0gICAgIHwgJHtzZXNzaW9uKCl9IHwgJHtlbnYodHJ1ZSl9ICAgICAgICAgICAgICAgICAgICB8ICR7dHJ1ZX1cbiAgICAke2ZhbHNlfSAgICAgfCAke3Nlc3Npb24oKX0gfCAke2VudihmYWxzZSl9ICAgICAgICAgICAgICAgICAgIHwgJHtmYWxzZX1cbiAgICAke3VuZGVmaW5lZH0gfCAke3Nlc3Npb24oKX0gfCAke2Vudih0cnVlKX0gICAgICAgICAgICAgICAgICAgIHwgJHt0cnVlfVxuICAgICR7dW5kZWZpbmVkfSB8ICR7c2Vzc2lvbigpfSB8ICR7ZW52KHVuZGVmaW5lZCl9ICAgICAgICAgICAgICAgfCAke2ZhbHNlfVxuICAgICR7dW5kZWZpbmVkfSB8ICR7c2Vzc2lvbigpfSB8ICR7ZW52KHVuZGVmaW5lZCwgJ2luc3RydWN0b3InKX0gfCAke3RydWV9XG4gIGAoJzIuIG1vZGVsLmxvY2tDaG9pY2VPcmRlcjogJG1vZGVsTG9jaywgJHNlc3Npb24sICRlbnYgPT4gJGV4cGVjdGVkJywgKHsgbW9kZWxMb2NrLCBzZXNzaW9uLCBlbnYsIGV4cGVjdGVkIH0pID0+IHtcbiAgICBjb25zdCBtb2RlbCA9IHsgbG9ja0Nob2ljZU9yZGVyOiBtb2RlbExvY2sgfTtcbiAgICBjb25zdCByZXN1bHQgPSBsb2NrQ2hvaWNlcyhtb2RlbCwgc2Vzc2lvbiwgZW52KTtcbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2xvY2tDaG9pY2VzJywgKCkgPT4ge1xuICBjb25zdCBlbnYgPSAobG9ja0Nob2ljZU9yZGVyLCByb2xlID0gJ3N0dWRlbnQnKSA9PiAoe1xuICAgICdAcGllLWVsZW1lbnQnOiB7IGxvY2tDaG9pY2VPcmRlciB9LFxuICAgIHJvbGUsXG4gIH0pO1xuICBjb25zdCBzZXNzaW9uID0gKHNodWZmbGVkVmFsdWVzKSA9PiAoeyBzaHVmZmxlZFZhbHVlcywgYW5zd2VyczogWydmb28nLCAnYmFyJ10gfSk7XG4gIGl0LmVhY2hgXG4gICAgbW9kZWxMb2NrICAgIHwgc2Vzc2lvbiAgICAgIHwgZW52ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4cGVjdGVkXG4gICAgJHt0cnVlfSAgICAgIHwgJHtzZXNzaW9uKCl9IHwgJHtlbnYodHJ1ZSl9ICAgICAgICAgICAgICAgICAgICB8ICR7dHJ1ZX1cbiAgICAke3RydWV9ICAgICAgfCAke3Nlc3Npb24oKX0gfCAke2VudihmYWxzZSl9ICAgICAgICAgICAgICAgICAgIHwgJHt0cnVlfVxuICAgICR7ZmFsc2V9ICAgICB8ICR7c2Vzc2lvbigpfSB8ICR7ZW52KHRydWUpfSAgICAgICAgICAgICAgICAgICAgfCAke3RydWV9XG4gICAgJHtmYWxzZX0gICAgIHwgJHtzZXNzaW9uKCl9IHwgJHtlbnYoZmFsc2UpfSAgICAgICAgICAgICAgICAgICB8ICR7ZmFsc2V9XG4gICAgJHt1bmRlZmluZWR9IHwgJHtzZXNzaW9uKCl9IHwgJHtlbnYodHJ1ZSl9ICAgICAgICAgICAgICAgICAgICB8ICR7dHJ1ZX1cbiAgICAke3VuZGVmaW5lZH0gfCAke3Nlc3Npb24oKX0gfCAke2Vudih1bmRlZmluZWQpfSAgICAgICAgICAgICAgIHwgJHtmYWxzZX1cbiAgICAke3VuZGVmaW5lZH0gfCAke3Nlc3Npb24oKX0gfCAke2Vudih1bmRlZmluZWQsICdpbnN0cnVjdG9yJyl9IHwgJHt0cnVlfVxuICBgKCczLiBtb2RlbC5sb2NrQ2hvaWNlT3JkZXI6ICRtb2RlbExvY2ssICRlbnYgPT4gJGV4cGVjdGVkJywgKHsgbW9kZWxMb2NrLCBzZXNzaW9uLCBlbnYsIGV4cGVjdGVkIH0pID0+IHtcbiAgICBjb25zdCBtb2RlbCA9IHsgbG9ja0Nob2ljZU9yZGVyOiBtb2RlbExvY2sgfTtcbiAgICBjb25zdCByZXN1bHQgPSBsb2NrQ2hvaWNlcyhtb2RlbCwgc2Vzc2lvbiwgZW52KTtcbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
package/lib/index.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
Object.defineProperty(exports, "getShuffledChoices", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function get() {
|
|
11
|
-
return _persistence.getShuffledChoices;
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
Object.defineProperty(exports, "lockChoices", {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function get() {
|
|
17
|
-
return _persistence.lockChoices;
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
exports.partialScoring = void 0;
|
|
21
|
-
|
|
22
|
-
var partialScoring = _interopRequireWildcard(require("./partial-scoring"));
|
|
23
|
-
|
|
24
|
-
exports.partialScoring = partialScoring;
|
|
25
|
-
|
|
26
|
-
var _persistence = require("./persistence");
|
|
27
|
-
|
|
28
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
-
|
|
30
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUVBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGFydGlhbFNjb3JpbmcgZnJvbSAnLi9wYXJ0aWFsLXNjb3JpbmcnO1xuXG5leHBvcnQgeyBsb2NrQ2hvaWNlcywgZ2V0U2h1ZmZsZWRDaG9pY2VzIH0gZnJvbSAnLi9wZXJzaXN0ZW5jZSc7XG5leHBvcnQgeyBwYXJ0aWFsU2NvcmluZyB9O1xuIl19
|
package/lib/partial-scoring.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.enabled = void 0;
|
|
7
|
-
|
|
8
|
-
var enabled = function enabled(config, env, defaultValue) {
|
|
9
|
-
// if model.partialScoring = false
|
|
10
|
-
// - if env.partialScoring = false || env.partialScoring = true => use dichotomous scoring
|
|
11
|
-
// else if model.partialScoring = true || undefined
|
|
12
|
-
// - if env.partialScoring = false, use dichotomous scoring
|
|
13
|
-
// - else if env.partialScoring = true, use partial scoring
|
|
14
|
-
config = config || {};
|
|
15
|
-
env = env || {};
|
|
16
|
-
|
|
17
|
-
if (config.partialScoring === false) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (env.partialScoring === false) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return typeof defaultValue === 'boolean' ? defaultValue : true;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
exports.enabled = enabled;
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJ0aWFsLXNjb3JpbmcuanMiXSwibmFtZXMiOlsiZW5hYmxlZCIsImNvbmZpZyIsImVudiIsImRlZmF1bHRWYWx1ZSIsInBhcnRpYWxTY29yaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQU8sSUFBTUEsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsTUFBRCxFQUFTQyxHQUFULEVBQWNDLFlBQWQsRUFBK0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBRixFQUFBQSxNQUFNLEdBQUdBLE1BQU0sSUFBSSxFQUFuQjtBQUNBQyxFQUFBQSxHQUFHLEdBQUdBLEdBQUcsSUFBSSxFQUFiOztBQUVBLE1BQUlELE1BQU0sQ0FBQ0csY0FBUCxLQUEwQixLQUE5QixFQUFxQztBQUNuQyxXQUFPLEtBQVA7QUFDRDs7QUFFRCxNQUFJRixHQUFHLENBQUNFLGNBQUosS0FBdUIsS0FBM0IsRUFBa0M7QUFDaEMsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsU0FBTyxPQUFPRCxZQUFQLEtBQXdCLFNBQXhCLEdBQW9DQSxZQUFwQyxHQUFtRCxJQUExRDtBQUNELENBbEJNIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVuYWJsZWQgPSAoY29uZmlnLCBlbnYsIGRlZmF1bHRWYWx1ZSkgPT4ge1xuICAvLyBpZiBtb2RlbC5wYXJ0aWFsU2NvcmluZyA9IGZhbHNlXG4gIC8vICAtIGlmIGVudi5wYXJ0aWFsU2NvcmluZyA9IGZhbHNlIHx8IGVudi5wYXJ0aWFsU2NvcmluZyA9IHRydWUgPT4gdXNlIGRpY2hvdG9tb3VzIHNjb3JpbmdcbiAgLy8gZWxzZSBpZiBtb2RlbC5wYXJ0aWFsU2NvcmluZyA9IHRydWUgfHwgdW5kZWZpbmVkXG4gIC8vICAtIGlmIGVudi5wYXJ0aWFsU2NvcmluZyA9IGZhbHNlLCB1c2UgZGljaG90b21vdXMgc2NvcmluZ1xuICAvLyAgLSBlbHNlIGlmIGVudi5wYXJ0aWFsU2NvcmluZyA9IHRydWUsIHVzZSBwYXJ0aWFsIHNjb3JpbmdcbiAgY29uZmlnID0gY29uZmlnIHx8IHt9O1xuICBlbnYgPSBlbnYgfHwge307XG5cbiAgaWYgKGNvbmZpZy5wYXJ0aWFsU2NvcmluZyA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoZW52LnBhcnRpYWxTY29yaW5nID09PSBmYWxzZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0eXBlb2YgZGVmYXVsdFZhbHVlID09PSAnYm9vbGVhbicgPyBkZWZhdWx0VmFsdWUgOiB0cnVlO1xufTtcbiJdfQ==
|
package/lib/persistence.js
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.lockChoices = exports.getShuffledChoices = exports.compact = void 0;
|
|
9
|
-
|
|
10
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
-
|
|
12
|
-
var _get = _interopRequireDefault(require("lodash/get"));
|
|
13
|
-
|
|
14
|
-
var _shuffle = _interopRequireDefault(require("lodash/shuffle"));
|
|
15
|
-
|
|
16
|
-
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
17
|
-
|
|
18
|
-
// eslint-disable-next-line no-console
|
|
19
|
-
var lg = function lg(n) {
|
|
20
|
-
return console[n].bind(console, 'controller-utils:');
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
var debug = lg('debug');
|
|
24
|
-
var log = lg('log');
|
|
25
|
-
var warn = lg('warn');
|
|
26
|
-
var error = lg('error');
|
|
27
|
-
|
|
28
|
-
var compact = function compact(arr) {
|
|
29
|
-
if (Array.isArray(arr)) {
|
|
30
|
-
return arr.filter(function (v) {
|
|
31
|
-
return v !== null && v !== undefined;
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return arr;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
exports.compact = compact;
|
|
39
|
-
|
|
40
|
-
var getShuffledChoices = function getShuffledChoices(choices, session, updateSession, choiceKey) {
|
|
41
|
-
return new Promise(function (resolve) {
|
|
42
|
-
var _session$data;
|
|
43
|
-
|
|
44
|
-
log('updateSession type: ', (0, _typeof2["default"])(updateSession));
|
|
45
|
-
log('session: ', session);
|
|
46
|
-
var currentShuffled = compact((session === null || session === void 0 ? void 0 : (_session$data = session.data) === null || _session$data === void 0 ? void 0 : _session$data.shuffledValues) || (session === null || session === void 0 ? void 0 : session.shuffledValues) || []);
|
|
47
|
-
|
|
48
|
-
if (!session) {
|
|
49
|
-
// eslint-disable-next-line quotes
|
|
50
|
-
warn("unable to save shuffled choices because there's no session.");
|
|
51
|
-
resolve(undefined);
|
|
52
|
-
} else if (!(0, _isEmpty["default"])(currentShuffled)) {
|
|
53
|
-
var _session$data2;
|
|
54
|
-
|
|
55
|
-
debug('use shuffledValues to sort the choices...', (_session$data2 = session.data) === null || _session$data2 === void 0 ? void 0 : _session$data2.shuffledValues);
|
|
56
|
-
resolve(compact(currentShuffled.map(function (v) {
|
|
57
|
-
return choices.find(function (c) {
|
|
58
|
-
return c[choiceKey] === v;
|
|
59
|
-
});
|
|
60
|
-
})));
|
|
61
|
-
} else {
|
|
62
|
-
var shuffledChoices = (0, _shuffle["default"])(choices);
|
|
63
|
-
|
|
64
|
-
if (updateSession && typeof updateSession === 'function') {
|
|
65
|
-
try {
|
|
66
|
-
//Note: session.id refers to the id of the element within a session
|
|
67
|
-
var shuffledValues = compact(shuffledChoices.map(function (c) {
|
|
68
|
-
return c[choiceKey];
|
|
69
|
-
}));
|
|
70
|
-
log('try to save shuffledValues to session...', shuffledValues);
|
|
71
|
-
log('call updateSession... ', session.id, session.element);
|
|
72
|
-
|
|
73
|
-
if ((0, _isEmpty["default"])(shuffledValues)) {
|
|
74
|
-
error("shuffledValues is an empty array? - refusing to call updateSession: shuffledChoices: ".concat(JSON.stringify(shuffledChoices), ", key: ").concat(choiceKey));
|
|
75
|
-
} else {
|
|
76
|
-
updateSession(session.id, session.element, {
|
|
77
|
-
shuffledValues: shuffledValues
|
|
78
|
-
})["catch"](function (e) {
|
|
79
|
-
return (// eslint-disable-next-line no-console
|
|
80
|
-
console.error('update session failed for: ', session.id, e)
|
|
81
|
-
);
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
} catch (e) {
|
|
85
|
-
warn('unable to save shuffled order for choices');
|
|
86
|
-
error(e);
|
|
87
|
-
}
|
|
88
|
-
} else {
|
|
89
|
-
warn('unable to save shuffled choices, shuffle will happen every time.');
|
|
90
|
-
} //save this shuffle to the session for later retrieval
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
resolve(shuffledChoices);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
};
|
|
97
|
-
/**
|
|
98
|
-
* If we return:
|
|
99
|
-
* - true - that means that the order of the choices will be ordinal (as is created in the configure item)
|
|
100
|
-
* - false - that means the getShuffledChoices above will be called and that in turn means that we either
|
|
101
|
-
* return the shuffled values on the session (if any exists) or we shuffle the choices
|
|
102
|
-
* @param model - model to check if we should lock order
|
|
103
|
-
* @param session - session to check if we should lock order
|
|
104
|
-
* @param env - env to check if we should lock order
|
|
105
|
-
* @returns {boolean}
|
|
106
|
-
*/
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
exports.getShuffledChoices = getShuffledChoices;
|
|
110
|
-
|
|
111
|
-
var lockChoices = function lockChoices(model, session, env) {
|
|
112
|
-
if (model.lockChoiceOrder) {
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
log('lockChoiceOrder: ', (0, _get["default"])(env, ['@pie-element', 'lockChoiceOrder'], false));
|
|
117
|
-
|
|
118
|
-
if ((0, _get["default"])(env, ['@pie-element', 'lockChoiceOrder'], false)) {
|
|
119
|
-
return true;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
var role = (0, _get["default"])(env, 'role', 'student');
|
|
123
|
-
|
|
124
|
-
if (role === 'instructor') {
|
|
125
|
-
// TODO: .. in the future the instructor can toggle between ordinal and shuffled here, so keeping this code until then
|
|
126
|
-
|
|
127
|
-
/*const alreadyShuffled = hasShuffledValues(session);
|
|
128
|
-
if (alreadyShuffled) {
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
|
-
return true;*/
|
|
132
|
-
return true;
|
|
133
|
-
} // here it's a student, so don't lock and it will shuffle if needs be
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
return false;
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
exports.lockChoices = lockChoices;
|
|
140
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wZXJzaXN0ZW5jZS5qcyJdLCJuYW1lcyI6WyJsZyIsIm4iLCJjb25zb2xlIiwiYmluZCIsImRlYnVnIiwibG9nIiwid2FybiIsImVycm9yIiwiY29tcGFjdCIsImFyciIsIkFycmF5IiwiaXNBcnJheSIsImZpbHRlciIsInYiLCJ1bmRlZmluZWQiLCJnZXRTaHVmZmxlZENob2ljZXMiLCJjaG9pY2VzIiwic2Vzc2lvbiIsInVwZGF0ZVNlc3Npb24iLCJjaG9pY2VLZXkiLCJQcm9taXNlIiwicmVzb2x2ZSIsImN1cnJlbnRTaHVmZmxlZCIsImRhdGEiLCJzaHVmZmxlZFZhbHVlcyIsIm1hcCIsImZpbmQiLCJjIiwic2h1ZmZsZWRDaG9pY2VzIiwiaWQiLCJlbGVtZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsImUiLCJsb2NrQ2hvaWNlcyIsIm1vZGVsIiwiZW52IiwibG9ja0Nob2ljZU9yZGVyIiwicm9sZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTtBQUNBLElBQU1BLEVBQUUsR0FBRyxTQUFMQSxFQUFLLENBQUNDLENBQUQ7QUFBQSxTQUFPQyxPQUFPLENBQUNELENBQUQsQ0FBUCxDQUFXRSxJQUFYLENBQWdCRCxPQUFoQixFQUF5QixtQkFBekIsQ0FBUDtBQUFBLENBQVg7O0FBQ0EsSUFBTUUsS0FBSyxHQUFHSixFQUFFLENBQUMsT0FBRCxDQUFoQjtBQUNBLElBQU1LLEdBQUcsR0FBR0wsRUFBRSxDQUFDLEtBQUQsQ0FBZDtBQUNBLElBQU1NLElBQUksR0FBR04sRUFBRSxDQUFDLE1BQUQsQ0FBZjtBQUNBLElBQU1PLEtBQUssR0FBR1AsRUFBRSxDQUFDLE9BQUQsQ0FBaEI7O0FBRU8sSUFBTVEsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsR0FBRCxFQUFTO0FBQzlCLE1BQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjRixHQUFkLENBQUosRUFBd0I7QUFDdEIsV0FBT0EsR0FBRyxDQUFDRyxNQUFK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O0FBQ0wzQixRQUFBQSxJQUFJLENBQUMsa0VBQUQsQ0FBSjtBQUNELE9BM0JJLENBNEJMOzs7QUFDQWUsTUFBQUEsT0FBTyxDQUFDTyxlQUFELENBQVA7QUFDRDtBQUNGLEdBNUNELENBRGdDO0FBQUEsQ0FBM0I7QUErQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sSUFBTU0sV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsS0FBRCxFQUFRbEIsT0FBUixFQUFpQm1CLEdBQWpCLEVBQXlCO0FBQ2xELE1BQUlELEtBQUssQ0FBQ0UsZUFBVixFQUEyQjtBQUN6QixXQUFPLElBQVA7QUFDRDs7QUFFRGhDLEVBQUFBLEdBQUcsQ0FBQyxtQkFBRCxFQUFzQixxQkFBSStCLEdBQUosRUFBUyxDQUFDLGNBQUQsRUFBaUIsaUJBQWpCLENBQVQsRUFBOEMsS0FBOUMsQ0FBdEIsQ0FBSDs7QUFFQSxNQUFJLHFCQUFJQSxHQUFKLEVBQVMsQ0FBQyxjQUFELEVBQWlCLGlCQUFqQixDQUFULEVBQThDLEtBQTlDLENBQUosRUFBMEQ7QUFDeEQsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQsTUFBTUUsSUFBSSxHQUFHLHFCQUFJRixHQUFKLEVBQVMsTUFBVCxFQUFpQixTQUFqQixDQUFiOztBQUVBLE1BQUlFLElBQUksS0FBSyxZQUFiLEVBQTJCO0FBQ3pCOztBQUNBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFHSSxXQUFPLElBQVA7QUFDRCxHQXZCaUQsQ0F5QmxEOzs7QUFDQSxTQUFPLEtBQVA7QUFDRCxDQTNCTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgc2h1ZmZsZSBmcm9tICdsb2Rhc2gvc2h1ZmZsZSc7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG5jb25zdCBsZyA9IChuKSA9PiBjb25zb2xlW25dLmJpbmQoY29uc29sZSwgJ2NvbnRyb2xsZXItdXRpbHM6Jyk7XG5jb25zdCBkZWJ1ZyA9IGxnKCdkZWJ1ZycpO1xuY29uc3QgbG9nID0gbGcoJ2xvZycpO1xuY29uc3Qgd2FybiA9IGxnKCd3YXJuJyk7XG5jb25zdCBlcnJvciA9IGxnKCdlcnJvcicpO1xuXG5leHBvcnQgY29uc3QgY29tcGFjdCA9IChhcnIpID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkge1xuICAgIHJldHVybiBhcnIuZmlsdGVyKCh2KSA9PiB2ICE9PSBudWxsICYmIHYgIT09IHVuZGVmaW5lZCk7XG4gIH1cbiAgcmV0dXJuIGFycjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTaHVmZmxlZENob2ljZXMgPSAoY2hvaWNlcywgc2Vzc2lvbiwgdXBkYXRlU2Vzc2lvbiwgY2hvaWNlS2V5KSA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGxvZygndXBkYXRlU2Vzc2lvbiB0eXBlOiAnLCB0eXBlb2YgdXBkYXRlU2Vzc2lvbik7XG4gICAgbG9nKCdzZXNzaW9uOiAnLCBzZXNzaW9uKTtcblxuICAgIGNvbnN0IGN1cnJlbnRTaHVmZmxlZCA9IGNvbXBhY3Qoc2Vzc2lvbj8uZGF0YT8uc2h1ZmZsZWRWYWx1ZXMgfHwgc2Vzc2lvbj8uc2h1ZmZsZWRWYWx1ZXMgfHwgW10pO1xuXG4gICAgaWYgKCFzZXNzaW9uKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcXVvdGVzXG4gICAgICB3YXJuKFwidW5hYmxlIHRvIHNhdmUgc2h1ZmZsZWQgY2hvaWNlcyBiZWNhdXNlIHRoZXJlJ3Mgbm8gc2Vzc2lvbi5cIik7XG4gICAgICByZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfSBlbHNlIGlmICghaXNFbXB0eShjdXJyZW50U2h1ZmZsZWQpKSB7XG4gICAgICBkZWJ1ZygndXNlIHNodWZmbGVkVmFsdWVzIHRvIHNvcnQgdGhlIGNob2ljZXMuLi4nLCBzZXNzaW9uLmRhdGE/LnNodWZmbGVkVmFsdWVzKTtcbiAgICAgIHJlc29sdmUoY29tcGFjdChjdXJyZW50U2h1ZmZsZWQubWFwKCh2KSA9PiBjaG9pY2VzLmZpbmQoKGMpID0+IGNbY2hvaWNlS2V5XSA9PT0gdikpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNodWZmbGVkQ2hvaWNlcyA9IHNodWZmbGUoY2hvaWNlcyk7XG5cbiAgICAgIGlmICh1cGRhdGVTZXNzaW9uICYmIHR5cGVvZiB1cGRhdGVTZXNzaW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy9Ob3RlOiBzZXNzaW9uLmlkIHJlZmVycyB0byB0aGUgaWQgb2YgdGhlIGVsZW1lbnQgd2l0aGluIGEgc2Vzc2lvblxuICAgICAgICAgIGNvbnN0IHNodWZmbGVkVmFsdWVzID0gY29tcGFjdChzaHVmZmxlZENob2ljZXMubWFwKChjKSA9PiBjW2Nob2ljZUtleV0pKTtcbiAgICAgICAgICBsb2coJ3RyeSB0byBzYXZlIHNodWZmbGVkVmFsdWVzIHRvIHNlc3Npb24uLi4nLCBzaHVmZmxlZFZhbHVlcyk7XG4gICAgICAgICAgbG9nKCdjYWxsIHVwZGF0ZVNlc3Npb24uLi4gJywgc2Vzc2lvbi5pZCwgc2Vzc2lvbi5lbGVtZW50KTtcbiAgICAgICAgICBpZiAoaXNFbXB0eShzaHVmZmxlZFZhbHVlcykpIHtcbiAgICAgICAgICAgIGVycm9yKFxuICAgICAgICAgICAgICBgc2h1ZmZsZWRWYWx1ZXMgaXMgYW4gZW1wdHkgYXJyYXk/IC0gcmVmdXNpbmcgdG8gY2FsbCB1cGRhdGVTZXNzaW9uOiBzaHVmZmxlZENob2ljZXM6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgICAgc2h1ZmZsZWRDaG9pY2VzLFxuICAgICAgICAgICAgICApfSwga2V5OiAke2Nob2ljZUtleX1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXBkYXRlU2Vzc2lvbihzZXNzaW9uLmlkLCBzZXNzaW9uLmVsZW1lbnQsIHsgc2h1ZmZsZWRWYWx1ZXMgfSkuY2F0Y2goKGUpID0+XG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ3VwZGF0ZSBzZXNzaW9uIGZhaWxlZCBmb3I6ICcsIHNlc3Npb24uaWQsIGUpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB3YXJuKCd1bmFibGUgdG8gc2F2ZSBzaHVmZmxlZCBvcmRlciBmb3IgY2hvaWNlcycpO1xuICAgICAgICAgIGVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3YXJuKCd1bmFibGUgdG8gc2F2ZSBzaHVmZmxlZCBjaG9pY2VzLCBzaHVmZmxlIHdpbGwgaGFwcGVuIGV2ZXJ5IHRpbWUuJyk7XG4gICAgICB9XG4gICAgICAvL3NhdmUgdGhpcyBzaHVmZmxlIHRvIHRoZSBzZXNzaW9uIGZvciBsYXRlciByZXRyaWV2YWxcbiAgICAgIHJlc29sdmUoc2h1ZmZsZWRDaG9pY2VzKTtcbiAgICB9XG4gIH0pO1xuXG4vKipcbiAqIElmIHdlIHJldHVybjpcbiAqIC0gdHJ1ZSAtIHRoYXQgbWVhbnMgdGhhdCB0aGUgb3JkZXIgb2YgdGhlIGNob2ljZXMgd2lsbCBiZSBvcmRpbmFsIChhcyBpcyBjcmVhdGVkIGluIHRoZSBjb25maWd1cmUgaXRlbSlcbiAqIC0gZmFsc2UgLSB0aGF0IG1lYW5zIHRoZSBnZXRTaHVmZmxlZENob2ljZXMgYWJvdmUgd2lsbCBiZSBjYWxsZWQgYW5kIHRoYXQgaW4gdHVybiBtZWFucyB0aGF0IHdlIGVpdGhlclxuICogcmV0dXJuIHRoZSBzaHVmZmxlZCB2YWx1ZXMgb24gdGhlIHNlc3Npb24gKGlmIGFueSBleGlzdHMpIG9yIHdlIHNodWZmbGUgdGhlIGNob2ljZXNcbiAqIEBwYXJhbSBtb2RlbCAtIG1vZGVsIHRvIGNoZWNrIGlmIHdlIHNob3VsZCBsb2NrIG9yZGVyXG4gKiBAcGFyYW0gc2Vzc2lvbiAtIHNlc3Npb24gdG8gY2hlY2sgaWYgd2Ugc2hvdWxkIGxvY2sgb3JkZXJcbiAqIEBwYXJhbSBlbnYgLSBlbnYgdG8gY2hlY2sgaWYgd2Ugc2hvdWxkIGxvY2sgb3JkZXJcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgY29uc3QgbG9ja0Nob2ljZXMgPSAobW9kZWwsIHNlc3Npb24sIGVudikgPT4ge1xuICBpZiAobW9kZWwubG9ja0Nob2ljZU9yZGVyKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBsb2coJ2xvY2tDaG9pY2VPcmRlcjogJywgZ2V0KGVudiwgWydAcGllLWVsZW1lbnQnLCAnbG9ja0Nob2ljZU9yZGVyJ10sIGZhbHNlKSk7XG5cbiAgaWYgKGdldChlbnYsIFsnQHBpZS1lbGVtZW50JywgJ2xvY2tDaG9pY2VPcmRlciddLCBmYWxzZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IHJvbGUgPSBnZXQoZW52LCAncm9sZScsICdzdHVkZW50Jyk7XG5cbiAgaWYgKHJvbGUgPT09ICdpbnN0cnVjdG9yJykge1xuICAgIC8vIFRPRE86IC4uIGluIHRoZSBmdXR1cmUgdGhlIGluc3RydWN0b3IgY2FuIHRvZ2dsZSBiZXR3ZWVuIG9yZGluYWwgYW5kIHNodWZmbGVkIGhlcmUsIHNvIGtlZXBpbmcgdGhpcyBjb2RlIHVudGlsIHRoZW5cbiAgICAvKmNvbnN0IGFscmVhZHlTaHVmZmxlZCA9IGhhc1NodWZmbGVkVmFsdWVzKHNlc3Npb24pO1xuXG4gICAgaWYgKGFscmVhZHlTaHVmZmxlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlOyovXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBoZXJlIGl0J3MgYSBzdHVkZW50LCBzbyBkb24ndCBsb2NrIGFuZCBpdCB3aWxsIHNodWZmbGUgaWYgbmVlZHMgYmVcbiAgcmV0dXJuIGZhbHNlO1xufTtcbiJdfQ==
|