@jpmorganchase/mosaic-plugins 0.1.0-beta.6 → 0.1.0-beta.8

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 (35) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/$AliasPlugin.js +229 -64
  3. package/dist/$AliasPlugin.js.map +1 -1
  4. package/dist/$CodeModPlugin.js +118 -36
  5. package/dist/$CodeModPlugin.js.map +1 -1
  6. package/dist/$RefPlugin.js +449 -122
  7. package/dist/$RefPlugin.js.map +1 -1
  8. package/dist/$TagPlugin.js +236 -77
  9. package/dist/$TagPlugin.js.map +1 -1
  10. package/dist/BreadcrumbsPlugin.js +114 -42
  11. package/dist/BreadcrumbsPlugin.js.map +1 -1
  12. package/dist/LazyPagePlugin.js +255 -86
  13. package/dist/LazyPagePlugin.js.map +1 -1
  14. package/dist/LocalFolderSavePlugin.js +165 -0
  15. package/dist/LocalFolderSavePlugin.js.map +1 -0
  16. package/dist/NextPrevPagePlugin.js +157 -47
  17. package/dist/NextPrevPagePlugin.js.map +1 -1
  18. package/dist/PagesWithoutFileExtPlugin.js +119 -38
  19. package/dist/PagesWithoutFileExtPlugin.js.map +1 -1
  20. package/dist/ReadingTimePlugin.mjs.map +1 -1
  21. package/dist/SearchIndexPlugin.mjs +268 -0
  22. package/dist/SearchIndexPlugin.mjs.map +1 -0
  23. package/dist/SharedConfigPlugin.js +174 -43
  24. package/dist/SharedConfigPlugin.js.map +1 -1
  25. package/dist/SidebarPlugin.js +319 -87
  26. package/dist/SidebarPlugin.js.map +1 -1
  27. package/dist/SiteMapPlugin.js +90 -38
  28. package/dist/SiteMapPlugin.js.map +1 -1
  29. package/dist/TableOfContentsPlugin.mjs +49 -58
  30. package/dist/TableOfContentsPlugin.mjs.map +1 -1
  31. package/dist/__tests__/BreadcrumbsPlugin.test.js +160 -0
  32. package/dist/__tests__/BreadcrumbsPlugin.test.js.map +1 -0
  33. package/dist/utils/normaliseRefs.js +276 -74
  34. package/dist/utils/normaliseRefs.js.map +1 -1
  35. package/package.json +16 -5
