@pie-players/pie-assessment-player 0.3.36 → 0.3.38

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
@@ -8,6 +8,81 @@ Primary entrypoint:
8
8
 
9
9
  - `@pie-players/pie-assessment-player`
10
10
 
11
+ ## AssessmentController
12
+
13
+ `AssessmentController` is the domain authority for an assessment attempt. It
14
+ owns cross-section navigation, the assessment session shape (delivery plan +
15
+ per-section snapshots), and `submit()`. Per-section concerns (in-section
16
+ navigation, item sessions, content loading) belong to the embedded
17
+ `SectionController` exposed by `@pie-players/pie-section-player`. See
18
+ [`docs/assessment-player/client-architecture-tutorial.md`](../../docs/assessment-player/client-architecture-tutorial.md)
19
+ for the end-to-end walkthrough.
20
+
21
+ The handle implements `AssessmentControllerHandle` (defined in
22
+ `packages/assessment-player/src/controller/AssessmentController.ts`); see
23
+ the JSDoc on that interface for the per-method contract.
24
+
25
+ ### Obtaining the handle
26
+
27
+ Two equivalent paths:
28
+
29
+ ```ts
30
+ const host = document.querySelector("pie-assessment-player-default") as any;
31
+ const controller =
32
+ (await host?.waitForAssessmentController?.(5000)) ??
33
+ host?.getAssessmentController?.();
34
+ ```
35
+
36
+ `waitForAssessmentController(timeoutMs)` resolves once the controller has
37
+ been wired (the same signal the
38
+ `AssessmentPlayerHooks.onAssessmentControllerReady(controller)` hook fires
39
+ on). Use `getAssessmentController()` if you've already passed the readiness
40
+ anchor synchronously.
41
+
42
+ ### Lifecycle
43
+
44
+ ```ts
45
+ // hydrate runs as part of initialize(); call it again only on a manual reload.
46
+ const unsubscribe = controller.subscribe(handleEvent);
47
+
48
+ // host-driven navigation:
49
+ controller.navigateTo("section-2");
50
+ controller.navigateNext();
51
+ controller.navigatePrevious();
52
+
53
+ // persist on whatever cadence the host wants; submit() always persists.
54
+ await controller.persist();
55
+ await controller.submit();
56
+ unsubscribe();
57
+ ```
58
+
59
+ `getSession()` returns the current `AssessmentSession` snapshot — the same
60
+ shape the persistence strategy load/save methods exchange and the same
61
+ shape per-section bridges roll up into via `updateSectionSession(sectionId,
62
+ snapshot)`.
63
+
64
+ ### Event stream
65
+
66
+ The controller's typed event stream
67
+ (`AssessmentControllerEvent` discriminated union) covers assessment-level
68
+ change only — section-level events flow through the embedded
69
+ `SectionController` and the toolkit coordinator's
70
+ `subscribeItemEvents` / `subscribeSectionLifecycleEvents` helpers.
71
+
72
+ - `assessment-route-changed` — section-level navigation moved (index / id,
73
+ `previousSectionId`, `canNext` / `canPrevious`).
74
+ - `assessment-session-applied` — `hydrate()` loaded a persisted session.
75
+ - `assessment-session-changed` — assessment session mutated (navigation,
76
+ per-section snapshot upsert).
77
+ - `assessment-progress-changed` — visited-section count flipped.
78
+ - `assessment-submission-state-changed` — `submit()` recorded the final
79
+ state.
80
+
81
+ The same assessment event names are also emitted as DOM events on the player
82
+ chrome. The instrumentation bridge forwards those DOM events under the
83
+ `pie-assessment-*` provider event names documented in
84
+ [Instrumentation and observability](#instrumentation-and-observability).
85
+
11
86
  ## Debug logging
12
87
 
13
88
  Assessment-player now exposes a `debug` option on `pie-assessment-player-default`.
@@ -34,20 +34,135 @@ export type AssessmentControllerEvent = {
34
34
  timestamp: number;
35
35
  submitted: boolean;
36
36
  };
37
+ /**
38
+ * Host-facing controller for a single assessment attempt.
39
+ *
40
+ * `AssessmentControllerHandle` is the primary API surface a host
41
+ * application uses after the assessment player signals readiness via
42
+ * the `AssessmentPlayerHooks.onAssessmentControllerReady(handle)` hook.
43
+ *
44
+ * The interface is the contract; the production implementation is
45
+ * `AssessmentController` in this same file. The controller owns
46
+ * cross-section navigation, the assessment session shape (delivery
47
+ * plan + per-section snapshots), and `submit()`. Per-section concerns
48
+ * (item navigation, item sessions, content loading) belong to the
49
+ * embedded `SectionControllerHandle`, not here.
50
+ *
51
+ * Typical lifecycle for a host:
52
+ *
53
+ * ```ts
54
+ * // wired through AssessmentPlayerHooks.onAssessmentControllerReady
55
+ * const unsubscribe = controller.subscribe(handleEvent);
56
+ * // ...later, on save / submit:
57
+ * await controller.persist();
58
+ * await controller.submit();
59
+ * unsubscribe();
60
+ * ```
61
+ */
37
62
  export interface AssessmentControllerHandle {
63
+ /**
64
+ * Bootstrap the controller: build the delivery plan, ensure a
65
+ * session exists, run `hydrate()`, and fire
66
+ * `onAssessmentControllerReady`.
67
+ *
68
+ * Called by the assessment player when the player CE mounts. Hosts
69
+ * normally do not call this directly.
70
+ */
38
71
  initialize(): Promise<void>;
72
+ /**
73
+ * Load and apply a previously persisted assessment session via the
74
+ * registered `AssessmentSessionPersistenceStrategy`. Falls back to
75
+ * a fresh session when no snapshot exists. Emits
76
+ * `assessment-session-applied` on a successful load.
77
+ */
39
78
  hydrate(): Promise<void>;
79
+ /**
80
+ * Save the current assessment session via the registered
81
+ * persistence strategy.
82
+ *
83
+ * Hosts call this on whatever cadence they choose (debounced on
84
+ * change, on visibility change, on submit). `submit()` always
85
+ * `persist()`s as its final step.
86
+ */
40
87
  persist(): Promise<void>;
88
+ /**
89
+ * Return the current `AssessmentSession` snapshot — delivery plan
90
+ * realization, navigation state, and the per-section session map.
91
+ *
92
+ * This is the same shape exchanged with the persistence strategy
93
+ * and with the section controllers under each section.
94
+ */
41
95
  getSession(): AssessmentSession | null;
96
+ /**
97
+ * Return a live navigation/runtime snapshot — readiness, current
98
+ * section index/id, total sections, `canNext` / `canPrevious`,
99
+ * visited count, and submission state.
100
+ *
101
+ * Intended for chrome rendering and runtime introspection (debug
102
+ * panels, navigation buttons). Use `getSession()` for persistence.
103
+ */
42
104
  getRuntimeState(): AssessmentControllerRuntimeState;
105
+ /**
106
+ * Navigate to a section by zero-based index or by section
107
+ * identifier. Emits `assessment-route-changed`,
108
+ * `assessment-session-changed`, and `assessment-progress-changed`
109
+ * on success. Returns `false` for out-of-range indices and unknown
110
+ * identifiers.
111
+ */
43
112
  navigateTo(indexOrIdentifier: number | string): boolean;
113
+ /**
114
+ * Advance to the next section. Returns `false` when already at the
115
+ * last section. Same emission contract as `navigateTo`.
116
+ */
44
117
  navigateNext(): boolean;
118
+ /**
119
+ * Step back to the previous section. Returns `false` when already
120
+ * at the first section. Same emission contract as `navigateTo`.
121
+ */
45
122
  navigatePrevious(): boolean;
123
+ /**
124
+ * Mark the assessment as submitted, emit
125
+ * `assessment-submission-state-changed`, and `persist()` the final
126
+ * snapshot.
127
+ */
46
128
  submit(): Promise<void>;
129
+ /**
130
+ * Subscribe to the controller's typed event stream
131
+ * (`AssessmentControllerEvent` discriminated union:
132
+ * `assessment-route-changed`, `assessment-session-applied`,
133
+ * `assessment-session-changed`, `assessment-progress-changed`,
134
+ * `assessment-submission-state-changed`).
135
+ *
136
+ * Returns a disposer.
137
+ */
47
138
  subscribe(listener: (event: AssessmentControllerEvent) => void): () => void;
139
+ /**
140
+ * Return the `AssessmentSectionInstance` the runtime currently
141
+ * considers active (delivery-plan entry at the current section
142
+ * index). Returns `null` when the delivery plan is empty.
143
+ */
48
144
  getCurrentSection(): AssessmentSectionInstance | null;
145
+ /**
146
+ * Return the delivery-plan entry at a specific zero-based index, or
147
+ * `null` if the index is out of range. Used for chrome that needs
148
+ * to render section labels / metadata for non-current sections.
149
+ */
49
150
  getSectionAt(index: number): AssessmentSectionInstance | null;
151
+ /**
152
+ * Return the persisted snapshot for a specific section
153
+ * (`SectionSessionSnapshot`), or `null` if no snapshot has been
154
+ * recorded yet.
155
+ *
156
+ * This is the snapshot shape produced by the embedded
157
+ * `SectionControllerHandle.getSession()` for that section.
158
+ */
50
159
  getSectionSession(sectionId: string): SectionSessionSnapshot | null;
160
+ /**
161
+ * Persist (in-memory) a snapshot for a specific section into the
162
+ * assessment session and emit `assessment-session-changed`. Used by
163
+ * the per-section bridge to roll up `SectionController` state into
164
+ * the assessment session before the next `persist()`.
165
+ */
51
166
  updateSectionSession(sectionId: string, session: SectionSessionSnapshot | null): void;
52
167
  }
53
168
  export declare class AssessmentController implements AssessmentControllerHandle {
@@ -1 +1 @@
1
- {"version":3,"file":"AssessmentController.d.ts","sourceRoot":"","sources":["../../src/controller/AssessmentController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssessmentController.d.ts","sourceRoot":"","sources":["../../src/controller/AssessmentController.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-players/pie-assessment-player",
3
- "version": "0.3.36",
3
+ "version": "0.3.38",
4
4
  "type": "module",
5
5
  "description": "Assessment-level coordinator custom elements for orchestrating section-player instances",
6
6
  "license": "MIT",
@@ -49,9 +49,9 @@
49
49
  "lint": "biome check ."
50
50
  },
51
51
  "dependencies": {
52
- "@pie-players/pie-assessment-toolkit": "0.3.36",
53
- "@pie-players/pie-players-shared": "0.3.36",
54
- "@pie-players/pie-section-player": "0.3.36"
52
+ "@pie-players/pie-assessment-toolkit": "0.3.38",
53
+ "@pie-players/pie-players-shared": "0.3.38",
54
+ "@pie-players/pie-section-player": "0.3.38"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@axe-core/playwright": "^4.11.1",