@intellectif/lk-core 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.
Files changed (44) hide show
  1. package/LICENSE +21 -0
  2. package/dist/activity-D5tqgx8A.d.cts +330 -0
  3. package/dist/activity-D5tqgx8A.d.ts +330 -0
  4. package/dist/chunk-2T3IL7VL.js +147 -0
  5. package/dist/chunk-2T3IL7VL.js.map +1 -0
  6. package/dist/chunk-3JMLUUFS.cjs +124 -0
  7. package/dist/chunk-3JMLUUFS.cjs.map +1 -0
  8. package/dist/chunk-6VOCV4EX.js +25 -0
  9. package/dist/chunk-6VOCV4EX.js.map +1 -0
  10. package/dist/chunk-DCDOTQNH.cjs +147 -0
  11. package/dist/chunk-DCDOTQNH.cjs.map +1 -0
  12. package/dist/chunk-DV466SBJ.cjs +25 -0
  13. package/dist/chunk-DV466SBJ.cjs.map +1 -0
  14. package/dist/chunk-GZ73G2TS.js +124 -0
  15. package/dist/chunk-GZ73G2TS.js.map +1 -0
  16. package/dist/chunk-PJFDAP54.cjs +188 -0
  17. package/dist/chunk-PJFDAP54.cjs.map +1 -0
  18. package/dist/chunk-ZHOX6TO4.js +188 -0
  19. package/dist/chunk-ZHOX6TO4.js.map +1 -0
  20. package/dist/index.cjs +45 -0
  21. package/dist/index.cjs.map +1 -0
  22. package/dist/index.d.cts +56 -0
  23. package/dist/index.d.ts +56 -0
  24. package/dist/index.js +45 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/schemas.cjs +23 -0
  27. package/dist/schemas.cjs.map +1 -0
  28. package/dist/schemas.d.cts +179 -0
  29. package/dist/schemas.d.ts +179 -0
  30. package/dist/schemas.js +23 -0
  31. package/dist/schemas.js.map +1 -0
  32. package/dist/scoring.cjs +10 -0
  33. package/dist/scoring.cjs.map +1 -0
  34. package/dist/scoring.d.cts +20 -0
  35. package/dist/scoring.d.ts +20 -0
  36. package/dist/scoring.js +10 -0
  37. package/dist/scoring.js.map +1 -0
  38. package/dist/xapi.cjs +14 -0
  39. package/dist/xapi.cjs.map +1 -0
  40. package/dist/xapi.d.cts +88 -0
  41. package/dist/xapi.d.ts +88 -0
  42. package/dist/xapi.js +14 -0
  43. package/dist/xapi.js.map +1 -0
  44. package/package.json +50 -0
