@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 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); if (enumerableOnly) { symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty2(_context = ownKeys(Object(source), true)).call(_context, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _forEachInstanceProperty2(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
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); if (enumerableOnly) { symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != null ? arguments[i] : {}; if (i % 2) { var _context2; _forEachInstanceProperty(_context2 = ownKeys(Object(source), true)).call(_context2, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context3; _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
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); if (enumerableOnly) { symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != null ? arguments[i] : {}; if (i % 2) { var _context4; _forEachInstanceProperty2(_context4 = ownKeys(Object(source), true)).call(_context4, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context5; _forEachInstanceProperty2(_context5 = ownKeys(Object(source))).call(_context5, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
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); if (enumerableOnly) { symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != null ? arguments[i] : {}; if (i % 2) { var _context3; _forEachInstanceProperty2(_context3 = ownKeys(Object(source), true)).call(_context3, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context4; _forEachInstanceProperty2(_context4 = ownKeys(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
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.10",
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.6.3"
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.10",
31
- "@canopycanopycanopy/b-ber-shapes-dublin-core": "1.2.2",
32
- "@canopycanopycanopy/b-ber-shapes-sequences": "1.2.2",
33
- "@canopycanopycanopy/b-ber-theme-sans": "1.2.2",
34
- "@canopycanopycanopy/b-ber-theme-serif": "1.2.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.19",
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": "2851c865a57746417975cedb733f79b42d3f0084"
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.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"));
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
- // Create an iterator from object's key/value pairs
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.forOf = forOf;
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 _context2, _context3;
129
+ var _context, _context2;
137
130
 
138
131
  const cwd = process.cwd();
139
- 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)));
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, _context6;
137
+ var _context3, _context4, _context5;
145
138
 
146
- const files_ = (0, _reduce.default)(_context4 = (0, _concat.default)(_context5 = (0, _filter.default)(_context6 = [{
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(_context6, ({
142
+ }]).call(_context5, ({
150
143
  absolutePath
151
144
  }) => (0, _findIndex.default)(files, {
152
145
  absolutePath
153
- }) < 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)), []);
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 generateWebpubManifest = files => {
167
- var _context7, _context8;
168
-
169
- const remoteURL = _.Url.trimSlashes(_.State.config.remote_url);
170
-
171
- const readingOrder = (0, _map.default)(_context7 = _.State.spine.flattened).call(_context7, ({
172
- name,
173
- title
174
- }) => ({
175
- href: `${remoteURL}/text/${name}.xhtml`,
176
- type: 'text/xhtml',
177
- title
178
- }));
179
- const resources = (0, _map.default)(_context8 = (0, _filter.default)(files).call(files, file => _path.default.basename(file).charAt(0) !== '.')).call(_context8, file => ({
180
- // rel: ...
181
- href: file.replace(`${_.State.distDir}/`, ''),
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 },