REFERENCIA
Referencia técnica
Índice del contrato público actual. Las firmas de autoría se corresponden con P2LRNAuthoringWorkspace; Player y Host Adapter con la distribución web actual.
API de autoría
P2LRNAuthoringWorkspace.create(root, options)Crea un workspace. Requiere title; admite language, description y force.
P2LRNAuthoringWorkspace.open(packagePath, root, options)Abre un paquete como proyecto editable.
P2LRNAuthoringWorkspace.load(root)Carga un workspace existente.
workspace.summary()Devuelve versiones, projectId, rutas y contadores.
workspace.reload()Recarga el proyecto desde disco.
workspace.upgrade()Actualiza el workspace a la versión editable actual.
workspace.setCourseMetadata(options)Edita título, descripción, idioma y revisión del curso.
workspace.setEntityText(key, options)Edita texto localizado de una entidad.
workspace.setChildren(parentKey, children)Reordena hijos y rechaza claves duplicadas.
workspace.setProgression(key, options|null)Aplica o elimina progression sobre course, unit o activity.
workspace.addUnit(options)Añade una unidad.
workspace.addFile(options)Añade archivo + actividad y devuelve resourceKey/activityKey.
workspace.addUrl(options)Añade una URL como recurso/actividad.
workspace.addWebContent(options)Añade un directorio web con entrypoint.
workspace.addQuestionnaire(options)Añade questionnaire nativo y permite solicitar renderer/version.
workspace.addComponent(options)Añade un componente nativo.
workspace.addComposite(options)Añade composite sequence/free con completion all/any.
await workspace.reader(source, options)Extrae un documento sin mutar el proyecto.
workspace.save()Persiste el workspace actual.
workspace.build(output, options)Construye el .p2lrn; admite strictProfiles.
Progresión
requiredboolean
gateFollowingboolean; inválido en course raíz.
completionRequirementviewed | completed | passed.
minScore0..100; sólo activity.
unlockWhenUn único bloque all o any.
API del Player
P2LRN.mount(target, options)Monta o reutiliza <p2lrn-player>.
openPackageURL / openPackageBytesAbren paquetes remotos o bytes completos con verificación.
createHostAdapterNormaliza Host Adapter v1.
createCapabilityBroker / createToolCapabilityProvider / createMcpCapabilityProviderNegocian servicios semánticos de confianza sin serializar endpoints/credenciales en el curso.
createOfflineHostAdapter / createOfflineSyncControllerEstado/outbox offline y sincronización opt-in.
createMemoryPackageCache / createCacheStoragePackageCacheCache verificado de bytes de curso; cachePackageURL y openCachedPackage completan el flujo.
createActivityTrackerTiempo activo/idle.
createLearningEvent / createLearningEventStream / observeLearningEventsProyección ordenada y categorizada del runtime.
createMemoryResourceLibrary / createCacheStorageResourceLibraryBiblioteca content-addressed de recursos; se conecta con createResourceLibraryResolver.
createMemoryCollaborationHub / createHttpCollaborationProviderImplementaciones de referencia/local y HTTP del contrato collaboration.room.
configureRuntimeHost / installServiceWorkerConfiguran host de runtime y bridge de recursos estáticos.
Biblioteca de recursos y cache
resource.library expone sólo metadatos search/describe/has. Los bytes se resuelven por digest mediante un resolver verificado. El cache de paquetes es independiente y conserva cursos completos después de validarlos.
const resources = P2LRN.createCacheStorageResourceLibrary();
const resolver = P2LRN.createResourceLibraryResolver({store: resources});
const cache = P2LRN.createCacheStoragePackageCache();
player.resourceResolver = resolver;
player.packageCache = cache;Componente web
srcURL del paquete.
nodeEntidad inicial opcional.
rendererRenderer explícito.
runtime-base-urlURL opcional de un runtime administrado. SCORM y H5P disponen de aislamiento automático si no se proporciona un origen externo válido.
player.adapterHost Adapter o null.
player.runtimeBaseUrlPropiedad equivalente a runtime-base-url.
await player.reload()Recarga el paquete actual.
Host Adapter v1
loadState(context)Carga el snapshot de reanudación. Devuelve objeto compatible o null.
saveState(state, context)Guarda el snapshot actual de actividad o progresión.
reportScore(score, context)Recibe una puntuación común cuando el runtime puede producirla.
emitEvent(event, context)Recibe el sobre canónico runtime-event/1; las llamadas se serializan en orden por Adapter.
resolveResourceUrl(request, context)Devuelve {url, verified:true, seekable?} o null.
Eventos
Familias públicas actuales: p2lrn:ready, p2lrn:activityready, p2lrn:rendered, p2lrn:answer, p2lrn:progress, p2lrn:statechange, p2lrn:timeupdate, p2lrn:timeout, p2lrn:score, p2lrn:complete, p2lrn:progressionchange, p2lrn:xapi, p2lrn:navigation y p2lrn:error. No todos los renderers emiten todas las familias.
Toolkit Host
@p2lrn/toolkit/host exporta createReferenceAuthoritativeHost(), createMemoryAuthoritativeHostStore() y createJsonFileAuthoritativeHostStore(). La referencia exige que el servidor produzca una decisión authoritative:true antes de almacenar una nota oficial y puede deduplicar entregas offline mediante offlineDeliveryId.
Studio Web Component
<p2lrn-studio> expone creación/apertura, autoría, preview, exportación, biblioteca de recursos y entrega offline. Campos de derechos: author, createdAt, license, copyrightHolder. APIs conectadas: resourceLibrary, materializeSharedResource(), exportOfflineAssignment() y reviewOfflineResult().
CLI de @p2lrn/toolkit
p2lrnp2lrn-validatep2lrn-readerp2lrn-document-readerp2lrn-createp2lrn-convertp2lrn-repackp2lrn-multipartp2lrn-inspectp2lrn-extract-sourcep2lrn-deltap2lrn-trustCreator
p2lrn-create init|open|upgrade|add-unit|add-file|add-web-content|add-questionnaire|add-component|add-composite|add-url|build|convert|component-catalog|validate-component-authoring|showDelta
p2lrn-delta create <base> <target> <output>
p2lrn-delta apply <base> <delta> <output>
p2lrn-delta inspect <delta>Trust / Ed25519
p2lrn-trust keygen private.pem public.pem
p2lrn-trust sign course.p2lrn private.pem
p2lrn-trust verify course.p2lrn course.p2lrn.sig --trust-key public.pem --require-trusted
p2lrn-trust inspect course.p2lrn.sigSHA-256 detecta cambios. La firma Ed25519 comprueba que el contenido fue firmado por una clave; --require-trusted además exige que esa clave esté en el conjunto suministrado.
Multipart
Estos comandos resumen la operación Multipart. Para el recorrido completo, incluidos publicación y reconstrucción, consulta la guía específica.
p2lrn-multipart <source.p2lrn> <output.p2lrn> [--representation <id>] [--part-size <bytes>]Parte por defecto: 25 MiB. Mínimo admitido por la implementación: 1 MiB.
Rutas CDN
Documentación relacionada
Cuestionarios y juegos
Contrato común y página individual para cada presentación.
EXEjemplos
Paquetes de referencia y ejemplos ejecutables.
CLIReferencia CLI
Sintaxis, opciones y comportamiento de cada punto de entrada del Toolkit.
MPMultipart ejecutable
Paquete, partes y reconstrucción SHA-256 documentados para el flujo Multipart.