lens-content-processor 0.28.0 → 0.33.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 (62) hide show
  1. package/dist/authoring-markup.d.ts +11 -0
  2. package/dist/authoring-markup.js +52 -0
  3. package/dist/authoring-markup.js.map +1 -1
  4. package/dist/cli.d.ts +1 -0
  5. package/dist/cli.js +6 -2
  6. package/dist/cli.js.map +1 -1
  7. package/dist/content-schema.js +7 -0
  8. package/dist/content-schema.js.map +1 -1
  9. package/dist/dedupe-errors.js +7 -1
  10. package/dist/dedupe-errors.js.map +1 -1
  11. package/dist/flattener/index.js +50 -16
  12. package/dist/flattener/index.js.map +1 -1
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.js +14 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/parser/article.js +34 -32
  17. package/dist/parser/article.js.map +1 -1
  18. package/dist/parser/course.d.ts +0 -10
  19. package/dist/parser/course.js +16 -14
  20. package/dist/parser/course.js.map +1 -1
  21. package/dist/parser/learning-outcome.d.ts +1 -0
  22. package/dist/parser/learning-outcome.js +28 -38
  23. package/dist/parser/learning-outcome.js.map +1 -1
  24. package/dist/parser/lens.d.ts +1 -6
  25. package/dist/parser/lens.js +64 -17
  26. package/dist/parser/lens.js.map +1 -1
  27. package/dist/parser/module.js +24 -17
  28. package/dist/parser/module.js.map +1 -1
  29. package/dist/parser/sections.d.ts +2 -1
  30. package/dist/parser/sections.js +5 -3
  31. package/dist/parser/sections.js.map +1 -1
  32. package/dist/parser/survey.js +16 -10
  33. package/dist/parser/survey.js.map +1 -1
  34. package/dist/source-location.d.ts +2 -0
  35. package/dist/source-location.js +12 -0
  36. package/dist/source-location.js.map +1 -0
  37. package/dist/validator/article-review-provenance.d.ts +5 -0
  38. package/dist/validator/article-review-provenance.js +57 -0
  39. package/dist/validator/article-review-provenance.js.map +1 -0
  40. package/dist/validator/article-structure.d.ts +8 -0
  41. package/dist/validator/article-structure.js +674 -0
  42. package/dist/validator/article-structure.js.map +1 -0
  43. package/dist/validator/directives.js +42 -0
  44. package/dist/validator/directives.js.map +1 -1
  45. package/dist/validator/emphasis.js +126 -2
  46. package/dist/validator/emphasis.js.map +1 -1
  47. package/dist/validator/html-tags.js +87 -2
  48. package/dist/validator/html-tags.js.map +1 -1
  49. package/dist/validator/math.js +66 -9
  50. package/dist/validator/math.js.map +1 -1
  51. package/dist/validator/output-integrity.js +7 -1
  52. package/dist/validator/output-integrity.js.map +1 -1
  53. package/dist/validator/same-lens-links.d.ts +4 -0
  54. package/dist/validator/same-lens-links.js +297 -0
  55. package/dist/validator/same-lens-links.js.map +1 -0
  56. package/dist/validator/suppressions.d.ts +42 -0
  57. package/dist/validator/suppressions.js +97 -0
  58. package/dist/validator/suppressions.js.map +1 -0
  59. package/dist/validator/uuid.d.ts +1 -0
  60. package/dist/validator/uuid.js +2 -0
  61. package/dist/validator/uuid.js.map +1 -1
  62. package/package.json +9 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suppressions.js","sourceRoot":"","sources":["../../src/validator/suppressions.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export interface UuidEntry {
7
7
  uuid: string;
8
8
  file: string;
9
9
  field: string;
10
+ line?: number;
10
11
  }
11
12
  export interface UuidValidationResult {
12
13
  errors: ContentError[];
@@ -21,6 +21,7 @@ export function validateUuids(entries) {
21
21
  if (!isValidUuid(entry.uuid)) {
22
22
  errors.push({
23
23
  file: entry.file,
24
+ line: entry.line,
24
25
  message: `Invalid UUID format for ${entry.field}: '${entry.uuid}'`,
25
26
  suggestion: 'UUID must be in format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12 hex characters)',
26
27
  severity: 'error',
@@ -34,6 +35,7 @@ export function validateUuids(entries) {
34
35
  if (existing.file !== entry.file || existing.field !== entry.field) {
35
36
  errors.push({
36
37
  file: entry.file,
38
+ line: entry.line,
37
39
  message: `Duplicate UUID '${entry.uuid}' - also used in ${existing.file} (${existing.field})`,
38
40
  suggestion: 'Each UUID must be unique across the entire vault',
39
41
  severity: 'error',
@@ -1 +1 @@
1
- {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/validator/uuid.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,GAAG,iEAAiE,CAAC;AAErF;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAYD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAoB;IAChD,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC,CAAC,2BAA2B;IAE3E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAE3C,oBAAoB;QACpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,2BAA2B,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,IAAI,GAAG;gBAClE,UAAU,EAAE,0FAA0F;gBACtG,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,SAAS,CAAC,yCAAyC;QACrD,CAAC;QAED,sBAAsB;QACtB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,0FAA0F;YAC1F,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;gBACnE,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,mBAAmB,KAAK,CAAC,IAAI,oBAAoB,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,GAAG;oBAC7F,UAAU,EAAE,kDAAkD;oBAC9D,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/validator/uuid.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,GAAG,iEAAiE,CAAC;AAErF;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAaD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAoB;IAChD,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC,CAAC,2BAA2B;IAE3E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAE3C,oBAAoB;QACpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,2BAA2B,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,IAAI,GAAG;gBAClE,UAAU,EAAE,0FAA0F;gBACtG,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,SAAS,CAAC,yCAAyC;QACrD,CAAC;QAED,sBAAsB;QACtB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,0FAA0F;YAC1F,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;gBACnE,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,mBAAmB,KAAK,CAAC,IAAI,oBAAoB,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,GAAG;oBAC7F,UAAU,EAAE,kDAAkD;oBAC9D,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lens-content-processor",
3
- "version": "0.28.0",
3
+ "version": "0.33.0",
4
4
  "description": "Parser and validator for Lens educational content (Markdown modules, lenses, learning outcomes)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -34,6 +34,7 @@
34
34
  "directory": "content_processor"
35
35
  },
36
36
  "devDependencies": {
37
+ "@types/mdast": "^4.0.4",
37
38
  "@types/node": "^22.0.0",
38
39
  "tsx": "^4.0.0",
39
40
  "typescript": "^5.7.0",
@@ -41,6 +42,13 @@
41
42
  },
42
43
  "dependencies": {
43
44
  "katex": "^0.16.47",
45
+ "mdast-util-to-string": "^4.0.0",
46
+ "remark-directive": "^4.0.0",
47
+ "remark-gfm": "^4.0.1",
48
+ "remark-math": "^6.0.0",
49
+ "remark-parse": "^11.0.0",
50
+ "unified": "^11.0.5",
51
+ "unist-util-visit": "^5.1.0",
44
52
  "yaml": "^2.8.2"
45
53
  }
46
54
  }