@jpmorganchase/mosaic-plugins 0.1.0-beta.9 → 0.1.0-beta.90
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/dist/$AliasPlugin.d.ts +10 -0
- package/dist/$AliasPlugin.js +34 -46
- package/dist/$AliasPlugin.js.map +1 -1
- package/dist/$CodeModPlugin.d.ts +7 -0
- package/dist/$CodeModPlugin.js +12 -28
- package/dist/$CodeModPlugin.js.map +1 -1
- package/dist/$RefPlugin.d.ts +31 -0
- package/dist/$RefPlugin.js +109 -108
- package/dist/$RefPlugin.js.map +1 -1
- package/dist/$TagPlugin.d.ts +28 -0
- package/dist/$TagPlugin.js +24 -44
- package/dist/$TagPlugin.js.map +1 -1
- package/dist/BreadcrumbsPlugin.d.ts +19 -0
- package/dist/BreadcrumbsPlugin.js +81 -37
- package/dist/BreadcrumbsPlugin.js.map +1 -1
- package/dist/BrokenLinksPlugin.d.ts +10 -0
- package/dist/BrokenLinksPlugin.js +80 -0
- package/dist/BrokenLinksPlugin.js.map +1 -0
- package/dist/DocumentAssetsPlugin.d.ts +28 -0
- package/dist/DocumentAssetsPlugin.js +144 -0
- package/dist/DocumentAssetsPlugin.js.map +1 -0
- package/dist/FragmentPlugin.d.ts +3 -0
- package/dist/FragmentPlugin.js +64 -0
- package/dist/FragmentPlugin.js.map +1 -0
- package/dist/LazyPagePlugin.d.ts +14 -0
- package/dist/LazyPagePlugin.js +45 -79
- package/dist/LazyPagePlugin.js.map +1 -1
- package/dist/PagesWithoutFileExtPlugin.d.ts +9 -0
- package/dist/PagesWithoutFileExtPlugin.js +14 -29
- package/dist/PagesWithoutFileExtPlugin.js.map +1 -1
- package/dist/PropsTablePlugin.d.ts +6 -0
- package/dist/PropsTablePlugin.js +88 -0
- package/dist/PropsTablePlugin.js.map +1 -0
- package/dist/PublicAssetsPlugin.d.ts +18 -0
- package/dist/PublicAssetsPlugin.js +27 -0
- package/dist/PublicAssetsPlugin.js.map +1 -0
- package/dist/ReadingTimePlugin.d.ts +10 -0
- package/dist/ReadingTimePlugin.js +39 -0
- package/dist/ReadingTimePlugin.js.map +1 -0
- package/dist/SearchIndexPlugin.d.ts +56 -0
- package/dist/SearchIndexPlugin.js +154 -0
- package/dist/SearchIndexPlugin.js.map +1 -0
- package/dist/SharedConfigPlugin.d.ts +14 -0
- package/dist/SharedConfigPlugin.js +124 -32
- package/dist/SharedConfigPlugin.js.map +1 -1
- package/dist/SidebarPlugin.d.ts +45 -0
- package/dist/SidebarPlugin.js +276 -87
- package/dist/SidebarPlugin.js.map +1 -1
- package/dist/SiteMapPlugin.d.ts +9 -0
- package/dist/SiteMapPlugin.js +20 -34
- package/dist/SiteMapPlugin.js.map +1 -1
- package/dist/TableOfContentsPlugin.d.ts +26 -0
- package/dist/TableOfContentsPlugin.js +67 -0
- package/dist/TableOfContentsPlugin.js.map +1 -0
- package/dist/utils/PluginError.d.ts +7 -0
- package/dist/utils/PluginError.js +13 -0
- package/dist/utils/PluginError.js.map +1 -0
- package/dist/utils/createPageTest.d.ts +1 -0
- package/dist/utils/createPageTest.js +8 -0
- package/dist/utils/createPageTest.js.map +1 -0
- package/dist/utils/mergePageContent.d.ts +16 -0
- package/dist/utils/mergePageContent.js +23 -0
- package/dist/utils/mergePageContent.js.map +1 -0
- package/dist/utils/normaliseRefs.d.ts +1 -0
- package/dist/utils/normaliseRefs.js +52 -69
- package/dist/utils/normaliseRefs.js.map +1 -1
- package/dist/utils/sortSidebarData.d.ts +29 -0
- package/dist/utils/sortSidebarData.js +47 -0
- package/dist/utils/sortSidebarData.js.map +1 -0
- package/package.json +45 -27
- package/CHANGELOG.md +0 -109
- package/dist/LocalFolderSavePlugin.js +0 -48
- package/dist/LocalFolderSavePlugin.js.map +0 -1
- package/dist/NextPrevPagePlugin.js +0 -63
- package/dist/NextPrevPagePlugin.js.map +0 -1
- package/dist/ReadingTimePlugin.mjs +0 -119
- package/dist/ReadingTimePlugin.mjs.map +0 -1
- package/dist/SearchIndexPlugin.mjs +0 -268
- package/dist/SearchIndexPlugin.mjs.map +0 -1
- package/dist/TableOfContentsPlugin.mjs +0 -131
- package/dist/TableOfContentsPlugin.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function createPageTest(ignorePages: string[], pageExtensions: string[]): (file: any) => boolean;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { escapeRegExp } from 'lodash-es';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
export function createPageTest(ignorePages, pageExtensions) {
|
|
4
|
+
const extTest = new RegExp(`${pageExtensions.map(ext => escapeRegExp(ext)).join('|')}$`);
|
|
5
|
+
const ignoreTest = new RegExp(`${ignorePages.map(ignore => escapeRegExp(ignore)).join('|')}$`);
|
|
6
|
+
return file => !ignoreTest.test(file) && extTest.test(file) && !path.basename(file).startsWith('.');
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=createPageTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPageTest.js","sourceRoot":"","sources":["../../src/utils/createPageTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,cAAc,CAAC,WAAqB,EAAE,cAAwB;IAC5E,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzF,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/F,OAAO,IAAI,CAAC,EAAE,CACZ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACzF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Options } from 'deepmerge';
|
|
2
|
+
/**
|
|
3
|
+
* deeply merges the `updatedPageMetadata` into the `originalPageMetadata`.
|
|
4
|
+
*
|
|
5
|
+
* By default, array values in `updatedPageMetadata` *overwrite* `originalPageMetadata` array values completely rather than concatenating them.
|
|
6
|
+
*
|
|
7
|
+
* To override this behavior use the `options` parameter as mentioned here:
|
|
8
|
+
* https://www.npmjs.com/package/deepmerge
|
|
9
|
+
*
|
|
10
|
+
* @param originalPageMetadata
|
|
11
|
+
* @param updatedPageMetadata
|
|
12
|
+
* @param options
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
declare function mergePageContent<T, U>(originalPageMetadata: Partial<T>, updatedPageMetadata: U, options?: Options): T & U;
|
|
16
|
+
export { mergePageContent };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import deepmerge from 'deepmerge';
|
|
2
|
+
const overwriteMerge = (_destinationArray, sourceArray, _options) => sourceArray;
|
|
3
|
+
/**
|
|
4
|
+
* deeply merges the `updatedPageMetadata` into the `originalPageMetadata`.
|
|
5
|
+
*
|
|
6
|
+
* By default, array values in `updatedPageMetadata` *overwrite* `originalPageMetadata` array values completely rather than concatenating them.
|
|
7
|
+
*
|
|
8
|
+
* To override this behavior use the `options` parameter as mentioned here:
|
|
9
|
+
* https://www.npmjs.com/package/deepmerge
|
|
10
|
+
*
|
|
11
|
+
* @param originalPageMetadata
|
|
12
|
+
* @param updatedPageMetadata
|
|
13
|
+
* @param options
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
function mergePageContent(originalPageMetadata, updatedPageMetadata, options) {
|
|
17
|
+
return deepmerge(originalPageMetadata, updatedPageMetadata, {
|
|
18
|
+
arrayMerge: overwriteMerge,
|
|
19
|
+
...options
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
export { mergePageContent };
|
|
23
|
+
//# sourceMappingURL=mergePageContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergePageContent.js","sourceRoot":"","sources":["../../src/utils/mergePageContent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAmD,MAAM,WAAW,CAAC;AAE5E,MAAM,cAAc,GAAG,CACrB,iBAA4B,EAC5B,WAAsB,EACtB,QAA2B,EAC3B,EAAE,CAAC,WAAW,CAAC;AAEjB;;;;;;;;;;;;GAYG;AACH,SAAS,gBAAgB,CACvB,oBAAgC,EAChC,mBAAsB,EACtB,OAAiB;IAEjB,OAAO,SAAS,CAAO,oBAAoB,EAAE,mBAAmB,EAAE;QAChE,UAAU,EAAE,cAAc;QAC1B,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function normaliseRefs(filepath: any, refs: any, filesystem: any, pageExtensions: any, ignorePages: any): Promise<{}>;
|
|
@@ -1,83 +1,66 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const path_1 = __importDefault(require("path"));
|
|
16
|
-
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
17
|
-
const set_1 = __importDefault(require("lodash/set"));
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import glob from 'fast-glob';
|
|
3
|
+
import { set } from 'lodash-es';
|
|
18
4
|
function createFileGlob(url, pageExtensions) {
|
|
19
5
|
if (pageExtensions.length === 1) {
|
|
20
6
|
return `${url}${pageExtensions[0]}`;
|
|
21
7
|
}
|
|
22
8
|
return `${url}{${pageExtensions.join(',')}}`;
|
|
23
9
|
}
|
|
24
|
-
function normaliseRefs(filepath, refs, filesystem, pageExtensions, ignorePages) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
10
|
+
export default async function normaliseRefs(filepath, refs, filesystem, pageExtensions, ignorePages) {
|
|
11
|
+
const configWithoutGlobs = {};
|
|
12
|
+
for (let i = 0; i < refs.length; i++) {
|
|
13
|
+
const ref = refs[i];
|
|
14
|
+
const [url, fragment = ''] = ref.$$value.split('#');
|
|
15
|
+
if (!url) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
const fullUrl = path.posix.resolve(path.posix.dirname(filepath), url);
|
|
19
|
+
if (!glob.isDynamicPattern(url)) {
|
|
20
|
+
if (!(await filesystem.promises.exists(fullUrl))) {
|
|
21
|
+
throw new Error(`A \`$ref\` for '${filepath}' pointed to page '${fullUrl}' - which could not be found.`);
|
|
32
22
|
}
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if (stat.isDirectory()) {
|
|
45
|
-
// && !/\/index(\.\w{1,4})?$/.test(url)) {
|
|
46
|
-
(0, set_1.default)(configWithoutGlobs, ref.$$path.slice(0, -1), {
|
|
47
|
-
$ref: `${yield filesystem.promises.realpath(path_1.default.join(refRealPath, 'index'))}#${fragment}`
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
(0, set_1.default)(configWithoutGlobs, ref.$$path.slice(0, -1), {
|
|
52
|
-
$ref: `${refRealPath}#${fragment}`
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
continue;
|
|
23
|
+
const refRealPath = await filesystem.promises.realpath(fullUrl
|
|
24
|
+
//path.resolve(path.dirname(filepath), url)
|
|
25
|
+
);
|
|
26
|
+
const stat = await filesystem.promises.stat(refRealPath);
|
|
27
|
+
// Turn directory refs into full index paths
|
|
28
|
+
// TODO: But DO we want to do this?
|
|
29
|
+
if (stat.isDirectory()) {
|
|
30
|
+
// && !/\/index(\.\w{1,4})?$/.test(url)) {
|
|
31
|
+
set(configWithoutGlobs, ref.$$path.slice(0, -1), {
|
|
32
|
+
$ref: `${await filesystem.promises.realpath(path.posix.join(refRealPath, 'index'))}#${fragment}`
|
|
33
|
+
});
|
|
56
34
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
yield filesystem.promises.glob(!/\/[^/]+\.\w{2,4}$/.test(url) ? createFileGlob(url, pageExtensions) : url, {
|
|
61
|
-
ignore: [filepath, ...ignorePages.map(ignore => `**/${ignore}`)],
|
|
62
|
-
cwd: path_1.default.dirname(filepath),
|
|
63
|
-
absolute: true
|
|
35
|
+
else {
|
|
36
|
+
set(configWithoutGlobs, ref.$$path.slice(0, -1), {
|
|
37
|
+
$ref: `${refRealPath}#${fragment}`
|
|
64
38
|
});
|
|
65
|
-
// Use a set so we de-dupe any symlinks that point to the same page
|
|
66
|
-
const resolvedRefs = new Set();
|
|
67
|
-
for (const value of globResolvedRefs) {
|
|
68
|
-
const refRealPath = yield filesystem.promises.realpath(path_1.default.resolve(filepath, value));
|
|
69
|
-
if (refRealPath !== (yield filesystem.promises.realpath(filepath))) {
|
|
70
|
-
resolvedRefs.add(`${refRealPath}#${fragment}`);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
(0, set_1.default)(configWithoutGlobs, ref.$$path.slice(0, -1), Array.from(resolvedRefs).map($ref => ({ $ref })));
|
|
74
39
|
}
|
|
75
|
-
|
|
76
|
-
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
let globResolvedRefs =
|
|
44
|
+
// If the pattern doesn't have an explicit file extension - then we'll make it just return pages
|
|
45
|
+
await filesystem.promises.glob(!/\/[^/]+\.\w{2,4}$/.test(url) ? createFileGlob(url, pageExtensions) : url, {
|
|
46
|
+
ignore: [filepath, ...ignorePages.map(ignore => `**/${ignore}`)],
|
|
47
|
+
cwd: path.dirname(filepath),
|
|
48
|
+
absolute: true
|
|
49
|
+
});
|
|
50
|
+
// Use a set so we de-dupe any symlinks that point to the same page
|
|
51
|
+
const resolvedRefs = new Set();
|
|
52
|
+
for (const value of globResolvedRefs) {
|
|
53
|
+
const refRealPath = await filesystem.promises.realpath(path.posix.resolve(filepath, value));
|
|
54
|
+
if (refRealPath !== (await filesystem.promises.realpath(filepath))) {
|
|
55
|
+
resolvedRefs.add(`${refRealPath}#${fragment}`);
|
|
56
|
+
}
|
|
77
57
|
}
|
|
58
|
+
set(configWithoutGlobs, ref.$$path.slice(0, -1), Array.from(resolvedRefs).map($ref => ({ $ref })));
|
|
78
59
|
}
|
|
79
|
-
|
|
80
|
-
|
|
60
|
+
catch (e) {
|
|
61
|
+
throw e;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return configWithoutGlobs;
|
|
81
65
|
}
|
|
82
|
-
exports.default = normaliseRefs;
|
|
83
66
|
//# sourceMappingURL=normaliseRefs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normaliseRefs.js","sourceRoot":"","sources":["../../src/utils/normaliseRefs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normaliseRefs.js","sourceRoot":"","sources":["../../src/utils/normaliseRefs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { SortConfig } from '@jpmorganchase/mosaic-schemas';
|
|
2
|
+
type FieldData = string | number;
|
|
3
|
+
interface SortConfigWithValue extends SortConfig {
|
|
4
|
+
fieldData: FieldData;
|
|
5
|
+
}
|
|
6
|
+
export interface SidebarDataNode {
|
|
7
|
+
kind: 'data';
|
|
8
|
+
id: string;
|
|
9
|
+
fullPath: string;
|
|
10
|
+
name: string;
|
|
11
|
+
priority?: number;
|
|
12
|
+
data: {
|
|
13
|
+
level: number;
|
|
14
|
+
link: string;
|
|
15
|
+
};
|
|
16
|
+
sharedSortConfig?: SortConfigWithValue;
|
|
17
|
+
}
|
|
18
|
+
export type SidebarData = SidebarDataNode | SidebarGroupNode;
|
|
19
|
+
export interface SidebarGroupNode {
|
|
20
|
+
id: string;
|
|
21
|
+
kind: 'group';
|
|
22
|
+
childNodes: SidebarData[];
|
|
23
|
+
name: string;
|
|
24
|
+
priority?: number;
|
|
25
|
+
}
|
|
26
|
+
export declare function isGroupNode(node: SidebarDataNode | SidebarGroupNode): node is SidebarGroupNode;
|
|
27
|
+
export declare function isDataNode(node: SidebarDataNode | SidebarGroupNode): node is SidebarDataNode;
|
|
28
|
+
export declare function sortSidebarData(sidebarData: SidebarData[]): (SidebarDataNode | SidebarGroupNode)[];
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export function isGroupNode(node) {
|
|
2
|
+
return node.kind === 'group';
|
|
3
|
+
}
|
|
4
|
+
export function isDataNode(node) {
|
|
5
|
+
return node.kind === 'data';
|
|
6
|
+
}
|
|
7
|
+
const isNumber = (fieldData) => typeof fieldData === 'number';
|
|
8
|
+
function doSort(a, b) {
|
|
9
|
+
if (isNumber(a) && isNumber(b)) {
|
|
10
|
+
return a - b;
|
|
11
|
+
}
|
|
12
|
+
if (a > b) {
|
|
13
|
+
return 1;
|
|
14
|
+
}
|
|
15
|
+
if (a < b) {
|
|
16
|
+
return -1;
|
|
17
|
+
}
|
|
18
|
+
return 0;
|
|
19
|
+
}
|
|
20
|
+
function sortBySharedSortConfig(nodeA, nodeB) {
|
|
21
|
+
if (!isDataNode(nodeA) || !isDataNode(nodeB)) {
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
24
|
+
if (nodeA.sharedSortConfig === undefined || nodeB.sharedSortConfig === undefined) {
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
if (nodeA.sharedSortConfig?.arrange === 'asc') {
|
|
28
|
+
return doSort(nodeA.sharedSortConfig.fieldData, nodeB.sharedSortConfig.fieldData);
|
|
29
|
+
}
|
|
30
|
+
return doSort(nodeB.sharedSortConfig.fieldData, nodeA.sharedSortConfig.fieldData);
|
|
31
|
+
}
|
|
32
|
+
export function sortSidebarData(sidebarData) {
|
|
33
|
+
const pagesByPriority = sidebarData.map(group => {
|
|
34
|
+
if (!isGroupNode(group)) {
|
|
35
|
+
return group;
|
|
36
|
+
}
|
|
37
|
+
if (group?.childNodes?.length > 1) {
|
|
38
|
+
const sortedChildNodes = group.childNodes.sort((pageA, pageB) => (pageB.priority ? pageB.priority : -1) - (pageA.priority ? pageA.priority : -1) ||
|
|
39
|
+
sortBySharedSortConfig(pageA, pageB));
|
|
40
|
+
sortSidebarData(group.childNodes);
|
|
41
|
+
return { ...group, childNodes: sortedChildNodes };
|
|
42
|
+
}
|
|
43
|
+
return group;
|
|
44
|
+
});
|
|
45
|
+
return pagesByPriority;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=sortSidebarData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortSidebarData.js","sourceRoot":"","sources":["../../src/utils/sortSidebarData.ts"],"names":[],"mappings":"AA2BA,MAAM,UAAU,WAAW,CAAC,IAAwC;IAClE,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AAC/B,CAAC;AACD,MAAM,UAAU,UAAU,CAAC,IAAwC;IACjE,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,SAAoB,EAAuB,EAAE,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC;AAE9F,SAAS,MAAM,CAAC,CAAY,EAAE,CAAY;IACxC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAkB,EAAE,KAAkB;IACpE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACjF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,KAAK,CAAC,gBAAgB,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAA0B;IACxD,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAC5C,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACf,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/E,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CACvC,CAAC;YACF,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAClC,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,49 +1,67 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jpmorganchase/mosaic-plugins",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.90",
|
|
4
4
|
"author": "",
|
|
5
5
|
"description": "Mosaic plugins for core file system",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
|
-
"
|
|
7
|
+
"type": "module",
|
|
8
|
+
"exports": {
|
|
9
|
+
"./*": {
|
|
10
|
+
"types": "./dist/*.d.ts",
|
|
11
|
+
"import": "./dist/*.js",
|
|
12
|
+
"node": "./dist/*.js",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./PluginError": {
|
|
16
|
+
"types": "./dist/utils/PluginError.d.ts",
|
|
17
|
+
"import": "./dist/utils/PluginError.js",
|
|
18
|
+
"node": "./dist/utils/PluginError.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
8
21
|
"engines": {
|
|
9
|
-
"node": ">=
|
|
22
|
+
"node": ">=18.0.0 || >=20.0.0"
|
|
10
23
|
},
|
|
11
24
|
"files": [
|
|
12
25
|
"dist"
|
|
13
26
|
],
|
|
14
27
|
"scripts": {
|
|
15
|
-
"build": "
|
|
16
|
-
"clean": "rm -fr dist"
|
|
28
|
+
"build": "tsc",
|
|
29
|
+
"clean": "rm -fr dist",
|
|
30
|
+
"lint": "eslint --ignore-pattern \"**/__tests__/**\""
|
|
17
31
|
},
|
|
18
32
|
"repository": {
|
|
19
33
|
"type": "git",
|
|
20
|
-
"url": "git@github.com:jpmorganchase/mosaic.git"
|
|
21
|
-
|
|
22
|
-
"devDependencies": {
|
|
23
|
-
"@swc/cli": "^0.1.55",
|
|
24
|
-
"@swc/core": "^1.2.237",
|
|
25
|
-
"@types/fs-extra": "^9.0.13",
|
|
26
|
-
"renamer": "^4.0.0"
|
|
34
|
+
"url": "git@github.com:jpmorganchase/mosaic.git",
|
|
35
|
+
"directory": "packages/plugins"
|
|
27
36
|
},
|
|
28
37
|
"dependencies": {
|
|
29
|
-
"@apidevtools/json-schema-ref-parser": "^
|
|
30
|
-
"@jpmorganchase/mosaic-
|
|
31
|
-
"@jpmorganchase/mosaic-
|
|
32
|
-
"@jpmorganchase/mosaic-source-
|
|
33
|
-
"@jpmorganchase/mosaic-
|
|
38
|
+
"@apidevtools/json-schema-ref-parser": "^10.1.0",
|
|
39
|
+
"@jpmorganchase/mosaic-schemas": "^0.1.0-beta.90",
|
|
40
|
+
"@jpmorganchase/mosaic-serialisers": "^0.1.0-beta.90",
|
|
41
|
+
"@jpmorganchase/mosaic-source-git-repo": "^0.1.0-beta.90",
|
|
42
|
+
"@jpmorganchase/mosaic-source-local-folder": "^0.1.0-beta.90",
|
|
43
|
+
"@jpmorganchase/mosaic-types": "^0.1.0-beta.90",
|
|
34
44
|
"@types/github-slugger": "^1.3.0",
|
|
35
|
-
"
|
|
36
|
-
"
|
|
45
|
+
"check-links": "^2.0.0",
|
|
46
|
+
"deepmerge": "^4.3.1",
|
|
37
47
|
"github-slugger": "^1.4.0",
|
|
38
|
-
"
|
|
39
|
-
"
|
|
48
|
+
"https-proxy-agent": "^5.0.1",
|
|
49
|
+
"lodash-es": "^4.17.21",
|
|
50
|
+
"memfs": "^4.0.0",
|
|
51
|
+
"react-docgen-typescript": "^2.2.2",
|
|
40
52
|
"reading-time": "^1.5.0",
|
|
41
|
-
"remark
|
|
42
|
-
"remark-
|
|
43
|
-
"remark-
|
|
53
|
+
"remark": "^15.0.0",
|
|
54
|
+
"remark-directive": "^3.0.0",
|
|
55
|
+
"remark-gfm": "^4.0.0",
|
|
56
|
+
"remark-mdx": "^3.0.0",
|
|
57
|
+
"remark-parse": "^11.0.0",
|
|
58
|
+
"remark-stringify": "^11.0.0",
|
|
44
59
|
"rxjs": "^7.5.5",
|
|
45
|
-
"unified": "^
|
|
46
|
-
"unist-util-visit": "^
|
|
47
|
-
"
|
|
60
|
+
"unified": "^11.0.0",
|
|
61
|
+
"unist-util-visit": "^5.0.0",
|
|
62
|
+
"mdast-util-directive": "^3.0.0",
|
|
63
|
+
"mdast-util-to-string": "^4.0.0",
|
|
64
|
+
"uuid": "^7.0.3",
|
|
65
|
+
"vfile-reporter": "^7.0.5"
|
|
48
66
|
}
|
|
49
67
|
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
# @jpmorganchase/mosaic-plugins
|
|
2
|
-
|
|
3
|
-
## 0.1.0-beta.9
|
|
4
|
-
|
|
5
|
-
### Minor Changes
|
|
6
|
-
|
|
7
|
-
- c3fee89: initial components package
|
|
8
|
-
|
|
9
|
-
- added JSDOM testing
|
|
10
|
-
|
|
11
|
-
### Patch Changes
|
|
12
|
-
|
|
13
|
-
- Updated dependencies [c3fee89]
|
|
14
|
-
- @jpmorganchase/mosaic-serialisers@0.1.0-beta.9
|
|
15
|
-
- @jpmorganchase/mosaic-source-git-repo@0.1.0-beta.9
|
|
16
|
-
- @jpmorganchase/mosaic-source-local-folder@0.1.0-beta.9
|
|
17
|
-
- @jpmorganchase/mosaic-types@0.1.0-beta.9
|
|
18
|
-
|
|
19
|
-
## 0.1.0-beta.8
|
|
20
|
-
|
|
21
|
-
### Minor Changes
|
|
22
|
-
|
|
23
|
-
- 2dca0b1: initial release of Mosaic store package
|
|
24
|
-
|
|
25
|
-
### Patch Changes
|
|
26
|
-
|
|
27
|
-
- Updated dependencies [2dca0b1]
|
|
28
|
-
- @jpmorganchase/mosaic-serialisers@0.1.0-beta.8
|
|
29
|
-
- @jpmorganchase/mosaic-source-git-repo@0.1.0-beta.8
|
|
30
|
-
- @jpmorganchase/mosaic-source-local-folder@0.1.0-beta.8
|
|
31
|
-
- @jpmorganchase/mosaic-types@0.1.0-beta.8
|
|
32
|
-
|
|
33
|
-
## 0.1.0-beta.7
|
|
34
|
-
|
|
35
|
-
### Minor Changes
|
|
36
|
-
|
|
37
|
-
- f82c397: Initial release of theme and client side search
|
|
38
|
-
|
|
39
|
-
We are iterating towards deploying our site code.
|
|
40
|
-
|
|
41
|
-
This release includes
|
|
42
|
-
|
|
43
|
-
- initial work for client-side search support
|
|
44
|
-
- Mosaic theme.
|
|
45
|
-
|
|
46
|
-
### Patch Changes
|
|
47
|
-
|
|
48
|
-
- Updated dependencies [f82c397]
|
|
49
|
-
- @jpmorganchase/mosaic-serialisers@0.1.0-beta.7
|
|
50
|
-
- @jpmorganchase/mosaic-source-git-repo@0.1.0-beta.7
|
|
51
|
-
- @jpmorganchase/mosaic-source-local-folder@0.1.0-beta.7
|
|
52
|
-
- @jpmorganchase/mosaic-types@0.1.0-beta.7
|
|
53
|
-
|
|
54
|
-
## 0.1.0-beta.6
|
|
55
|
-
|
|
56
|
-
### Patch Changes
|
|
57
|
-
|
|
58
|
-
- c103b24: Release fixes for snapshot serve
|
|
59
|
-
- Updated dependencies [c103b24]
|
|
60
|
-
- @jpmorganchase/mosaic-types@0.1.0-beta.6
|
|
61
|
-
|
|
62
|
-
## 0.1.0-beta.5
|
|
63
|
-
|
|
64
|
-
### Patch Changes
|
|
65
|
-
|
|
66
|
-
- 61a246c: This releases add support for generate / build and serve snapshots
|
|
67
|
-
- Updated dependencies [61a246c]
|
|
68
|
-
- @jpmorganchase/mosaic-types@0.1.0-beta.5
|
|
69
|
-
|
|
70
|
-
## 0.1.0-beta.4
|
|
71
|
-
|
|
72
|
-
### Patch Changes
|
|
73
|
-
|
|
74
|
-
- bd285df: added dist to package.json
|
|
75
|
-
- Updated dependencies [bd285df]
|
|
76
|
-
- @jpmorganchase/mosaic-types@0.1.0-beta.4
|
|
77
|
-
|
|
78
|
-
## 0.1.0-beta.3
|
|
79
|
-
|
|
80
|
-
### Patch Changes
|
|
81
|
-
|
|
82
|
-
- 457df5e: switch to public package
|
|
83
|
-
- Updated dependencies [457df5e]
|
|
84
|
-
- @jpmorganchase/mosaic-types@0.1.0-beta.3
|
|
85
|
-
|
|
86
|
-
## 0.1.0-beta.2
|
|
87
|
-
|
|
88
|
-
### Patch Changes
|
|
89
|
-
|
|
90
|
-
- e1bbbe7: Initial release of Mosaic Core file-system.
|
|
91
|
-
|
|
92
|
-
Mosaic is a content aggregating service which pulls content from heterogeneous data sources.
|
|
93
|
-
|
|
94
|
-
- 4b2bc51: pipped to 0.1.0-beta.1 for publishing to NPM
|
|
95
|
-
- Updated dependencies [e1bbbe7]
|
|
96
|
-
- Updated dependencies [4b2bc51]
|
|
97
|
-
- @jpmorganchase/mosaic-types@0.1.0-beta.2
|
|
98
|
-
|
|
99
|
-
## 0.1.0
|
|
100
|
-
|
|
101
|
-
### Patch Changes
|
|
102
|
-
|
|
103
|
-
- e1bbbe7: Initial release of Mosaic Core file-system.
|
|
104
|
-
|
|
105
|
-
Mosaic is a content aggregating service which pulls content from heterogeneous data sources.
|
|
106
|
-
|
|
107
|
-
- Updated dependencies [e1bbbe7]
|
|
108
|
-
- Updated dependencies [bbc853c]
|
|
109
|
-
- @jpmorganchase/mosaic-types@0.1.0
|
|
@@ -1,48 +0,0 @@
|
|
|
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 path_1 = __importDefault(require("path"));
|
|
27
|
-
const fs_1 = __importDefault(require("fs"));
|
|
28
|
-
const mdx_1 = __importDefault(require("@jpmorganchase/mosaic-serialisers/dist/mdx"));
|
|
29
|
-
const LocalFolderSavePlugin = {
|
|
30
|
-
saveContent(filePath, data, sourceOptions, { namespace }) {
|
|
31
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
-
const { markdown } = data;
|
|
33
|
-
const { rootDir, prefixDir } = sourceOptions;
|
|
34
|
-
if (namespace !== 'local') {
|
|
35
|
-
// indicate to the Plugin Runner that no save happened
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
const pathOnDisk = path_1.default.posix.join(rootDir, filePath.replace(new RegExp(`${prefixDir}/`), ''));
|
|
39
|
-
const rawPage = yield fs_1.default.promises.readFile(pathOnDisk);
|
|
40
|
-
const _a = yield mdx_1.default.deserialise(pathOnDisk, rawPage), { content } = _a, metadata = __rest(_a, ["content"]);
|
|
41
|
-
const updatedPage = Object.assign(Object.assign({}, metadata), { content: markdown });
|
|
42
|
-
yield fs_1.default.promises.writeFile(pathOnDisk, yield mdx_1.default.serialise(pathOnDisk, updatedPage));
|
|
43
|
-
return true;
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
exports.default = LocalFolderSavePlugin;
|
|
48
|
-
//# sourceMappingURL=LocalFolderSavePlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LocalFolderSavePlugin.js","sourceRoot":"","sources":["../src/LocalFolderSavePlugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AAGpB,qFAAuF;AAMvF,MAAM,qBAAqB,GAAe;IAClC,WAAW,CACf,QAAQ,EACR,IAA+B,EAC/B,aAAuC,EACvC,EAAE,SAAS,EAAE;;YAEb,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YAC1B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;YAE7C,IAAI,SAAS,KAAK,OAAO,EAAE;gBACzB,sDAAsD;gBACtD,OAAO,KAAK,CAAC;aACd;YAED,MAAM,UAAU,GAAG,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/F,MAAM,OAAO,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,KAA2B,MAAM,aAAc,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,EAAhF,EAAE,OAAO,OAAuE,EAAlE,QAAQ,cAAtB,WAAwB,CAAwD,CAAC;YACvF,MAAM,WAAW,mCAAQ,QAAQ,KAAE,OAAO,EAAE,QAAQ,GAAE,CAAC;YAEvD,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,UAAU,EACV,MAAM,aAAc,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CACxD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;CACF,CAAC;AAEF,kBAAe,qBAAqB,CAAC"}
|
|
@@ -1,63 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const lodash_1 = require("lodash");
|
|
13
|
-
function createFileGlob(url, pageExtensions) {
|
|
14
|
-
if (pageExtensions.length === 1) {
|
|
15
|
-
return `${url}${pageExtensions[0]}`;
|
|
16
|
-
}
|
|
17
|
-
return `${url}{${pageExtensions.join(',')}}`;
|
|
18
|
-
}
|
|
19
|
-
function createSortFn(pageExtensions, { sortBy: _sortBy, indexFirst }) {
|
|
20
|
-
const indexRegExp = indexFirst && new RegExp(`index${pageExtensions.map(lodash_1.escapeRegExp).join('|')}$`);
|
|
21
|
-
// TODO: Switch out the algorithm here, based on `sortBy`
|
|
22
|
-
return function sortFn(fullPathA, fullPathB) {
|
|
23
|
-
// Always pin /index to the front
|
|
24
|
-
if (indexFirst && indexRegExp.test(fullPathA)) {
|
|
25
|
-
return -1;
|
|
26
|
-
}
|
|
27
|
-
return fullPathA.localeCompare(fullPathB);
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Sorts the pages in a folder alphabetically and then embeds a `navigation` property to the metadata with ordered
|
|
32
|
-
* next/prev pages
|
|
33
|
-
*/
|
|
34
|
-
const NextPrevPlugin = {
|
|
35
|
-
$beforeSend(mutableFilesystem, { config, pageExtensions, ignorePages }, { indexFirst, sortBy }) {
|
|
36
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
const pageDirs = (yield mutableFilesystem.promises.glob('**', {
|
|
38
|
-
onlyDirectories: true,
|
|
39
|
-
ignore: ignorePages.map(ignore => `**/${ignore}`),
|
|
40
|
-
cwd: '/'
|
|
41
|
-
}));
|
|
42
|
-
for (const dirName of pageDirs) {
|
|
43
|
-
const pages = (yield mutableFilesystem.promises.glob(createFileGlob('*', pageExtensions), {
|
|
44
|
-
onlyFiles: true,
|
|
45
|
-
cwd: dirName,
|
|
46
|
-
ignore: ignorePages
|
|
47
|
-
})).sort(createSortFn(pageExtensions, { indexFirst, sortBy }));
|
|
48
|
-
for (let i = 0; i < pages.length; i++) {
|
|
49
|
-
if (i > 0) {
|
|
50
|
-
config.setRef(pages[i], ['navigation', 'prev', 'title', '$ref'], `${pages[i - 1]}#/title`);
|
|
51
|
-
config.setRef(pages[i], ['navigation', 'prev', 'fullPath', '$ref'], `${pages[i - 1]}#/route`);
|
|
52
|
-
}
|
|
53
|
-
if (i < pages.length - 1) {
|
|
54
|
-
config.setRef(pages[i], ['navigation', 'next', 'title', '$ref'], `${pages[i + 1]}#/title`);
|
|
55
|
-
config.setRef(pages[i], ['navigation', 'next', 'fullPath', '$ref'], `${pages[i + 1]}#/route`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
exports.default = NextPrevPlugin;
|
|
63
|
-
//# sourceMappingURL=NextPrevPagePlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NextPrevPagePlugin.js","sourceRoot":"","sources":["../src/NextPrevPagePlugin.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,mCAAsC;AAEtC,SAAS,cAAc,CAAC,GAAG,EAAE,cAAc;IACzC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC/B,OAAO,GAAG,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;KACrC;IACD,OAAO,GAAG,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,SAAS,YAAY,CACnB,cAAwB,EACxB,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAyB;IAEtD,MAAM,WAAW,GACf,UAAU,IAAI,IAAI,MAAM,CAAC,QAAQ,cAAc,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAElF,yDAAyD;IACzD,OAAO,SAAS,MAAM,CAAC,SAAS,EAAE,SAAS;QACzC,iCAAiC;QACjC,IAAI,UAAU,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC7C,OAAO,CAAC,CAAC,CAAC;SACX;QACD,OAAO,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC;AAYD;;;GAGG;AACH,MAAM,cAAc,GAA0D;IACtE,WAAW,CACf,iBAAiB,EACjB,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,EACvC,EAAE,UAAU,EAAE,MAAM,EAAE;;YAEtB,MAAM,QAAQ,GAAG,CAAC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC5D,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,MAAM,EAAE,CAAC;gBACjD,GAAG,EAAE,GAAG;aACT,CAAC,CAAa,CAAC;YAChB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,MAAM,KAAK,GAAG,CACZ,MAAM,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE;oBACzE,SAAS,EAAE,IAAI;oBACf,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,WAAW;iBACpB,CAAC,CACH,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAa,CAAC;gBACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACrC,IAAI,CAAC,GAAG,CAAC,EAAE;wBACT,MAAM,CAAC,MAAM,CACX,KAAK,CAAC,CAAC,CAAC,EACR,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EACvC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CACzB,CAAC;wBACF,MAAM,CAAC,MAAM,CACX,KAAK,CAAC,CAAC,CAAC,EACR,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAC1C,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CACzB,CAAC;qBACH;oBACD,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBACxB,MAAM,CAAC,MAAM,CACX,KAAK,CAAC,CAAC,CAAC,EACR,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EACvC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CACzB,CAAC;wBACF,MAAM,CAAC,MAAM,CACX,KAAK,CAAC,CAAC,CAAC,EACR,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAC1C,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CACzB,CAAC;qBACH;iBACF;aACF;QACH,CAAC;KAAA;CACF,CAAC;AAEF,kBAAe,cAAc,CAAC"}
|