@stackbit/cms-core 0.0.3

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.
@@ -0,0 +1 @@
1
+ export function createAnnotations(filePath: any, data: any, logger: any): Promise<any[] | null>;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ const _ = require('lodash');
3
+ const parser = require('parse5');
4
+ async function createAnnotations(filePath, data, logger) {
5
+ if (!data) {
6
+ return null;
7
+ }
8
+ let document;
9
+ try {
10
+ // See https://astexplorer.net for example parser output
11
+ document = parser.parse(data, {
12
+ sourceCodeLocationInfo: true
13
+ });
14
+ }
15
+ catch (err) {
16
+ logger.warn('[annotator] error parsing html file', { filePath, err });
17
+ return null;
18
+ }
19
+ const annotations = [];
20
+ const traverse = (node) => {
21
+ if (!node || _.isEmpty(node.childNodes)) {
22
+ return;
23
+ }
24
+ if (node.sourceCodeLocation && node.tagName) {
25
+ annotations.push({
26
+ sourceLocation: {
27
+ /// node.sourceCodeLocation contains the location for the entire node
28
+ start: {
29
+ line: node.sourceCodeLocation.startLine,
30
+ column: node.sourceCodeLocation.startCol - 1
31
+ },
32
+ end: {
33
+ line: node.sourceCodeLocation.endLine,
34
+ column: node.sourceCodeLocation.endCol
35
+ }
36
+ },
37
+ // Example: <p>text</p>
38
+ // node.sourceCodeLocation.startTag.endOffset == ↑
39
+ // The global charactar offset of the ending of the opening tag
40
+ insertOffset: node.sourceCodeLocation.startTag.endOffset - 1
41
+ });
42
+ }
43
+ node.childNodes.forEach((childNode) => traverse(childNode));
44
+ };
45
+ traverse(document);
46
+ if (_.isEmpty(annotations)) {
47
+ return null;
48
+ }
49
+ return annotations;
50
+ }
51
+ module.exports = {
52
+ createAnnotations
53
+ };
54
+ //# sourceMappingURL=html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/annotator/html.js"],"names":[],"mappings":";AAEA,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjC,KAAK,UAAU,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM;IACnD,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,IAAI,CAAC;KACf;IACD,IAAI,QAAQ,CAAC;IACb,IAAI;QACA,wDAAwD;QACxD,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YAC1B,sBAAsB,EAAE,IAAI;SAC/B,CAAC,CAAC;KACN;IAAC,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;KACf;IACD,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,OAAO;SACV;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,EAAE;YACzC,WAAW,CAAC,IAAI,CAAC;gBACb,cAAc,EAAE;oBACZ,qEAAqE;oBACrE,KAAK,EAAE;wBACH,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS;wBACvC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,CAAC;qBAC/C;oBACD,GAAG,EAAE;wBACD,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO;wBACrC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM;qBACzC;iBACJ;gBACD,0DAA0D;gBAC1D,kDAAkD;gBAClD,+DAA+D;gBAC/D,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC;aAC/D,CAAC,CAAC;SACN;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnB,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACxB,OAAO,IAAI,CAAC;KACf;IACD,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACb,iBAAiB;CACpB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export function annotateDir(inputDir: any, outputDir: any, logger?: Console, options?: {}): Promise<any>;
2
+ export function annotateFiles(filePaths: any, inputDir: any, outputDir: any, logger?: Console, options?: {}): Promise<any>;
3
+ export function decodeSourcemap(attributes: any): {
4
+ file: any;
5
+ start: {
6
+ line: number;
7
+ column: number;
8
+ } | undefined;
9
+ end: {
10
+ line: number;
11
+ column: number;
12
+ } | undefined;
13
+ } | undefined;
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ const _ = require('lodash');
3
+ const fse = require('fs-extra');
4
+ const path = require('path');
5
+ const { mapPromise, replaceInRange, readDirRec } = require('../utils');
6
+ const { LOADER_EXCLUDED_FILES, LOADER_EXCLUDED_DIRS } = require('../consts');
7
+ const reactAnnotator = require('./react');
8
+ const htmlAnnotator = require('./html');
9
+ module.exports = {
10
+ annotateDir,
11
+ annotateFiles,
12
+ decodeSourcemap
13
+ };
14
+ const FILE_TYPES = ['js', 'jsx', 'ts', 'tsx', 'html', 'htm'];
15
+ const MAX_FILE_SIZE = 500 * 1024; // 500kb
16
+ async function encodeSourcemap(filePath, data, annotations) {
17
+ let annotatedData = data;
18
+ const sortedAnnotations = _.orderBy(annotations, ['insertOffset'], ['desc']);
19
+ sortedAnnotations.forEach((annotation) => {
20
+ const loc = annotation.sourceLocation;
21
+ const attribute = ` data-sb-source-file="${filePath}" data-sb-source-position="${loc.start.line},${loc.start.column}:${loc.end.line},${loc.end.column}"`;
22
+ annotatedData = replaceInRange(annotatedData, [annotation.insertOffset, annotation.insertOffset], attribute);
23
+ });
24
+ return annotatedData;
25
+ }
26
+ async function annotateFile(filePath, inputDir, outputDir, annotator, logger, options = {}) {
27
+ const data = (await fse.readFile(path.join(inputDir, filePath))).toString();
28
+ if (!data || data.length > MAX_FILE_SIZE) {
29
+ logger.debug(`[annotator] skipping file: ${filePath}`, { dataLength: _.get(data, 'length') });
30
+ return null;
31
+ }
32
+ // annotator.createAnnotations returns annotations with the following structure:
33
+ // {
34
+ // insertOffset: number - global character offset in the data where we can insert the annotation data
35
+ // sourceLocation: { start: Position, end: Position } - span of the entire source block in line+column format
36
+ // }
37
+ const annotations = await annotator.createAnnotations(filePath, data, logger);
38
+ if (_.isEmpty(annotations)) {
39
+ return null;
40
+ }
41
+ const annotatedData = await encodeSourcemap(_.get(options, 'pathPrefix') ? path.join(options.pathPrefix, filePath) : filePath, data, annotations);
42
+ if (_.isEqual(data, annotatedData)) {
43
+ return null;
44
+ }
45
+ const outputFilePath = path.join(outputDir, filePath);
46
+ const existingData = (await fse.pathExists(outputFilePath)) ? (await fse.readFile(outputFilePath)).toString() : null;
47
+ if (_.isEqual(annotatedData, existingData) || (existingData && existingData.includes('data-sb-source-position'))) {
48
+ logger.debug(`[annotator] annotating, but skipping write: ${filePath}`, { annotations: annotations.length });
49
+ return;
50
+ }
51
+ logger.debug(`[annotator] annotating: ${filePath}`, { annotations: annotations.length });
52
+ await fse.writeFile(outputFilePath, annotatedData);
53
+ return outputFilePath;
54
+ }
55
+ function decodePosition(positionString) {
56
+ const parts = positionString.split(',');
57
+ return {
58
+ line: parseInt(parts[0]),
59
+ column: parseInt(parts[1])
60
+ };
61
+ }
62
+ function decodeSourcemap(attributes) {
63
+ const sourceFile = _.get(attributes, 'data-sb-source-file');
64
+ const sourcePosition = _.get(attributes, 'data-sb-source-position');
65
+ let sourcemap;
66
+ if (sourceFile) {
67
+ let start, end;
68
+ if (sourcePosition) {
69
+ const parts = sourcePosition.split(':');
70
+ start = decodePosition(parts[0]);
71
+ end = decodePosition(parts[1]);
72
+ }
73
+ sourcemap = {
74
+ file: sourceFile,
75
+ start,
76
+ end
77
+ };
78
+ }
79
+ return sourcemap;
80
+ }
81
+ async function annotateFiles(filePaths, inputDir, outputDir, logger = console, options = {}) {
82
+ const result = await mapPromise(filePaths, async (filePath) => {
83
+ const ext = path.extname(filePath).substring(1);
84
+ let annotator = null;
85
+ if (['js', 'jsx', 'ts', 'tsx'].includes(ext)) {
86
+ annotator = reactAnnotator;
87
+ }
88
+ else if (['html', 'htm'].includes(ext)) {
89
+ annotator = htmlAnnotator;
90
+ }
91
+ if (annotator) {
92
+ return annotateFile(filePath, inputDir, outputDir, annotator, logger, options);
93
+ }
94
+ });
95
+ return _.compact(result);
96
+ }
97
+ async function annotateDir(inputDir, outputDir, logger = console, options = {}) {
98
+ logger.debug('[annotator] annotating dir', { inputDir });
99
+ const filePaths = await readDirRec(inputDir, {
100
+ filter: (filePath, stats) => {
101
+ const p = path.parse(filePath);
102
+ const fileName = p.name;
103
+ const dirName = p.dir;
104
+ const ext = path.extname(filePath).substring(1);
105
+ return (!filePath.startsWith('.') &&
106
+ !filePath.includes('node_modules') &&
107
+ (!stats.isFile() ||
108
+ (FILE_TYPES.includes(ext) &&
109
+ !['config', '_config'].includes(fileName) &&
110
+ !_.some(LOADER_EXCLUDED_FILES, (f) => filePath.endsWith(f)) &&
111
+ !_.some(LOADER_EXCLUDED_DIRS, (f) => dirName.endsWith(f)) &&
112
+ !fileName.includes('webpack'))));
113
+ }
114
+ });
115
+ return annotateFiles(filePaths, inputDir, outputDir, logger, options);
116
+ }
117
+ if (require.main === module) {
118
+ annotateDir([process.argv[2]], process.argv[3]);
119
+ }
120
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/annotator/index.js"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export function createAnnotations(filePath: any, data: any, logger: any): Promise<any[] | null>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ const _ = require('lodash');
3
+ const parser = require('@babel/parser');
4
+ const traverse = require('@babel/traverse');
5
+ const utils = require('../utils');
6
+ async function createAnnotations(filePath, data, logger) {
7
+ if (!utils.isRelevantReactData(data)) {
8
+ // not suitable for react parsing, stop quickly
9
+ return null;
10
+ }
11
+ let ast;
12
+ try {
13
+ // See https://astexplorer.net for example parser output
14
+ ast = parser.parse(data, {
15
+ sourceType: 'module',
16
+ plugins: ['jsx', 'typescript', 'classProperties'],
17
+ ranges: true
18
+ });
19
+ }
20
+ catch (err) {
21
+ logger.warn('[annotator] error parsing react file', { filePath, err });
22
+ return null;
23
+ }
24
+ let foundReact = false;
25
+ const annotations = [];
26
+ traverse.default(ast, {
27
+ ImportDeclaration(path) {
28
+ if (!foundReact) {
29
+ foundReact = _.get(path, 'node.source.value', '').trim().toLowerCase() === 'react';
30
+ }
31
+ path.skip();
32
+ },
33
+ JSXElement(path) {
34
+ const children = path.node.children;
35
+ const elementName = _.get(path, 'node.openingElement.name.name');
36
+ if (!children || !path.node.loc || !elementName) {
37
+ return null;
38
+ }
39
+ annotations.push({
40
+ sourceLocation: path.node.loc,
41
+ insertOffset: _.get(path, 'node.openingElement.name.end')
42
+ });
43
+ }
44
+ });
45
+ if (!foundReact || _.isEmpty(annotations)) {
46
+ return null;
47
+ }
48
+ return annotations;
49
+ }
50
+ module.exports = {
51
+ createAnnotations
52
+ };
53
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/annotator/react.js"],"names":[],"mappings":";AAEA,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE5B,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE5C,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAElC,KAAK,UAAU,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM;IACnD,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAClC,+CAA+C;QAC/C,OAAO,IAAI,CAAC;KACf;IACD,IAAI,GAAG,CAAC;IACR,IAAI;QACA,wDAAwD;QACxD,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACrB,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,iBAAiB,CAAC;YACjD,MAAM,EAAE,IAAI;SACf,CAAC,CAAC;KACN;IAAC,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAC,QAAQ,EAAE,GAAG,EAAC,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;KACf;IACD,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE;QAClB,iBAAiB,CAAC,IAAI;YAClB,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;aACtF;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,UAAU,CAAC,IAAI;YACX,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YACpC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;gBAC7C,OAAO,IAAI,CAAC;aACf;YACD,WAAW,CAAC,IAAI,CAAC;gBACb,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC7B,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,8BAA8B,CAAC;aAC5D,CAAC,CAAC;QACP,CAAC;KACJ,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACvC,OAAO,IAAI,CAAC;KACf;IACD,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACb,iBAAiB;CACpB,CAAC"}
@@ -0,0 +1,27 @@
1
+ export const SIMPLE_VALUE_FIELDS: string[];
2
+ export const RICH_TEXT_HINT_MAX_LENGTH: number;
3
+ export namespace RICH_TEXT_NODE_TYPES {
4
+ const DOCUMENT: string;
5
+ const PARAGRAPH: string;
6
+ const HEADING_1: string;
7
+ const HEADING_2: string;
8
+ const HEADING_3: string;
9
+ const HEADING_4: string;
10
+ const HEADING_5: string;
11
+ const HEADING_6: string;
12
+ const OL: string;
13
+ const UL: string;
14
+ const LIST_ITEM: string;
15
+ const HR: string;
16
+ const BLOCKQUOTE: string;
17
+ const LINK: string;
18
+ const REFERENCE: string;
19
+ }
20
+ export namespace RICH_TEXT_MARK_TYPES {
21
+ const BOLD: string;
22
+ const ITALIC: string;
23
+ const UNDERLINE: string;
24
+ const CODE: string;
25
+ }
26
+ export const LOADER_EXCLUDED_FILES: string[];
27
+ export const LOADER_EXCLUDED_DIRS: string[];
package/dist/consts.js ADDED
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ module.exports = {
3
+ SIMPLE_VALUE_FIELDS: ['string', 'text', 'markdown', 'number', 'url', 'slug', 'boolean', 'date', 'datetime', 'color'],
4
+ RICH_TEXT_HINT_MAX_LENGTH: 200,
5
+ RICH_TEXT_NODE_TYPES: {
6
+ DOCUMENT: 'document',
7
+ PARAGRAPH: 'p',
8
+ HEADING_1: 'h1',
9
+ HEADING_2: 'h2',
10
+ HEADING_3: 'h3',
11
+ HEADING_4: 'h4',
12
+ HEADING_5: 'h5',
13
+ HEADING_6: 'h6',
14
+ OL: 'ol',
15
+ UL: 'ul',
16
+ LIST_ITEM: 'li',
17
+ HR: 'hr',
18
+ BLOCKQUOTE: 'blockquote',
19
+ LINK: 'a',
20
+ REFERENCE: 'reference'
21
+ },
22
+ RICH_TEXT_MARK_TYPES: {
23
+ BOLD: 'bold',
24
+ ITALIC: 'italic',
25
+ UNDERLINE: 'underline',
26
+ CODE: 'code'
27
+ },
28
+ LOADER_EXCLUDED_FILES: [
29
+ 'LICENSE.md',
30
+ 'README.md',
31
+ 'README.theme.md',
32
+ 'CONTRIBUTING.md',
33
+ 'CHANGELOG.md',
34
+ 'stackbit.yaml',
35
+ 'netlify.toml',
36
+ 'theme.toml',
37
+ 'package.json',
38
+ 'package-lock.json',
39
+ 'yarn-lock.json'
40
+ ],
41
+ LOADER_EXCLUDED_DIRS: ['src/pages']
42
+ };
43
+ //# sourceMappingURL=consts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.js"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACb,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;IACpH,yBAAyB,EAAE,GAAG;IAC9B,oBAAoB,EAAE;QAClB,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,SAAS,EAAE,IAAI;QACf,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,YAAY;QACxB,IAAI,EAAE,GAAG;QACT,SAAS,EAAE,WAAW;KACzB;IACD,oBAAoB,EAAE;QAClB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,MAAM;KACf;IACD,qBAAqB,EAAE;QACnB,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,cAAc;QACd,YAAY;QACZ,cAAc;QACd,mBAAmB;QACnB,gBAAgB;KACnB;IACD,oBAAoB,EAAE,CAAC,WAAW,CAAC;CACtC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export = encodeData;
2
+ declare function encodeData({ data, prevEncodingResult, delegate }: {
3
+ data: any;
4
+ prevEncodingResult: any;
5
+ delegate: any;
6
+ }): {
7
+ fieldData: any;
8
+ };
@@ -0,0 +1,272 @@
1
+ "use strict";
2
+ const _ = require('lodash');
3
+ const consts = require('./consts');
4
+ const { mergeAtPath, omitByNil } = require('./utils');
5
+ function mapObjectFields({ data, model, fieldDataPath, fieldDataPathsInverted, fieldModelPath, encodeValue, delegate }) {
6
+ if (!fieldModelPath) {
7
+ fieldModelPath = [model.name];
8
+ }
9
+ const isRoot = fieldDataPath.length === 1;
10
+ const metadata = delegate.getItemMetadata(data, model, isRoot);
11
+ const fields = delegate.getItemFields(data, model);
12
+ return _.reduce(fields, (accum, field) => {
13
+ const fieldModel = _.find(model.fields, { name: field.name });
14
+ // if field model wasn't found ignore this field
15
+ if (!fieldModel) {
16
+ return accum;
17
+ }
18
+ // don't include const fields
19
+ if (_.has(fieldModel, 'const')) {
20
+ return accum;
21
+ }
22
+ let childFieldModelPath;
23
+ if (_.get(model, 'isList') && field.name === 'items') {
24
+ childFieldModelPath = fieldModelPath;
25
+ }
26
+ else {
27
+ childFieldModelPath = _.concat(fieldModelPath, field.name);
28
+ }
29
+ const fieldPath = ['fields', field.name];
30
+ const mapLocalizedField = (accum, localizedField) => {
31
+ const localePath = fieldModel.localized ? ['locales', localizedField.locale] : [];
32
+ const fullFieldDataPath = _.concat(fieldPath, localePath);
33
+ const mappedData = mapField({
34
+ fieldValue: localizedField.value,
35
+ fieldModel: fieldModel,
36
+ fieldDataPath: _.concat(fieldDataPath, fullFieldDataPath),
37
+ fieldDataPaths: accum.fieldDataPaths,
38
+ fieldDataPathsInverted: fieldDataPathsInverted,
39
+ fieldModelPath: childFieldModelPath,
40
+ delegate: delegate
41
+ });
42
+ if (localizedField.locale && localizedField.locale !== '_unset') {
43
+ mappedData.fieldData.locale = localizedField.locale;
44
+ }
45
+ return {
46
+ fieldData: mergeAtPath(accum.fieldData, fullFieldDataPath, omitByNil(mappedData.fieldData))
47
+ };
48
+ };
49
+ // always create 'fields' as object, even for objects that have field names as numbers
50
+ _.setWith(accum.fieldData, fieldPath, fieldModelToFieldData(fieldModel), Object);
51
+ if (fieldModel.localized) {
52
+ accum = mapLocalizedField(accum, { locale: '_unset' });
53
+ }
54
+ if (_.has(field, 'locales')) {
55
+ return _.reduce(field.locales, (accum, localizedField) => {
56
+ return mapLocalizedField(accum, localizedField);
57
+ }, accum);
58
+ }
59
+ return mapLocalizedField(accum, field);
60
+ }, {
61
+ fieldData: metadata
62
+ });
63
+ }
64
+ function mapField({ fieldValue, fieldModel, fieldDataPath, fieldModelPath, delegate }) {
65
+ if (_.includes(consts.SIMPLE_VALUE_FIELDS, fieldModel.type)) {
66
+ return {
67
+ fieldData: { value: fieldValue }
68
+ };
69
+ }
70
+ else if (['enum', 'style'].includes(fieldModel.type)) {
71
+ return {
72
+ fieldData: { value: fieldValue }
73
+ };
74
+ }
75
+ else if (fieldModel.type === 'list') {
76
+ const itemsModel = _.get(fieldModel, 'items');
77
+ let getListItemModel;
78
+ if (_.isArray(itemsModel)) {
79
+ // in Sanity, list items may have multiple types, in this case, 'items' will be an array
80
+ getListItemModel = (listItem, fieldModel) => delegate.getItemTypeForListItem(listItem, fieldModel);
81
+ }
82
+ else {
83
+ // get the type of list items, if type is not defined, set string as it is the default
84
+ const listItemsType = _.get(itemsModel, 'type', 'string');
85
+ getListItemModel = _.constant(_.defaults({}, itemsModel, { type: listItemsType }));
86
+ }
87
+ return _.reduce(fieldValue, (accum, listItem, listIdx) => {
88
+ const itemModel = getListItemModel(listItem, fieldModel);
89
+ let mappedData;
90
+ if (!itemModel) {
91
+ mappedData = unresolvedModel();
92
+ accum.fieldData.items = _.concat(accum.fieldData.items, mappedData.fieldData);
93
+ }
94
+ else {
95
+ mappedData = mapField({
96
+ fieldValue: listItem,
97
+ fieldModel: itemModel,
98
+ fieldDataPath: _.concat(fieldDataPath, ['items', listIdx]),
99
+ fieldModelPath: fieldModelPath,
100
+ delegate
101
+ });
102
+ accum.fieldData.items = _.concat(accum.fieldData.items, fieldModelToFieldData(itemModel, mappedData.fieldData));
103
+ }
104
+ return {
105
+ fieldData: accum.fieldData
106
+ };
107
+ }, {
108
+ fieldData: { items: [] }
109
+ });
110
+ }
111
+ else if (fieldModel.type === 'object') {
112
+ // inline object
113
+ if (!fieldValue) {
114
+ return unsetObject();
115
+ }
116
+ return mapObjectFields({
117
+ data: fieldValue,
118
+ model: fieldModel,
119
+ fieldDataPath,
120
+ fieldModelPath,
121
+ delegate
122
+ });
123
+ }
124
+ else if (fieldModel.type === 'reference') {
125
+ if (!fieldValue) {
126
+ return unsetObject();
127
+ }
128
+ const isLink = delegate.isLinkItem(fieldValue);
129
+ if (isLink) {
130
+ return unresolvedReference(fieldValue, delegate);
131
+ }
132
+ const model = delegate.getModelForItemOfReferenceType(fieldValue);
133
+ if (!model) {
134
+ return unresolvedModel();
135
+ }
136
+ return mapObjectFields({
137
+ data: fieldValue,
138
+ model,
139
+ fieldDataPath,
140
+ delegate
141
+ });
142
+ }
143
+ else if (fieldModel.type === 'model') {
144
+ if (!fieldValue) {
145
+ return unsetObject();
146
+ }
147
+ const fieldModels = _.get(fieldModel, 'models', []);
148
+ const modelsByName = delegate.getModelsByName();
149
+ const model = fieldModels.length === 1 ? _.get(modelsByName, fieldModels[0]) : delegate.getModelForItemOfModelsType(fieldValue);
150
+ if (!model) {
151
+ return unresolvedModel();
152
+ }
153
+ return mapObjectFields({
154
+ data: fieldValue,
155
+ model,
156
+ fieldDataPath,
157
+ delegate
158
+ });
159
+ }
160
+ else {
161
+ // for everything else, delegate encoding to the delegate
162
+ const fieldData = {};
163
+ const encodedField = delegate.encodeField(fieldValue, fieldModel, fieldDataPath);
164
+ if (encodedField) {
165
+ if (_.has(encodedField, 'fieldData')) {
166
+ _.assign(fieldData, encodedField.fieldData);
167
+ }
168
+ }
169
+ return {
170
+ fieldData: omitByNil(fieldData)
171
+ };
172
+ }
173
+ }
174
+ function fieldModelToFieldData(fieldModel, overrides) {
175
+ const type = ['reference', 'model'].includes(fieldModel.type) ? 'object' : fieldModel.type;
176
+ return omitByNil(_.assign({
177
+ type: type,
178
+ label: fieldModel.label,
179
+ description: fieldModel.description,
180
+ // fieldType: fieldModel.type,
181
+ // fieldLabel: fieldModel.label,
182
+ // "localized" field will be excluded from final fieldData by decoder
183
+ localized: fieldModel.localized,
184
+ // "models" field will be excluded from final fieldData by decoder
185
+ models: getFieldModelNames(fieldModel)
186
+ }, fieldModel.type === 'markdown'
187
+ ? {
188
+ multiElement: true
189
+ }
190
+ : null, fieldModel.type === 'enum'
191
+ ? {
192
+ options: _.get(fieldModel, 'options', []),
193
+ source: _.get(fieldModel, 'source')
194
+ }
195
+ : null, overrides));
196
+ }
197
+ function getFieldModelNames(fieldModel) {
198
+ const fieldType = fieldModel.type;
199
+ if (fieldType === 'reference' || fieldType === 'model') {
200
+ return _.clone(_.get(fieldModel, 'models', []));
201
+ }
202
+ else if (fieldModel.type === 'list') {
203
+ const itemsModel = _.get(fieldModel, 'items');
204
+ // in Sanity, array can have items of multiple types
205
+ if (_.isArray(itemsModel)) {
206
+ return Array.from(_.reduce(itemsModel, (accum, itemModel) => {
207
+ return new Set([...accum, ...(getFieldModelNames(itemModel) || [])]);
208
+ }, new Set()));
209
+ }
210
+ else {
211
+ return getFieldModelNames(itemsModel);
212
+ }
213
+ }
214
+ return null;
215
+ }
216
+ function unsetObject() {
217
+ return {
218
+ fieldData: {
219
+ isUnset: true
220
+ }
221
+ };
222
+ }
223
+ function unresolvedReference(fieldValue, delegate) {
224
+ return {
225
+ fieldData: {
226
+ type: 'unresolved_reference',
227
+ refId: delegate.getReferenceId(fieldValue),
228
+ refType: 'object'
229
+ }
230
+ };
231
+ }
232
+ function unresolvedModel() {
233
+ return {
234
+ fieldData: {
235
+ type: 'unresolved_model'
236
+ }
237
+ };
238
+ }
239
+ function mapData(data, prevEncodingResult, delegate) {
240
+ // scan model instances and replace their 'data' with an identity-mapped data
241
+ return _.reduce(data, (accum, item) => {
242
+ const model = delegate.getModelForRootItem(item);
243
+ if (!model) {
244
+ return {
245
+ fieldData: accum.fieldData
246
+ };
247
+ }
248
+ const itemId = delegate.getItemId(item);
249
+ // todo: pass the accumulated hashedData to all children, because we need to remove duplicate fieldPaths from it per strategy when a field has changed (because we might get partial field data)
250
+ // todo: create inverse map to find duplications
251
+ const mappedData = mapObjectFields({
252
+ data: item,
253
+ model: model,
254
+ fieldDataPath: [itemId],
255
+ delegate: delegate
256
+ });
257
+ return {
258
+ fieldData: _.assign(accum.fieldData, { [itemId]: mappedData.fieldData })
259
+ };
260
+ }, {
261
+ fieldData: _.get(prevEncodingResult, 'fieldData', {})
262
+ });
263
+ }
264
+ function encodeData({ data, prevEncodingResult, delegate }) {
265
+ data = _.cloneDeep(data);
266
+ const mappedData = mapData(data, prevEncodingResult, delegate);
267
+ return {
268
+ fieldData: mappedData.fieldData
269
+ };
270
+ }
271
+ module.exports = encodeData;
272
+ //# sourceMappingURL=encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../src/encoder.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import utils = require("./utils");
2
+ import consts = require("./consts");
3
+ import annotator = require("./annotator");
4
+ import encodeData = require("./encoder");
5
+ import stackbit = require("./stackbit");
6
+ export { utils, consts, annotator, encodeData, stackbit };