@timeback/masterytrack 0.1.1-beta.20260219190739

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 (41) hide show
  1. package/README.md +225 -0
  2. package/dist/client.d.ts +32 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/constants.d.ts +19 -0
  5. package/dist/constants.d.ts.map +1 -0
  6. package/dist/errors.d.ts +1 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +1504 -0
  9. package/dist/factory.d.ts +23 -0
  10. package/dist/factory.d.ts.map +1 -0
  11. package/dist/index.d.ts +449 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +16943 -0
  14. package/dist/lib/index.d.ts +4 -0
  15. package/dist/lib/index.d.ts.map +1 -0
  16. package/dist/lib/resolve.d.ts +25 -0
  17. package/dist/lib/resolve.d.ts.map +1 -0
  18. package/dist/lib/token-provider.d.ts +34 -0
  19. package/dist/lib/token-provider.d.ts.map +1 -0
  20. package/dist/lib/transport.d.ts +28 -0
  21. package/dist/lib/transport.d.ts.map +1 -0
  22. package/dist/public-types.d.ts +210 -0
  23. package/dist/public-types.d.ts.map +1 -0
  24. package/dist/public-types.js +0 -0
  25. package/dist/resources/assignments.d.ts +30 -0
  26. package/dist/resources/assignments.d.ts.map +1 -0
  27. package/dist/resources/authorizer.d.ts +22 -0
  28. package/dist/resources/authorizer.d.ts.map +1 -0
  29. package/dist/resources/index.d.ts +4 -0
  30. package/dist/resources/index.d.ts.map +1 -0
  31. package/dist/resources/inventory.d.ts +23 -0
  32. package/dist/resources/inventory.d.ts.map +1 -0
  33. package/dist/types/client.d.ts +61 -0
  34. package/dist/types/client.d.ts.map +1 -0
  35. package/dist/types/index.d.ts +2 -0
  36. package/dist/types/index.d.ts.map +1 -0
  37. package/dist/types.d.ts +2 -0
  38. package/dist/types.d.ts.map +1 -0
  39. package/dist/utils.d.ts +11 -0
  40. package/dist/utils.d.ts.map +1 -0
  41. package/package.json +42 -0
