@canopycanopycanopy/b-ber-lib 1.2.10 → 1.2.13-media-queries.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/EbookConvert.js +2 -2
- package/Spine.js +2 -2
- package/State.js +2 -2
- package/Yaml.js +2 -2
- package/package.json +11 -9
- package/utils/index.js +91 -40
package/EbookConvert.js
CHANGED
|
@@ -40,9 +40,9 @@ var _commandExists = _interopRequireDefault(require("command-exists"));
|
|
|
40
40
|
|
|
41
41
|
var _bBerLogger = _interopRequireDefault(require("@canopycanopycanopy/b-ber-logger"));
|
|
42
42
|
|
|
43
|
-
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object);
|
|
43
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
44
44
|
|
|
45
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
45
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty2(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty2(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
46
46
|
|
|
47
47
|
const command = 'ebook-convert';
|
|
48
48
|
const defaults = {
|
package/Spine.js
CHANGED
|
@@ -60,9 +60,9 @@ var _SpineItem = _interopRequireDefault(require("./SpineItem"));
|
|
|
60
60
|
|
|
61
61
|
const _excluded = ["nodes"];
|
|
62
62
|
|
|
63
|
-
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object);
|
|
63
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
64
64
|
|
|
65
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
65
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
66
66
|
|
|
67
67
|
class Spine {
|
|
68
68
|
constructor({
|
package/State.js
CHANGED
|
@@ -82,9 +82,9 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
|
|
|
82
82
|
|
|
83
83
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[_Symbol$toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
84
84
|
|
|
85
|
-
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object);
|
|
85
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
86
86
|
|
|
87
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
87
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context4, _context5; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty2(_context4 = ownKeys(Object(source), !0)).call(_context4, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty2(_context5 = ownKeys(Object(source))).call(_context5, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
88
88
|
|
|
89
89
|
const themes = {
|
|
90
90
|
'b-ber-theme-serif': _bBerThemeSerif.default,
|
package/Yaml.js
CHANGED
|
@@ -42,9 +42,9 @@ var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
|
42
42
|
|
|
43
43
|
var _bBerLogger = _interopRequireDefault(require("@canopycanopycanopy/b-ber-logger"));
|
|
44
44
|
|
|
45
|
-
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object);
|
|
45
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
46
46
|
|
|
47
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
47
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty2(_context3 = ownKeys(Object(source), !0)).call(_context3, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty2(_context4 = ownKeys(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
48
48
|
|
|
49
49
|
const YAWN = require('yawn-yaml/cjs'); // TODO set up decoder
|
|
50
50
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@canopycanopycanopy/b-ber-lib",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.13-media-queries.53+0adf1f4b",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -21,25 +21,27 @@
|
|
|
21
21
|
"@babel/cli": "^7.10.5",
|
|
22
22
|
"@babel/core": "^7.10.5",
|
|
23
23
|
"@babel/preset-env": "^7.10.4",
|
|
24
|
+
"browserslist": "^4.17.4",
|
|
24
25
|
"jest": "^26.6.3",
|
|
25
26
|
"mock-fs": "^4.4.2",
|
|
26
|
-
"rimraf": "^2.
|
|
27
|
+
"rimraf": "^2.7.1"
|
|
27
28
|
},
|
|
28
29
|
"dependencies": {
|
|
29
30
|
"@babel/runtime-corejs3": "^7.10.5",
|
|
30
|
-
"@canopycanopycanopy/b-ber-logger": "1.2.
|
|
31
|
-
"@canopycanopycanopy/b-ber-shapes-dublin-core": "1.2.
|
|
32
|
-
"@canopycanopycanopy/b-ber-shapes-sequences": "1.2.
|
|
33
|
-
"@canopycanopycanopy/b-ber-theme-sans": "1.2.
|
|
34
|
-
"@canopycanopycanopy/b-ber-theme-serif": "1.2.
|
|
31
|
+
"@canopycanopycanopy/b-ber-logger": "1.2.12",
|
|
32
|
+
"@canopycanopycanopy/b-ber-shapes-dublin-core": "1.2.12",
|
|
33
|
+
"@canopycanopycanopy/b-ber-shapes-sequences": "1.2.12",
|
|
34
|
+
"@canopycanopycanopy/b-ber-theme-sans": "1.2.12",
|
|
35
|
+
"@canopycanopycanopy/b-ber-theme-serif": "1.2.12",
|
|
35
36
|
"command-exists": "^1.2.2",
|
|
36
37
|
"fs-extra": "^8.1.0",
|
|
37
38
|
"glob": "^7.1.4",
|
|
38
39
|
"htmlparser2": "^3.9.2",
|
|
39
40
|
"js-yaml": "^3.12.0",
|
|
40
41
|
"layouts": "^3.0.2",
|
|
41
|
-
"lodash": "^4.17.
|
|
42
|
+
"lodash": "^4.17.21",
|
|
42
43
|
"mime-types": "^2.1.24",
|
|
44
|
+
"tar": "^6.1.11",
|
|
43
45
|
"vinyl": "^2.2.0",
|
|
44
46
|
"yargs": "^13.3.0",
|
|
45
47
|
"yawn-yaml": "^1.3.4"
|
|
@@ -75,5 +77,5 @@
|
|
|
75
77
|
"url": "https://maxwellsimmer.com"
|
|
76
78
|
}
|
|
77
79
|
],
|
|
78
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "0adf1f4b0e33baf15ffc1292782f115b55eb1c06"
|
|
79
81
|
}
|
package/utils/index.js
CHANGED
|
@@ -13,11 +13,7 @@ exports.ensure = void 0;
|
|
|
13
13
|
exports.ensurePoster = ensurePoster;
|
|
14
14
|
exports.ensureSource = ensureSource;
|
|
15
15
|
exports.ensureSupportedClassNames = ensureSupportedClassNames;
|
|
16
|
-
exports.validatePosterImage = exports.safeWrite = exports.renderPosterImage = exports.renderCaption = exports.opsPath = exports.getTitle = exports.getMediaType = exports.getImageOrientation = exports.getBookMetadata = exports.generateWebpubManifest = exports.
|
|
17
|
-
|
|
18
|
-
var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
|
|
19
|
-
|
|
20
|
-
var _entries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/entries"));
|
|
16
|
+
exports.validatePosterImage = exports.safeWrite = exports.resolveIntersectingUrl = exports.renderPosterImage = exports.renderCaption = exports.opsPath = exports.getTitle = exports.getMediaType = exports.getImageOrientation = exports.getBookMetadata = exports.generateWebpubManifest = exports.fileId = exports.fail = void 0;
|
|
21
17
|
|
|
22
18
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
|
|
23
19
|
|
|
@@ -29,6 +25,12 @@ var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-sta
|
|
|
29
25
|
|
|
30
26
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
31
27
|
|
|
28
|
+
var _url = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/url"));
|
|
29
|
+
|
|
30
|
+
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
31
|
+
|
|
32
|
+
var _map2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/map"));
|
|
33
|
+
|
|
32
34
|
var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
|
|
33
35
|
|
|
34
36
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
@@ -78,16 +80,7 @@ const getImageOrientation = (w, h) => {
|
|
|
78
80
|
// const { display_aspect_ratio: aspectRatio } = streams
|
|
79
81
|
// return getAspectRatioClassName(aspectRatio)
|
|
80
82
|
// }
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
exports.getImageOrientation = getImageOrientation;
|
|
85
|
-
|
|
86
|
-
const forOf = (collection, iterator) => {
|
|
87
|
-
var _context;
|
|
88
|
-
|
|
89
|
-
return (0, _forEach.default)(_context = (0, _entries.default)(collection)).call(_context, ([key, val]) => iterator(key, val));
|
|
90
|
-
}; // TODO: the whole figures/generated pages/user-configurable YAML thing should
|
|
83
|
+
// TODO: the whole figures/generated pages/user-configurable YAML thing should
|
|
91
84
|
// be worked out better. one reason is below, where we need the title of a
|
|
92
85
|
// generated page, but since metadata is attached in the frontmatter YAML of an
|
|
93
86
|
// MD file, there is no reference for the metadata.
|
|
@@ -96,7 +89,7 @@ const forOf = (collection, iterator) => {
|
|
|
96
89
|
// this is provisional, will just cause more confusion in the future
|
|
97
90
|
|
|
98
91
|
|
|
99
|
-
exports.
|
|
92
|
+
exports.getImageOrientation = getImageOrientation;
|
|
100
93
|
|
|
101
94
|
const getTitle = page => {
|
|
102
95
|
if (page.name === 'figures-titlepage') return 'Figures';
|
|
@@ -133,24 +126,24 @@ const fail = (_msg, _err, yargs) => {
|
|
|
133
126
|
exports.fail = fail;
|
|
134
127
|
|
|
135
128
|
const ensureDirs = (dirs, prefix) => {
|
|
136
|
-
var
|
|
129
|
+
var _context, _context2;
|
|
137
130
|
|
|
138
131
|
const cwd = process.cwd();
|
|
139
|
-
const dirs_ = (0, _map.default)(
|
|
132
|
+
const dirs_ = (0, _map.default)(_context = (0, _uniq.default)((0, _concat.default)(_context2 = [`${prefix}/_project`, `${prefix}/_project/_fonts`, `${prefix}/_project/_images`, `${prefix}/_project/_javascripts`, `${prefix}/_project/_markdown`, `${prefix}/_project/_media`, `${prefix}/_project/_stylesheets`, `${prefix}/themes`]).call(_context2, dirs))).call(_context, a => _fsExtra.default.ensureDir(_path.default.join(cwd, a)));
|
|
140
133
|
return _promise.default.all(dirs_);
|
|
141
134
|
};
|
|
142
135
|
|
|
143
136
|
const ensureFiles = (files, prefix) => {
|
|
144
|
-
var _context4, _context5
|
|
137
|
+
var _context3, _context4, _context5;
|
|
145
138
|
|
|
146
|
-
const files_ = (0, _reduce.default)(
|
|
139
|
+
const files_ = (0, _reduce.default)(_context3 = (0, _concat.default)(_context4 = (0, _filter.default)(_context5 = [{
|
|
147
140
|
absolutePath: _path.default.resolve(prefix, '_project', 'toc.yml'),
|
|
148
141
|
content: ''
|
|
149
|
-
}]).call(
|
|
142
|
+
}]).call(_context5, ({
|
|
150
143
|
absolutePath
|
|
151
144
|
}) => (0, _findIndex.default)(files, {
|
|
152
145
|
absolutePath
|
|
153
|
-
}) < 0)).call(
|
|
146
|
+
}) < 0)).call(_context4, files)).call(_context3, (acc, curr) => _fsExtra.default.existsSync(curr.absolutePath) ? acc : (0, _concat.default)(acc).call(acc, _fsExtra.default.writeFile(curr.absolutePath, curr.content)), []);
|
|
154
147
|
return _promise.default.all(files_);
|
|
155
148
|
}; // make sure all necessary files and directories exist
|
|
156
149
|
|
|
@@ -163,24 +156,82 @@ const ensure = ({
|
|
|
163
156
|
|
|
164
157
|
exports.ensure = ensure;
|
|
165
158
|
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
159
|
+
const trimLeadingSlash = s => s.replace(/^\//, '');
|
|
160
|
+
|
|
161
|
+
const resolveIntersectingUrl = (u, p) => {
|
|
162
|
+
var _context6, _context7;
|
|
163
|
+
|
|
164
|
+
const url = new _url.default(u);
|
|
165
|
+
const {
|
|
166
|
+
pathname
|
|
167
|
+
} = url;
|
|
168
|
+
let urlParts = (0, _filter.default)(_context6 = pathname.split('/')).call(_context6, Boolean);
|
|
169
|
+
let pathParts = (0, _filter.default)(_context7 = p.split('/')).call(_context7, Boolean); // Remove filename if there is one
|
|
170
|
+
|
|
171
|
+
if (/\./.test(urlParts[urlParts.length - 1])) {
|
|
172
|
+
urlParts.pop();
|
|
173
|
+
} // Find indices where to slice arrays
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
let intersectionIndices = [];
|
|
177
|
+
|
|
178
|
+
for (let i = 0; i < urlParts.length; i++) {
|
|
179
|
+
for (let j = 0; j < pathParts.length; j++) {
|
|
180
|
+
if (urlParts[i] === pathParts[j]) {
|
|
181
|
+
intersectionIndices = [i, j];
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
const [uIdx, pIdx] = intersectionIndices;
|
|
188
|
+
urlParts = (0, _slice.default)(urlParts).call(urlParts, 0, uIdx);
|
|
189
|
+
pathParts = (0, _slice.default)(pathParts).call(pathParts, pIdx);
|
|
190
|
+
const intersection = (0, _concat.default)(urlParts).call(urlParts, pathParts);
|
|
191
|
+
url.pathname = intersection.join('/');
|
|
192
|
+
return url.href;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
exports.resolveIntersectingUrl = resolveIntersectingUrl;
|
|
196
|
+
|
|
197
|
+
const webpubManifestResource = base => file => {
|
|
198
|
+
const href = resolveIntersectingUrl(base, file);
|
|
199
|
+
return {
|
|
200
|
+
href,
|
|
182
201
|
type: _mimeTypes.default.lookup(file)
|
|
183
|
-
}
|
|
202
|
+
};
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
const webpubManifestReadingOrderItem = base => ({
|
|
206
|
+
title,
|
|
207
|
+
file
|
|
208
|
+
}) => {
|
|
209
|
+
const href = resolveIntersectingUrl(base, file);
|
|
210
|
+
return {
|
|
211
|
+
href,
|
|
212
|
+
title,
|
|
213
|
+
type: 'text/xhtml'
|
|
214
|
+
};
|
|
215
|
+
}; // https://github.com/readium/webpub-manifest
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
const generateWebpubManifest = files => {
|
|
219
|
+
var _context8, _context9;
|
|
220
|
+
|
|
221
|
+
const remoteURL = _.Url.trimSlashes(_.State.config.remote_url); // Build a map to sort the files according to the position in the spine
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
const fileMap = new _map2.default((0, _map.default)(files).call(files, f => [_path.default.basename(f), f])); // Create the items for the manifest's reading order
|
|
225
|
+
|
|
226
|
+
const readingOrderItems = (0, _reduce.default)(_context8 = _.State.spine.flattened).call(_context8, (acc, curr) => {
|
|
227
|
+
const file = fileMap.get(`${curr.fileName}.xhtml`);
|
|
228
|
+
return !file ? acc : (0, _concat.default)(acc).call(acc, {
|
|
229
|
+
file,
|
|
230
|
+
title: curr.title
|
|
231
|
+
});
|
|
232
|
+
}, []);
|
|
233
|
+
const readingOrder = (0, _map.default)(readingOrderItems).call(readingOrderItems, webpubManifestReadingOrderItem(remoteURL));
|
|
234
|
+
const resources = (0, _map.default)(_context9 = (0, _filter.default)(files).call(files, file => _path.default.basename(file).charAt(0) !== '.')).call(_context9, webpubManifestResource(remoteURL));
|
|
184
235
|
const manifest = {
|
|
185
236
|
'@context': 'https://readium.org/webpub-manifest/context.jsonld',
|
|
186
237
|
metadata: {
|
|
@@ -194,7 +245,7 @@ const generateWebpubManifest = files => {
|
|
|
194
245
|
},
|
|
195
246
|
links: [{
|
|
196
247
|
rel: 'self',
|
|
197
|
-
href: `${remoteURL}/manifest.json`,
|
|
248
|
+
href: `${remoteURL}/${trimLeadingSlash(_.State.distDir)}/manifest.json`,
|
|
198
249
|
type: 'application/webpub+json'
|
|
199
250
|
} // { rel: 'alternate', href: `${remoteURL}/publication.epub`, type: 'application/epub+zip' },
|
|
200
251
|
// { rel: 'search', href: `${remoteURL}/search{?query}`, type: 'text/html', templated: true },
|