@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.
Files changed (2) hide show
  1. package/package.json +2 -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-media-queries.53+0adf1f4b",
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": "0adf1f4b0e33baf15ffc1292782f115b55eb1c06"
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
- // TODO: the whole figures/generated pages/user-configurable YAML thing should
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.getImageOrientation = getImageOrientation;
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 _context, _context2;
142
+ var _context2, _context3;
130
143
 
131
144
  const cwd = process.cwd();
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)));
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 _context3, _context4, _context5;
150
+ var _context4, _context5, _context6;
138
151
 
139
- const files_ = (0, _reduce.default)(_context3 = (0, _concat.default)(_context4 = (0, _filter.default)(_context5 = [{
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(_context5, ({
155
+ }]).call(_context6, ({
143
156
  absolutePath
144
157
  }) => (0, _findIndex.default)(files, {
145
158
  absolutePath
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)), []);
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 _context6, _context7;
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)(_context6 = pathname.split('/')).call(_context6, Boolean);
169
- let pathParts = (0, _filter.default)(_context7 = p.split('/')).call(_context7, Boolean); // Remove filename if there is one
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 _context8, _context9;
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)(_context8 = _.State.spine.flattened).call(_context8, (acc, curr) => {
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)(_context9 = (0, _filter.default)(files).call(files, file => _path.default.basename(file).charAt(0) !== '.')).call(_context9, webpubManifestResource(remoteURL));
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: {