@jpmorganchase/mosaic-core 0.1.0-beta.40 → 0.1.0-beta.41
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/PullDocs.d.ts +3 -2
- package/dist/PullDocs.js +3 -3
- package/dist/PullDocs.js.map +1 -1
- package/dist/Source.d.ts +1 -1
- package/dist/Source.js +5 -2
- package/dist/Source.js.map +1 -1
- package/dist/SourceManager.d.ts +1 -1
- package/dist/SourceManager.js +8 -2
- package/dist/SourceManager.js.map +1 -1
- package/dist/worker/helpers/createSourceObservable.d.ts +1 -1
- package/dist/worker/helpers/createSourceObservable.js +8 -4
- package/dist/worker/helpers/createSourceObservable.js.map +1 -1
- package/dist/worker/helpers/exponentialBackOffRetryStrategy.d.ts +9 -0
- package/dist/worker/helpers/exponentialBackOffRetryStrategy.js +18 -0
- package/dist/worker/helpers/exponentialBackOffRetryStrategy.js.map +1 -0
- package/package.json +5 -5
package/dist/PullDocs.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MosaicConfig } from '@jpmorganchase/mosaic-types';
|
|
1
|
+
import { MosaicConfig, SourceModuleDefinition } from '@jpmorganchase/mosaic-types';
|
|
2
2
|
import UnionVolume from './filesystems/UnionVolume.js';
|
|
3
3
|
export default class PullDocs {
|
|
4
4
|
#private;
|
|
@@ -9,6 +9,7 @@ export default class PullDocs {
|
|
|
9
9
|
* @param config.serialisers Serialisers are a form of plugin that tell PullDocs how to turn a file from/to a storable form for the filesystem - or back into a `Page` object
|
|
10
10
|
* @param config.ignorePages Page names to exclude from lazy loading / `$ref`s / `$tag`s / serialisers and also any plugins that expect pages as input. Example input would be "ignore-me.xml"
|
|
11
11
|
* @param config.pageExtensions Exts of files to treat as pages. Pages contain metadata and content, in any file format (as long as a serialiser exists to encode/decode them). They can be referenced via `$ref`s / `$tag`s and also support lazy loading
|
|
12
|
+
* @param config.schedule Schedule to re-pull content from remote sources
|
|
12
13
|
*/
|
|
13
14
|
constructor(config: MosaicConfig);
|
|
14
15
|
get filesystem(): UnionVolume;
|
|
@@ -16,6 +17,6 @@ export default class PullDocs {
|
|
|
16
17
|
start(): Promise<import("./Source.js").default[]>;
|
|
17
18
|
stop(): Promise<void>;
|
|
18
19
|
triggerWorkflow(name: string, filePath: string, data: any): Promise<unknown>;
|
|
19
|
-
addSource(sourceDefinition:
|
|
20
|
+
addSource(sourceDefinition: SourceModuleDefinition): Promise<import("./Source.js").default>;
|
|
20
21
|
stopSource(id: symbol): Promise<void>;
|
|
21
22
|
}
|
package/dist/PullDocs.js
CHANGED
|
@@ -23,13 +23,13 @@ export default class PullDocs {
|
|
|
23
23
|
* @param config.serialisers Serialisers are a form of plugin that tell PullDocs how to turn a file from/to a storable form for the filesystem - or back into a `Page` object
|
|
24
24
|
* @param config.ignorePages Page names to exclude from lazy loading / `$ref`s / `$tag`s / serialisers and also any plugins that expect pages as input. Example input would be "ignore-me.xml"
|
|
25
25
|
* @param config.pageExtensions Exts of files to treat as pages. Pages contain metadata and content, in any file format (as long as a serialiser exists to encode/decode them). They can be referenced via `$ref`s / `$tag`s and also support lazy loading
|
|
26
|
+
* @param config.schedule Schedule to re-pull content from remote sources
|
|
26
27
|
*/
|
|
27
28
|
constructor(config) {
|
|
28
|
-
validateMosaicSchema(mosaicConfigSchema, config, true);
|
|
29
|
+
const { ignorePages = [], sources = [], plugins = [], serialisers = [], pageExtensions = ['.mdx'], schedule } = validateMosaicSchema(mosaicConfigSchema, config, true);
|
|
29
30
|
const sharedFilesystem = new MutableVolume(new FileAccess(new Volume()), '*');
|
|
30
31
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
32
|
this.#ufs.use(sharedFilesystem);
|
|
32
|
-
const { ignorePages = [], sources = [], plugins = [], serialisers = [], pageExtensions = ['.mdx'] } = config;
|
|
33
33
|
this.#sourceDefinitions = sources.filter((source) => !source.disabled);
|
|
34
34
|
this.#vfs = new UnionVolume(new UnionFileAccess(this.#ufs), '*');
|
|
35
35
|
this.#sourceManager = new SourceManager(this.#vfs, sharedFilesystem,
|
|
@@ -58,7 +58,7 @@ export default class PullDocs {
|
|
|
58
58
|
serialisers.concat({
|
|
59
59
|
modulePath: require.resolve('@jpmorganchase/mosaic-serialisers/json'),
|
|
60
60
|
filter: /\.json$/
|
|
61
|
-
}), pageExtensions, ignorePages);
|
|
61
|
+
}), pageExtensions, ignorePages, schedule);
|
|
62
62
|
}
|
|
63
63
|
get filesystem() {
|
|
64
64
|
return this.#vfs;
|
package/dist/PullDocs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PullDocs.js","sourceRoot":"","sources":["../src/PullDocs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAEzF,QAAQ;AACR,gCAAgC;AAChC,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,aAAa,MAAM,gCAAgC,CAAC;AAC3D,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,4BAA4B,MAAM,2CAA2C,CAAC;AAErF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,kBAAkB,CAA2B;IAC7C,cAAc,CAAgB;IAC9B,IAAI,GAAG,IAAI,KAAK,EAAyC,CAAC;IAC1D,IAAI,CAAc;IAElB
|
|
1
|
+
{"version":3,"file":"PullDocs.js","sourceRoot":"","sources":["../src/PullDocs.ts"],"names":[],"mappings":"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"}
|
package/dist/Source.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export default class Source {
|
|
|
9
9
|
namespace: string;
|
|
10
10
|
id: symbol;
|
|
11
11
|
filesystem: MutableVolume;
|
|
12
|
-
constructor({ modulePath, namespace }: SourceModuleDefinition, mergedOptions: Record<string, unknown>, pageExtensions: string[], ignorePages: string[], globalFilesystem: IUnionVolume, workflows?: SourceWorkflow[]);
|
|
12
|
+
constructor({ modulePath, namespace, schedule }: SourceModuleDefinition, mergedOptions: Record<string, unknown>, pageExtensions: string[], ignorePages: string[], globalFilesystem: IUnionVolume, workflows?: SourceWorkflow[]);
|
|
13
13
|
onUpdate(callback: any): () => EventEmitter;
|
|
14
14
|
onError(callback: any): () => EventEmitter;
|
|
15
15
|
onStart(callback: any): () => EventEmitter;
|
package/dist/Source.js
CHANGED
|
@@ -20,17 +20,19 @@ export default class Source {
|
|
|
20
20
|
#pageExtensions;
|
|
21
21
|
#ignorePages;
|
|
22
22
|
#workflows = [];
|
|
23
|
+
#schedule;
|
|
23
24
|
config;
|
|
24
25
|
serialiser;
|
|
25
26
|
namespace;
|
|
26
27
|
id;
|
|
27
28
|
filesystem;
|
|
28
|
-
constructor({ modulePath, namespace }, mergedOptions, pageExtensions, ignorePages, globalFilesystem, workflows = []) {
|
|
29
|
+
constructor({ modulePath, namespace, schedule }, mergedOptions, pageExtensions, ignorePages, globalFilesystem, workflows = []) {
|
|
29
30
|
this.#modulePath = modulePath;
|
|
30
31
|
this.#mergedOptions = mergedOptions;
|
|
31
32
|
this.#globalFilesystem = globalFilesystem;
|
|
32
33
|
this.#ignorePages = ignorePages;
|
|
33
34
|
this.#workflows = workflows;
|
|
35
|
+
this.#schedule = schedule;
|
|
34
36
|
this.namespace = namespace;
|
|
35
37
|
this.id = Symbol(`${path.basename(path.dirname(path.resolve(modulePath, '../')))}#${md5(util.inspect(this.#mergedOptions, { sorted: true })).substring(0, 8)}`);
|
|
36
38
|
this.filesystem = new MutableVolume(new FileAccess(new Volume()), this.namespace);
|
|
@@ -116,7 +118,8 @@ export default class Source {
|
|
|
116
118
|
pageExtensions: this.#pageExtensions,
|
|
117
119
|
ignorePages: this.#ignorePages,
|
|
118
120
|
plugins: this.#plugins,
|
|
119
|
-
serialisers: this.#serialisers
|
|
121
|
+
serialisers: this.#serialisers,
|
|
122
|
+
schedule: this.#schedule
|
|
120
123
|
});
|
|
121
124
|
worker.once(EVENT.ERROR, error => this.#emitter.emit(EVENT.ERROR, error));
|
|
122
125
|
worker.once(EVENT.EXIT, () => {
|
package/dist/Source.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Source.js","sourceRoot":"","sources":["../src/Source.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Source.js","sourceRoot":"","sources":["../src/Source.ts"],"names":[],"mappings":"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"}
|
package/dist/SourceManager.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { SourceModuleDefinition } from '@jpmorganchase/mosaic-types';
|
|
|
2
2
|
import Source from './Source.js';
|
|
3
3
|
export default class SourceManager {
|
|
4
4
|
#private;
|
|
5
|
-
constructor(globalFilesystem: any, sharedFilesystem: any, plugins
|
|
5
|
+
constructor(globalFilesystem: any, sharedFilesystem: any, plugins: any[], serialisers: any[], pageExtensions: any[], ignorePages: any[], schedule: any);
|
|
6
6
|
onSourceUpdate(callback: any): () => boolean;
|
|
7
7
|
triggerWorkflow(name: string, filePath: string, data: unknown): Promise<unknown>;
|
|
8
8
|
getSource(id: symbol): Source;
|
package/dist/SourceManager.js
CHANGED
|
@@ -19,13 +19,15 @@ export default class SourceManager {
|
|
|
19
19
|
#pageExtensions;
|
|
20
20
|
#ignorePages;
|
|
21
21
|
#globalConfig = createConfig();
|
|
22
|
-
|
|
22
|
+
#schedule;
|
|
23
|
+
constructor(globalFilesystem, sharedFilesystem, plugins = [], serialisers = [], pageExtensions = [], ignorePages = [], schedule) {
|
|
23
24
|
this.#plugins = plugins;
|
|
24
25
|
this.#pageExtensions = pageExtensions;
|
|
25
26
|
this.#ignorePages = ignorePages;
|
|
26
27
|
this.#serialisers = serialisers;
|
|
27
28
|
this.#globalFilesystem = globalFilesystem;
|
|
28
29
|
this.#sharedFilesystem = sharedFilesystem;
|
|
30
|
+
this.#schedule = schedule;
|
|
29
31
|
}
|
|
30
32
|
onSourceUpdate(callback) {
|
|
31
33
|
const handler = (filesystem, source) => callback(filesystem, source);
|
|
@@ -56,7 +58,11 @@ export default class SourceManager {
|
|
|
56
58
|
// eslint-disable-next-line no-async-promise-executor
|
|
57
59
|
return new Promise(async (resolve, reject) => {
|
|
58
60
|
let sourceActive = false;
|
|
59
|
-
const source = new Source(
|
|
61
|
+
const source = new Source({
|
|
62
|
+
// if the source definition does not have a schedule then apply the default
|
|
63
|
+
schedule: sourceDefinition.schedule ? sourceDefinition.schedule : this.#schedule,
|
|
64
|
+
...sourceDefinition
|
|
65
|
+
}, {
|
|
60
66
|
...sourceDefinition.options,
|
|
61
67
|
...options
|
|
62
68
|
}, this.#pageExtensions, this.#ignorePages, this.#globalFilesystem, sourceDefinition.workflows);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceManager.js","sourceRoot":"","sources":["../src/SourceManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"SourceManager.js","sourceRoot":"","sources":["../src/SourceManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Observable } from 'rxjs';
|
|
2
2
|
import type { Page, WorkerData } from '@jpmorganchase/mosaic-types';
|
|
3
|
-
export default function createSourceObservable({ modulePath, options, pageExtensions, ignorePages }: WorkerData, serialiser: any): Promise<Observable<Page[]>>;
|
|
3
|
+
export default function createSourceObservable({ modulePath, name, options, pageExtensions, ignorePages, schedule }: WorkerData, serialiser: any): Promise<Observable<Page[]>>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { isObservable, map } from 'rxjs';
|
|
1
|
+
import { isObservable, map, catchError, throwError } from 'rxjs';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { escapeRegExp } from 'lodash-es';
|
|
4
|
+
import { exponentialBackOffRetryStrategy } from './exponentialBackOffRetryStrategy.js';
|
|
4
5
|
async function getSourceDefinitionExports(modulePath) {
|
|
5
6
|
const { default: defaultProp } = await import(modulePath);
|
|
6
7
|
const api = 'default' in defaultProp && defaultProp.__esModule
|
|
@@ -19,9 +20,9 @@ function createPageTest(ignorePages, pageExtensions) {
|
|
|
19
20
|
const ignoreTest = new RegExp(`${ignorePages.map(escapeRegExp).join('|')}$`);
|
|
20
21
|
return file => !ignoreTest.test(file) && extTest.test(file) && !path.basename(file).startsWith('.');
|
|
21
22
|
}
|
|
22
|
-
export default async function createSourceObservable({ modulePath, options, pageExtensions, ignorePages }, serialiser) {
|
|
23
|
+
export default async function createSourceObservable({ modulePath, name, options, pageExtensions, ignorePages, schedule }, serialiser) {
|
|
23
24
|
const api = await getSourceDefinitionExports(modulePath);
|
|
24
|
-
const source$ = api.create(options, { serialiser, pageExtensions });
|
|
25
|
+
const source$ = api.create(options, { serialiser, pageExtensions, schedule });
|
|
25
26
|
if (!isObservable(source$)) {
|
|
26
27
|
throw new Error(`Source at '${modulePath}' did not return an Observable.`);
|
|
27
28
|
}
|
|
@@ -44,6 +45,9 @@ NOTE: Only ${pageExtensions.join(', ')} extensions are supported (as per the val
|
|
|
44
45
|
fullPath: page.fullPath.toLowerCase(),
|
|
45
46
|
route: page.route ? page.route.toLowerCase() : page.fullPath.toLowerCase()
|
|
46
47
|
});
|
|
47
|
-
}, [])))
|
|
48
|
+
}, [])), exponentialBackOffRetryStrategy({ ...schedule, name }), catchError(error => {
|
|
49
|
+
console.log(`[Mosaic] Source ${name} failed and retries are ${schedule.retryEnabled ? 'exhausted' : 'disabled'}`);
|
|
50
|
+
return throwError(() => error);
|
|
51
|
+
}));
|
|
48
52
|
}
|
|
49
53
|
//# sourceMappingURL=createSourceObservable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSourceObservable.js","sourceRoot":"","sources":["../../../src/worker/helpers/createSourceObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"createSourceObservable.js","sourceRoot":"","sources":["../../../src/worker/helpers/createSourceObservable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import type { Page, SourceSchedule } from '@jpmorganchase/mosaic-types';
|
|
3
|
+
export declare type NamedSourceSchedule = SourceSchedule & {
|
|
4
|
+
/**
|
|
5
|
+
* The generated name of the source
|
|
6
|
+
*/
|
|
7
|
+
name: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const exponentialBackOffRetryStrategy: (schedule: NamedSourceSchedule) => (attempts: Observable<Page[]>) => Observable<Page[]>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { timer } from 'rxjs';
|
|
2
|
+
import { retry } from 'rxjs/operators';
|
|
3
|
+
export const exponentialBackOffRetryStrategy = (schedule) => (attempts) => attempts.pipe(retry({
|
|
4
|
+
count: schedule.retryEnabled ? schedule.maxRetries : 0,
|
|
5
|
+
delay: (_error, retryIndex) => {
|
|
6
|
+
const retryDelayMs = schedule.retryDelayMins * 60000;
|
|
7
|
+
// eslint-disable-next-line prefer-exponentiation-operator, no-restricted-properties
|
|
8
|
+
const backOffTime = Math.pow(2, retryIndex - 1) * retryDelayMs;
|
|
9
|
+
const backOffTimeMins = backOffTime / 60000;
|
|
10
|
+
const remainingAttempts = schedule.maxRetries - retryIndex;
|
|
11
|
+
console.warn(`[Mosaic] Source '${schedule.name}' failed. Retrying...`);
|
|
12
|
+
console.log(`[Mosaic] Source '${schedule.name}' retry attempt (${retryIndex}/${schedule.maxRetries}). ${remainingAttempts} attempt${remainingAttempts !== 1 ? 's' : ''} remaining`);
|
|
13
|
+
console.log(`[Mosaic] Source '${schedule.name}' current retry delay: ${backOffTimeMins} min${backOffTimeMins !== 1 ? 's' : ''}`);
|
|
14
|
+
return timer(backOffTime);
|
|
15
|
+
},
|
|
16
|
+
resetOnSuccess: schedule.resetOnSuccess
|
|
17
|
+
}));
|
|
18
|
+
//# sourceMappingURL=exponentialBackOffRetryStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exponentialBackOffRetryStrategy.js","sourceRoot":"","sources":["../../../src/worker/helpers/exponentialBackOffRetryStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAUvC,MAAM,CAAC,MAAM,+BAA+B,GAC1C,CAAC,QAA6B,EAAE,EAAE,CAAC,CAAC,QAA4B,EAAE,EAAE,CAClE,QAAQ,CAAC,IAAI,CACX,KAAK,CAAC;IACJ,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACtD,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;QAC5B,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;QACrD,oFAAoF;QACpF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;QAC/D,MAAM,eAAe,GAAG,WAAW,GAAG,KAAK,CAAC;QAC5C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,IAAI,uBAAuB,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CACT,oBAAoB,QAAQ,CAAC,IAAI,oBAAoB,UAAU,IAC7D,QAAQ,CAAC,UACX,MAAM,iBAAiB,WAAW,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CACjF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,oBAAoB,QAAQ,CAAC,IAAI,0BAA0B,eAAe,OACxE,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAChC,EAAE,CACH,CAAC;QACF,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC;IACD,cAAc,EAAE,QAAQ,CAAC,cAAc;CACxC,CAAC,CACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jpmorganchase/mosaic-core",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.41",
|
|
4
4
|
"author": "",
|
|
5
5
|
"description": "Mosaic core file system",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"gray-matter": "^4.0.3",
|
|
41
|
-
"@jpmorganchase/mosaic-plugins": "^0.1.0-beta.
|
|
42
|
-
"@jpmorganchase/mosaic-schemas": "^0.1.0-beta.
|
|
43
|
-
"@jpmorganchase/mosaic-serialisers": "^0.1.0-beta.
|
|
44
|
-
"@jpmorganchase/mosaic-types": "^0.1.0-beta.
|
|
41
|
+
"@jpmorganchase/mosaic-plugins": "^0.1.0-beta.41",
|
|
42
|
+
"@jpmorganchase/mosaic-schemas": "^0.1.0-beta.41",
|
|
43
|
+
"@jpmorganchase/mosaic-serialisers": "^0.1.0-beta.41",
|
|
44
|
+
"@jpmorganchase/mosaic-types": "^0.1.0-beta.41",
|
|
45
45
|
"md5": "*",
|
|
46
46
|
"unionfs": "^4.4.0",
|
|
47
47
|
"lodash-es": "^4.17.21",
|