@pie-players/pie-assessment-toolkit 0.2.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 +520 -0
- package/dist/attempt/TestSession.d.ts +90 -0
- package/dist/attempt/TestSession.d.ts.map +1 -0
- package/dist/attempt/TestSession.js +174 -0
- package/dist/attempt/TestSession.js.map +1 -0
- package/dist/core/TypedEventBus.d.ts +48 -0
- package/dist/core/TypedEventBus.d.ts.map +1 -0
- package/dist/core/TypedEventBus.js +63 -0
- package/dist/core/TypedEventBus.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/item-loader.d.ts +45 -0
- package/dist/item-loader.d.ts.map +1 -0
- package/dist/item-loader.js +62 -0
- package/dist/item-loader.js.map +1 -0
- package/dist/player/AssessmentPlayer.d.ts +388 -0
- package/dist/player/AssessmentPlayer.d.ts.map +1 -0
- package/dist/player/AssessmentPlayer.js +965 -0
- package/dist/player/AssessmentPlayer.js.map +1 -0
- package/dist/player/index.d.ts +17 -0
- package/dist/player/index.d.ts.map +1 -0
- package/dist/player/index.js +15 -0
- package/dist/player/index.js.map +1 -0
- package/dist/player/navigation-types.d.ts +63 -0
- package/dist/player/navigation-types.d.ts.map +1 -0
- package/dist/player/navigation-types.js +7 -0
- package/dist/player/navigation-types.js.map +1 -0
- package/dist/player/qti-navigation.d.ts +29 -0
- package/dist/player/qti-navigation.d.ts.map +1 -0
- package/dist/player/qti-navigation.js +160 -0
- package/dist/player/qti-navigation.js.map +1 -0
- package/dist/reference-layout/index.d.ts +19 -0
- package/dist/reference-layout/index.d.ts.map +1 -0
- package/dist/reference-layout/index.js +20 -0
- package/dist/reference-layout/index.js.map +1 -0
- package/dist/services/AccessibilityCatalogResolver.d.ts +141 -0
- package/dist/services/AccessibilityCatalogResolver.d.ts.map +1 -0
- package/dist/services/AccessibilityCatalogResolver.js +249 -0
- package/dist/services/AccessibilityCatalogResolver.js.map +1 -0
- package/dist/services/AssessmentAuthoringService.d.ts +60 -0
- package/dist/services/AssessmentAuthoringService.d.ts.map +1 -0
- package/dist/services/AssessmentAuthoringService.js +183 -0
- package/dist/services/AssessmentAuthoringService.js.map +1 -0
- package/dist/services/ContextVariableStore.d.ts +114 -0
- package/dist/services/ContextVariableStore.d.ts.map +1 -0
- package/dist/services/ContextVariableStore.js +207 -0
- package/dist/services/ContextVariableStore.js.map +1 -0
- package/dist/services/ElementToolStateStore.d.ts +125 -0
- package/dist/services/ElementToolStateStore.d.ts.map +1 -0
- package/dist/services/ElementToolStateStore.js +200 -0
- package/dist/services/ElementToolStateStore.js.map +1 -0
- package/dist/services/HighlightCoordinator.d.ts +179 -0
- package/dist/services/HighlightCoordinator.d.ts.map +1 -0
- package/dist/services/HighlightCoordinator.js +446 -0
- package/dist/services/HighlightCoordinator.js.map +1 -0
- package/dist/services/I18nService.d.ts +121 -0
- package/dist/services/I18nService.d.ts.map +1 -0
- package/dist/services/I18nService.js +276 -0
- package/dist/services/I18nService.js.map +1 -0
- package/dist/services/PNPMapper.d.ts +71 -0
- package/dist/services/PNPMapper.d.ts.map +1 -0
- package/dist/services/PNPMapper.js +98 -0
- package/dist/services/PNPMapper.js.map +1 -0
- package/dist/services/PNPToolResolver.d.ts +127 -0
- package/dist/services/PNPToolResolver.d.ts.map +1 -0
- package/dist/services/PNPToolResolver.js +222 -0
- package/dist/services/PNPToolResolver.js.map +1 -0
- package/dist/services/SSMLExtractor.d.ts +61 -0
- package/dist/services/SSMLExtractor.d.ts.map +1 -0
- package/dist/services/SSMLExtractor.js +181 -0
- package/dist/services/SSMLExtractor.js.map +1 -0
- package/dist/services/TTSService.d.ts +162 -0
- package/dist/services/TTSService.d.ts.map +1 -0
- package/dist/services/TTSService.js +465 -0
- package/dist/services/TTSService.js.map +1 -0
- package/dist/services/ThemeProvider.d.ts +95 -0
- package/dist/services/ThemeProvider.d.ts.map +1 -0
- package/dist/services/ThemeProvider.js +299 -0
- package/dist/services/ThemeProvider.js.map +1 -0
- package/dist/services/ToolConfigResolver.d.ts +162 -0
- package/dist/services/ToolConfigResolver.d.ts.map +1 -0
- package/dist/services/ToolConfigResolver.js +230 -0
- package/dist/services/ToolConfigResolver.js.map +1 -0
- package/dist/services/ToolCoordinator.d.ts +137 -0
- package/dist/services/ToolCoordinator.d.ts.map +1 -0
- package/dist/services/ToolCoordinator.js +318 -0
- package/dist/services/ToolCoordinator.js.map +1 -0
- package/dist/services/ToolkitCoordinator.d.ts +188 -0
- package/dist/services/ToolkitCoordinator.d.ts.map +1 -0
- package/dist/services/ToolkitCoordinator.js +252 -0
- package/dist/services/ToolkitCoordinator.js.map +1 -0
- package/dist/services/interfaces.d.ts +391 -0
- package/dist/services/interfaces.d.ts.map +1 -0
- package/dist/services/interfaces.js +12 -0
- package/dist/services/interfaces.js.map +1 -0
- package/dist/services/tool-providers/DesmosToolProvider.d.ts +103 -0
- package/dist/services/tool-providers/DesmosToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/DesmosToolProvider.js +127 -0
- package/dist/services/tool-providers/DesmosToolProvider.js.map +1 -0
- package/dist/services/tool-providers/IToolProvider.d.ts +137 -0
- package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/IToolProvider.js +13 -0
- package/dist/services/tool-providers/IToolProvider.js.map +1 -0
- package/dist/services/tool-providers/TIToolProvider.d.ts +107 -0
- package/dist/services/tool-providers/TIToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/TIToolProvider.js +123 -0
- package/dist/services/tool-providers/TIToolProvider.js.map +1 -0
- package/dist/services/tool-providers/TTSToolProvider.d.ts +143 -0
- package/dist/services/tool-providers/TTSToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/TTSToolProvider.js +168 -0
- package/dist/services/tool-providers/TTSToolProvider.js.map +1 -0
- package/dist/services/tool-providers/ToolProviderRegistry.d.ts +165 -0
- package/dist/services/tool-providers/ToolProviderRegistry.d.ts.map +1 -0
- package/dist/services/tool-providers/ToolProviderRegistry.js +240 -0
- package/dist/services/tool-providers/ToolProviderRegistry.js.map +1 -0
- package/dist/services/tool-providers/index.d.ts +18 -0
- package/dist/services/tool-providers/index.d.ts.map +1 -0
- package/dist/services/tool-providers/index.js +15 -0
- package/dist/services/tool-providers/index.js.map +1 -0
- package/dist/services/tts/browser-provider.d.ts +24 -0
- package/dist/services/tts/browser-provider.d.ts.map +1 -0
- package/dist/services/tts/browser-provider.js +177 -0
- package/dist/services/tts/browser-provider.js.map +1 -0
- package/dist/services/tts/provider-interface.d.ts +131 -0
- package/dist/services/tts/provider-interface.d.ts.map +1 -0
- package/dist/services/tts/provider-interface.js +10 -0
- package/dist/services/tts/provider-interface.js.map +1 -0
- package/dist/tools/calculators/desmos-provider.d.ts +54 -0
- package/dist/tools/calculators/desmos-provider.d.ts.map +1 -0
- package/dist/tools/calculators/desmos-provider.js +384 -0
- package/dist/tools/calculators/desmos-provider.js.map +1 -0
- package/dist/tools/calculators/mathjs-provider.d.ts +50 -0
- package/dist/tools/calculators/mathjs-provider.d.ts.map +1 -0
- package/dist/tools/calculators/mathjs-provider.js +660 -0
- package/dist/tools/calculators/mathjs-provider.js.map +1 -0
- package/dist/tools/calculators/ti-provider.d.ts +122 -0
- package/dist/tools/calculators/ti-provider.d.ts.map +1 -0
- package/dist/tools/calculators/ti-provider.js +587 -0
- package/dist/tools/calculators/ti-provider.js.map +1 -0
- package/dist/tools/client.d.ts +17 -0
- package/dist/tools/client.d.ts.map +1 -0
- package/dist/tools/client.js +26 -0
- package/dist/tools/client.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +10 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/library-loader.d.ts +63 -0
- package/dist/tools/library-loader.d.ts.map +1 -0
- package/dist/tools/library-loader.js +292 -0
- package/dist/tools/library-loader.js.map +1 -0
- package/dist/tools/response-discovery.d.ts +72 -0
- package/dist/tools/response-discovery.d.ts.map +1 -0
- package/dist/tools/response-discovery.js +183 -0
- package/dist/tools/response-discovery.js.map +1 -0
- package/dist/tools/tool-coordinator.d.ts +76 -0
- package/dist/tools/tool-coordinator.d.ts.map +1 -0
- package/dist/tools/tool-coordinator.js +197 -0
- package/dist/tools/tool-coordinator.js.map +1 -0
- package/dist/tools/types.d.ts +427 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +13 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/variant-resolver.d.ts +48 -0
- package/dist/tools/variant-resolver.d.ts.map +1 -0
- package/dist/tools/variant-resolver.js +214 -0
- package/dist/tools/variant-resolver.js.map +1 -0
- package/dist/types/events.d.ts +157 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +11 -0
- package/dist/types/events.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +11 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +71 -0
- package/src/README.md +626 -0
- package/src/components/QuestionToolBar.svelte +406 -0
- package/src/player/AssessmentLayout.svelte +68 -0
- package/src/player/README.md +154 -0
- package/src/reference-layout/README.md +135 -0
- package/src/reference-layout/ReferenceLayout.svelte +209 -0
- package/src/reference-layout/components/AssessmentContent.svelte +259 -0
- package/src/reference-layout/components/AssessmentFooter.svelte +89 -0
- package/src/reference-layout/components/AssessmentHeader.svelte +250 -0
- package/src/reference-layout/components/AssessmentNavigation.svelte +134 -0
- package/src/reference-layout/components/AssessmentToolsBar.svelte +176 -0
- package/src/reference-layout/components/ItemPanel.svelte +200 -0
- package/src/reference-layout/components/NotesPanel.svelte +179 -0
- package/src/reference-layout/components/PassagePanel.svelte +76 -0
- package/src/tools/README.md +616 -0
- package/src/tools/calculators/README.md +395 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variant Resolver Service
|
|
3
|
+
* Resolves item configuration considering variants for A/B testing, scaffolding, and adaptations
|
|
4
|
+
*
|
|
5
|
+
* Based on architectural enhancements for item-level variant configuration
|
|
6
|
+
*/
|
|
7
|
+
export class VariantResolverImpl {
|
|
8
|
+
/**
|
|
9
|
+
* Resolve variant configuration for an item
|
|
10
|
+
*/
|
|
11
|
+
resolveVariant(itemConfig, context) {
|
|
12
|
+
// If no variant config, return item as-is
|
|
13
|
+
if (!itemConfig.variantConfig) {
|
|
14
|
+
return this._buildResolvedConfig(itemConfig, null, []);
|
|
15
|
+
}
|
|
16
|
+
const { variantConfig } = itemConfig;
|
|
17
|
+
const { variantId, toolOverrides, adaptations } = variantConfig;
|
|
18
|
+
// Apply tool overrides if variant specified
|
|
19
|
+
const resolvedToolParameters = {};
|
|
20
|
+
if (itemConfig.toolParameters) {
|
|
21
|
+
for (const [toolType, params] of Object.entries(itemConfig.toolParameters)) {
|
|
22
|
+
resolvedToolParameters[toolType] = this._resolveToolParameters(toolType, params, toolOverrides, context);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// Apply tool overrides that aren't in original tool parameters
|
|
26
|
+
if (toolOverrides) {
|
|
27
|
+
for (const [toolType, override] of Object.entries(toolOverrides)) {
|
|
28
|
+
if (!resolvedToolParameters[toolType]) {
|
|
29
|
+
resolvedToolParameters[toolType] =
|
|
30
|
+
this._createToolParametersFromOverride(toolType, override);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Build final resolved config
|
|
35
|
+
return {
|
|
36
|
+
itemId: itemConfig.itemId,
|
|
37
|
+
requiredTools: this._resolveRequiredTools(itemConfig, toolOverrides),
|
|
38
|
+
restrictedTools: itemConfig.restrictedTools || [],
|
|
39
|
+
toolParameters: resolvedToolParameters,
|
|
40
|
+
appliedVariant: variantId,
|
|
41
|
+
appliedAdaptations: this._filterAdaptations(adaptations, context),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Resolve tool parameters considering variant and context
|
|
46
|
+
*/
|
|
47
|
+
_resolveToolParameters(toolType, params, toolOverrides, context) {
|
|
48
|
+
// Start with base parameters
|
|
49
|
+
let finalConfig = params.config || {};
|
|
50
|
+
let finalHint = params.hint;
|
|
51
|
+
let finalPreOpen = params.preOpen;
|
|
52
|
+
// Apply variant-specific parameters if they exist
|
|
53
|
+
if (params.variants) {
|
|
54
|
+
const variantParams = this._selectVariantParameters(params.variants, context);
|
|
55
|
+
if (variantParams) {
|
|
56
|
+
finalConfig = { ...finalConfig, ...variantParams.config };
|
|
57
|
+
if (variantParams.hint !== undefined)
|
|
58
|
+
finalHint = variantParams.hint;
|
|
59
|
+
if (variantParams.preOpen !== undefined)
|
|
60
|
+
finalPreOpen = variantParams.preOpen;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Apply tool override from variant config
|
|
64
|
+
if (toolOverrides && toolOverrides[toolType]) {
|
|
65
|
+
const override = toolOverrides[toolType];
|
|
66
|
+
if (override.config) {
|
|
67
|
+
finalConfig = { ...finalConfig, ...override.config };
|
|
68
|
+
}
|
|
69
|
+
if (override.parameters) {
|
|
70
|
+
// Merge additional parameters
|
|
71
|
+
finalConfig = { ...finalConfig, ...override.parameters };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
config: params.config,
|
|
76
|
+
hint: finalHint,
|
|
77
|
+
preOpen: finalPreOpen,
|
|
78
|
+
variants: params.variants,
|
|
79
|
+
finalConfig: finalConfig,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Select variant parameters based on context
|
|
84
|
+
*/
|
|
85
|
+
_selectVariantParameters(variants, context) {
|
|
86
|
+
// Strategy: Select based on context properties
|
|
87
|
+
// 1. Check for scaffolding level match
|
|
88
|
+
if (context.scaffoldingLevel !== undefined) {
|
|
89
|
+
const scaffoldKey = `scaffolding-${context.scaffoldingLevel}`;
|
|
90
|
+
if (variants[scaffoldKey])
|
|
91
|
+
return variants[scaffoldKey];
|
|
92
|
+
}
|
|
93
|
+
// 2. Check for difficulty level match
|
|
94
|
+
if (context.difficultyLevel) {
|
|
95
|
+
const difficultyKey = `difficulty-${context.difficultyLevel}`;
|
|
96
|
+
if (variants[difficultyKey])
|
|
97
|
+
return variants[difficultyKey];
|
|
98
|
+
}
|
|
99
|
+
// 3. Check for language match
|
|
100
|
+
if (context.language) {
|
|
101
|
+
const langKey = `lang-${context.language}`;
|
|
102
|
+
if (variants[langKey])
|
|
103
|
+
return variants[langKey];
|
|
104
|
+
}
|
|
105
|
+
// 4. Check custom context keys
|
|
106
|
+
if (context.custom) {
|
|
107
|
+
for (const [key, value] of Object.entries(context.custom)) {
|
|
108
|
+
const customKey = `${key}-${value}`;
|
|
109
|
+
if (variants[customKey])
|
|
110
|
+
return variants[customKey];
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// 5. Check for default variant
|
|
114
|
+
if (variants.default)
|
|
115
|
+
return variants.default;
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Create tool parameters from override
|
|
120
|
+
*/
|
|
121
|
+
_createToolParametersFromOverride(toolType, override) {
|
|
122
|
+
return {
|
|
123
|
+
config: override.config,
|
|
124
|
+
hint: override.hint,
|
|
125
|
+
preOpen: override.preOpen,
|
|
126
|
+
finalConfig: {
|
|
127
|
+
id: toolType,
|
|
128
|
+
name: this._humanizeName(toolType),
|
|
129
|
+
enabled: true,
|
|
130
|
+
...override.config,
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Resolve required tools considering overrides
|
|
136
|
+
*/
|
|
137
|
+
_resolveRequiredTools(itemConfig, toolOverrides) {
|
|
138
|
+
const required = new Set(itemConfig.requiredTools || []);
|
|
139
|
+
// Add tools that have replacements via overrides
|
|
140
|
+
if (toolOverrides) {
|
|
141
|
+
for (const [toolType, override] of Object.entries(toolOverrides)) {
|
|
142
|
+
if (override.replacementTool) {
|
|
143
|
+
required.delete(toolType);
|
|
144
|
+
required.add(override.replacementTool);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return Array.from(required);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Filter adaptations based on context
|
|
152
|
+
*/
|
|
153
|
+
_filterAdaptations(adaptations, context) {
|
|
154
|
+
if (!adaptations)
|
|
155
|
+
return [];
|
|
156
|
+
return adaptations.filter((adaptation) => {
|
|
157
|
+
// Check if adaptation matches context
|
|
158
|
+
if (adaptation.type === "scaffolding" &&
|
|
159
|
+
context.scaffoldingLevel !== undefined) {
|
|
160
|
+
return adaptation.level === context.scaffoldingLevel;
|
|
161
|
+
}
|
|
162
|
+
if (adaptation.type === "difficulty" && context.difficultyLevel) {
|
|
163
|
+
return adaptation.level === context.difficultyLevel;
|
|
164
|
+
}
|
|
165
|
+
if (adaptation.type === "language" && context.language) {
|
|
166
|
+
return adaptation.level === context.language;
|
|
167
|
+
}
|
|
168
|
+
// Include custom adaptations by default
|
|
169
|
+
return true;
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Build resolved config without variants
|
|
174
|
+
*/
|
|
175
|
+
_buildResolvedConfig(itemConfig, variantId, adaptations) {
|
|
176
|
+
const resolvedToolParameters = {};
|
|
177
|
+
if (itemConfig.toolParameters) {
|
|
178
|
+
for (const [toolType, params] of Object.entries(itemConfig.toolParameters)) {
|
|
179
|
+
resolvedToolParameters[toolType] = {
|
|
180
|
+
...params,
|
|
181
|
+
finalConfig: {
|
|
182
|
+
id: toolType,
|
|
183
|
+
name: this._humanizeName(toolType),
|
|
184
|
+
enabled: true,
|
|
185
|
+
...params.config,
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
itemId: itemConfig.itemId,
|
|
192
|
+
requiredTools: itemConfig.requiredTools || [],
|
|
193
|
+
restrictedTools: itemConfig.restrictedTools || [],
|
|
194
|
+
toolParameters: resolvedToolParameters,
|
|
195
|
+
appliedVariant: variantId || undefined,
|
|
196
|
+
appliedAdaptations: adaptations,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Convert tool type to human-readable name
|
|
201
|
+
*/
|
|
202
|
+
_humanizeName(toolType) {
|
|
203
|
+
return toolType
|
|
204
|
+
.replace(/[-_]/g, " ")
|
|
205
|
+
.replace(/\b\w/g, (char) => char.toUpperCase());
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Singleton instance (deprecated)
|
|
210
|
+
* @deprecated Instantiate VariantResolverImpl directly instead:
|
|
211
|
+
* const resolver = new VariantResolverImpl();
|
|
212
|
+
*/
|
|
213
|
+
export const variantResolver = new VariantResolverImpl();
|
|
214
|
+
//# sourceMappingURL=variant-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variant-resolver.js","sourceRoot":"","sources":["../../src/tools/variant-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PIE Assessment Toolkit - Event Types
|
|
3
|
+
*
|
|
4
|
+
* Type-safe event definitions for the assessment toolkit event system.
|
|
5
|
+
* Uses discriminated unions for type safety across event bus.
|
|
6
|
+
*
|
|
7
|
+
* These events are standard contracts between toolkit services,
|
|
8
|
+
* PIE players, tools, and product implementations.
|
|
9
|
+
*/
|
|
10
|
+
export interface SessionChangedEvent {
|
|
11
|
+
itemId: string;
|
|
12
|
+
component: string;
|
|
13
|
+
complete: boolean;
|
|
14
|
+
session: {
|
|
15
|
+
id: string;
|
|
16
|
+
data: any[];
|
|
17
|
+
};
|
|
18
|
+
timestamp: number;
|
|
19
|
+
}
|
|
20
|
+
export interface LoadCompleteEvent {
|
|
21
|
+
itemId: string;
|
|
22
|
+
loadTime: number;
|
|
23
|
+
timestamp: number;
|
|
24
|
+
}
|
|
25
|
+
export interface PlayerErrorEvent {
|
|
26
|
+
itemId: string;
|
|
27
|
+
error: string;
|
|
28
|
+
timestamp: number;
|
|
29
|
+
}
|
|
30
|
+
export interface ToolActivatedEvent {
|
|
31
|
+
toolId: string;
|
|
32
|
+
toolType: string;
|
|
33
|
+
itemId?: string;
|
|
34
|
+
timestamp: number;
|
|
35
|
+
}
|
|
36
|
+
export interface ToolDeactivatedEvent {
|
|
37
|
+
toolId: string;
|
|
38
|
+
timestamp: number;
|
|
39
|
+
}
|
|
40
|
+
export interface ToolStateChangedEvent {
|
|
41
|
+
toolId: string;
|
|
42
|
+
state: any;
|
|
43
|
+
timestamp: number;
|
|
44
|
+
}
|
|
45
|
+
export interface NavigationRequestEvent {
|
|
46
|
+
direction: "next" | "previous" | "index";
|
|
47
|
+
targetIndex?: number;
|
|
48
|
+
timestamp: number;
|
|
49
|
+
}
|
|
50
|
+
export interface ItemChangedEvent {
|
|
51
|
+
previousItemId: string | null;
|
|
52
|
+
currentItemId: string;
|
|
53
|
+
itemIndex: number;
|
|
54
|
+
totalItems: number;
|
|
55
|
+
metadata?: ItemMetadata;
|
|
56
|
+
timestamp: number;
|
|
57
|
+
}
|
|
58
|
+
export interface CanNavigateChangedEvent {
|
|
59
|
+
canNext: boolean;
|
|
60
|
+
canPrevious: boolean;
|
|
61
|
+
timestamp: number;
|
|
62
|
+
}
|
|
63
|
+
export interface ItemMetadata {
|
|
64
|
+
timeLimit?: number;
|
|
65
|
+
isLastItem: boolean;
|
|
66
|
+
hasPassage: boolean;
|
|
67
|
+
questionNumber?: number;
|
|
68
|
+
}
|
|
69
|
+
export interface AssessmentStartedEvent {
|
|
70
|
+
assessmentId: string;
|
|
71
|
+
studentId: string;
|
|
72
|
+
timestamp: number;
|
|
73
|
+
}
|
|
74
|
+
export interface AssessmentPausedEvent {
|
|
75
|
+
assessmentId: string;
|
|
76
|
+
timestamp: number;
|
|
77
|
+
}
|
|
78
|
+
export interface AssessmentResumedEvent {
|
|
79
|
+
assessmentId: string;
|
|
80
|
+
timestamp: number;
|
|
81
|
+
}
|
|
82
|
+
export interface AssessmentCompletedEvent {
|
|
83
|
+
assessmentId: string;
|
|
84
|
+
totalTime: number;
|
|
85
|
+
itemsCompleted: number;
|
|
86
|
+
timestamp: number;
|
|
87
|
+
}
|
|
88
|
+
export interface StateSavedEvent {
|
|
89
|
+
type: "session" | "tool" | "assessment";
|
|
90
|
+
itemId?: string;
|
|
91
|
+
toolId?: string;
|
|
92
|
+
timestamp: number;
|
|
93
|
+
}
|
|
94
|
+
export interface StateRestoredEvent {
|
|
95
|
+
type: "session" | "tool" | "assessment";
|
|
96
|
+
timestamp: number;
|
|
97
|
+
}
|
|
98
|
+
export interface SyncFailedEvent {
|
|
99
|
+
type: "session" | "tool" | "assessment";
|
|
100
|
+
itemId?: string;
|
|
101
|
+
toolId?: string;
|
|
102
|
+
error: string;
|
|
103
|
+
timestamp: number;
|
|
104
|
+
}
|
|
105
|
+
export type InteractionType = "response-changed" | "tool-activated" | "tool-deactivated" | "item-viewed" | "navigation-attempted" | "navigation-blocked" | "focus-lost" | "focus-gained" | "copy-attempted" | "paste-attempted" | "fullscreen-exited";
|
|
106
|
+
export interface InteractionEvent {
|
|
107
|
+
type: InteractionType;
|
|
108
|
+
timestamp: number;
|
|
109
|
+
itemId?: string;
|
|
110
|
+
toolId?: string;
|
|
111
|
+
metadata?: Record<string, any>;
|
|
112
|
+
}
|
|
113
|
+
export interface LocaleChangedEvent {
|
|
114
|
+
locale: string;
|
|
115
|
+
previousLocale: string;
|
|
116
|
+
direction: "ltr" | "rtl";
|
|
117
|
+
timestamp: number;
|
|
118
|
+
}
|
|
119
|
+
export interface LocaleLoadingStartEvent {
|
|
120
|
+
locale: string;
|
|
121
|
+
timestamp: number;
|
|
122
|
+
}
|
|
123
|
+
export interface LocaleLoadingCompleteEvent {
|
|
124
|
+
locale: string;
|
|
125
|
+
success: boolean;
|
|
126
|
+
timestamp: number;
|
|
127
|
+
}
|
|
128
|
+
export interface LocaleLoadingErrorEvent {
|
|
129
|
+
locale: string;
|
|
130
|
+
error: string;
|
|
131
|
+
timestamp: number;
|
|
132
|
+
}
|
|
133
|
+
export interface AssessmentToolkitEvents {
|
|
134
|
+
"player:session-changed": SessionChangedEvent;
|
|
135
|
+
"player:load-complete": LoadCompleteEvent;
|
|
136
|
+
"player:error": PlayerErrorEvent;
|
|
137
|
+
"tool:activated": ToolActivatedEvent;
|
|
138
|
+
"tool:deactivated": ToolDeactivatedEvent;
|
|
139
|
+
"tool:state-changed": ToolStateChangedEvent;
|
|
140
|
+
"nav:next-requested": NavigationRequestEvent;
|
|
141
|
+
"nav:previous-requested": NavigationRequestEvent;
|
|
142
|
+
"nav:item-changed": ItemChangedEvent;
|
|
143
|
+
"nav:can-navigate-changed": CanNavigateChangedEvent;
|
|
144
|
+
"assessment:started": AssessmentStartedEvent;
|
|
145
|
+
"assessment:paused": AssessmentPausedEvent;
|
|
146
|
+
"assessment:resumed": AssessmentResumedEvent;
|
|
147
|
+
"assessment:completed": AssessmentCompletedEvent;
|
|
148
|
+
"state:saved": StateSavedEvent;
|
|
149
|
+
"state:restored": StateRestoredEvent;
|
|
150
|
+
"state:sync-failed": SyncFailedEvent;
|
|
151
|
+
"interaction:tracked": InteractionEvent;
|
|
152
|
+
"i18n:locale-changed": LocaleChangedEvent;
|
|
153
|
+
"i18n:loading-start": LocaleLoadingStartEvent;
|
|
154
|
+
"i18n:loading-complete": LocaleLoadingCompleteEvent;
|
|
155
|
+
"i18n:loading-error": LocaleLoadingErrorEvent;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PIE Assessment Toolkit - Event Types
|
|
3
|
+
*
|
|
4
|
+
* Type-safe event definitions for the assessment toolkit event system.
|
|
5
|
+
* Uses discriminated unions for type safety across event bus.
|
|
6
|
+
*
|
|
7
|
+
* These events are standard contracts between toolkit services,
|
|
8
|
+
* PIE players, tools, and product implementations.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type Logger = (...args: unknown[]) => void;
|
|
2
|
+
/**
|
|
3
|
+
* Minimal logger helper (replacement for PIEOneer’s internal debug logger).
|
|
4
|
+
* We intentionally keep this lightweight and browser-safe.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createLogger(namespace: string): Logger;
|
|
7
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAElD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKtD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal logger helper (replacement for PIEOneer’s internal debug logger).
|
|
3
|
+
* We intentionally keep this lightweight and browser-safe.
|
|
4
|
+
*/
|
|
5
|
+
export function createLogger(namespace) {
|
|
6
|
+
return (...args) => {
|
|
7
|
+
// eslint-disable-next-line no-console
|
|
8
|
+
console.debug(`[${namespace}]`, ...args);
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC7C,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QAClB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;AACH,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pie-players/pie-assessment-toolkit",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "PIE assessment toolkit: composable services + reference implementation for assessment players and tool coordination",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/pie-framework/pie-players.git"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"main": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"unpkg": "./dist/index.js",
|
|
17
|
+
"jsdelivr": "./dist/index.js",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"import": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./tools/client": {
|
|
24
|
+
"types": "./dist/tools/client.d.ts",
|
|
25
|
+
"import": "./dist/tools/client.js"
|
|
26
|
+
},
|
|
27
|
+
"./assessment-player": {
|
|
28
|
+
"types": "./dist/player/index.d.ts",
|
|
29
|
+
"import": "./dist/player/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./assessment-player/Layout.svelte": {
|
|
32
|
+
"svelte": "./src/player/AssessmentLayout.svelte",
|
|
33
|
+
"import": "./src/player/AssessmentLayout.svelte"
|
|
34
|
+
},
|
|
35
|
+
"./components/QuestionToolBar.svelte": {
|
|
36
|
+
"svelte": "./src/components/QuestionToolBar.svelte",
|
|
37
|
+
"import": "./src/components/QuestionToolBar.svelte"
|
|
38
|
+
},
|
|
39
|
+
"./services/I18nService": {
|
|
40
|
+
"types": "./dist/services/I18nService.d.ts",
|
|
41
|
+
"import": "./dist/services/I18nService.js"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"files": [
|
|
45
|
+
"dist",
|
|
46
|
+
"src/**/*.svelte",
|
|
47
|
+
"README.md"
|
|
48
|
+
],
|
|
49
|
+
"scripts": {
|
|
50
|
+
"build": "tsc -p tsconfig.json",
|
|
51
|
+
"dev": "tsc -p tsconfig.json --watch",
|
|
52
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
53
|
+
"lint": "biome check .",
|
|
54
|
+
"check": "tsc -p tsconfig.json --noEmit",
|
|
55
|
+
"test": "bun test"
|
|
56
|
+
},
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"@pie-players/pie-calculator": "workspace:*",
|
|
59
|
+
"@pie-players/pie-calculator-desmos": "workspace:*",
|
|
60
|
+
"@pie-players/pie-players-shared": "workspace:*",
|
|
61
|
+
"@pie-players/pie-tts": "workspace:*",
|
|
62
|
+
"@pie-players/tts-client-server": "workspace:*"
|
|
63
|
+
},
|
|
64
|
+
"peerDependencies": {
|
|
65
|
+
"svelte": "^5.0.0"
|
|
66
|
+
},
|
|
67
|
+
"devDependencies": {
|
|
68
|
+
"@biomejs/biome": "^2.3.10",
|
|
69
|
+
"typescript": "^5.9.3"
|
|
70
|
+
}
|
|
71
|
+
}
|