@lssm/example.learning-patterns 0.0.0-canary-20251217080011 → 0.0.0-canary-20251219202229

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 (86) hide show
  1. package/.turbo/turbo-build$colon$bundle.log +90 -59
  2. package/.turbo/turbo-build.log +91 -52
  3. package/CHANGELOG.md +4 -4
  4. package/LICENSE +21 -0
  5. package/dist/docs/learning-patterns.docblock.js +2 -1
  6. package/dist/docs/learning-patterns.docblock.js.map +1 -0
  7. package/dist/events.d.ts +2 -1
  8. package/dist/events.d.ts.map +1 -0
  9. package/dist/events.js +2 -1
  10. package/dist/events.js.map +1 -0
  11. package/dist/example.d.ts +2 -1
  12. package/dist/example.d.ts.map +1 -0
  13. package/dist/example.js +2 -1
  14. package/dist/example.js.map +1 -0
  15. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
  16. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
  17. package/dist/libs/contracts/dist/docs/index.js +2 -6
  18. package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
  19. package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
  20. package/dist/libs/contracts/dist/docs/presentations.js +2 -1
  21. package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
  22. package/dist/libs/contracts/dist/docs/registry.js +2 -1
  23. package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
  24. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
  25. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
  26. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
  27. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
  28. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
  29. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
  30. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
  31. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
  32. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
  33. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
  34. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
  35. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
  36. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
  37. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
  38. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
  39. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
  40. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
  41. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
  42. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
  43. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
  44. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
  45. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
  46. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
  47. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
  48. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
  49. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
  50. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
  51. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
  52. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
  53. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
  54. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
  55. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
  56. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
  57. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
  58. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
  59. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
  60. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
  61. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
  62. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
  63. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
  64. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
  65. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
  66. package/dist/tracks/ambient-coach.d.ts +2 -1
  67. package/dist/tracks/ambient-coach.d.ts.map +1 -0
  68. package/dist/tracks/ambient-coach.js +2 -1
  69. package/dist/tracks/ambient-coach.js.map +1 -0
  70. package/dist/tracks/drills.d.ts +2 -1
  71. package/dist/tracks/drills.d.ts.map +1 -0
  72. package/dist/tracks/drills.js +2 -1
  73. package/dist/tracks/drills.js.map +1 -0
  74. package/dist/tracks/quests.d.ts +2 -1
  75. package/dist/tracks/quests.d.ts.map +1 -0
  76. package/dist/tracks/quests.js +2 -1
  77. package/dist/tracks/quests.js.map +1 -0
  78. package/package.json +9 -8
  79. package/tsconfig.tsbuildinfo +1 -1
  80. package/tsdown.config.js +0 -10
  81. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  82. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  83. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  84. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  85. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  86. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech-contracts.docs.js","names":[],"sources":["../../../../../../../libs/contracts/dist/docs/tech-contracts.docs.js"],"sourcesContent":["import { registerDocBlocks } from \"./registry.js\";\n\n//#region src/docs/tech-contracts.docs.ts\nconst techContractsDocs = [{\n\tid: \"docs.tech.contracts.presentations-v2\",\n\ttitle: \"Presentations V2 — Unified Descriptor & Transform Engine\",\n\tsummary: \"How PresentationDescriptorV2 and TransformEngine keep docs/renderers consistent.\",\n\tvisibility: \"public\",\n\troute: \"/docs/tech/contracts/presentations-v2\",\n\tkind: \"reference\",\n\ttags: [\n\t\t\"presentations\",\n\t\t\"docs\",\n\t\t\"mcp\"\n\t],\n\tbody: `## Presentations V2 — Unified Descriptor & Transform Engine\n\n### Purpose\n\nUnify presentations into one descriptor (\\`PresentationDescriptorV2\\`) that declares a single source (React component key or BlockNote doc) and a list of output targets (react, markdown, application/json, application/xml). A pluggable \\`TransformEngine\\` renders any target and applies PII redaction.\n\n### Types\n\n\\`\\`\\`ts\ntype PresentationTarget =\n | 'react'\n | 'markdown'\n | 'application/json'\n | 'application/xml';\n\ntype PresentationSource =\n | {\n type: 'component';\n framework: 'react';\n componentKey: string;\n props?: AnySchemaModel;\n }\n | { type: 'blocknotejs'; docJson: unknown; blockConfig?: unknown };\n\ninterface PresentationDescriptorV2 {\n meta: PresentationV2Meta; // includes partial OwnerShipMeta + description\n policy?: { flags?: string[]; pii?: string[] };\n source: PresentationSource;\n targets: PresentationTarget[];\n}\n\n// Shared ownership schema (source of truth in @lssm/lib.contracts/src/ownership.ts)\ninterface OwnerShipMeta {\n title: string;\n description: string;\n domain: string;\n owners: Owner[];\n tags: Tag[];\n stability: Stability;\n}\n\ntype Stability = 'experimental' | 'beta' | 'stable' | 'deprecated';\ntype Owner = string; // curated list available in code (e.g., '@sigil-team', 'team-strit')\ntype Tag = string; // curated list available in code (e.g., 'auth', 'spots')\n\n// For V2 presentations, meta is a Partial<OwnerShipMeta> plus description, name, version\ninterface PresentationV2Meta extends Partial<OwnerShipMeta> {\n name: string;\n version: number;\n description?: string;\n}\n\\`\\`\\`\n\n### Engine\n\nUse \\`createDefaultTransformEngine()\\` and register custom renderers as needed (e.g., high-fidelity BlockNote → Markdown). The default engine supports markdown/json/xml; a React renderer returns a serializable descriptor the host app renders via a \\`componentMap\\` or a BlockNote renderer. The canonical source type string is \\`blocknotejs\\` (not \\`blocknote\\`).\n\nPII paths (JSON-like) are redacted from rendered outputs.\n\n### MCP Integration\n\n\\`createMcpServer\\` accepts \\`presentationsV2\\`. Each descriptor is exposed under \\`presentation://<name>/v<version>\\` and negotiated variants (\\`.md/.json/.xml\\`) are rendered by the engine.\n\n### Migration\n\n- V1 \\`PresentationSpec\\` remains supported; a back-compat helper converts V1 → V2 when convenient.\n- Prefer V2 for new work.\n\n### Examples (Sigil)\n\n- \\`sigil.auth.webauth_tabs_v2\\`: component source (\\`componentKey: 'sigil.webauth.tabs'\\`), targets \\`react/json/xml\\`.\n- \\`sigil.signup.guide_v2\\`: BlockNote doc source, targets \\`react/markdown/json/xml\\`.\n\n### React Rendering\n\nHost apps use a \\`componentMap\\` (e.g., \\`'sigil.webauth.tabs' → WebAuthTabs\\`) and a BlockNote renderer to turn the React render descriptor into elements.`\n}];\nregisterDocBlocks(techContractsDocs);\n\n//#endregion\nexport { techContractsDocs };\n//# sourceMappingURL=tech-contracts.docs.js.map"],"mappings":";;;AAGA,MAAM,oBAAoB,CAAC;CAC1B,IAAI;CACJ,OAAO;CACP,SAAS;CACT,YAAY;CACZ,OAAO;CACP,MAAM;CACN,MAAM;EACL;EACA;EACA;EACA;CACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4EN,CAAC;AACF,kBAAkB,kBAAkB"}
