@timeback/edubridge 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +220 -0
  2. package/dist/client.d.ts +70 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/constants.d.ts +25 -0
  5. package/dist/constants.d.ts.map +1 -0
  6. package/dist/errors.d.ts +9 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +1217 -0
  9. package/dist/factory.d.ts +46 -0
  10. package/dist/factory.d.ts.map +1 -0
  11. package/dist/index.d.ts +43 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +1566 -0
  14. package/dist/lib/index.d.ts +9 -0
  15. package/dist/lib/index.d.ts.map +1 -0
  16. package/dist/lib/resolve.d.ts +21 -0
  17. package/dist/lib/resolve.d.ts.map +1 -0
  18. package/dist/lib/transport.d.ts +49 -0
  19. package/dist/lib/transport.d.ts.map +1 -0
  20. package/dist/resources/analytics.d.ts +56 -0
  21. package/dist/resources/analytics.d.ts.map +1 -0
  22. package/dist/resources/applications.d.ts +30 -0
  23. package/dist/resources/applications.d.ts.map +1 -0
  24. package/dist/resources/enrollments.d.ts +71 -0
  25. package/dist/resources/enrollments.d.ts.map +1 -0
  26. package/dist/resources/index.d.ts +10 -0
  27. package/dist/resources/index.d.ts.map +1 -0
  28. package/dist/resources/learning-reports.d.ts +30 -0
  29. package/dist/resources/learning-reports.d.ts.map +1 -0
  30. package/dist/resources/subject-track.d.ts +48 -0
  31. package/dist/resources/subject-track.d.ts.map +1 -0
  32. package/dist/resources/users.d.ts +53 -0
  33. package/dist/resources/users.d.ts.map +1 -0
  34. package/dist/types/analytics.d.ts +208 -0
  35. package/dist/types/analytics.d.ts.map +1 -0
  36. package/dist/types/applications.d.ts +27 -0
  37. package/dist/types/applications.d.ts.map +1 -0
  38. package/dist/types/base.d.ts +38 -0
  39. package/dist/types/base.d.ts.map +1 -0
  40. package/dist/types/client.d.ts +52 -0
  41. package/dist/types/client.d.ts.map +1 -0
  42. package/dist/types/enrollments.d.ts +113 -0
  43. package/dist/types/enrollments.d.ts.map +1 -0
  44. package/dist/types/index.d.ts +14 -0
  45. package/dist/types/index.d.ts.map +1 -0
  46. package/dist/types/learning-reports.d.ts +27 -0
  47. package/dist/types/learning-reports.d.ts.map +1 -0
  48. package/dist/types/subject-track.d.ts +54 -0
  49. package/dist/types/subject-track.d.ts.map +1 -0
  50. package/dist/types/users.d.ts +107 -0
  51. package/dist/types/users.d.ts.map +1 -0
  52. package/dist/types.d.ts +10 -0
  53. package/dist/types.d.ts.map +1 -0
  54. package/dist/types.js +0 -0
  55. package/dist/utils.d.ts +64 -0
  56. package/dist/utils.d.ts.map +1 -0
  57. package/package.json +40 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applications.d.ts","sourceRoot":"","sources":["../../src/types/applications.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CACzC;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,oBAAoB,EAAE,MAAM,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Base Types
