@timeback/oneroster 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 (85) hide show
  1. package/README.md +295 -0
  2. package/dist/client.d.ts +125 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/constants.d.ts +23 -0
  5. package/dist/constants.d.ts.map +1 -0
  6. package/dist/errors.d.ts +7 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +1414 -0
  9. package/dist/factory.d.ts +100 -0
  10. package/dist/factory.d.ts.map +1 -0
  11. package/dist/index.d.ts +42 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +2614 -0
  14. package/dist/lib/index.d.ts +11 -0
  15. package/dist/lib/index.d.ts.map +1 -0
  16. package/dist/lib/pagination.d.ts +30 -0
  17. package/dist/lib/pagination.d.ts.map +1 -0
  18. package/dist/lib/resolve.d.ts +21 -0
  19. package/dist/lib/resolve.d.ts.map +1 -0
  20. package/dist/lib/transport.d.ts +32 -0
  21. package/dist/lib/transport.d.ts.map +1 -0
  22. package/dist/resources/assessment/index.d.ts +6 -0
  23. package/dist/resources/assessment/index.d.ts.map +1 -0
  24. package/dist/resources/assessment/line-items.d.ts +38 -0
  25. package/dist/resources/assessment/line-items.d.ts.map +1 -0
  26. package/dist/resources/assessment/results.d.ts +25 -0
  27. package/dist/resources/assessment/results.d.ts.map +1 -0
  28. package/dist/resources/base.d.ts +181 -0
  29. package/dist/resources/base.d.ts.map +1 -0
  30. package/dist/resources/gradebook/categories.d.ts +16 -0
  31. package/dist/resources/gradebook/categories.d.ts.map +1 -0
  32. package/dist/resources/gradebook/index.d.ts +8 -0
  33. package/dist/resources/gradebook/index.d.ts.map +1 -0
  34. package/dist/resources/gradebook/line-items.d.ts +52 -0
  35. package/dist/resources/gradebook/line-items.d.ts.map +1 -0
  36. package/dist/resources/gradebook/results.d.ts +24 -0
  37. package/dist/resources/gradebook/results.d.ts.map +1 -0
  38. package/dist/resources/gradebook/score-scales.d.ts +16 -0
  39. package/dist/resources/gradebook/score-scales.d.ts.map +1 -0
  40. package/dist/resources/index.d.ts +11 -0
  41. package/dist/resources/index.d.ts.map +1 -0
  42. package/dist/resources/resources/index.d.ts +5 -0
  43. package/dist/resources/resources/index.d.ts.map +1 -0
  44. package/dist/resources/resources/resources.d.ts +39 -0
  45. package/dist/resources/resources/resources.d.ts.map +1 -0
  46. package/dist/resources/rostering/academic-sessions.d.ts +97 -0
  47. package/dist/resources/rostering/academic-sessions.d.ts.map +1 -0
  48. package/dist/resources/rostering/classes.d.ts +276 -0
  49. package/dist/resources/rostering/classes.d.ts.map +1 -0
  50. package/dist/resources/rostering/courses.d.ts +75 -0
  51. package/dist/resources/rostering/courses.d.ts.map +1 -0
  52. package/dist/resources/rostering/demographics.d.ts +18 -0
  53. package/dist/resources/rostering/demographics.d.ts.map +1 -0
  54. package/dist/resources/rostering/enrollments.d.ts +28 -0
  55. package/dist/resources/rostering/enrollments.d.ts.map +1 -0
  56. package/dist/resources/rostering/index.d.ts +12 -0
  57. package/dist/resources/rostering/index.d.ts.map +1 -0
  58. package/dist/resources/rostering/orgs.d.ts +18 -0
  59. package/dist/resources/rostering/orgs.d.ts.map +1 -0
  60. package/dist/resources/rostering/schools.d.ts +214 -0
  61. package/dist/resources/rostering/schools.d.ts.map +1 -0
  62. package/dist/resources/rostering/users.d.ts +191 -0
  63. package/dist/resources/rostering/users.d.ts.map +1 -0
  64. package/dist/types/base.d.ts +127 -0
  65. package/dist/types/base.d.ts.map +1 -0
  66. package/dist/types/callable.d.ts +246 -0
  67. package/dist/types/callable.d.ts.map +1 -0
  68. package/dist/types/client.d.ts +58 -0
  69. package/dist/types/client.d.ts.map +1 -0
  70. package/dist/types/filters.d.ts +165 -0
  71. package/dist/types/filters.d.ts.map +1 -0
  72. package/dist/types/gradebook.d.ts +262 -0
  73. package/dist/types/gradebook.d.ts.map +1 -0
  74. package/dist/types/index.d.ts +13 -0
  75. package/dist/types/index.d.ts.map +1 -0
  76. package/dist/types/resources.d.ts +191 -0
  77. package/dist/types/resources.d.ts.map +1 -0
  78. package/dist/types/rostering.d.ts +732 -0
  79. package/dist/types/rostering.d.ts.map +1 -0
  80. package/dist/types.d.ts +10 -0
  81. package/dist/types.d.ts.map +1 -0
  82. package/dist/types.js +0 -0
  83. package/dist/utils.d.ts +51 -0
  84. package/dist/utils.d.ts.map +1 -0
  85. package/package.json +41 -0
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Academic Sessions Resource
3
+ *
4
+ * Manage academic sessions (terms, semesters, school years, grading periods).
5
+ */
6
+ import { Paginator } from '../../lib';
7
+ import { BaseResource } from '../base';
8
+ import type { ListParams } from '@timeback/internal-client-infra';
9
+ import type { AcademicSession, AcademicSessionCreateInput, AcademicSessionFilterFields, Class, ClassFilterFields, GradingPeriod, OneRosterTransportLike, TermsCallable } from '../../types';
10
+ /**
11
+ * Resource for all academic sessions regardless of type.
12
+ *
13
+ * For type-specific access, use TermsResource or GradingPeriodsResource.
14
+ */
15
+ export declare class AcademicSessionsResource extends BaseResource<AcademicSession, AcademicSessionFilterFields, AcademicSessionCreateInput> {
16
+ constructor(transport: OneRosterTransportLike);
17
+ protected get unwrapKey(): string;
18
+ protected get wrapKey(): string;
19
+ protected transform(session: AcademicSession): AcademicSession;
20
+ }
21
+ /**
22
+ * Scoped resource for operations on a specific term.
23
+ *
24
+ * Access via `client.terms(termId)`.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const term = await client.terms(termId).get()
29
+ * const classes = await client.terms(termId).classes()
30
+ * ```
31
+ */
32
+ export declare class ScopedTermResource {
33
+ private readonly transport;
34
+ private readonly basePath;
35
+ constructor(transport: OneRosterTransportLike, termId: string);
36
+ /**
37
+ * Get the term details.
38
+ * @returns The term object
39
+ */
40
+ get(): Promise<AcademicSession>;
41
+ /**
42
+ * List classes in this term.
43
+ * @param params - Optional filter and pagination parameters
44
+ * @returns Promise resolving to class array
45
+ */
46
+ classes(params?: ListParams<ClassFilterFields>): Promise<Class[]>;
47
+ /**
48
+ * Stream classes with lazy pagination.
49
+ * @param params - Optional filter and pagination parameters
50
+ * @returns Paginator for streaming classes
51
+ */
52
+ streamClasses(params?: ListParams<ClassFilterFields>): Paginator<Class, ClassFilterFields>;
53
+ /**
54
+ * List grading periods in this term.
55
+ * @param params - Optional filter and pagination parameters
56
+ * @returns Promise resolving to grading period array
57
+ */
58
+ gradingPeriods(params?: ListParams<AcademicSessionFilterFields>): Promise<GradingPeriod[]>;
59
+ /**
60
+ * Stream grading periods with lazy pagination.
61
+ * @param params - Optional filter and pagination parameters
62
+ * @returns Paginator for streaming grading periods
63
+ */
64
+ streamGradingPeriods(params?: ListParams<AcademicSessionFilterFields>): Paginator<GradingPeriod, AcademicSessionFilterFields>;
65
+ /**
66
+ * Create a grading period in this term.
67
+ * @param data - Grading period data
68
+ * @returns The created grading period (as academicSession)
69
+ */
70
+ createGradingPeriod(data: Partial<GradingPeriod>): Promise<AcademicSession>;
71
+ }
72
+ /**
73
+ * Create a callable terms resource.
74
+ * @param transport - OneRoster transport instance
75
+ * @returns Callable resource for terms
76
+ */
77
+ export declare function createTermsResource(transport: OneRosterTransportLike): TermsCallable;
78
+ /**
79
+ * Resource for grading periods only.
80
+ *
81
+ * Filtered view of academic sessions with grading period type.
82
+ */
83
+ export declare class GradingPeriodsResource extends BaseResource<AcademicSession, AcademicSessionFilterFields, AcademicSessionCreateInput> {
84
+ constructor(transport: OneRosterTransportLike);
85
+ protected get unwrapKey(): string;
86
+ protected get wrapKey(): string;
87
+ protected transform(gp: AcademicSession): AcademicSession;
88
+ /**
89
+ * XXX: The Beyond-AI API expects grading period creates/updates to be wrapped as
90
+ * `{ academicSession: ... }`, even though GET responses use `gradingPeriod`.
91
+ *
92
+ * @param data - Academic session input payload for a grading period
93
+ * @returns Wrapped request body
94
+ */
95
+ protected wrapBody(data: AcademicSessionCreateInput): Record<string, AcademicSessionCreateInput>;
96
+ }
97
+ //# sourceMappingURL=academic-sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"academic-sessions.d.ts","sourceRoot":"","sources":["../../../src/resources/rostering/academic-sessions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EACX,eAAe,EACf,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,EACL,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,aAAa,EACb,MAAM,aAAa,CAAA;AAEpB;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,YAAY,CACzD,eAAe,EACf,2BAA2B,EAC3B,0BAA0B,CAC1B;IACA,YAAY,SAAS,EAAE,sBAAsB,EAE5C;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,SAAS,KAAK,OAAO,IAAI,MAAM,CAE9B;IAED,UAAmB,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAItE;CACD;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,kBAAkB;IAI7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAH3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IAEjC,YACkB,SAAS,EAAE,sBAAsB,EAClD,MAAM,EAAE,MAAM,EAGd;IAED;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAGpC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAEhE;IAED;;;;OAIG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAOzF;IAED;;;;OAIG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAEzF;IAED;;;;OAIG;IACH,oBAAoB,CACnB,MAAM,CAAC,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAC9C,SAAS,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAOvD;IAED;;;;OAIG;IACG,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAShF;CACD;AAgCD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,sBAAsB,GAAG,aAAa,CAUpF;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,YAAY,CACvD,eAAe,EACf,2BAA2B,EAC3B,0BAA0B,CAC1B;IACA,YAAY,SAAS,EAAE,sBAAsB,EAE5C;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,SAAS,KAAK,OAAO,IAAI,MAAM,CAE9B;IAED,UAAmB,SAAS,CAAC,EAAE,EAAE,eAAe,GAAG,eAAe,CAMjE;IAED;;;;;;OAMG;IACH,UAAmB,QAAQ,CAC1B,IAAI,EAAE,0BAA0B,GAC9B,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAE5C;CACD"}
@@ -0,0 +1,276 @@
1
+ /**
2
+ * Classes Resource
3
+ *
4
+ * Manage classes (sections) and their nested resources.
5
+ */
6
+ import { Paginator } from '../../lib';
7
+ import type { ListParams } from '../../lib';
8
+ import type { Category, CategoryFilterFields, Class, ClassesCallable, CreateResponse, EnrollInput, LineItem, LineItemCreateInput, LineItemFilterFields, OneRosterTransportLike, Resource, ResourceFilterFields, Result, ResultCreateInput, ResultFilterFields, ScoreScale, ScoreScaleFilterFields, User, UserFilterFields } from '../../types';
9
+ /**
10
+ * Scoped resource for a specific academic session within a class.
11
+ *
12
+ * Access via `client.classes(classId).academicSession(sessionId)`.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * // Create a result for a student in this class/session
17
+ * await client.classes(classId).academicSession(sessionId).createResult({
18
+ * student: { sourcedId: 'student1' },
19
+ * lineItem: { sourcedId: 'li1' },
20
+ * scoreStatus: 'fully graded',
21
+ * scoreDate: '2024-12-24',
22
+ * score: 85,
23
+ * })
24
+ * ```
25
+ */
26
+ export declare class ScopedClassAcademicSessionResource {
27
+ private readonly transport;
28
+ private readonly gradebookPath;
29
+ constructor(transport: OneRosterTransportLike, classId: string, sessionId: string);
30
+ /**
31
+ * Create a result for this class and academic session.
32
+ *
33
+ * @param result - Result data including student, lineItem, score, and scoreDate
34
+ * @returns Create response with sourcedIdPairs
35
+ */
36
+ createResult(result: ResultCreateInput): Promise<CreateResponse>;
37
+ }
38
+ /**
39
+ * Scoped resource for a specific student within a class.
40
+ *
41
+ * Access via `client.classes(classId).student(studentId)`.
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * const results = await client.classes(classId).student(studentId).results()
46
+ * ```
47
+ */
48
+ export declare class ScopedClassStudentResource {
49
+ private readonly transport;
50
+ private readonly gradebookPath;
51
+ constructor(transport: OneRosterTransportLike, classId: string, studentId: string);
52
+ /**
53
+ * List results for this student in this class.
54
+ * @param params - Optional filter and pagination parameters
55
+ * @returns Promise resolving to result array
56
+ */
57
+ results(params?: ListParams<ResultFilterFields>): Promise<Result[]>;
58
+ /**
59
+ * Stream results with lazy pagination.
60
+ * @param params - Optional filter and pagination parameters
61
+ * @returns Paginator for streaming results
62
+ */
63
+ streamResults(params?: ListParams<ResultFilterFields>): Paginator<Result, ResultFilterFields>;
64
+ }
65
+ /**
66
+ * Scoped resource for a specific line item within a class.
67
+ *
68
+ * Access via `client.classes(classId).lineItem(lineItemId)`.
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const results = await client.classes(classId).lineItem(lineItemId).results()
73
+ * ```
74
+ */
75
+ export declare class ScopedClassLineItemResource {
76
+ private readonly transport;
77
+ private readonly gradebookPath;
78
+ constructor(transport: OneRosterTransportLike, classId: string, lineItemId: string);
79
+ /**
80
+ * List results for this line item in this class.
81
+ * @param params - Optional filter and pagination parameters
82
+ * @returns Promise resolving to result array
83
+ */
84
+ results(params?: ListParams<ResultFilterFields>): Promise<Result[]>;
85
+ /**
86
+ * Stream results with lazy pagination.
87
+ * @param params - Optional filter and pagination parameters
88
+ * @returns Paginator for streaming results
89
+ */
90
+ streamResults(params?: ListParams<ResultFilterFields>): Paginator<Result, ResultFilterFields>;
91
+ }
92
+ /**
93
+ * Scoped resource for operations on a specific class.
94
+ *
95
+ * Access via `client.classes(classId)`.
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * const cls = await client.classes(classId).get()
100
+ * const students = await client.classes(classId).students()
101
+ * const teachers = await client.classes(classId).teachers()
102
+ * const lineItems = await client.classes(classId).lineItems()
103
+ * const studentResults = await client.classes(classId).student(studentId).results()
104
+ * ```
105
+ */
106
+ export declare class ScopedClassResource {
107
+ private readonly transport;
108
+ private readonly rosteringPath;
109
+ private readonly gradebookPath;
110
+ private readonly classId;
111
+ constructor(transport: OneRosterTransportLike, classId: string);
112
+ /**
113
+ * Get the class details.
114
+ * @returns The class object
115
+ */
116
+ get(): Promise<Class>;
117
+ /**
118
+ * List students in this class.
119
+ * @param params - Optional filter and pagination parameters
120
+ * @returns Promise resolving to user array
121
+ */
122
+ students(params?: ListParams<UserFilterFields>): Promise<User[]>;
123
+ /**
124
+ * Stream students with lazy pagination.
125
+ * @param params - Optional filter and pagination parameters
126
+ * @returns Paginator for streaming students
127
+ */
128
+ streamStudents(params?: ListParams<UserFilterFields>): Paginator<User, UserFilterFields>;
129
+ /**
130
+ * List teachers in this class.
131
+ * @param params - Optional filter and pagination parameters
132
+ * @returns Promise resolving to user array
133
+ */
134
+ teachers(params?: ListParams<UserFilterFields>): Promise<User[]>;
135
+ /**
136
+ * Stream teachers with lazy pagination.
137
+ * @param params - Optional filter and pagination parameters
138
+ * @returns Paginator for streaming teachers
139
+ */
140
+ streamTeachers(params?: ListParams<UserFilterFields>): Paginator<User, UserFilterFields>;
141
+ /**
142
+ * Enroll a user in this class.
143
+ *
144
+ * @param input - User sourcedId, role, and optional enrollment details
145
+ * @returns Create response
146
+ * @example
147
+ * ```typescript
148
+ * await client.classes(classId).enroll({ sourcedId: studentId, role: 'student' })
149
+ * await client.classes(classId).enroll({ sourcedId: teacherId, role: 'teacher', primary: true })
150
+ * ```
151
+ */
152
+ enroll(input: EnrollInput): Promise<CreateResponse>;
153
+ /**
154
+ * List line items (assignments) in this class.
155
+ * @param params - Optional filter and pagination parameters
156
+ * @returns Promise resolving to line item array
157
+ */
158
+ lineItems(params?: ListParams<LineItemFilterFields>): Promise<LineItem[]>;
159
+ /**
160
+ * Stream line items with lazy pagination.
161
+ * @param params - Optional filter and pagination parameters
162
+ * @returns Paginator for streaming line items
163
+ */
164
+ streamLineItems(params?: ListParams<LineItemFilterFields>): Paginator<LineItem, LineItemFilterFields>;
165
+ /**
166
+ * Create a line item (assignment) in this class.
167
+ *
168
+ * @param data - Line item data
169
+ * @returns Create response with sourcedIdPairs
170
+ * @example
171
+ * ```typescript
172
+ * await client.classes(classId).createLineItem({
173
+ * title: 'Homework 1',
174
+ * class: { sourcedId: classId },
175
+ * school: { sourcedId: schoolId },
176
+ * category: { sourcedId: categoryId },
177
+ * assignDate: '2024-12-20',
178
+ * dueDate: '2024-12-27',
179
+ * status: 'active',
180
+ * })
181
+ * ```
182
+ */
183
+ createLineItem(data: LineItemCreateInput): Promise<CreateResponse>;
184
+ /**
185
+ * List results in this class.
186
+ * @param params - Optional filter and pagination parameters
187
+ * @returns Promise resolving to result array
188
+ */
189
+ results(params?: ListParams<ResultFilterFields>): Promise<Result[]>;
190
+ /**
191
+ * Stream results with lazy pagination.
192
+ * @param params - Optional filter and pagination parameters
193
+ * @returns Paginator for streaming results
194
+ */
195
+ streamResults(params?: ListParams<ResultFilterFields>): Paginator<Result, ResultFilterFields>;
196
+ /**
197
+ * List resources for this class.
198
+ * @param params - Optional filter and pagination parameters
199
+ * @returns Promise resolving to resource array
200
+ */
201
+ resources(params?: ListParams<ResourceFilterFields>): Promise<Resource[]>;
202
+ /**
203
+ * Stream resources with lazy pagination.
204
+ * @param params - Optional filter and pagination parameters
205
+ * @returns Paginator for streaming resources
206
+ */
207
+ streamResources(params?: ListParams<ResourceFilterFields>): Paginator<Resource, ResourceFilterFields>;
208
+ /**
209
+ * Get a scoped resource for a specific student in this class.
210
+ * @param studentId - Student ID
211
+ * @returns Scoped resource for the student
212
+ * @example
213
+ * ```typescript
214
+ * const results = await client.classes(classId).student(studentId).results()
215
+ * ```
216
+ */
217
+ student(studentId: string): ScopedClassStudentResource;
218
+ /**
219
+ * Get a scoped resource for a specific line item in this class.
220
+ * @param lineItemId - Line item ID
221
+ * @returns Scoped resource for the line item
222
+ * @example
223
+ * ```typescript
224
+ * const results = await client.classes(classId).lineItem(lineItemId).results()
225
+ * ```
226
+ */
227
+ lineItem(lineItemId: string): ScopedClassLineItemResource;
228
+ /**
229
+ * Get a scoped resource for a specific academic session in this class.
230
+ * @param sessionId - Academic session ID (term, grading period, etc.)
231
+ * @returns Scoped resource for session-scoped operations
232
+ * @example
233
+ * ```typescript
234
+ * // Create a result for a grading period
235
+ * await client.classes(classId).academicSession(sessionId).createResult({
236
+ * student: { sourcedId: 'student1' },
237
+ * lineItem: { sourcedId: 'lineItem1' },
238
+ * scoreStatus: 'fully graded',
239
+ * scoreDate: '2024-12-24',
240
+ * score: 85,
241
+ * })
242
+ * ```
243
+ */
244
+ academicSession(sessionId: string): ScopedClassAcademicSessionResource;
245
+ /**
246
+ * List score scales for this class.
247
+ * @param params - Optional filter and pagination parameters
248
+ * @returns Promise resolving to score scale array
249
+ */
250
+ scoreScales(params?: ListParams<ScoreScaleFilterFields>): Promise<ScoreScale[]>;
251
+ /**
252
+ * Stream score scales with lazy pagination.
253
+ * @param params - Optional filter and pagination parameters
254
+ * @returns Paginator for streaming score scales
255
+ */
256
+ streamScoreScales(params?: ListParams<ScoreScaleFilterFields>): Paginator<ScoreScale, ScoreScaleFilterFields>;
257
+ /**
258
+ * List categories for this class.
259
+ * @param params - Optional filter and pagination parameters
260
+ * @returns Promise resolving to category array
261
+ */
262
+ categories(params?: ListParams<CategoryFilterFields>): Promise<Category[]>;
263
+ /**
264
+ * Stream categories with lazy pagination.
265
+ * @param params - Optional filter and pagination parameters
266
+ * @returns Paginator for streaming categories
267
+ */
268
+ streamCategories(params?: ListParams<CategoryFilterFields>): Paginator<Category, CategoryFilterFields>;
269
+ }
270
+ /**
271
+ * Create a callable classes resource.
272
+ * @param transport - OneRoster transport instance
273
+ * @returns Callable resource for classes
274
+ */
275
+ export declare function createClassesResource(transport: OneRosterTransportLike): ClassesCallable;
276
+ //# sourceMappingURL=classes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../../src/resources/rostering/classes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Courses Resource
3
+ *
4
+ * Manage courses and their nested resources.
5
+ */
6
+ import { Paginator } from '../../lib/pagination';
7
+ import type { ListParams } from '@timeback/internal-client-infra';
8
+ import type { Class, ClassFilterFields, Course, CourseComponent, CourseComponentFilterFields, CoursesCallable, OneRosterTransportLike, Resource, ResourceFilterFields } from '../../types';
9
+ /**
10
+ * Scoped resource for operations on a specific course.
11
+ *
12
+ * Access via `client.courses(courseId)`.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const course = await client.courses(courseId).get()
17
+ * const classes = await client.courses(courseId).classes()
18
+ * const components = await client.courses(courseId).components()
19
+ * const resources = await client.courses(courseId).resources()
20
+ * ```
21
+ */
22
+ export declare class ScopedCourseResource {
23
+ private readonly transport;
24
+ private readonly basePath;
25
+ private readonly courseId;
26
+ constructor(transport: OneRosterTransportLike, courseId: string);
27
+ /**
28
+ * Get the course details.
29
+ * @returns The course object
30
+ */
31
+ get(): Promise<Course>;
32
+ /**
33
+ * List classes for this course.
34
+ * @param params - Optional filter and pagination parameters
35
+ * @returns Promise resolving to class array
36
+ */
37
+ classes(params?: ListParams<ClassFilterFields>): Promise<Class[]>;
38
+ /**
39
+ * Stream classes with lazy pagination.
40
+ * @param params - Optional filter and pagination parameters
41
+ * @returns Paginator for streaming classes
42
+ */
43
+ streamClasses(params?: ListParams<ClassFilterFields>): Paginator<Class, ClassFilterFields>;
44
+ /**
45
+ * List components for this course.
46
+ * @param params - Optional filter and pagination parameters
47
+ * @returns Promise resolving to component array
48
+ */
49
+ components(params?: ListParams<CourseComponentFilterFields>): Promise<CourseComponent[]>;
50
+ /**
51
+ * Stream components with lazy pagination.
52
+ * @param params - Optional filter and pagination parameters
53
+ * @returns Paginator for streaming components
54
+ */
55
+ streamComponents(params?: ListParams<CourseComponentFilterFields>): Paginator<CourseComponent, CourseComponentFilterFields>;
56
+ /**
57
+ * List resources for this course.
58
+ * @param params - Optional filter and pagination parameters
59
+ * @returns Promise resolving to resource array
60
+ */
61
+ resources(params?: ListParams<ResourceFilterFields>): Promise<Resource[]>;
62
+ /**
63
+ * Stream resources with lazy pagination.
64
+ * @param params - Optional filter and pagination parameters
65
+ * @returns Paginator for streaming resources
66
+ */
67
+ streamResources(params?: ListParams<ResourceFilterFields>): Paginator<Resource, ResourceFilterFields>;
68
+ }
69
+ /**
70
+ * Create a callable courses resource.
71
+ * @param transport - OneRoster transport instance
72
+ * @returns Callable resource for courses
73
+ */
74
+ export declare function createCoursesResource(transport: OneRosterTransportLike): CoursesCallable;
75
+ //# sourceMappingURL=courses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"courses.d.ts","sourceRoot":"","sources":["../../../src/resources/rostering/courses.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAIhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EACX,KAAK,EACL,iBAAiB,EAIjB,MAAM,EACN,eAAe,EAEf,2BAA2B,EAG3B,eAAe,EAGf,sBAAsB,EACtB,QAAQ,EACR,oBAAoB,EACpB,MAAM,aAAa,CAAA;AAMpB;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAoB;IAK/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJ3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IAEjC,YACkB,SAAS,EAAE,sBAAsB,EAClD,QAAQ,EAAE,MAAM,EAIhB;IAED;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAG3B;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAEhE;IAED;;;;OAIG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAOzF;IAED;;;;OAIG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAEvF;IAED;;;;OAIG;IACH,gBAAgB,CACf,MAAM,CAAC,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAC9C,SAAS,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAYzD;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAExE;IAED;;;;OAIG;IACH,eAAe,CACd,MAAM,CAAC,EAAE,UAAU,CAAC,oBAAoB,CAAC,GACvC,SAAS,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAO3C;CACD;AA6ID;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,sBAAsB,GAAG,eAAe,CA0BxF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Demographics Resource
3
+ *
4
+ * Manage student demographic data.
5
+ */
6
+ import { BaseResource } from '../base';
7
+ import type { Demographics, DemographicsCreateInput, DemographicsFilterFields, OneRosterTransportLike } from '../../types';
8
+ /**
9
+ * Resource for managing student demographics.
10
+ *
11
+ * Supports full CRUD operations per the OneRoster spec.
12
+ */
13
+ export declare class DemographicsResource extends BaseResource<Demographics, DemographicsFilterFields, DemographicsCreateInput> {
14
+ constructor(transport: OneRosterTransportLike);
15
+ protected get unwrapKey(): string;
16
+ protected get wrapKey(): string;
17
+ }
18
+ //# sourceMappingURL=demographics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demographics.d.ts","sourceRoot":"","sources":["../../../src/resources/rostering/demographics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EACX,YAAY,EACZ,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,MAAM,aAAa,CAAA;AAEpB;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,YAAY,CACrD,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,CACvB;IACA,YAAY,SAAS,EAAE,sBAAsB,EAE5C;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,SAAS,KAAK,OAAO,IAAI,MAAM,CAE9B;CACD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Enrollments Resource
3
+ *
4
+ * Manage user-to-class enrollments.
5
+ */
6
+ import { BaseResource } from '../base';
7
+ import type { Enrollment, EnrollmentCreateInput, EnrollmentFilterFields, OneRosterTransportLike } from '../../types';
8
+ /**
9
+ * Resource for managing enrollments (user-to-class relationships).
10
+ *
11
+ * Uses EnrollmentCreateInput for create/update (simple refs with just sourcedId)
12
+ * and returns Enrollment for get/list (full refs with href, type, name).
13
+ */
14
+ export declare class EnrollmentsResource extends BaseResource<Enrollment, EnrollmentFilterFields, EnrollmentCreateInput> {
15
+ constructor(transport: OneRosterTransportLike);
16
+ /**
17
+ * Partially update an enrollment.
18
+ *
19
+ * Only the fields provided will be updated. Other fields remain unchanged.
20
+ *
21
+ * @param sourcedId - The enrollment sourcedId
22
+ * @param data - The fields to update
23
+ */
24
+ patch(sourcedId: string, data: Partial<EnrollmentCreateInput>): Promise<void>;
25
+ protected get unwrapKey(): string;
26
+ protected get wrapKey(): string;
27
+ }
28
+ //# sourceMappingURL=enrollments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrollments.d.ts","sourceRoot":"","sources":["../../../src/resources/rostering/enrollments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EACX,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,aAAa,CAAA;AAEpB;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,YAAY,CACpD,UAAU,EACV,sBAAsB,EACtB,qBAAqB,CACrB;IACA,YAAY,SAAS,EAAE,sBAAsB,EAE5C;IAED;;;;;;;OAOG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlF;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,SAAS,KAAK,OAAO,IAAI,MAAM,CAE9B;CACD"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Rostering Resources
3
+ */
4
+ export { createStudentsResource, createTeachersResource, createUsersResource, ScopedStudentResource, ScopedTeacherResource, ScopedUserResource, } from './users';
5
+ export { OrgsResource } from './orgs';
6
+ export { createSchoolsResource, ScopedSchoolResource } from './schools';
7
+ export { createClassesResource, ScopedClassResource, ScopedClassStudentResource, ScopedClassLineItemResource, } from './classes';
8
+ export { createCoursesResource, ScopedCourseResource } from './courses';
9
+ export { EnrollmentsResource } from './enrollments';
10
+ export { AcademicSessionsResource, createTermsResource, ScopedTermResource, GradingPeriodsResource, } from './academic-sessions';
11
+ export { DemographicsResource } from './demographics';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/resources/rostering/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,GAClB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACvE,OAAO,EACN,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,GAC3B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Organizations Resource
3
+ *
4
+ * Manage organizations (schools, districts, departments).
5
+ */
6
+ import { BaseResource } from '../base';
7
+ import type { OneRosterTransportLike, Organization, OrganizationFilterFields, OrgCreateInput } from '../../types';
8
+ /**
9
+ * Resource for all organizations regardless of type.
10
+ *
11
+ * For school-specific access with nested resources, use SchoolsResource.
12
+ */
13
+ export declare class OrgsResource extends BaseResource<Organization, OrganizationFilterFields, OrgCreateInput> {
14
+ constructor(transport: OneRosterTransportLike);
15
+ protected get unwrapKey(): string;
16
+ protected get wrapKey(): string;
17
+ }
18
+ //# sourceMappingURL=orgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orgs.d.ts","sourceRoot":"","sources":["../../../src/resources/rostering/orgs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EACX,sBAAsB,EACtB,YAAY,EACZ,wBAAwB,EACxB,cAAc,EACd,MAAM,aAAa,CAAA;AAEpB;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,YAAY,CAC7C,YAAY,EACZ,wBAAwB,EACxB,cAAc,CACd;IACA,YAAY,SAAS,EAAE,sBAAsB,EAE5C;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,SAAS,KAAK,OAAO,IAAI,MAAM,CAE9B;CACD"}