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

required

boolean

gateFollowing

boolean; inválido en course raíz.

completionRequirement

viewed | completed | passed.

minScore

0..100; sólo activity.

unlockWhen

Un único bloque all o any.

Ver guía completa de progresión →

API del Player

P2LRN.mount(target, options)

Monta o reutiliza <p2lrn-player>.

openPackageURL / openPackageBytes

Abren paquetes remotos o bytes completos con verificación.

createHostAdapter

Normaliza Host Adapter v1.

createCapabilityBroker / createToolCapabilityProvider / createMcpCapabilityProvider

Negocian servicios semánticos de confianza sin serializar endpoints/credenciales en el curso.

createOfflineHostAdapter / createOfflineSyncController

Estado/outbox offline y sincronización opt-in.

createMemoryPackageCache / createCacheStoragePackageCache

Cache verificado de bytes de curso; cachePackageURL y openCachedPackage completan el flujo.

createActivityTracker

Tiempo activo/idle.

createLearningEvent / createLearningEventStream / observeLearningEvents

Proyección ordenada y categorizada del runtime.

createMemoryResourceLibrary / createCacheStorageResourceLibrary

Biblioteca content-addressed de recursos; se conecta con createResourceLibraryResolver.

createMemoryCollaborationHub / createHttpCollaborationProvider

Implementaciones de referencia/local y HTTP del contrato collaboration.room.

configureRuntimeHost / installServiceWorker

Configuran 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.

ESM / Web SDK
const resources = P2LRN.createCacheStorageResourceLibrary();
const resolver = P2LRN.createResourceLibraryResolver({store: resources});
const cache = P2LRN.createCacheStoragePackageCache();

player.resourceResolver = resolver;
player.packageCache = cache;

Componente web

src

URL del paquete.

node

Entidad inicial opcional.

renderer

Renderer explícito.

runtime-base-url

URL opcional de un runtime administrado. SCORM y H5P disponen de aislamiento automático si no se proporciona un origen externo válido.

player.adapter

Host Adapter o null.

player.runtimeBaseUrl

Propiedad 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.

Guía completa de métricas y analítica →

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.

Referencia de eventos → · Extracción de métricas →

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-trust

Creator

Comandos reales
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|show

Delta

Terminal
p2lrn-delta create <base> <target> <output>
p2lrn-delta apply <base> <delta> <output>
p2lrn-delta inspect <delta>

Trust / Ed25519

Terminal
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.sig
Integridad y confianza son distintas.

SHA-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.

Terminal
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