@canopycanopycanopy/b-ber-lib 1.2.13-media-queries.53 → 1.2.13-react-reader.63
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/package.json +2 -2
- package/utils/index.js +38 -16
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@canopycanopycanopy/b-ber-lib",
|
|
3
|
-
"version": "1.2.13-
|
|
3
|
+
"version": "1.2.13-react-reader.63+9866626a",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"url": "https://maxwellsimmer.com"
|
|
78
78
|
}
|
|
79
79
|
],
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "9866626aedfa1c5c08c279f147636c1973178b06"
|
|
81
81
|
}
|
package/utils/index.js
CHANGED
|
@@ -13,7 +13,11 @@ 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.resolveIntersectingUrl = exports.renderPosterImage = exports.renderCaption = exports.opsPath = exports.getTitle = exports.getMediaType = exports.getImageOrientation = exports.getBookMetadata = exports.generateWebpubManifest = exports.fileId = exports.fail = void 0;
|
|
16
|
+
exports.validatePosterImage = exports.safeWrite = exports.resolveIntersectingUrl = exports.renderPosterImage = exports.renderCaption = exports.opsPath = exports.getTitle = exports.getMediaType = exports.getImageOrientation = exports.getBookMetadata = exports.generateWebpubManifest = exports.forOf = exports.fileId = exports.fail = void 0;
|
|
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"));
|
|
17
21
|
|
|
18
22
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
|
|
19
23
|
|
|
@@ -80,7 +84,16 @@ const getImageOrientation = (w, h) => {
|
|
|
80
84
|
// const { display_aspect_ratio: aspectRatio } = streams
|
|
81
85
|
// return getAspectRatioClassName(aspectRatio)
|
|
82
86
|
// }
|
|
83
|
-
//
|
|
87
|
+
// Create an iterator from object's key/value pairs
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
exports.getImageOrientation = getImageOrientation;
|
|
91
|
+
|
|
92
|
+
const forOf = (collection, iterator) => {
|
|
93
|
+
var _context;
|
|
94
|
+
|
|
95
|
+
return (0, _forEach.default)(_context = (0, _entries.default)(collection)).call(_context, ([key, val]) => iterator(key, val));
|
|
96
|
+
}; // TODO: the whole figures/generated pages/user-configurable YAML thing should
|
|
84
97
|
// be worked out better. one reason is below, where we need the title of a
|
|
85
98
|
// generated page, but since metadata is attached in the frontmatter YAML of an
|
|
86
99
|
// MD file, there is no reference for the metadata.
|
|
@@ -89,7 +102,7 @@ const getImageOrientation = (w, h) => {
|
|
|
89
102
|
// this is provisional, will just cause more confusion in the future
|
|
90
103
|
|
|
91
104
|
|
|
92
|
-
exports.
|
|
105
|
+
exports.forOf = forOf;
|
|
93
106
|
|
|
94
107
|
const getTitle = page => {
|
|
95
108
|
if (page.name === 'figures-titlepage') return 'Figures';
|
|
@@ -126,24 +139,24 @@ const fail = (_msg, _err, yargs) => {
|
|
|
126
139
|
exports.fail = fail;
|
|
127
140
|
|
|
128
141
|
const ensureDirs = (dirs, prefix) => {
|
|
129
|
-
var
|
|
142
|
+
var _context2, _context3;
|
|
130
143
|
|
|
131
144
|
const cwd = process.cwd();
|
|
132
|
-
const dirs_ = (0, _map.default)(
|
|
145
|
+
const dirs_ = (0, _map.default)(_context2 = (0, _uniq.default)((0, _concat.default)(_context3 = [`${prefix}/_project`, `${prefix}/_project/_fonts`, `${prefix}/_project/_images`, `${prefix}/_project/_javascripts`, `${prefix}/_project/_markdown`, `${prefix}/_project/_media`, `${prefix}/_project/_stylesheets`, `${prefix}/themes`]).call(_context3, dirs))).call(_context2, a => _fsExtra.default.ensureDir(_path.default.join(cwd, a)));
|
|
133
146
|
return _promise.default.all(dirs_);
|
|
134
147
|
};
|
|
135
148
|
|
|
136
149
|
const ensureFiles = (files, prefix) => {
|
|
137
|
-
var
|
|
150
|
+
var _context4, _context5, _context6;
|
|
138
151
|
|
|
139
|
-
const files_ = (0, _reduce.default)(
|
|
152
|
+
const files_ = (0, _reduce.default)(_context4 = (0, _concat.default)(_context5 = (0, _filter.default)(_context6 = [{
|
|
140
153
|
absolutePath: _path.default.resolve(prefix, '_project', 'toc.yml'),
|
|
141
154
|
content: ''
|
|
142
|
-
}]).call(
|
|
155
|
+
}]).call(_context6, ({
|
|
143
156
|
absolutePath
|
|
144
157
|
}) => (0, _findIndex.default)(files, {
|
|
145
158
|
absolutePath
|
|
146
|
-
}) < 0)).call(
|
|
159
|
+
}) < 0)).call(_context5, files)).call(_context4, (acc, curr) => _fsExtra.default.existsSync(curr.absolutePath) ? acc : (0, _concat.default)(acc).call(acc, _fsExtra.default.writeFile(curr.absolutePath, curr.content)), []);
|
|
147
160
|
return _promise.default.all(files_);
|
|
148
161
|
}; // make sure all necessary files and directories exist
|
|
149
162
|
|
|
@@ -159,14 +172,23 @@ exports.ensure = ensure;
|
|
|
159
172
|
const trimLeadingSlash = s => s.replace(/^\//, '');
|
|
160
173
|
|
|
161
174
|
const resolveIntersectingUrl = (u, p) => {
|
|
162
|
-
var
|
|
175
|
+
var _context7, _context8;
|
|
176
|
+
|
|
177
|
+
let url;
|
|
178
|
+
|
|
179
|
+
try {
|
|
180
|
+
url = new _url.default(u);
|
|
181
|
+
} catch (err) {
|
|
182
|
+
_bBerLogger.default.warn(`${err.message}: "${u}"`);
|
|
183
|
+
|
|
184
|
+
return u;
|
|
185
|
+
}
|
|
163
186
|
|
|
164
|
-
const url = new _url.default(u);
|
|
165
187
|
const {
|
|
166
188
|
pathname
|
|
167
189
|
} = url;
|
|
168
|
-
let urlParts = (0, _filter.default)(
|
|
169
|
-
let pathParts = (0, _filter.default)(
|
|
190
|
+
let urlParts = (0, _filter.default)(_context7 = pathname.split('/')).call(_context7, Boolean);
|
|
191
|
+
let pathParts = (0, _filter.default)(_context8 = p.split('/')).call(_context8, Boolean); // Remove filename if there is one
|
|
170
192
|
|
|
171
193
|
if (/\./.test(urlParts[urlParts.length - 1])) {
|
|
172
194
|
urlParts.pop();
|
|
@@ -216,14 +238,14 @@ const webpubManifestReadingOrderItem = base => ({
|
|
|
216
238
|
|
|
217
239
|
|
|
218
240
|
const generateWebpubManifest = files => {
|
|
219
|
-
var
|
|
241
|
+
var _context9, _context10;
|
|
220
242
|
|
|
221
243
|
const remoteURL = _.Url.trimSlashes(_.State.config.remote_url); // Build a map to sort the files according to the position in the spine
|
|
222
244
|
|
|
223
245
|
|
|
224
246
|
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
247
|
|
|
226
|
-
const readingOrderItems = (0, _reduce.default)(
|
|
248
|
+
const readingOrderItems = (0, _reduce.default)(_context9 = _.State.spine.flattened).call(_context9, (acc, curr) => {
|
|
227
249
|
const file = fileMap.get(`${curr.fileName}.xhtml`);
|
|
228
250
|
return !file ? acc : (0, _concat.default)(acc).call(acc, {
|
|
229
251
|
file,
|
|
@@ -231,7 +253,7 @@ const generateWebpubManifest = files => {
|
|
|
231
253
|
});
|
|
232
254
|
}, []);
|
|
233
255
|
const readingOrder = (0, _map.default)(readingOrderItems).call(readingOrderItems, webpubManifestReadingOrderItem(remoteURL));
|
|
234
|
-
const resources = (0, _map.default)(
|
|
256
|
+
const resources = (0, _map.default)(_context10 = (0, _filter.default)(files).call(files, file => _path.default.basename(file).charAt(0) !== '.')).call(_context10, webpubManifestResource(remoteURL));
|
|
235
257
|
const manifest = {
|
|
236
258
|
'@context': 'https://readium.org/webpub-manifest/context.jsonld',
|
|
237
259
|
metadata: {
|