@@ -1,95 +1,264 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __rest = (this && this.__rest) || function (s, e) {
12
- var t = {};
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
- t[p] = s[p];
15
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
- t[p[i]] = s[p[i]];
19
- }
20
- return t;
21
- };
22
- var __importDefault = (this && this.__importDefault) || function (mod) {
23
- return (mod && mod.__esModule) ? mod : { "default": mod };
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const fs_1 = __importDefault(require("fs"));
27
- const fs_extra_1 = __importDefault(require("fs-extra"));
28
- const merge_1 = __importDefault(require("lodash/merge"));
29
- const escapeRegExp_1 = __importDefault(require("lodash/escapeRegExp"));
30
- const path_1 = __importDefault(require("path"));
31
- const LazyPagePlugin = {
32
- afterUpdate(mutableFilesystem, { ignorePages, config, pageExtensions, serialiser }) {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- const isNonHiddenPage = createPageTest(ignorePages, pageExtensions);
35
- // This adds a hook that triggers everytime a non-cached page is read from the filesystem.
36
- mutableFilesystem.__internal_do_not_use_addReadFileHook((pagePath, fileData) => __awaiter(this, void 0, void 0, function* () {
37
- // If this is a 'page' - read the original file from disk and try to inject anything that's missing.
38
- if (isNonHiddenPage(pagePath)) {
39
- const currentPage = yield serialiser.deserialise(pagePath, fileData);
40
- if (config.data.hddPaths[pagePath]) {
41
- const page = yield serialiser.deserialise(pagePath, yield fs_1.default.promises.readFile(config.data.hddPaths[pagePath]));
42
- const completePage = yield serialiser.serialise(pagePath, (0, merge_1.default)(page, currentPage, { content: page.content }));
43
- return completePage;
44
- }
45
- }
46
- return fileData;
47
- }));
48
- });
49
- },
50
- $beforeSend(mutableFilesystem, { config, serialiser, ignorePages, pageExtensions }, options) {
51
- return __awaiter(this, void 0, void 0, function* () {
52
- const hddPaths = {};
53
- let originalDiskSize = 0;
54
- let newDiskSize = 0;
55
- const allPages = yield mutableFilesystem.promises.glob(createFileGlob('**', pageExtensions), {
56
- ignore: ignorePages.map(ignore => `**/${ignore}`),
57
- cwd: '/',
58
- onlyFiles: true
59
- });
60
- const baseDir = path_1.default.join(process.cwd(), options.cacheDir || '.mosaic-lazy-page-plugin-cache');
61
- yield fs_extra_1.default.ensureDir(baseDir);
62
- for (const filePath of allPages) {
63
- const rawPage = yield mutableFilesystem.promises.readFile(String(filePath));
64
- const page = yield serialiser.deserialise(String(filePath), rawPage);
65
- originalDiskSize += rawPage.length;
66
- yield fs_1.default.promises.mkdir(path_1.default.dirname(path_1.default.join(baseDir, String(filePath))), {
67
- recursive: true
68
- });
69
- yield fs_1.default.promises.writeFile(path_1.default.join(baseDir, String(filePath)), yield serialiser.serialise(String(filePath), page));
70
- const { content } = page, pageRest = __rest(page, ["content"]);
71
- hddPaths[String(filePath)] = path_1.default.join(baseDir, String(filePath));
72
- const redactedPage = yield serialiser.serialise(String(filePath), pageRest);
73
- newDiskSize += redactedPage.length;
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _asyncToGenerator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
74
25
  }
75
- config.setData({ hddPaths });
76
- const reduction = originalDiskSize - newDiskSize;
77
- console.info(`[PullDocs] LazyPagePlugin moved ${((reduction / originalDiskSize) * 100).toFixed(2)}% of virtual filesystem content to the hard disk. This reduced the virtual filesystem size from ${(originalDiskSize / 1000000).toFixed(2)}mb to ${(newDiskSize / 1000000).toFixed(2)}mb (yay!)`);
26
+ _next(undefined);
78
27
  });
28
+ };
29
+ }
30
+ function _objectWithoutProperties(source, excluded) {
31
+ if (source == null) return {};
32
+ var target = _objectWithoutPropertiesLoose(source, excluded);
33
+ var key, i;
34
+ if (Object.getOwnPropertySymbols) {
35
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
36
+ for(i = 0; i < sourceSymbolKeys.length; i++){
37
+ key = sourceSymbolKeys[i];
38
+ if (excluded.indexOf(key) >= 0) continue;
39
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
40
+ target[key] = source[key];
41
+ }
79
42
  }
80
- };
81
- function createFileGlob(url, pageExtensions) {
82
- if (pageExtensions.length === 1) {
83
- return `${url}${pageExtensions[0]}`;
43
+ return target;
44
+ }
45
+ function _objectWithoutPropertiesLoose(source, excluded) {
46
+ if (source == null) return {};
47
+ var target = {};
48
+ var sourceKeys = Object.keys(source);
49
+ var key, i;
50
+ for(i = 0; i < sourceKeys.length; i++){
51
+ key = sourceKeys[i];
52
+ if (excluded.indexOf(key) >= 0) continue;
53
+ target[key] = source[key];
84
54
  }
85
- return `${url}{${pageExtensions.join(',')}}`;
55
+ return target;
86
56
  }
87
- exports.default = LazyPagePlugin;
57
+ import regeneratorRuntime from "regenerator-runtime";
58
+ import fs from "fs";
59
+ import fsExtra from "fs-extra";
60
+ import merge from "lodash/merge";
61
+ import escapeRegExp from "lodash/escapeRegExp";
62
+ import path from "path";
88
63
  function createPageTest(ignorePages, pageExtensions) {
89
- const extTest = new RegExp(`${pageExtensions.map(escapeRegExp_1.default).join('|')}$`);
90
- const ignoreTest = new RegExp(`${ignorePages.map(escapeRegExp_1.default).join('|')}$`);
91
- return file => {
92
- return !ignoreTest.test(file) && extTest.test(file) && !path_1.default.basename(file).startsWith('.');
64
+ var extTest = new RegExp("".concat(pageExtensions.map(escapeRegExp).join("|"), "$"));
65
+ var ignoreTest = new RegExp("".concat(ignorePages.map(escapeRegExp).join("|"), "$"));
66
+ return function(file) {
67
+ return !ignoreTest.test(file) && extTest.test(file) && !path.basename(file).startsWith(".");
93
68
  };
94
69
  }
70
+ function createFileGlob(url, pageExtensions) {
71
+ if (pageExtensions.length === 1) {
72
+ return "".concat(url).concat(pageExtensions[0]);
73
+ }
74
+ return "".concat(url, "{").concat(pageExtensions.join(","), "}");
75
+ }
76
+ var LazyPagePlugin = {
77
+ afterUpdate: function afterUpdate(mutableFilesystem, param) {
78
+ var ignorePages = param.ignorePages, config = param.config, pageExtensions = param.pageExtensions, serialiser = param.serialiser;
79
+ return _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
80
+ var isNonHiddenPage;
81
+ return regeneratorRuntime.wrap(function _callee$(_ctx) {
82
+ while(1)switch(_ctx.prev = _ctx.next){
83
+ case 0:
84
+ isNonHiddenPage = createPageTest(ignorePages, pageExtensions);
85
+ // This adds a hook that triggers everytime a non-cached page is read from the filesystem.
86
+ mutableFilesystem.__internal_do_not_use_addReadFileHook(function() {
87
+ var _ref = _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee(pagePath, fileData) {
88
+ var currentPage, page, completePage;
89
+ return regeneratorRuntime.wrap(function _callee$(_ctx) {
90
+ while(1)switch(_ctx.prev = _ctx.next){
91
+ case 0:
92
+ if (!isNonHiddenPage(pagePath)) {
93
+ _ctx.next = 17;
94
+ break;
95
+ }
96
+ _ctx.next = 3;
97
+ return serialiser.deserialise(pagePath, fileData);
98
+ case 3:
99
+ currentPage = _ctx.sent;
100
+ if (!config.data.hddPaths[pagePath]) {
101
+ _ctx.next = 17;
102
+ break;
103
+ }
104
+ _ctx.t0 = serialiser;
105
+ _ctx.t1 = pagePath;
106
+ _ctx.next = 9;
107
+ return fs.promises.readFile(config.data.hddPaths[pagePath]);
108
+ case 9:
109
+ _ctx.t2 = _ctx.sent;
110
+ _ctx.next = 12;
111
+ return _ctx.t0.deserialise.call(_ctx.t0, _ctx.t1, _ctx.t2);
112
+ case 12:
113
+ page = _ctx.sent;
114
+ _ctx.next = 15;
115
+ return serialiser.serialise(pagePath, merge(page, currentPage, {
116
+ content: page.content
117
+ }));
118
+ case 15:
119
+ completePage = _ctx.sent;
120
+ return _ctx.abrupt("return", completePage);
121
+ case 17:
122
+ return _ctx.abrupt("return", fileData);
123
+ case 18:
124
+ case "end":
125
+ return _ctx.stop();
126
+ }
127
+ }, _callee);
128
+ }));
129
+ return function(pagePath, fileData) {
130
+ return _ref.apply(this, arguments);
131
+ };
132
+ }());
133
+ case 2:
134
+ case "end":
135
+ return _ctx.stop();
136
+ }
137
+ }, _callee);
138
+ }))();
139
+ },
140
+ $beforeSend: function $beforeSend(mutableFilesystem, param, options) {
141
+ var config = param.config, serialiser = param.serialiser, ignorePages = param.ignorePages, pageExtensions = param.pageExtensions;
142
+ return _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
143
+ var hddPaths, originalDiskSize, newDiskSize, allPages, baseDir, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _ref, filePath, rawPage, page, content, pageRest, redactedPage, reduction;
144
+ return regeneratorRuntime.wrap(function _callee$(_ctx) {
145
+ while(1)switch(_ctx.prev = _ctx.next){
146
+ case 0:
147
+ hddPaths = {};
148
+ originalDiskSize = 0;
149
+ newDiskSize = 0;
150
+ _ctx.next = 5;
151
+ return mutableFilesystem.promises.glob(createFileGlob("**", pageExtensions), {
152
+ ignore: ignorePages.map(function(ignore) {
153
+ return "**/".concat(ignore);
154
+ }),
155
+ cwd: "/",
156
+ onlyFiles: true
157
+ });
158
+ case 5:
159
+ allPages = _ctx.sent;
160
+ baseDir = path.join(process.cwd(), options.cacheDir || ".mosaic-lazy-page-plugin-cache");
161
+ _ctx.next = 9;
162
+ return fsExtra.ensureDir(baseDir);
163
+ case 9:
164
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
165
+ _ctx.prev = 10;
166
+ _iterator = allPages[Symbol.iterator]();
167
+ case 12:
168
+ if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
169
+ _ctx.next = 40;
170
+ break;
171
+ }
172
+ _ref = _step.value;
173
+ filePath = _ref;
174
+ _ctx.next = 17;
175
+ return mutableFilesystem.promises.readFile(String(filePath));
176
+ case 17:
177
+ rawPage = _ctx.sent;
178
+ _ctx.next = 20;
179
+ return serialiser.deserialise(String(filePath), rawPage);
180
+ case 20:
181
+ page = _ctx.sent;
182
+ originalDiskSize += rawPage.length;
183
+ _ctx.next = 24;
184
+ return fs.promises.mkdir(path.dirname(path.join(baseDir, String(filePath))), {
185
+ recursive: true
186
+ });
187
+ case 24:
188
+ _ctx.t0 = fs.promises;
189
+ _ctx.t1 = path.join(baseDir, String(filePath));
190
+ _ctx.next = 28;
191
+ return serialiser.serialise(String(filePath), page);
192
+ case 28:
193
+ _ctx.t2 = _ctx.sent;
194
+ _ctx.next = 31;
195
+ return _ctx.t0.writeFile.call(_ctx.t0, _ctx.t1, _ctx.t2);
196
+ case 31:
197
+ content = page.content, pageRest = _objectWithoutProperties(page, [
198
+ "content"
199
+ ]);
200
+ hddPaths[String(filePath)] = path.join(baseDir, String(filePath));
201
+ _ctx.next = 35;
202
+ return serialiser.serialise(String(filePath), pageRest);
203
+ case 35:
204
+ redactedPage = _ctx.sent;
205
+ newDiskSize += redactedPage.length;
206
+ case 37:
207
+ _iteratorNormalCompletion = true;
208
+ _ctx.next = 12;
209
+ break;
210
+ case 40:
211
+ _ctx.next = 46;
212
+ break;
213
+ case 42:
214
+ _ctx.prev = 42;
215
+ _ctx.t3 = _ctx["catch"](10);
216
+ _didIteratorError = true;
217
+ _iteratorError = _ctx.t3;
218
+ case 46:
219
+ _ctx.prev = 46;
220
+ _ctx.prev = 47;
221
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
222
+ _iterator.return();
223
+ }
224
+ case 49:
225
+ _ctx.prev = 49;
226
+ if (!_didIteratorError) {
227
+ _ctx.next = 52;
228
+ break;
229
+ }
230
+ throw _iteratorError;
231
+ case 52:
232
+ return _ctx.finish(49);
233
+ case 53:
234
+ return _ctx.finish(46);
235
+ case 54:
236
+ config.setData({
237
+ hddPaths: hddPaths
238
+ });
239
+ reduction = originalDiskSize - newDiskSize;
240
+ console.info("[Mosaic] LazyPagePlugin moved ".concat((reduction / originalDiskSize * 100).toFixed(2), "% of virtual filesystem content to the hard disk. This reduced the virtual filesystem size from ").concat((originalDiskSize / 1000000).toFixed(2), "mb to ").concat((newDiskSize / 1000000).toFixed(2), "mb (yay!)"));
241
+ case 57:
242
+ case "end":
243
+ return _ctx.stop();
244
+ }
245
+ }, _callee, null, [
246
+ [
247
+ 10,
248
+ 42,
249
+ 46,
250
+ 54
251
+ ],
252
+ [
253
+ 47,
254
+ ,
255
+ 49,
256
+ 53
257
+ ]
258
+ ]);
259
+ }))();
260
+ }
261
+ };
262
+ export default LazyPagePlugin;
263
+
95
264
  //# sourceMappingURL=LazyPagePlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LazyPagePlugin.js","sourceRoot":"","sources":["../src/LazyPagePlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/LazyPagePlugin.ts"],"sourcesContent":["import type { Page, Plugin as PluginType } from '@jpmorganchase/mosaic-types';\nimport fs from 'fs';\nimport fsExtra from 'fs-extra';\nimport merge from 'lodash/merge';\nimport escapeRegExp from 'lodash/escapeRegExp';\nimport path from 'path';\nimport { TDataOut } from 'memfs/lib/encoding';\n\nfunction createPageTest(ignorePages, pageExtensions) {\n const extTest = new RegExp(`${pageExtensions.map(escapeRegExp).join('|')}$`);\n const ignoreTest = new RegExp(`${ignorePages.map(escapeRegExp).join('|')}$`);\n return file =>\n !ignoreTest.test(file) && extTest.test(file) && !path.basename(file).startsWith('.');\n}\n\nfunction createFileGlob(url, pageExtensions) {\n if (pageExtensions.length === 1) {\n return `${url}${pageExtensions[0]}`;\n }\n return `${url}{${pageExtensions.join(',')}}`;\n}\n\ninterface LazyPagePluginPage extends Page {\n aliases: { [key: string]: Set<string> };\n hddPaths: { [key: string]: string };\n}\ninterface LazyPagePluginOptions {\n cacheDir?: string;\n}\n\nconst LazyPagePlugin: PluginType<LazyPagePluginPage, LazyPagePluginOptions> = {\n async afterUpdate(mutableFilesystem, { ignorePages, config, pageExtensions, serialiser }) {\n const isNonHiddenPage = createPageTest(ignorePages, pageExtensions);\n\n // This adds a hook that triggers everytime a non-cached page is read from the filesystem.\n mutableFilesystem.__internal_do_not_use_addReadFileHook(\n async (pagePath: string, fileData: TDataOut) => {\n // If this is a 'page' - read the original file from disk and try to inject anything that's missing.\n if (isNonHiddenPage(pagePath)) {\n const currentPage = await serialiser.deserialise(pagePath, fileData);\n if (config.data.hddPaths[pagePath]) {\n const page = await serialiser.deserialise(\n pagePath,\n await fs.promises.readFile(config.data.hddPaths[pagePath])\n );\n const completePage = await serialiser.serialise(\n pagePath,\n merge(page, currentPage, { content: page.content })\n );\n return completePage;\n }\n }\n return fileData;\n }\n );\n },\n async $beforeSend(\n mutableFilesystem,\n { config, serialiser, ignorePages, pageExtensions },\n options\n ) {\n const hddPaths = {};\n let originalDiskSize = 0;\n let newDiskSize = 0;\n const allPages = await mutableFilesystem.promises.glob(createFileGlob('**', pageExtensions), {\n ignore: ignorePages.map(ignore => `**/${ignore}`),\n cwd: '/',\n onlyFiles: true\n });\n const baseDir = path.join(process.cwd(), options.cacheDir || '.mosaic-lazy-page-plugin-cache');\n await fsExtra.ensureDir(baseDir);\n for (const filePath of allPages) {\n const rawPage = await mutableFilesystem.promises.readFile(String(filePath));\n const page = await serialiser.deserialise(String(filePath), rawPage);\n originalDiskSize += rawPage.length;\n await fs.promises.mkdir(path.dirname(path.join(baseDir, String(filePath))), {\n recursive: true\n });\n await fs.promises.writeFile(\n path.join(baseDir, String(filePath)),\n await serialiser.serialise(String(filePath), page)\n );\n const { content, ...pageRest } = page;\n hddPaths[String(filePath)] = path.join(baseDir, String(filePath));\n const redactedPage = await serialiser.serialise(String(filePath), pageRest);\n newDiskSize += redactedPage.length;\n }\n\n config.setData({ hddPaths });\n\n const reduction = originalDiskSize - newDiskSize;\n console.info(\n `[Mosaic] LazyPagePlugin moved ${((reduction / originalDiskSize) * 100).toFixed(\n 2\n )}% of virtual filesystem content to the hard disk. This reduced the virtual filesystem size from ${(\n originalDiskSize / 1000000\n ).toFixed(2)}mb to ${(newDiskSize / 1000000).toFixed(2)}mb (yay!)`\n );\n }\n};\n\nexport default LazyPagePlugin;\n"],"names":["fs","fsExtra","merge","escapeRegExp","path","createPageTest","ignorePages","pageExtensions","extTest","RegExp","map","join","ignoreTest","file","test","basename","startsWith","createFileGlob","url","length","LazyPagePlugin","afterUpdate","mutableFilesystem","config","serialiser","isNonHiddenPage","__internal_do_not_use_addReadFileHook","pagePath","fileData","currentPage","page","completePage","deserialise","data","hddPaths","promises","readFile","serialise","content","$beforeSend","options","originalDiskSize","newDiskSize","allPages","baseDir","filePath","rawPage","pageRest","redactedPage","reduction","glob","ignore","cwd","onlyFiles","process","cacheDir","ensureDir","String","mkdir","dirname","recursive","writeFile","setData","console","info","toFixed"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAOA,EAAE,MAAM,IAAI,CAAC;AACpB,OAAOC,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAOC,KAAK,MAAM,cAAc,CAAC;AACjC,OAAOC,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAOC,IAAI,MAAM,MAAM,CAAC;AAGxB,SAASC,cAAc,CAACC,WAAW,EAAEC,cAAc,EAAE;IACnD,IAAMC,OAAO,GAAG,IAAIC,MAAM,CAAC,AAAC,EAAA,CAA6C,MAAC,CAA5CF,cAAc,CAACG,GAAG,CAACP,YAAY,CAAC,CAACQ,IAAI,CAAC,GAAG,CAAC,EAAC,GAAC,CAAC,CAAC,AAAC;IAC7E,IAAMC,UAAU,GAAG,IAAIH,MAAM,CAAC,AAAC,EAAA,CAA0C,MAAC,CAAzCH,WAAW,CAACI,GAAG,CAACP,YAAY,CAAC,CAACQ,IAAI,CAAC,GAAG,CAAC,EAAC,GAAC,CAAC,CAAC,AAAC;IAC7E,OAAOE,SAAAA,IAAI;eACT,CAACD,UAAU,CAACE,IAAI,CAACD,IAAI,CAAC,IAAIL,OAAO,CAACM,IAAI,CAACD,IAAI,CAAC,IAAI,CAACT,IAAI,CAACW,QAAQ,CAACF,IAAI,CAAC,CAACG,UAAU,CAAC,GAAG,CAAC;KAAA,CAAC;CACxF;AAED,SAASC,cAAc,CAACC,GAAG,EAAEX,cAAc,EAAE;IAC3C,IAAIA,cAAc,CAACY,MAAM,KAAK,CAAC,EAAE;QAC/B,OAAO,AAAC,EAAA,CAAQZ,MAAiB,CAAvBW,GAAG,CAAqB,CAAA,MAAA,CAAlBX,cAAc,CAAC,CAAC,CAAC,CAAE,CAAC;KACrC;IACD,OAAO,AAAC,EAAA,CAASA,MAAwB,CAA/BW,GAAG,EAAC,GAAC,CAA2B,CAAA,MAAC,CAA1BX,cAAc,CAACI,IAAI,CAAC,GAAG,CAAC,EAAC,GAAC,CAAC,CAAC;CAC9C;AAUD,IAAMS,cAAc,GAA0D;IACtEC,WAAW,EAAjB,SAAMA,WAAW,CAACC,iBAAiB,EAAE,KAAmD;YAAjDhB,WAAW,GAAb,KAAmD,CAAjDA,WAAW,EAAEiB,MAAM,GAArB,KAAmD,CAApCA,MAAM,EAAEhB,cAAc,GAArC,KAAmD,CAA5BA,cAAc,EAAEiB,UAAU,GAAjD,KAAmD,CAAZA,UAAU;eAAI,wDAAA,mBAAA;gBAClFC,eAAe;;;;wBAAfA,eAAe,GAAGpB,cAAc,CAACC,WAAW,EAAEC,cAAc,CAAC,CAAC;wBAEpE,0FAA0F;wBAC1Fe,iBAAiB,CAACI,qCAAqC;uCACrD,wDAAA,iBAAOC,QAAgB,EAAEC,QAAkB,EAAK;oCAGtCC,WAAW,EAETC,IAAI,EAIJC,YAAY;;;;gDAPlBN,CAAAA,eAAe,CAACE,QAAQ,CAAC;;;;;mDACDH,UAAU,CAACQ,WAAW,CAACL,QAAQ,EAAEC,QAAQ,CAAC;;4CAA9DC,WAAW,YAAmD,CAAA;gDAChEN,CAAAA,MAAM,CAACU,IAAI,CAACC,QAAQ,CAACP,QAAQ,CAAC;;;;sDACbH,UAAU;sDAC3BG,QAAQ;;mDACF3B,EAAE,CAACmC,QAAQ,CAACC,QAAQ,CAACb,MAAM,CAACU,IAAI,CAACC,QAAQ,CAACP,QAAQ,CAAC,CAAC;;;;mDAFzCH,QAAWQ,WAAW,gCAGxC;;4CAHKF,IAAI,YAGT,CAAA;;mDAC0BN,UAAU,CAACa,SAAS,CAC7CV,QAAQ,EACRzB,KAAK,CAAC4B,IAAI,EAAED,WAAW,EAAE;gDAAES,OAAO,EAAER,IAAI,CAACQ,OAAO;6CAAE,CAAC,CACpD;;4CAHKP,YAAY,YAGjB,CAAA;yEACMA,YAAY;;yEAGhBH,QAAQ;;;;;;6BAChB,EAAA;4CAjBMD,QAAgB,EAAEC,QAAkB;;;4BAkB5C,CAAC;;;;;;SACH,EAAA;KAAA;IACKW,WAAW,EAAjB,SAAMA,WAAW,CACfjB,iBAAiB,EACjB,KAAmD,EACnDkB,OAAO;YADLjB,MAAM,GAAR,KAAmD,CAAjDA,MAAM,EAAEC,UAAU,GAApB,KAAmD,CAAzCA,UAAU,EAAElB,WAAW,GAAjC,KAAmD,CAA7BA,WAAW,EAAEC,cAAc,GAAjD,KAAmD,CAAhBA,cAAc;eAEjD,wDAAA,mBAAA;gBACM2B,QAAQ,EACVO,gBAAgB,EAChBC,WAAW,EACTC,QAAQ,EAKRC,OAAO,EAER,yBAAc,EAAd,iBAAc,EAAd,cAAc,EAAd,SAAc,EAAd,KAAc,QAARC,QAAQ,EACXC,OAAO,EACPhB,IAAI,EASFQ,OAAO,EAAKS,QAAQ,EAEtBC,YAAY,EAMdC,SAAS;;;;wBA7BTf,QAAQ,GAAG,EAAE,CAAC;wBAChBO,gBAAgB,GAAG,CAAC,CAAC;wBACrBC,WAAW,GAAG,CAAC,CAAC;;+BACGpB,iBAAiB,CAACa,QAAQ,CAACe,IAAI,CAACjC,cAAc,CAAC,IAAI,EAAEV,cAAc,CAAC,EAAE;4BAC3F4C,MAAM,EAAE7C,WAAW,CAACI,GAAG,CAACyC,SAAAA,MAAM;uCAAI,AAAC,KAAG,CAAS,MAAA,CAAPA,MAAM,CAAE;6BAAA,CAAC;4BACjDC,GAAG,EAAE,GAAG;4BACRC,SAAS,EAAE,IAAI;yBAChB,CAAC;;wBAJIV,QAAQ,YAIZ,CAAA;wBACIC,OAAO,GAAGxC,IAAI,CAACO,IAAI,CAAC2C,OAAO,CAACF,GAAG,EAAE,EAAEZ,OAAO,CAACe,QAAQ,IAAI,gCAAgC,CAAC,CAAC;;+BACzFtD,OAAO,CAACuD,SAAS,CAACZ,OAAO,CAAC;;wBAC3B,yBAAc,SAAd,iBAAc,UAAd,cAAc;;wBAAd,SAAc,GAAID,QAAQ;;4BAA1B,yBAAc,IAAd,KAAc,GAAd,SAAc;;;;+BAAd,KAAc,OAAA;wBAARE,QAAQ,OAAA,CAAA;;+BACKvB,iBAAiB,CAACa,QAAQ,CAACC,QAAQ,CAACqB,MAAM,CAACZ,QAAQ,CAAC,CAAC;;wBAArEC,OAAO,YAA8D,CAAA;;+BACxDtB,UAAU,CAACQ,WAAW,CAACyB,MAAM,CAACZ,QAAQ,CAAC,EAAEC,OAAO,CAAC;;wBAA9DhB,IAAI,YAA0D,CAAA;wBACpEW,gBAAgB,IAAIK,OAAO,CAAC3B,MAAM,CAAC;;+BAC7BnB,EAAE,CAACmC,QAAQ,CAACuB,KAAK,CAACtD,IAAI,CAACuD,OAAO,CAACvD,IAAI,CAACO,IAAI,CAACiC,OAAO,EAAEa,MAAM,CAACZ,QAAQ,CAAC,CAAC,CAAC,EAAE;4BAC1Ee,SAAS,EAAE,IAAI;yBAChB,CAAC;;kCACI5D,EAAE,CAACmC,QAAQ;kCACf/B,IAAI,CAACO,IAAI,CAACiC,OAAO,EAAEa,MAAM,CAACZ,QAAQ,CAAC,CAAC;;+BAC9BrB,UAAU,CAACa,SAAS,CAACoB,MAAM,CAACZ,QAAQ,CAAC,EAAEf,IAAI,CAAC;;;;+BAF9C9B,QAAY6D,SAAS,gCAG1B;;wBACK,AAAEvB,OAAO,GAAkBR,IAAI,CAA7BQ,OAAO,AAAsB,EAAjBS,QAAQ,4BAAKjB,IAAI;4BAA7BQ,SAAO;2BAAuB;wBACtCJ,QAAQ,CAACuB,MAAM,CAACZ,QAAQ,CAAC,CAAC,GAAGzC,IAAI,CAACO,IAAI,CAACiC,OAAO,EAAEa,MAAM,CAACZ,QAAQ,CAAC,CAAC,CAAC;;+BACvCrB,UAAU,CAACa,SAAS,CAACoB,MAAM,CAACZ,QAAQ,CAAC,EAAEE,QAAQ,CAAC;;wBAArEC,YAAY,YAAyD,CAAA;wBAC3EN,WAAW,IAAIM,YAAY,CAAC7B,MAAM,CAAC;;wBAdhC,yBAAc;;;;;;;;;wBAAd,iBAAc;wBAAd,cAAc;;;;6BAAd,yBAAc,IAAd,SAAc;4BAAd,SAAc;;;;4BAAd,CAAA,iBAAc;;;;8BAAd,cAAc;;;;;;wBAiBnBI,MAAM,CAACuC,OAAO,CAAC;4BAAE5B,QAAQ,EAARA,QAAQ;yBAAE,CAAC,CAAC;wBAEvBe,SAAS,GAAGR,gBAAgB,GAAGC,WAAW,CAAC;wBACjDqB,OAAO,CAACC,IAAI,CACV,AAAC,gCAA8B,CAEqE,MAExF,CAJqB,CAAC,AAACf,SAAS,GAAGR,gBAAgB,GAAI,GAAG,CAAC,CAACwB,OAAO,CAC7E,CAAC,CACF,EAAC,kGAAgG,CAErF,CAAQ,MAAkC,CAF6C,CAClGxB,gBAAgB,GAAG,OAAO,CAC3B,CAACwB,OAAO,CAAC,CAAC,CAAC,EAAC,QAAM,CAAqC,CAAA,MAAS,CAA5C,CAACvB,WAAW,GAAG,OAAO,CAAC,CAACuB,OAAO,CAAC,CAAC,CAAC,EAAC,WAAS,CAAC,CACnE,CAAC;;;;;;;;;;;;;;;;;;;SACH,EAAA;KAAA;CACF,AAAC;AAEF,eAAe7C,cAAc,CAAC"}
