@jpmorganchase/mosaic-source-figma 0.1.0-beta.59
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/index.d.ts +115 -0
- package/dist/index.js +91 -0
- package/dist/index.js.map +1 -0
- package/dist/transformer.d.ts +18 -0
- package/dist/transformer.js +18 -0
- package/dist/transformer.js.map +1 -0
- package/dist/types/index.d.ts +45 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +44 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { Source } from '@jpmorganchase/mosaic-types';
|
|
3
|
+
import type { FigmaPage } from './types/index.js';
|
|
4
|
+
export declare const schema: z.ZodObject<{
|
|
5
|
+
schedule: z.ZodOptional<z.ZodObject<{
|
|
6
|
+
checkIntervalMins: z.ZodNumber;
|
|
7
|
+
initialDelayMs: z.ZodNumber;
|
|
8
|
+
retryEnabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
9
|
+
retryDelayMins: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
10
|
+
maxRetries: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
11
|
+
resetOnSuccess: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
checkIntervalMins: number;
|
|
14
|
+
initialDelayMs: number;
|
|
15
|
+
retryEnabled: boolean;
|
|
16
|
+
retryDelayMins: number;
|
|
17
|
+
maxRetries: number;
|
|
18
|
+
resetOnSuccess: boolean;
|
|
19
|
+
}, {
|
|
20
|
+
checkIntervalMins: number;
|
|
21
|
+
initialDelayMs: number;
|
|
22
|
+
retryEnabled?: boolean | undefined;
|
|
23
|
+
retryDelayMins?: number | undefined;
|
|
24
|
+
maxRetries?: number | undefined;
|
|
25
|
+
resetOnSuccess?: boolean | undefined;
|
|
26
|
+
}>>;
|
|
27
|
+
proxyEndpoint: z.ZodOptional<z.ZodString>;
|
|
28
|
+
noProxy: z.ZodOptional<z.ZodEffects<z.ZodAny, RegExp, any>>;
|
|
29
|
+
requestHeaders: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
|
30
|
+
prefixDir: z.ZodString;
|
|
31
|
+
figmaToken: z.ZodString;
|
|
32
|
+
projects: z.ZodArray<z.ZodObject<{
|
|
33
|
+
id: z.ZodNumber;
|
|
34
|
+
patternPrefix: z.ZodString;
|
|
35
|
+
meta: z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
id: number;
|
|
38
|
+
patternPrefix: string;
|
|
39
|
+
meta: {} & {
|
|
40
|
+
[k: string]: unknown;
|
|
41
|
+
};
|
|
42
|
+
}, {
|
|
43
|
+
id: number;
|
|
44
|
+
patternPrefix: string;
|
|
45
|
+
meta: {} & {
|
|
46
|
+
[k: string]: unknown;
|
|
47
|
+
};
|
|
48
|
+
}>, "many">;
|
|
49
|
+
endpoints: z.ZodObject<{
|
|
50
|
+
getFile: z.ZodString;
|
|
51
|
+
getProject: z.ZodString;
|
|
52
|
+
}, "strip", z.ZodTypeAny, {
|
|
53
|
+
getFile: string;
|
|
54
|
+
getProject: string;
|
|
55
|
+
}, {
|
|
56
|
+
getFile: string;
|
|
57
|
+
getProject: string;
|
|
58
|
+
}>;
|
|
59
|
+
requestTimeout: z.ZodDefault<z.ZodNumber>;
|
|
60
|
+
}, "strip", z.ZodTypeAny, {
|
|
61
|
+
endpoints: {
|
|
62
|
+
getFile: string;
|
|
63
|
+
getProject: string;
|
|
64
|
+
};
|
|
65
|
+
prefixDir: string;
|
|
66
|
+
requestTimeout: number;
|
|
67
|
+
figmaToken: string;
|
|
68
|
+
projects: {
|
|
69
|
+
id: number;
|
|
70
|
+
patternPrefix: string;
|
|
71
|
+
meta: {} & {
|
|
72
|
+
[k: string]: unknown;
|
|
73
|
+
};
|
|
74
|
+
}[];
|
|
75
|
+
schedule?: {
|
|
76
|
+
checkIntervalMins: number;
|
|
77
|
+
initialDelayMs: number;
|
|
78
|
+
retryEnabled: boolean;
|
|
79
|
+
retryDelayMins: number;
|
|
80
|
+
maxRetries: number;
|
|
81
|
+
resetOnSuccess: boolean;
|
|
82
|
+
} | undefined;
|
|
83
|
+
proxyEndpoint?: string | undefined;
|
|
84
|
+
noProxy?: RegExp | undefined;
|
|
85
|
+
requestHeaders?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
86
|
+
}, {
|
|
87
|
+
endpoints: {
|
|
88
|
+
getFile: string;
|
|
89
|
+
getProject: string;
|
|
90
|
+
};
|
|
91
|
+
prefixDir: string;
|
|
92
|
+
figmaToken: string;
|
|
93
|
+
projects: {
|
|
94
|
+
id: number;
|
|
95
|
+
patternPrefix: string;
|
|
96
|
+
meta: {} & {
|
|
97
|
+
[k: string]: unknown;
|
|
98
|
+
};
|
|
99
|
+
}[];
|
|
100
|
+
schedule?: {
|
|
101
|
+
checkIntervalMins: number;
|
|
102
|
+
initialDelayMs: number;
|
|
103
|
+
retryEnabled?: boolean | undefined;
|
|
104
|
+
retryDelayMins?: number | undefined;
|
|
105
|
+
maxRetries?: number | undefined;
|
|
106
|
+
resetOnSuccess?: boolean | undefined;
|
|
107
|
+
} | undefined;
|
|
108
|
+
proxyEndpoint?: string | undefined;
|
|
109
|
+
noProxy?: any;
|
|
110
|
+
requestHeaders?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
111
|
+
requestTimeout?: number | undefined;
|
|
112
|
+
}>;
|
|
113
|
+
export declare type FigmaSourceOptions = z.infer<typeof schema>;
|
|
114
|
+
declare const FigmaSource: Source<FigmaSourceOptions, FigmaPage>;
|
|
115
|
+
export default FigmaSource;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { switchMap } from 'rxjs';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import deepmerge from 'deepmerge';
|
|
4
|
+
import { validateMosaicSchema } from '@jpmorganchase/mosaic-schemas';
|
|
5
|
+
import { createHttpSource, httpSourceCreatorSchema } from '@jpmorganchase/mosaic-source-http';
|
|
6
|
+
import createFigmaPage from './transformer.js';
|
|
7
|
+
const baseSchema = httpSourceCreatorSchema.omit({
|
|
8
|
+
endpoints: true,
|
|
9
|
+
transformerOptions: true // stories is the prop we need for this so no point duplicating it in source config
|
|
10
|
+
});
|
|
11
|
+
export const schema = baseSchema.merge(z.object({
|
|
12
|
+
prefixDir: z.string(),
|
|
13
|
+
figmaToken: z.string(),
|
|
14
|
+
projects: z.array(z.object({
|
|
15
|
+
id: z.number(),
|
|
16
|
+
patternPrefix: z.string(),
|
|
17
|
+
meta: z.object({}).passthrough()
|
|
18
|
+
})),
|
|
19
|
+
endpoints: z.object({
|
|
20
|
+
getFile: z.string().url(),
|
|
21
|
+
getProject: z.string().url()
|
|
22
|
+
}),
|
|
23
|
+
requestTimeout: z.number().default(5000)
|
|
24
|
+
}));
|
|
25
|
+
const FigmaSource = {
|
|
26
|
+
create(options, sourceConfig) {
|
|
27
|
+
const parsedOptions = validateMosaicSchema(schema, options);
|
|
28
|
+
const { endpoints, projects, figmaToken, proxyEndpoint, prefixDir, requestHeaders: requestHeadersParam } = parsedOptions;
|
|
29
|
+
const projectEndpoints = projects.map(project => endpoints.getProject.replace(':project_id', project.id.toString()));
|
|
30
|
+
const projectsTransformer = (response, _prefixDir, index) => [response].reduce((allProjectFileUrls, { files }) => {
|
|
31
|
+
const projectFileUrls = files.reduce((project, { key }) => {
|
|
32
|
+
const fileUrlAndMetadata = {
|
|
33
|
+
fileUrl: endpoints.getFile.replace(':file_id', key),
|
|
34
|
+
meta: projects[index].meta
|
|
35
|
+
};
|
|
36
|
+
return [...project, fileUrlAndMetadata];
|
|
37
|
+
}, []);
|
|
38
|
+
return [...allProjectFileUrls, ...projectFileUrls];
|
|
39
|
+
}, []);
|
|
40
|
+
const projectFilesTransformer = (response, _prefixDir, index, transformerOptions) => {
|
|
41
|
+
const { document: { sharedPluginData } } = response;
|
|
42
|
+
const { patternPrefix } = projects[index];
|
|
43
|
+
return Object.keys(sharedPluginData).reduce((figmaPagesResult, patternId) => {
|
|
44
|
+
if (patternId.indexOf(patternPrefix) === 0) {
|
|
45
|
+
/** Figma provided metadata */
|
|
46
|
+
const figmaProvidedMetadata = {
|
|
47
|
+
data: {
|
|
48
|
+
patternId,
|
|
49
|
+
...sharedPluginData[patternId]
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const sourceProvidedMetadata = transformerOptions[index].meta;
|
|
53
|
+
const figmaPageMeta = sourceProvidedMetadata
|
|
54
|
+
? deepmerge(figmaProvidedMetadata, sourceProvidedMetadata || {})
|
|
55
|
+
: figmaProvidedMetadata;
|
|
56
|
+
return [...figmaPagesResult, createFigmaPage(figmaPageMeta, prefixDir)];
|
|
57
|
+
}
|
|
58
|
+
return figmaPagesResult;
|
|
59
|
+
}, []);
|
|
60
|
+
};
|
|
61
|
+
const projects$ = createHttpSource({
|
|
62
|
+
endpoints: projectEndpoints,
|
|
63
|
+
requestHeaders: {
|
|
64
|
+
'Content-Type': 'application/json',
|
|
65
|
+
'X-FIGMA-TOKEN': figmaToken,
|
|
66
|
+
...requestHeadersParam
|
|
67
|
+
},
|
|
68
|
+
proxyEndpoint,
|
|
69
|
+
prefixDir,
|
|
70
|
+
transformer: projectsTransformer
|
|
71
|
+
}, sourceConfig);
|
|
72
|
+
const figmaSource$ = projects$.pipe(switchMap(fileUrlAndMetaCollection => {
|
|
73
|
+
const fileUrls = fileUrlAndMetaCollection.map(item => item.fileUrl);
|
|
74
|
+
return createHttpSource({
|
|
75
|
+
endpoints: fileUrls,
|
|
76
|
+
requestHeaders: {
|
|
77
|
+
'Content-Type': 'application/json',
|
|
78
|
+
'X-FIGMA-TOKEN': figmaToken,
|
|
79
|
+
...requestHeadersParam
|
|
80
|
+
},
|
|
81
|
+
proxyEndpoint,
|
|
82
|
+
prefixDir,
|
|
83
|
+
transformer: projectFilesTransformer,
|
|
84
|
+
transformerOptions: fileUrlAndMetaCollection
|
|
85
|
+
});
|
|
86
|
+
}));
|
|
87
|
+
return figmaSource$;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
export default FigmaSource;
|
|
91
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FigmaPage } from './types/index.js';
|
|
2
|
+
declare const createFigmaPage: (pageData: Partial<FigmaPage>, prefixDir: string) => {
|
|
3
|
+
title: string | undefined;
|
|
4
|
+
data: {
|
|
5
|
+
source: string;
|
|
6
|
+
};
|
|
7
|
+
description: string | undefined;
|
|
8
|
+
route: string;
|
|
9
|
+
fullPath: string;
|
|
10
|
+
tags: string[];
|
|
11
|
+
content: string;
|
|
12
|
+
} & {
|
|
13
|
+
content: string;
|
|
14
|
+
description?: string | undefined;
|
|
15
|
+
data: import("./types/index.js").FigmaPageData;
|
|
16
|
+
tags: string[];
|
|
17
|
+
} & import("packages/types/dist/Page.js").Page;
|
|
18
|
+
export default createFigmaPage;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import deepmerge from 'deepmerge';
|
|
2
|
+
const createFigmaPage = (pageData, prefixDir) => {
|
|
3
|
+
const { data: { name, description, patternId, tags } = {} } = pageData;
|
|
4
|
+
const route = `${prefixDir}/${patternId}`.replace(/\./g, '_').toLowerCase();
|
|
5
|
+
const pageTags = tags ? tags.split(',') : [];
|
|
6
|
+
const figmaPage = {
|
|
7
|
+
title: name,
|
|
8
|
+
data: { source: 'FIGMA' },
|
|
9
|
+
description,
|
|
10
|
+
route,
|
|
11
|
+
fullPath: `${route}.json`,
|
|
12
|
+
tags: pageTags,
|
|
13
|
+
content: ``
|
|
14
|
+
};
|
|
15
|
+
return deepmerge(figmaPage, pageData);
|
|
16
|
+
};
|
|
17
|
+
export default createFigmaPage;
|
|
18
|
+
//# sourceMappingURL=transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformer.js","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAIlC,MAAM,eAAe,GAAG,CAAC,QAA4B,EAAE,SAAiB,EAAE,EAAE;IAC1E,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC;IACvE,MAAM,KAAK,GAAG,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG;QAChB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;QACzB,WAAW;QACX,KAAK;QACL,QAAQ,EAAE,GAAG,KAAK,OAAO;QACzB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,OAAO,SAAS,CAA8B,SAAS,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Page } from '@jpmorganchase/mosaic-types';
|
|
2
|
+
/** Get project response */
|
|
3
|
+
export declare type ProjectResponseJson = {
|
|
4
|
+
document: {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
sharedPluginData: Record<string, any>;
|
|
8
|
+
};
|
|
9
|
+
name: string;
|
|
10
|
+
lastModified: string;
|
|
11
|
+
thumbnailUrl: string;
|
|
12
|
+
version: string;
|
|
13
|
+
};
|
|
14
|
+
export declare type ProjectFile = {
|
|
15
|
+
key: string;
|
|
16
|
+
thumbnail_url: string;
|
|
17
|
+
last_modified: string;
|
|
18
|
+
branches?: ProjectFile[];
|
|
19
|
+
};
|
|
20
|
+
/** Get project files response */
|
|
21
|
+
export declare type ProjectFilesResponseJson = {
|
|
22
|
+
name: string;
|
|
23
|
+
files: ProjectFile[];
|
|
24
|
+
};
|
|
25
|
+
export declare type FileUrlAndMeta = {
|
|
26
|
+
fileUrl: string;
|
|
27
|
+
meta?: Record<string, unknown>;
|
|
28
|
+
};
|
|
29
|
+
/** Figma page Metadata */
|
|
30
|
+
export declare type FigmaPageData = {
|
|
31
|
+
name: string;
|
|
32
|
+
patternId: string;
|
|
33
|
+
description: string;
|
|
34
|
+
embedLink: string;
|
|
35
|
+
link: string;
|
|
36
|
+
source: 'FIGMA';
|
|
37
|
+
tags?: string;
|
|
38
|
+
};
|
|
39
|
+
/** Figma page */
|
|
40
|
+
export declare type FigmaPage = {
|
|
41
|
+
content: string;
|
|
42
|
+
description?: string;
|
|
43
|
+
data: FigmaPageData;
|
|
44
|
+
tags: string[];
|
|
45
|
+
} & Page;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jpmorganchase/mosaic-source-figma",
|
|
3
|
+
"version": "0.1.0-beta.59",
|
|
4
|
+
"author": "",
|
|
5
|
+
"description": "Mosaic Figma source for core file system",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"node": "./dist/index.js",
|
|
15
|
+
"default": "./dist/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">= 16.0.0"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"clean": "rm -fr dist",
|
|
27
|
+
"lint": "eslint --ignore-pattern \"**/__tests__/**\""
|
|
28
|
+
},
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "git",
|
|
31
|
+
"url": "git@github.com:jpmorganchase/mosaic.git"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@jpmorganchase/mosaic-source-http": "^0.1.0-beta.59",
|
|
35
|
+
"@jpmorganchase/mosaic-schemas": "^0.1.0-beta.59",
|
|
36
|
+
"@jpmorganchase/mosaic-types": "^0.1.0-beta.59",
|
|
37
|
+
"deepmerge": "^4.2.2",
|
|
38
|
+
"rxjs": "^7.5.5",
|
|
39
|
+
"zod": "^3.22.3"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"msw": "^0.47.4"
|
|
43
|
+
}
|
|
44
|
+
}
|