@playcademy/sdk 0.20.1-beta.1 → 0.20.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -1
- package/dist/internal.d.ts +1 -1
- package/dist/internal.js +3 -1
- package/dist/server/edge.d.ts +4 -0
- package/dist/server/edge.js +42 -8
- package/dist/server.d.ts +4 -0
- package/dist/server.js +42 -8
- package/dist/types.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -802,6 +802,8 @@ var DEFAULT_PERSONAL_API_KEY_PERMISSIONS = {
|
|
|
802
802
|
var PLAYCADEMY_BROWSER_TIME_ZONE_HEADER = "x-playcademy-browser-time-zone";
|
|
803
803
|
var PLAYCADEMY_ASSESSMENT_ASSET_SHA256_HEADER = "x-playcademy-content-sha256";
|
|
804
804
|
var ASSESSMENT_ASSET_MAX_BYTES = 4 * 1024 * 1024;
|
|
805
|
+
// ../constants/src/skills.ts
|
|
806
|
+
var SKILL_STATUS_MAX_SKILLS = 50;
|
|
805
807
|
// ../constants/src/timeback.ts
|
|
806
808
|
var TIMEBACK_ROUTES = {
|
|
807
809
|
END_ACTIVITY: "/integrations/timeback/end-activity",
|
|
@@ -3760,7 +3762,7 @@ async function request({
|
|
|
3760
3762
|
return rawText && rawText.length > 0 ? rawText : undefined;
|
|
3761
3763
|
}
|
|
3762
3764
|
// src/version.ts
|
|
3763
|
-
var SDK_VERSION = "0.20.1-beta.
|
|
3765
|
+
var SDK_VERSION = "0.20.1-beta.2";
|
|
3764
3766
|
|
|
3765
3767
|
// src/clients/base.ts
|
|
3766
3768
|
class PlaycademyBaseClient {
|
package/dist/internal.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { TimebackGrade, TimebackSubject, ELevel, HeartbeatRequest, EndActivityRe
|
|
|
4
4
|
export { AssessmentAttemptSnapshot, AssessmentAwardRecord, AssessmentFinalizeResult, AssessmentFlow, AssessmentItemGrading, AssessmentItemOutcome, AssessmentItemSubmission, AssessmentMasteryAward, AssessmentPreparationResult, AssessmentResponseUpdate, AssessmentResponseValue, AssessmentResponses, AssessmentReviewStandard, AssessmentSaveResult, AssessmentScore, AssessmentStandardRef, AssessmentSubmitResult, AssessmentTranscript, ConventionalAssessmentAttemptSnapshot, ConventionalAssessmentSubmitResult, DiagnosticAssessmentItemReceipt, DiagnosticAssessmentSubmitResult, DiagnosticRoutingSnapshot, DiagnosticRoutingTrackSnapshot, ELevel, FinalizeAssessmentInput, MasteryAssessmentSubmitResult, PlatformRoutedDiagnosticAttemptSnapshot, PlatformRoutedDiagnosticSelectionContext, PlayableAssessment, PlayableAssessmentAttemptSnapshot, PlayableAssessmentChoice, PlayableAssessmentGraphic, PlayableAssessmentHotspot, PlayableAssessmentInteraction, PlayableAssessmentItem, PlayableChoiceInteraction, PlayableContentNode, PlayableGapMatchChoice, PlayableGapMatchInteraction, PlayableInlineChoiceInteraction, PlayableMatchChoice, PlayableMatchInteraction, PlayableOrderInteraction, RecordAssessmentProgressInput, ResumeAssessmentInput, SaveAssessmentInput, SettledAssessmentAttemptSnapshot, StandardsReviewSelectionContext, StartAssessmentInput, StartAssessmentOptions, StartDiagnosticAssessmentInput, SubmitAssessmentInput, SubmitAssessmentItemInput, SubmitAssessmentItemResult, SubmitDiagnosticAssessmentItemInput, SubmitDiagnosticAssessmentItemResult } from '@playcademy/types/timeback';
|
|
5
5
|
import * as _playcademy_types from '@playcademy/types';
|
|
6
6
|
import { GameManifest, LocalDayContext } from '@playcademy/types';
|
|
7
|
-
export { AuthenticatedUser, DeploySource, DeveloperStatusEnumType, DeveloperStatusResponse, DeveloperStatusValue, GameCourseMetrics, GameLeaderboardEntry, GameManifest, GameMetricComparisonKind, GameMetricComparisonMetric, GameMetricComparisonRow, GameMetricComparisonRowStatus, GameMetricsProxyResponse, GameMetricsResponse, GameMetricsUnsupportedReason, GamePlatform, GameReleaseResponse, GameRunMetrics, GameRunMetricsComparison, GameRunMetricsComparisonStatus, GameRunMetricsComparisonSummary, GameTimebackIntegration, GameType, GameUser, LeaderboardEntry, LeaderboardOptions, LeaderboardTimeframe, LocalDayContext, LocalDaySource, ManifestV1, ManifestV2, ManifestVersions, PopulateStudentResponse, Release, ReleasesResponse, SkillMasterySource, SkillStatus, SkillStatusRequestingGame, SkillStatusResponse, SkillStatusResult, UserEnrollment, UserInfo, UserOrganization, UserRank, UserRankResponse, UserRoleEnumType, UserScore, UserTimebackData } from '@playcademy/types';
|
|
7
|
+
export { AuthenticatedUser, DeploySource, DeveloperStatusEnumType, DeveloperStatusResponse, DeveloperStatusValue, GameCourseMetrics, GameLeaderboardEntry, GameManifest, GameMetricComparisonKind, GameMetricComparisonMetric, GameMetricComparisonRow, GameMetricComparisonRowStatus, GameMetricsProxyResponse, GameMetricsResponse, GameMetricsUnsupportedReason, GamePlatform, GameReleaseResponse, GameRunMetrics, GameRunMetricsComparison, GameRunMetricsComparisonStatus, GameRunMetricsComparisonSummary, GameTimebackIntegration, GameType, GameUser, LeaderboardEntry, LeaderboardOptions, LeaderboardTimeframe, LocalDayContext, LocalDaySource, ManifestV1, ManifestV2, ManifestVersions, PopulateStudentResponse, Release, ReleasesResponse, SkillMasterySource, SkillStatus, SkillStatusLookupResult, SkillStatusRequest, SkillStatusRequestingGame, SkillStatusResponse, SkillStatusResult, SkillStatusUnsupportedReason, UserEnrollment, UserInfo, UserOrganization, UserRank, UserRankResponse, UserRoleEnumType, UserScore, UserTimebackData } from '@playcademy/types';
|
|
8
8
|
import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
|
|
9
9
|
import { DomainValidationRecords } from '@playcademy/types/game';
|
|
10
10
|
import { z } from 'zod';
|
package/dist/internal.js
CHANGED
|
@@ -802,6 +802,8 @@ var DEFAULT_PERSONAL_API_KEY_PERMISSIONS = {
|
|
|
802
802
|
var PLAYCADEMY_BROWSER_TIME_ZONE_HEADER = "x-playcademy-browser-time-zone";
|
|
803
803
|
var PLAYCADEMY_ASSESSMENT_ASSET_SHA256_HEADER = "x-playcademy-content-sha256";
|
|
804
804
|
var ASSESSMENT_ASSET_MAX_BYTES = 4 * 1024 * 1024;
|
|
805
|
+
// ../constants/src/skills.ts
|
|
806
|
+
var SKILL_STATUS_MAX_SKILLS = 50;
|
|
805
807
|
// ../constants/src/timeback.ts
|
|
806
808
|
var TIMEBACK_ROUTES = {
|
|
807
809
|
END_ACTIVITY: "/integrations/timeback/end-activity",
|
|
@@ -4670,7 +4672,7 @@ async function request({
|
|
|
4670
4672
|
return rawText && rawText.length > 0 ? rawText : undefined;
|
|
4671
4673
|
}
|
|
4672
4674
|
// src/version.ts
|
|
4673
|
-
var SDK_VERSION = "0.20.1-beta.
|
|
4675
|
+
var SDK_VERSION = "0.20.1-beta.2";
|
|
4674
4676
|
|
|
4675
4677
|
// src/clients/base.ts
|
|
4676
4678
|
class PlaycademyBaseClient {
|
package/dist/server/edge.d.ts
CHANGED
|
@@ -402,6 +402,10 @@ declare class PlaycademyClient {
|
|
|
402
402
|
subject: string;
|
|
403
403
|
}) => Promise<_playcademy_types.StudentHighestGradeMasteredResponse>;
|
|
404
404
|
};
|
|
405
|
+
/** Cross-game skill status (getStatus) */
|
|
406
|
+
skills: {
|
|
407
|
+
getStatus: (request: _playcademy_types.SkillStatusRequest) => Promise<_playcademy_types.SkillStatusLookupResult>;
|
|
408
|
+
};
|
|
405
409
|
}
|
|
406
410
|
|
|
407
411
|
/**
|
package/dist/server/edge.js
CHANGED
|
@@ -10,13 +10,6 @@ var __export = (target, all) => {
|
|
|
10
10
|
};
|
|
11
11
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
12
12
|
|
|
13
|
-
// src/core/timeback/assessment-request.ts
|
|
14
|
-
function canonicalAssessmentInput(input) {
|
|
15
|
-
const request = { ...input };
|
|
16
|
-
delete request.preparationReceipt;
|
|
17
|
-
return request;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
13
|
// ../constants/src/auth.ts
|
|
21
14
|
var DEFAULT_PERSONAL_API_KEY_PERMISSIONS = {
|
|
22
15
|
games: ["read", "write", "delete"],
|
|
@@ -27,6 +20,8 @@ var DEFAULT_PERSONAL_API_KEY_PERMISSIONS = {
|
|
|
27
20
|
var PLAYCADEMY_BROWSER_TIME_ZONE_HEADER = "x-playcademy-browser-time-zone";
|
|
28
21
|
var PLAYCADEMY_ASSESSMENT_ASSET_SHA256_HEADER = "x-playcademy-content-sha256";
|
|
29
22
|
var ASSESSMENT_ASSET_MAX_BYTES = 4 * 1024 * 1024;
|
|
23
|
+
// ../constants/src/skills.ts
|
|
24
|
+
var SKILL_STATUS_MAX_SKILLS = 50;
|
|
30
25
|
// ../constants/src/timeback.ts
|
|
31
26
|
var TIMEBACK_ROUTES = {
|
|
32
27
|
END_ACTIVITY: "/integrations/timeback/end-activity",
|
|
@@ -68,6 +63,44 @@ var TIMEBACK_GAME_METRIC_COMPARISON_TOLERANCE = {
|
|
|
68
63
|
time: 60,
|
|
69
64
|
score: 0.5 / 10 ** TIMEBACK_GAME_METRIC_DECIMAL_PLACES.score
|
|
70
65
|
};
|
|
66
|
+
// ../utils/src/skills.ts
|
|
67
|
+
function normalizeSkillId(skill) {
|
|
68
|
+
return skill.trim().toLowerCase();
|
|
69
|
+
}
|
|
70
|
+
function normalizeSkillIds(skills2, max) {
|
|
71
|
+
const normalized = [...new Set(skills2.map(normalizeSkillId).filter((skill) => skill.length > 0))];
|
|
72
|
+
if (normalized.length === 0) {
|
|
73
|
+
return { ok: false, error: "At least one skill is required" };
|
|
74
|
+
}
|
|
75
|
+
if (normalized.length > max) {
|
|
76
|
+
return { ok: false, error: `At most ${max} skills can be requested at once` };
|
|
77
|
+
}
|
|
78
|
+
return { ok: true, skills: normalized };
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// src/server/namespaces/skills.ts
|
|
82
|
+
function createSkillsNamespace(client) {
|
|
83
|
+
return {
|
|
84
|
+
getStatus: (request) => {
|
|
85
|
+
const normalized = normalizeSkillIds(request.skills, SKILL_STATUS_MAX_SKILLS);
|
|
86
|
+
if (!normalized.ok) {
|
|
87
|
+
throw new Error(normalized.error);
|
|
88
|
+
}
|
|
89
|
+
return client["request"]("/api/skills/status", "POST", {
|
|
90
|
+
game: request.game,
|
|
91
|
+
studentId: request.studentId,
|
|
92
|
+
skills: normalized.skills
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
// src/core/timeback/assessment-request.ts
|
|
98
|
+
function canonicalAssessmentInput(input) {
|
|
99
|
+
const request = { ...input };
|
|
100
|
+
delete request.preparationReceipt;
|
|
101
|
+
return request;
|
|
102
|
+
}
|
|
103
|
+
|
|
71
104
|
// src/core/guards.ts
|
|
72
105
|
var VALID_GRADES = TIMEBACK_GRADES;
|
|
73
106
|
var VALID_SUBJECTS = TIMEBACK_SUBJECTS;
|
|
@@ -337,7 +370,7 @@ function extractApiErrorInfo(error) {
|
|
|
337
370
|
}
|
|
338
371
|
|
|
339
372
|
// src/version.ts
|
|
340
|
-
var SDK_VERSION = "0.20.1-beta.
|
|
373
|
+
var SDK_VERSION = "0.20.1-beta.2";
|
|
341
374
|
|
|
342
375
|
// src/server/request.ts
|
|
343
376
|
async function makeApiRequest(opts) {
|
|
@@ -429,6 +462,7 @@ class PlaycademyClient {
|
|
|
429
462
|
return this.state.config;
|
|
430
463
|
}
|
|
431
464
|
timeback = createTimebackNamespace(this);
|
|
465
|
+
skills = createSkillsNamespace(this);
|
|
432
466
|
}
|
|
433
467
|
// src/server/utils/verify-game-token.ts
|
|
434
468
|
async function verifyGameToken(gameToken, options) {
|
package/dist/server.d.ts
CHANGED
|
@@ -402,6 +402,10 @@ declare class PlaycademyClient$1 {
|
|
|
402
402
|
subject: string;
|
|
403
403
|
}) => Promise<_playcademy_types.StudentHighestGradeMasteredResponse>;
|
|
404
404
|
};
|
|
405
|
+
/** Cross-game skill status (getStatus) */
|
|
406
|
+
skills: {
|
|
407
|
+
getStatus: (request: _playcademy_types.SkillStatusRequest) => Promise<_playcademy_types.SkillStatusLookupResult>;
|
|
408
|
+
};
|
|
405
409
|
}
|
|
406
410
|
|
|
407
411
|
/**
|
package/dist/server.js
CHANGED
|
@@ -199,13 +199,6 @@ var init_config_loader = __esm(() => {
|
|
|
199
199
|
init_file_loader();
|
|
200
200
|
});
|
|
201
201
|
|
|
202
|
-
// src/core/timeback/assessment-request.ts
|
|
203
|
-
function canonicalAssessmentInput(input) {
|
|
204
|
-
const request = { ...input };
|
|
205
|
-
delete request.preparationReceipt;
|
|
206
|
-
return request;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
202
|
// ../constants/src/auth.ts
|
|
210
203
|
var DEFAULT_PERSONAL_API_KEY_PERMISSIONS = {
|
|
211
204
|
games: ["read", "write", "delete"],
|
|
@@ -216,6 +209,8 @@ var DEFAULT_PERSONAL_API_KEY_PERMISSIONS = {
|
|
|
216
209
|
var PLAYCADEMY_BROWSER_TIME_ZONE_HEADER = "x-playcademy-browser-time-zone";
|
|
217
210
|
var PLAYCADEMY_ASSESSMENT_ASSET_SHA256_HEADER = "x-playcademy-content-sha256";
|
|
218
211
|
var ASSESSMENT_ASSET_MAX_BYTES = 4 * 1024 * 1024;
|
|
212
|
+
// ../constants/src/skills.ts
|
|
213
|
+
var SKILL_STATUS_MAX_SKILLS = 50;
|
|
219
214
|
// ../constants/src/timeback.ts
|
|
220
215
|
var TIMEBACK_ROUTES = {
|
|
221
216
|
END_ACTIVITY: "/integrations/timeback/end-activity",
|
|
@@ -257,6 +252,44 @@ var TIMEBACK_GAME_METRIC_COMPARISON_TOLERANCE = {
|
|
|
257
252
|
time: 60,
|
|
258
253
|
score: 0.5 / 10 ** TIMEBACK_GAME_METRIC_DECIMAL_PLACES.score
|
|
259
254
|
};
|
|
255
|
+
// ../utils/src/skills.ts
|
|
256
|
+
function normalizeSkillId(skill) {
|
|
257
|
+
return skill.trim().toLowerCase();
|
|
258
|
+
}
|
|
259
|
+
function normalizeSkillIds(skills2, max) {
|
|
260
|
+
const normalized = [...new Set(skills2.map(normalizeSkillId).filter((skill) => skill.length > 0))];
|
|
261
|
+
if (normalized.length === 0) {
|
|
262
|
+
return { ok: false, error: "At least one skill is required" };
|
|
263
|
+
}
|
|
264
|
+
if (normalized.length > max) {
|
|
265
|
+
return { ok: false, error: `At most ${max} skills can be requested at once` };
|
|
266
|
+
}
|
|
267
|
+
return { ok: true, skills: normalized };
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// src/server/namespaces/skills.ts
|
|
271
|
+
function createSkillsNamespace(client) {
|
|
272
|
+
return {
|
|
273
|
+
getStatus: (request) => {
|
|
274
|
+
const normalized = normalizeSkillIds(request.skills, SKILL_STATUS_MAX_SKILLS);
|
|
275
|
+
if (!normalized.ok) {
|
|
276
|
+
throw new Error(normalized.error);
|
|
277
|
+
}
|
|
278
|
+
return client["request"]("/api/skills/status", "POST", {
|
|
279
|
+
game: request.game,
|
|
280
|
+
studentId: request.studentId,
|
|
281
|
+
skills: normalized.skills
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
// src/core/timeback/assessment-request.ts
|
|
287
|
+
function canonicalAssessmentInput(input) {
|
|
288
|
+
const request = { ...input };
|
|
289
|
+
delete request.preparationReceipt;
|
|
290
|
+
return request;
|
|
291
|
+
}
|
|
292
|
+
|
|
260
293
|
// src/core/guards.ts
|
|
261
294
|
var VALID_GRADES = TIMEBACK_GRADES;
|
|
262
295
|
var VALID_SUBJECTS = TIMEBACK_SUBJECTS;
|
|
@@ -526,7 +559,7 @@ function extractApiErrorInfo(error) {
|
|
|
526
559
|
}
|
|
527
560
|
|
|
528
561
|
// src/version.ts
|
|
529
|
-
var SDK_VERSION = "0.20.1-beta.
|
|
562
|
+
var SDK_VERSION = "0.20.1-beta.2";
|
|
530
563
|
|
|
531
564
|
// src/server/request.ts
|
|
532
565
|
async function makeApiRequest(opts) {
|
|
@@ -618,6 +651,7 @@ class PlaycademyClient {
|
|
|
618
651
|
return this.state.config;
|
|
619
652
|
}
|
|
620
653
|
timeback = createTimebackNamespace(this);
|
|
654
|
+
skills = createSkillsNamespace(this);
|
|
621
655
|
}
|
|
622
656
|
|
|
623
657
|
// src/server/client.ts
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _playcademy_types from '@playcademy/types';
|
|
2
2
|
import { GameManifest, LocalDayContext } from '@playcademy/types';
|
|
3
|
-
export { AuthenticatedUser, DeploySource, DeveloperStatusEnumType, DeveloperStatusResponse, DeveloperStatusValue, GameCourseMetrics, GameLeaderboardEntry, GameManifest, GameMetricComparisonKind, GameMetricComparisonMetric, GameMetricComparisonRow, GameMetricComparisonRowStatus, GameMetricsProxyResponse, GameMetricsResponse, GameMetricsUnsupportedReason, GamePlatform, GameReleaseResponse, GameRunMetrics, GameRunMetricsComparison, GameRunMetricsComparisonStatus, GameRunMetricsComparisonSummary, GameTimebackIntegration, GameType, GameUser, LeaderboardEntry, LeaderboardOptions, LeaderboardTimeframe, LocalDayContext, LocalDaySource, ManifestV1, ManifestV2, ManifestVersions, PopulateStudentResponse, Release, ReleasesResponse, SkillMasterySource, SkillStatus, SkillStatusRequestingGame, SkillStatusResponse, SkillStatusResult, UserEnrollment, UserInfo, UserOrganization, UserRank, UserRankResponse, UserRoleEnumType, UserScore, UserTimebackData } from '@playcademy/types';
|
|
3
|
+
export { AuthenticatedUser, DeploySource, DeveloperStatusEnumType, DeveloperStatusResponse, DeveloperStatusValue, GameCourseMetrics, GameLeaderboardEntry, GameManifest, GameMetricComparisonKind, GameMetricComparisonMetric, GameMetricComparisonRow, GameMetricComparisonRowStatus, GameMetricsProxyResponse, GameMetricsResponse, GameMetricsUnsupportedReason, GamePlatform, GameReleaseResponse, GameRunMetrics, GameRunMetricsComparison, GameRunMetricsComparisonStatus, GameRunMetricsComparisonSummary, GameTimebackIntegration, GameType, GameUser, LeaderboardEntry, LeaderboardOptions, LeaderboardTimeframe, LocalDayContext, LocalDaySource, ManifestV1, ManifestV2, ManifestVersions, PopulateStudentResponse, Release, ReleasesResponse, SkillMasterySource, SkillStatus, SkillStatusLookupResult, SkillStatusRequest, SkillStatusRequestingGame, SkillStatusResponse, SkillStatusResult, SkillStatusUnsupportedReason, UserEnrollment, UserInfo, UserOrganization, UserRank, UserRankResponse, UserRoleEnumType, UserScore, UserTimebackData } from '@playcademy/types';
|
|
4
4
|
import { TimebackCourseConfig, CourseConfig, OrganizationConfig, ComponentConfig, ResourceConfig, ComponentResourceConfig, TimebackGrade, TimebackSubject, ELevel, EndActivityRequest, HeartbeatRequest, EndActivityScoreData, EndActivityResponse } from '@playcademy/types/timeback';
|
|
5
5
|
export { AssessmentAttemptSnapshot, AssessmentAwardRecord, AssessmentFinalizeResult, AssessmentFlow, AssessmentItemGrading, AssessmentItemOutcome, AssessmentItemSubmission, AssessmentMasteryAward, AssessmentPreparationResult, AssessmentResponseUpdate, AssessmentResponseValue, AssessmentResponses, AssessmentReviewStandard, AssessmentSaveResult, AssessmentScore, AssessmentStandardRef, AssessmentSubmitResult, AssessmentTranscript, ConventionalAssessmentAttemptSnapshot, ConventionalAssessmentSubmitResult, DiagnosticAssessmentItemReceipt, DiagnosticAssessmentSubmitResult, DiagnosticRoutingSnapshot, DiagnosticRoutingTrackSnapshot, ELevel, FinalizeAssessmentInput, MasteryAssessmentSubmitResult, PlatformRoutedDiagnosticAttemptSnapshot, PlatformRoutedDiagnosticSelectionContext, PlayableAssessment, PlayableAssessmentAttemptSnapshot, PlayableAssessmentChoice, PlayableAssessmentGraphic, PlayableAssessmentHotspot, PlayableAssessmentInteraction, PlayableAssessmentItem, PlayableChoiceInteraction, PlayableContentNode, PlayableGapMatchChoice, PlayableGapMatchInteraction, PlayableInlineChoiceInteraction, PlayableMatchChoice, PlayableMatchInteraction, PlayableOrderInteraction, RecordAssessmentProgressInput, ResumeAssessmentInput, SaveAssessmentInput, SettledAssessmentAttemptSnapshot, StandardsReviewSelectionContext, StartAssessmentInput, StartAssessmentOptions, StartDiagnosticAssessmentInput, SubmitAssessmentInput, SubmitAssessmentItemInput, SubmitAssessmentItemResult, SubmitDiagnosticAssessmentItemInput, SubmitDiagnosticAssessmentItemResult } from '@playcademy/types/timeback';
|
|
6
6
|
import { TimebackUserRole, UserEnrollment, UserOrganization, UserInfo } from '@playcademy/types/user';
|