@@ -0,0 +1,165 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _asyncToGenerator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ function _defineProperty(obj, key, value) {
31
+ if (key in obj) {
32
+ Object.defineProperty(obj, key, {
33
+ value: value,
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true
37
+ });
38
+ } else {
39
+ obj[key] = value;
40
+ }
41
+ return obj;
42
+ }
43
+ function _objectSpread(target) {
44
+ for(var i = 1; i < arguments.length; i++){
45
+ var source = arguments[i] != null ? arguments[i] : {};
46
+ var ownKeys = Object.keys(source);
47
+ if (typeof Object.getOwnPropertySymbols === "function") {
48
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
49
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
50
+ }));
51
+ }
52
+ ownKeys.forEach(function(key) {
53
+ _defineProperty(target, key, source[key]);
54
+ });
55
+ }
56
+ return target;
57
+ }
58
+ function ownKeys(object, enumerableOnly) {
59
+ var keys = Object.keys(object);
60
+ if (Object.getOwnPropertySymbols) {
61
+ var symbols = Object.getOwnPropertySymbols(object);
62
+ if (enumerableOnly) {
63
+ symbols = symbols.filter(function(sym) {
64
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
65
+ });
66
+ }
67
+ keys.push.apply(keys, symbols);
68
+ }
69
+ return keys;
70
+ }
71
+ function _objectSpreadProps(target, source) {
72
+ source = source != null ? source : {};
73
+ if (Object.getOwnPropertyDescriptors) {
74
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
75
+ } else {
76
+ ownKeys(Object(source)).forEach(function(key) {
77
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
78
+ });
79
+ }
80
+ return target;
81
+ }
82
+ function _objectWithoutProperties(source, excluded) {
83
+ if (source == null) return {};
84
+ var target = _objectWithoutPropertiesLoose(source, excluded);
85
+ var key, i;
86
+ if (Object.getOwnPropertySymbols) {
87
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
88
+ for(i = 0; i < sourceSymbolKeys.length; i++){
89
+ key = sourceSymbolKeys[i];
90
+ if (excluded.indexOf(key) >= 0) continue;
91
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
92
+ target[key] = source[key];
93
+ }
94
+ }
95
+ return target;
96
+ }
97
+ function _objectWithoutPropertiesLoose(source, excluded) {
98
+ if (source == null) return {};
99
+ var target = {};
100
+ var sourceKeys = Object.keys(source);
101
+ var key, i;
102
+ for(i = 0; i < sourceKeys.length; i++){
103
+ key = sourceKeys[i];
104
+ if (excluded.indexOf(key) >= 0) continue;
105
+ target[key] = source[key];
106
+ }
107
+ return target;
108
+ }
109
+ import regeneratorRuntime from "regenerator-runtime";
110
+ import path from "path";
111
+ import fs from "fs";
112
+ import { default as mdxSerialisers } from "@jpmorganchase/mosaic-serialisers/dist/mdx";
113
+ var LocalFolderSavePlugin = {
114
+ saveContent: function saveContent(filePath, data, sourceOptions, param) {
115
+ var namespace = param.namespace;
116
+ return _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
117
+ var markdown, rootDir, prefixDir, pathOnDisk, rawPage, _ref, content, metadata, updatedPage;
118
+ return regeneratorRuntime.wrap(function _callee$(_ctx) {
119
+ while(1)switch(_ctx.prev = _ctx.next){
120
+ case 0:
121
+ markdown = data.markdown;
122
+ rootDir = sourceOptions.rootDir, prefixDir = sourceOptions.prefixDir;
123
+ if (!(namespace !== "local")) {
124
+ _ctx.next = 4;
125
+ break;
126
+ }
127
+ return _ctx.abrupt("return", false);
128
+ case 4:
129
+ pathOnDisk = path.posix.join(rootDir, filePath.replace(new RegExp("".concat(prefixDir, "/")), ""));
130
+ _ctx.next = 7;
131
+ return fs.promises.readFile(pathOnDisk);
132
+ case 7:
133
+ rawPage = _ctx.sent;
134
+ _ctx.next = 10;
135
+ return mdxSerialisers.deserialise(pathOnDisk, rawPage);
136
+ case 10:
137
+ _ref = _ctx.sent;
138
+ content = _ref.content;
139
+ metadata = _objectWithoutProperties(_ref, [
140
+ "content"
141
+ ]);
142
+ updatedPage = _objectSpreadProps(_objectSpread({}, metadata), {
143
+ content: markdown
144
+ });
145
+ _ctx.t0 = fs.promises;
146
+ _ctx.t1 = pathOnDisk;
147
+ _ctx.next = 18;
148
+ return mdxSerialisers.serialise(pathOnDisk, updatedPage);
149
+ case 18:
150
+ _ctx.t2 = _ctx.sent;
151
+ _ctx.next = 21;
152
+ return _ctx.t0.writeFile.call(_ctx.t0, _ctx.t1, _ctx.t2);
153
+ case 21:
154
+ return _ctx.abrupt("return", true);
155
+ case 22:
156
+ case "end":
157
+ return _ctx.stop();
158
+ }
159
+ }, _callee);
160
+ }))();
161
+ }
162
+ };
163
+ export default LocalFolderSavePlugin;
164
+
165
+ //# sourceMappingURL=LocalFolderSavePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/LocalFolderSavePlugin.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs';\nimport type { Plugin as PluginType } from '@jpmorganchase/mosaic-types';\nimport { LocalFolderSourceOptions } from '@jpmorganchase/mosaic-source-local-folder';\nimport { default as mdxSerialisers } from '@jpmorganchase/mosaic-serialisers/dist/mdx';\n\nexport interface LocalFolderSavePluginData {\n markdown: string;\n}\n\nconst LocalFolderSavePlugin: PluginType = {\n async saveContent(\n filePath,\n data: LocalFolderSavePluginData,\n sourceOptions: LocalFolderSourceOptions,\n { namespace }\n ) {\n const { markdown } = data;\n const { rootDir, prefixDir } = sourceOptions;\n\n if (namespace !== 'local') {\n // indicate to the Plugin Runner that no save happened\n return false;\n }\n\n const pathOnDisk = path.posix.join(rootDir, filePath.replace(new RegExp(`${prefixDir}/`), ''));\n const rawPage = await fs.promises.readFile(pathOnDisk);\n const { content, ...metadata } = await mdxSerialisers.deserialise(pathOnDisk, rawPage);\n const updatedPage = { ...metadata, content: markdown };\n\n await fs.promises.writeFile(\n pathOnDisk,\n await mdxSerialisers.serialise(pathOnDisk, updatedPage)\n );\n return true;\n }\n};\n\nexport default LocalFolderSavePlugin;\n"],"names":["path","fs","default","mdxSerialisers","LocalFolderSavePlugin","saveContent","filePath","data","sourceOptions","namespace","markdown","rootDir","prefixDir","pathOnDisk","rawPage","content","metadata","updatedPage","posix","join","replace","RegExp","promises","readFile","deserialise","serialise","writeFile"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAOA,IAAI,MAAM,MAAM,CAAC;AACxB,OAAOC,EAAE,MAAM,IAAI,CAAC;AAGpB,SAASC,OAAO,IAAIC,cAAc,QAAQ,4CAA4C,CAAC;AAMvF,IAAMC,qBAAqB,GAAe;IAClCC,WAAW,EAAjB,SAAMA,WAAW,CACfC,QAAQ,EACRC,IAA+B,EAC/BC,aAAuC,EACvC,KAAa;YAAb,AAAEC,SAAS,GAAX,KAAa,CAAXA,SAAS,AAAE;eACb,wDAAA,mBAAA;gBACQC,QAAQ,EACRC,OAAO,EAAEC,SAAS,EAOpBC,UAAU,EACVC,OAAO,EACoB,IAAqD,EAA9EC,OAAO,EAAKC,QAAQ,EACtBC,WAAW;;;;wBAXX,AAAEP,QAAQ,GAAKH,IAAI,CAAjBG,QAAQ,AAAS,CAAC;wBAClBC,OAAO,GAAgBH,aAAa,CAApCG,OAAO,EAAEC,SAAS,GAAKJ,aAAa,CAA3BI,SAAS,CAAmB;4BAEzCH,CAAAA,CAAAA,SAAS,KAAK,OAAO,CAAA;;;;qDAEhB,KAAK;;wBAGRI,UAAU,GAAGb,IAAI,CAACkB,KAAK,CAACC,IAAI,CAACR,OAAO,EAAEL,QAAQ,CAACc,OAAO,CAAC,IAAIC,MAAM,CAAC,AAAC,EAAA,CAAY,MAAC,CAAXT,SAAS,EAAC,GAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;;+BACzEX,EAAE,CAACqB,QAAQ,CAACC,QAAQ,CAACV,UAAU,CAAC;;wBAAhDC,OAAO,YAAyC,CAAA;;+BACfX,cAAc,CAACqB,WAAW,CAACX,UAAU,EAAEC,OAAO,CAAC;;wBAArD,IAAqD;wBAAhF,AAAEC,OAAO,GAAkB,IAAqD,CAA9EA,OAAO,AAAuE,CAAA;wBAAlEC,QAAQ,4BAAK,IAAqD;4BAA9ED,SAAO;;wBACTE,WAAW,GAAG,qCAAKD,QAAQ;4BAAED,OAAO,EAAEL,QAAQ;0BAAE,CAAC;kCAEjDT,EAAE,CAACqB,QAAQ;kCACfT,UAAU;;+BACJV,cAAc,CAACsB,SAAS,CAACZ,UAAU,EAAEI,WAAW,CAAC;;;;+BAFnDhB,QAAYyB,SAAS,gCAG1B;;qDACM,IAAI;;;;;;SACZ,EAAA;KAAA;CACF,AAAC;AAEF,eAAetB,qBAAqB,CAAC"}