@willedtech/course-schemas
v0.1.0
Published
Schemas canónicos de WillEdTech Course Package v1 (JSON Schema Draft 2020-12), autocontenidos y empaquetables.
Maintainers
Readme
@willedtech/course-schemas
Schemas canónicos de WillEdTech Course Package v1 (JSON Schema Draft 2020-12) para Node.js 22 o superior.
Responsabilidad
Este paquete es la única fuente física de verdad de los schemas canónicos:
course-package-v1.schema.json;content-entry-v1.schema.json;activity-v1.schema.json;route-manifest-v1.schema.json;course-package-oci-config.v1.schema.json.
No valida nada por sí mismo, no depende de Ajv y no tiene dependencias en tiempo de ejecución. Expone los schemas ya parseados como objetos JSON para que @willedtech/course-validator y @willedtech/course-oci los compilen con su propia instancia de Ajv.
La resolución de los archivos es independiente de process.cwd() y de la ubicación del repositorio: se construye únicamente a partir de import.meta.url.
Instalación
Paquete canónico público (registro npmjs.org, scope @willedtech,
licencia Apache-2.0):
npm install @willedtech/course-schemasNota: la primera publicación pública en
0.1.0es un checkpoint operativo posterior (Fase B dedocs/platform/canonical-package-distribution-v1.md); hasta entonces,npm installde este paquete no resuelve un artefacto público. Para desarrollo dentro de este monorepo, usa la instalación local:
npm --prefix .\packages\course-schemas installPruebas
npm --prefix .\packages\course-schemas testAPI
import {
ACTIVITY_SCHEMA,
CONTENT_ENTRY_SCHEMA,
COURSE_PACKAGE_OCI_CONFIG_SCHEMA,
COURSE_PACKAGE_SCHEMA,
ROUTE_MANIFEST_SCHEMA,
} from '@willedtech/course-schemas';Cada export es el objeto JSON del schema tal como vive en disco, con su $id y referencias internas ($defs) intactas.
Versión npm vs. schemaVersion
La versión npm de este paquete (0.1.0, SemVer 0.x) es un identificador de
distribución del paquete y es independiente de schemaVersion, el campo
que versiona el contrato de cada schema canónico (por ejemplo,
course-package-oci-config.v1.schema.json fija schemaVersion: 1). Subir la
versión npm de este paquete no implica un cambio de schemaVersion, y
viceversa: un cambio de schemaVersion requeriría un nuevo schema canónico,
no sólo un nuevo release npm.
Política de compatibilidad (0.x)
Mientras la versión mayor sea 0, cualquier versión 0.x.y puede introducir
cambios incompatibles en los schemas expuestos, siguiendo SemVer 0.x
(sin garantía de compatibilidad entre versiones menores). Los consumidores
internos (@willedtech/course-validator, @willedtech/course-oci) fijan
versiones exactas hasta que este paquete alcance 1.0.0.
No mutar los schemas canónicos
Los objetos exportados están congelados (Object.freeze recursivo) y no
deben tratarse como plantillas editables en tiempo de ejecución: cualquier
cambio a un schema canónico debe hacerse en el archivo fuente de este
paquete, nunca en una copia mutada por un consumidor.
Repositorio
https://github.com/herrerawilliamh/lti-provider — directorio
packages/course-schemas.
Licencia
Apache License 2.0 © 2026 William Humberto Herrera Rey.
Esta licencia aplica únicamente a packages/course-schemas, no al
repositorio lti-provider en su conjunto (que no tiene un LICENSE raíz).
