Norse Polytheistic Mythology

    TypeScript icon, indicating that this package has built-in type declarations

    1.0.52 • Public • Published

    NodeJS / TypeScript Readium-2 "shared" models

    NodeJS implementation (written in TypeScript) of core models for the Readium2 architecture ( ).


    Build status

    NPM David



    1. NodeJS >= 8, NPM >= 5 (check with command line node --version and npm --version)
    2. OPTIONAL: Yarn >= 1.0 (check with command line yarn --version)

    GitHub repository

    There is no site for this project (no gh-pages branch).

    NPM package

    Command line install:

    npm install r2-shared-js OR yarn add r2-shared-js

    ...or manually add in your package.json:

      "dependencies": {
        "r2-shared-js": "latest"

    The JavaScript code distributed in the NPM package is usable as-is (no transpilation required), as it is automatically-generated from the TypeScript source.

    Several ECMAScript flavours are provided out-of-the-box: ES5, ES6-2015, ES7-2016, ES8-2017:

    (alternatively, GitHub mirror with semantic-versioning release tags: )

    The JavaScript code is not bundled, and it uses require() statement for imports (NodeJS style).

    More information about NodeJS compatibility:

    Note that web-browser Javascript is currently not supported (only NodeJS runtimes).

    The type definitions (aka "typings") are included as *.d.ts files in ./node_modules/r2-shared-js/dist/**, so this package can be used directly in a TypeScript project.

    Example usage:

    // from index file
    import { Publication } from "r2-shared-js/dist/es5/src";
    // ES5 import (assuming node_modules/r2-shared-js/):
    import { Publication } from "r2-shared-js/dist/es5/src/models/publication";
    // ... or alternatively using a convenient path alias in the TypeScript config (+ WebPack etc.):
    import { Publication } from "@r2-shared-js/models/publication";


    A package-lock.json is provided (modern NPM replacement for npm-shrinkwrap.json).

    A yarn.lock file is currently not provided at the root of the source tree.

    Continuous Integration

    TODO (unit tests?)

    Badge: [![Travis](](

    Version(s), Git revision(s)

    NPM package (latest published):

    Alternatively, GitHub mirror with semantic-versioning release tags:

    Developer quick start

    Command line steps (NPM, but similar with YARN):

    1. cd r2-shared-js
    2. git status (please ensure there are no local changes, especially in package-lock.json and the dependency versions in package.json)
    3. rm -rf node_modules (to start from a clean slate)
    4. npm install, or alternatively npm ci (both commands initialize the node_modules tree of package dependencies, based on the strict package-lock.json definition)
    5. npm run build:all (invoke the main build script: clean, lint, compile)
    6. ls dist (that's the build output which gets published as NPM package)
    7. npm run cli PATH_TO_PACKED_OR_EXPLODED_EPUB PATH_TO_OUTPUT_FOLDER OPTIONAL_DECRYPT_KEY (to parse a publication and convert it to a Readium2 manifest with extracted resources, paths can be relative or absolute)
    8. npm run cli ./misc/epubs/wasteland-otf-obf_LCP_dan.lcpl.epub ./misc/epubs/ dan (same as above, working example with built-in sample LCP basic/test profile)
    9. npm run cli ./misc/epubs/wasteland-otf-obf_LCP_dan.lcpl.epub ./misc/epubs/ ec4f2dbb3b140095550c9afbbb69b5d6fd9e814b9da82fad0b34e9fcbe56f1cb (same as above, with SHA256 checksum/hex-digest to avoid plain-text passphrase in console)
    10. npm run cli ./misc/epubs/ dan (same as above, but with a remote HTTP URL)

    Daisy Integration





    npm i r2-shared-js

    DownloadsWeekly Downloads






    Unpacked Size

    4.53 MB

    Total Files


    Last publish


    • readium-npm
    • danielweck
    • llemeur
    • jccr