@mui/internal-docs-infra 0.1.1-alpha.13 → 0.1.1-alpha.14
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/CodeHighlighter/CodeHighlighterClient.d.ts.map +1 -1
- package/CodeHighlighter/CodeHighlighterClient.js +45 -16
- package/CodeHighlighter/addPathsToVariant.d.ts +18 -0
- package/CodeHighlighter/addPathsToVariant.d.ts.map +1 -0
- package/CodeHighlighter/addPathsToVariant.js +352 -0
- package/{useDemo → CodeHighlighter}/examineVariant.d.ts +1 -1
- package/CodeHighlighter/examineVariant.d.ts.map +1 -0
- package/CodeHighlighter/examineVariant.js +103 -0
- package/CodeHighlighter/mergeMetadata.d.ts +40 -0
- package/CodeHighlighter/mergeMetadata.d.ts.map +1 -0
- package/CodeHighlighter/mergeMetadata.js +189 -0
- package/CodeHighlighter/types.d.ts +3 -0
- package/CodeHighlighter/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/useDemo/exportVariant.d.ts +49 -11
- package/useDemo/exportVariant.d.ts.map +1 -1
- package/useDemo/exportVariant.js +170 -94
- package/useDemo/flattenVariant.d.ts +2 -0
- package/useDemo/flattenVariant.d.ts.map +1 -1
- package/useDemo/flattenVariant.js +19 -178
- package/useDemo/useDemo.d.ts +7 -0
- package/useDemo/useDemo.d.ts.map +1 -1
- package/useDemo/useDemo.js +37 -18
- package/useDemo/examineVariant.d.ts.map +0 -1
- package/useDemo/examineVariant.js +0 -134
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
4
|
+
var _excluded = ["metadata"];
|
|
5
|
+
/**
|
|
6
|
+
* Metadata merging utility for positioning metadata files relative to source files
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { createPathContext } from "./examineVariant.js";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Options for merging metadata files
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Calculate the required back navigation level for metadata files
|
|
17
|
+
*/
|
|
18
|
+
function calculateMetadataBackNavigation(variant, metadataPrefix) {
|
|
19
|
+
// Get the maxBackNavigation from the variant's file structure
|
|
20
|
+
var pathContext = createPathContext(variant);
|
|
21
|
+
var backLevels = pathContext.maxBackNavigation;
|
|
22
|
+
if (metadataPrefix) {
|
|
23
|
+
// When a prefix is provided, add additional back navigation based on prefix depth
|
|
24
|
+
var prefixSegments = metadataPrefix.split('/').filter(Boolean);
|
|
25
|
+
backLevels += prefixSegments.length;
|
|
26
|
+
}
|
|
27
|
+
return '../'.repeat(backLevels);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Merge metadata files into a variant with proper positioning
|
|
32
|
+
*
|
|
33
|
+
* @param variant - The variant containing source files and potentially mixed metadata/non-metadata files
|
|
34
|
+
* @param metadataFiles - Additional metadata files to merge in
|
|
35
|
+
* @param options - Options for metadata positioning
|
|
36
|
+
* @returns A variant with all metadata files properly positioned
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* Extract metadata files from a variant, scoping them according to metadataPrefix
|
|
40
|
+
*
|
|
41
|
+
* @param variant - The variant containing mixed source and metadata files
|
|
42
|
+
* @returns An object with the cleaned variant and extracted metadata
|
|
43
|
+
*/
|
|
44
|
+
export function extractMetadata(variant) {
|
|
45
|
+
var metadataPrefix = variant.metadataPrefix;
|
|
46
|
+
var extractedMetadata = {};
|
|
47
|
+
var nonMetadataFiles = {};
|
|
48
|
+
if (!variant.extraFiles) {
|
|
49
|
+
return {
|
|
50
|
+
variant: _objectSpread(_objectSpread({}, variant), {}, {
|
|
51
|
+
extraFiles: {}
|
|
52
|
+
}),
|
|
53
|
+
metadata: {}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Process all extraFiles
|
|
58
|
+
for (var _i = 0, _Object$entries = Object.entries(variant.extraFiles); _i < _Object$entries.length; _i++) {
|
|
59
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
60
|
+
relativePath = _Object$entries$_i[0],
|
|
61
|
+
fileContent = _Object$entries$_i[1];
|
|
62
|
+
var file = typeof fileContent === 'string' ? {
|
|
63
|
+
source: fileContent
|
|
64
|
+
} : fileContent;
|
|
65
|
+
if (file.metadata) {
|
|
66
|
+
var scopedPath = relativePath;
|
|
67
|
+
|
|
68
|
+
// Calculate how much back navigation to remove
|
|
69
|
+
var pathContext = createPathContext(variant);
|
|
70
|
+
var backLevelsToRemove = pathContext.maxBackNavigation;
|
|
71
|
+
if (metadataPrefix) {
|
|
72
|
+
// Add metadataPrefix levels if present
|
|
73
|
+
backLevelsToRemove += metadataPrefix.split('/').filter(Boolean).length;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Remove the back navigation prefix to scope metadata correctly
|
|
77
|
+
if (backLevelsToRemove > 0) {
|
|
78
|
+
var backNavigationToRemove = '../'.repeat(backLevelsToRemove);
|
|
79
|
+
if (scopedPath.startsWith(backNavigationToRemove)) {
|
|
80
|
+
scopedPath = scopedPath.slice(backNavigationToRemove.length);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Remove metadata flag when extracting
|
|
85
|
+
var metadataFlag = file.metadata,
|
|
86
|
+
cleanFile = _objectWithoutProperties(file, _excluded);
|
|
87
|
+
extractedMetadata[scopedPath] = cleanFile;
|
|
88
|
+
} else {
|
|
89
|
+
nonMetadataFiles[relativePath] = file;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
variant: _objectSpread(_objectSpread({}, variant), {}, {
|
|
94
|
+
extraFiles: nonMetadataFiles
|
|
95
|
+
}),
|
|
96
|
+
metadata: extractedMetadata
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
export function mergeMetadata(variant) {
|
|
100
|
+
var _options$metadataPref;
|
|
101
|
+
var metadataFiles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
102
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
103
|
+
// Determine which metadataPrefix to use
|
|
104
|
+
var targetMetadataPrefix = (_options$metadataPref = options.metadataPrefix) != null ? _options$metadataPref : variant.metadataPrefix;
|
|
105
|
+
|
|
106
|
+
// Check if we need to re-extract metadata due to metadataPrefix change
|
|
107
|
+
var needsReextraction = options.metadataPrefix !== undefined && options.metadataPrefix !== variant.metadataPrefix;
|
|
108
|
+
|
|
109
|
+
// If metadataPrefix is changing, extract existing metadata and reposition everything
|
|
110
|
+
var workingVariant = variant;
|
|
111
|
+
var existingMetadata = {};
|
|
112
|
+
if (needsReextraction && variant.extraFiles) {
|
|
113
|
+
// Extract existing metadata using the old metadataPrefix
|
|
114
|
+
var extracted = extractMetadata(variant);
|
|
115
|
+
workingVariant = extracted.variant;
|
|
116
|
+
existingMetadata = extracted.metadata;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Calculate the positioning level for metadata files
|
|
120
|
+
var metadataBackNavigation = calculateMetadataBackNavigation(workingVariant, targetMetadataPrefix);
|
|
121
|
+
|
|
122
|
+
// Collect all metadata files that need positioning
|
|
123
|
+
var allMetadataFiles = {};
|
|
124
|
+
var nonMetadataFiles = {};
|
|
125
|
+
var positionedMetadataFiles = {};
|
|
126
|
+
|
|
127
|
+
// Process existing extraFiles from working variant
|
|
128
|
+
if (workingVariant.extraFiles) {
|
|
129
|
+
for (var _i2 = 0, _Object$entries2 = Object.entries(workingVariant.extraFiles); _i2 < _Object$entries2.length; _i2++) {
|
|
130
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
|
|
131
|
+
relativePath = _Object$entries2$_i[0],
|
|
132
|
+
fileContent = _Object$entries2$_i[1];
|
|
133
|
+
var file = typeof fileContent === 'string' ? {
|
|
134
|
+
source: fileContent
|
|
135
|
+
} : fileContent;
|
|
136
|
+
if (file.metadata) {
|
|
137
|
+
// If we're not changing metadataPrefix, keep existing metadata files where they are
|
|
138
|
+
if (!needsReextraction) {
|
|
139
|
+
positionedMetadataFiles[relativePath] = file;
|
|
140
|
+
} else {
|
|
141
|
+
// Only collect for repositioning if metadataPrefix is changing
|
|
142
|
+
allMetadataFiles[relativePath] = file;
|
|
143
|
+
}
|
|
144
|
+
} else {
|
|
145
|
+
nonMetadataFiles[relativePath] = file;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Add extracted metadata (if any) for repositioning
|
|
151
|
+
for (var _i3 = 0, _Object$entries3 = Object.entries(existingMetadata); _i3 < _Object$entries3.length; _i3++) {
|
|
152
|
+
var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i3], 2),
|
|
153
|
+
filePath = _Object$entries3$_i[0],
|
|
154
|
+
_file = _Object$entries3$_i[1];
|
|
155
|
+
allMetadataFiles[filePath] = _objectSpread(_objectSpread({}, typeof _file === 'string' ? {
|
|
156
|
+
source: _file
|
|
157
|
+
} : _file), {}, {
|
|
158
|
+
metadata: true
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Add additional metadata files for positioning
|
|
163
|
+
for (var _i4 = 0, _Object$entries4 = Object.entries(metadataFiles); _i4 < _Object$entries4.length; _i4++) {
|
|
164
|
+
var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i4], 2),
|
|
165
|
+
_filePath = _Object$entries4$_i[0],
|
|
166
|
+
_file2 = _Object$entries4$_i[1];
|
|
167
|
+
allMetadataFiles[_filePath] = _objectSpread(_objectSpread({}, typeof _file2 === 'string' ? {
|
|
168
|
+
source: _file2
|
|
169
|
+
} : _file2), {}, {
|
|
170
|
+
metadata: true
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Position new metadata files at the calculated level
|
|
175
|
+
for (var _i5 = 0, _Object$entries5 = Object.entries(allMetadataFiles); _i5 < _Object$entries5.length; _i5++) {
|
|
176
|
+
var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i5], 2),
|
|
177
|
+
originalPath = _Object$entries5$_i[0],
|
|
178
|
+
_file3 = _Object$entries5$_i[1];
|
|
179
|
+
var metadataPath = "".concat(metadataBackNavigation).concat(originalPath);
|
|
180
|
+
positionedMetadataFiles[metadataPath] = _file3;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Combine all files
|
|
184
|
+
var finalExtraFiles = _objectSpread(_objectSpread({}, nonMetadataFiles), positionedMetadataFiles);
|
|
185
|
+
return _objectSpread(_objectSpread({}, workingVariant), {}, {
|
|
186
|
+
extraFiles: finalExtraFiles,
|
|
187
|
+
metadataPrefix: targetMetadataPrefix
|
|
188
|
+
});
|
|
189
|
+
}
|
|
@@ -5,6 +5,7 @@ export type Components = {
|
|
|
5
5
|
};
|
|
6
6
|
type CodeMeta = {
|
|
7
7
|
fileName?: string;
|
|
8
|
+
path?: string;
|
|
8
9
|
};
|
|
9
10
|
export type Transforms = Record<string, {
|
|
10
11
|
delta: Delta;
|
|
@@ -30,12 +31,14 @@ export type VariantExtraFiles = {
|
|
|
30
31
|
transforms?: Transforms;
|
|
31
32
|
skipTransforms?: boolean;
|
|
32
33
|
metadata?: boolean;
|
|
34
|
+
path?: string;
|
|
33
35
|
};
|
|
34
36
|
};
|
|
35
37
|
export type VariantCode = CodeMeta & {
|
|
36
38
|
url?: string;
|
|
37
39
|
source?: VariantSource;
|
|
38
40
|
extraFiles?: VariantExtraFiles;
|
|
41
|
+
metadataPrefix?: string;
|
|
39
42
|
externals?: string[];
|
|
40
43
|
namedExport?: string;
|
|
41
44
|
filesOrder?: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/CodeHighlighter/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;CAAE,CAAC;AAE5D,KAAK,QAAQ,GAAG;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/CodeHighlighter/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Export variant functionality to add extra files like package.json, tsconfig, etc.
|
|
3
3
|
* Users can pass configuration options that vary the output here.
|
|
4
4
|
*/
|
|
5
|
-
import type { VariantCode } from "../CodeHighlighter/types.js";
|
|
5
|
+
import type { VariantCode, VariantExtraFiles } from "../CodeHighlighter/types.js";
|
|
6
6
|
/**
|
|
7
7
|
* Extract filename from URL or return undefined if not available
|
|
8
8
|
*/
|
|
@@ -10,7 +10,7 @@ export declare function getFilenameFromVariant(variantCode: VariantCode): string
|
|
|
10
10
|
/**
|
|
11
11
|
* Generate a unique entrypoint filename that doesn't conflict with existing files
|
|
12
12
|
*/
|
|
13
|
-
export declare function generateEntrypointFilename(existingFiles:
|
|
13
|
+
export declare function generateEntrypointFilename(existingFiles: VariantExtraFiles, sourceFilename: string | undefined, useTypescript: boolean, pathPrefix?: string): string;
|
|
14
14
|
/**
|
|
15
15
|
* Generate the relative import path from entrypoint to source file
|
|
16
16
|
*/
|
|
@@ -36,12 +36,26 @@ export interface ExportConfig {
|
|
|
36
36
|
title?: string;
|
|
37
37
|
/** Description for package.json */
|
|
38
38
|
description?: string;
|
|
39
|
+
/** The variant name/identifier for this specific code variant */
|
|
40
|
+
variantName?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Language for the HTML document (default is 'en')
|
|
43
|
+
*/
|
|
44
|
+
language?: string;
|
|
39
45
|
/**
|
|
40
46
|
* Prefix for output file paths (e.g., 'public/' for CRA, '' for Vite)
|
|
41
47
|
* @example
|
|
42
48
|
* htmlPrefix: 'public/' // outputs index.html to correct depth + public/index.html
|
|
43
49
|
*/
|
|
44
50
|
htmlPrefix?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Prefix for asset files (e.g., 'assets/' for CRA)
|
|
53
|
+
*/
|
|
54
|
+
assetPrefix?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Prefix for code files (e.g., 'src/' for Vite)
|
|
57
|
+
*/
|
|
58
|
+
sourcePrefix?: string;
|
|
45
59
|
/**
|
|
46
60
|
* Whether the framework handles entrypoint and HTML generation (e.g., CRA with webpack)
|
|
47
61
|
* When true, skips generating index.html and entrypoint files
|
|
@@ -50,7 +64,7 @@ export interface ExportConfig {
|
|
|
50
64
|
/**
|
|
51
65
|
* Custom HTML template function
|
|
52
66
|
* @example
|
|
53
|
-
* htmlTemplate: ({ language, title, description, head, entrypoint }) =>
|
|
67
|
+
* htmlTemplate: ({ language, title, description, head, entrypoint, variant, variantName }) =>
|
|
54
68
|
* `<!doctype html><html><head><title>${title}</title>${head || ''}</head><body><div id="root"></div><script src="${entrypoint}"></script></body></html>`
|
|
55
69
|
*/
|
|
56
70
|
htmlTemplate?: (params: {
|
|
@@ -59,16 +73,20 @@ export interface ExportConfig {
|
|
|
59
73
|
description: string;
|
|
60
74
|
head?: string;
|
|
61
75
|
entrypoint: string;
|
|
76
|
+
variant?: VariantCode;
|
|
77
|
+
variantName?: string;
|
|
62
78
|
}) => string;
|
|
63
79
|
/**
|
|
64
80
|
* Custom head template function for generating additional head content
|
|
65
81
|
* @example
|
|
66
|
-
* headTemplate: ({ sourcePrefix, assetPrefix }) =>
|
|
82
|
+
* headTemplate: ({ sourcePrefix, assetPrefix, variant, variantName }) =>
|
|
67
83
|
* `<link rel="stylesheet" href="${assetPrefix}/styles.css" />\n<meta name="theme-color" content="#000000" />`
|
|
68
84
|
*/
|
|
69
85
|
headTemplate?: (params: {
|
|
70
86
|
sourcePrefix: string;
|
|
71
87
|
assetPrefix: string;
|
|
88
|
+
variant?: VariantCode;
|
|
89
|
+
variantName?: string;
|
|
72
90
|
}) => string;
|
|
73
91
|
/** Custom React root index template function */
|
|
74
92
|
rootIndexTemplate?: (params: {
|
|
@@ -92,17 +110,37 @@ export interface ExportConfig {
|
|
|
92
110
|
/** Custom metadata files to add */
|
|
93
111
|
extraMetadataFiles?: Record<string, {
|
|
94
112
|
source: string;
|
|
95
|
-
metadata?: boolean;
|
|
96
113
|
}>;
|
|
97
114
|
/** Framework-specific files that override default files (index.html, entrypoint, etc.) */
|
|
98
|
-
frameworkFiles?:
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
115
|
+
frameworkFiles?: {
|
|
116
|
+
variant?: VariantCode;
|
|
117
|
+
globals?: VariantExtraFiles;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Custom export function to use instead of the default exportVariant or exportVariantAsCra
|
|
121
|
+
* @example
|
|
122
|
+
* exportFunction: (variantCode, config) => ({ exported: customProcessedCode, rootFile: 'custom-entry.js' })
|
|
123
|
+
*/
|
|
124
|
+
exportFunction?: (variantCode: VariantCode, config: ExportConfig) => {
|
|
125
|
+
exported: VariantCode;
|
|
126
|
+
rootFile: string;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Transform function that runs at the very start of the export process
|
|
130
|
+
* Can modify the variant code and metadata before any other processing happens
|
|
131
|
+
* @example
|
|
132
|
+
* transformVariant: (variant, globals, variantName) => ({
|
|
133
|
+
* variant: { ...variant, source: modifiedSource },
|
|
134
|
+
* globals: { ...globals, extraFiles: { ...globals.extraFiles, 'theme.css': { source: '.new {}', metadata: true } } }
|
|
135
|
+
* })
|
|
136
|
+
*/
|
|
137
|
+
transformVariant?: (variant: VariantCode, variantName?: string, globals?: VariantExtraFiles) => {
|
|
138
|
+
variant?: VariantCode;
|
|
139
|
+
globals?: VariantExtraFiles;
|
|
140
|
+
} | undefined;
|
|
102
141
|
}
|
|
103
142
|
/**
|
|
104
|
-
* Export a
|
|
105
|
-
* Returns an object with the exported VariantCode and rootPath path
|
|
143
|
+
* Export a variant as a standalone project with metadata files properly scoped
|
|
106
144
|
*/
|
|
107
145
|
export declare function exportVariant(variantCode: VariantCode, config?: ExportConfig): {
|
|
108
146
|
exported: VariantCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exportVariant.d.ts","sourceRoot":"","sources":["../../src/useDemo/exportVariant.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"exportVariant.d.ts","sourceRoot":"","sources":["../../src/useDemo/exportVariant.ts"],"names":[],"mappings":"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"}
|