bsuir-iis-api 0.11.0 → 0.12.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/CHANGELOG.md +23 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.12.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- b77c694: Code review follow-ups across HTTP client, cache, schedule modules, and helpers.
|
|
8
|
+
- normalizeSchedule clones each lesson once instead of re-cloning during flattening.
|
|
9
|
+
- Response cache stores deep-frozen JSON values; reads return the frozen reference instead of cloning on every hit. setCache now rejects non-JSON values with `BsuirConfigurationError`.
|
|
10
|
+
- `requestJson` no longer disables response caching when a non-aborted `AbortSignal` is passed; only an already-aborted signal skips cache. In-flight deduplication remains disabled for per-call signals to avoid cross-caller cancellation semantics.
|
|
11
|
+
- README now documents `validateResponses` as opt-in and oversized payloads as `BsuirResponsePayloadTooLargeError`.
|
|
12
|
+
- Query keys are sorted deterministically in `buildUrl` for stable cache keys.
|
|
13
|
+
- Relaxed query key validation: any non-control, non-whitespace, non-URL-structural character is allowed.
|
|
14
|
+
- Private-header detection switched from substring sniffing to an explicit denylist.
|
|
15
|
+
- Request body now passes through `BodyInit` shapes (`FormData`/`URLSearchParams`/`Blob`/`ArrayBuffer`/`ReadableStream`) instead of being JSON-stringified.
|
|
16
|
+
- `Retry-After` numeric branch now applies the same internal cap as the date branch.
|
|
17
|
+
- `allowInsecureHttp: true` rejects any non-loopback host in `allowedBaseUrlHosts`.
|
|
18
|
+
- `mergeSignalsManual` cleanup is idempotent and listeners are recorded before registration to avoid leaks.
|
|
19
|
+
- `normalizeSchedule` always performs a minimal envelope check; full validation delegates to the single `assertScheduleResponse` source of truth.
|
|
20
|
+
- `schedule.getGroupBySubgroup` and `schedule.getEmployeeBySubgroup` accept `rawEnvelope: true` for envelope-preserving raw output (existing `raw` and default behaviors unchanged).
|
|
21
|
+
- `schedule.getGroup` / `getEmployee` now always return normalized payloads; explicit raw helpers (`getGroupRaw`, `getEmployeeRaw`, `getGroupEnvelope`, `getEmployeeEnvelope`) provide raw API envelopes.
|
|
22
|
+
- Removed `defaultRaw` and per-call `raw` selection from `getGroup` / `getEmployee` to make response shapes explicit.
|
|
23
|
+
- `announcements.byEmployee` / `byDepartment` accept `treat404AsEmpty` (default `true`) instead of relying on a body-marker heuristic to detect "no announcements" 404 responses.
|
|
24
|
+
- Added optional `onInvalidTime` hook to `sortLessonsByTime` / `getCurrentLesson` / `getNextLesson` / `buildScheduleDays` for surfacing malformed `HH:MM` lesson times.
|
|
25
|
+
|
|
3
26
|
## [0.11.0] - 2026-05-24
|
|
4
27
|
|
|
5
28
|
### Added
|