3
+ *
4
+ * Common types shared across Edubridge resources.
5
+ */
6
+ /**
7
+ * Resource status.
8
+ */
9
+ export type Status = 'active' | 'tobedeleted';
10
+ /**
11
+ * User roles in the system.
12
+ */
13
+ export type Role = 'administrator' | 'aide' | 'guardian' | 'parent' | 'proctor' | 'relative' | 'student' | 'teacher';
14
+ /**
15
+ * Enrollment-specific roles.
16
+ */
17
+ export type EnrollmentRole = 'administrator' | 'proctor' | 'student' | 'teacher';
18
+ /**
19
+ * Reference to another entity.
20
+ */
21
+ export interface GUIDRef {
22
+ href: string;
23
+ sourcedId: string;
24
+ type: string;
25
+ }
26
+ /**
27
+ * Standard Edubridge API response wrapper.
28
+ */
29
+ export interface DataResponse<T> {
30
+ data: T;
31
+ }
32
+ /**
33
+ * Paginated list response with optional metadata.
34
+ */
35
+ export interface ListResponse<T> {
36
+ data: T[];
37
+ }
38
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAA;AAE7C;;GAEG;AACH,MAAM,MAAM,IAAI,GACb,eAAe,GACf,MAAM,GACN,UAAU,GACV,QAAQ,GACR,SAAS,GACT,UAAU,GACV,SAAS,GACT,SAAS,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;AAEhF;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACZ;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAA;CACP;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;CACT"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Client Configuration Types
3
+ */
4
+ import type { ClientConfig, EdubridgePaths, ProviderClientConfig, RequestOptions, ResolvedProvider, TransportConfigWithTokenProvider, TransportOnlyConfig } from '@timeback/internal-client-infra';
5
+ /**
6
+ * Re-export vital config types for SDK users.
7
+ */
8
+ export type { Environment, EnvAuth, ExplicitAuth, Platform } from '@timeback/internal-client-infra';
9
+ /**
10
+ * Transport interface for Edubridge client.
11
+ *
12
+ * Extends base transport requirements with Edubridge-specific paths.
13
+ * Required when using transport mode with EdubridgeClient.
14
+ */
15
+ export interface EdubridgeTransportLike {
16
+ /** Base URL of the API */
17
+ baseUrl: string;
18
+ /** API path profiles for Edubridge operations */
19
+ paths: EdubridgePaths;
20
+ /** Make an authenticated request */
21
+ request<T>(path: string, options?: RequestOptions): Promise<T>;
22
+ }
23
+ /**
24
+ * All supported Edubridge client configuration types.
25
+ *
26
+ * Supports four modes:
27
+ * - **Provider mode**: `{ provider: TimebackProvider }` — pre-built provider with token sharing
28
+ * - **Environment mode**: `{ platform?, env, auth }` — Timeback hosted APIs
29
+ * - **Explicit mode**: `{ baseUrl, auth: { authUrl } }` — custom API URLs
30
+ * - **Transport mode**: `{ transport }` — custom transport with paths
31
+ *
32
+ * The `platform` field (in env mode) selects which Timeback implementation to use:
33
+ * - `'BEYOND_AI'` (default): BeyondAI's Timeback platform
34
+ * - `'LEARNWITH_AI'`: Samy's LearnWith.AI platform
35
+ */
36
+ export type EdubridgeClientConfig = ClientConfig | TransportOnlyConfig<EdubridgeTransportLike> | ProviderClientConfig;
37
+ /**
38
+ * Configuration for Edubridge transport.
39
+ */
40
+ export interface EdubridgeTransportConfig extends TransportConfigWithTokenProvider {
41
+ /** API path profiles for Edubridge operations */
42
+ paths: EdubridgePaths;
43
+ }
44
+ /**
45
+ * Resolved provider type for Edubridge client.
46
+ */
47
+ export type EdubridgeResolvedProvider = ResolvedProvider<EdubridgeTransportLike>;
48
+ /**
49
+ * Instance type of EdubridgeClient.
50
+ */
51
+ export type EdubridgeClientInstance = InstanceType<typeof import('../client').EdubridgeClient>;
52
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACX,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,gCAAgC,EAChC,mBAAmB,EACnB,MAAM,iCAAiC,CAAA;AAExC;;GAEG;AACH,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAEnG;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACtC,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,KAAK,EAAE,cAAc,CAAA;IACrB,oCAAoC;IACpC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAC9D;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,qBAAqB,GAC9B,YAAY,GACZ,mBAAmB,CAAC,sBAAsB,CAAC,GAC3C,oBAAoB,CAAA;AAEvB;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,gCAAgC;IACjF,iDAAiD;IACjD,KAAK,EAAE,cAAc,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAA;AAEhF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,cAAc,WAAW,EAAE,eAAe,CAAC,CAAA"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Enrollment Types
3
+ *
4
+ * Types for course-centric enrollment management.
5
+ */
6
+ import type { EnrollmentRole } from './base';
7
+ /**
8
+ * Course information within an enrollment.
9
+ */
10
+ export interface EnrollmentCourse {
11
+ id: string;
12
+ title: string;
13
+ metadata: Record<string, unknown>;
14
+ subjects?: string[] | null;
15
+ grades?: string[] | null;
16
+ primaryApp?: {
17
+ id: string;
18
+ name: string;
19
+ domains: string[];
20
+ } | null;
21
+ }
22
+ /**
23
+ * School information within an enrollment.
24
+ */
25
+ export interface EnrollmentSchool {
26
+ id: string;
27
+ name: string;
28
+ }
29
+ /**
30
+ * Enrollment goals metadata.
31
+ */
32
+ export interface EnrollmentGoals {
33
+ dailyXp?: number;
34
+ dailyLessons?: number;
35
+ dailyActiveMinutes?: number;
36
+ dailyAccuracy?: number;
37
+ dailyMasteredUnits?: number;
38
+ }
39
+ /**
40
+ * Enrollment metrics metadata.
41
+ */
42
+ export interface EnrollmentMetrics {
43
+ totalXp?: number;
44
+ totalLessons?: number;
45
+ totalGrades?: number;
46
+ courseType?: string;
47
+ isSupplemental?: boolean;
48
+ }
49
+ /**
50
+ * Enrollment metadata.
51
+ */
52
+ export interface EnrollmentMetadata {
53
+ goals?: EnrollmentGoals;
54
+ metrics?: EnrollmentMetrics;
55
+ [key: string]: unknown;
56
+ }
57
+ /**
58
+ * Period information for enrollments.
59
+ */
60
+ export interface EnrollmentPeriod {
61
+ id: string;
62
+ title: string;
63
+ startDate: string | null;
64
+ endDate: string | null;
65
+ }
66
+ /**
67
+ * A user's enrollment in a course.
68
+ */
69
+ export interface Enrollment {
70
+ id: string;
71
+ role: EnrollmentRole;
72
+ beginDate: string | null;
73
+ endDate: string | null;
74
+ metadata?: EnrollmentMetadata;
75
+ course: EnrollmentCourse;
76
+ school: EnrollmentSchool;
77
+ periods?: EnrollmentPeriod[];
78
+ }
79
+ /**
80
+ * Parameters for listing enrollments.
81
+ */
82
+ export interface ListEnrollmentsParams {
83
+ /** User ID to filter enrollments by */
84
+ userId: string;
85
+ }
86
+ /**
87
+ * Options for enrolling a user in a course.
88
+ */
89
+ export interface EnrollOptions {
90
+ /** Optional client-provided ID for the enrollment */
91
+ sourcedId?: string;
92
+ /** Role for the enrollment (default: 'student') */
93
+ role?: EnrollmentRole;
94
+ /** Start date for the enrollment */
95
+ beginDate?: string;
96
+ /** Enrollment metadata including goals and metrics */
97
+ metadata?: EnrollmentMetadata;
98
+ }
99
+ /**
100
+ * Response from reset goals operation.
101
+ */
102
+ export interface ResetGoalsResult {
103
+ updated: number;
104
+ errors: string[];
105
+ }
106
+ /**
107
+ * Default class information for a course.
108
+ */
109
+ export interface DefaultClass {
110
+ classSourcedId: string;
111
+ termSourcedId: string;
112
+ }
113
+ //# sourceMappingURL=enrollments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrollments.d.ts","sourceRoot":"","sources":["../../src/types/enrollments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAM5C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACxB,UAAU,CAAC,EAAE;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,EAAE,CAAA;KACjB,GAAG,IAAI,CAAA;CACR;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,cAAc,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,MAAM,EAAE,gBAAgB,CAAA;IACxB,MAAM,EAAE,gBAAgB,CAAA;IACxB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC5B;AAMD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mDAAmD;IACnD,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,kBAAkB,CAAA;CAC7B;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,EAAE,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;CACrB"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Edubridge Types
3
+ *
4
+ * All entity and domain types for `@timeback/edubridge`.
5
+ */
6
+ export * from './analytics';
7
+ export * from './applications';
8
+ export * from './base';
9
+ export * from './client';
10
+ export * from './enrollments';
11
+ export * from './learning-reports';
12
+ export * from './subject-track';
13
+ export * from './users';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Learning Reports Types
3
+ *
4
+ * Types for learning reports endpoints.
5
+ */
6
+ /**
7
+ * MAP (Measures of Academic Progress) profile data.
8
+ */
9
+ export interface MapProfile {
10
+ userId: string;
11
+ ritScore?: number;
12
+ percentile?: number;
13
+ gradeLevel?: string;
14
+ testDate?: string;
15
+ subject?: string;
16
+ metadata?: Record<string, unknown>;
17
+ }
18
+ /**
19
+ * Time saved metrics for a user.
20
+ */
21
+ export interface TimeSaved {
22
+ userId: string;
23
+ totalMinutesSaved?: number;
24
+ breakdownBySubject?: Record<string, number>;
25
+ metadata?: Record<string, unknown>;
26
+ }
27
+ //# sourceMappingURL=learning-reports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-reports.d.ts","sourceRoot":"","sources":["../../src/types/learning-reports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Subject Track Types
3
+ *
4
+ * Types for subject track management.
5
+ */
6
+ /**
7
+ * A subject track mapping subject + grade to a target course.
8
+ */
9
+ export interface SubjectTrack {
10
+ id: string;
11
+ subject: string;
12
+ gradeLevel: string;
13
+ targetCourseId: string;
14
+ targetCourseName?: string;
15
+ metadata?: Record<string, unknown>;
16
+ }
17
+ /**
18
+ * A group of subject tracks.
19
+ */
20
+ export interface SubjectTrackGroup {
21
+ id: string;
22
+ name: string;
23
+ description?: string;
24
+ tracks: SubjectTrack[];
25
+ metadata?: Record<string, unknown>;
26
+ }
27
+ /**
28
+ * Response from the subject tracks list endpoint.
29
+ */
30
+ export interface SubjectTrackListResponse {
31
+ subjectTrack: SubjectTrack[];
32
+ }
33
+ /**
34
+ * Response from the subject track groups endpoint.
35
+ */
36
+ export interface SubjectTrackGroupsResponse {
37
+ groups: SubjectTrackGroup[];
38
+ }
39
+ /**
40
+ * Response from the subject track update (PUT) endpoint.
41
+ */
42
+ export interface SubjectTrackUpdateResponse {
43
+ subjectTrack: SubjectTrack;
44
+ }
45
+ /**
46
+ * Parameters for creating/updating a subject track.
47
+ */
48
+ export interface SubjectTrackInput {
49
+ subject: string;
50
+ gradeLevel: string;
51
+ targetCourseId: string;
52
+ metadata?: Record<string, unknown>;
53
+ }
54
+ //# sourceMappingURL=subject-track.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-track.d.ts","sourceRoot":"","sources":["../../src/types/subject-track.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC,YAAY,EAAE,YAAY,EAAE,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C,YAAY,EAAE,YAAY,CAAA;CAC1B;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * User Types
3
+ *
4
+ * Types for user management.
5
+ */
6
+ import type { GUIDRef, Role, Status } from './base';
7
+ /**
8
+ * User identifier (external ID).
9
+ */
10
+ export interface UserId {
11
+ type: string;
12
+ identifier: string;
13
+ }
14
+ /**
15
+ * User role assignment.
16
+ */
17
+ export interface UserRole {
18
+ roleType: 'primary' | 'secondary';
19
+ role: Role;
20
+ org: GUIDRef;
21
+ userProfile?: string;
22
+ metadata?: Record<string, unknown> | null;
23
+ beginDate?: string | null;
24
+ endDate?: string | null;
25
+ }
26
+ /**
27
+ * Application credentials for a user.
28
+ */
29
+ export interface UserCredential {
30
+ id: string;
31
+ type: string;
32
+ username: string;
33
+ password?: string | null;
34
+ }
35
+ /**
36
+ * Application info within a user profile.
37
+ */
38
+ export interface UserApp {
39
+ sourcedId: string;
40
+ name: string;
41
+ description?: string | null;
42
+ domain: string[];
43
+ metadata?: Record<string, unknown> | null;
44
+ }
45
+ /**
46
+ * User profile for an application.
47
+ */
48
+ export interface UserProfile {
49
+ profileId: string;
50
+ profileType: string;
51
+ vendorId: string;
52
+ applicationId: string;
53
+ description?: string | null;
54
+ app: UserApp;
55
+ credentials: UserCredential[];
56
+ }
57
+ /**
58
+ * Primary organization reference.
59
+ */
60
+ export interface PrimaryOrg {
61
+ sourcedId: string;
62
+ name: string;
63
+ }
64
+ /**
65
+ * A user in the system.
66
+ */
67
+ export interface User {
68
+ sourcedId: string;
69
+ status: Status;
70
+ dateLastModified: string;
71
+ metadata?: Record<string, unknown> | null;
72
+ userMasterIdentifier?: string | null;
73
+ username?: string | null;
74
+ userIds: UserId[];
75
+ enabledUser: boolean;
76
+ givenName: string;
77
+ familyName: string;
78
+ middleName?: string | null;
79
+ roles: UserRole[];
80
+ agents: GUIDRef[];
81
+ userProfiles: UserProfile[];
82
+ primaryOrg?: PrimaryOrg;
83
+ }
84
+ /**
85
+ * Parameters for listing users by role.
86
+ */
87
+ export interface ListUsersParams {
88
+ /** Fields to include in response */
89
+ fields?: string;
90
+ /** Maximum items to return */
91
+ limit?: number;
92
+ /** Items to skip */
93
+ offset?: number;
94
+ /** Field to sort by */
95
+ sort?: string;
96
+ /** Sort order */
97
+ orderBy?: 'asc' | 'desc';
98
+ /** OneRoster filter expression */
99
+ filter?: string;
100
+ /** Free-text search */
101
+ search?: string;
102
+ /** Roles to filter by (required) */
103
+ roles: Role[];
104
+ /** Organization IDs to filter by */
105
+ orgSourcedIds?: string[];
106
+ }
107
+ //# sourceMappingURL=users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/types/users.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Subpath export for all entity types.
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * import type { Enrollment, User } from '@timeback/edubridge/types'
7
+ * ```
8
+ */
9
+ export * from './types/index';
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,eAAe,CAAA"}
package/dist/types.js ADDED
File without changes
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Utility Functions
3
+ *
4
+ * Internal utilities for the Edubridge client.
5
+ */
6
+ import type { AggregatedMetrics, DailyActivityMap } from './types/analytics';
7
+ /**
8
+ * Scoped logger for the Edubridge client.
9
+ * Only logs debug/info when DEBUG=1 or DEBUG=true.
10
+ */
11
+ export declare const log: import("@timeback/internal-logger").Logger;
12
+ /**
13
+ * Normalize a boolean-like value to a boolean.
14
+ *
15
+ * The Beyond-AI API sometimes returns boolean fields as strings (`"true"`/`"false"`).
16
+ * This normalizes them to actual booleans for a stable, predictable API.
17
+ *
18
+ * @param value - Boolean-like value from the API
19
+ * @returns Normalized boolean
20
+ */
21
+ export declare function normalizeBoolean(value: boolean | string): boolean;
22
+ /**
23
+ * Normalize a User object from the API.
24
+ *
25
+ * Applies all necessary field normalizations to ensure consistent types.
26
+ * Currently normalizes:
27
+ * - `enabledUser`: string → boolean
28
+ *
29
+ * @param user - Raw user from the API
30
+ * @returns User with normalized fields
31
+ */
32
+ export declare function normalizeUser<T extends {
33
+ enabledUser: boolean;
34
+ }>(user: T): T;
35
+ /**
36
+ * Normalize a date string to full ISO 8601 format.
37
+ *
38
+ * The Edubridge API requires full ISO 8601 datetime format (e.g., `2025-12-25T00:00:00.000Z`).
39
+ * This function accepts multiple input formats for developer convenience:
40
+ * - Date-only: `2025-12-25` → `2025-12-25T00:00:00.000Z`
41
+ * - Full ISO: `2025-12-25T10:30:00.000Z` → passed through unchanged
42
+ * - Date object: `new Date()` → `.toISOString()`
43
+ *
44
+ * @param date - Date string or Date object
45
+ * @returns Full ISO 8601 datetime string, or undefined if input is undefined
46
+ */
47
+ export declare function normalizeDate(date: string | Date | undefined): string | undefined;
48
+ /**
49
+ * Aggregate activity metrics from a DailyActivityMap.
50
+ *
51
+ * Sums up all metrics across dates and subjects into a single totals object.
52
+ *
53
+ * @param data - Activity data grouped by date and subject
54
+ * @returns Aggregated totals
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const activity = await client.analytics.getActivity({ ... })
59
+ * const totals = aggregateActivityMetrics(activity)
60
+ * console.log(`Total XP: ${totals.totalXp}`)
61
+ * ```
62
+ */
63
+ export declare function aggregateActivityMetrics(data: DailyActivityMap): AggregatedMetrics;
64
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAE5E;;;GAGG;AACH,eAAO,MAAM,GAAG,4CAAkC,CAAA;AAElD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAGjE;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAK5E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CA8BjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAoClF"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@timeback/edubridge",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./dist/index.d.ts",
8
+ "import": "./dist/index.js"
9
+ },
10
+ "./errors": {
11
+ "types": "./dist/errors.d.ts",
12
+ "import": "./dist/errors.js"
13
+ },
14
+ "./types": {
15
+ "types": "./dist/types.d.ts",
16
+ "import": "./dist/types.js"
17
+ }
18
+ },
19
+ "main": "dist/index.js",
20
+ "types": "dist/index.d.ts",
21
+ "files": [
22
+ "dist"
23
+ ],
24
+ "scripts": {
25
+ "build": "bun build.ts",
26
+ "test": "bun test --no-env-file unit.test.ts"
27
+ },
28
+ "devDependencies": {
29
+ "@timeback/internal-client-infra": "0.0.0",
30
+ "@timeback/internal-constants": "0.0.0",
31
+ "@timeback/internal-logger": "0.0.0",
32
+ "@timeback/internal-test": "0.0.0",
33
+ "@timeback/internal-utils": "0.0.0",
34
+ "@timeback/types": "0.0.0",
35
+ "@types/bun": "latest"
36
+ },
37
+ "peerDependencies": {
38
+ "typescript": "^5"
39
+ }
40
+ }