@faiber/faiber-lms 1.1.0 → 1.3.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.
package/README.md CHANGED
@@ -335,3 +335,110 @@ insensitive and accepts Persian/Arabic digits; enter all six characters for a
335
335
  short-ID lookup. Collisions return multiple results: select using the record's
336
336
  name/course and keep its full UUID for subsequent operations. `shortIdFromUuid`
337
337
  is also exported for offline display. Requires the service's short-ID migration.
338
+
339
+ ## Complete weekly calendar and today view
340
+
341
+ Available since SDK 1.2.0. Requires an LMS deployment that includes
342
+ `GET /api/v1/classrooms/sessions/calendar`.
343
+
344
+ `lms.classroomCalendar` loads timetable rows, cards, staff/classroom/course details,
345
+ student counts, filter badges and summary metrics with **one API request**. It
346
+ requires `lms:classroom:read`, with existing role/own-record visibility restrictions.
347
+ No report or Profile permissions or frontend enrichment requests are needed.
348
+ Existing paginated session methods remain compatible.
349
+
350
+ ```ts
351
+ import { FaiberSDK } from '@faiber/faiber-ts-sdk';
352
+ import type { ClassroomCalendarRequest } from '@faiber/faiber-lms';
353
+
354
+ // Use your existing authenticated SDK instance; secure cookie auth is shown here.
355
+ const sdk = new FaiberSDK({
356
+ domains: { lms: 'https://lms.example.com' },
357
+ axios: { withCredentials: true },
358
+ });
359
+ const controller = new AbortController();
360
+
361
+ // /dashboard/lms/calendar: one request for this complete local week.
362
+ const week: ClassroomCalendarRequest = {
363
+ from: '2026-10-25T00:00:00+03:30',
364
+ to: '2026-11-01T00:00:00+03:30', // exclusive
365
+ timezone: 'Asia/Tehran',
366
+ teacher_ids: ['0451390a-bfab-4de5-b463-b93d6d15b1c5'],
367
+ session_types: ['online', 'interactive'],
368
+ };
369
+ const weeklyResponse = await sdk.lms.classroomCalendar(week, {
370
+ signal: controller.signal,
371
+ });
372
+ const weekly = weeklyResponse.data.data;
373
+ // Render timetable/cards from weekly.sessions, metrics from weekly.summary,
374
+ // and stable type-filter badges from weekly.type_counts. No enrichment calls.
375
+
376
+ // /dashboard/lms/today: one request for the selected local date.
377
+ // This is an alternative page load, not an additional request for the weekly page.
378
+ const dailyResponse = await sdk.lms.classroomCalendar({
379
+ date: '2026-10-25',
380
+ timezone: 'Asia/Tehran',
381
+ }, { signal: controller.signal });
382
+ const daily = dailyResponse.data.data;
383
+ for (const session of daily.sessions) {
384
+ const time = new Intl.DateTimeFormat('fa-IR', {
385
+ timeZone: daily.range.timezone, hour: '2-digit', minute: '2-digit',
386
+ }).format(new Date(session.starts_at));
387
+ console.log(session.title, time, session.student_count); // zero stays zero
388
+ }
389
+ ```
390
+
391
+ The individual `LmsApi` exposes the same `classroomCalendar` method. The exact wire
392
+ operation is `lms.operations.classroomCalendarGet`, with CSV strings instead of
393
+ arrays. All entry points preserve the complete Axios response, errors, headers,
394
+ request options, token/cookie authentication and cancellation. Selector opening
395
+ and explicit calendar actions may make their own requests.
396
+
397
+ ### Calendar contract
398
+
399
+ - Supply required IANA `timezone` and either `date` (`YYYY-MM-DD`) **or** `from`/`to`
400
+ (RFC3339 instants). Ranges cover 1–7 complete local days, inclusive opening
401
+ midnight and exclusive closing midnight. DST days may have 23/25 hours; weeks
402
+ may have 167/169 hours. Ambiguous/nonexistent midnight is rejected explicitly.
403
+ - Sessions are included by their start instant, sorted by `starts_at` then `id`.
404
+ There is no pagination, result cap or silent truncation. Undated supplementary
405
+ sessions cannot be assigned to a day and are excluded from rows and metrics.
406
+ Dated supplementary sessions are included; cancelled/completed sessions remain
407
+ visible. Soft-deleted sessions/classrooms are excluded.
408
+ - Array filters support multiple `teacher_ids`, `session_types` (categories), and
409
+ `session_type_ids` (configured type UUIDs), plus one `classroom_id`. Each list
410
+ uses OR, separate filters use AND. Empty convenience arrays mean all values;
411
+ wire CSV filters must have 1–100 entries. Unknown values are rejected, not ignored.
412
+ - Categories: `online` (آنلاین), `in_person` (حضوری), `makeup` (جبرانی),
413
+ `interactive` (آنلاین تعاملی), `supplementary` (مکمل), plus `unknown` for
414
+ unmapped configured types. `delivery_mode` uses the same categories. Lifecycle,
415
+ record status and access mode are separate fields.
416
+ - `summary` describes returned rows **after all filters**. `type_counts`,
417
+ `configured_type_counts`, and `total_before_type_filters` respect visibility,
418
+ date, teacher and classroom filters but ignore **both type filters**. Category
419
+ counts always include all categories with genuine zero values.
420
+ - Effective teacher is session teacher with classroom fallback; support is
421
+ classroom support with consultant fallback. Null IDs mean unassigned; a
422
+ non-null ID with null profile means no Profile record was returned. Display
423
+ names are strings, locale maps, or null. A Profile service failure rejects the
424
+ whole request with 502 rather than silently omitting enrichment.
425
+ - `student_count`: distinct selected IDs when restricted (empty selection = 0),
426
+ otherwise distinct active/inactive/disabled/enrolled classroom members.
427
+ `classroom_student_count` always means enrollment, and `classroom_capacity` is
428
+ independent: null is unconfigured and zero is preserved. Summary
429
+ `student_seat_count` sums session counts, not unique people across the range.
430
+ - Missing duration/end time/type/room/lifecycle values remain null. The sum of
431
+ known durations is paired with `unknown_duration_count`. Missing lifecycle is
432
+ grouped under `unknown`. Timing/access fields come from LMS; do not manually
433
+ add timezone offsets to timestamps or derive access mode from category.
434
+ - Query shape/unknown keys (including pagination) return 400; range/timezone/filter
435
+ validation returns 422; missing permission returns 403 (gateway auth may return
436
+ 401); Profile failures return 502. Catch Axios errors and keep cancellation
437
+ distinct from failed loading. There is no SDK retry or enrichment fallback.
438
+
439
+ Public types include `ClassroomCalendarRequest`, `ClassroomCalendarQuery`,
440
+ `ClassroomCalendarResponse`, `ClassroomCalendarData`, `ClassroomCalendarSession`,
441
+ `CalendarSummary`, `CalendarProfileSummary`, `CalendarSessionType`,
442
+ `CalendarSessionCategory`, and explicit range/filter/count types. Package release
443
+ and compatible backend deployment are both required before enabling this method
444
+ in a production client.
package/dist/.tsbuildinfo CHANGED
@@ -1 +1 @@
1
- {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/branding.types.ts","../../../node_modules/axios/index.d.ts","../../core/dist/types.d.ts","../../core/dist/short-id.d.ts","../../core/dist/env.d.ts","../../core/dist/auth.d.ts","../../core/dist/client.d.ts","../../core/dist/resource.d.ts","../../core/dist/openapi.d.ts","../../core/dist/realtime.d.ts","../../core/dist/summary-access.d.ts","../../core/dist/index.d.ts","../src/contracts.types.ts","../src/notification-settings.ts","../src/wire.types.ts","../src/types.ts","../src/interactive.ts","../src/operations.types.ts","../src/media.ts","../src/operations.ts","../src/index.ts"],"fileIdsList":[[62],[61,62],[61,62,63,64,65,66,67,68,69,70],[61,62,66],[61],[71],[60,71,72,73,74,75,76,77,78,79],[71,77],[61,71,77],[60,71,72,73,74,75,76],[71,74,77]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"0d02d978a28df6b3aa126d0de244e58f252368464b47147d71f92eb7dbea02cd","signature":"e504d4662507c1f64bbad6f3ff5650e5ec2df737d20b876bfa465291fb360cca","impliedFormat":99},{"version":"2368a31d44ccc59758e3b3c682fee74e820b08fad98623905a85092018c06e3b","impliedFormat":99},{"version":"61806e75fc22177d65d9b33c90c4b88e4370abd4dd88d8196ca0fc87d7702fe9","impliedFormat":99},{"version":"cd5dcd4588b6b2d1e345d338edef1598cbfd33a138169b5f07a8fd707b63cdca","impliedFormat":99},{"version":"82065c5512d8d6f81b26cf13ea9ecd3e558be9560f7b5c62260858219ecd87f7","impliedFormat":99},{"version":"ed17ed1b2bcf384c88bc6cec6b427989b98db99fc7ad35a50605501a463bbc53","impliedFormat":99},{"version":"82bf4efcca8ab8764a91ac126c0af605ab6717ee94b2316461b5fa388b27e165","impliedFormat":99},{"version":"e8345259c97aa6b8a84b27963fff00e79b7f45852b0024fffc52c9a7949007ac","impliedFormat":99},{"version":"3f5eeb0a84713ccf640b9a6af4629e006f59d7629abc3fc95af2efb062fd0b83","impliedFormat":99},{"version":"ac62f6b0f2e963ea9a251ee8384e64cebe0fe4acd32ca177d838d7c5a7ad2b43","impliedFormat":99},{"version":"967088f3793139562bc3fd0e5db990a8bc2885f7444a1f10ea6a5a6479fa6d40","impliedFormat":99},{"version":"fbb76e489b24bd45225372dec4fddbbc3e9fe4ea23d4da6015fb209e424db9de","impliedFormat":99},{"version":"313429cde46b90bd34c5d5276dc1d8e999c96d22393b67dc65cc0495a4622e30","signature":"942a6af935c5bfbf31da79f95081d837daed846665f800096eada5906c02abcc","impliedFormat":99},{"version":"2784e29db21a6c2b925c3fa9c35a8523590f53bec8650ad0278791ab2c5f240a","signature":"bd2987dc4046eef0acb4abadeb07d547ff223222ae1a56a35701156aa70c67fa","impliedFormat":99},{"version":"097042cdc470246ae70be80f0fd55ce48d77e58c75c659b49636cf3dc8b3560c","signature":"5109baac311e0b9b5ae36d19ffbef073e5cbc2747ae239bc2cd1e22edf98014a","impliedFormat":99},{"version":"2ac3a29d0d588fef38089e1e26d9b88d3367245354440734074fb1209c424c4d","signature":"0ee83bc4a4f00b448e0a420e85a50b52dc3791b91d8192b4cfa0d7fc64fd6c6a","impliedFormat":99},{"version":"baa215f4c1ad4f9eda438b94c36a22d3504d0d0d1612510b9b34f3bae7c1d53f","signature":"edf07a7fb4e3a82b1b80eab230d6b750349ebdd285f259c54fd65a77021f76e0","impliedFormat":99},{"version":"bbf57c9e9973d950e739d997b8d362c8426be9a99b37564466a271ba91aad022","signature":"e72928c740647c080d4d44caf37ebfac26a3b97463e183adde7f41cc513befb5","impliedFormat":99},{"version":"d5d72f0efbd6bd237ef306e02f9488b9e912b28bf2d4eac23af02ceb07b75512","signature":"c1a04a62f847a3e65ca1d74c72a0f7bc1eed338e9f170504a37d3d6642998eee","impliedFormat":99},{"version":"fe39ca308161ff014c91d720fd9a2b4e5e63991910218d4be1cd6001b97c853e","signature":"31d0b31bc9537f396fade56d767790e22efc4ac672514513a8fe68af86188962","impliedFormat":99},{"version":"d9a5862eb095ec18c19de55398d711ef44c20c09c0046c8ff3b3cae32864ef80","signature":"ec1122baa8b4055541615744671c365ad256e6dd5626a6be238fd9614d8ee2b6","impliedFormat":99}],"root":[60,[72,80]],"options":{"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"module":199,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[65,1],[66,2],[64,1],[71,3],[68,4],[67,4],[62,5],[72,6],[80,7],[76,6],[78,8],[73,6],[79,9],[77,10],[75,11],[74,6]],"latestChangedDtsFile":"./operations.d.ts","version":"5.9.3"}
1
+ {"fileNames":["../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es5.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2021.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2022.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.dom.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.decorators.d.ts","../../../../../../faiber-ts-sdk/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/branding.types.ts","../../../../../../faiber-ts-sdk/node_modules/axios/index.d.ts","../../core/dist/types.d.ts","../../core/dist/short-id.d.ts","../../core/dist/env.d.ts","../../core/dist/auth.d.ts","../../core/dist/client.d.ts","../../core/dist/resource.d.ts","../../core/dist/openapi.d.ts","../../core/dist/realtime.d.ts","../../core/dist/summary-access.d.ts","../../core/dist/index.d.ts","../src/calendar.types.ts","../src/contracts.types.ts","../src/notification-settings.ts","../src/wire.types.ts","../src/types.ts","../src/interactive.ts","../src/operations.types.ts","../src/media.ts","../src/operations.ts","../src/index.ts"],"fileIdsList":[[62],[61,62],[61,62,63,64,65,66,67,68,69,70],[61,62,66],[61],[71],[60,71,72,73,74,75,76,77,78,79,80],[71,78],[61,71,78],[60,71,72,73,74,75,76,77],[71,75,78]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"0d02d978a28df6b3aa126d0de244e58f252368464b47147d71f92eb7dbea02cd","signature":"e504d4662507c1f64bbad6f3ff5650e5ec2df737d20b876bfa465291fb360cca","impliedFormat":99},{"version":"2343ec253c90c370449755739733f5f429f58cffdb51a50977bb4a042012fa8f","impliedFormat":99},{"version":"61806e75fc22177d65d9b33c90c4b88e4370abd4dd88d8196ca0fc87d7702fe9","impliedFormat":99},{"version":"cd5dcd4588b6b2d1e345d338edef1598cbfd33a138169b5f07a8fd707b63cdca","impliedFormat":99},{"version":"82065c5512d8d6f81b26cf13ea9ecd3e558be9560f7b5c62260858219ecd87f7","impliedFormat":99},{"version":"ed17ed1b2bcf384c88bc6cec6b427989b98db99fc7ad35a50605501a463bbc53","impliedFormat":99},{"version":"82bf4efcca8ab8764a91ac126c0af605ab6717ee94b2316461b5fa388b27e165","impliedFormat":99},{"version":"e8345259c97aa6b8a84b27963fff00e79b7f45852b0024fffc52c9a7949007ac","impliedFormat":99},{"version":"3f5eeb0a84713ccf640b9a6af4629e006f59d7629abc3fc95af2efb062fd0b83","impliedFormat":99},{"version":"ac62f6b0f2e963ea9a251ee8384e64cebe0fe4acd32ca177d838d7c5a7ad2b43","impliedFormat":99},{"version":"967088f3793139562bc3fd0e5db990a8bc2885f7444a1f10ea6a5a6479fa6d40","impliedFormat":99},{"version":"fbb76e489b24bd45225372dec4fddbbc3e9fe4ea23d4da6015fb209e424db9de","impliedFormat":99},{"version":"4fff8da017b478abcd68ff5af633b1d2df87a4a665f2f1823d254133f348240e","signature":"327fe49f3bdff2fc8b9f3e3dee527e8f2080e858d53acc0ef812a8596387bf64","impliedFormat":99},{"version":"313429cde46b90bd34c5d5276dc1d8e999c96d22393b67dc65cc0495a4622e30","signature":"942a6af935c5bfbf31da79f95081d837daed846665f800096eada5906c02abcc","impliedFormat":99},{"version":"2784e29db21a6c2b925c3fa9c35a8523590f53bec8650ad0278791ab2c5f240a","signature":"2a47e564e759449623dacb1bddda53d0a934faab787e293eba0dca202ec049e1","impliedFormat":99},{"version":"097042cdc470246ae70be80f0fd55ce48d77e58c75c659b49636cf3dc8b3560c","signature":"5109baac311e0b9b5ae36d19ffbef073e5cbc2747ae239bc2cd1e22edf98014a","impliedFormat":99},{"version":"2ac3a29d0d588fef38089e1e26d9b88d3367245354440734074fb1209c424c4d","signature":"0ee83bc4a4f00b448e0a420e85a50b52dc3791b91d8192b4cfa0d7fc64fd6c6a","impliedFormat":99},{"version":"baa215f4c1ad4f9eda438b94c36a22d3504d0d0d1612510b9b34f3bae7c1d53f","signature":"19e73476c4a58d95fe3d46a20a205edeb9ff87da6a11fa3692b31f75161b252b","impliedFormat":99},{"version":"6804b4cdf0b0627d94d3e5869ad36e5c5cbbee8a346699abe417860bba53aaba","signature":"99794f0f6ca0f45b4eb100df05d9c0f0377a21f27c5ff33489ee45c80af07717","impliedFormat":99},{"version":"d5d72f0efbd6bd237ef306e02f9488b9e912b28bf2d4eac23af02ceb07b75512","signature":"2e1dea1792bfdd813bb02044afd8f1b2e79771aa10a7dc010357655981e94ac9","impliedFormat":99},{"version":"60087b688165270d0b09581f0396d329b2db08dfebd7304f4f3c9b54928a614e","signature":"4d56603e4ce026ee3eed43f1c8c9088de38983144ca83c208cb6a83188001f44","impliedFormat":99},{"version":"4bf68b19447c351798e1f9684c2893248deba02b733b6e5d71e048947817b7b1","signature":"479ef58679c6a7481bf152010b6b246a6fa6c469f16ea25d02a430fbc7c2bd42","impliedFormat":99}],"root":[60,[72,81]],"options":{"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"module":199,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[65,1],[66,2],[64,1],[71,3],[68,4],[67,4],[62,5],[72,6],[73,6],[81,7],[77,6],[79,8],[74,6],[80,9],[78,10],[76,11],[75,6]],"latestChangedDtsFile":"./operations.types.d.ts","version":"5.9.3"}
@@ -0,0 +1,140 @@
1
+ import type { ApiEnvelope } from "@faiber/sdk-core";
2
+ /** Calendar delivery category, independent of lifecycle/status. Unknown configured types are never dropped. */
3
+ export type CalendarSessionCategory = "online" | "in_person" | "makeup" | "interactive" | "supplementary" | "unknown";
4
+ export type CalendarLocalizedName = string | Record<string, string>;
5
+ /** Display identity only; no separate Profile permission or request is needed. */
6
+ export interface CalendarProfileSummary {
7
+ user_id: string;
8
+ short_id: string | null;
9
+ first_name: CalendarLocalizedName | null;
10
+ last_name: CalendarLocalizedName | null;
11
+ }
12
+ export interface CalendarSessionType {
13
+ id: string;
14
+ code: string;
15
+ name: string;
16
+ name_fa: string | null;
17
+ is_online: boolean;
18
+ status: string;
19
+ sort_order: number;
20
+ created_at: string;
21
+ updated_at: string;
22
+ }
23
+ /** Supply one local date OR a half-open range of 1–7 complete local days, never both. */
24
+ export type CalendarDateSelection = {
25
+ date: string;
26
+ from?: never;
27
+ to?: never;
28
+ } | {
29
+ date?: never;
30
+ from: string;
31
+ to: string;
32
+ };
33
+ export interface CalendarWireFilters {
34
+ /** Required IANA name, e.g. Asia/Tehran. */
35
+ timezone: string;
36
+ /** Comma-separated UUIDs; OR within this filter; matches session teacher with classroom fallback. */
37
+ teacher_ids?: string;
38
+ classroom_id?: string;
39
+ /** Comma-separated CalendarSessionCategory values; independent of lifecycle. */
40
+ session_types?: string;
41
+ /** Comma-separated configured session type UUIDs; AND with session_types when both are supplied. */
42
+ session_type_ids?: string;
43
+ }
44
+ /** Exact wire query for operations.classroomCalendarGet. Pagination is unsupported. */
45
+ export type ClassroomCalendarQuery = CalendarDateSelection & CalendarWireFilters;
46
+ export interface CalendarRequestFilters {
47
+ timezone: string;
48
+ teacher_ids?: readonly string[];
49
+ classroom_id?: string;
50
+ session_types?: readonly CalendarSessionCategory[];
51
+ session_type_ids?: readonly string[];
52
+ }
53
+ /** Ergonomic request for lms.classroomCalendar; arrays are serialized to the backend's CSV filters. */
54
+ export type ClassroomCalendarRequest = CalendarDateSelection & CalendarRequestFilters;
55
+ export interface ClassroomCalendarSession {
56
+ id: string;
57
+ title: string;
58
+ classroom_id: string;
59
+ classroom_name: string;
60
+ course_id: string;
61
+ course_name: string;
62
+ course_session_id: string | null;
63
+ course_session_type_id: string | null;
64
+ session_type: CalendarSessionType | null;
65
+ category: CalendarSessionCategory;
66
+ delivery_mode: CalendarSessionCategory;
67
+ is_makeup: boolean;
68
+ session_number: number | null;
69
+ /** RFC3339 instant; always dated. Undated supplementary records are excluded. */
70
+ starts_at: string;
71
+ ends_at: string | null;
72
+ duration_minutes: number | null;
73
+ teacher_user_id: string | null;
74
+ teacher_profile: CalendarProfileSummary | null;
75
+ support_user_id: string | null;
76
+ support_profile: CalendarProfileSummary | null;
77
+ /** Distinct selected IDs when restricted (including [] = 0); otherwise classroom enrollment count. */
78
+ student_count: number;
79
+ /** Distinct active/inactive/disabled/enrolled classroom members, excluding withdrawn/removed history. */
80
+ classroom_student_count: number;
81
+ /** Null is unconfigured; zero is a genuine configured value. */
82
+ classroom_capacity: number | null;
83
+ students_restricted: boolean;
84
+ status: string;
85
+ session_lifecycle_status: string | null;
86
+ session_room_id: string | null;
87
+ session_archive_ready: boolean;
88
+ session_access_mode: "locked" | "scheduled" | "created" | "live" | "playback" | "playback_pending" | "recording" | "recording_pending" | "cancelled";
89
+ locked: boolean;
90
+ auto_unlock: boolean;
91
+ auto_present: boolean;
92
+ invited: boolean;
93
+ }
94
+ export interface CalendarSummary {
95
+ session_count: number;
96
+ classroom_count: number;
97
+ teacher_count: number;
98
+ /** Sum of session student counts, not unique people across the whole range. */
99
+ student_seat_count: number;
100
+ /** Sum of known duration_minutes; unknown durations contribute zero to this sum only. */
101
+ duration_minutes: number;
102
+ unknown_duration_count: number;
103
+ archive_ready_count: number;
104
+ status_counts: Record<string, number>;
105
+ /** Missing lifecycle values are counted under "unknown". */
106
+ lifecycle_counts: Record<string, number>;
107
+ access_mode_counts: Record<string, number>;
108
+ }
109
+ export interface CalendarRange {
110
+ from: string;
111
+ to: string;
112
+ timezone: string;
113
+ local_from: string;
114
+ /** Exclusive local end date. */
115
+ local_to: string;
116
+ }
117
+ export interface CalendarTypeCount {
118
+ category: CalendarSessionCategory;
119
+ count: number;
120
+ }
121
+ export interface CalendarConfiguredTypeCount {
122
+ course_session_type_id: string | null;
123
+ session_type: CalendarSessionType | null;
124
+ count: number;
125
+ }
126
+ export interface ClassroomCalendarData {
127
+ range: CalendarRange;
128
+ /** Complete authorized results, ordered by starts_at then id; no pagination or result cap. */
129
+ sessions: ClassroomCalendarSession[];
130
+ /** Metrics after all filters, including type filters. */
131
+ summary: CalendarSummary;
132
+ /** Date/teacher/classroom/visibility scoped, independent of BOTH category and configured-type filters. */
133
+ total_before_type_filters: number;
134
+ /** Always contains all five categories plus unknown, including zero counts. */
135
+ type_counts: CalendarTypeCount[];
136
+ /** Configured types present before type filtering, ordered by UUID; null groups untyped sessions. */
137
+ configured_type_counts: CalendarConfiguredTypeCount[];
138
+ }
139
+ export type ClassroomCalendarResponse = ApiEnvelope<ClassroomCalendarData>;
140
+ //# sourceMappingURL=calendar.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.types.d.ts","sourceRoot":"","sources":["../src/calendar.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=calendar.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.types.js","sourceRoot":"","sources":["../src/calendar.types.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import { LmsMediaApi } from "./media.js";
3
3
  import { InteractiveLearningApi } from "./interactive.js";
4
4
  import { RestResource, ServiceApi, type AxiosResponse, type Identifier, type QueryParams, type PageQuery, type RequestOptions } from "@faiber/sdk-core";
5
5
  import type * as T from "./types.js";
6
+ import type { ClassroomCalendarRequest } from "./calendar.types.js";
6
7
  import type * as O from "./operations.types.js";
7
8
  type R<E extends T.LmsEntity, C, U, Q extends QueryParams = PageQuery> = RestResource<E, C, U, T.LmsListResponse<E>, T.LmsResponse<E>, Q, import("./wire.types.js").LmsEmptyMutationResponse>;
8
9
  import { LmsOperations } from "./operations.js";
@@ -40,19 +41,19 @@ export interface HomeworkItemAssignmentInput {
40
41
  /** Complete CRUD surface for homework-item delivery assignments. */
41
42
  export declare class HomeworkAssignmentsApi extends ServiceApi {
42
43
  private readonly operations;
43
- list(params?: T.HomeworkAssignmentListQuery, options?: RequestOptions): Promise<AxiosResponse<O.HomeworkIndexAssignmentGetResponse, unknown, {}, any>>;
44
- show(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<O.HomeworkShowAssignmentGetResponse, unknown, {}, any>>;
44
+ list(params?: T.HomeworkAssignmentListQuery, options?: RequestOptions): Promise<AxiosResponse<O.HomeworkIndexAssignmentGetResponse, unknown, {}>>;
45
+ show(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<O.HomeworkShowAssignmentGetResponse, unknown, {}>>;
45
46
  /** Creates a delivery. homework_id must be the exercise's id, not its parent homework_id or bank id. Requires lms:homework:create. */
46
- create(data: O.HomeworkStoreAssignmentPostInput, options?: RequestOptions<O.HomeworkStoreAssignmentPostInput>): Promise<AxiosResponse<O.HomeworkStoreAssignmentPostResponse, import("./wire.types.js").LmsCreateAssignmentInput, {}, any>>;
47
+ create(data: O.HomeworkStoreAssignmentPostInput, options?: RequestOptions<O.HomeworkStoreAssignmentPostInput>): Promise<AxiosResponse<O.HomeworkStoreAssignmentPostResponse, import("./wire.types.js").LmsCreateAssignmentInput, {}>>;
47
48
  /**
48
49
  * Assigns a selected homework-bank exercise, using item.id instead of its parent item.homework_id.
49
50
  * Requires lms:homework:create and a learner user_id. Returns the full assignment Axios response.
50
51
  * Invalid local item/learner data throws TypeError; server validation, access, and network failures reject with AxiosError.
51
52
  * Forward signal/progress/timeout options through the authenticated SDK transport. Existing placeholders need backend validation.
52
53
  */
53
- createForItem(item: T.HomeworkBankItem, data: HomeworkItemAssignmentInput, options?: RequestOptions<O.HomeworkStoreAssignmentPostInput>): Promise<AxiosResponse<O.HomeworkStoreAssignmentPostResponse, import("./wire.types.js").LmsCreateAssignmentInput, {}, any>>;
54
- update(id: Identifier, data: O.HomeworkUpdateAssignmentPatchInput, options?: RequestOptions<O.HomeworkUpdateAssignmentPatchInput>): Promise<AxiosResponse<O.HomeworkUpdateAssignmentPatchResponse, O.HomeworkUpdateAssignmentPatchInput, {}, any>>;
55
- delete(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<import("./wire.types.js").LmsEmptyMutationResponse, unknown, {}, any>>;
54
+ createForItem(item: T.HomeworkBankItem, data: HomeworkItemAssignmentInput, options?: RequestOptions<O.HomeworkStoreAssignmentPostInput>): Promise<AxiosResponse<O.HomeworkStoreAssignmentPostResponse, import("./wire.types.js").LmsCreateAssignmentInput, {}>>;
55
+ update(id: Identifier, data: O.HomeworkUpdateAssignmentPatchInput, options?: RequestOptions<O.HomeworkUpdateAssignmentPatchInput>): Promise<AxiosResponse<O.HomeworkUpdateAssignmentPatchResponse, O.HomeworkUpdateAssignmentPatchInput, {}>>;
56
+ delete(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<import("./wire.types.js").LmsEmptyMutationResponse, unknown, {}>>;
56
57
  }
57
58
  /** Builds the authenticated LMS exam page URL from an exam-attempt UUID. */
58
59
  export declare function examPageUrl(attemptId: Identifier, lmsBaseUrl?: string): string;
@@ -76,7 +77,7 @@ export declare class LmsApi extends ServiceApi {
76
77
  * 422: invalid/missing users or key; 409: active attempts, collisions or key reuse.
77
78
  * Office financial records and staff assignments are excluded. See package README for scope.
78
79
  */
79
- transferUserData(data: T.TransferUserDataInput, idempotencyKey: string, options?: RequestOptions<T.TransferUserDataInput>): Promise<AxiosResponse<T.TransferUserDataResponse, T.TransferUserDataInput, {}, any>>;
80
+ transferUserData(data: T.TransferUserDataInput, idempotencyKey: string, options?: RequestOptions<T.TransferUserDataInput>): Promise<AxiosResponse<T.TransferUserDataResponse, T.TransferUserDataInput, {}>>;
80
81
  readonly media: LmsMediaApi;
81
82
  readonly interactive: InteractiveLearningApi;
82
83
  readonly operations: LmsOperations;
@@ -113,7 +114,7 @@ export declare class LmsApi extends ServiceApi {
113
114
  * failures retain the backend HTTP error through Axios. Counts cover the whole classroom,
114
115
  * independently of page size; the service batches counts for the returned page.
115
116
  */
116
- listClassrooms(params?: O.ClassroomIndexClassroomGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ClassroomIndexClassroomGetResponse, unknown, {}, any>>;
117
+ listClassrooms(params?: O.ClassroomIndexClassroomGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ClassroomIndexClassroomGetResponse, unknown, {}>>;
117
118
  /** Searches authorized classrooms by name, course name, legacy code, or exact short ID.
118
119
  * @param input Search text and optional pagination/status/course/relationship filters.
119
120
  * @param options Axios headers, timeout and cancellation signal.
@@ -121,43 +122,43 @@ export declare class LmsApi extends ServiceApi {
121
122
  * Requires lms:classroom:read or scoped lms:classroom:read_own. Matching is case-insensitive;
122
123
  * short-ID collisions return all authorized matches. HTTP failures reject with AxiosError.
123
124
  */
124
- searchClassrooms(input: ClassroomSearchInput, options?: RequestOptions): Promise<AxiosResponse<O.ClassroomIndexClassroomGetResponse, unknown, {}, any>>;
125
+ searchClassrooms(input: ClassroomSearchInput, options?: RequestOptions): Promise<AxiosResponse<O.ClassroomIndexClassroomGetResponse, unknown, {}>>;
125
126
  /** Reads one classroom with its course and teacher, consultant, and support profiles. */
126
- classroom(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<O.ClassroomShowClassroomGetResponse, unknown, {}, any>>;
127
+ classroom(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<O.ClassroomShowClassroomGetResponse, unknown, {}>>;
127
128
  /** Deletes one classroom. Requires `lms:classroom:delete`. */
128
- deleteClassroom(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<import("./wire.types.js").LmsEmptyMutationResponse, unknown, {}, any>>;
129
+ deleteClassroom(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<import("./wire.types.js").LmsEmptyMutationResponse, unknown, {}>>;
129
130
  /** Lists classroom sessions, including course-session/type metadata and relationship filters. */
130
- listClassroomSessions(params?: O.ClassroomIndexSessionGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ClassroomIndexSessionGetResponse, unknown, {}, any>>;
131
+ listClassroomSessions(params?: O.ClassroomIndexSessionGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ClassroomIndexSessionGetResponse, unknown, {}>>;
131
132
  /** Lists homework-bank definitions; their todo/project items are exposed by `homeworkBankItems`. */
132
- listHomeworks(params?: T.HomeworkListQuery, options?: RequestOptions): Promise<AxiosResponse<O.HomeworkIndexHomeworkGetResponse, unknown, {}, any>>;
133
+ listHomeworks(params?: T.HomeworkListQuery, options?: RequestOptions): Promise<AxiosResponse<O.HomeworkIndexHomeworkGetResponse, unknown, {}>>;
133
134
  /** Lists delivered assignments with user, status, classroom, and time filters. */
134
- listAssignments(params?: T.HomeworkAssignmentListQuery, options?: RequestOptions): Promise<AxiosResponse<O.HomeworkIndexAssignmentGetResponse, unknown, {}, any>>;
135
+ listAssignments(params?: T.HomeworkAssignmentListQuery, options?: RequestOptions): Promise<AxiosResponse<O.HomeworkIndexAssignmentGetResponse, unknown, {}>>;
135
136
  /** Creates a delivery assignment from a reusable homework/project bank item. */
136
- createAssignment(data: O.HomeworkStoreAssignmentPostInput, options?: RequestOptions<O.HomeworkStoreAssignmentPostInput>): Promise<AxiosResponse<O.HomeworkStoreAssignmentPostResponse, import("./wire.types.js").LmsCreateAssignmentInput, {}, any>>;
137
+ createAssignment(data: O.HomeworkStoreAssignmentPostInput, options?: RequestOptions<O.HomeworkStoreAssignmentPostInput>): Promise<AxiosResponse<O.HomeworkStoreAssignmentPostResponse, import("./wire.types.js").LmsCreateAssignmentInput, {}>>;
137
138
  /** Reads one homework/project assignment record. */
138
- assignment(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<O.HomeworkShowAssignmentGetResponse, unknown, {}, any>>;
139
+ assignment(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<O.HomeworkShowAssignmentGetResponse, unknown, {}>>;
139
140
  /** Updates assignment delivery, ownership, answer, score, or status fields. */
140
- updateAssignment(id: Identifier, data: O.HomeworkUpdateAssignmentPatchInput, options?: RequestOptions<O.HomeworkUpdateAssignmentPatchInput>): Promise<AxiosResponse<O.HomeworkUpdateAssignmentPatchResponse, O.HomeworkUpdateAssignmentPatchInput, {}, any>>;
141
+ updateAssignment(id: Identifier, data: O.HomeworkUpdateAssignmentPatchInput, options?: RequestOptions<O.HomeworkUpdateAssignmentPatchInput>): Promise<AxiosResponse<O.HomeworkUpdateAssignmentPatchResponse, O.HomeworkUpdateAssignmentPatchInput, {}>>;
141
142
  /** Deletes an assignment record without deleting its reusable bank item. */
142
- deleteAssignment(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<import("./wire.types.js").LmsEmptyMutationResponse, unknown, {}, any>>;
143
+ deleteAssignment(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<import("./wire.types.js").LmsEmptyMutationResponse, unknown, {}>>;
143
144
  /** Returns the filterable todo/project questions belonging to one homework definition/bank. */
144
145
  homeworkBankItems(homeworkBankId: Identifier): R<T.HomeworkBankItem, O.HomeworkStoreBankHomeworkPostInput, O.HomeworkUpdateBankHomeworkPatchInput, O.HomeworkIndexBankHomeworkGetQuery>;
145
146
  /** Lists exam-bank items/questions for one bank. */
146
- listExamBankItems(examBankId: Identifier, params?: O.ExamIndexQuestionGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ExamIndexQuestionGetResponse, unknown, {}, any>>;
147
+ listExamBankItems(examBankId: Identifier, params?: O.ExamIndexQuestionGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ExamIndexQuestionGetResponse, unknown, {}>>;
147
148
  /** Lists exam users/attempts. */
148
- listExamUsers(params?: O.ExamIndexAttemptGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ExamIndexAttemptGetResponse, unknown, {}, any>>;
149
+ listExamUsers(params?: O.ExamIndexAttemptGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ExamIndexAttemptGetResponse, unknown, {}>>;
149
150
  /** Reads one exam user/attempt. */
150
- examUser(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<O.ExamShowAttemptGetResponse, unknown, {}, any>>;
151
+ examUser(id: Identifier, options?: RequestOptions): Promise<AxiosResponse<O.ExamShowAttemptGetResponse, unknown, {}>>;
151
152
  /** Updates scoring, deadline, extension, description, or status for an exam user/attempt. */
152
- updateExamUser(id: Identifier, data: O.ExamUpdateAttemptPatchInput, options?: RequestOptions<O.ExamUpdateAttemptPatchInput>): Promise<AxiosResponse<O.ExamUpdateAttemptPatchResponse, O.ExamUpdateAttemptPatchInput, {}, any>>;
153
+ updateExamUser(id: Identifier, data: O.ExamUpdateAttemptPatchInput, options?: RequestOptions<O.ExamUpdateAttemptPatchInput>): Promise<AxiosResponse<O.ExamUpdateAttemptPatchResponse, O.ExamUpdateAttemptPatchInput, {}>>;
153
154
  /** Lists exams with course and relationship-aware time filtering. */
154
- listExams(params?: T.ExamListQuery, options?: RequestOptions): Promise<AxiosResponse<O.ExamIndexExamGetResponse, unknown, {}, any>>;
155
+ listExams(params?: T.ExamListQuery, options?: RequestOptions): Promise<AxiosResponse<O.ExamIndexExamGetResponse, unknown, {}>>;
155
156
  /** Lists exam sessions with explicit student, teacher, consultant, and support filters. */
156
- listExamSessions(params?: T.ExamSessionListQuery, options?: RequestOptions): Promise<AxiosResponse<O.ExamIndexSessionGetResponse, unknown, {}, any>>;
157
+ listExamSessions(params?: T.ExamSessionListQuery, options?: RequestOptions): Promise<AxiosResponse<O.ExamIndexSessionGetResponse, unknown, {}>>;
157
158
  /** Lists exam attempts; each returned attempt ID is suitable for examPageUrl. */
158
- listExamAttempts(params?: O.ExamIndexAttemptGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ExamIndexAttemptGetResponse, unknown, {}, any>>;
159
+ listExamAttempts(params?: O.ExamIndexAttemptGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ExamIndexAttemptGetResponse, unknown, {}>>;
159
160
  /** Returns the access-checked report summary for one LMS user UUID. */
160
- studentSummary(userId: Identifier, params?: O.ReportStudentSummaryGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ReportStudentSummaryGetResponse, unknown, {}, any>>;
161
+ studentSummary(userId: Identifier, params?: O.ReportStudentSummaryGetQuery, options?: RequestOptions): Promise<AxiosResponse<O.ReportStudentSummaryGetResponse, unknown, {}>>;
161
162
  /**
162
163
  * Returns exact user-detail card counts without downloading and filtering global collections.
163
164
  *
@@ -176,49 +177,58 @@ export declare class LmsApi extends ServiceApi {
176
177
  * Verifies a public, legacy, or verification code and returns certificate identity and result data.
177
178
  * This public endpoint does not require authentication; unknown codes return an Axios 404 error.
178
179
  */
179
- verifyCertificate(code: Identifier, options?: RequestOptions): Promise<AxiosResponse<T.PublicCertificateResponse, unknown, {}, any>>;
180
+ verifyCertificate(code: Identifier, options?: RequestOptions): Promise<AxiosResponse<T.PublicCertificateResponse, unknown, {}>>;
180
181
  /**
181
182
  * Generates or reads the cached SVG certificate document for a public, legacy, or verification code.
182
183
  * The returned Axios response data is the raw SVG string; cache state is available in response headers.
183
184
  */
184
- certificateSvg(code: Identifier, options?: RequestOptions): Promise<AxiosResponse<string, unknown, {}, any>>;
185
- dashboard(options?: RequestOptions): Promise<AxiosResponse<T.DashboardResponse, any, {}, any>>;
185
+ certificateSvg(code: Identifier, options?: RequestOptions): Promise<AxiosResponse<string, unknown, {}>>;
186
+ dashboard(options?: RequestOptions): Promise<AxiosResponse<T.DashboardResponse, any, {}>>;
186
187
  /** Lists active classroom-session types in scheduler display order. */
187
- classroomSessionTypes(options?: RequestOptions): Promise<AxiosResponse<T.ClassroomSessionTypesResponse, any, {}, any>>;
188
+ classroomSessionTypes(options?: RequestOptions): Promise<AxiosResponse<T.ClassroomSessionTypesResponse, any, {}>>;
189
+ /**
190
+ * Complete weekly calendar or selected local day in exactly one authenticated request.
191
+ * Requires lms:classroom:read; education-facing visibility restrictions still apply.
192
+ * Use date + IANA timezone for today, or RFC3339 midnight from/to spanning 1–7 local days.
193
+ * Type counts respect date/teacher/classroom scope independently of selected types.
194
+ * Returns the full Axios response. Forwards cancellation, timeout, adapters and headers.
195
+ * Rejects with AxiosError on 400/422 query errors, 401/403 auth errors, 502 enrichment or transport errors.
196
+ */
197
+ classroomCalendar(params: ClassroomCalendarRequest, options?: RequestOptions): Promise<AxiosResponse<import("./calendar.types.js").ClassroomCalendarResponse, unknown, {}>>;
188
198
  /** Lists classroom sessions scheduled for one local date, with lock, type, room, and profile metadata. */
189
- todayClassroomSessions(params?: T.TodayClassroomSessionListQuery, options?: RequestOptions): Promise<AxiosResponse<T.ClassroomSessionPageResponse, any, {}, any>>;
199
+ todayClassroomSessions(params?: T.TodayClassroomSessionListQuery, options?: RequestOptions): Promise<AxiosResponse<T.ClassroomSessionPageResponse, any, {}>>;
190
200
  /** Returns Session UI and recording URLs, using the configured Session domain when available. */
191
201
  classroomSessionLinks(reference: T.ClassroomSessionRoomReference, sessionBaseUrl?: string | undefined): T.ClassroomSessionLinks;
192
- courseSessions(id: Identifier, params?: O.CourseIndexSessionGetQuery, options?: RequestOptions): Promise<AxiosResponse<T.CourseSessionsResponse, any, {}, any>>;
202
+ courseSessions(id: Identifier, params?: O.CourseIndexSessionGetQuery, options?: RequestOptions): Promise<AxiosResponse<T.CourseSessionsResponse, any, {}>>;
193
203
  /** Returns one course session, including its configured external or DRM video source. */
194
- courseSession(courseId: Identifier, sessionId: Identifier, options?: RequestOptions): Promise<AxiosResponse<T.LmsResponse<T.CourseSession>, any, {}, any>>;
204
+ courseSession(courseId: Identifier, sessionId: Identifier, options?: RequestOptions): Promise<AxiosResponse<T.LmsResponse<T.CourseSession>, any, {}>>;
195
205
  /** Creates a course session with an optional external or DRM video source. */
196
- createCourseSession(courseId: Identifier, data: T.CreateCourseSessionInput, options?: RequestOptions<T.CreateCourseSessionInput>): Promise<AxiosResponse<T.LmsResponse<T.CourseSession>, T.CreateCourseSessionInput, {}, any>>;
206
+ createCourseSession(courseId: Identifier, data: T.CreateCourseSessionInput, options?: RequestOptions<T.CreateCourseSessionInput>): Promise<AxiosResponse<T.LmsResponse<T.CourseSession>, T.CreateCourseSessionInput, {}>>;
197
207
  /** Updates a course session and supports clearing or replacing its video source. */
198
- updateCourseSession(courseId: Identifier, sessionId: Identifier, data: T.UpdateCourseSessionInput, options?: RequestOptions<T.UpdateCourseSessionInput>): Promise<AxiosResponse<T.LmsResponse<T.CourseSession>, T.UpdateCourseSessionInput, {}, any>>;
199
- addClassroomUser(id: Identifier, data: T.ClassroomUserInput, options?: RequestOptions<T.ClassroomUserInput>): Promise<AxiosResponse<O.ClassroomEnrollClassroomUserPostResponse, O.ClassroomEnrollClassroomUserPostInput, {}, any>>;
208
+ updateCourseSession(courseId: Identifier, sessionId: Identifier, data: T.UpdateCourseSessionInput, options?: RequestOptions<T.UpdateCourseSessionInput>): Promise<AxiosResponse<T.LmsResponse<T.CourseSession>, T.UpdateCourseSessionInput, {}>>;
209
+ addClassroomUser(id: Identifier, data: T.ClassroomUserInput, options?: RequestOptions<T.ClassroomUserInput>): Promise<AxiosResponse<O.ClassroomEnrollClassroomUserPostResponse, O.ClassroomEnrollClassroomUserPostInput, {}>>;
200
210
  /** Read the selected aggregate report. Requires lms:report:read; invalid dates and access errors reject with AxiosError. */
201
- report<K extends "teachers" | "students" | "classrooms">(kind: K, params?: O.ReportTeachersGetQuery, options?: RequestOptions): Promise<AxiosResponse<LmsReportResponses[K], any, {}, any>>;
211
+ report<K extends "teachers" | "students" | "classrooms">(kind: K, params?: O.ReportTeachersGetQuery, options?: RequestOptions): Promise<AxiosResponse<LmsReportResponses[K], any, {}>>;
202
212
  /** Lists active learner academy categories for the authenticated IDP session. */
203
- academyCategories(options?: RequestOptions): Promise<AxiosResponse<T.AcademyCategoriesResponse, any, {}, any>>;
213
+ academyCategories(options?: RequestOptions): Promise<AxiosResponse<T.AcademyCategoriesResponse, any, {}>>;
204
214
  /** Returns classroom records for Office/Profile integration using canonical UUID identifiers. */
205
- batchClassrooms(data: O.IntegrationBatchClassroomsPostInput, options?: RequestOptions<O.IntegrationBatchClassroomsPostInput>): Promise<AxiosResponse<O.IntegrationBatchClassroomsPostResponse, O.IntegrationBatchClassroomsPostInput, {}, any>>;
215
+ batchClassrooms(data: O.IntegrationBatchClassroomsPostInput, options?: RequestOptions<O.IntegrationBatchClassroomsPostInput>): Promise<AxiosResponse<O.IntegrationBatchClassroomsPostResponse, O.IntegrationBatchClassroomsPostInput, {}>>;
206
216
  /** Resolves legacy numeric classroom references to the LMS UUID identifiers used by current services. */
207
- resolveLegacyClassroomIds(data: O.IntegrationResolveLegacyIdsPostInput, options?: RequestOptions<O.IntegrationResolveLegacyIdsPostInput>): Promise<AxiosResponse<O.IntegrationResolveLegacyIdsPostResponse, O.IntegrationResolveLegacyIdsPostInput, {}, any>>;
217
+ resolveLegacyClassroomIds(data: O.IntegrationResolveLegacyIdsPostInput, options?: RequestOptions<O.IntegrationResolveLegacyIdsPostInput>): Promise<AxiosResponse<O.IntegrationResolveLegacyIdsPostResponse, O.IntegrationResolveLegacyIdsPostInput, {}>>;
208
218
  /** Lists active academy courses and the current learner's enrollment progress. */
209
- academyCourses(params?: T.AcademyCatalogQuery, options?: RequestOptions): Promise<AxiosResponse<T.AcademyCoursesResponse, any, {}, any>>;
219
+ academyCourses(params?: T.AcademyCatalogQuery, options?: RequestOptions): Promise<AxiosResponse<T.AcademyCoursesResponse, any, {}>>;
210
220
  /** Returns ordered sessions and lock/completion state for one academy course. */
211
- academyCourse(courseId: Identifier, options?: RequestOptions): Promise<AxiosResponse<T.AcademyCourseResponse, any, {}, any>>;
221
+ academyCourse(courseId: Identifier, options?: RequestOptions): Promise<AxiosResponse<T.AcademyCourseResponse, any, {}>>;
212
222
  /** Enrolls the authenticated learner; paid courses return `pending_payment`. */
213
- academyEnroll(courseId: Identifier, options?: RequestOptions): Promise<AxiosResponse<T.AcademyEnrollmentStartResponse, Record<string, never>, {}, any>>;
223
+ academyEnroll(courseId: Identifier, options?: RequestOptions): Promise<AxiosResponse<T.AcademyEnrollmentStartResponse, Record<string, never>, {}>>;
214
224
  /** Lists enrollments owned by the authenticated learner. */
215
- academyEnrollments(options?: RequestOptions): Promise<AxiosResponse<T.AcademyEnrollmentsResponse, any, {}, any>>;
225
+ academyEnrollments(options?: RequestOptions): Promise<AxiosResponse<T.AcademyEnrollmentsResponse, any, {}>>;
216
226
  /** Completes an unlocked non-exam session idempotently. */
217
- completeAcademySession(enrollmentId: Identifier, sessionId: Identifier, data: T.AcademyCompleteSessionInput, options?: RequestOptions<T.AcademyCompleteSessionInput>): Promise<AxiosResponse<T.AcademySessionCompletionResponse, T.AcademyCompleteSessionInput, {}, any>>;
227
+ completeAcademySession(enrollmentId: Identifier, sessionId: Identifier, data: T.AcademyCompleteSessionInput, options?: RequestOptions<T.AcademyCompleteSessionInput>): Promise<AxiosResponse<T.AcademySessionCompletionResponse, T.AcademyCompleteSessionInput, {}>>;
218
228
  /** Starts an unlocked exam attempt without exposing correct answers. */
219
- startAcademyExam(enrollmentId: Identifier, examId: Identifier, options?: RequestOptions): Promise<AxiosResponse<T.AcademyExamAttemptResponse, Record<string, never>, {}, any>>;
229
+ startAcademyExam(enrollmentId: Identifier, examId: Identifier, options?: RequestOptions): Promise<AxiosResponse<T.AcademyExamAttemptResponse, Record<string, never>, {}>>;
220
230
  /** Submits answers once and returns the server-calculated score and pass state. */
221
- submitAcademyExam(attemptId: Identifier, data: T.AcademySubmitExamInput, options?: RequestOptions<T.AcademySubmitExamInput>): Promise<AxiosResponse<T.AcademyExamResultResponse, T.AcademySubmitExamInput, {}, any>>;
231
+ submitAcademyExam(attemptId: Identifier, data: T.AcademySubmitExamInput, options?: RequestOptions<T.AcademySubmitExamInput>): Promise<AxiosResponse<T.AcademyExamResultResponse, T.AcademySubmitExamInput, {}>>;
222
232
  }
223
233
  export * from "./types.js";
224
234
  export * from "@faiber/sdk-core";
@@ -231,4 +241,5 @@ export * from "./notification-settings.js";
231
241
  export * from "./branding.types.js";
232
242
  export type { LmsBranding as BrandingShowGetResponseData, LmsBranding as BrandingUpdatePutResponseData, LmsPublicBranding as BrandingPublicShowGetResponseData } from "./branding.types.js";
233
243
  export * from "./wire.types.js";
244
+ export * from "./calendar.types.js";
234
245
  //# sourceMappingURL=index.d.ts.map