@jpmorganchase/mosaic-plugins 0.1.0-beta.75 → 0.1.0-beta.77

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.
@@ -12,27 +12,27 @@ const BreadcrumbsPlugin = {
12
12
  continue;
13
13
  }
14
14
  try {
15
- const breadcrumbs = [];
16
- let currentPage = page;
17
- let parentDir = path.posix.normalize(path.posix.dirname(currentPage.fullPath));
18
- const maxBreadcrumbCount = page.fullPath.split('/').length;
19
- while (currentPage !== undefined && breadcrumbs.length < maxBreadcrumbCount) {
20
- breadcrumbs.unshift({
21
- label: currentPage.sidebar?.label || currentPage.title,
22
- path: currentPage.route,
23
- id: currentPage.fullPath
24
- });
25
- currentPage = pages.find(
15
+ const pathParts = page.fullPath.replace(/^[/]/, '').split('/');
16
+ const topAndTailedPath = pathParts.slice(1, -1);
17
+ const breadcrumbs = topAndTailedPath.reduce((result, _pathPart, partIndex) => {
18
+ const breadcrumbRoot = `/${pathParts[0]}`;
19
+ const breadcrumbPath = path.join(breadcrumbRoot, ...topAndTailedPath.slice(0, topAndTailedPath.length - partIndex), options.indexPageName);
20
+ const breadcrumbPage = pages.find(
26
21
  // eslint-disable-next-line @typescript-eslint/no-loop-func
27
- item => item.fullPath === path.posix.join(parentDir, options.indexPageName));
28
- if (currentPage) {
29
- parentDir = path.posix.dirname(path.posix.join(String(currentPage.fullPath), '..'));
22
+ item => item.fullPath === breadcrumbPath);
23
+ if (breadcrumbPage) {
24
+ result.unshift({
25
+ label: breadcrumbPage.sidebar?.groupLabel ||
26
+ breadcrumbPage.sidebar?.label ||
27
+ breadcrumbPage.title,
28
+ path: breadcrumbPage.route,
29
+ id: breadcrumbPage.fullPath
30
+ });
30
31
  }
31
- }
32
+ return result;
33
+ }, []);
32
34
  if (!page.breadcrumbs) {
33
- // filter out any duplicate breadcrumbs
34
- const map = new Map(breadcrumbs.map(crumb => [crumb.id, crumb]));
35
- page.breadcrumbs = [...map.values()];
35
+ page.breadcrumbs = breadcrumbs;
36
36
  }
37
37
  }
38
38
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbsPlugin.js","sourceRoot":"","sources":["../src/BreadcrumbsPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BreadcrumbsPlugin.js","sourceRoot":"","sources":["../src/BreadcrumbsPlugin.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ interface SidebarPluginConfigData {
12
12
  export interface SidebarPluginPage extends Page {
13
13
  sidebar?: {
14
14
  label?: string;
15
+ groupLabel?: string;
15
16
  };
16
17
  sharedConfig: {
17
18
  sidebar: {
@@ -1,7 +1,7 @@
1
1
  import path from 'path';
2
2
  import { sidebarSortConfigSchema } from '@jpmorganchase/mosaic-schemas';
3
- import { cloneDeep } from 'lodash-es';
4
- import { sortSidebarData } from './utils/sortSidebarData.js';
3
+ import { cloneDeep, escapeRegExp } from 'lodash-es';
4
+ import { isDataNode, isGroupNode, sortSidebarData } from './utils/sortSidebarData.js';
5
5
  function createFileGlob(patterns, pageExtensions) {
6
6
  if (Array.isArray(patterns)) {
7
7
  return patterns.map(pattern => createFileGlob(pattern, pageExtensions));
@@ -56,6 +56,16 @@ function getSortFieldData(page, sharedSortConfig) {
56
56
  }
57
57
  return fieldData;
58
58
  }
59
+ const createPageTest = (ignorePages, pageExtensions) => {
60
+ const extTest = new RegExp(`${pageExtensions.map(ext => escapeRegExp(ext)).join('|')}$`);
61
+ const ignoreTest = new RegExp(`${ignorePages.map(ignore => escapeRegExp(ignore)).join('|')}$`);
62
+ return file => !ignoreTest.test(file) && extTest.test(file) && !path.basename(file).startsWith('.');
63
+ };
64
+ /**
65
+ * Directories create groups of pages, the index file within that group is assigned GROUP_DEFAULT_PRIORITY
66
+ * to ensure it comes first. This can be overriden by the metadata to move the position of the default page.
67
+ */
68
+ const GROUP_DEFAULT_PRIORITY = 999;
59
69
  /**
60
70
  * Sorts the pages in a folder by priority and then exports a JSON file with the
61
71
  * sidebar tree from that directory downwards and adds sidebar data into frontmatter for each page.
@@ -66,6 +76,21 @@ function getSortFieldData(page, sharedSortConfig) {
66
76
  * to define the previous/next page in the page sequence, as defined by sidebar label and priority
67
77
  */
68
78
  const SidebarPlugin = {
79
+ async $afterSource(pages, { ignorePages = [], pageExtensions = [] }) {
80
+ for (const page of pages) {
81
+ const isNonHiddenPage = createPageTest(ignorePages, pageExtensions);
82
+ if (!isNonHiddenPage(page.fullPath)) {
83
+ continue;
84
+ }
85
+ let sidebar = {
86
+ label: page.title,
87
+ groupLabel: page?.sidebar?.label || page.title,
88
+ ...page?.sidebar
89
+ };
90
+ page.sidebar = sidebar;
91
+ }
92
+ return pages;
93
+ },
69
94
  async $beforeSend(mutableFilesystem, { config, serialiser, ignorePages, pageExtensions }, { filename = 'sidebar.json', rootDirGlob = '*' }) {
70
95
  /**
71
96
  * Create a list of pages that should be used to build a sidebar.json
@@ -111,40 +136,40 @@ const SidebarPlugin = {
111
136
  }
112
137
  }
113
138
  const priority = page.sidebar?.priority;
114
- const id = page.route;
115
- const isGroup = /\/index$/.test(page.route);
139
+ const isGroupDefaultPage = /\/index$/.test(page.route);
116
140
  const groupPath = path.posix.dirname(page.fullPath);
117
- const level = getPageLevel(page);
118
- const newChildNode = {
119
- id,
141
+ let newChildNode = {
142
+ id: page.route,
143
+ kind: 'data',
120
144
  fullPath: page.fullPath,
121
145
  name,
122
- priority,
123
- data: { level, link: page.route },
124
- childNodes: []
146
+ priority: isGroupDefaultPage ? priority || GROUP_DEFAULT_PRIORITY : priority,
147
+ data: { level: getPageLevel(page), link: page.route }
125
148
  };
126
- if (!isGroup && sortConfigPages[`${path.posix.dirname(page.fullPath)}`] !== undefined) {
127
- const fieldData = getSortFieldData(page, sortConfigPages[`${path.posix.dirname(page.fullPath)}`]);
128
- newChildNode.sharedSortConfig = {
129
- ...sortConfigPages[`${path.posix.dirname(page.fullPath)}`],
130
- fieldData
131
- };
132
- }
133
- if (isGroup) {
134
- result[groupPath] = {
135
- ...newChildNode,
136
- ...result[groupPath]
149
+ const currentChildNodes = Object.prototype.hasOwnProperty.call(result, groupPath)
150
+ ? result[groupPath].childNodes
151
+ : [];
152
+ let newGroupNode = {
153
+ ...result[groupPath],
154
+ id: path.posix.dirname(page.route),
155
+ kind: 'group',
156
+ childNodes: [...currentChildNodes, newChildNode]
157
+ };
158
+ if (isGroupDefaultPage) {
159
+ newGroupNode = {
160
+ ...newGroupNode,
161
+ name: page.sidebar?.groupLabel || name,
162
+ priority
137
163
  };
138
164
  }
139
- else {
140
- const childNodes = Object.prototype.hasOwnProperty.call(result, groupPath)
141
- ? result[groupPath].childNodes
142
- : [];
143
- result[groupPath] = {
144
- ...result[groupPath],
145
- childNodes: [...childNodes, newChildNode]
165
+ if (!isGroupDefaultPage && sortConfigPages[groupPath] !== undefined) {
166
+ const fieldData = getSortFieldData(page, sortConfigPages[groupPath]);
167
+ newChildNode.sharedSortConfig = {
168
+ ...sortConfigPages[groupPath],
169
+ fieldData
146
170
  };
147
171
  }
172
+ result[groupPath] = newGroupNode;
148
173
  return result;
149
174
  }, {});
150
175
  }
@@ -178,48 +203,68 @@ const SidebarPlugin = {
178
203
  config.setRef(String(page.fullPath), ['sidebarData', '$ref'], path.posix.join(dirName, filename, '#', 'pages'));
179
204
  });
180
205
  }
181
- const createNavigationRefs = (currPage, prevPage, nextPage) => {
206
+ const createNavigationRefs = (rootDir, currPage, prevPage, nextPage) => {
182
207
  if (prevPage) {
183
208
  config.setRef(currPage, ['navigation', 'prev', 'title', '$ref'], `${prevPage}#/title`);
184
209
  config.setRef(currPage, ['navigation', 'prev', 'route', '$ref'], `${prevPage}#/route`);
210
+ const parentPath = path.posix.dirname(prevPage);
211
+ if (parentPath !== rootDir) {
212
+ config.setRef(currPage, ['navigation', 'prev', 'group', '$ref'], `${parentPath}#/sidebar/groupLabel`);
213
+ }
185
214
  }
186
215
  if (nextPage) {
187
216
  config.setRef(currPage, ['navigation', 'next', 'title', '$ref'], `${nextPage}#/title`);
188
217
  config.setRef(currPage, ['navigation', 'next', 'route', '$ref'], `${nextPage}#/route`);
218
+ const parentPath = path.posix.dirname(nextPage);
219
+ if (parentPath !== rootDir) {
220
+ config.setRef(currPage, ['navigation', 'next', 'group', '$ref'], `${parentPath}#/sidebar/groupLabel`);
221
+ }
189
222
  }
190
223
  };
191
- function addNavigationToFrontmatter(pages) {
192
- let prevParentPage, nextParentPage;
193
- const getLastPage = pages => {
194
- if (pages[pages.length - 1].childNodes?.length) {
195
- return getLastPage(pages[pages.length - 1].childNodes);
224
+ function addNavigationToFrontmatter(pages, rootDir) {
225
+ const getRelativeDataNode = (node, position) => {
226
+ let targetNode = node;
227
+ if (isGroupNode(node)) {
228
+ targetNode = node.childNodes[position === 'previous' ? node.childNodes.length - 1 : 0];
196
229
  }
197
- return pages[pages.length - 1];
230
+ return isGroupNode(targetNode) ? getRelativeDataNode(targetNode, position) : targetNode;
198
231
  };
199
- const lastPage = getLastPage(pages);
200
- const isFirstPage = page => page === pages[0];
201
- const isLastPage = page => page === lastPage;
232
+ const isLastPage = page => {
233
+ const lastPage = getRelativeDataNode(pages, 'previous');
234
+ return page === lastPage;
235
+ };
236
+ let prevParentPage = [];
237
+ let nextParentPage = [];
202
238
  function recursiveAddNavigation(pages) {
239
+ let nextPage, prevPage;
203
240
  pages.forEach((page, pageIndex) => {
204
- const { fullPath: currPage } = page;
205
- let prevPage, nextPage;
206
- prevPage = prevParentPage;
207
- prevParentPage = isFirstPage(page) ? undefined : pages[pageIndex].fullPath;
208
- if (page.childNodes?.length) {
209
- nextPage = page.childNodes[0].fullPath;
210
- nextParentPage =
211
- pageIndex < pages.length - 1 ? pages[pageIndex + 1].fullPath : nextParentPage;
241
+ if (isLastPage(page)) {
242
+ nextPage = undefined;
243
+ }
244
+ else if (pageIndex === pages.length - 1) {
245
+ nextPage = nextParentPage.pop();
246
+ }
247
+ else {
248
+ nextPage = getRelativeDataNode(pages[pageIndex + 1], 'next');
212
249
  }
213
- else if (pageIndex < pages.length - 1) {
214
- nextPage = pages[pageIndex + 1].fullPath;
250
+ if (pageIndex === 0) {
251
+ prevPage = prevParentPage.pop();
215
252
  }
216
253
  else {
217
- nextPage = isLastPage(page) ? undefined : nextParentPage;
254
+ prevPage = getRelativeDataNode(pages[pageIndex - 1], 'previous');
255
+ }
256
+ if (isDataNode(page)) {
257
+ createNavigationRefs(rootDir, page.fullPath, prevPage?.fullPath, nextPage?.fullPath);
218
258
  }
219
- if (currPage !== undefined) {
220
- createNavigationRefs(currPage, prevPage, nextPage);
259
+ else {
260
+ if (nextPage) {
261
+ nextParentPage.push(nextPage);
262
+ }
263
+ if (prevPage) {
264
+ prevParentPage.push(prevPage);
265
+ }
266
+ recursiveAddNavigation(page.childNodes);
221
267
  }
222
- recursiveAddNavigation(page.childNodes);
223
268
  });
224
269
  }
225
270
  recursiveAddNavigation(pages);
@@ -230,13 +275,6 @@ const SidebarPlugin = {
230
275
  cwd: '/'
231
276
  });
232
277
  const removeExcludedPages = page => !(page.sidebar && page.sidebar.exclude);
233
- function moveRootPageDown(pagesByPriority) {
234
- const rootPage = pagesByPriority[0];
235
- const pagesWithRootMovedDown = rootPage.childNodes;
236
- pagesWithRootMovedDown.unshift(rootPage);
237
- rootPage.childNodes = [];
238
- return pagesWithRootMovedDown;
239
- }
240
278
  await Promise.all(rootUserJourneys.map(async (rootDir) => {
241
279
  const sidebarFilePath = path.posix.join(String(rootDir), filename);
242
280
  const pages = await createPageList(rootDir);
@@ -248,10 +286,14 @@ const SidebarPlugin = {
248
286
  console.log('[Mosaic] SidebarPlugin - likely you have a directory without an index file');
249
287
  return;
250
288
  }
251
- const sortedSidebarData = sortSidebarData(sidebarData);
252
- addNavigationToFrontmatter(sortedSidebarData);
253
- const pagesWithRootMovedDown = moveRootPageDown(sortedSidebarData);
254
- await mutableFilesystem.promises.writeFile(sidebarFilePath, JSON.stringify({ pages: pagesWithRootMovedDown }));
289
+ const sortedRootSidebar = sortSidebarData(sidebarData);
290
+ addNavigationToFrontmatter(sortedRootSidebar, rootDir);
291
+ if (isGroupNode(sortedRootSidebar[0])) {
292
+ await mutableFilesystem.promises.writeFile(sidebarFilePath, JSON.stringify({ pages: sortedRootSidebar[0].childNodes }));
293
+ }
294
+ else {
295
+ console.warn(`[Mosaic] SidebarPlugin - Unable to sort Sidebar grouping for ${rootDir}`);
296
+ }
255
297
  addSidebarDataToFrontmatter(pages, rootDir);
256
298
  }));
257
299
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarPlugin.js","sourceRoot":"","sources":["../src/SidebarPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SidebarPlugin.js","sourceRoot":"","sources":["../src/SidebarPlugin.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ interface SortConfigWithValue extends SortConfig {
4
4
  fieldData: FieldData;
5
5
  }
6
6
  export interface SidebarDataNode {
7
+ kind: 'data';
7
8
  id: string;
8
9
  fullPath: string;
9
10
  name: string;
@@ -12,8 +13,17 @@ export interface SidebarDataNode {
12
13
  level: number;
13
14
  link: string;
14
15
  };
15
- childNodes: SidebarDataNode[];
16
16
  sharedSortConfig?: SortConfigWithValue;
17
17
  }
18
- export declare function sortSidebarData(sidebarData: SidebarDataNode[]): SidebarDataNode[];
18
+ export declare 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)[];
19
29
  export {};
@@ -1,3 +1,9 @@
1
+ export function isGroupNode(node) {
2
+ return node.kind === 'group';
3
+ }
4
+ export function isDataNode(node) {
5
+ return node.kind === 'data';
6
+ }
1
7
  const isNumber = (fieldData) => typeof fieldData === 'number';
2
8
  function doSort(a, b) {
3
9
  if (isNumber(a) && isNumber(b)) {
@@ -11,24 +17,30 @@ function doSort(a, b) {
11
17
  }
12
18
  return 0;
13
19
  }
14
- function sortBySharedSortConfig(pageA, pageB) {
15
- if (pageA.sharedSortConfig === undefined || pageB.sharedSortConfig === undefined) {
20
+ function sortBySharedSortConfig(nodeA, nodeB) {
21
+ if (!isDataNode(nodeA) || !isDataNode(nodeB)) {
16
22
  return 0;
17
23
  }
18
- if (pageA.sharedSortConfig?.arrange === 'asc') {
19
- return doSort(pageA.sharedSortConfig.fieldData, pageB.sharedSortConfig.fieldData);
24
+ if (nodeA.sharedSortConfig === undefined || nodeB.sharedSortConfig === undefined) {
25
+ return 0;
20
26
  }
21
- return doSort(pageB.sharedSortConfig.fieldData, pageA.sharedSortConfig.fieldData);
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);
22
31
  }
23
32
  export function sortSidebarData(sidebarData) {
24
- const pagesByPriority = sidebarData.map(page => {
25
- if (page.childNodes?.length > 1) {
26
- const sortedChildNodes = page.childNodes.sort((pageA, pageB) => (pageB.priority ? pageB.priority : -1) - (pageA.priority ? pageA.priority : -1) ||
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) ||
27
39
  sortBySharedSortConfig(pageA, pageB));
28
- sortSidebarData(page.childNodes);
29
- return { ...page, childNodes: sortedChildNodes };
40
+ sortSidebarData(group.childNodes);
41
+ return { ...group, childNodes: sortedChildNodes };
30
42
  }
31
- return page;
43
+ return group;
32
44
  });
33
45
  return pagesByPriority;
34
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sortSidebarData.js","sourceRoot":"","sources":["../../src/utils/sortSidebarData.ts"],"names":[],"mappings":"AAiBA,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;QAC9B,OAAO,CAAC,GAAG,CAAC,CAAC;KACd;IACD,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,OAAO,CAAC,CAAC;KACV;IACD,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,OAAO,CAAC,CAAC,CAAC;KACX;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAsB,EAAE,KAAsB;IAC5E,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE;QAChF,OAAO,CAAC,CAAC;KACV;IAED,IAAI,KAAK,CAAC,gBAAgB,EAAE,OAAO,KAAK,KAAK,EAAE;QAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;KACnF;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAA8B;IAC5D,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC7C,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;YAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAC3C,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,IAAI,CAAC,UAAU,CAAC,CAAC;YACjC,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;SAClD;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;AACzB,CAAC"}
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;QAC9B,OAAO,CAAC,GAAG,CAAC,CAAC;KACd;IACD,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,OAAO,CAAC,CAAC;KACV;IACD,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,OAAO,CAAC,CAAC,CAAC;KACX;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;QAC5C,OAAO,CAAC,CAAC;KACV;IACD,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE;QAChF,OAAO,CAAC,CAAC;KACV;IACD,IAAI,KAAK,CAAC,gBAAgB,EAAE,OAAO,KAAK,KAAK,EAAE;QAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;KACnF;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;YACvB,OAAO,KAAK,CAAC;SACd;QACD,IAAI,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;YACjC,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;SACnD;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jpmorganchase/mosaic-plugins",
3
- "version": "0.1.0-beta.75",
3
+ "version": "0.1.0-beta.77",
4
4
  "author": "",
5
5
  "description": "Mosaic plugins for core file system",
6
6
  "license": "Apache-2.0",
@@ -39,11 +39,11 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@apidevtools/json-schema-ref-parser": "^10.1.0",
42
- "@jpmorganchase/mosaic-schemas": "^0.1.0-beta.75",
43
- "@jpmorganchase/mosaic-serialisers": "^0.1.0-beta.75",
44
- "@jpmorganchase/mosaic-source-git-repo": "^0.1.0-beta.75",
45
- "@jpmorganchase/mosaic-source-local-folder": "^0.1.0-beta.75",
46
- "@jpmorganchase/mosaic-types": "^0.1.0-beta.75",
42
+ "@jpmorganchase/mosaic-schemas": "^0.1.0-beta.77",
43
+ "@jpmorganchase/mosaic-serialisers": "^0.1.0-beta.77",
44
+ "@jpmorganchase/mosaic-source-git-repo": "^0.1.0-beta.77",
45
+ "@jpmorganchase/mosaic-source-local-folder": "^0.1.0-beta.77",
46
+ "@jpmorganchase/mosaic-types": "^0.1.0-beta.77",
47
47
  "@types/github-slugger": "^1.3.0",
48
48
  "@vcarl/remark-headings": "^0.1.0",
49
49
  "check-links": "^2.0.0",