@@ -4,4 +4,5 @@ import { LearningJourneyTrackSpec } from "@lssm/module.learning-journey/track-sp
4
4
  declare const ambientCoachTrack: LearningJourneyTrackSpec;
5
5
  declare const ambientCoachTracks: LearningJourneyTrackSpec[];
6
6
  //#endregion
7
- export { ambientCoachTrack, ambientCoachTracks };
7
+ export { ambientCoachTrack, ambientCoachTracks };
8
+ //# sourceMappingURL=ambient-coach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ambient-coach.d.ts","names":[],"sources":["../../src/tracks/ambient-coach.ts"],"sourcesContent":[],"mappings":";;;cAGa,mBAAmB;cAsCnB,oBAAoB"}
@@ -44,4 +44,5 @@ const ambientCoachTrack = {
44
44
  const ambientCoachTracks = [ambientCoachTrack];
45
45
 
46
46
  //#endregion
47
- export { ambientCoachTrack, ambientCoachTracks };
47
+ export { ambientCoachTrack, ambientCoachTracks };
48
+ //# sourceMappingURL=ambient-coach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ambient-coach.js","names":["ambientCoachTrack: LearningJourneyTrackSpec","ambientCoachTracks: LearningJourneyTrackSpec[]"],"sources":["../../src/tracks/ambient-coach.ts"],"sourcesContent":["import type { LearningJourneyTrackSpec } from '@lssm/module.learning-journey/track-spec';\nimport { LEARNING_EVENTS } from '../events';\n\nexport const ambientCoachTrack: LearningJourneyTrackSpec = {\n id: 'learning_patterns_ambient_coach_basics',\n name: 'Ambient Coach Basics',\n description: 'Contextual tips triggered by behavior events.',\n targetUserSegment: 'learner',\n targetRole: 'individual',\n totalXp: 30,\n steps: [\n {\n id: 'tip_shown',\n title: 'See a contextual tip',\n order: 1,\n completion: { kind: 'event', eventName: LEARNING_EVENTS.COACH_TIP_SHOWN },\n xpReward: 10,\n },\n {\n id: 'tip_acknowledged',\n title: 'Acknowledge a tip',\n order: 2,\n completion: {\n kind: 'event',\n eventName: LEARNING_EVENTS.COACH_TIP_ACKNOWLEDGED,\n },\n xpReward: 10,\n },\n {\n id: 'tip_action_taken',\n title: 'Take an action from a tip',\n order: 3,\n completion: {\n kind: 'event',\n eventName: LEARNING_EVENTS.COACH_TIP_ACTION_TAKEN,\n },\n xpReward: 10,\n },\n ],\n};\n\nexport const ambientCoachTracks: LearningJourneyTrackSpec[] = [\n ambientCoachTrack,\n];\n"],"mappings":";;;AAGA,MAAaA,oBAA8C;CACzD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,mBAAmB;CACnB,YAAY;CACZ,SAAS;CACT,OAAO;EACL;GACE,IAAI;GACJ,OAAO;GACP,OAAO;GACP,YAAY;IAAE,MAAM;IAAS,WAAW,gBAAgB;IAAiB;GACzE,UAAU;GACX;EACD;GACE,IAAI;GACJ,OAAO;GACP,OAAO;GACP,YAAY;IACV,MAAM;IACN,WAAW,gBAAgB;IAC5B;GACD,UAAU;GACX;EACD;GACE,IAAI;GACJ,OAAO;GACP,OAAO;GACP,YAAY;IACV,MAAM;IACN,WAAW,gBAAgB;IAC5B;GACD,UAAU;GACX;EACF;CACF;AAED,MAAaC,qBAAiD,CAC5D,kBACD"}
@@ -4,4 +4,5 @@ import { LearningJourneyTrackSpec } from "@lssm/module.learning-journey/track-sp
4
4
  declare const drillsTrack: LearningJourneyTrackSpec;
5
5
  declare const drillTracks: LearningJourneyTrackSpec[];
6
6
  //#endregion
7
- export { drillTracks, drillsTrack };
7
+ export { drillTracks, drillsTrack };
8
+ //# sourceMappingURL=drills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drills.d.ts","names":[],"sources":["../../src/tracks/drills.ts"],"sourcesContent":[],"mappings":";;;cAGa,aAAa;cA+Cb,aAAa"}
@@ -50,4 +50,5 @@ const drillsTrack = {
50
50
  const drillTracks = [drillsTrack];
51
51
 
52
52
  //#endregion
53
- export { drillTracks, drillsTrack };
53
+ export { drillTracks, drillsTrack };
54
+ //# sourceMappingURL=drills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drills.js","names":["drillsTrack: LearningJourneyTrackSpec","drillTracks: LearningJourneyTrackSpec[]"],"sources":["../../src/tracks/drills.ts"],"sourcesContent":["import type { LearningJourneyTrackSpec } from '@lssm/module.learning-journey/track-spec';\nimport { LEARNING_EVENTS } from '../events';\n\nexport const drillsTrack: LearningJourneyTrackSpec = {\n id: 'learning_patterns_drills_basics',\n name: 'Drills Basics',\n description: 'Short drill sessions with an SRS-style mastery step.',\n targetUserSegment: 'learner',\n targetRole: 'individual',\n totalXp: 50,\n steps: [\n {\n id: 'complete_first_session',\n title: 'Complete your first session',\n order: 1,\n completion: {\n kind: 'event',\n eventName: LEARNING_EVENTS.DRILL_SESSION_COMPLETED,\n },\n xpReward: 10,\n },\n {\n id: 'hit_accuracy_threshold',\n title: 'Hit high accuracy 3 times',\n order: 2,\n completion: {\n kind: 'count',\n eventName: LEARNING_EVENTS.DRILL_SESSION_COMPLETED,\n atLeast: 3,\n payloadFilter: { accuracyBucket: 'high' },\n },\n xpReward: 20,\n },\n {\n id: 'master_cards',\n title: 'Master 5 cards',\n order: 3,\n completion: {\n kind: 'srs_mastery',\n eventName: LEARNING_EVENTS.DRILL_CARD_MASTERED,\n minimumMastery: 0.8,\n requiredCount: 5,\n skillIdField: 'skillId',\n masteryField: 'mastery',\n },\n xpReward: 20,\n },\n ],\n};\n\nexport const drillTracks: LearningJourneyTrackSpec[] = [drillsTrack];\n"],"mappings":";;;AAGA,MAAaA,cAAwC;CACnD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,mBAAmB;CACnB,YAAY;CACZ,SAAS;CACT,OAAO;EACL;GACE,IAAI;GACJ,OAAO;GACP,OAAO;GACP,YAAY;IACV,MAAM;IACN,WAAW,gBAAgB;IAC5B;GACD,UAAU;GACX;EACD;GACE,IAAI;GACJ,OAAO;GACP,OAAO;GACP,YAAY;IACV,MAAM;IACN,WAAW,gBAAgB;IAC3B,SAAS;IACT,eAAe,EAAE,gBAAgB,QAAQ;IAC1C;GACD,UAAU;GACX;EACD;GACE,IAAI;GACJ,OAAO;GACP,OAAO;GACP,YAAY;IACV,MAAM;IACN,WAAW,gBAAgB;IAC3B,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,cAAc;IACf;GACD,UAAU;GACX;EACF;CACF;AAED,MAAaC,cAA0C,CAAC,YAAY"}
@@ -4,4 +4,5 @@ import { LearningJourneyTrackSpec } from "@lssm/module.learning-journey/track-sp
4
4
  declare const questTrack: LearningJourneyTrackSpec;
5
5
  declare const questTracks: LearningJourneyTrackSpec[];
6
6
  //#endregion
7
- export { questTrack, questTracks };
7
+ export { questTrack, questTracks };
8
+ //# sourceMappingURL=quests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quests.d.ts","names":[],"sources":["../../src/tracks/quests.ts"],"sourcesContent":[],"mappings":";;;cAGa,YAAY;cAwCZ,aAAa"}
@@ -52,4 +52,5 @@ const questTrack = {
52
52
  const questTracks = [questTrack];
53
53
 
54
54
  //#endregion
55
- export { questTrack, questTracks };
55
+ export { questTrack, questTracks };
56
+ //# sourceMappingURL=quests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quests.js","names":["questTrack: LearningJourneyTrackSpec","questTracks: LearningJourneyTrackSpec[]"],"sources":["../../src/tracks/quests.ts"],"sourcesContent":["import type { LearningJourneyTrackSpec } from '@lssm/module.learning-journey/track-spec';\nimport { LEARNING_EVENTS } from '../events';\n\nexport const questTrack: LearningJourneyTrackSpec = {\n id: 'learning_patterns_quest_7day',\n name: 'Quest (7-day)',\n description: 'Time-bounded quest with day unlocks.',\n targetUserSegment: 'learner',\n targetRole: 'individual',\n totalXp: 70,\n steps: [\n {\n id: 'day1_start',\n title: 'Start the quest',\n order: 1,\n completion: { kind: 'event', eventName: LEARNING_EVENTS.QUEST_STARTED },\n xpReward: 10,\n },\n {\n id: 'day1_complete',\n title: 'Complete day 1 step',\n order: 2,\n completion: {\n kind: 'event',\n eventName: LEARNING_EVENTS.QUEST_STEP_COMPLETED,\n },\n availability: { unlockOnDay: 1, dueWithinHours: 48 },\n xpReward: 10,\n },\n {\n id: 'day2_complete',\n title: 'Complete day 2 step',\n order: 3,\n completion: {\n kind: 'event',\n eventName: LEARNING_EVENTS.QUEST_STEP_COMPLETED,\n },\n availability: { unlockOnDay: 2, dueWithinHours: 48 },\n xpReward: 10,\n },\n ],\n};\n\nexport const questTracks: LearningJourneyTrackSpec[] = [questTrack];\n"],"mappings":";;;AAGA,MAAaA,aAAuC;CAClD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,mBAAmB;CACnB,YAAY;CACZ,SAAS;CACT,OAAO;EACL;GACE,IAAI;GACJ,OAAO;GACP,OAAO;GACP,YAAY;IAAE,MAAM;IAAS,WAAW,gBAAgB;IAAe;GACvE,UAAU;GACX;EACD;GACE,IAAI;GACJ,OAAO;GACP,OAAO;GACP,YAAY;IACV,MAAM;IACN,WAAW,gBAAgB;IAC5B;GACD,cAAc;IAAE,aAAa;IAAG,gBAAgB;IAAI;GACpD,UAAU;GACX;EACD;GACE,IAAI;GACJ,OAAO;GACP,OAAO;GACP,YAAY;IACV,MAAM;IACN,WAAW,gBAAgB;IAC5B;GACD,cAAc;IAAE,aAAa;IAAG,gBAAgB;IAAI;GACpD,UAAU;GACX;EACF;CACF;AAED,MAAaC,cAA0C,CAAC,WAAW"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lssm/example.learning-patterns",
3
- "version": "0.0.0-canary-20251217080011",
3
+ "version": "0.0.0-canary-20251219202229",
4
4
  "description": "Example: drills + ambient coach + quests learning patterns, powered by Learning Journey (event-driven, deterministic).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -32,14 +32,14 @@
32
32
  "test": "bun test"
33
33
  },
34
34
  "dependencies": {
35
- "@lssm/lib.schema": "0.0.0-canary-20251217080011",
36
- "@lssm/lib.contracts": "0.0.0-canary-20251217080011",
37
- "@lssm/module.learning-journey": "0.0.0-canary-20251217080011"
35
+ "@lssm/lib.schema": "0.0.0-canary-20251219202229",
36
+ "@lssm/lib.contracts": "0.0.0-canary-20251219202229",
37
+ "@lssm/module.learning-journey": "0.0.0-canary-20251219202229"
38
38
  },
39
39
  "devDependencies": {
40
- "@lssm/tool.tsdown": "0.0.0-canary-20251217080011",
41
- "@lssm/tool.typescript": "0.0.0-canary-20251217080011",
42
- "tsdown": "^0.17.4",
40
+ "@lssm/tool.tsdown": "0.0.0-canary-20251219202229",
41
+ "@lssm/tool.typescript": "0.0.0-canary-20251219202229",
42
+ "tsdown": "^0.18.1",
43
43
  "typescript": "^5.9.3"
44
44
  },
45
45
  "publishConfig": {
@@ -56,5 +56,6 @@
56
56
  "./tracks/quests": "./dist/tracks/quests.js",
57
57
  "./*": "./*"
58
58
  }
59
- }
59
+ },
60
+ "license": "MIT"
60
61
  }