@@ -0,0 +1,4 @@
1
+ export { isTransportConfig, resolveMasteryTrackConfig } from './resolve';
2
+ export { MasteryTrackJwtProvider } from './token-provider';
3
+ export { Transport } from './transport';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * MasteryTrack Config Resolution
3
+ */
4
+ import type { MasteryTrackAuth, MasteryTrackClientConfig, MasteryTrackTransportConfig } from '../types';
5
+ interface ResolvedMasteryTrackConfig {
6
+ baseUrl: string;
7
+ auth: MasteryTrackAuth;
8
+ timeout: number;
9
+ }
10
+ /**
11
+ * Check whether config is using custom transport mode.
12
+ *
13
+ * @param config - Client config
14
+ * @returns True when config is transport mode
15
+ */
16
+ declare function isTransportConfig(config: MasteryTrackClientConfig): config is MasteryTrackTransportConfig;
17
+ /**
18
+ * Resolve MasteryTrack config into concrete base URL/auth/timeout values.
19
+ *
20
+ * @param config - Client config input
21
+ * @returns Resolved configuration for transport initialization
22
+ */
23
+ export declare function resolveMasteryTrackConfig(config: MasteryTrackClientConfig): ResolvedMasteryTrackConfig;
24
+ export { isTransportConfig };
25
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/lib/resolve.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EACX,gBAAgB,EAChB,wBAAwB,EAExB,2BAA2B,EAC3B,MAAM,UAAU,CAAA;AAIjB,UAAU,0BAA0B;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;CACf;AAkBD;;;;;GAKG;AACH,iBAAS,iBAAiB,CACzB,MAAM,EAAE,wBAAwB,GAC9B,MAAM,IAAI,2BAA2B,CAEvC;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACxC,MAAM,EAAE,wBAAwB,GAC9B,0BAA0B,CAoC5B;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * MasteryTrack JWT Provider
3
+ *
4
+ * Acquires and caches JWT tokens via POST /authorizer.
5
+ */
6
+ import type { MasteryTrackAuth } from '../types';
7
+ import type { AuthCheckResult } from '@timeback/internal-client-infra';
8
+ interface MasteryTrackJwtProviderConfig {
9
+ baseUrl: string;
10
+ auth: MasteryTrackAuth;
11
+ fetch?: typeof globalThis.fetch;
12
+ refreshAfterMs?: number;
13
+ }
14
+ /**
15
+ * JWT provider for MasteryTrack API access.
16
+ *
17
+ * Calls `/authorizer` using `x-api-key` and caches JWT responses.
18
+ */
19
+ export declare class MasteryTrackJwtProvider {
20
+ private readonly baseUrl;
21
+ private readonly fetchImpl;
22
+ private readonly apiKey;
23
+ private readonly defaultEmail;
24
+ private readonly refreshAfterMs;
25
+ private token?;
26
+ private tokenEmail?;
27
+ private refreshAt;
28
+ constructor(config: MasteryTrackJwtProviderConfig);
29
+ getToken(emailOverride?: string): Promise<string>;
30
+ invalidate(): void;
31
+ checkAuth(): Promise<AuthCheckResult>;
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=token-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-provider.d.ts","sourceRoot":"","sources":["../../src/lib/token-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAatE,UAAU,6BAA6B;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,gBAAgB,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;GAIG;AACH,qBAAa,uBAAuB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAAI;IAErB,YAAY,MAAM,EAAE,6BAA6B,EAMhD;IAEK,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+CtD;IAED,UAAU,IAAI,IAAI,CAIjB;IAEK,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC,CAiB1C;CACD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Transport Layer
3
+ *
4
+ * HTTP transport for MasteryTrack API communication.
5
+ */
6
+ import { BaseTransport } from '@timeback/internal-client-infra';
7
+ import type { RequestOptions } from '@timeback/internal-client-infra';
8
+ import type { MasteryTrackJwtProvider } from './token-provider';
9
+ interface TransportInit {
10
+ baseUrl: string;
11
+ timeout?: number;
12
+ jwtProvider: MasteryTrackJwtProvider;
13
+ fetch?: typeof globalThis.fetch;
14
+ }
15
+ /**
16
+ * HTTP transport for MasteryTrack API communication.
17
+ *
18
+ * MasteryTrack expects auth via X-Auth-Token (Bearer JWT) header
19
+ * rather than Authorization.
20
+ */
21
+ export declare class Transport extends BaseTransport {
22
+ private readonly jwtProvider;
23
+ constructor(config: TransportInit);
24
+ requestRaw(path: string, options?: RequestOptions): Promise<Response>;
25
+ protected handleErrorResponse(response: Response, requestId?: string): Promise<never>;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/lib/transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAI/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAE/D,UAAU,aAAa;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,uBAAuB,CAAA;IACpC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAC/B;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,aAAa;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,YAAY,MAAM,EAAE,aAAa,EAUhC;IAEc,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAOvF;IAED,UAAmB,mBAAmB,CACrC,QAAQ,EAAE,QAAQ,EAClB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,CAAC,CAMhB;CACD"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * MasteryTrack Types
3
+ *
4
+ * Types for the MasteryTrack API integration.
5
+ */
6
+
7
+ interface MasteryTrackErrorDetails {
8
+ [key: string]: unknown
9
+ }
10
+
11
+ /**
12
+ * Standard error response envelope used by MasteryTrack endpoints.
13
+ */
14
+ interface MasteryTrackErrorResponse {
15
+ success: false
16
+ error: string
17
+ code?: string
18
+ details?: MasteryTrackErrorDetails
19
+ }
20
+
21
+ /**
22
+ * Authorizer success payload.
23
+ */
24
+ interface MasteryTrackAuthorizerResponse {
25
+ success: true
26
+ jwt: string
27
+ }
28
+
29
+ interface MasteryTrackInventoryMetadata {
30
+ url?: string
31
+ type?: string
32
+ subType?: string
33
+ year?: string
34
+ format?: string
35
+ questionTypes?: string[]
36
+ [key: string]: unknown
37
+ }
38
+
39
+ interface MasteryTrackInventoryItem {
40
+ id: number
41
+ timeback_id: string
42
+ name: string
43
+ subject: string
44
+ grade: string
45
+ grade_rank: number
46
+ version: number
47
+ active: boolean
48
+ metadata?: MasteryTrackInventoryMetadata
49
+ supported: boolean
50
+ created_at: string
51
+ updated_at: string
52
+ invalidated_on: string | null
53
+ }
54
+
55
+ interface MasteryTrackInventorySearchResponse {
56
+ success: true
57
+ data: MasteryTrackInventoryItem[]
58
+ }
59
+
60
+ interface MasteryTrackAssignment {
61
+ id: number
62
+ student_email: string
63
+ test_name: string
64
+ assigned_by?: number
65
+ test_url: string
66
+ status: string
67
+ expires_at?: string
68
+ metadata?: Record<string, unknown>
69
+ created_at: string
70
+ }
71
+
72
+ interface MasteryTrackAssignResponse {
73
+ success: true
74
+ platform?: string
75
+ data: {
76
+ assignment: MasteryTrackAssignment
77
+ message: string
78
+ }
79
+ }
80
+
81
+ interface MasteryTrackInvalidatedAssignment {
82
+ assignment_id: number
83
+ student_email: string
84
+ }
85
+
86
+ interface MasteryTrackInvalidateResponse {
87
+ success: true
88
+ data: {
89
+ message: string
90
+ total_invalidated: number
91
+ invalidated_assignments: MasteryTrackInvalidatedAssignment[]
92
+ }
93
+ }
94
+
95
+ type input<T> = T extends {
96
+ _zod: {
97
+ input: any;
98
+ };
99
+ } ? T["_zod"]["input"] : unknown;
100
+
101
+ /**
102
+ * MasteryTrack Schemas
103
+ *
104
+ * Zod schemas for MasteryTrack requests and responses.
105
+ */
106
+
107
+
108
+
109
+ declare const MasteryTrackAuthorizerInput = z.object({
110
+ email: z.email(),
111
+ })
112
+
113
+ type MasteryTrackAuthorizerInput = input<typeof MasteryTrackAuthorizerInput>
114
+
115
+ declare const MasteryTrackInventorySearchParams = z.object({
116
+ name: NonEmptyString.optional(),
117
+ timeback_id: NonEmptyString.optional(),
118
+ grade: NonEmptyString.optional(),
119
+ subject: NonEmptyString.optional(),
120
+ all: z.boolean().optional(),
121
+ })
122
+ type MasteryTrackInventorySearchParams = input<typeof MasteryTrackInventorySearchParams>
123
+
124
+ declare const MasteryTrackAssignmentInput = z
125
+ .object({
126
+ student_email: z.email(),
127
+ timeback_id: NonEmptyString.optional(),
128
+ subject: NonEmptyString.optional(),
129
+ grade_rank: z.number().int().min(0).max(12).optional(),
130
+ assessment_line_item_sourced_id: NonEmptyString.optional(),
131
+ assessment_result_sourced_id: NonEmptyString.optional(),
132
+ })
133
+ .superRefine((value, ctx) => {
134
+ const hasTimebackId = !!value.timeback_id
135
+ const hasSubject = !!value.subject
136
+ const hasGradeRank = value.grade_rank !== undefined
137
+
138
+ if (!hasTimebackId && !hasSubject) {
139
+ ctx.addIssue({
140
+ code: z.ZodIssueCode.custom,
141
+ message: 'must provide either timeback_id or subject',
142
+ path: ['timeback_id'],
143
+ })
144
+ ctx.addIssue({
145
+ code: z.ZodIssueCode.custom,
146
+ message: 'must provide either timeback_id or subject',
147
+ path: ['subject'],
148
+ })
149
+ }
150
+
151
+ if (hasGradeRank && !hasSubject) {
152
+ ctx.addIssue({
153
+ code: z.ZodIssueCode.custom,
154
+ message: 'grade_rank requires subject',
155
+ path: ['grade_rank'],
156
+ })
157
+ }
158
+
159
+ const hasLineItem = !!value.assessment_line_item_sourced_id
160
+ const hasResultId = !!value.assessment_result_sourced_id
161
+
162
+ if (hasLineItem !== hasResultId) {
163
+ ctx.addIssue({
164
+ code: z.ZodIssueCode.custom,
165
+ message:
166
+ 'assessment_line_item_sourced_id and assessment_result_sourced_id must be provided together',
167
+ path: hasLineItem
168
+ ? ['assessment_result_sourced_id']
169
+ : ['assessment_line_item_sourced_id'],
170
+ })
171
+ }
172
+ })
173
+ type MasteryTrackAssignmentInput = input<typeof MasteryTrackAssignmentInput>
174
+
175
+ declare const MasteryTrackInvalidateAssignmentInput = z
176
+ .object({
177
+ student_email: z.email(),
178
+ assignment_id: z.number().int().positive().optional(),
179
+ timeback_id: NonEmptyString.optional(),
180
+ subject: NonEmptyString.optional(),
181
+ grade_rank: z.number().int().min(0).max(12).optional(),
182
+ })
183
+ .superRefine((value, ctx) => {
184
+ const byAssignment = value.assignment_id !== undefined
185
+ const byTimeback = !!value.timeback_id
186
+ const bySubjectGrade = !!value.subject && value.grade_rank !== undefined
187
+
188
+ if (!byAssignment && !byTimeback && !bySubjectGrade) {
189
+ ctx.addIssue({
190
+ code: z.ZodIssueCode.custom,
191
+ message:
192
+ 'Either assignment_id, timeback_id, or (subject and grade_rank) is required',
193
+ path: ['assignment_id'],
194
+ })
195
+ }
196
+
197
+ if (value.grade_rank !== undefined && !value.subject) {
198
+ ctx.addIssue({
199
+ code: z.ZodIssueCode.custom,
200
+ message: 'grade_rank requires subject',
201
+ path: ['grade_rank'],
202
+ })
203
+ }
204
+ })
205
+ type MasteryTrackInvalidateAssignmentInput = input<
206
+ typeof MasteryTrackInvalidateAssignmentInput
207
+ >
208
+
209
+ export { MasteryTrackAssignmentInput, MasteryTrackAuthorizerInput, MasteryTrackInvalidateAssignmentInput, MasteryTrackInventorySearchParams };
210
+ export type { MasteryTrackAssignResponse, MasteryTrackAssignment, MasteryTrackAuthorizerResponse, MasteryTrackErrorDetails, MasteryTrackErrorResponse, MasteryTrackInvalidateResponse, MasteryTrackInvalidatedAssignment, MasteryTrackInventoryItem, MasteryTrackInventoryMetadata, MasteryTrackInventorySearchResponse };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-types.d.ts","sourceRoot":"","sources":["../src/public-types.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAA;AAEtD,YAAY,EACX,2BAA2B,EAC3B,2BAA2B,EAC3B,qCAAqC,EACrC,iCAAiC,GACjC,MAAM,qBAAqB,CAAA"}
File without changes
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Assignments Resource
3
+ *
4
+ * MasteryTrack test assignment operations.
5
+ */
6
+ import type { MasteryTrackAssignmentInput as MasteryTrackAssignmentInputType, MasteryTrackInvalidateAssignmentInput as MasteryTrackInvalidateAssignmentInputType } from '@timeback/types/zod';
7
+ import type { MasteryTrackAssignResponse, MasteryTrackInvalidateResponse } from '@timeback/types/protocols/masterytrack';
8
+ import type { MasteryTrackTransportLike } from '../types';
9
+ /**
10
+ * Resource for MasteryTrack assignment operations.
11
+ */
12
+ export declare class AssignmentsResource {
13
+ private readonly transport;
14
+ constructor(transport: MasteryTrackTransportLike);
15
+ /**
16
+ * Assign a test to a student.
17
+ *
18
+ * @param input - Assignment payload
19
+ * @returns Assignment response envelope
20
+ */
21
+ assign(input: MasteryTrackAssignmentInputType): Promise<MasteryTrackAssignResponse>;
22
+ /**
23
+ * Invalidate one or more assignments for a student.
24
+ *
25
+ * @param input - Invalidate payload
26
+ * @returns Invalidate response envelope
27
+ */
28
+ invalidate(input: MasteryTrackInvalidateAssignmentInputType): Promise<MasteryTrackInvalidateResponse>;
29
+ }
30
+ //# sourceMappingURL=assignments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assignments.d.ts","sourceRoot":"","sources":["../../src/resources/assignments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EACX,2BAA2B,IAAI,+BAA+B,EAC9D,qCAAqC,IAAI,yCAAyC,EAClF,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EACX,0BAA0B,EAC1B,8BAA8B,EAC9B,MAAM,wCAAwC,CAAA;AAC/C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAEzD;;GAEG;AACH,qBAAa,mBAAmB;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAtC,YAA6B,SAAS,EAAE,yBAAyB,EAAI;IAErE;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAMlF;IAED;;;;;OAKG;IACH,UAAU,CACT,KAAK,EAAE,yCAAyC,GAC9C,OAAO,CAAC,8BAA8B,CAAC,CAUzC;CACD"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Authorizer Resource
3
+ *
4
+ * MasteryTrack authorizer endpoint access.
5
+ */
6
+ import type { MasteryTrackAuthorizerResponse } from '@timeback/types/protocols/masterytrack';
7
+ import type { MasteryTrackAuthenticatorLike } from '../types';
8
+ /**
9
+ * Resource for MasteryTrack authorizer operations.
10
+ */
11
+ export declare class AuthorizerResource {
12
+ private readonly authenticator;
13
+ constructor(authenticator: MasteryTrackAuthenticatorLike);
14
+ /**
15
+ * Authenticate and return a fresh MasteryTrack JWT.
16
+ *
17
+ * @param email - Optional email override for authorizer request
18
+ * @returns Authorizer success payload with JWT
19
+ */
20
+ getToken(email?: string): Promise<MasteryTrackAuthorizerResponse>;
21
+ }
22
+ //# sourceMappingURL=authorizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorizer.d.ts","sourceRoot":"","sources":["../../src/resources/authorizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAA;AAC5F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AAE7D;;GAEG;AACH,qBAAa,kBAAkB;IAClB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAA1C,YAA6B,aAAa,EAAE,6BAA6B,EAAI;IAE7E;;;;;OAKG;IACG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAMtE;CACD"}
@@ -0,0 +1,4 @@
1
+ export { AssignmentsResource } from './assignments';
2
+ export { AuthorizerResource } from './authorizer';
3
+ export { InventoryResource } from './inventory';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Inventory Resource
3
+ *
4
+ * MasteryTrack test inventory operations.
5
+ */
6
+ import type { MasteryTrackInventorySearchResponse } from '@timeback/types/protocols/masterytrack';
7
+ import type { MasteryTrackInventorySearchParams as MasteryTrackInventorySearchParamsInput } from '@timeback/types/zod';
8
+ import type { MasteryTrackTransportLike } from '../types';
9
+ /**
10
+ * Resource for MasteryTrack inventory operations.
11
+ */
12
+ export declare class InventoryResource {
13
+ private readonly transport;
14
+ constructor(transport: MasteryTrackTransportLike);
15
+ /**
16
+ * Search and filter tests in MasteryTrack inventory.
17
+ *
18
+ * @param params - Optional inventory search filters
19
+ * @returns Inventory search response envelope
20
+ */
21
+ search(params?: MasteryTrackInventorySearchParamsInput): Promise<MasteryTrackInventorySearchResponse>;
22
+ }
23
+ //# sourceMappingURL=inventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../src/resources/inventory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,wCAAwC,CAAA;AACjG,OAAO,KAAK,EACX,iCAAiC,IAAI,sCAAsC,EAC3E,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAEzD;;GAEG;AACH,qBAAa,iBAAiB;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAtC,YAA6B,SAAS,EAAE,yBAAyB,EAAI;IAErE;;;;;OAKG;IACH,MAAM,CACL,MAAM,GAAE,sCAA2C,GACjD,OAAO,CAAC,mCAAmC,CAAC,CAG9C;CACD"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Client Configuration Types
3
+ */
4
+ import type { RequestOptions } from '@timeback/internal-client-infra';
5
+ import type { AuthCheckResult } from '@timeback/internal-client-infra';
6
+ export type MasteryTrackEnvironment = 'staging' | 'production';
7
+ /**
8
+ * Credentials used for MasteryTrack authentication.
9
+ */
10
+ export interface MasteryTrackAuth {
11
+ apiKey: string;
12
+ email: string;
13
+ }
14
+ /**
15
+ * Config for environment mode (uses known MasteryTrack base URLs).
16
+ */
17
+ export interface MasteryTrackEnvConfig {
18
+ env?: MasteryTrackEnvironment;
19
+ auth: MasteryTrackAuth;
20
+ timeout?: number;
21
+ }
22
+ /**
23
+ * Config for explicit URL mode.
24
+ */
25
+ export interface MasteryTrackExplicitConfig {
26
+ baseUrl: string;
27
+ auth: MasteryTrackAuth;
28
+ timeout?: number;
29
+ }
30
+ /**
31
+ * Authenticator interface for custom transport mode.
32
+ */
33
+ export interface MasteryTrackAuthenticatorLike {
34
+ getToken(emailOverride?: string): Promise<string>;
35
+ invalidate(): void;
36
+ checkAuth(): Promise<AuthCheckResult>;
37
+ }
38
+ /**
39
+ * Transport interface for MasteryTrack client.
40
+ */
41
+ export interface MasteryTrackTransportLike {
42
+ baseUrl: string;
43
+ request<T>(path: string, options?: RequestOptions): Promise<T>;
44
+ requestRaw(path: string, options?: RequestOptions): Promise<Response>;
45
+ }
46
+ /**
47
+ * Transport mode config for custom transports.
48
+ */
49
+ export interface MasteryTrackTransportConfig {
50
+ transport: MasteryTrackTransportLike;
51
+ authenticator: MasteryTrackAuthenticatorLike;
52
+ }
53
+ /**
54
+ * All supported MasteryTrack client configuration types.
55
+ */
56
+ export type MasteryTrackClientConfig = MasteryTrackEnvConfig | MasteryTrackExplicitConfig | MasteryTrackTransportConfig | undefined;
57
+ /**
58
+ * Instance type of MasteryTrackClient.
59
+ */
60
+ export type MasteryTrackClientInstance = InstanceType<typeof import('../client').MasteryTrackClient>;
61
+ //# 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,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,YAAY,CAAA;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,GAAG,CAAC,EAAE,uBAAuB,CAAA;IAC7B,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACjD,UAAU,IAAI,IAAI,CAAA;IAClB,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC9D,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C,SAAS,EAAE,yBAAyB,CAAA;IACpC,aAAa,EAAE,6BAA6B,CAAA;CAC5C;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,GACjC,qBAAqB,GACrB,0BAA0B,GAC1B,2BAA2B,GAC3B,SAAS,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,YAAY,CACpD,cAAc,WAAW,EAAE,kBAAkB,CAC7C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export type { MasteryTrackAuth, MasteryTrackAuthenticatorLike, MasteryTrackClientConfig, MasteryTrackClientInstance, MasteryTrackEnvironment, MasteryTrackTransportConfig, MasteryTrackTransportLike, } from './client';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,gBAAgB,EAChB,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,GACzB,MAAM,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ export type { MasteryTrackAuth, MasteryTrackAuthenticatorLike, MasteryTrackClientConfig, MasteryTrackClientInstance, MasteryTrackEnvironment, MasteryTrackTransportConfig, MasteryTrackTransportLike, } from './types/index';
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,gBAAgB,EAChB,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,GACzB,MAAM,eAAe,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Utility Functions
3
+ *
4
+ * Internal utilities for the MasteryTrack client.
5
+ */
6
+ /**
7
+ * Scoped logger for the MasteryTrack client.
8
+ * Only logs debug/info when DEBUG=1 or DEBUG=true.
9
+ */
10
+ export declare const log: import("@timeback/internal-logger").Logger;
11
+ //# 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;;;GAGG;AACH,eAAO,MAAM,GAAG,4CAAqC,CAAA"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@timeback/masterytrack",
3
+ "version": "0.1.1-beta.20260219190739",
4
+ "description": "MasteryTrack client SDK for Timeback",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.js"
10
+ },
11
+ "./errors": {
12
+ "types": "./dist/errors.d.ts",
13
+ "import": "./dist/errors.js"
14
+ },
15
+ "./types": {
16
+ "types": "./dist/public-types.d.ts",
17
+ "import": "./dist/public-types.js"
18
+ }
19
+ },
20
+ "main": "dist/index.js",
21
+ "types": "dist/index.d.ts",
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "scripts": {
26
+ "build": "bun build.ts",
27
+ "test": "bun test --no-env-file unit.test.ts"
28
+ },
29
+ "dependencies": {
30
+ "zod": "^4.2.1"
31
+ },
32
+ "devDependencies": {
33
+ "@timeback/internal-client-infra": "0.0.0",
34
+ "@timeback/internal-utils": "0.0.0",
35
+ "@timeback/types": "0.0.0",
36
+ "@types/bun": "latest",
37
+ "esbuild": "^0.27.3"
38
+ },
39
+ "peerDependencies": {
40
+ "typescript": "^5"
41
+ }
42
+ }