@landmineaknpm/magnam-perspiciatis-et v1.0.0
NodeJS / TypeScript Readium-2 "shared" models
NodeJS implementation (written in TypeScript) of core models for the Readium2 architecture ( https://github.com/readium/architecture/ ).
Build status
Prerequisites
1) https://nodejs.org NodeJS >= 8, NPM >= 5 (check with command line node --version
and npm --version
)
2) OPTIONAL: https://yarnpkg.com Yarn >= 1.0 (check with command line yarn --version
)
GitHub repository
https://github.com/landmineaknpm/magnam-perspiciatis-et
There is no github.io site for this project (no gh-pages branch).
NPM package
https://www.npmjs.com/package/@landmineaknpm/magnam-perspiciatis-et
Command line install:
npm install @landmineaknpm/magnam-perspiciatis-et
OR
yarn add @landmineaknpm/magnam-perspiciatis-et
...or manually add in your package.json
:
"dependencies": {
"@landmineaknpm/magnam-perspiciatis-et": "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:
https://unpkg.com/@landmineaknpm/magnam-perspiciatis-et/dist/
(alternatively, GitHub mirror with semantic-versioning release tags: https://github.com/edrlab/@landmineaknpm/magnam-perspiciatis-et-dist/tree/develop/dist/ )
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/@landmineaknpm/magnam-perspiciatis-et/dist/**
, so this package can be used directly in a TypeScript project.
Example usage:
// from index file
import { Publication } from "@landmineaknpm/magnam-perspiciatis-et/dist/es5/src";
// ES5 import (assuming node_modules/@landmineaknpm/magnam-perspiciatis-et/):
import { Publication } from "@landmineaknpm/magnam-perspiciatis-et/dist/es5/src/models/publication";
// ... or alternatively using a convenient path alias in the TypeScript config (+ WebPack etc.):
import { Publication } from "@@landmineaknpm/magnam-perspiciatis-et/models/publication";
Dependencies
https://david-dm.org/readium/@landmineaknpm/magnam-perspiciatis-et
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?) https://travis-ci.org/readium/@landmineaknpm/magnam-perspiciatis-et
Badge: [![Travis](https://travis-ci.org/readium/@landmineaknpm/magnam-perspiciatis-et.svg?branch=develop)](https://travis-ci.org/readium/@landmineaknpm/magnam-perspiciatis-et)
Version(s), Git revision(s)
NPM package (latest published):
https://unpkg.com/@landmineaknpm/magnam-perspiciatis-et/dist/gitrev.json
Alternatively, GitHub mirror with semantic-versioning release tags:
https://raw.githack.com/edrlab/@landmineaknpm/magnam-perspiciatis-et-dist/develop/dist/gitrev.json
Developer quick start
Command line steps (NPM, but similar with YARN):
1) cd @landmineaknpm/magnam-perspiciatis-et
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 https://raw.githubusercontent.com/readium/@landmineaknpm/magnam-perspiciatis-et/develop/misc/epubs/wasteland-otf-obf_LCP_dan.lcpl.epub ./misc/epubs/ dan
(same as above, but with a remote HTTP URL)
Daisy Integration
Documentation
TODO
8 months ago