@proteinjs/reflection-build 1.1.0 → 1.2.0
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 +22 -0
- package/dist/src/codegen/writeGeneratedIndex.js +71 -3
- package/dist/src/codegen/writeGeneratedIndex.js.map +1 -1
- package/package.json +2 -2
- package/src/codegen/writeGeneratedIndex.ts +73 -3
- package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.js +71 -3
- package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.js.map +1 -1
- package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.js +71 -3
- package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.2.0](https://github.com/proteinjs/reflection/compare/@proteinjs/reflection-build@1.1.1...@proteinjs/reflection-build@1.2.0) (2025-06-03)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* Support `SKIP_REFLECTION_LOAD` env var to skip loading source graphs for a comma-separated list of package names. ([16fdd28](https://github.com/proteinjs/reflection/commit/16fdd288c1ff3bd979595dafcab9d7c2d803d1b1))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [1.1.1](https://github.com/proteinjs/reflection/compare/@proteinjs/reflection-build@1.1.0...@proteinjs/reflection-build@1.1.1) (2025-05-22)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* `writeGeneratedIndex` should respect `exports` in dependency package.jsons when generating an import statement. ([8046dc4](https://github.com/proteinjs/reflection/commit/8046dc47eec4394decb7b78cfe2d78f1c0f9fd42))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
# [1.1.0](https://github.com/proteinjs/reflection/compare/@proteinjs/reflection-build@1.0.25...@proteinjs/reflection-build@1.1.0) (2025-04-21)
|
|
7
29
|
|
|
8
30
|
|
|
@@ -110,7 +110,7 @@ function sourceRepositoryLoader(packageDir, generatedIndexPath) {
|
|
|
110
110
|
case 0: return [4 /*yield*/, getPackageJson(packageDir)];
|
|
111
111
|
case 1:
|
|
112
112
|
packageJson = _a.sent();
|
|
113
|
-
code = loadDependencySourceGraphs(packageJson);
|
|
113
|
+
code = loadDependencySourceGraphs(packageDir, packageJson);
|
|
114
114
|
return [4 /*yield*/, (0, createSourceGraph_1.createSourceGraph)(packageDir)];
|
|
115
115
|
case 2:
|
|
116
116
|
sourceGraph = _a.sent();
|
|
@@ -139,18 +139,86 @@ function getPackageJson(packageDir) {
|
|
|
139
139
|
});
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
|
-
function loadDependencySourceGraphs(packageJson) {
|
|
142
|
+
function loadDependencySourceGraphs(packageDir, packageJson) {
|
|
143
143
|
var code = '/** Load Dependency Source Graphs */\n\n';
|
|
144
|
+
var skipEnv = process.env.SKIP_REFLECTION_LOAD || '';
|
|
145
|
+
var skipList = skipEnv
|
|
146
|
+
.split(',')
|
|
147
|
+
.map(function (s) { return s.trim(); })
|
|
148
|
+
.filter(Boolean);
|
|
144
149
|
if (packageJson.dependencies) {
|
|
145
150
|
for (var packageName in packageJson.dependencies) {
|
|
151
|
+
// Skip any packages listed in SKIP_REFLECTION_LOAD
|
|
152
|
+
if (skipList.includes(packageName)) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
146
155
|
if (packageName.startsWith('@material-ui')) {
|
|
147
156
|
continue;
|
|
148
157
|
}
|
|
149
|
-
|
|
158
|
+
var specifier = getDependencyImportSpecifier(packageDir, packageName);
|
|
159
|
+
if (!specifier) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
code += "import '".concat(specifier, "';\n"); // Load dependencies of package (ie. run code in dependency index)
|
|
150
163
|
}
|
|
151
164
|
}
|
|
152
165
|
return code;
|
|
153
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Determine an import specifier for a dependency that respects its package.json exports or main/module fields.
|
|
169
|
+
*/
|
|
170
|
+
function getDependencyImportSpecifier(packageDir, packageName) {
|
|
171
|
+
try {
|
|
172
|
+
require.resolve(packageName, { paths: [packageDir] });
|
|
173
|
+
return packageName;
|
|
174
|
+
}
|
|
175
|
+
catch (_a) {
|
|
176
|
+
// Load the dependency's package.json to inspect exports or entryfields
|
|
177
|
+
var depPkgJson = void 0;
|
|
178
|
+
try {
|
|
179
|
+
var pkgJsonPath = require.resolve(path.join(packageName, 'package.json'), { paths: [packageDir] });
|
|
180
|
+
depPkgJson = require(pkgJsonPath);
|
|
181
|
+
}
|
|
182
|
+
catch (_b) {
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
var exportsField = depPkgJson.exports;
|
|
186
|
+
if (exportsField) {
|
|
187
|
+
var entryPoint_1;
|
|
188
|
+
if (typeof exportsField === 'string') {
|
|
189
|
+
entryPoint_1 = exportsField;
|
|
190
|
+
}
|
|
191
|
+
else if (typeof exportsField === 'object') {
|
|
192
|
+
var mainExport = exportsField['.'];
|
|
193
|
+
if (typeof mainExport === 'string') {
|
|
194
|
+
entryPoint_1 = mainExport;
|
|
195
|
+
}
|
|
196
|
+
else if (mainExport && typeof mainExport === 'object') {
|
|
197
|
+
entryPoint_1 = mainExport.import || mainExport.require;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (!entryPoint_1) {
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
if (entryPoint_1.startsWith('./')) {
|
|
204
|
+
entryPoint_1 = entryPoint_1.slice(2);
|
|
205
|
+
}
|
|
206
|
+
entryPoint_1 = entryPoint_1.replace(/\.[^/.]+$/, '');
|
|
207
|
+
return "".concat(packageName, "/").concat(entryPoint_1);
|
|
208
|
+
}
|
|
209
|
+
// No exports field: fall back to module or main
|
|
210
|
+
var fallback = depPkgJson.module || depPkgJson.main;
|
|
211
|
+
if (!fallback) {
|
|
212
|
+
return undefined;
|
|
213
|
+
}
|
|
214
|
+
var entryPoint = fallback;
|
|
215
|
+
if (entryPoint.startsWith('./')) {
|
|
216
|
+
entryPoint = entryPoint.slice(2);
|
|
217
|
+
}
|
|
218
|
+
entryPoint = entryPoint.replace(/\.[^/.]+$/, '');
|
|
219
|
+
return "".concat(packageName, "/").concat(entryPoint);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
154
222
|
function generateSourceGraph(sourceGraph, buildTargetPackageName) {
|
|
155
223
|
removeNonLoadables(sourceGraph, buildTargetPackageName);
|
|
156
224
|
var code = "\n\n/** Generate Source Graph */\n\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,kDAAqD;AACrD,wCAAgE;AAEhE,gDAA0B;AAC1B,iEAAgE;AAChE,oDAAqH;AAErH,SAAsB,mBAAmB,CAAC,UAAkB,EAAE,mBAA2B,EAAE,kBAA0B;;;;;;oBAC/G,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;oBACnD,qBAAM,yBAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAA;;yBAA9C,CAAC,CAAC,SAA4C,CAAC,EAA/C,wBAA+C;oBACjD,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;oBACnD,qBAAM,yBAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAA;;oBAAlD,IAAI,CAAC,CAAC,SAA4C,CAAC,EAAE;wBACnD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;qBACzE;;wBAGH,qBAAM,yBAAa,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAA;;oBAAnE,SAAmE,CAAC;oBAC/C,qBAAM,sBAAsB,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAA;;oBAA7E,cAAc,GAAG,SAA4D;oBACjF,cAAc,IAAI,+BAAwB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CAAC,aAAU,CAAC;oBACnG,qBAAM,yBAAa,CAAC,SAAS,CAAC,kBAAkB,EAAE,cAAc,CAAC,EAAA;;oBAAjE,SAAiE,CAAC;;;;;CACnE;AAbD,kDAaC;AAED,SAAe,sBAAsB,CAAC,UAAkB,EAAE,kBAA0B;;;;;wBAC9D,qBAAM,cAAc,CAAC,UAAU,CAAC,EAAA;;oBAA9C,WAAW,GAAG,SAAgC;oBAChD,IAAI,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/reflection-build",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Build system for reflection",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"ts-jest": "29.1.1",
|
|
54
54
|
"typescript": "5.2.2"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "9c5e74039fd7624563bc7edb109d1ee1a7150b9e"
|
|
57
57
|
}
|
|
@@ -23,7 +23,7 @@ export async function writeGeneratedIndex(packageDir: string, packageGeneratedDi
|
|
|
23
23
|
|
|
24
24
|
async function sourceRepositoryLoader(packageDir: string, generatedIndexPath: string): Promise<string> {
|
|
25
25
|
const packageJson = await getPackageJson(packageDir);
|
|
26
|
-
let code = loadDependencySourceGraphs(packageJson);
|
|
26
|
+
let code = loadDependencySourceGraphs(packageDir, packageJson);
|
|
27
27
|
const sourceGraph = await createSourceGraph(packageDir);
|
|
28
28
|
code += generateSourceGraph(sourceGraph, packageJson.name);
|
|
29
29
|
code += generateSourceLinks(sourceGraph, packageJson, generatedIndexPath);
|
|
@@ -39,21 +39,91 @@ async function getPackageJson(packageDir: string): Promise<any> {
|
|
|
39
39
|
return require(packageJsonPath);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
function loadDependencySourceGraphs(packageJson: any): string {
|
|
42
|
+
function loadDependencySourceGraphs(packageDir: string, packageJson: any): string {
|
|
43
43
|
let code = '/** Load Dependency Source Graphs */\n\n';
|
|
44
|
+
|
|
45
|
+
const skipEnv = process.env.SKIP_REFLECTION_LOAD || '';
|
|
46
|
+
const skipList = skipEnv
|
|
47
|
+
.split(',')
|
|
48
|
+
.map((s) => s.trim())
|
|
49
|
+
.filter(Boolean);
|
|
50
|
+
|
|
44
51
|
if (packageJson.dependencies) {
|
|
45
52
|
for (const packageName in packageJson.dependencies) {
|
|
53
|
+
// Skip any packages listed in SKIP_REFLECTION_LOAD
|
|
54
|
+
if (skipList.includes(packageName)) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
|
|
46
58
|
if (packageName.startsWith('@material-ui')) {
|
|
47
59
|
continue;
|
|
48
60
|
}
|
|
49
61
|
|
|
50
|
-
|
|
62
|
+
const specifier = getDependencyImportSpecifier(packageDir, packageName);
|
|
63
|
+
if (!specifier) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
code += `import '${specifier}';\n`; // Load dependencies of package (ie. run code in dependency index)
|
|
51
67
|
}
|
|
52
68
|
}
|
|
53
69
|
|
|
54
70
|
return code;
|
|
55
71
|
}
|
|
56
72
|
|
|
73
|
+
/**
|
|
74
|
+
* Determine an import specifier for a dependency that respects its package.json exports or main/module fields.
|
|
75
|
+
*/
|
|
76
|
+
function getDependencyImportSpecifier(packageDir: string, packageName: string): string | undefined {
|
|
77
|
+
try {
|
|
78
|
+
require.resolve(packageName, { paths: [packageDir] });
|
|
79
|
+
return packageName;
|
|
80
|
+
} catch {
|
|
81
|
+
// Load the dependency's package.json to inspect exports or entryfields
|
|
82
|
+
let depPkgJson: any;
|
|
83
|
+
try {
|
|
84
|
+
const pkgJsonPath = require.resolve(path.join(packageName, 'package.json'), { paths: [packageDir] });
|
|
85
|
+
depPkgJson = require(pkgJsonPath);
|
|
86
|
+
} catch {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
const exportsField = depPkgJson.exports;
|
|
90
|
+
if (exportsField) {
|
|
91
|
+
let entryPoint: string | undefined;
|
|
92
|
+
if (typeof exportsField === 'string') {
|
|
93
|
+
entryPoint = exportsField;
|
|
94
|
+
} else if (typeof exportsField === 'object') {
|
|
95
|
+
const mainExport = exportsField['.'];
|
|
96
|
+
if (typeof mainExport === 'string') {
|
|
97
|
+
entryPoint = mainExport;
|
|
98
|
+
} else if (mainExport && typeof mainExport === 'object') {
|
|
99
|
+
entryPoint = mainExport.import || mainExport.require;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (!entryPoint) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
if (entryPoint.startsWith('./')) {
|
|
106
|
+
entryPoint = entryPoint.slice(2);
|
|
107
|
+
}
|
|
108
|
+
entryPoint = entryPoint.replace(/\.[^/.]+$/, '');
|
|
109
|
+
return `${packageName}/${entryPoint}`;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// No exports field: fall back to module or main
|
|
113
|
+
const fallback = depPkgJson.module || depPkgJson.main;
|
|
114
|
+
if (!fallback) {
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
let entryPoint = fallback;
|
|
119
|
+
if (entryPoint.startsWith('./')) {
|
|
120
|
+
entryPoint = entryPoint.slice(2);
|
|
121
|
+
}
|
|
122
|
+
entryPoint = entryPoint.replace(/\.[^/.]+$/, '');
|
|
123
|
+
return `${packageName}/${entryPoint}`;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
57
127
|
function generateSourceGraph(sourceGraph: Graph, buildTargetPackageName: string): string {
|
|
58
128
|
removeNonLoadables(sourceGraph, buildTargetPackageName);
|
|
59
129
|
let code = `\n\n/** Generate Source Graph */\n\n`;
|
|
@@ -110,7 +110,7 @@ function sourceRepositoryLoader(packageDir, generatedIndexPath) {
|
|
|
110
110
|
case 0: return [4 /*yield*/, getPackageJson(packageDir)];
|
|
111
111
|
case 1:
|
|
112
112
|
packageJson = _a.sent();
|
|
113
|
-
code = loadDependencySourceGraphs(packageJson);
|
|
113
|
+
code = loadDependencySourceGraphs(packageDir, packageJson);
|
|
114
114
|
return [4 /*yield*/, (0, createSourceGraph_1.createSourceGraph)(packageDir)];
|
|
115
115
|
case 2:
|
|
116
116
|
sourceGraph = _a.sent();
|
|
@@ -139,18 +139,86 @@ function getPackageJson(packageDir) {
|
|
|
139
139
|
});
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
|
-
function loadDependencySourceGraphs(packageJson) {
|
|
142
|
+
function loadDependencySourceGraphs(packageDir, packageJson) {
|
|
143
143
|
var code = '/** Load Dependency Source Graphs */\n\n';
|
|
144
|
+
var skipEnv = process.env.SKIP_REFLECTION_LOAD || '';
|
|
145
|
+
var skipList = skipEnv
|
|
146
|
+
.split(',')
|
|
147
|
+
.map(function (s) { return s.trim(); })
|
|
148
|
+
.filter(Boolean);
|
|
144
149
|
if (packageJson.dependencies) {
|
|
145
150
|
for (var packageName in packageJson.dependencies) {
|
|
151
|
+
// Skip any packages listed in SKIP_REFLECTION_LOAD
|
|
152
|
+
if (skipList.includes(packageName)) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
146
155
|
if (packageName.startsWith('@material-ui')) {
|
|
147
156
|
continue;
|
|
148
157
|
}
|
|
149
|
-
|
|
158
|
+
var specifier = getDependencyImportSpecifier(packageDir, packageName);
|
|
159
|
+
if (!specifier) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
code += "import '".concat(specifier, "';\n"); // Load dependencies of package (ie. run code in dependency index)
|
|
150
163
|
}
|
|
151
164
|
}
|
|
152
165
|
return code;
|
|
153
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Determine an import specifier for a dependency that respects its package.json exports or main/module fields.
|
|
169
|
+
*/
|
|
170
|
+
function getDependencyImportSpecifier(packageDir, packageName) {
|
|
171
|
+
try {
|
|
172
|
+
require.resolve(packageName, { paths: [packageDir] });
|
|
173
|
+
return packageName;
|
|
174
|
+
}
|
|
175
|
+
catch (_a) {
|
|
176
|
+
// Load the dependency's package.json to inspect exports or entryfields
|
|
177
|
+
var depPkgJson = void 0;
|
|
178
|
+
try {
|
|
179
|
+
var pkgJsonPath = require.resolve(path.join(packageName, 'package.json'), { paths: [packageDir] });
|
|
180
|
+
depPkgJson = require(pkgJsonPath);
|
|
181
|
+
}
|
|
182
|
+
catch (_b) {
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
var exportsField = depPkgJson.exports;
|
|
186
|
+
if (exportsField) {
|
|
187
|
+
var entryPoint_1;
|
|
188
|
+
if (typeof exportsField === 'string') {
|
|
189
|
+
entryPoint_1 = exportsField;
|
|
190
|
+
}
|
|
191
|
+
else if (typeof exportsField === 'object') {
|
|
192
|
+
var mainExport = exportsField['.'];
|
|
193
|
+
if (typeof mainExport === 'string') {
|
|
194
|
+
entryPoint_1 = mainExport;
|
|
195
|
+
}
|
|
196
|
+
else if (mainExport && typeof mainExport === 'object') {
|
|
197
|
+
entryPoint_1 = mainExport.import || mainExport.require;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (!entryPoint_1) {
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
if (entryPoint_1.startsWith('./')) {
|
|
204
|
+
entryPoint_1 = entryPoint_1.slice(2);
|
|
205
|
+
}
|
|
206
|
+
entryPoint_1 = entryPoint_1.replace(/\.[^/.]+$/, '');
|
|
207
|
+
return "".concat(packageName, "/").concat(entryPoint_1);
|
|
208
|
+
}
|
|
209
|
+
// No exports field: fall back to module or main
|
|
210
|
+
var fallback = depPkgJson.module || depPkgJson.main;
|
|
211
|
+
if (!fallback) {
|
|
212
|
+
return undefined;
|
|
213
|
+
}
|
|
214
|
+
var entryPoint = fallback;
|
|
215
|
+
if (entryPoint.startsWith('./')) {
|
|
216
|
+
entryPoint = entryPoint.slice(2);
|
|
217
|
+
}
|
|
218
|
+
entryPoint = entryPoint.replace(/\.[^/.]+$/, '');
|
|
219
|
+
return "".concat(packageName, "/").concat(entryPoint);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
154
222
|
function generateSourceGraph(sourceGraph, buildTargetPackageName) {
|
|
155
223
|
removeNonLoadables(sourceGraph, buildTargetPackageName);
|
|
156
224
|
var code = "\n\n/** Generate Source Graph */\n\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,kDAAqD;AACrD,wCAAgE;AAEhE,gDAA0B;AAC1B,iEAAgE;AAChE,oDAAqH;AAErH,SAAsB,mBAAmB,CAAC,UAAkB,EAAE,mBAA2B,EAAE,kBAA0B;;;;;;oBAC/G,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;oBACnD,qBAAM,yBAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAA;;yBAA9C,CAAC,CAAC,SAA4C,CAAC,EAA/C,wBAA+C;oBACjD,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;oBACnD,qBAAM,yBAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAA;;oBAAlD,IAAI,CAAC,CAAC,SAA4C,CAAC,EAAE;wBACnD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;qBACzE;;wBAGH,qBAAM,yBAAa,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAA;;oBAAnE,SAAmE,CAAC;oBAC/C,qBAAM,sBAAsB,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAA;;oBAA7E,cAAc,GAAG,SAA4D;oBACjF,cAAc,IAAI,+BAAwB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CAAC,aAAU,CAAC;oBACnG,qBAAM,yBAAa,CAAC,SAAS,CAAC,kBAAkB,EAAE,cAAc,CAAC,EAAA;;oBAAjE,SAAiE,CAAC;;;;;CACnE;AAbD,kDAaC;AAED,SAAe,sBAAsB,CAAC,UAAkB,EAAE,kBAA0B;;;;;wBAC9D,qBAAM,cAAc,CAAC,UAAU,CAAC,EAAA;;oBAA9C,WAAW,GAAG,SAAgC;oBAChD,IAAI,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,kDAAqD;AACrD,wCAAgE;AAEhE,gDAA0B;AAC1B,iEAAgE;AAChE,oDAAqH;AAErH,SAAsB,mBAAmB,CAAC,UAAkB,EAAE,mBAA2B,EAAE,kBAA0B;;;;;;oBAC/G,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;oBACnD,qBAAM,yBAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAA;;yBAA9C,CAAC,CAAC,SAA4C,CAAC,EAA/C,wBAA+C;oBACjD,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;oBACnD,qBAAM,yBAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAA;;oBAAlD,IAAI,CAAC,CAAC,SAA4C,CAAC,EAAE;wBACnD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;qBACzE;;wBAGH,qBAAM,yBAAa,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAA;;oBAAnE,SAAmE,CAAC;oBAC/C,qBAAM,sBAAsB,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAA;;oBAA7E,cAAc,GAAG,SAA4D;oBACjF,cAAc,IAAI,+BAAwB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CAAC,aAAU,CAAC;oBACnG,qBAAM,yBAAa,CAAC,SAAS,CAAC,kBAAkB,EAAE,cAAc,CAAC,EAAA;;oBAAjE,SAAiE,CAAC;;;;;CACnE;AAbD,kDAaC;AAED,SAAe,sBAAsB,CAAC,UAAkB,EAAE,kBAA0B;;;;;wBAC9D,qBAAM,cAAc,CAAC,UAAU,CAAC,EAAA;;oBAA9C,WAAW,GAAG,SAAgC;oBAChD,IAAI,GAAG,0BAA0B,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;oBAC3C,qBAAM,IAAA,qCAAiB,EAAC,UAAU,CAAC,EAAA;;oBAAjD,WAAW,GAAG,SAAmC;oBACvD,IAAI,IAAI,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC3D,IAAI,IAAI,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;oBAC1E,IAAI,IAAI,gBAAgB,EAAE,CAAC;oBAC3B,sBAAO,IAAI,EAAC;;;;CACb;AAED,SAAe,cAAc,CAAC,UAAkB;;;;;;oBACxC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;oBACxD,qBAAM,yBAAa,CAAC,MAAM,CAAC,eAAe,CAAC,EAAA;;oBAAjD,IAAI,CAAC,CAAC,SAA2C,CAAC,EAAE;wBAClD,MAAM,IAAI,KAAK,CAAC,8CAAuC,UAAU,CAAE,CAAC,CAAC;qBACtE;oBACD,sBAAO,OAAO,CAAC,eAAe,CAAC,EAAC;;;;CACjC;AAED,SAAS,0BAA0B,CAAC,UAAkB,EAAE,WAAgB;IACtE,IAAI,IAAI,GAAG,0CAA0C,CAAC;IAEtD,IAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC;IACvD,IAAM,QAAQ,GAAG,OAAO;SACrB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,IAAI,WAAW,CAAC,YAAY,EAAE;QAC5B,KAAK,IAAM,WAAW,IAAI,WAAW,CAAC,YAAY,EAAE;YAClD,mDAAmD;YACnD,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAClC,SAAS;aACV;YAED,IAAI,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;gBAC1C,SAAS;aACV;YAED,IAAM,SAAS,GAAG,4BAA4B,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACxE,IAAI,CAAC,SAAS,EAAE;gBACd,SAAS;aACV;YACD,IAAI,IAAI,kBAAW,SAAS,SAAM,CAAC,CAAC,kEAAkE;SACvG;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CAAC,UAAkB,EAAE,WAAmB;IAC3E,IAAI;QACF,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,WAAW,CAAC;KACpB;IAAC,WAAM;QACN,uEAAuE;QACvE,IAAI,UAAU,SAAK,CAAC;QACpB,IAAI;YACF,IAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACrG,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;SACnC;QAAC,WAAM;YACN,OAAO,SAAS,CAAC;SAClB;QACD,IAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC;QACxC,IAAI,YAAY,EAAE;YAChB,IAAI,YAA8B,CAAC;YACnC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;gBACpC,YAAU,GAAG,YAAY,CAAC;aAC3B;iBAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;gBAC3C,IAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;oBAClC,YAAU,GAAG,UAAU,CAAC;iBACzB;qBAAM,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;oBACvD,YAAU,GAAG,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC;iBACtD;aACF;YACD,IAAI,CAAC,YAAU,EAAE;gBACf,OAAO,SAAS,CAAC;aAClB;YACD,IAAI,YAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBAC/B,YAAU,GAAG,YAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAClC;YACD,YAAU,GAAG,YAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACjD,OAAO,UAAG,WAAW,cAAI,YAAU,CAAE,CAAC;SACvC;QAED,gDAAgD;QAChD,IAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,UAAU,GAAG,QAAQ,CAAC;QAC1B,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC/B,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClC;QACD,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO,UAAG,WAAW,cAAI,UAAU,CAAE,CAAC;KACvC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAkB,EAAE,sBAA8B;IAC7E,kBAAkB,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IACxD,IAAI,IAAI,GAAG,sCAAsC,CAAC;IAClD,IAAM,qBAAqB,GAAG,sBAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrE,IAAM,kCAAkC,GAAG,IAAA,eAAK,EAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,uDAAuD;IAChJ,IAAI,IAAI,8BAAuB,kCAAkC,QAAK,CAAC;IACvE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,WAAkB,EAAE,sBAA8B;IAC5E,KAAuB,UAAmB,EAAnB,KAAA,WAAW,CAAC,KAAK,EAAE,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;QAAvC,IAAM,QAAQ,SAAA;QACjB,IAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE;YACT,iDAAiD;YACjD,SAAS;SACV;QAED,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,EAAE,WAAW,CAAC,CAAC;KAClE;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAC5B,YAA0B,EAC1B,sBAA8B,EAC9B,WAAkB;IAElB,uBAAuB;IACvB,IAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAClE,IAAI,CAAC,QAAQ,EAAE;QACb,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;KACb;IAED,gBAAgB;IAChB,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,KAAsB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,EAAE;QAA3B,IAAM,OAAO,iBAAA;QAChB,6BAA6B;QAC7B,IAAI,OAAO,CAAC,CAAC,IAAI,oCAAuB,EAAE;YACxC,YAAY,GAAG,KAAK,CAAC;YACrB,SAAS;SACV;QAED,uFAAuF;QACvF,IAAM,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,IAAI,iBAAiB,IAAI,iBAAiB,IAAI,sBAAsB,EAAE;YACpE,YAAY,GAAG,KAAK,CAAC;YACrB,SAAS;SACV;QAED,IAAM,QAAM,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAM,EAAE;YACX,SAAS;SACV;QAED,IAAI,CAAC,qBAAqB,CAAC,QAAM,EAAE,sBAAsB,EAAE,WAAW,CAAC,EAAE;YACvE,YAAY,GAAG,KAAK,CAAC;SACtB;KACF;IAED,IAAI,YAAY,EAAE;QAChB,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;KACpD;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAkB,EAAE,WAAgB,EAAE,kBAA0B;IAC3F,IAAI,IAAI,GAAG,sCAAsC,CAAC;IAClD,IAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,KAAuB,UAAmB,EAAnB,KAAA,WAAW,CAAC,KAAK,EAAE,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;QAAvC,IAAM,QAAQ,SAAA;QACjB,IAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE;YACT,SAAS;SACV;QAED,IAAI,CAAC,CAAC,IAAA,mBAAY,EAAC,IAAI,EAAE,gCAAmB,CAAC,IAAI,IAAA,mBAAY,EAAC,IAAI,EAAE,6BAAgB,CAAC,CAAC,EAAE;YACtF,SAAS;SACV;QAED,IAAI,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE;YACxC,SAAS;SACV;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,SAAS;SACV;QAED,IAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1F,IAAI,IAAI,mBAAY,IAAI,CAAC,IAAI,sBAAY,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,SAAM,CAAC;QAC3F,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;IAED,IAAI,IAAI,2BAA2B,CAAC;IACpC,KAAmB,UAAa,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa,EAAE;QAA7B,IAAM,IAAI,sBAAA;QACb,IAAI,IAAI,aAAM,IAAI,CAAC,aAAa,gBAAM,IAAI,CAAC,IAAI,QAAK,CAAC;KACtD;IACD,IAAI,IAAI,MAAM,CAAC;IAEf,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,IAAI,GAAG,4CAA4C,CAAC;IACxD,IAAI,IAAI,6DAA6D,CAAC;IACtE,IAAI,IAAI,mDAAmD,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -110,7 +110,7 @@ function sourceRepositoryLoader(packageDir, generatedIndexPath) {
|
|
|
110
110
|
case 0: return [4 /*yield*/, getPackageJson(packageDir)];
|
|
111
111
|
case 1:
|
|
112
112
|
packageJson = _a.sent();
|
|
113
|
-
code = loadDependencySourceGraphs(packageJson);
|
|
113
|
+
code = loadDependencySourceGraphs(packageDir, packageJson);
|
|
114
114
|
return [4 /*yield*/, (0, createSourceGraph_1.createSourceGraph)(packageDir)];
|
|
115
115
|
case 2:
|
|
116
116
|
sourceGraph = _a.sent();
|
|
@@ -139,18 +139,86 @@ function getPackageJson(packageDir) {
|
|
|
139
139
|
});
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
|
-
function loadDependencySourceGraphs(packageJson) {
|
|
142
|
+
function loadDependencySourceGraphs(packageDir, packageJson) {
|
|
143
143
|
var code = '/** Load Dependency Source Graphs */\n\n';
|
|
144
|
+
var skipEnv = process.env.SKIP_REFLECTION_LOAD || '';
|
|
145
|
+
var skipList = skipEnv
|
|
146
|
+
.split(',')
|
|
147
|
+
.map(function (s) { return s.trim(); })
|
|
148
|
+
.filter(Boolean);
|
|
144
149
|
if (packageJson.dependencies) {
|
|
145
150
|
for (var packageName in packageJson.dependencies) {
|
|
151
|
+
// Skip any packages listed in SKIP_REFLECTION_LOAD
|
|
152
|
+
if (skipList.includes(packageName)) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
146
155
|
if (packageName.startsWith('@material-ui')) {
|
|
147
156
|
continue;
|
|
148
157
|
}
|
|
149
|
-
|
|
158
|
+
var specifier = getDependencyImportSpecifier(packageDir, packageName);
|
|
159
|
+
if (!specifier) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
code += "import '".concat(specifier, "';\n"); // Load dependencies of package (ie. run code in dependency index)
|
|
150
163
|
}
|
|
151
164
|
}
|
|
152
165
|
return code;
|
|
153
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Determine an import specifier for a dependency that respects its package.json exports or main/module fields.
|
|
169
|
+
*/
|
|
170
|
+
function getDependencyImportSpecifier(packageDir, packageName) {
|
|
171
|
+
try {
|
|
172
|
+
require.resolve(packageName, { paths: [packageDir] });
|
|
173
|
+
return packageName;
|
|
174
|
+
}
|
|
175
|
+
catch (_a) {
|
|
176
|
+
// Load the dependency's package.json to inspect exports or entryfields
|
|
177
|
+
var depPkgJson = void 0;
|
|
178
|
+
try {
|
|
179
|
+
var pkgJsonPath = require.resolve(path.join(packageName, 'package.json'), { paths: [packageDir] });
|
|
180
|
+
depPkgJson = require(pkgJsonPath);
|
|
181
|
+
}
|
|
182
|
+
catch (_b) {
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
var exportsField = depPkgJson.exports;
|
|
186
|
+
if (exportsField) {
|
|
187
|
+
var entryPoint_1;
|
|
188
|
+
if (typeof exportsField === 'string') {
|
|
189
|
+
entryPoint_1 = exportsField;
|
|
190
|
+
}
|
|
191
|
+
else if (typeof exportsField === 'object') {
|
|
192
|
+
var mainExport = exportsField['.'];
|
|
193
|
+
if (typeof mainExport === 'string') {
|
|
194
|
+
entryPoint_1 = mainExport;
|
|
195
|
+
}
|
|
196
|
+
else if (mainExport && typeof mainExport === 'object') {
|
|
197
|
+
entryPoint_1 = mainExport.import || mainExport.require;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (!entryPoint_1) {
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
if (entryPoint_1.startsWith('./')) {
|
|
204
|
+
entryPoint_1 = entryPoint_1.slice(2);
|
|
205
|
+
}
|
|
206
|
+
entryPoint_1 = entryPoint_1.replace(/\.[^/.]+$/, '');
|
|
207
|
+
return "".concat(packageName, "/").concat(entryPoint_1);
|
|
208
|
+
}
|
|
209
|
+
// No exports field: fall back to module or main
|
|
210
|
+
var fallback = depPkgJson.module || depPkgJson.main;
|
|
211
|
+
if (!fallback) {
|
|
212
|
+
return undefined;
|
|
213
|
+
}
|
|
214
|
+
var entryPoint = fallback;
|
|
215
|
+
if (entryPoint.startsWith('./')) {
|
|
216
|
+
entryPoint = entryPoint.slice(2);
|
|
217
|
+
}
|
|
218
|
+
entryPoint = entryPoint.replace(/\.[^/.]+$/, '');
|
|
219
|
+
return "".concat(packageName, "/").concat(entryPoint);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
154
222
|
function generateSourceGraph(sourceGraph, buildTargetPackageName) {
|
|
155
223
|
removeNonLoadables(sourceGraph, buildTargetPackageName);
|
|
156
224
|
var code = "\n\n/** Generate Source Graph */\n\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,kDAAqD;AACrD,wCAAgE;AAEhE,gDAA0B;AAC1B,iEAAgE;AAChE,oDAAqH;AAErH,SAAsB,mBAAmB,CAAC,UAAkB,EAAE,mBAA2B,EAAE,kBAA0B;;;;;;oBAC/G,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;oBACnD,qBAAM,yBAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAA;;yBAA9C,CAAC,CAAC,SAA4C,CAAC,EAA/C,wBAA+C;oBACjD,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;oBACnD,qBAAM,yBAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAA;;oBAAlD,IAAI,CAAC,CAAC,SAA4C,CAAC,EAAE;wBACnD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;qBACzE;;wBAGH,qBAAM,yBAAa,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAA;;oBAAnE,SAAmE,CAAC;oBAC/C,qBAAM,sBAAsB,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAA;;oBAA7E,cAAc,GAAG,SAA4D;oBACjF,cAAc,IAAI,+BAAwB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CAAC,aAAU,CAAC;oBACnG,qBAAM,yBAAa,CAAC,SAAS,CAAC,kBAAkB,EAAE,cAAc,CAAC,EAAA;;oBAAjE,SAAiE,CAAC;;;;;CACnE;AAbD,kDAaC;AAED,SAAe,sBAAsB,CAAC,UAAkB,EAAE,kBAA0B;;;;;wBAC9D,qBAAM,cAAc,CAAC,UAAU,CAAC,EAAA;;oBAA9C,WAAW,GAAG,SAAgC;oBAChD,IAAI,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":"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"}
|