Repository navigation
v1.0.0
All seven packages at 1.0.0: @missing-elements/h5p-offline-player, @missing-elements/h5p-runtime, @missing-elements/h5p-libraries, @missing-elements/h5p-embed, @missing-elements/h5p-verify, @missing-elements/h5p-cmi5 and @missing-elements/h5p-normalize.
What 1.0 promises
From this release on, a change that breaks anything What a version number promises covers comes only in a major release. That covers the element's attributes, properties, events and files; what statements carry; how packages and saved state are named; and each command's options and output. A minor adds without breaking, and a patch fixes. Nothing is deprecated.
Breaking changes
- Update the player, the runtime and
h5p-sw.jstogether.- Player 1.0.0 plays with runtime 1.0, and runtime 1.0 needs player 1.0's Service Worker.
- Given an older worker, the frame stops with "The player's Service Worker is older than this runtime" and says what to update.
- The runtime's
runtimeexport no longer hasmainJs, and itsdist/no longer hasmain.bundle.js. - A tab still open on 0.10 when the worker updates keeps playing.
libraries="hub"is gone. Writepack.hubhas meantpacksince 0.6.- The element now reads
hubas a URL relative to the page, and the load fails naming that address. - In the embed site,
&libraries=huband--default-libraries hubare no longer accepted. - In the verifier,
--libraries hubnow looks for a file namedhub.
- Each package is downloaded once more. Cached packages are kept per major version, and the new worker deletes the 0.x caches as it starts. A learner's saved state (
resume) is kept. - The normalizer needs Node 22 or later, as the embed site and the verifier already do. Node 20 reached its end of life in April.
The runtime is the H5P core from h5p-php-library
The runtime no longer uses h5p-standalone (#37). It carries the H5P core from h5p/h5p-php-library at cb64a1f (2026-08-11, core API 1.28), the same scripts and stylesheets an H5P site loads, in the same order. dist/NOTICE.txt names the commit. A newer core comes in a minor release, and its notes name the commit.
frame.bundle.jsis 48.5 kB gzipped, against 54.6 kB for h5p-standalone's two files.- Libraries load in the same order as before. The worker now works out the order and the frame asks it, where h5p-standalone asked for every
library.jsonfrom the frame. - Checked on 68 packages, the 55 content types of the library pack among them: the same files load in the same order, and every content type sends the same statements.
- The core's English strings are the same 67, and the translations are unchanged.
Fixed: older packages with library folders named without versions play with the pack
With libraries="pack", a package that keeps its libraries in folders named without versions (H5P.Foo rather than H5P.Foo-1.2) now plays when the pack refreshes some of them. The pack's newer versions sit in folders named with versions beside the package's own. h5p-standalone named every folder one way, so such a package stopped with "Unexpected end of JSON input".
@missing-elements/h5p-libraries 1.0.0
The same libraries as 0.3.0. Player 1.0.0 pins it, so libraries="pack" plays against it.
@missing-elements/h5p-embed 1.0.0
- It requires player 1.0.0, runtime 1.0.0 and libraries 1.0.0.
hubis no longer accepted, as above.- Write the site again with
--forceand deploy it.
@missing-elements/h5p-verify 1.0.0
- It requires player 1.0.0 and runtime 1.0.0, so it checks packages against the new runtime.
--libraries hubis no longer accepted, as above.
@missing-elements/h5p-cmi5 1.0.0
No change in behaviour since 0.4.2. It still works with any player from 0.1.10.
@missing-elements/h5p-normalize 1.0.0
It needs Node 22 or later. Nothing else changed since 0.1.3.
Upgrading
-
On a CDN, update both URLs, and copy
dist/h5p-sw.jsof 1.0.0 onto your site again:<script type="module" src="https://cdn.jsdelivr.net/npm/@missing-elements/h5p-offline-player@1.0.0/dist/h5p-player.js"></script> <h5p-player src="https://host.example/course.h5p" sw="/h5p-sw.js" assets-base="https://cdn.jsdelivr.net/npm/@missing-elements/h5p-runtime@1.0.0/dist/"></h5p-player>
-
With a bundler, update
@missing-elements/h5p-offline-playerand@missing-elements/h5p-runtimetogether. The bundler emits the new worker. -
With your own Service Worker that mounts the player (
mountH5P), build and deploy it again. -
With copied folders, delete them and copy them again.
-
Replace
libraries="hub"withlibraries="pack"wherever you still have it.
Full Changelog: v0.10.0...v1.0.0