package/dist/xapi.d.ts ADDED
@@ -0,0 +1,88 @@
1
+ import { X as XAPIActor, i as ScoringResult, l as XAPIContext, o as XAPIResult, q as XAPIStatement } from './activity-D5tqgx8A.js';
2
+
3
+ /**
4
+ * The set of xAPI verbs emitted by SDK activities, keyed by a stable
5
+ * identifier mapped to its canonical xAPI verb IRI (xAPI 1.0.3 / ADL registry).
6
+ */
7
+ declare const XAPIVerb: {
8
+ readonly ANSWERED: "http://adlnet.gov/expapi/verbs/answered";
9
+ readonly COMPLETED: "http://adlnet.gov/expapi/verbs/completed";
10
+ readonly EXPERIENCED: "http://adlnet.gov/expapi/verbs/experienced";
11
+ readonly INTERACTED: "http://adlnet.gov/expapi/verbs/interacted";
12
+ readonly ATTEMPTED: "http://adlnet.gov/expapi/verbs/attempted";
13
+ readonly PASSED: "http://adlnet.gov/expapi/verbs/passed";
14
+ readonly FAILED: "http://adlnet.gov/expapi/verbs/failed";
15
+ readonly WATCHED: "https://w3id.org/xapi/video/verbs/watched";
16
+ };
17
+ /** Union of the valid `XAPIVerb` keys. */
18
+ type XAPIVerbKey = keyof typeof XAPIVerb;
19
+ /**
20
+ * Default `en-US` display label for each verb, used to populate
21
+ * `XAPIVerbObject.display` when the builder resolves a verb key.
22
+ */
23
+ declare const XAPI_VERB_DISPLAY: Record<XAPIVerbKey, Record<string, string>>;
24
+
25
+ /** Caller-supplied activity object descriptor (mapped to an xAPI Activity). */
26
+ interface XAPIObjectParams {
27
+ /** Activity IRI. */
28
+ id: string;
29
+ name?: Record<string, string>;
30
+ description?: Record<string, string>;
31
+ /** Activity type IRI. */
32
+ type?: string;
33
+ }
34
+ /** Parameters for the generic {@link xAPIBuilder.buildStatement}. */
35
+ interface XAPIStatementParams {
36
+ actor: XAPIActor;
37
+ verb: XAPIVerbKey;
38
+ object: XAPIObjectParams;
39
+ result?: XAPIResult;
40
+ context?: XAPIContext;
41
+ }
42
+ /** Parameters for {@link xAPIBuilder.buildAnsweredStatement} (verb = ANSWERED). */
43
+ interface AnsweredStatementParams {
44
+ actor: XAPIActor;
45
+ object: XAPIObjectParams;
46
+ scoringResult: ScoringResult;
47
+ timeSpentMs: number;
48
+ /** Serialized learner response string. */
49
+ response?: string;
50
+ context?: XAPIContext;
51
+ resultExtensions?: Record<string, unknown>;
52
+ }
53
+ /** Parameters for {@link xAPIBuilder.buildCompletedStatement} (verb = COMPLETED). */
54
+ interface CompletedStatementParams {
55
+ actor: XAPIActor;
56
+ object: XAPIObjectParams;
57
+ scoringResult?: ScoringResult;
58
+ timeSpentMs: number;
59
+ context?: XAPIContext;
60
+ resultExtensions?: Record<string, unknown>;
61
+ }
62
+ /**
63
+ * Constructs xAPI 1.0.3 Statements. Every call stamps a fresh UUID v4 `id`,
64
+ * an ISO 8601 `timestamp`, and `version: '1.0.3'`. Not pure by design —
65
+ * statements are unique events.
66
+ */
67
+ declare const xAPIBuilder: {
68
+ buildStatement(params: XAPIStatementParams): XAPIStatement;
69
+ buildAnsweredStatement(params: AnsweredStatementParams): XAPIStatement;
70
+ buildCompletedStatement(params: CompletedStatementParams): XAPIStatement;
71
+ };
72
+
73
+ /**
74
+ * Validates a constructed {@link XAPIStatement} against the xAPI 1.0.3
75
+ * structural contract.
76
+ *
77
+ * In development a structural failure throws (caught early); in production it
78
+ * logs a warning and returns (the statement is still sent — see the design's
79
+ * Error Handling table). Uses a `zod/v4` schema rather than `ajv` + an
80
+ * external JSON Schema to keep `lk-core` dependency-free.
81
+ *
82
+ * NOTE: `ActivitySchemaError` is reused here per the task spec; its
83
+ * `activityType` field carries the sentinel `'xAPIStatement'`. A dedicated
84
+ * `XAPIValidationError` would be semantically cleaner — flagged for review.
85
+ */
86
+ declare function validateXAPIStatement(statement: XAPIStatement): void;
87
+
88
+ export { type AnsweredStatementParams, type CompletedStatementParams, type XAPIObjectParams, type XAPIStatementParams, XAPIVerb, type XAPIVerbKey, XAPI_VERB_DISPLAY, validateXAPIStatement, xAPIBuilder };
package/dist/xapi.js ADDED
@@ -0,0 +1,14 @@
1
+ import {
2
+ XAPIVerb,
3
+ XAPI_VERB_DISPLAY,
4
+ validateXAPIStatement,
5
+ xAPIBuilder
6
+ } from "./chunk-ZHOX6TO4.js";
7
+ import "./chunk-6VOCV4EX.js";
8
+ export {
9
+ XAPIVerb,
10
+ XAPI_VERB_DISPLAY,
11
+ validateXAPIStatement,
12
+ xAPIBuilder
13
+ };
14
+ //# sourceMappingURL=xapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@intellectif/lk-core",
3
+ "version": "0.2.0",
4
+ "description": "Schemas, scoring engine, and xAPI builder for learning-kit",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.js",
10
+ "require": "./dist/index.cjs"
11
+ },
12
+ "./scoring": {
13
+ "types": "./dist/scoring.d.ts",
14
+ "import": "./dist/scoring.js",
15
+ "require": "./dist/scoring.cjs"
16
+ },
17
+ "./xapi": {
18
+ "types": "./dist/xapi.d.ts",
19
+ "import": "./dist/xapi.js",
20
+ "require": "./dist/xapi.cjs"
21
+ },
22
+ "./schemas": {
23
+ "types": "./dist/schemas.d.ts",
24
+ "import": "./dist/schemas.js",
25
+ "require": "./dist/schemas.cjs"
26
+ }
27
+ },
28
+ "main": "./dist/index.cjs",
29
+ "module": "./dist/index.js",
30
+ "types": "./dist/index.d.ts",
31
+ "files": [
32
+ "dist"
33
+ ],
34
+ "dependencies": {
35
+ "zod": "^3.25.0"
36
+ },
37
+ "devDependencies": {
38
+ "@vitest/coverage-v8": "^4.1.6",
39
+ "fast-check": "^3.22.0",
40
+ "tsup": "^8.3.0",
41
+ "vitest": "^4.1.6"
42
+ },
43
+ "license": "MIT",
44
+ "scripts": {
45
+ "build": "tsup",
46
+ "test": "vitest run",
47
+ "coverage": "vitest run --coverage",
48
+ "lint": "biome check ."
49
+ }
50
+ }