@mui/internal-docs-infra 0.1.1-canary.8 → 0.2.0-alpha.1
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/CHANGELOG.md +9 -0
- package/README.md +3 -11
- package/esm/CodeControllerContext/CodeControllerContext.d.ts +62 -0
- package/esm/CodeControllerContext/CodeControllerContext.js +33 -0
- package/esm/CodeControllerContext/index.d.ts +1 -0
- package/esm/CodeControllerContext/index.js +1 -0
- package/esm/CodeExternalsContext/CodeExternalsContext.d.ts +8 -0
- package/esm/CodeExternalsContext/CodeExternalsContext.js +8 -0
- package/esm/CodeExternalsContext/index.d.ts +1 -0
- package/esm/CodeExternalsContext/index.js +1 -0
- package/esm/CodeHighlighter/CodeHighlighter.d.ts +2 -0
- package/esm/CodeHighlighter/CodeHighlighter.js +441 -0
- package/esm/CodeHighlighter/CodeHighlighterClient.d.ts +2 -0
- package/esm/CodeHighlighter/CodeHighlighterClient.js +984 -0
- package/esm/CodeHighlighter/CodeHighlighterContext.d.ts +16 -0
- package/esm/CodeHighlighter/CodeHighlighterContext.js +15 -0
- package/esm/CodeHighlighter/CodeHighlighterFallbackContext.d.ts +7 -0
- package/esm/CodeHighlighter/CodeHighlighterFallbackContext.js +14 -0
- package/esm/CodeHighlighter/addPathsToVariant.d.ts +14 -0
- package/esm/CodeHighlighter/addPathsToVariant.js +68 -0
- package/esm/CodeHighlighter/applyTransform.d.ts +19 -0
- package/esm/CodeHighlighter/applyTransform.js +75 -0
- package/esm/CodeHighlighter/calculateMainFilePath.d.ts +1 -0
- package/esm/CodeHighlighter/calculateMainFilePath.js +108 -0
- package/esm/CodeHighlighter/codeToFallbackProps.d.ts +2 -0
- package/esm/CodeHighlighter/codeToFallbackProps.js +73 -0
- package/esm/CodeHighlighter/errors.d.ts +141 -0
- package/esm/CodeHighlighter/errors.js +441 -0
- package/esm/CodeHighlighter/examineVariant.d.ts +25 -0
- package/esm/CodeHighlighter/examineVariant.js +73 -0
- package/esm/CodeHighlighter/hasAllVariants.d.ts +27 -0
- package/esm/CodeHighlighter/hasAllVariants.js +63 -0
- package/esm/CodeHighlighter/index.d.ts +1 -0
- package/esm/CodeHighlighter/index.js +1 -0
- package/esm/CodeHighlighter/loadFallbackCode.d.ts +10 -0
- package/esm/CodeHighlighter/loadFallbackCode.js +679 -0
- package/esm/CodeHighlighter/loadVariant.d.ts +12 -0
- package/esm/CodeHighlighter/loadVariant.js +1044 -0
- package/esm/CodeHighlighter/maybeInitialData.d.ts +108 -0
- package/esm/CodeHighlighter/maybeInitialData.js +192 -0
- package/esm/CodeHighlighter/mergeMetadata.d.ts +40 -0
- package/esm/CodeHighlighter/mergeMetadata.js +165 -0
- package/esm/CodeHighlighter/parseCode.d.ts +6 -0
- package/esm/CodeHighlighter/parseCode.js +134 -0
- package/esm/CodeHighlighter/parseControlledCode.d.ts +6 -0
- package/esm/CodeHighlighter/parseControlledCode.js +87 -0
- package/esm/CodeHighlighter/pathUtils.d.ts +120 -0
- package/esm/CodeHighlighter/pathUtils.js +258 -0
- package/esm/CodeHighlighter/transformCode.d.ts +21 -0
- package/esm/CodeHighlighter/transformCode.js +251 -0
- package/esm/CodeHighlighter/transformParsedSource.d.ts +3 -0
- package/esm/CodeHighlighter/transformParsedSource.js +60 -0
- package/esm/CodeHighlighter/transformSource.d.ts +2 -0
- package/esm/CodeHighlighter/transformSource.js +103 -0
- package/esm/CodeHighlighter/types.d.ts +276 -0
- package/esm/CodeHighlighter/types.js +1 -0
- package/esm/CodeProvider/CodeContext.d.ts +31 -0
- package/esm/CodeProvider/CodeContext.js +12 -0
- package/esm/CodeProvider/CodeProvider.d.ts +13 -0
- package/esm/CodeProvider/CodeProvider.js +83 -0
- package/esm/CodeProvider/index.d.ts +1 -0
- package/esm/CodeProvider/index.js +1 -0
- package/esm/abstractCreateDemo/abstractCreateDemo.d.ts +45 -0
- package/esm/abstractCreateDemo/abstractCreateDemo.js +100 -0
- package/esm/abstractCreateDemo/index.d.ts +1 -0
- package/esm/abstractCreateDemo/index.js +1 -0
- package/esm/abstractCreateDemoClient/abstractCreateDemoClient.d.ts +32 -0
- package/esm/abstractCreateDemoClient/abstractCreateDemoClient.js +52 -0
- package/esm/abstractCreateDemoClient/index.d.ts +1 -0
- package/esm/abstractCreateDemoClient/index.js +1 -0
- package/esm/createDemoData/createDemoData.d.ts +44 -0
- package/esm/createDemoData/createDemoData.js +74 -0
- package/esm/createDemoData/index.d.ts +1 -0
- package/esm/createDemoData/index.js +1 -0
- package/esm/createDemoData/types.d.ts +25 -0
- package/esm/createDemoData/types.js +1 -0
- package/esm/pipeline/hastUtils/hastUtils.d.ts +11 -0
- package/esm/pipeline/hastUtils/hastUtils.js +67 -0
- package/esm/pipeline/hastUtils/index.d.ts +1 -0
- package/esm/pipeline/hastUtils/index.js +1 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/index.d.ts +2 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/index.js +4 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.d.ts +14 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.js +178 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.d.ts +47 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.js +849 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/parseFunctionArguments.d.ts +85 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/parseFunctionArguments.js +715 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/replacePrecomputeValue.d.ts +14 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/replacePrecomputeValue.js +73 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/serializeFunctionArguments.d.ts +11 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighter/serializeFunctionArguments.js +203 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/filterRuntimeExternals.d.ts +6 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/filterRuntimeExternals.js +23 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/generateImportStatements.d.ts +6 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/generateImportStatements.js +148 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/generateResolvedExternals.d.ts +9 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/generateResolvedExternals.js +198 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/index.d.ts +2 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/index.js +4 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/injectImportsIntoSource.d.ts +5 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/injectImportsIntoSource.js +21 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/loadPrecomputedCodeHighlighterClient.d.ts +15 -0
- package/esm/pipeline/loadPrecomputedCodeHighlighterClient/loadPrecomputedCodeHighlighterClient.js +233 -0
- package/esm/pipeline/loadServerCodeMeta/index.d.ts +1 -0
- package/esm/pipeline/loadServerCodeMeta/index.js +1 -0
- package/esm/pipeline/loadServerCodeMeta/loadServerCodeMeta.d.ts +24 -0
- package/esm/pipeline/loadServerCodeMeta/loadServerCodeMeta.js +90 -0
- package/esm/pipeline/loadServerSource/index.d.ts +1 -0
- package/esm/pipeline/loadServerSource/index.js +1 -0
- package/esm/pipeline/loadServerSource/loadServerSource.d.ts +25 -0
- package/esm/pipeline/loadServerSource/loadServerSource.js +134 -0
- package/esm/pipeline/loaderUtils/externalsToPackages.d.ts +1 -0
- package/esm/pipeline/loaderUtils/externalsToPackages.js +46 -0
- package/esm/pipeline/loaderUtils/extractNameAndSlugFromUrl.d.ts +34 -0
- package/esm/pipeline/loaderUtils/extractNameAndSlugFromUrl.js +161 -0
- package/esm/pipeline/loaderUtils/getFileNameFromUrl.d.ts +12 -0
- package/esm/pipeline/loaderUtils/getFileNameFromUrl.js +66 -0
- package/esm/pipeline/loaderUtils/index.d.ts +7 -0
- package/esm/pipeline/loaderUtils/index.js +7 -0
- package/esm/pipeline/loaderUtils/mergeExternals.d.ts +32 -0
- package/esm/pipeline/loaderUtils/mergeExternals.js +72 -0
- package/esm/pipeline/loaderUtils/parseImports.d.ts +19 -0
- package/esm/pipeline/loaderUtils/parseImports.js +306 -0
- package/esm/pipeline/loaderUtils/processRelativeImports.d.ts +19 -0
- package/esm/pipeline/loaderUtils/processRelativeImports.js +352 -0
- package/esm/pipeline/loaderUtils/resolveModulePath.d.ts +87 -0
- package/esm/pipeline/loaderUtils/resolveModulePath.js +1435 -0
- package/esm/pipeline/loaderUtils/resolveModulePathWithFs.d.ts +47 -0
- package/esm/pipeline/loaderUtils/resolveModulePathWithFs.js +150 -0
- package/esm/pipeline/loaderUtils/rewriteImports.d.ts +9 -0
- package/esm/pipeline/loaderUtils/rewriteImports.js +35 -0
- package/esm/pipeline/parseSource/addLineGutters.d.ts +9 -0
- package/esm/pipeline/parseSource/addLineGutters.js +181 -0
- package/esm/pipeline/parseSource/grammars.d.ts +2 -0
- package/esm/pipeline/parseSource/grammars.js +27 -0
- package/esm/pipeline/parseSource/index.d.ts +1 -0
- package/esm/pipeline/parseSource/index.js +1 -0
- package/esm/pipeline/parseSource/parseSource.d.ts +3 -0
- package/esm/pipeline/parseSource/parseSource.js +51 -0
- package/esm/pipeline/transformHtmlCode/index.d.ts +2 -0
- package/esm/pipeline/transformHtmlCode/index.js +4 -0
- package/esm/pipeline/transformHtmlCode/transformHtmlCode.d.ts +13 -0
- package/esm/pipeline/transformHtmlCode/transformHtmlCode.js +300 -0
- package/esm/pipeline/transformMarkdownCode/index.d.ts +2 -0
- package/esm/pipeline/transformMarkdownCode/index.js +4 -0
- package/esm/pipeline/transformMarkdownCode/transformMarkdownCode.d.ts +2 -0
- package/esm/pipeline/transformMarkdownCode/transformMarkdownCode.js +514 -0
- package/esm/pipeline/transformTypescriptToJavascript/index.d.ts +1 -0
- package/esm/pipeline/transformTypescriptToJavascript/index.js +1 -0
- package/esm/pipeline/transformTypescriptToJavascript/removeTypes.d.ts +13 -0
- package/esm/pipeline/transformTypescriptToJavascript/removeTypes.js +131 -0
- package/esm/pipeline/transformTypescriptToJavascript/transformTypescriptToJavascript.d.ts +3 -0
- package/esm/pipeline/transformTypescriptToJavascript/transformTypescriptToJavascript.js +31 -0
- package/esm/useCode/Pre.d.ts +15 -0
- package/esm/useCode/Pre.js +164 -0
- package/esm/useCode/index.d.ts +1 -0
- package/esm/useCode/index.js +1 -0
- package/esm/useCode/useCode.d.ts +41 -0
- package/esm/useCode/useCode.js +128 -0
- package/esm/useCode/useCodeUtils.d.ts +44 -0
- package/esm/useCode/useCodeUtils.js +245 -0
- package/esm/useCode/useCopyFunctionality.d.ts +18 -0
- package/esm/useCode/useCopyFunctionality.js +28 -0
- package/esm/useCode/useFileNavigation.d.ts +41 -0
- package/esm/useCode/useFileNavigation.js +453 -0
- package/esm/useCode/useSourceEditing.d.ts +21 -0
- package/esm/useCode/useSourceEditing.js +32 -0
- package/esm/useCode/useTransformManagement.d.ts +30 -0
- package/esm/useCode/useTransformManagement.js +72 -0
- package/esm/useCode/useUIState.d.ts +16 -0
- package/esm/useCode/useUIState.js +21 -0
- package/esm/useCode/useVariantSelection.d.ts +23 -0
- package/esm/useCode/useVariantSelection.js +75 -0
- package/esm/useCopier/index.d.ts +1 -1
- package/esm/useCopier/index.js +5 -5
- package/esm/useDemo/createCodeSandbox.d.ts +15 -0
- package/esm/useDemo/createCodeSandbox.js +42 -0
- package/esm/useDemo/createStackBlitz.d.ts +22 -0
- package/esm/useDemo/createStackBlitz.js +38 -0
- package/esm/useDemo/exportVariant.d.ts +184 -0
- package/esm/useDemo/exportVariant.js +422 -0
- package/esm/useDemo/exportVariantAsCra.d.ts +15 -0
- package/esm/useDemo/exportVariantAsCra.js +57 -0
- package/esm/useDemo/flattenVariant.d.ts +19 -0
- package/esm/useDemo/flattenVariant.js +49 -0
- package/esm/useDemo/index.d.ts +6 -51
- package/esm/useDemo/index.js +6 -104
- package/esm/useDemo/useDemo.d.ts +81 -0
- package/esm/useDemo/useDemo.js +193 -0
- package/esm/useErrors/ErrorsContext.d.ts +6 -0
- package/esm/useErrors/ErrorsContext.js +8 -0
- package/esm/useErrors/index.d.ts +1 -0
- package/esm/useErrors/index.js +1 -0
- package/esm/useErrors/useErrors.d.ts +5 -0
- package/esm/useErrors/useErrors.js +7 -0
- package/esm/useLocalStorageState/index.d.ts +2 -0
- package/esm/useLocalStorageState/index.js +2 -0
- package/esm/useLocalStorageState/useLocalStorageState.d.ts +14 -0
- package/esm/useLocalStorageState/useLocalStorageState.js +128 -0
- package/esm/usePreference/PreferencesProvider.d.ts +6 -0
- package/esm/usePreference/PreferencesProvider.js +8 -0
- package/esm/usePreference/index.d.ts +2 -0
- package/esm/usePreference/index.js +2 -0
- package/esm/usePreference/usePreference.d.ts +2 -0
- package/esm/usePreference/usePreference.js +25 -0
- package/esm/useUrlHashState/index.d.ts +1 -0
- package/esm/useUrlHashState/index.js +1 -0
- package/esm/useUrlHashState/useUrlHashState.d.ts +5 -0
- package/esm/useUrlHashState/useUrlHashState.js +68 -0
- package/esm/withDocsInfra/index.d.ts +1 -0
- package/esm/withDocsInfra/index.js +1 -0
- package/esm/withDocsInfra/withDocsInfra.d.ts +82 -0
- package/esm/withDocsInfra/withDocsInfra.js +147 -0
- package/package.json +178 -11
- package/esm/useCopier/index.d.ts.map +0 -1
- package/esm/useDemo/index.d.ts.map +0 -1
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
2
|
+
import _regenerator from "@babel/runtime/helpers/esm/regenerator";
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
5
|
+
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
6
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
7
|
+
import { toText } from 'hast-util-to-text';
|
|
8
|
+
import { transformParsedSource } from "./transformParsedSource.js";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Pure function to identify which variants need transformation.
|
|
12
|
+
* Returns entries of variants that have transforms requiring processing.
|
|
13
|
+
*/
|
|
14
|
+
export function getVariantsToTransform(parsedCode) {
|
|
15
|
+
return Object.entries(parsedCode).filter(function (_ref) {
|
|
16
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
17
|
+
variantCode = _ref2[1];
|
|
18
|
+
if (!variantCode || _typeof(variantCode) !== 'object') {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Check if main source has transforms and needs processing
|
|
23
|
+
var mainSourceNeedsTransform = variantCode.transforms && variantCode.source && typeof variantCode.source !== 'string' && !('hastJson' in variantCode.source);
|
|
24
|
+
|
|
25
|
+
// Check if any extraFiles have transforms and need processing
|
|
26
|
+
var extraFilesNeedTransform = variantCode.extraFiles ? Object.values(variantCode.extraFiles).some(function (fileContent) {
|
|
27
|
+
return _typeof(fileContent) === 'object' && fileContent && fileContent.transforms && fileContent.source && typeof fileContent.source !== 'string' && !('hastJson' in fileContent.source);
|
|
28
|
+
}) : false;
|
|
29
|
+
return mainSourceNeedsTransform || extraFilesNeedTransform;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Pure function to get available transforms from a specific variant.
|
|
35
|
+
* Only includes transforms that have actual deltas (file changes), not just filename changes.
|
|
36
|
+
*/
|
|
37
|
+
export function getAvailableTransforms(parsedCode, variantName) {
|
|
38
|
+
var currentVariant = parsedCode == null ? void 0 : parsedCode[variantName];
|
|
39
|
+
if (!currentVariant || _typeof(currentVariant) !== 'object') {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
var transforms = new Set();
|
|
43
|
+
|
|
44
|
+
// Check main variant transforms
|
|
45
|
+
if (currentVariant.transforms) {
|
|
46
|
+
Object.keys(currentVariant.transforms).forEach(function (transformKey) {
|
|
47
|
+
var transformData = currentVariant.transforms[transformKey];
|
|
48
|
+
// Only include transforms that have actual deltas (file changes)
|
|
49
|
+
// Check if delta exists and is not empty
|
|
50
|
+
if (transformData && _typeof(transformData) === 'object' && 'delta' in transformData) {
|
|
51
|
+
var delta = transformData.delta;
|
|
52
|
+
// Check if delta has meaningful content (not just an empty object)
|
|
53
|
+
var hasContent = delta && _typeof(delta) === 'object' && Object.keys(delta).length > 0;
|
|
54
|
+
if (hasContent) {
|
|
55
|
+
transforms.add(transformKey);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Check extraFiles for transforms with deltas
|
|
62
|
+
if (currentVariant.extraFiles) {
|
|
63
|
+
Object.values(currentVariant.extraFiles).forEach(function (fileData) {
|
|
64
|
+
if (fileData && _typeof(fileData) === 'object' && 'transforms' in fileData && fileData.transforms) {
|
|
65
|
+
Object.keys(fileData.transforms).forEach(function (transformKey) {
|
|
66
|
+
var transformData = fileData.transforms[transformKey];
|
|
67
|
+
// Only include transforms that have actual deltas (file changes)
|
|
68
|
+
// Check if delta exists and is not empty
|
|
69
|
+
if (transformData && _typeof(transformData) === 'object' && 'delta' in transformData) {
|
|
70
|
+
var delta = transformData.delta;
|
|
71
|
+
// Check if delta has meaningful content (not just an empty object)
|
|
72
|
+
var hasContent = delta && _typeof(delta) === 'object' && Object.keys(delta).length > 0;
|
|
73
|
+
if (hasContent) {
|
|
74
|
+
transforms.add(transformKey);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return Array.from(transforms);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Pure async function to transform a single variant's code and extraFiles.
|
|
86
|
+
* Returns the transformed variant or the original if transformation fails.
|
|
87
|
+
*/
|
|
88
|
+
export function transformVariant(_x, _x2, _x3) {
|
|
89
|
+
return _transformVariant.apply(this, arguments);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Pure async function to apply transformations to all variants that need them.
|
|
94
|
+
* Returns the enhanced code with computed transforms.
|
|
95
|
+
*/
|
|
96
|
+
function _transformVariant() {
|
|
97
|
+
_transformVariant = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(variant, variantCode, parseSource) {
|
|
98
|
+
var mainTransformResult, transformedExtraFiles, hastNodes, sourceString, transformedVariant;
|
|
99
|
+
return _regenerator().w(function (_context2) {
|
|
100
|
+
while (1) switch (_context2.n) {
|
|
101
|
+
case 0:
|
|
102
|
+
if (!(_typeof(variantCode) !== 'object' || !variantCode)) {
|
|
103
|
+
_context2.n = 1;
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
return _context2.a(2, variantCode);
|
|
107
|
+
case 1:
|
|
108
|
+
if (!(variantCode.transforms && variantCode.source && typeof variantCode.source !== 'string' && !('hastJson' in variantCode.source))) {
|
|
109
|
+
_context2.n = 3;
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
hastNodes = variantCode.source;
|
|
113
|
+
sourceString = toText(hastNodes, {
|
|
114
|
+
whitespace: 'pre'
|
|
115
|
+
});
|
|
116
|
+
_context2.n = 2;
|
|
117
|
+
return transformParsedSource(sourceString, hastNodes, variant,
|
|
118
|
+
// fileName
|
|
119
|
+
variantCode.transforms, parseSource);
|
|
120
|
+
case 2:
|
|
121
|
+
mainTransformResult = _context2.v;
|
|
122
|
+
case 3:
|
|
123
|
+
if (!variantCode.extraFiles) {
|
|
124
|
+
_context2.n = 5;
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
_context2.n = 4;
|
|
128
|
+
return Promise.all(Object.entries(variantCode.extraFiles).map(/*#__PURE__*/function () {
|
|
129
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref3) {
|
|
130
|
+
var _ref5, fileName, fileContent, extraHastNodes, extraSourceString, extraTransformResult, _t;
|
|
131
|
+
return _regenerator().w(function (_context) {
|
|
132
|
+
while (1) switch (_context.p = _context.n) {
|
|
133
|
+
case 0:
|
|
134
|
+
_ref5 = _slicedToArray(_ref3, 2), fileName = _ref5[0], fileContent = _ref5[1];
|
|
135
|
+
if (!(_typeof(fileContent) === 'object' && fileContent && fileContent.transforms && fileContent.source && typeof fileContent.source !== 'string' && !('hastJson' in fileContent.source))) {
|
|
136
|
+
_context.n = 4;
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
_context.p = 1;
|
|
140
|
+
extraHastNodes = fileContent.source;
|
|
141
|
+
extraSourceString = toText(extraHastNodes, {
|
|
142
|
+
whitespace: 'pre'
|
|
143
|
+
});
|
|
144
|
+
_context.n = 2;
|
|
145
|
+
return transformParsedSource(extraSourceString, extraHastNodes, fileName, fileContent.transforms, parseSource);
|
|
146
|
+
case 2:
|
|
147
|
+
extraTransformResult = _context.v;
|
|
148
|
+
return _context.a(2, [fileName, _extends(_extends({}, fileContent), {}, {
|
|
149
|
+
transforms: extraTransformResult
|
|
150
|
+
})]);
|
|
151
|
+
case 3:
|
|
152
|
+
_context.p = 3;
|
|
153
|
+
_t = _context.v;
|
|
154
|
+
console.error("Failed to transform extraFile ".concat(fileName, ":"), _t);
|
|
155
|
+
return _context.a(2, [fileName, fileContent]);
|
|
156
|
+
case 4:
|
|
157
|
+
return _context.a(2, [fileName, fileContent]);
|
|
158
|
+
}
|
|
159
|
+
}, _callee, null, [[1, 3]]);
|
|
160
|
+
}));
|
|
161
|
+
return function (_x6) {
|
|
162
|
+
return _ref4.apply(this, arguments);
|
|
163
|
+
};
|
|
164
|
+
}())).then(function (entries) {
|
|
165
|
+
return Object.fromEntries(entries);
|
|
166
|
+
});
|
|
167
|
+
case 4:
|
|
168
|
+
transformedExtraFiles = _context2.v;
|
|
169
|
+
case 5:
|
|
170
|
+
// Update the variant with the computed results
|
|
171
|
+
transformedVariant = _extends(_extends(_extends({}, variantCode), mainTransformResult && {
|
|
172
|
+
transforms: mainTransformResult
|
|
173
|
+
}), transformedExtraFiles && {
|
|
174
|
+
extraFiles: transformedExtraFiles
|
|
175
|
+
});
|
|
176
|
+
return _context2.a(2, transformedVariant);
|
|
177
|
+
}
|
|
178
|
+
}, _callee2);
|
|
179
|
+
}));
|
|
180
|
+
return _transformVariant.apply(this, arguments);
|
|
181
|
+
}
|
|
182
|
+
export function applyTransforms(_x4, _x5) {
|
|
183
|
+
return _applyTransforms.apply(this, arguments);
|
|
184
|
+
}
|
|
185
|
+
function _applyTransforms() {
|
|
186
|
+
_applyTransforms = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(parsedCode, parseSource) {
|
|
187
|
+
var variantsToTransform, results, enhancedCode, _iterator, _step, _step$value, variant, transformedVariant;
|
|
188
|
+
return _regenerator().w(function (_context4) {
|
|
189
|
+
while (1) switch (_context4.n) {
|
|
190
|
+
case 0:
|
|
191
|
+
variantsToTransform = getVariantsToTransform(parsedCode);
|
|
192
|
+
if (!(variantsToTransform.length === 0)) {
|
|
193
|
+
_context4.n = 1;
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
return _context4.a(2, parsedCode);
|
|
197
|
+
case 1:
|
|
198
|
+
_context4.n = 2;
|
|
199
|
+
return Promise.all(variantsToTransform.map(/*#__PURE__*/function () {
|
|
200
|
+
var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(_ref6) {
|
|
201
|
+
var _ref8, variant, variantCode, transformedVariant, _t2;
|
|
202
|
+
return _regenerator().w(function (_context3) {
|
|
203
|
+
while (1) switch (_context3.p = _context3.n) {
|
|
204
|
+
case 0:
|
|
205
|
+
_ref8 = _slicedToArray(_ref6, 2), variant = _ref8[0], variantCode = _ref8[1];
|
|
206
|
+
_context3.p = 1;
|
|
207
|
+
_context3.n = 2;
|
|
208
|
+
return transformVariant(variant, variantCode, parseSource);
|
|
209
|
+
case 2:
|
|
210
|
+
transformedVariant = _context3.v;
|
|
211
|
+
return _context3.a(2, {
|
|
212
|
+
variant: variant,
|
|
213
|
+
transformedVariant: transformedVariant
|
|
214
|
+
});
|
|
215
|
+
case 3:
|
|
216
|
+
_context3.p = 3;
|
|
217
|
+
_t2 = _context3.v;
|
|
218
|
+
// Keep original variant if transformation fails
|
|
219
|
+
console.error("Failed to transform variant ".concat(variant, ":"), _t2);
|
|
220
|
+
return _context3.a(2, {
|
|
221
|
+
variant: variant,
|
|
222
|
+
transformedVariant: variantCode
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}, _callee3, null, [[1, 3]]);
|
|
226
|
+
}));
|
|
227
|
+
return function (_x7) {
|
|
228
|
+
return _ref7.apply(this, arguments);
|
|
229
|
+
};
|
|
230
|
+
}()));
|
|
231
|
+
case 2:
|
|
232
|
+
results = _context4.v;
|
|
233
|
+
// Apply the transformations to create the enhanced code
|
|
234
|
+
enhancedCode = _extends({}, parsedCode);
|
|
235
|
+
_iterator = _createForOfIteratorHelper(results);
|
|
236
|
+
try {
|
|
237
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
238
|
+
_step$value = _step.value, variant = _step$value.variant, transformedVariant = _step$value.transformedVariant;
|
|
239
|
+
enhancedCode[variant] = transformedVariant;
|
|
240
|
+
}
|
|
241
|
+
} catch (err) {
|
|
242
|
+
_iterator.e(err);
|
|
243
|
+
} finally {
|
|
244
|
+
_iterator.f();
|
|
245
|
+
}
|
|
246
|
+
return _context4.a(2, enhancedCode);
|
|
247
|
+
}
|
|
248
|
+
}, _callee4);
|
|
249
|
+
}));
|
|
250
|
+
return _applyTransforms.apply(this, arguments);
|
|
251
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
+
import _regenerator from "@babel/runtime/helpers/esm/regenerator";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
5
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
6
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
7
|
+
import { create, patch } from 'jsondiffpatch';
|
|
8
|
+
var differ = create({
|
|
9
|
+
omitRemovedValues: true,
|
|
10
|
+
cloneDiffValues: true
|
|
11
|
+
});
|
|
12
|
+
export function transformParsedSource(_x, _x2, _x3, _x4, _x5) {
|
|
13
|
+
return _transformParsedSource.apply(this, arguments);
|
|
14
|
+
}
|
|
15
|
+
function _transformParsedSource() {
|
|
16
|
+
_transformParsedSource = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(source, parsedSource, filename, transforms, parseSource) {
|
|
17
|
+
var transformed;
|
|
18
|
+
return _regenerator().w(function (_context2) {
|
|
19
|
+
while (1) switch (_context2.n) {
|
|
20
|
+
case 0:
|
|
21
|
+
_context2.n = 1;
|
|
22
|
+
return Promise.all(Object.entries(transforms).map(/*#__PURE__*/function () {
|
|
23
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
|
|
24
|
+
var _ref3, key, transform, patched, transformedSource, parsedTransform, delta;
|
|
25
|
+
return _regenerator().w(function (_context) {
|
|
26
|
+
while (1) switch (_context.n) {
|
|
27
|
+
case 0:
|
|
28
|
+
_ref3 = _slicedToArray(_ref, 2), key = _ref3[0], transform = _ref3[1];
|
|
29
|
+
patched = patch(source.split('\n'), transform.delta);
|
|
30
|
+
if (Array.isArray(patched)) {
|
|
31
|
+
_context.n = 1;
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
throw new Error("Patch for ".concat(key, " did not return an array"));
|
|
35
|
+
case 1:
|
|
36
|
+
transformedSource = patched.join('\n');
|
|
37
|
+
_context.n = 2;
|
|
38
|
+
return parseSource(transformedSource, transform.fileName || filename);
|
|
39
|
+
case 2:
|
|
40
|
+
parsedTransform = _context.v;
|
|
41
|
+
// TODO: further optimize this delta, it looks a little noisy
|
|
42
|
+
delta = differ.diff(parsedSource, parsedTransform);
|
|
43
|
+
return _context.a(2, _defineProperty({}, key, _extends(_extends({}, transform), {}, {
|
|
44
|
+
delta: delta
|
|
45
|
+
})));
|
|
46
|
+
}
|
|
47
|
+
}, _callee);
|
|
48
|
+
}));
|
|
49
|
+
return function (_x6) {
|
|
50
|
+
return _ref2.apply(this, arguments);
|
|
51
|
+
};
|
|
52
|
+
}()));
|
|
53
|
+
case 1:
|
|
54
|
+
transformed = _context2.v;
|
|
55
|
+
return _context2.a(2, Object.assign.apply(Object, [{}].concat(_toConsumableArray(transformed))));
|
|
56
|
+
}
|
|
57
|
+
}, _callee2);
|
|
58
|
+
}));
|
|
59
|
+
return _transformParsedSource.apply(this, arguments);
|
|
60
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import _regenerator from "@babel/runtime/helpers/esm/regenerator";
|
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
4
|
+
import { create } from 'jsondiffpatch';
|
|
5
|
+
import { toText } from 'hast-util-to-text';
|
|
6
|
+
var differ = create({
|
|
7
|
+
omitRemovedValues: true,
|
|
8
|
+
cloneDiffValues: true
|
|
9
|
+
});
|
|
10
|
+
export function transformSource(_x, _x2, _x3) {
|
|
11
|
+
return _transformSource.apply(this, arguments);
|
|
12
|
+
}
|
|
13
|
+
function _transformSource() {
|
|
14
|
+
_transformSource = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(source, fileName, sourceTransformers) {
|
|
15
|
+
var transforms;
|
|
16
|
+
return _regenerator().w(function (_context2) {
|
|
17
|
+
while (1) switch (_context2.n) {
|
|
18
|
+
case 0:
|
|
19
|
+
_context2.n = 1;
|
|
20
|
+
return Promise.all(sourceTransformers.map(/*#__PURE__*/function () {
|
|
21
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
|
|
22
|
+
var extensions, transformer, sourceString, transformed, splitSource, _t;
|
|
23
|
+
return _regenerator().w(function (_context) {
|
|
24
|
+
while (1) switch (_context.p = _context.n) {
|
|
25
|
+
case 0:
|
|
26
|
+
extensions = _ref.extensions, transformer = _ref.transformer;
|
|
27
|
+
if (extensions.some(function (ext) {
|
|
28
|
+
return fileName.endsWith(".".concat(ext));
|
|
29
|
+
})) {
|
|
30
|
+
_context.n = 1;
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
return _context.a(2, undefined);
|
|
34
|
+
case 1:
|
|
35
|
+
_context.p = 1;
|
|
36
|
+
if (typeof source === 'string') {
|
|
37
|
+
sourceString = source;
|
|
38
|
+
} else if ('hastJson' in source) {
|
|
39
|
+
sourceString = toText(JSON.parse(source.hastJson));
|
|
40
|
+
} else {
|
|
41
|
+
sourceString = toText(source);
|
|
42
|
+
}
|
|
43
|
+
_context.n = 2;
|
|
44
|
+
return transformer(sourceString, fileName);
|
|
45
|
+
case 2:
|
|
46
|
+
transformed = _context.v;
|
|
47
|
+
if (!transformed) {
|
|
48
|
+
_context.n = 3;
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
splitSource = sourceString.split('\n');
|
|
52
|
+
return _context.a(2, Object.keys(transformed).reduce(function (acc, key) {
|
|
53
|
+
var delta = differ.diff(splitSource, transformed[key].source.split('\n'));
|
|
54
|
+
acc[key] = {
|
|
55
|
+
delta: delta,
|
|
56
|
+
fileName: transformed[key].fileName
|
|
57
|
+
};
|
|
58
|
+
return acc;
|
|
59
|
+
}, {}));
|
|
60
|
+
case 3:
|
|
61
|
+
return _context.a(2, undefined);
|
|
62
|
+
case 4:
|
|
63
|
+
_context.p = 4;
|
|
64
|
+
_t = _context.v;
|
|
65
|
+
throw new Error("Failed to transform source code (file: ".concat(fileName, "): ").concat(_t instanceof Error && _t.message));
|
|
66
|
+
case 5:
|
|
67
|
+
return _context.a(2);
|
|
68
|
+
}
|
|
69
|
+
}, _callee, null, [[1, 4]]);
|
|
70
|
+
}));
|
|
71
|
+
return function (_x4) {
|
|
72
|
+
return _ref2.apply(this, arguments);
|
|
73
|
+
};
|
|
74
|
+
}()));
|
|
75
|
+
case 1:
|
|
76
|
+
transforms = _context2.v;
|
|
77
|
+
if (!(transforms.length === 0 || transforms.every(function (t) {
|
|
78
|
+
return t === undefined;
|
|
79
|
+
}))) {
|
|
80
|
+
_context2.n = 2;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
return _context2.a(2, undefined);
|
|
84
|
+
case 2:
|
|
85
|
+
return _context2.a(2, transforms.reduce(function (acc, transform) {
|
|
86
|
+
if (transform) {
|
|
87
|
+
Object.entries(transform).forEach(function (_ref3) {
|
|
88
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
89
|
+
key = _ref4[0],
|
|
90
|
+
value = _ref4[1];
|
|
91
|
+
if (acc[key]) {
|
|
92
|
+
throw new Error("Duplicate key found in source transformations: ".concat(key));
|
|
93
|
+
}
|
|
94
|
+
acc[key] = value;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return acc;
|
|
98
|
+
}, {}));
|
|
99
|
+
}
|
|
100
|
+
}, _callee2);
|
|
101
|
+
}));
|
|
102
|
+
return _transformSource.apply(this, arguments);
|
|
103
|
+
}
|