@quesmed/types 1.0.2 → 1.0.6
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/gql_input_output_types/User.d.ts +12 -0
- package/gql_input_output_types/User.js +2 -0
- package/gql_input_output_types/index.d.ts +74 -0
- package/gql_input_output_types/index.js +2 -0
- package/index.d.ts +16 -0
- package/index.js +20 -0
- package/models/Card.d.ts +15 -0
- package/models/Card.js +2 -0
- package/models/Chapter.d.ts +12 -0
- package/models/Chapter.js +2 -0
- package/models/Concept.d.ts +23 -0
- package/models/Concept.js +2 -0
- package/models/File.d.ts +10 -0
- package/models/File.js +2 -0
- package/models/Marksheet.d.ts +43 -0
- package/models/Marksheet.js +9 -0
- package/models/MockTest.d.ts +18 -0
- package/models/MockTest.js +2 -0
- package/models/OsceMarksheet.d.ts +55 -0
- package/models/OsceMarksheet.js +19 -0
- package/models/OsceStation.d.ts +39 -0
- package/models/OsceStation.js +12 -0
- package/models/Picture.d.ts +33 -0
- package/models/Picture.js +2 -0
- package/models/Promo.d.ts +14 -0
- package/models/Promo.js +2 -0
- package/models/Question.d.ts +54 -0
- package/models/Question.js +10 -0
- package/models/Subscription.d.ts +11 -0
- package/models/Subscription.js +2 -0
- package/models/Todo.d.ts +24 -0
- package/models/Todo.js +2 -0
- package/models/Token.d.ts +7 -0
- package/models/Token.js +2 -0
- package/models/{Topic.ts → Topic.d.ts} +4 -5
- package/models/Topic.js +2 -0
- package/models/Type.d.ts +7 -0
- package/models/Type.js +2 -0
- package/models/University.d.ts +5 -0
- package/models/University.js +2 -0
- package/models/User.d.ts +73 -0
- package/models/User.js +2 -0
- package/models/Video.d.ts +19 -0
- package/models/Video.js +2 -0
- package/models/{index.ts → index.d.ts} +0 -0
- package/models/index.js +31 -0
- package/package.json +6 -6
- package/resolvers/mutation/admin/algoliaSync.d.ts +10 -0
- package/resolvers/mutation/admin/algoliaSync.js +2 -0
- package/resolvers/mutation/admin/{index.ts → index.d.ts} +0 -0
- package/resolvers/mutation/admin/index.js +14 -0
- package/resolvers/mutation/admin/token.d.ts +24 -0
- package/resolvers/mutation/admin/token.js +2 -0
- package/resolvers/mutation/{index.ts → index.d.ts} +0 -0
- package/resolvers/mutation/index.js +14 -0
- package/resolvers/mutation/restricted/{agora.ts → agora.d.ts} +4 -6
- package/resolvers/mutation/restricted/agora.js +2 -0
- package/resolvers/mutation/restricted/contactUs.d.ts +16 -0
- package/resolvers/mutation/restricted/contactUs.js +2 -0
- package/resolvers/mutation/restricted/{index.ts → index.d.ts} +0 -0
- package/resolvers/mutation/restricted/index.js +22 -0
- package/resolvers/mutation/restricted/marksheet.d.ts +43 -0
- package/resolvers/mutation/restricted/marksheet.js +2 -0
- package/resolvers/mutation/restricted/mockTest.d.ts +15 -0
- package/resolvers/mutation/restricted/mockTest.js +2 -0
- package/resolvers/mutation/restricted/osce.d.ts +52 -0
- package/resolvers/mutation/restricted/osce.js +2 -0
- package/resolvers/mutation/restricted/questionDiscussion.d.ts +28 -0
- package/resolvers/mutation/restricted/questionDiscussion.js +2 -0
- package/resolvers/mutation/restricted/todo.d.ts +43 -0
- package/resolvers/mutation/restricted/todo.js +2 -0
- package/resolvers/mutation/restricted/token.d.ts +21 -0
- package/resolvers/mutation/restricted/token.js +2 -0
- package/resolvers/mutation/restricted/users.d.ts +25 -0
- package/resolvers/mutation/restricted/users.js +2 -0
- package/resolvers/mutation/restricted/{video.ts → video.d.ts} +3 -5
- package/resolvers/mutation/restricted/video.js +2 -0
- package/resolvers/mutation/stripe.d.ts +2 -0
- package/resolvers/mutation/stripe.js +2 -0
- package/resolvers/mutation/users.d.ts +30 -0
- package/resolvers/mutation/users.js +2 -0
- package/resolvers/mutation/validUserToken/{index.ts → index.d.ts} +0 -0
- package/resolvers/mutation/validUserToken/index.js +13 -0
- package/resolvers/mutation/validUserToken/user.d.ts +8 -0
- package/resolvers/mutation/validUserToken/user.js +2 -0
- package/resolvers/query/admin/getUserToken.d.ts +4 -0
- package/resolvers/query/admin/getUserToken.js +2 -0
- package/resolvers/query/admin/{index.ts → index.d.ts} +0 -0
- package/resolvers/query/admin/index.js +13 -0
- package/resolvers/query/{index.ts → index.d.ts} +0 -0
- package/resolvers/query/index.js +17 -0
- package/resolvers/query/restricted/anatomy.d.ts +3 -0
- package/resolvers/query/restricted/anatomy.js +2 -0
- package/resolvers/query/restricted/{index.ts → index.d.ts} +0 -0
- package/resolvers/query/restricted/index.js +22 -0
- package/resolvers/query/restricted/marksheet.d.ts +59 -0
- package/resolvers/query/restricted/marksheet.js +2 -0
- package/resolvers/query/restricted/mockTests.d.ts +9 -0
- package/resolvers/query/restricted/mockTests.js +2 -0
- package/resolvers/query/restricted/osce.d.ts +35 -0
- package/resolvers/query/restricted/osce.js +2 -0
- package/resolvers/query/restricted/quesBook.d.ts +3 -0
- package/resolvers/query/restricted/quesBook.js +2 -0
- package/resolvers/query/restricted/todos.d.ts +28 -0
- package/resolvers/query/restricted/todos.js +2 -0
- package/resolvers/query/restricted/topics.d.ts +20 -0
- package/resolvers/query/restricted/topics.js +2 -0
- package/resolvers/query/restricted/university.d.ts +15 -0
- package/resolvers/query/restricted/university.js +2 -0
- package/resolvers/query/restricted/user.d.ts +25 -0
- package/resolvers/query/restricted/user.js +2 -0
- package/resolvers/query/restricted/video.d.ts +10 -0
- package/resolvers/query/restricted/video.js +2 -0
- package/resolvers/query/sampleCards.d.ts +6 -0
- package/resolvers/query/sampleCards.js +2 -0
- package/resolvers/query/sampleQuestions.d.ts +6 -0
- package/resolvers/query/sampleQuestions.js +2 -0
- package/resolvers/query/{university.ts → university.d.ts} +2 -4
- package/resolvers/query/university.js +2 -0
- package/resolvers/query/user.d.ts +12 -0
- package/resolvers/query/user.js +2 -0
- package/resolvers/query/video.d.ts +14 -0
- package/resolvers/query/video.js +2 -0
- package/resolvers/subscription/{index.ts → index.d.ts} +0 -0
- package/resolvers/subscription/index.js +13 -0
- package/resolvers/subscription/osce.d.ts +44 -0
- package/resolvers/subscription/osce.js +24 -0
- package/utils/uuid4.d.ts +107 -0
- package/utils/uuid4.js +287 -0
- package/gql_input_output_types/User.ts +0 -12
- package/gql_input_output_types/index.ts +0 -87
- package/index.ts +0 -18
- package/models/Card.ts +0 -16
- package/models/Chapter.ts +0 -13
- package/models/Concept.ts +0 -25
- package/models/File.ts +0 -11
- package/models/Marksheet.ts +0 -48
- package/models/MockTest.ts +0 -20
- package/models/OsceMarksheet.ts +0 -61
- package/models/OsceStation.ts +0 -44
- package/models/Picture.ts +0 -37
- package/models/Promo.ts +0 -16
- package/models/Question.ts +0 -62
- package/models/Subscription.ts +0 -12
- package/models/Todo.ts +0 -26
- package/models/Token.ts +0 -8
- package/models/Type.ts +0 -5
- package/models/University.ts +0 -5
- package/models/User.ts +0 -78
- package/models/Video.ts +0 -20
- package/resolvers/mutation/admin/algoliaSync.ts +0 -19
- package/resolvers/mutation/admin/token.ts +0 -32
- package/resolvers/mutation/restricted/contactUs.ts +0 -18
- package/resolvers/mutation/restricted/marksheet.ts +0 -57
- package/resolvers/mutation/restricted/mockTest.ts +0 -21
- package/resolvers/mutation/restricted/osce.ts +0 -72
- package/resolvers/mutation/restricted/questionDiscussion.ts +0 -39
- package/resolvers/mutation/restricted/todo.ts +0 -55
- package/resolvers/mutation/restricted/token.ts +0 -28
- package/resolvers/mutation/restricted/users.ts +0 -31
- package/resolvers/mutation/stripe.ts +0 -3
- package/resolvers/mutation/users.ts +0 -38
- package/resolvers/mutation/validUserToken/user.ts +0 -11
- package/resolvers/query/admin/getUserToken.ts +0 -5
- package/resolvers/query/restricted/anatomy.ts +0 -5
- package/resolvers/query/restricted/marksheet.ts +0 -71
- package/resolvers/query/restricted/mockTests.ts +0 -13
- package/resolvers/query/restricted/osce.ts +0 -52
- package/resolvers/query/restricted/quesBook.ts +0 -4
- package/resolvers/query/restricted/todos.ts +0 -35
- package/resolvers/query/restricted/topics.ts +0 -25
- package/resolvers/query/restricted/university.ts +0 -16
- package/resolvers/query/restricted/user.ts +0 -31
- package/resolvers/query/restricted/video.ts +0 -13
- package/resolvers/query/sampleCards.ts +0 -7
- package/resolvers/query/sampleQuestions.ts +0 -7
- package/resolvers/query/user.ts +0 -17
- package/resolvers/query/video.ts +0 -20
- package/resolvers/subscription/osce.ts +0 -68
- package/utils/uuid4.ts +0 -286
package/utils/uuid4.js
ADDED
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class Uuid4 {
|
|
4
|
+
/**
|
|
5
|
+
* Generate a custom base 64 encoded UUID v4 (random).
|
|
6
|
+
*
|
|
7
|
+
* @param {Uint8Array} [data] Should normally be `undefined` to create a
|
|
8
|
+
* truly random v4 UUID.
|
|
9
|
+
* @returns {string} Returns a custom base 64 encoded UUID v4.
|
|
10
|
+
*/
|
|
11
|
+
static asBase64(data) {
|
|
12
|
+
// Add an initial 4 bit zero pad so result is always 22 chars long.
|
|
13
|
+
const binString = '0000' + Uuid4._asBinString(data);
|
|
14
|
+
let result = '';
|
|
15
|
+
let pieces = [
|
|
16
|
+
0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96, 102,
|
|
17
|
+
108, 114, 120, 126,
|
|
18
|
+
];
|
|
19
|
+
for (const piece of pieces) {
|
|
20
|
+
result += Uuid4._base64[binString.substr(piece, 6)];
|
|
21
|
+
}
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Generate a hexadecimal encoded UUID v4 (random).
|
|
26
|
+
*
|
|
27
|
+
* @param {Uint8Array} [data] Should normally be `undefined` to create a
|
|
28
|
+
* truly random v4 UUID.
|
|
29
|
+
* @returns {string} Returns a hexadecimal encoded UUID v4.
|
|
30
|
+
*/
|
|
31
|
+
static asHexString(data) {
|
|
32
|
+
const binString = Uuid4._asBinString(data);
|
|
33
|
+
let hexString = '';
|
|
34
|
+
const pieces = [0, 16, 32, 48, 64, 80, 96, 112];
|
|
35
|
+
for (const piece of pieces) {
|
|
36
|
+
hexString += parseInt(binString.substr(piece, 16), 2)
|
|
37
|
+
.toString(16)
|
|
38
|
+
.padStart(4, '0');
|
|
39
|
+
}
|
|
40
|
+
return hexString;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Generate a standard UUID v4 (random).
|
|
44
|
+
*
|
|
45
|
+
* @param {Uint8Array} [data] Should normally be `undefined` to create a
|
|
46
|
+
* truly random v4 UUID.
|
|
47
|
+
* @returns {string} Returns a standard UUID v4.
|
|
48
|
+
*/
|
|
49
|
+
static asUuid(data) {
|
|
50
|
+
const hex = Uuid4.asHexString(data);
|
|
51
|
+
return Uuid4.fromHexStringToUuid(hex);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Convert from a base 64 encoded to a hexadecimal encoded UUID.
|
|
55
|
+
*
|
|
56
|
+
* NOTE: This method does not verify input is valid UUID.
|
|
57
|
+
*
|
|
58
|
+
* @param {string} data A base 64 encoded UUID.
|
|
59
|
+
* @returns {string} Returns a hexadecimal encoded UUID.
|
|
60
|
+
*/
|
|
61
|
+
static fromBase64ToHexString(data) {
|
|
62
|
+
if (22 !== data.length) {
|
|
63
|
+
const mess = `Expected base 64 number length of 22 characters but was given length: ${data.length}`;
|
|
64
|
+
throw new RangeError(mess);
|
|
65
|
+
}
|
|
66
|
+
// Need switched keys and values so reverse lookups can be done.
|
|
67
|
+
let flipped = {};
|
|
68
|
+
for (const [key, value] of Object.entries(Uuid4._base64)) {
|
|
69
|
+
flipped[value] = key;
|
|
70
|
+
}
|
|
71
|
+
let binString = '';
|
|
72
|
+
for (let i = 0, len = data.length; i < len; ++i) {
|
|
73
|
+
binString += flipped[data[i]];
|
|
74
|
+
}
|
|
75
|
+
// Cut off 4 bit zero padding.
|
|
76
|
+
binString = binString.substr(-128);
|
|
77
|
+
let hexString = '';
|
|
78
|
+
const pieces = [0, 32, 64, 96];
|
|
79
|
+
for (const piece of pieces) {
|
|
80
|
+
hexString += parseInt(binString.substr(piece, 32), 2)
|
|
81
|
+
.toString(16)
|
|
82
|
+
.padStart(8, '0');
|
|
83
|
+
}
|
|
84
|
+
return hexString;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Convert from a base 64 encoded to a standard UUID.
|
|
88
|
+
*
|
|
89
|
+
* NOTE: This method does not verify input is valid UUID.
|
|
90
|
+
*
|
|
91
|
+
* @param {string} data The base 64 encoded UUID.
|
|
92
|
+
* @returns {string} Returns a standard UUID.
|
|
93
|
+
*/
|
|
94
|
+
static fromBase64ToUuid(data) {
|
|
95
|
+
const hexString = Uuid4.fromBase64ToHexString(data);
|
|
96
|
+
return Uuid4.fromHexStringToUuid(hexString);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Convert from a hexadecimal encoded to a base 64 encoded UUID.
|
|
100
|
+
*
|
|
101
|
+
* NOTE: This method does not verify input is valid UUID.
|
|
102
|
+
*
|
|
103
|
+
* @param {string} data The hexadecimal encoded UUID.
|
|
104
|
+
* @returns {string} Returns base 64 encoded UUID.
|
|
105
|
+
*/
|
|
106
|
+
static fromHexStringToBase64(data) {
|
|
107
|
+
if (32 !== data.length) {
|
|
108
|
+
const mess = `Expected hex string length of 32 characters but was given length: ${data.length}`;
|
|
109
|
+
throw new RangeError(mess);
|
|
110
|
+
}
|
|
111
|
+
let pieces = [0, 4, 8, 12, 16, 20, 24, 28];
|
|
112
|
+
let binString = '0000';
|
|
113
|
+
for (const piece of pieces) {
|
|
114
|
+
binString += parseInt(data.substr(piece, 4), 16)
|
|
115
|
+
.toString(2)
|
|
116
|
+
.padStart(16, '0');
|
|
117
|
+
}
|
|
118
|
+
let result = '';
|
|
119
|
+
pieces = [
|
|
120
|
+
0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96, 102,
|
|
121
|
+
108, 114, 120, 126,
|
|
122
|
+
];
|
|
123
|
+
for (const piece of pieces) {
|
|
124
|
+
result += Uuid4._base64[binString.substr(piece, 6)];
|
|
125
|
+
}
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Convert from a hexadecimal encoded to a standard UUID.
|
|
130
|
+
*
|
|
131
|
+
* NOTE: This method does not verify input is valid UUID.
|
|
132
|
+
*
|
|
133
|
+
* @param {string} data The hexadecimal encoded UUID.
|
|
134
|
+
* @returns {string} Returns a standard UUID.
|
|
135
|
+
*/
|
|
136
|
+
static fromHexStringToUuid(data) {
|
|
137
|
+
if (32 !== data.length) {
|
|
138
|
+
const mess = `Expected hex string length of 32 characters but was given length: ${data.length}`;
|
|
139
|
+
throw new RangeError(mess);
|
|
140
|
+
}
|
|
141
|
+
const pieces = [8, 4, 4, 4, 12];
|
|
142
|
+
let start = 0;
|
|
143
|
+
let hexArray = [];
|
|
144
|
+
for (const piece of pieces) {
|
|
145
|
+
hexArray.push(data.substr(start, piece));
|
|
146
|
+
start += piece;
|
|
147
|
+
}
|
|
148
|
+
return hexArray.join('-');
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Convert from a standard UUID to a base 64 encoded UUID.
|
|
152
|
+
*
|
|
153
|
+
* NOTE: This method does not verify input is valid UUID.
|
|
154
|
+
*
|
|
155
|
+
* @param {string} data The standard UUID.
|
|
156
|
+
* @returns {string} Returns base 64 encoded UUID.
|
|
157
|
+
*/
|
|
158
|
+
static fromUuidToBase64(data) {
|
|
159
|
+
const hexString = data.replace(/-/g, '');
|
|
160
|
+
return Uuid4.fromHexStringToBase64(hexString);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Convert from a standard UUID to a hexadecimal encoded UUID.
|
|
164
|
+
*
|
|
165
|
+
* NOTE: This method does not verify input is valid UUID.
|
|
166
|
+
*
|
|
167
|
+
* @param {string} data The standard UUID.
|
|
168
|
+
* @returns {string} Returns a hexadecimal encoded UUID.
|
|
169
|
+
*/
|
|
170
|
+
static fromUuidToHexString(data) {
|
|
171
|
+
return data.replace(/-/g, '');
|
|
172
|
+
}
|
|
173
|
+
get [Symbol.toStringTag]() {
|
|
174
|
+
return 'Uuid4';
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Helper method for the common parts of creating new UUID encoded as a binary string.
|
|
178
|
+
*
|
|
179
|
+
* @param {Uint8Array} [data] Should normally be `undefined` to create a
|
|
180
|
+
* truly random v4 UUID.
|
|
181
|
+
* @returns {string} Returns an UUID encoded as a binary string.
|
|
182
|
+
* @private
|
|
183
|
+
*/
|
|
184
|
+
static _asBinString(data) {
|
|
185
|
+
let binArray = data !== null && data !== void 0 ? data : Uuid4._getRandomArray();
|
|
186
|
+
if (16 !== binArray.length) {
|
|
187
|
+
const mess = `Expected data array length of 16 but was given length: ${binArray.length}`;
|
|
188
|
+
throw new RangeError(mess);
|
|
189
|
+
}
|
|
190
|
+
binArray[6] = (binArray[6] & 0x0f) | 0x40;
|
|
191
|
+
binArray[8] = (binArray[8] & 0x3f) | 0x80;
|
|
192
|
+
let binary = '';
|
|
193
|
+
for (const piece of binArray) {
|
|
194
|
+
binary += piece.toString(2).padStart(8, '0');
|
|
195
|
+
}
|
|
196
|
+
return binary;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Used to paste over differences in browser vs node secure random number generation.
|
|
200
|
+
*
|
|
201
|
+
* @returns {Uint8Array} Returns a new random number filled Uint8Array.
|
|
202
|
+
* @private
|
|
203
|
+
*/
|
|
204
|
+
static _getRandomArray() {
|
|
205
|
+
if (typeof window === 'undefined') {
|
|
206
|
+
let crypto = require('crypto');
|
|
207
|
+
return Uint8Array.from(crypto.randomBytes(16));
|
|
208
|
+
}
|
|
209
|
+
// `result` is modified in place.
|
|
210
|
+
let result = new Uint8Array(16);
|
|
211
|
+
window.crypto.getRandomValues(result);
|
|
212
|
+
return result;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Used in mapping from binary to base 64 during encoding.
|
|
217
|
+
*
|
|
218
|
+
* @type {object}
|
|
219
|
+
* @private
|
|
220
|
+
*/
|
|
221
|
+
Uuid4._base64 = {
|
|
222
|
+
'000000': 'A',
|
|
223
|
+
'000001': 'B',
|
|
224
|
+
'000010': 'C',
|
|
225
|
+
'000011': 'D',
|
|
226
|
+
'000100': 'E',
|
|
227
|
+
'000101': 'F',
|
|
228
|
+
'000110': 'G',
|
|
229
|
+
'000111': 'H',
|
|
230
|
+
'001000': 'I',
|
|
231
|
+
'001001': 'J',
|
|
232
|
+
'001010': 'K',
|
|
233
|
+
'001011': 'L',
|
|
234
|
+
'001100': 'M',
|
|
235
|
+
'001101': 'N',
|
|
236
|
+
'001110': 'O',
|
|
237
|
+
'001111': 'P',
|
|
238
|
+
'010000': 'Q',
|
|
239
|
+
'010001': 'R',
|
|
240
|
+
'010010': 'S',
|
|
241
|
+
'010011': 'T',
|
|
242
|
+
'010100': 'U',
|
|
243
|
+
'010101': 'V',
|
|
244
|
+
'010110': 'W',
|
|
245
|
+
'010111': 'X',
|
|
246
|
+
'011000': 'Y',
|
|
247
|
+
'011001': 'Z',
|
|
248
|
+
'011010': 'a',
|
|
249
|
+
'011011': 'b',
|
|
250
|
+
'011100': 'c',
|
|
251
|
+
'011101': 'd',
|
|
252
|
+
'011110': 'e',
|
|
253
|
+
'011111': 'f',
|
|
254
|
+
'100000': 'g',
|
|
255
|
+
'100001': 'h',
|
|
256
|
+
'100010': 'i',
|
|
257
|
+
'100011': 'j',
|
|
258
|
+
'100100': 'k',
|
|
259
|
+
'100101': 'l',
|
|
260
|
+
'100110': 'm',
|
|
261
|
+
'100111': 'n',
|
|
262
|
+
'101000': 'o',
|
|
263
|
+
'101001': 'p',
|
|
264
|
+
'101010': 'q',
|
|
265
|
+
'101011': 'r',
|
|
266
|
+
'101100': 's',
|
|
267
|
+
'101101': 't',
|
|
268
|
+
'101110': 'u',
|
|
269
|
+
'101111': 'v',
|
|
270
|
+
'110000': 'w',
|
|
271
|
+
'110001': 'x',
|
|
272
|
+
'110010': 'y',
|
|
273
|
+
'110011': 'z',
|
|
274
|
+
'110100': '0',
|
|
275
|
+
'110101': '1',
|
|
276
|
+
'110110': '2',
|
|
277
|
+
'110111': '3',
|
|
278
|
+
'111000': '4',
|
|
279
|
+
'111001': '5',
|
|
280
|
+
'111010': '6',
|
|
281
|
+
'111011': '7',
|
|
282
|
+
'111100': '8',
|
|
283
|
+
'111101': '9',
|
|
284
|
+
'111110': '-',
|
|
285
|
+
'111111': '_',
|
|
286
|
+
};
|
|
287
|
+
exports.default = Uuid4;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export interface ILoginUserRes {
|
|
2
|
-
token: string;
|
|
3
|
-
stripeCustomerPortalUrl: string;
|
|
4
|
-
message: string;
|
|
5
|
-
}
|
|
6
|
-
export interface IWithToken {
|
|
7
|
-
token: string;
|
|
8
|
-
}
|
|
9
|
-
export interface ILoginWithExpiredSupportRes {
|
|
10
|
-
activeUser: IWithToken | null;
|
|
11
|
-
expiredUser: IWithToken | null;
|
|
12
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { IChapter, Id, IVideo } from '../models';
|
|
2
|
-
import { RegisterUserInput } from '../resolvers/mutation/users';
|
|
3
|
-
|
|
4
|
-
export interface TokenI {
|
|
5
|
-
firstName: string;
|
|
6
|
-
lastName: string;
|
|
7
|
-
username: string;
|
|
8
|
-
iat: number;
|
|
9
|
-
exp: number;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface UserTopicQuestionsInfo {
|
|
13
|
-
question: number;
|
|
14
|
-
correctQuestions: number;
|
|
15
|
-
incorrectQuestions: number;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface UserTopicCardsInfo {
|
|
19
|
-
cardCount: number;
|
|
20
|
-
ConfidentCards: number;
|
|
21
|
-
ReviewCards: number;
|
|
22
|
-
LearnCards: number;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export interface TodoInfo {
|
|
26
|
-
todoId: Id;
|
|
27
|
-
cardId: Id;
|
|
28
|
-
question: string;
|
|
29
|
-
explanation: string;
|
|
30
|
-
score: number;
|
|
31
|
-
timeTaken: number;
|
|
32
|
-
dailyTask: boolean;
|
|
33
|
-
source: string;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface ISearchConcepts {
|
|
37
|
-
id: number;
|
|
38
|
-
name: string;
|
|
39
|
-
chapter: IChapter;
|
|
40
|
-
topicId: number;
|
|
41
|
-
videos: IVideo[];
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export interface IQuesBook {
|
|
45
|
-
id: number;
|
|
46
|
-
name: string;
|
|
47
|
-
concepts: ISearchConcepts[];
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export interface LineItemI {
|
|
51
|
-
price: string;
|
|
52
|
-
quantity: number;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export interface CheckoutSessionArgsI {
|
|
56
|
-
priceId: string;
|
|
57
|
-
data: RegisterUserInput;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export interface IUniversityCalculation {
|
|
61
|
-
universityId: number;
|
|
62
|
-
specialityTopicId: number;
|
|
63
|
-
specialityTopicCorrect: number;
|
|
64
|
-
totalCorrect: number;
|
|
65
|
-
totalIncorrect: number;
|
|
66
|
-
totalCount: number;
|
|
67
|
-
rank: number;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export interface IUniversityCalculationMap {
|
|
71
|
-
[key: number]: IUniversityCalculation;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export interface IQuestionLike {
|
|
75
|
-
like: number;
|
|
76
|
-
dislike: number;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export interface ICheckoutSessionRes {
|
|
80
|
-
sessionId: string;
|
|
81
|
-
tempUserId: number;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export interface WithError {
|
|
85
|
-
error: string;
|
|
86
|
-
isError: boolean;
|
|
87
|
-
}
|
package/index.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export const ERRORS = {
|
|
2
|
-
TOKEN_INVALID: 'Invalid token.',
|
|
3
|
-
TOKEN_MISSING: 'Missing token.',
|
|
4
|
-
TOKEN_EXPIRED: 'Expired token.',
|
|
5
|
-
SUBSCRIPTION_EXPIRED: 'Expired subscription.',
|
|
6
|
-
PERMISSION_INVALID: 'Invalid permission.',
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export const FCM_TOPICS = {
|
|
10
|
-
GLOBAL: 'global',
|
|
11
|
-
QBANK: 'qbank',
|
|
12
|
-
OSCE: 'osce',
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export enum EPlatformId {
|
|
16
|
-
QBANK,
|
|
17
|
-
OSCE,
|
|
18
|
-
}
|
package/models/Card.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { IConcept } from './Concept';
|
|
2
|
-
import { ICardPicture } from './Picture';
|
|
3
|
-
import { ITopic } from './Topic';
|
|
4
|
-
import { Id } from './Type';
|
|
5
|
-
|
|
6
|
-
export interface ICard {
|
|
7
|
-
id: Id;
|
|
8
|
-
createdAt: Date | string;
|
|
9
|
-
updatedAt: Date | string;
|
|
10
|
-
topic: ITopic;
|
|
11
|
-
conceptId: Id;
|
|
12
|
-
concept: IConcept;
|
|
13
|
-
question: string;
|
|
14
|
-
explanation: string;
|
|
15
|
-
pictures: ICardPicture[];
|
|
16
|
-
}
|
package/models/Chapter.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { IFile } from './File';
|
|
2
|
-
import { IChapterPicture } from './Picture';
|
|
3
|
-
import { Id } from './Type';
|
|
4
|
-
|
|
5
|
-
export interface IChapter {
|
|
6
|
-
id: Id;
|
|
7
|
-
createdAt: string | Date;
|
|
8
|
-
updatedAt: string | Date;
|
|
9
|
-
explanation: string;
|
|
10
|
-
clinical: boolean;
|
|
11
|
-
pictures: IChapterPicture[];
|
|
12
|
-
files: IFile[];
|
|
13
|
-
}
|
package/models/Concept.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { IChapter } from './Chapter';
|
|
2
|
-
import { ITopic } from './Topic';
|
|
3
|
-
import { Id } from './Type';
|
|
4
|
-
import { IVideo } from './Video';
|
|
5
|
-
|
|
6
|
-
export interface IConcept {
|
|
7
|
-
id: Id;
|
|
8
|
-
createdAt: string | Date;
|
|
9
|
-
updatedAt: string | Date;
|
|
10
|
-
name: string;
|
|
11
|
-
chapterId: Id;
|
|
12
|
-
chapter: IChapter;
|
|
13
|
-
topicId: Id;
|
|
14
|
-
topic?: ITopic;
|
|
15
|
-
videos?: IVideo[];
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface IAnatomyConcept {
|
|
19
|
-
id: number;
|
|
20
|
-
name: string;
|
|
21
|
-
totalCards: number;
|
|
22
|
-
ConfidentCards: number;
|
|
23
|
-
ReviewCards: number;
|
|
24
|
-
LearnCards: number;
|
|
25
|
-
}
|
package/models/File.ts
DELETED
package/models/Marksheet.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { IQuestion } from './Question';
|
|
2
|
-
import { Id } from './Type';
|
|
3
|
-
|
|
4
|
-
export interface IMarksheet {
|
|
5
|
-
id: Id;
|
|
6
|
-
createdAt: Date | string;
|
|
7
|
-
endedAt: Date | string;
|
|
8
|
-
source: string;
|
|
9
|
-
marks: IMarksheetMark[];
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export enum EQuestionLike {
|
|
13
|
-
LIKE,
|
|
14
|
-
DISLIKE,
|
|
15
|
-
REMOVE,
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface IMarksheetMark {
|
|
19
|
-
id: Id;
|
|
20
|
-
index: number;
|
|
21
|
-
questionChoiceId: Id;
|
|
22
|
-
timeTaken: number;
|
|
23
|
-
question: IQuestion;
|
|
24
|
-
mark?: string;
|
|
25
|
-
flagged: boolean;
|
|
26
|
-
like: number;
|
|
27
|
-
dislike: number;
|
|
28
|
-
isLikeByMe: string;
|
|
29
|
-
discussion: IDiscussion[];
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface IDiscussion {
|
|
33
|
-
username: string;
|
|
34
|
-
userId: Id;
|
|
35
|
-
createdAt: Date | string;
|
|
36
|
-
comment: string;
|
|
37
|
-
like: number;
|
|
38
|
-
dislike: number;
|
|
39
|
-
isLikeByMe: string;
|
|
40
|
-
commentId: number;
|
|
41
|
-
questionId: number;
|
|
42
|
-
reply: IDiscussion[];
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export interface ILikeDislikeCount {
|
|
46
|
-
like: number;
|
|
47
|
-
dislike: number;
|
|
48
|
-
}
|
package/models/MockTest.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { IQuestion } from './Question';
|
|
2
|
-
import { Id } from './Type';
|
|
3
|
-
|
|
4
|
-
export interface IMockTest {
|
|
5
|
-
id: Id;
|
|
6
|
-
title: string;
|
|
7
|
-
clinical: boolean;
|
|
8
|
-
questions: IQuestion[];
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface IUserMockTest {
|
|
12
|
-
id: Id;
|
|
13
|
-
title: string;
|
|
14
|
-
correct: number;
|
|
15
|
-
incorrect: number;
|
|
16
|
-
totalQuestions: number;
|
|
17
|
-
lastMarksheetId?: Id;
|
|
18
|
-
lastMarksheetStartedAt?: Date | string;
|
|
19
|
-
lastMarksheetEndedAt?: Date | string;
|
|
20
|
-
}
|
package/models/OsceMarksheet.ts
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { IOsceGroup } from '../resolvers/subscription';
|
|
2
|
-
import { IOsceStation, IOsceStationMark, IOsceType } from './OsceStation';
|
|
3
|
-
import { Id } from './Type';
|
|
4
|
-
|
|
5
|
-
export interface IOsceMarksheetMark {
|
|
6
|
-
id: Id;
|
|
7
|
-
mark: boolean;
|
|
8
|
-
osceMarksheetId: Id;
|
|
9
|
-
osceMarksheet?: IOsceMarksheet;
|
|
10
|
-
osceStationMarkId: Id;
|
|
11
|
-
osceStationMark?: IOsceStationMark;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export enum EOsceRoles {
|
|
15
|
-
CANDIDATE,
|
|
16
|
-
ACTOR,
|
|
17
|
-
EXAMINER,
|
|
18
|
-
OBSERVER,
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export enum EOsceMarksheetAction {
|
|
22
|
-
START,
|
|
23
|
-
PAUSE,
|
|
24
|
-
END,
|
|
25
|
-
CONNECT,
|
|
26
|
-
DISCONNECT,
|
|
27
|
-
SELECT,
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface IOsceMarksheet {
|
|
31
|
-
id: Id;
|
|
32
|
-
createdAt: Date | string;
|
|
33
|
-
updatedAt: Date | string;
|
|
34
|
-
timeTaken: number;
|
|
35
|
-
osceStationId: Id;
|
|
36
|
-
osceStation?: IOsceStation;
|
|
37
|
-
userId: Id;
|
|
38
|
-
solo: boolean;
|
|
39
|
-
role: EOsceRoles;
|
|
40
|
-
score: number;
|
|
41
|
-
globalScore: number;
|
|
42
|
-
feedback: string;
|
|
43
|
-
agoraId: string;
|
|
44
|
-
readingTime: number;
|
|
45
|
-
stationTime: number;
|
|
46
|
-
feedbackTime: number;
|
|
47
|
-
marks: IOsceMarksheetMark[];
|
|
48
|
-
users: IOsceGroup['members'];
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export interface IDashboardOsce {
|
|
52
|
-
types: IOsceTypeDashboard[];
|
|
53
|
-
avgScore: number;
|
|
54
|
-
completed: number;
|
|
55
|
-
total: number;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export interface IOsceTypeDashboard extends IOsceType {
|
|
59
|
-
completed: number;
|
|
60
|
-
total: number;
|
|
61
|
-
}
|
package/models/OsceStation.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { IConcept } from './Concept';
|
|
2
|
-
import { Id } from './Type';
|
|
3
|
-
|
|
4
|
-
export interface IOsceType {
|
|
5
|
-
id: Id;
|
|
6
|
-
name: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface IOsceStationMark {
|
|
10
|
-
id: Id;
|
|
11
|
-
osceStationId: Id;
|
|
12
|
-
header: string;
|
|
13
|
-
name: string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export enum EOsceType {
|
|
17
|
-
HISTORY_TAKING = 1,
|
|
18
|
-
COMMUNICATION_SKILLS,
|
|
19
|
-
CLINICAL,
|
|
20
|
-
PRACTICAL,
|
|
21
|
-
DATA_INTERPRETATION,
|
|
22
|
-
INTEGRATED,
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export interface IOsceStation {
|
|
26
|
-
id: Id;
|
|
27
|
-
createdAt: Date | string;
|
|
28
|
-
updatedAt: Date | string;
|
|
29
|
-
name: string;
|
|
30
|
-
osceTypeId: Id;
|
|
31
|
-
osceType?: IOsceType;
|
|
32
|
-
difficulty: number;
|
|
33
|
-
candidateBrief: string;
|
|
34
|
-
examinerBrief: string;
|
|
35
|
-
actorBrief: string;
|
|
36
|
-
explanation: string;
|
|
37
|
-
marks: IOsceStationMark[];
|
|
38
|
-
concepts?: IConcept[];
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface IOsceStationItem extends IOsceStation {
|
|
42
|
-
attempted: boolean;
|
|
43
|
-
score: number;
|
|
44
|
-
}
|
package/models/Picture.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { ITopic } from './Topic';
|
|
2
|
-
import { Id } from './Type';
|
|
3
|
-
|
|
4
|
-
export interface IPicture {
|
|
5
|
-
id: Id;
|
|
6
|
-
createdAt: string | Date;
|
|
7
|
-
updatedAt: string | Date;
|
|
8
|
-
name: string;
|
|
9
|
-
caption: string;
|
|
10
|
-
path: string;
|
|
11
|
-
path512: string;
|
|
12
|
-
path256: string;
|
|
13
|
-
topicId: Id;
|
|
14
|
-
topic: ITopic;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface IQuestionPicture {
|
|
18
|
-
id: Id;
|
|
19
|
-
pictureId: Id;
|
|
20
|
-
questionId: Id;
|
|
21
|
-
choiceId: Id | null;
|
|
22
|
-
picture: IPicture;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export interface ICardPicture {
|
|
26
|
-
id: Id;
|
|
27
|
-
pictureId: Id;
|
|
28
|
-
cardId: Id;
|
|
29
|
-
picture: IPicture;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface IChapterPicture {
|
|
33
|
-
id: Id;
|
|
34
|
-
pictureId: Id;
|
|
35
|
-
chapterId: Id;
|
|
36
|
-
picture: IPicture;
|
|
37
|
-
}
|
package/models/Promo.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Id } from './Type';
|
|
2
|
-
|
|
3
|
-
export interface ICoupon {
|
|
4
|
-
id: Id;
|
|
5
|
-
createdAt: string | Date;
|
|
6
|
-
name: string;
|
|
7
|
-
affiliateId: Id;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface IPromoReport {
|
|
11
|
-
id: Id;
|
|
12
|
-
date: string | Date;
|
|
13
|
-
couponId: Id;
|
|
14
|
-
userId: Id;
|
|
15
|
-
subscriptionId: Id;
|
|
16
|
-
}
|