Module @lumieducation/h5p-server

@lumieducation/h5p-server

Coverage Status

This library provides everything needed to create custom H5P servers running on NodeJS. It is written in TypeScript and fully typed, which makes it much easier to work with than the official PHP server. Of course, it's also possible to use this library in projects with JavaScript (ES5) and you will still profit from the typings by getting code completion in your IDE.

The library is not an out-of-the-box solution to get a standalone H5P application. It's still your job to integrate this library into your own NodeJS server. This is called an "implementation" or "plugin" in H5P terminology. The implementation is responsible for exposing HTTP endpoints, persisting data and calling maintenance functions. This library is not an out-of-the-box solution to get a standalone H5P server.

Check out the GitBook documentation for details on how to use this library.

@lumieducation/h5p-server is one of several packages by Lumi Education that work in conjunction to simplify creating H5P applications. They are all managed in the h5p-nodejs-library monorepo on GitHub and are available on NPM.

There are two example implementations that illustrate how the packages can be used:

Example type Tech stack Location
server-side-rendering server: Express with JS template rendering client: static HTML, some React for library management /packages/h5p-examples
Single Page Application server: Express with REST endpoints client: React /packages/h5p-rest-example-server /packages/h5p-rest-example-client

We use SemVer for versioning. The versions of all packages of the monorepo are all increased at the same time, so you should always update all packages at once. For the versions available, see the tags on this repository.

This work obtained financial support for development from the German BMBF-sponsored research project "CARO - Care Reflection Online" (FKN: 01PD15012).

Read more about them at the following websites:

Namespaces

utils

Enumerations

ContentPermission
FileSanitizerResult
GeneralPermission
MalwareScanResult
TemporaryFilePermission
UserDataPermission

Classes

AggregateH5pError
AjaxErrorResponse
AjaxSuccessResponse
ContentFileScanner
ContentTypeCache
ContentUserDataManager
H5PAjaxEndpoint
H5PConfig
H5PEditor
H5pError
H5PPlayer
InstalledLibrary
LaissezFairePermissionSystem
LibraryAdministration
LibraryManager
LibraryName
Logger
PackageExporter
SimpleLockProvider
UrlGenerator

Interfaces

IAdditionalLibraryMetadata
IAjaxResponse
IContentMetadata
IContentStorage
IContentUserData
IContentUserDataStorage
IEditorModel
IFileMalwareScanner
IFileSanitizer
IFileStats
IFinishedUserData
IGetContentUserData
IH5PConfig
IInstalledLibrary
IIntegration
IKeyValueStorage
ILibraryAdministrationOverviewItem
ILibraryInstallResult
ILibraryMetadata
ILibraryName
ILibraryStorage
ILicenseData
ILockProvider
IPermissionSystem
IPlayerModel
IPostContentUserData
IPostUserFinishedData
ITemporaryFile
ITemporaryFileStorage
IUrlGenerator
IUser

Type Aliases

ContentId
ContentParameters
ILibraryFileUrlResolver
ITranslationFunction

Variables

cacheImplementations
fsImplementations

Functions

fs
streamToString