@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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.js"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@stackbit/cms-core",
3
+ "version": "0.0.3",
4
+ "description": "stackbit-dev",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "/dist",
9
+ "/src"
10
+ ],
11
+ "scripts": {
12
+ "test": "jest --passWithNoTests",
13
+ "build": "rm -rf dist && tsc",
14
+ "watch": "rm -rf dist && tsc -w",
15
+ "prettier": "prettier --write src",
16
+ "prepack": "npm test && npm run build"
17
+ },
18
+ "author": "Stackbit Inc.",
19
+ "license": "MIT",
20
+ "devDependencies": {
21
+ "jest": "^27.4.7",
22
+ "prettier": "^2.5.1",
23
+ "ts-jest": "^27.1.3",
24
+ "typescript": "^4.5.4"
25
+ },
26
+ "dependencies": {
27
+ "@babel/parser": "^7.11.5",
28
+ "@babel/traverse": "^7.11.5",
29
+ "@iarna/toml": "^2.2.3",
30
+ "@stackbit/sdk": "^0.2.22",
31
+ "chalk": "^4.0.1",
32
+ "esm": "^3.2.25",
33
+ "fs-extra": "^8.1.0",
34
+ "glob": "^7.1.6",
35
+ "htmlparser": "^1.7.7",
36
+ "js-yaml": "^3.13.1",
37
+ "lodash": "^4.17.20",
38
+ "micromatch": "^4.0.2",
39
+ "moment": "^2.29.1",
40
+ "parse5": "^6.0.1"
41
+ },
42
+ "gitHead": "c11e30670c8a59ed67503af36febe8fccfd1e2cc"
43
+ }
@@ -0,0 +1,55 @@
1
+
2
+
3
+ const _ = require('lodash');
4
+ const parser = require('parse5');
5
+
6
+ async function createAnnotations(filePath, data, logger) {
7
+ if (!data) {
8
+ return null;
9
+ }
10
+ let document;
11
+ try {
12
+ // See https://astexplorer.net for example parser output
13
+ document = parser.parse(data, {
14
+ sourceCodeLocationInfo: true
15
+ });
16
+ } catch (err) {
17
+ logger.warn('[annotator] error parsing html file', { filePath, err });
18
+ return null;
19
+ }
20
+ const annotations = [];
21
+ const traverse = (node) => {
22
+ if (!node || _.isEmpty(node.childNodes)) {
23
+ return;
24
+ }
25
+ if (node.sourceCodeLocation && node.tagName) {
26
+ annotations.push({
27
+ sourceLocation: {
28
+ /// node.sourceCodeLocation contains the location for the entire node
29
+ start: {
30
+ line: node.sourceCodeLocation.startLine,
31
+ column: node.sourceCodeLocation.startCol - 1
32
+ },
33
+ end: {
34
+ line: node.sourceCodeLocation.endLine,
35
+ column: node.sourceCodeLocation.endCol
36
+ }
37
+ },
38
+ // Example: <p>text</p>
39
+ // node.sourceCodeLocation.startTag.endOffset == ↑
40
+ // The global charactar offset of the ending of the opening tag
41
+ insertOffset: node.sourceCodeLocation.startTag.endOffset - 1
42
+ });
43
+ }
44
+ node.childNodes.forEach((childNode) => traverse(childNode));
45
+ };
46
+ traverse(document);
47
+ if (_.isEmpty(annotations)) {
48
+ return null;
49
+ }
50
+ return annotations;
51
+ }
52
+
53
+ module.exports = {
54
+ createAnnotations
55
+ };
@@ -0,0 +1,135 @@
1
+
2
+ const _ = require('lodash');
3
+ const fse = require('fs-extra');
4
+ const path = require('path');
5
+
6
+ const {
7
+ mapPromise,
8
+ replaceInRange,
9
+ readDirRec
10
+ } = require('../utils');
11
+ const { LOADER_EXCLUDED_FILES, LOADER_EXCLUDED_DIRS } = require('../consts');
12
+
13
+ const reactAnnotator = require('./react');
14
+ const htmlAnnotator = require('./html');
15
+
16
+ module.exports = {
17
+ annotateDir,
18
+ annotateFiles,
19
+ decodeSourcemap
20
+ };
21
+
22
+ const FILE_TYPES = ['js', 'jsx', 'ts', 'tsx', 'html', 'htm'];
23
+ const MAX_FILE_SIZE = 500 * 1024; // 500kb
24
+
25
+ async function encodeSourcemap(filePath, data, annotations) {
26
+ let annotatedData = data;
27
+ const sortedAnnotations = _.orderBy(annotations, ['insertOffset'], ['desc']);
28
+ sortedAnnotations.forEach((annotation) => {
29
+ const loc = annotation.sourceLocation;
30
+ const attribute = ` data-sb-source-file="${filePath}" data-sb-source-position="${loc.start.line},${loc.start.column}:${loc.end.line},${loc.end.column}"`;
31
+ annotatedData = replaceInRange(annotatedData, [annotation.insertOffset, annotation.insertOffset], attribute);
32
+ });
33
+ return annotatedData;
34
+ }
35
+
36
+ async function annotateFile(filePath, inputDir, outputDir, annotator, logger, options = {}) {
37
+ const data = (await fse.readFile(path.join(inputDir, filePath))).toString();
38
+ if (!data || data.length > MAX_FILE_SIZE) {
39
+ logger.debug(`[annotator] skipping file: ${filePath}`, { dataLength: _.get(data, 'length') });
40
+ return null;
41
+ }
42
+ // annotator.createAnnotations returns annotations with the following structure:
43
+ // {
44
+ // insertOffset: number - global character offset in the data where we can insert the annotation data
45
+ // sourceLocation: { start: Position, end: Position } - span of the entire source block in line+column format
46
+ // }
47
+ const annotations = await annotator.createAnnotations(filePath, data, logger);
48
+ if (_.isEmpty(annotations)) {
49
+ return null;
50
+ }
51
+ const annotatedData = await encodeSourcemap(_.get(options, 'pathPrefix') ? path.join(options.pathPrefix, filePath) : filePath, data, annotations);
52
+ if (_.isEqual(data, annotatedData)) {
53
+ return null;
54
+ }
55
+ const outputFilePath = path.join(outputDir, filePath);
56
+ const existingData = (await fse.pathExists(outputFilePath)) ? (await fse.readFile(outputFilePath)).toString() : null;
57
+ if (_.isEqual(annotatedData, existingData) || (existingData && existingData.includes('data-sb-source-position'))) {
58
+ logger.debug(`[annotator] annotating, but skipping write: ${filePath}`, { annotations: annotations.length });
59
+ return;
60
+ }
61
+ logger.debug(`[annotator] annotating: ${filePath}`, { annotations: annotations.length });
62
+ await fse.writeFile(outputFilePath, annotatedData);
63
+ return outputFilePath;
64
+ }
65
+
66
+ function decodePosition(positionString) {
67
+ const parts = positionString.split(',');
68
+ return {
69
+ line: parseInt(parts[0]),
70
+ column: parseInt(parts[1])
71
+ };
72
+ }
73
+
74
+ function decodeSourcemap(attributes) {
75
+ const sourceFile = _.get(attributes, 'data-sb-source-file');
76
+ const sourcePosition = _.get(attributes, 'data-sb-source-position');
77
+ let sourcemap;
78
+ if (sourceFile) {
79
+ let start, end;
80
+ if (sourcePosition) {
81
+ const parts = sourcePosition.split(':');
82
+ start = decodePosition(parts[0]);
83
+ end = decodePosition(parts[1]);
84
+ }
85
+ sourcemap = {
86
+ file: sourceFile,
87
+ start,
88
+ end
89
+ };
90
+ }
91
+ return sourcemap;
92
+ }
93
+
94
+ async function annotateFiles(filePaths, inputDir, outputDir, logger = console, options = {}) {
95
+ const result = await mapPromise(filePaths, async (filePath) => {
96
+ const ext = path.extname(filePath).substring(1);
97
+ let annotator = null;
98
+ if (['js', 'jsx', 'ts', 'tsx'].includes(ext)) {
99
+ annotator = reactAnnotator;
100
+ } else if (['html', 'htm'].includes(ext)) {
101
+ annotator = htmlAnnotator;
102
+ }
103
+ if (annotator) {
104
+ return annotateFile(filePath, inputDir, outputDir, annotator, logger, options);
105
+ }
106
+ });
107
+ return _.compact(result);
108
+ }
109
+
110
+ async function annotateDir(inputDir, outputDir, logger = console, options = {}) {
111
+ logger.debug('[annotator] annotating dir', { inputDir });
112
+ const filePaths = await readDirRec(inputDir, {
113
+ filter: (filePath, stats) => {
114
+ const p = path.parse(filePath);
115
+ const fileName = p.name;
116
+ const dirName = p.dir;
117
+ const ext = path.extname(filePath).substring(1);
118
+ return (
119
+ !filePath.startsWith('.') &&
120
+ !filePath.includes('node_modules') &&
121
+ (!stats.isFile() ||
122
+ (FILE_TYPES.includes(ext) &&
123
+ !['config', '_config'].includes(fileName) &&
124
+ !_.some(LOADER_EXCLUDED_FILES, (f) => filePath.endsWith(f)) &&
125
+ !_.some(LOADER_EXCLUDED_DIRS, (f) => dirName.endsWith(f)) &&
126
+ !fileName.includes('webpack')))
127
+ );
128
+ }
129
+ });
130
+ return annotateFiles(filePaths, inputDir, outputDir, logger, options);
131
+ }
132
+
133
+ if (require.main === module) {
134
+ annotateDir([process.argv[2]], process.argv[3]);
135
+ }
@@ -0,0 +1,56 @@
1
+
2
+
3
+ const _ = require('lodash');
4
+
5
+ const parser = require('@babel/parser');
6
+ const traverse = require('@babel/traverse');
7
+
8
+ const utils = require('../utils');
9
+
10
+ async function createAnnotations(filePath, data, logger) {
11
+ if (!utils.isRelevantReactData(data)) {
12
+ // not suitable for react parsing, stop quickly
13
+ return null;
14
+ }
15
+ let ast;
16
+ try {
17
+ // See https://astexplorer.net for example parser output
18
+ ast = parser.parse(data, {
19
+ sourceType: 'module',
20
+ plugins: ['jsx', 'typescript', 'classProperties'],
21
+ ranges: true
22
+ });
23
+ } catch (err) {
24
+ logger.warn('[annotator] error parsing react file', {filePath, err});
25
+ return null;
26
+ }
27
+ let foundReact = false;
28
+ const annotations = [];
29
+ traverse.default(ast, {
30
+ ImportDeclaration(path) {
31
+ if (!foundReact) {
32
+ foundReact = _.get(path, 'node.source.value', '').trim().toLowerCase() === 'react';
33
+ }
34
+ path.skip();
35
+ },
36
+ JSXElement(path) {
37
+ const children = path.node.children;
38
+ const elementName = _.get(path, 'node.openingElement.name.name');
39
+ if (!children || !path.node.loc || !elementName) {
40
+ return null;
41
+ }
42
+ annotations.push({
43
+ sourceLocation: path.node.loc,
44
+ insertOffset: _.get(path, 'node.openingElement.name.end')
45
+ });
46
+ }
47
+ });
48
+ if (!foundReact || _.isEmpty(annotations)) {
49
+ return null;
50
+ }
51
+ return annotations;
52
+ }
53
+
54
+ module.exports = {
55
+ createAnnotations
56
+ };
package/src/consts.js ADDED
@@ -0,0 +1,41 @@
1
+ module.exports = {
2
+ SIMPLE_VALUE_FIELDS: ['string', 'text', 'markdown', 'number', 'url', 'slug', 'boolean', 'date', 'datetime', 'color'],
3
+ RICH_TEXT_HINT_MAX_LENGTH: 200,
4
+ RICH_TEXT_NODE_TYPES: {
5
+ DOCUMENT: 'document',
6
+ PARAGRAPH: 'p',
7
+ HEADING_1: 'h1',
8
+ HEADING_2: 'h2',
9
+ HEADING_3: 'h3',
10
+ HEADING_4: 'h4',
11
+ HEADING_5: 'h5',
12
+ HEADING_6: 'h6',
13
+ OL: 'ol',
14
+ UL: 'ul',
15
+ LIST_ITEM: 'li',
16
+ HR: 'hr',
17
+ BLOCKQUOTE: 'blockquote',
18
+ LINK: 'a',
19
+ REFERENCE: 'reference'
20
+ },
21
+ RICH_TEXT_MARK_TYPES: {
22
+ BOLD: 'bold',
23
+ ITALIC: 'italic',
24
+ UNDERLINE: 'underline',
25
+ CODE: 'code'
26
+ },
27
+ LOADER_EXCLUDED_FILES: [
28
+ 'LICENSE.md',
29
+ 'README.md',
30
+ 'README.theme.md',
31
+ 'CONTRIBUTING.md',
32
+ 'CHANGELOG.md',
33
+ 'stackbit.yaml',
34
+ 'netlify.toml',
35
+ 'theme.toml',
36
+ 'package.json',
37
+ 'package-lock.json',
38
+ 'yarn-lock.json'
39
+ ],
40
+ LOADER_EXCLUDED_DIRS: ['src/pages']
41
+ };