@mui/internal-docs-infra 0.1.1-canary.9 → 0.2.0-alpha.2

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.
Files changed (217) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +3 -11
  3. package/esm/CodeControllerContext/CodeControllerContext.d.ts +62 -0
  4. package/esm/CodeControllerContext/CodeControllerContext.js +33 -0
  5. package/esm/CodeControllerContext/index.d.ts +1 -0
  6. package/esm/CodeControllerContext/index.js +1 -0
  7. package/esm/CodeExternalsContext/CodeExternalsContext.d.ts +8 -0
  8. package/esm/CodeExternalsContext/CodeExternalsContext.js +8 -0
  9. package/esm/CodeExternalsContext/index.d.ts +1 -0
  10. package/esm/CodeExternalsContext/index.js +1 -0
  11. package/esm/CodeHighlighter/CodeHighlighter.d.ts +2 -0
  12. package/esm/CodeHighlighter/CodeHighlighter.js +441 -0
  13. package/esm/CodeHighlighter/CodeHighlighterClient.d.ts +2 -0
  14. package/esm/CodeHighlighter/CodeHighlighterClient.js +984 -0
  15. package/esm/CodeHighlighter/CodeHighlighterContext.d.ts +16 -0
  16. package/esm/CodeHighlighter/CodeHighlighterContext.js +15 -0
  17. package/esm/CodeHighlighter/CodeHighlighterFallbackContext.d.ts +7 -0
  18. package/esm/CodeHighlighter/CodeHighlighterFallbackContext.js +14 -0
  19. package/esm/CodeHighlighter/addPathsToVariant.d.ts +14 -0
  20. package/esm/CodeHighlighter/addPathsToVariant.js +68 -0
  21. package/esm/CodeHighlighter/applyTransform.d.ts +19 -0
  22. package/esm/CodeHighlighter/applyTransform.js +75 -0
  23. package/esm/CodeHighlighter/calculateMainFilePath.d.ts +1 -0
  24. package/esm/CodeHighlighter/calculateMainFilePath.js +108 -0
  25. package/esm/CodeHighlighter/codeToFallbackProps.d.ts +2 -0
  26. package/esm/CodeHighlighter/codeToFallbackProps.js +73 -0
  27. package/esm/CodeHighlighter/errors.d.ts +141 -0
  28. package/esm/CodeHighlighter/errors.js +441 -0
  29. package/esm/CodeHighlighter/examineVariant.d.ts +25 -0
  30. package/esm/CodeHighlighter/examineVariant.js +73 -0
  31. package/esm/CodeHighlighter/hasAllVariants.d.ts +27 -0
  32. package/esm/CodeHighlighter/hasAllVariants.js +63 -0
  33. package/esm/CodeHighlighter/index.d.ts +1 -0
  34. package/esm/CodeHighlighter/index.js +1 -0
  35. package/esm/CodeHighlighter/loadFallbackCode.d.ts +10 -0
  36. package/esm/CodeHighlighter/loadFallbackCode.js +679 -0
  37. package/esm/CodeHighlighter/loadVariant.d.ts +12 -0
  38. package/esm/CodeHighlighter/loadVariant.js +1044 -0
  39. package/esm/CodeHighlighter/maybeInitialData.d.ts +108 -0
  40. package/esm/CodeHighlighter/maybeInitialData.js +192 -0
  41. package/esm/CodeHighlighter/mergeMetadata.d.ts +40 -0
  42. package/esm/CodeHighlighter/mergeMetadata.js +165 -0
  43. package/esm/CodeHighlighter/parseCode.d.ts +6 -0
  44. package/esm/CodeHighlighter/parseCode.js +134 -0
  45. package/esm/CodeHighlighter/parseControlledCode.d.ts +6 -0
  46. package/esm/CodeHighlighter/parseControlledCode.js +87 -0
  47. package/esm/CodeHighlighter/pathUtils.d.ts +120 -0
  48. package/esm/CodeHighlighter/pathUtils.js +258 -0
  49. package/esm/CodeHighlighter/transformCode.d.ts +21 -0
  50. package/esm/CodeHighlighter/transformCode.js +251 -0
  51. package/esm/CodeHighlighter/transformParsedSource.d.ts +3 -0
  52. package/esm/CodeHighlighter/transformParsedSource.js +60 -0
  53. package/esm/CodeHighlighter/transformSource.d.ts +2 -0
  54. package/esm/CodeHighlighter/transformSource.js +103 -0
  55. package/esm/CodeHighlighter/types.d.ts +276 -0
  56. package/esm/CodeHighlighter/types.js +1 -0
  57. package/esm/CodeProvider/CodeContext.d.ts +31 -0
  58. package/esm/CodeProvider/CodeContext.js +12 -0
  59. package/esm/CodeProvider/CodeProvider.d.ts +13 -0
  60. package/esm/CodeProvider/CodeProvider.js +83 -0
  61. package/esm/CodeProvider/index.d.ts +1 -0
  62. package/esm/CodeProvider/index.js +1 -0
  63. package/esm/abstractCreateDemo/abstractCreateDemo.d.ts +45 -0
  64. package/esm/abstractCreateDemo/abstractCreateDemo.js +100 -0
  65. package/esm/abstractCreateDemo/index.d.ts +1 -0
  66. package/esm/abstractCreateDemo/index.js +1 -0
  67. package/esm/abstractCreateDemoClient/abstractCreateDemoClient.d.ts +32 -0
  68. package/esm/abstractCreateDemoClient/abstractCreateDemoClient.js +52 -0
  69. package/esm/abstractCreateDemoClient/index.d.ts +1 -0
  70. package/esm/abstractCreateDemoClient/index.js +1 -0
  71. package/esm/createDemoData/createDemoData.d.ts +44 -0
  72. package/esm/createDemoData/createDemoData.js +74 -0
  73. package/esm/createDemoData/index.d.ts +1 -0
  74. package/esm/createDemoData/index.js +1 -0
  75. package/esm/createDemoData/types.d.ts +25 -0
  76. package/esm/createDemoData/types.js +1 -0
  77. package/esm/pipeline/hastUtils/hastUtils.d.ts +11 -0
  78. package/esm/pipeline/hastUtils/hastUtils.js +67 -0
  79. package/esm/pipeline/hastUtils/index.d.ts +1 -0
  80. package/esm/pipeline/hastUtils/index.js +1 -0
  81. package/esm/pipeline/loadPrecomputedCodeHighlighter/index.d.ts +2 -0
  82. package/esm/pipeline/loadPrecomputedCodeHighlighter/index.js +4 -0
  83. package/esm/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.d.ts +14 -0
  84. package/esm/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.js +178 -0
  85. package/esm/pipeline/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.d.ts +47 -0
  86. package/esm/pipeline/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.js +849 -0
  87. package/esm/pipeline/loadPrecomputedCodeHighlighter/parseFunctionArguments.d.ts +85 -0
  88. package/esm/pipeline/loadPrecomputedCodeHighlighter/parseFunctionArguments.js +715 -0
  89. package/esm/pipeline/loadPrecomputedCodeHighlighter/replacePrecomputeValue.d.ts +14 -0
  90. package/esm/pipeline/loadPrecomputedCodeHighlighter/replacePrecomputeValue.js +73 -0
  91. package/esm/pipeline/loadPrecomputedCodeHighlighter/serializeFunctionArguments.d.ts +11 -0
  92. package/esm/pipeline/loadPrecomputedCodeHighlighter/serializeFunctionArguments.js +203 -0
  93. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/filterRuntimeExternals.d.ts +6 -0
  94. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/filterRuntimeExternals.js +23 -0
  95. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/generateImportStatements.d.ts +6 -0
  96. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/generateImportStatements.js +148 -0
  97. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/generateResolvedExternals.d.ts +9 -0
  98. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/generateResolvedExternals.js +198 -0
  99. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/index.d.ts +2 -0
  100. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/index.js +4 -0
  101. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/injectImportsIntoSource.d.ts +5 -0
  102. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/injectImportsIntoSource.js +21 -0
  103. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/loadPrecomputedCodeHighlighterClient.d.ts +15 -0
  104. package/esm/pipeline/loadPrecomputedCodeHighlighterClient/loadPrecomputedCodeHighlighterClient.js +233 -0
  105. package/esm/pipeline/loadServerCodeMeta/index.d.ts +1 -0
  106. package/esm/pipeline/loadServerCodeMeta/index.js +1 -0
  107. package/esm/pipeline/loadServerCodeMeta/loadServerCodeMeta.d.ts +24 -0
  108. package/esm/pipeline/loadServerCodeMeta/loadServerCodeMeta.js +90 -0
  109. package/esm/pipeline/loadServerSource/index.d.ts +1 -0
  110. package/esm/pipeline/loadServerSource/index.js +1 -0
  111. package/esm/pipeline/loadServerSource/loadServerSource.d.ts +25 -0
  112. package/esm/pipeline/loadServerSource/loadServerSource.js +134 -0
  113. package/esm/pipeline/loaderUtils/externalsToPackages.d.ts +1 -0
  114. package/esm/pipeline/loaderUtils/externalsToPackages.js +46 -0
  115. package/esm/pipeline/loaderUtils/extractNameAndSlugFromUrl.d.ts +34 -0
  116. package/esm/pipeline/loaderUtils/extractNameAndSlugFromUrl.js +161 -0
  117. package/esm/pipeline/loaderUtils/getFileNameFromUrl.d.ts +12 -0
  118. package/esm/pipeline/loaderUtils/getFileNameFromUrl.js +66 -0
  119. package/esm/pipeline/loaderUtils/index.d.ts +7 -0
  120. package/esm/pipeline/loaderUtils/index.js +7 -0
  121. package/esm/pipeline/loaderUtils/mergeExternals.d.ts +32 -0
  122. package/esm/pipeline/loaderUtils/mergeExternals.js +72 -0
  123. package/esm/pipeline/loaderUtils/parseImports.d.ts +19 -0
  124. package/esm/pipeline/loaderUtils/parseImports.js +306 -0
  125. package/esm/pipeline/loaderUtils/processRelativeImports.d.ts +19 -0
  126. package/esm/pipeline/loaderUtils/processRelativeImports.js +352 -0
  127. package/esm/pipeline/loaderUtils/resolveModulePath.d.ts +87 -0
  128. package/esm/pipeline/loaderUtils/resolveModulePath.js +1435 -0
  129. package/esm/pipeline/loaderUtils/resolveModulePathWithFs.d.ts +47 -0
  130. package/esm/pipeline/loaderUtils/resolveModulePathWithFs.js +150 -0
  131. package/esm/pipeline/loaderUtils/rewriteImports.d.ts +9 -0
  132. package/esm/pipeline/loaderUtils/rewriteImports.js +35 -0
  133. package/esm/pipeline/parseSource/addLineGutters.d.ts +9 -0
  134. package/esm/pipeline/parseSource/addLineGutters.js +181 -0
  135. package/esm/pipeline/parseSource/grammars.d.ts +2 -0
  136. package/esm/pipeline/parseSource/grammars.js +27 -0
  137. package/esm/pipeline/parseSource/index.d.ts +1 -0
  138. package/esm/pipeline/parseSource/index.js +1 -0
  139. package/esm/pipeline/parseSource/parseSource.d.ts +3 -0
  140. package/esm/pipeline/parseSource/parseSource.js +51 -0
  141. package/esm/pipeline/transformHtmlCode/index.d.ts +2 -0
  142. package/esm/pipeline/transformHtmlCode/index.js +4 -0
  143. package/esm/pipeline/transformHtmlCode/transformHtmlCode.d.ts +13 -0
  144. package/esm/pipeline/transformHtmlCode/transformHtmlCode.js +300 -0
  145. package/esm/pipeline/transformMarkdownCode/index.d.ts +2 -0
  146. package/esm/pipeline/transformMarkdownCode/index.js +4 -0
  147. package/esm/pipeline/transformMarkdownCode/transformMarkdownCode.d.ts +2 -0
  148. package/esm/pipeline/transformMarkdownCode/transformMarkdownCode.js +514 -0
  149. package/esm/pipeline/transformTypescriptToJavascript/index.d.ts +1 -0
  150. package/esm/pipeline/transformTypescriptToJavascript/index.js +1 -0
  151. package/esm/pipeline/transformTypescriptToJavascript/removeTypes.d.ts +13 -0
  152. package/esm/pipeline/transformTypescriptToJavascript/removeTypes.js +131 -0
  153. package/esm/pipeline/transformTypescriptToJavascript/transformTypescriptToJavascript.d.ts +3 -0
  154. package/esm/pipeline/transformTypescriptToJavascript/transformTypescriptToJavascript.js +31 -0
  155. package/esm/useCode/Pre.d.ts +15 -0
  156. package/esm/useCode/Pre.js +164 -0
  157. package/esm/useCode/index.d.ts +1 -0
  158. package/esm/useCode/index.js +1 -0
  159. package/esm/useCode/useCode.d.ts +41 -0
  160. package/esm/useCode/useCode.js +128 -0
  161. package/esm/useCode/useCodeUtils.d.ts +44 -0
  162. package/esm/useCode/useCodeUtils.js +245 -0
  163. package/esm/useCode/useCopyFunctionality.d.ts +18 -0
  164. package/esm/useCode/useCopyFunctionality.js +28 -0
  165. package/esm/useCode/useFileNavigation.d.ts +41 -0
  166. package/esm/useCode/useFileNavigation.js +453 -0
  167. package/esm/useCode/useSourceEditing.d.ts +21 -0
  168. package/esm/useCode/useSourceEditing.js +32 -0
  169. package/esm/useCode/useTransformManagement.d.ts +30 -0
  170. package/esm/useCode/useTransformManagement.js +72 -0
  171. package/esm/useCode/useUIState.d.ts +16 -0
  172. package/esm/useCode/useUIState.js +21 -0
  173. package/esm/useCode/useVariantSelection.d.ts +23 -0
  174. package/esm/useCode/useVariantSelection.js +75 -0
  175. package/esm/useCopier/index.d.ts +1 -1
  176. package/esm/useCopier/index.js +5 -5
  177. package/esm/useDemo/createCodeSandbox.d.ts +15 -0
  178. package/esm/useDemo/createCodeSandbox.js +42 -0
  179. package/esm/useDemo/createStackBlitz.d.ts +22 -0
  180. package/esm/useDemo/createStackBlitz.js +38 -0
  181. package/esm/useDemo/exportVariant.d.ts +184 -0
  182. package/esm/useDemo/exportVariant.js +422 -0
  183. package/esm/useDemo/exportVariantAsCra.d.ts +15 -0
  184. package/esm/useDemo/exportVariantAsCra.js +57 -0
  185. package/esm/useDemo/flattenVariant.d.ts +19 -0
  186. package/esm/useDemo/flattenVariant.js +49 -0
  187. package/esm/useDemo/index.d.ts +6 -51
  188. package/esm/useDemo/index.js +6 -104
  189. package/esm/useDemo/useDemo.d.ts +81 -0
  190. package/esm/useDemo/useDemo.js +193 -0
  191. package/esm/useErrors/ErrorsContext.d.ts +6 -0
  192. package/esm/useErrors/ErrorsContext.js +8 -0
  193. package/esm/useErrors/index.d.ts +1 -0
  194. package/esm/useErrors/index.js +1 -0
  195. package/esm/useErrors/useErrors.d.ts +5 -0
  196. package/esm/useErrors/useErrors.js +7 -0
  197. package/esm/useLocalStorageState/index.d.ts +2 -0
  198. package/esm/useLocalStorageState/index.js +2 -0
  199. package/esm/useLocalStorageState/useLocalStorageState.d.ts +14 -0
  200. package/esm/useLocalStorageState/useLocalStorageState.js +128 -0
  201. package/esm/usePreference/PreferencesProvider.d.ts +6 -0
  202. package/esm/usePreference/PreferencesProvider.js +8 -0
  203. package/esm/usePreference/index.d.ts +2 -0
  204. package/esm/usePreference/index.js +2 -0
  205. package/esm/usePreference/usePreference.d.ts +2 -0
  206. package/esm/usePreference/usePreference.js +25 -0
  207. package/esm/useUrlHashState/index.d.ts +1 -0
  208. package/esm/useUrlHashState/index.js +1 -0
  209. package/esm/useUrlHashState/useUrlHashState.d.ts +5 -0
  210. package/esm/useUrlHashState/useUrlHashState.js +68 -0
  211. package/esm/withDocsInfra/index.d.ts +1 -0
  212. package/esm/withDocsInfra/index.js +1 -0
  213. package/esm/withDocsInfra/withDocsInfra.d.ts +82 -0
  214. package/esm/withDocsInfra/withDocsInfra.js +147 -0
  215. package/package.json +178 -11
  216. package/esm/useCopier/index.d.ts.map +0 -1
  217. 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,3 @@
1
+ import type { Nodes } from 'hast';
2
+ import { ParseSource, Transforms } from "./types.js";
3
+ export declare function transformParsedSource(source: string, parsedSource: Nodes, filename: string, transforms: Transforms, parseSource: ParseSource): Promise<Record<string, any>>;
@@ -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,2 @@
1
+ import type { VariantSource, SourceTransformers, Transforms } from "./types.js";
2
+ export declare function transformSource(source: VariantSource, fileName: string, sourceTransformers: SourceTransformers): Promise<Transforms | undefined>;
@@ -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
+ }