@teambit/config-merger 0.0.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/dist/component-config-merger.d.ts +63 -0
- package/dist/component-config-merger.js +601 -0
- package/dist/component-config-merger.js.map +1 -0
- package/dist/config-merge-result.d.ts +21 -0
- package/dist/config-merge-result.js +163 -0
- package/dist/config-merge-result.js.map +1 -0
- package/dist/config-merger.aspect.d.ts +2 -0
- package/dist/config-merger.aspect.js +18 -0
- package/dist/config-merger.aspect.js.map +1 -0
- package/dist/config-merger.main.runtime.d.ts +30 -0
- package/dist/config-merger.main.runtime.js +356 -0
- package/dist/config-merger.main.runtime.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/preview-1705115706389.js +7 -0
- package/package.json +54 -0
- package/tsconfig.json +41 -0
- package/types/asset.d.ts +29 -0
- package/types/style.d.ts +42 -0
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.ConfigMergerMain = void 0;
|
|
7
|
+
function _semver() {
|
|
8
|
+
const data = _interopRequireDefault(require("semver"));
|
|
9
|
+
_semver = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _lodash() {
|
|
15
|
+
const data = require("lodash");
|
|
16
|
+
_lodash = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _dependencyResolver() {
|
|
22
|
+
const data = require("@teambit/dependency-resolver");
|
|
23
|
+
_dependencyResolver = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _tempy() {
|
|
29
|
+
const data = _interopRequireDefault(require("tempy"));
|
|
30
|
+
_tempy = function () {
|
|
31
|
+
return data;
|
|
32
|
+
};
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
function _fsExtra() {
|
|
36
|
+
const data = _interopRequireDefault(require("fs-extra"));
|
|
37
|
+
_fsExtra = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
function _cli() {
|
|
43
|
+
const data = require("@teambit/cli");
|
|
44
|
+
_cli = function () {
|
|
45
|
+
return data;
|
|
46
|
+
};
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
49
|
+
function _workspace() {
|
|
50
|
+
const data = require("@teambit/workspace");
|
|
51
|
+
_workspace = function () {
|
|
52
|
+
return data;
|
|
53
|
+
};
|
|
54
|
+
return data;
|
|
55
|
+
}
|
|
56
|
+
function _logger() {
|
|
57
|
+
const data = require("@teambit/logger");
|
|
58
|
+
_logger = function () {
|
|
59
|
+
return data;
|
|
60
|
+
};
|
|
61
|
+
return data;
|
|
62
|
+
}
|
|
63
|
+
function _constants() {
|
|
64
|
+
const data = require("@teambit/legacy/dist/constants");
|
|
65
|
+
_constants = function () {
|
|
66
|
+
return data;
|
|
67
|
+
};
|
|
68
|
+
return data;
|
|
69
|
+
}
|
|
70
|
+
function _bitError() {
|
|
71
|
+
const data = require("@teambit/bit-error");
|
|
72
|
+
_bitError = function () {
|
|
73
|
+
return data;
|
|
74
|
+
};
|
|
75
|
+
return data;
|
|
76
|
+
}
|
|
77
|
+
function _mergeFiles() {
|
|
78
|
+
const data = _interopRequireDefault(require("@teambit/legacy/dist/utils/merge-files"));
|
|
79
|
+
_mergeFiles = function () {
|
|
80
|
+
return data;
|
|
81
|
+
};
|
|
82
|
+
return data;
|
|
83
|
+
}
|
|
84
|
+
function _config() {
|
|
85
|
+
const data = require("@teambit/config");
|
|
86
|
+
_config = function () {
|
|
87
|
+
return data;
|
|
88
|
+
};
|
|
89
|
+
return data;
|
|
90
|
+
}
|
|
91
|
+
function _configMergeResult() {
|
|
92
|
+
const data = require("./config-merge-result");
|
|
93
|
+
_configMergeResult = function () {
|
|
94
|
+
return data;
|
|
95
|
+
};
|
|
96
|
+
return data;
|
|
97
|
+
}
|
|
98
|
+
function _configMerger() {
|
|
99
|
+
const data = require("./config-merger.aspect");
|
|
100
|
+
_configMerger = function () {
|
|
101
|
+
return data;
|
|
102
|
+
};
|
|
103
|
+
return data;
|
|
104
|
+
}
|
|
105
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
106
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
107
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
108
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
109
|
+
const WS_DEPS_FIELDS = ['dependencies', 'peerDependencies'];
|
|
110
|
+
|
|
111
|
+
// from => to
|
|
112
|
+
|
|
113
|
+
// the pkg value is in a format of CONFLICT::OURS::THEIRS
|
|
114
|
+
|
|
115
|
+
class ConfigMergerMain {
|
|
116
|
+
constructor(workspace, logger, config) {
|
|
117
|
+
this.workspace = workspace;
|
|
118
|
+
this.logger = logger;
|
|
119
|
+
this.config = config;
|
|
120
|
+
}
|
|
121
|
+
async generateConfigMergeConflictFileForAll(allConfigMerge) {
|
|
122
|
+
const configMergeFile = this.workspace.getConflictMergeFile();
|
|
123
|
+
allConfigMerge.forEach(configMerge => {
|
|
124
|
+
const conflict = configMerge.generateMergeConflictFile();
|
|
125
|
+
if (!conflict) return;
|
|
126
|
+
configMergeFile.addConflict(configMerge.compIdStr, conflict);
|
|
127
|
+
});
|
|
128
|
+
if (configMergeFile.hasConflict()) {
|
|
129
|
+
await configMergeFile.write();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
async writeWorkspaceJsoncWithConflictsGracefully(workspaceDepsConflicts) {
|
|
133
|
+
try {
|
|
134
|
+
await this.writeWorkspaceJsoncWithConflicts(workspaceDepsConflicts);
|
|
135
|
+
return undefined;
|
|
136
|
+
} catch (err) {
|
|
137
|
+
this.logger.error(`unable to write workspace.jsonc with conflicts`, err);
|
|
138
|
+
const errTitle = `unable to write workspace.jsonc with conflicts, due to an error: "${err.message}".
|
|
139
|
+
see the conflicts below and edit your workspace.jsonc as you see fit.`;
|
|
140
|
+
const conflictsStr = WS_DEPS_FIELDS.map(depField => {
|
|
141
|
+
if (!workspaceDepsConflicts[depField]) return [];
|
|
142
|
+
return workspaceDepsConflicts[depField].map(({
|
|
143
|
+
name,
|
|
144
|
+
version
|
|
145
|
+
}) => {
|
|
146
|
+
const {
|
|
147
|
+
currentVal,
|
|
148
|
+
otherVal
|
|
149
|
+
} = (0, _configMergeResult().parseVersionLineWithConflict)(version);
|
|
150
|
+
return `(${depField}) ${name}: ours: ${currentVal}, theirs: ${otherVal}`;
|
|
151
|
+
});
|
|
152
|
+
}).flat().join('\n');
|
|
153
|
+
return new (_bitError().BitError)(`${errTitle}\n${conflictsStr}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
async writeWorkspaceJsoncWithConflicts(workspaceDepsConflicts) {
|
|
157
|
+
const wsConfig = this.config.workspaceConfig;
|
|
158
|
+
if (!wsConfig) throw new Error(`unable to get workspace config`);
|
|
159
|
+
const wsJsoncPath = wsConfig.path;
|
|
160
|
+
const wsJsoncOriginalContent = await _fsExtra().default.readFile(wsJsoncPath, 'utf8');
|
|
161
|
+
let wsJsoncContent = wsJsoncOriginalContent;
|
|
162
|
+
WS_DEPS_FIELDS.forEach(depField => {
|
|
163
|
+
if (!workspaceDepsConflicts[depField]) return;
|
|
164
|
+
workspaceDepsConflicts[depField].forEach(({
|
|
165
|
+
name,
|
|
166
|
+
version
|
|
167
|
+
}) => {
|
|
168
|
+
const {
|
|
169
|
+
currentVal,
|
|
170
|
+
otherVal
|
|
171
|
+
} = (0, _configMergeResult().parseVersionLineWithConflict)(version);
|
|
172
|
+
// e.g. "@ci/8oypmb6p-remote.bar.foo": "^0.0.3"
|
|
173
|
+
const originalDep = `"${name}": "${currentVal}"`;
|
|
174
|
+
if (!wsJsoncContent.includes(originalDep)) {
|
|
175
|
+
throw new Error(`unable to find the dependency ${originalDep} in the workspace.jsonc`);
|
|
176
|
+
}
|
|
177
|
+
wsJsoncContent = wsJsoncContent.replace(originalDep, `"${name}": "${otherVal}"`);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
const baseFilePath = await _tempy().default.write('');
|
|
181
|
+
const otherFilePath = await _tempy().default.write(wsJsoncContent);
|
|
182
|
+
const mergeFilesParams = {
|
|
183
|
+
filePath: wsJsoncPath,
|
|
184
|
+
currentFile: {
|
|
185
|
+
label: 'ours',
|
|
186
|
+
path: wsJsoncPath
|
|
187
|
+
},
|
|
188
|
+
baseFile: {
|
|
189
|
+
path: baseFilePath
|
|
190
|
+
},
|
|
191
|
+
otherFile: {
|
|
192
|
+
label: 'theirs',
|
|
193
|
+
path: otherFilePath
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
const mergeResult = await (0, _mergeFiles().default)(mergeFilesParams);
|
|
197
|
+
const conflictFile = mergeResult.conflict;
|
|
198
|
+
if (!conflictFile) {
|
|
199
|
+
this.logger.debug(`original content:\n${wsJsoncOriginalContent}`);
|
|
200
|
+
this.logger.debug(`new content:\n${wsJsoncContent}`);
|
|
201
|
+
throw new Error('unable to generate conflict from the workspace.jsonc file. see debug.log for the file content');
|
|
202
|
+
}
|
|
203
|
+
await wsConfig.backupConfigFile('before writing conflicts');
|
|
204
|
+
await _fsExtra().default.writeFile(wsJsoncPath, conflictFile);
|
|
205
|
+
}
|
|
206
|
+
async updateWorkspaceJsoncWithDepsIfNeeded(allConfigMerge) {
|
|
207
|
+
const allResults = allConfigMerge.map(c => c.getDepsResolverResult());
|
|
208
|
+
|
|
209
|
+
// aggregate all dependencies that can be updated (not conflicting)
|
|
210
|
+
const nonConflictDeps = {};
|
|
211
|
+
const nonConflictSources = {}; // for logging/debugging purposes
|
|
212
|
+
allConfigMerge.forEach(configMerge => {
|
|
213
|
+
var _configMerge$getDepsR;
|
|
214
|
+
const mergedConfig = (_configMerge$getDepsR = configMerge.getDepsResolverResult()) === null || _configMerge$getDepsR === void 0 ? void 0 : _configMerge$getDepsR.mergedConfig;
|
|
215
|
+
if (!mergedConfig || mergedConfig === '-') return;
|
|
216
|
+
const mergedConfigPolicy = mergedConfig.policy || {};
|
|
217
|
+
_constants().DEPENDENCIES_FIELDS.forEach(depField => {
|
|
218
|
+
if (!mergedConfigPolicy[depField]) return;
|
|
219
|
+
mergedConfigPolicy[depField].forEach(pkg => {
|
|
220
|
+
if (pkg.force) return; // we only care about auto-detected dependencies
|
|
221
|
+
if (nonConflictDeps[pkg.name]) {
|
|
222
|
+
if (!nonConflictDeps[pkg.name].includes(pkg.version)) nonConflictDeps[pkg.name].push(pkg.version);
|
|
223
|
+
nonConflictSources[pkg.name].push(configMerge.compIdStr);
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
nonConflictDeps[pkg.name] = [pkg.version];
|
|
227
|
+
nonConflictSources[pkg.name] = [configMerge.compIdStr];
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
// aggregate all dependencies that have conflicts
|
|
233
|
+
const conflictDeps = {};
|
|
234
|
+
const conflictDepsSources = {}; // for logging/debugging purposes
|
|
235
|
+
allConfigMerge.forEach(configMerge => {
|
|
236
|
+
var _configMerge$getDepsR2;
|
|
237
|
+
const mergedConfigConflict = (_configMerge$getDepsR2 = configMerge.getDepsResolverResult()) === null || _configMerge$getDepsR2 === void 0 ? void 0 : _configMerge$getDepsR2.conflict;
|
|
238
|
+
if (!mergedConfigConflict) return;
|
|
239
|
+
_constants().DEPENDENCIES_FIELDS.forEach(depField => {
|
|
240
|
+
if (!mergedConfigConflict[depField]) return;
|
|
241
|
+
mergedConfigConflict[depField].forEach(pkg => {
|
|
242
|
+
if (pkg.force) return; // we only care about auto-detected dependencies
|
|
243
|
+
if (conflictDeps[pkg.name]) {
|
|
244
|
+
if (!conflictDeps[pkg.name].includes(pkg.version)) conflictDeps[pkg.name].push(pkg.version);
|
|
245
|
+
conflictDepsSources[pkg.name].push(configMerge.compIdStr);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
conflictDeps[pkg.name] = [pkg.version];
|
|
249
|
+
conflictDepsSources[pkg.name] = [configMerge.compIdStr];
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
const notConflictedPackages = Object.keys(nonConflictDeps);
|
|
254
|
+
const conflictedPackages = Object.keys(conflictDeps);
|
|
255
|
+
if (!notConflictedPackages.length && !conflictedPackages.length) return {};
|
|
256
|
+
const workspaceConfig = this.config.workspaceConfig;
|
|
257
|
+
if (!workspaceConfig) throw new Error(`updateWorkspaceJsoncWithDepsIfNeeded unable to get workspace config`);
|
|
258
|
+
const depResolver = workspaceConfig.extensions.findCoreExtension(_dependencyResolver().DependencyResolverAspect.id);
|
|
259
|
+
const policy = depResolver === null || depResolver === void 0 ? void 0 : depResolver.config.policy;
|
|
260
|
+
if (!policy) {
|
|
261
|
+
return {};
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
// calculate the workspace.json updates
|
|
265
|
+
const workspaceJsonUpdates = {};
|
|
266
|
+
notConflictedPackages.forEach(pkgName => {
|
|
267
|
+
if (nonConflictDeps[pkgName].length > 1) {
|
|
268
|
+
// we only want the deps that the other lane has them in the workspace.json and that all comps use the same dep.
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
_constants().DEPENDENCIES_FIELDS.forEach(depField => {
|
|
272
|
+
var _policy$depField;
|
|
273
|
+
if (!((_policy$depField = policy[depField]) !== null && _policy$depField !== void 0 && _policy$depField[pkgName])) return; // doesn't exists in the workspace.json
|
|
274
|
+
const currentVer = policy[depField][pkgName];
|
|
275
|
+
const newVer = nonConflictDeps[pkgName][0];
|
|
276
|
+
if (currentVer === newVer) return;
|
|
277
|
+
workspaceJsonUpdates[pkgName] = [currentVer, newVer];
|
|
278
|
+
policy[depField][pkgName] = newVer;
|
|
279
|
+
this.logger.debug(`update workspace.jsonc: ${pkgName} from ${currentVer} to ${newVer}. Triggered by: ${nonConflictSources[pkgName].join(', ')}`);
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
// calculate the workspace.json conflicts
|
|
284
|
+
const workspaceJsonConflicts = {
|
|
285
|
+
dependencies: [],
|
|
286
|
+
peerDependencies: []
|
|
287
|
+
};
|
|
288
|
+
const conflictPackagesToRemoveFromConfigMerge = [];
|
|
289
|
+
conflictedPackages.forEach(pkgName => {
|
|
290
|
+
if (conflictDeps[pkgName].length > 1) {
|
|
291
|
+
// we only want the deps that the other lane has them in the workspace.json and that all comps use the same dep.
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
const conflictRaw = conflictDeps[pkgName][0];
|
|
295
|
+
const [, currentVal, otherVal] = conflictRaw.split('::');
|
|
296
|
+
WS_DEPS_FIELDS.forEach(depField => {
|
|
297
|
+
var _policy$depField2;
|
|
298
|
+
if (!((_policy$depField2 = policy[depField]) !== null && _policy$depField2 !== void 0 && _policy$depField2[pkgName])) return;
|
|
299
|
+
const currentVerInWsJson = policy[depField][pkgName];
|
|
300
|
+
if (!currentVerInWsJson) return;
|
|
301
|
+
// the version is coming from the workspace.jsonc
|
|
302
|
+
conflictPackagesToRemoveFromConfigMerge.push(pkgName);
|
|
303
|
+
if (_semver().default.satisfies(otherVal, currentVerInWsJson)) {
|
|
304
|
+
// the other version is compatible with the current version in the workspace.json
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
workspaceJsonConflicts[depField].push({
|
|
308
|
+
name: pkgName,
|
|
309
|
+
version: conflictRaw.replace(currentVal, currentVerInWsJson),
|
|
310
|
+
force: false
|
|
311
|
+
});
|
|
312
|
+
conflictPackagesToRemoveFromConfigMerge.push(pkgName);
|
|
313
|
+
this.logger.debug(`conflict workspace.jsonc: ${pkgName} current: ${currentVerInWsJson}, other: ${otherVal}. Triggered by: ${conflictDepsSources[pkgName].join(', ')}`);
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
WS_DEPS_FIELDS.forEach(depField => {
|
|
317
|
+
if ((0, _lodash().isEmpty)(workspaceJsonConflicts[depField])) delete workspaceJsonConflicts[depField];
|
|
318
|
+
});
|
|
319
|
+
if (conflictPackagesToRemoveFromConfigMerge.length) {
|
|
320
|
+
allResults.forEach(result => {
|
|
321
|
+
if (result !== null && result !== void 0 && result.conflict) {
|
|
322
|
+
_constants().DEPENDENCIES_FIELDS.forEach(depField => {
|
|
323
|
+
var _result$conflict, _result$conflict2;
|
|
324
|
+
if (!((_result$conflict = result.conflict) !== null && _result$conflict !== void 0 && _result$conflict[depField])) return;
|
|
325
|
+
result.conflict[depField] = (_result$conflict2 = result.conflict) === null || _result$conflict2 === void 0 ? void 0 : _result$conflict2[depField].filter(dep => !conflictPackagesToRemoveFromConfigMerge.includes(dep.name));
|
|
326
|
+
if (!result.conflict[depField].length) delete result.conflict[depField];
|
|
327
|
+
});
|
|
328
|
+
if ((0, _lodash().isEmpty)(result.conflict)) result.conflict = undefined;
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
if (Object.keys(workspaceJsonUpdates).length) {
|
|
333
|
+
await workspaceConfig.write({
|
|
334
|
+
reasonForChange: 'merge (update dependencies)'
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
this.logger.debug('final workspace.jsonc updates', workspaceJsonUpdates);
|
|
338
|
+
this.logger.debug('final workspace.jsonc conflicts', workspaceJsonConflicts);
|
|
339
|
+
return {
|
|
340
|
+
workspaceDepsUpdates: Object.keys(workspaceJsonUpdates).length ? workspaceJsonUpdates : undefined,
|
|
341
|
+
workspaceDepsConflicts: Object.keys(workspaceJsonConflicts).length ? workspaceJsonConflicts : undefined
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
static async provider([workspace, config, loggerMain]) {
|
|
345
|
+
const logger = loggerMain.createLogger(_configMerger().ConfigMergerAspect.id);
|
|
346
|
+
return new ConfigMergerMain(workspace, logger, config);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
exports.ConfigMergerMain = ConfigMergerMain;
|
|
350
|
+
_defineProperty(ConfigMergerMain, "slots", []);
|
|
351
|
+
_defineProperty(ConfigMergerMain, "dependencies", [_workspace().WorkspaceAspect, _config().ConfigAspect, _logger().LoggerAspect]);
|
|
352
|
+
_defineProperty(ConfigMergerMain, "runtime", _cli().MainRuntime);
|
|
353
|
+
_configMerger().ConfigMergerAspect.addRuntime(ConfigMergerMain);
|
|
354
|
+
var _default = exports.default = ConfigMergerMain;
|
|
355
|
+
|
|
356
|
+
//# sourceMappingURL=config-merger.main.runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_semver","data","_interopRequireDefault","require","_lodash","_dependencyResolver","_tempy","_fsExtra","_cli","_workspace","_logger","_constants","_bitError","_mergeFiles","_config","_configMergeResult","_configMerger","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","WS_DEPS_FIELDS","ConfigMergerMain","constructor","workspace","logger","config","generateConfigMergeConflictFileForAll","allConfigMerge","configMergeFile","getConflictMergeFile","forEach","configMerge","conflict","generateMergeConflictFile","addConflict","compIdStr","hasConflict","write","writeWorkspaceJsoncWithConflictsGracefully","workspaceDepsConflicts","writeWorkspaceJsoncWithConflicts","undefined","err","error","errTitle","message","conflictsStr","map","depField","name","version","currentVal","otherVal","parseVersionLineWithConflict","flat","join","BitError","wsConfig","workspaceConfig","Error","wsJsoncPath","path","wsJsoncOriginalContent","fs","readFile","wsJsoncContent","originalDep","includes","replace","baseFilePath","tempy","otherFilePath","mergeFilesParams","filePath","currentFile","label","baseFile","otherFile","mergeResult","mergeFiles","conflictFile","debug","backupConfigFile","writeFile","updateWorkspaceJsoncWithDepsIfNeeded","allResults","c","getDepsResolverResult","nonConflictDeps","nonConflictSources","_configMerge$getDepsR","mergedConfig","mergedConfigPolicy","policy","DEPENDENCIES_FIELDS","pkg","force","push","conflictDeps","conflictDepsSources","_configMerge$getDepsR2","mergedConfigConflict","notConflictedPackages","keys","conflictedPackages","length","depResolver","extensions","findCoreExtension","DependencyResolverAspect","id","workspaceJsonUpdates","pkgName","_policy$depField","currentVer","newVer","workspaceJsonConflicts","dependencies","peerDependencies","conflictPackagesToRemoveFromConfigMerge","conflictRaw","split","_policy$depField2","currentVerInWsJson","semver","satisfies","isEmpty","result","_result$conflict","_result$conflict2","filter","dep","reasonForChange","workspaceDepsUpdates","provider","loggerMain","createLogger","ConfigMergerAspect","exports","WorkspaceAspect","ConfigAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["config-merger.main.runtime.ts"],"sourcesContent":["import semver from 'semver';\nimport { isEmpty } from 'lodash';\nimport { DependencyResolverAspect, WorkspacePolicyConfigKeysNames } from '@teambit/dependency-resolver';\nimport tempy from 'tempy';\nimport fs from 'fs-extra';\nimport { MainRuntime } from '@teambit/cli';\nimport { WorkspaceAspect, Workspace } from '@teambit/workspace';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { DEPENDENCIES_FIELDS } from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport mergeFiles, { MergeFileParams } from '@teambit/legacy/dist/utils/merge-files';\nimport { ConfigAspect, ConfigMain } from '@teambit/config';\nimport { ConfigMergeResult, parseVersionLineWithConflict } from './config-merge-result';\nimport { ConfigMergerAspect } from './config-merger.aspect';\n\ntype PkgEntry = { name: string; version: string; force: boolean };\n\nconst WS_DEPS_FIELDS = ['dependencies', 'peerDependencies'];\n\nexport type WorkspaceDepsUpdates = { [pkgName: string]: [string, string] }; // from => to\nexport type WorkspaceDepsConflicts = Record<WorkspacePolicyConfigKeysNames, Array<{ name: string; version: string }>>; // the pkg value is in a format of CONFLICT::OURS::THEIRS\n\nexport class ConfigMergerMain {\n constructor(private workspace: Workspace, private logger: Logger, private config: ConfigMain) {}\n\n async generateConfigMergeConflictFileForAll(allConfigMerge: ConfigMergeResult[]) {\n const configMergeFile = this.workspace.getConflictMergeFile();\n allConfigMerge.forEach((configMerge) => {\n const conflict = configMerge.generateMergeConflictFile();\n if (!conflict) return;\n configMergeFile.addConflict(configMerge.compIdStr, conflict);\n });\n if (configMergeFile.hasConflict()) {\n await configMergeFile.write();\n }\n }\n\n async writeWorkspaceJsoncWithConflictsGracefully(\n workspaceDepsConflicts: WorkspaceDepsConflicts\n ): Promise<Error | undefined> {\n try {\n await this.writeWorkspaceJsoncWithConflicts(workspaceDepsConflicts);\n return undefined;\n } catch (err: any) {\n this.logger.error(`unable to write workspace.jsonc with conflicts`, err);\n const errTitle = `unable to write workspace.jsonc with conflicts, due to an error: \"${err.message}\".\nsee the conflicts below and edit your workspace.jsonc as you see fit.`;\n const conflictsStr = WS_DEPS_FIELDS.map((depField) => {\n if (!workspaceDepsConflicts[depField]) return [];\n return workspaceDepsConflicts[depField].map(({ name, version }) => {\n const { currentVal, otherVal } = parseVersionLineWithConflict(version);\n return `(${depField}) ${name}: ours: ${currentVal}, theirs: ${otherVal}`;\n });\n })\n .flat()\n .join('\\n');\n return new BitError(`${errTitle}\\n${conflictsStr}`);\n }\n }\n\n private async writeWorkspaceJsoncWithConflicts(workspaceDepsConflicts: WorkspaceDepsConflicts) {\n const wsConfig = this.config.workspaceConfig;\n if (!wsConfig) throw new Error(`unable to get workspace config`);\n const wsJsoncPath = wsConfig.path;\n const wsJsoncOriginalContent = await fs.readFile(wsJsoncPath, 'utf8');\n let wsJsoncContent = wsJsoncOriginalContent;\n WS_DEPS_FIELDS.forEach((depField) => {\n if (!workspaceDepsConflicts[depField]) return;\n workspaceDepsConflicts[depField].forEach(({ name, version }) => {\n const { currentVal, otherVal } = parseVersionLineWithConflict(version);\n // e.g. \"@ci/8oypmb6p-remote.bar.foo\": \"^0.0.3\"\n const originalDep = `\"${name}\": \"${currentVal}\"`;\n if (!wsJsoncContent.includes(originalDep)) {\n throw new Error(`unable to find the dependency ${originalDep} in the workspace.jsonc`);\n }\n wsJsoncContent = wsJsoncContent.replace(originalDep, `\"${name}\": \"${otherVal}\"`);\n });\n });\n\n const baseFilePath = await tempy.write('');\n const otherFilePath = await tempy.write(wsJsoncContent);\n const mergeFilesParams: MergeFileParams = {\n filePath: wsJsoncPath,\n currentFile: {\n label: 'ours',\n path: wsJsoncPath,\n },\n baseFile: {\n path: baseFilePath,\n },\n otherFile: {\n label: 'theirs',\n path: otherFilePath,\n },\n };\n const mergeResult = await mergeFiles(mergeFilesParams);\n const conflictFile = mergeResult.conflict;\n if (!conflictFile) {\n this.logger.debug(`original content:\\n${wsJsoncOriginalContent}`);\n this.logger.debug(`new content:\\n${wsJsoncContent}`);\n throw new Error('unable to generate conflict from the workspace.jsonc file. see debug.log for the file content');\n }\n await wsConfig.backupConfigFile('before writing conflicts');\n await fs.writeFile(wsJsoncPath, conflictFile);\n }\n\n async updateWorkspaceJsoncWithDepsIfNeeded(\n allConfigMerge: ConfigMergeResult[]\n ): Promise<{ workspaceDepsUpdates?: WorkspaceDepsUpdates; workspaceDepsConflicts?: WorkspaceDepsConflicts }> {\n const allResults = allConfigMerge.map((c) => c.getDepsResolverResult());\n\n // aggregate all dependencies that can be updated (not conflicting)\n const nonConflictDeps: { [pkgName: string]: string[] } = {};\n const nonConflictSources: { [pkgName: string]: string[] } = {}; // for logging/debugging purposes\n allConfigMerge.forEach((configMerge) => {\n const mergedConfig = configMerge.getDepsResolverResult()?.mergedConfig;\n if (!mergedConfig || mergedConfig === '-') return;\n const mergedConfigPolicy = mergedConfig.policy || {};\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!mergedConfigPolicy[depField]) return;\n mergedConfigPolicy[depField].forEach((pkg: PkgEntry) => {\n if (pkg.force) return; // we only care about auto-detected dependencies\n if (nonConflictDeps[pkg.name]) {\n if (!nonConflictDeps[pkg.name].includes(pkg.version)) nonConflictDeps[pkg.name].push(pkg.version);\n nonConflictSources[pkg.name].push(configMerge.compIdStr);\n return;\n }\n nonConflictDeps[pkg.name] = [pkg.version];\n nonConflictSources[pkg.name] = [configMerge.compIdStr];\n });\n });\n });\n\n // aggregate all dependencies that have conflicts\n const conflictDeps: { [pkgName: string]: string[] } = {};\n const conflictDepsSources: { [pkgName: string]: string[] } = {}; // for logging/debugging purposes\n allConfigMerge.forEach((configMerge) => {\n const mergedConfigConflict = configMerge.getDepsResolverResult()?.conflict;\n if (!mergedConfigConflict) return;\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!mergedConfigConflict[depField]) return;\n mergedConfigConflict[depField].forEach((pkg: PkgEntry) => {\n if (pkg.force) return; // we only care about auto-detected dependencies\n if (conflictDeps[pkg.name]) {\n if (!conflictDeps[pkg.name].includes(pkg.version)) conflictDeps[pkg.name].push(pkg.version);\n conflictDepsSources[pkg.name].push(configMerge.compIdStr);\n return;\n }\n conflictDeps[pkg.name] = [pkg.version];\n conflictDepsSources[pkg.name] = [configMerge.compIdStr];\n });\n });\n });\n\n const notConflictedPackages = Object.keys(nonConflictDeps);\n const conflictedPackages = Object.keys(conflictDeps);\n if (!notConflictedPackages.length && !conflictedPackages.length) return {};\n\n const workspaceConfig = this.config.workspaceConfig;\n if (!workspaceConfig) throw new Error(`updateWorkspaceJsoncWithDepsIfNeeded unable to get workspace config`);\n const depResolver = workspaceConfig.extensions.findCoreExtension(DependencyResolverAspect.id);\n const policy = depResolver?.config.policy;\n if (!policy) {\n return {};\n }\n\n // calculate the workspace.json updates\n const workspaceJsonUpdates = {};\n notConflictedPackages.forEach((pkgName) => {\n if (nonConflictDeps[pkgName].length > 1) {\n // we only want the deps that the other lane has them in the workspace.json and that all comps use the same dep.\n return;\n }\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!policy[depField]?.[pkgName]) return; // doesn't exists in the workspace.json\n const currentVer = policy[depField][pkgName];\n const newVer = nonConflictDeps[pkgName][0];\n if (currentVer === newVer) return;\n workspaceJsonUpdates[pkgName] = [currentVer, newVer];\n policy[depField][pkgName] = newVer;\n this.logger.debug(\n `update workspace.jsonc: ${pkgName} from ${currentVer} to ${newVer}. Triggered by: ${nonConflictSources[\n pkgName\n ].join(', ')}`\n );\n });\n });\n\n // calculate the workspace.json conflicts\n const workspaceJsonConflicts = { dependencies: [], peerDependencies: [] };\n const conflictPackagesToRemoveFromConfigMerge: string[] = [];\n conflictedPackages.forEach((pkgName) => {\n if (conflictDeps[pkgName].length > 1) {\n // we only want the deps that the other lane has them in the workspace.json and that all comps use the same dep.\n return;\n }\n const conflictRaw = conflictDeps[pkgName][0];\n const [, currentVal, otherVal] = conflictRaw.split('::');\n\n WS_DEPS_FIELDS.forEach((depField) => {\n if (!policy[depField]?.[pkgName]) return;\n const currentVerInWsJson = policy[depField][pkgName];\n if (!currentVerInWsJson) return;\n // the version is coming from the workspace.jsonc\n conflictPackagesToRemoveFromConfigMerge.push(pkgName);\n if (semver.satisfies(otherVal, currentVerInWsJson)) {\n // the other version is compatible with the current version in the workspace.json\n return;\n }\n workspaceJsonConflicts[depField].push({\n name: pkgName,\n version: conflictRaw.replace(currentVal, currentVerInWsJson),\n force: false,\n });\n conflictPackagesToRemoveFromConfigMerge.push(pkgName);\n this.logger.debug(\n `conflict workspace.jsonc: ${pkgName} current: ${currentVerInWsJson}, other: ${otherVal}. Triggered by: ${conflictDepsSources[\n pkgName\n ].join(', ')}`\n );\n });\n });\n WS_DEPS_FIELDS.forEach((depField) => {\n if (isEmpty(workspaceJsonConflicts[depField])) delete workspaceJsonConflicts[depField];\n });\n\n if (conflictPackagesToRemoveFromConfigMerge.length) {\n allResults.forEach((result) => {\n if (result?.conflict) {\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!result.conflict?.[depField]) return;\n result.conflict[depField] = result.conflict?.[depField].filter(\n (dep) => !conflictPackagesToRemoveFromConfigMerge.includes(dep.name)\n );\n if (!result.conflict[depField].length) delete result.conflict[depField];\n });\n if (isEmpty(result.conflict)) result.conflict = undefined;\n }\n });\n }\n\n if (Object.keys(workspaceJsonUpdates).length) {\n await workspaceConfig.write({ reasonForChange: 'merge (update dependencies)' });\n }\n\n this.logger.debug('final workspace.jsonc updates', workspaceJsonUpdates);\n this.logger.debug('final workspace.jsonc conflicts', workspaceJsonConflicts);\n\n return {\n workspaceDepsUpdates: Object.keys(workspaceJsonUpdates).length ? workspaceJsonUpdates : undefined,\n workspaceDepsConflicts: Object.keys(workspaceJsonConflicts).length ? workspaceJsonConflicts : undefined,\n };\n }\n\n static slots = [];\n static dependencies = [WorkspaceAspect, ConfigAspect, LoggerAspect];\n static runtime = MainRuntime;\n static async provider([workspace, config, loggerMain]: [Workspace, ConfigMain, LoggerMain]) {\n const logger = loggerMain.createLogger(ConfigMergerAspect.id);\n return new ConfigMergerMain(workspace, logger, config);\n }\n}\n\nConfigMergerAspect.addRuntime(ConfigMergerMain);\n\nexport default ConfigMergerMain;\n"],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ConfigMergerAspect } from './config-merger.aspect';
|
|
2
|
+
export type { ConfigMergerMain, WorkspaceDepsUpdates, WorkspaceDepsConflicts } from './config-merger.main.runtime';
|
|
3
|
+
export type { ConfigMergeResult } from './config-merge-result';
|
|
4
|
+
export { ComponentConfigMerger } from './component-config-merger';
|
|
5
|
+
export default ConfigMergerAspect;
|
|
6
|
+
export { ConfigMergerAspect };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "ComponentConfigMerger", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _componentConfigMerger().ComponentConfigMerger;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "ConfigMergerAspect", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _configMerger().ConfigMergerAspect;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
exports.default = void 0;
|
|
19
|
+
function _configMerger() {
|
|
20
|
+
const data = require("./config-merger.aspect");
|
|
21
|
+
_configMerger = function () {
|
|
22
|
+
return data;
|
|
23
|
+
};
|
|
24
|
+
return data;
|
|
25
|
+
}
|
|
26
|
+
function _componentConfigMerger() {
|
|
27
|
+
const data = require("./component-config-merger");
|
|
28
|
+
_componentConfigMerger = function () {
|
|
29
|
+
return data;
|
|
30
|
+
};
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
33
|
+
var _default = exports.default = _configMerger().ConfigMergerAspect;
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_configMerger","data","require","_componentConfigMerger","_default","exports","default","ConfigMergerAspect"],"sources":["index.ts"],"sourcesContent":["import { ConfigMergerAspect } from './config-merger.aspect';\n\nexport type { ConfigMergerMain, WorkspaceDepsUpdates, WorkspaceDepsConflicts } from './config-merger.main.runtime';\nexport type { ConfigMergeResult } from './config-merge-result';\nexport { ComponentConfigMerger } from './component-config-merger';\nexport default ConfigMergerAspect;\nexport { ConfigMergerAspect };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAAA,cAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,aAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAE,uBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,sBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAkE,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACnDC,kCAAkB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@teambit/config-merger",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"componentId": {
|
|
6
|
+
"name": "config-merger",
|
|
7
|
+
"version": "0.0.1",
|
|
8
|
+
"scope": "teambit.workspace"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"lodash": "4.17.21",
|
|
12
|
+
"semver": "7.5.2",
|
|
13
|
+
"fs-extra": "10.0.0",
|
|
14
|
+
"tempy": "1.0.1",
|
|
15
|
+
"core-js": "^3.0.0",
|
|
16
|
+
"@babel/runtime": "7.20.0",
|
|
17
|
+
"@teambit/component-id": "1.2.0",
|
|
18
|
+
"@teambit/component-version": "1.0.3",
|
|
19
|
+
"@teambit/harmony": "0.4.6",
|
|
20
|
+
"@teambit/bit-error": "0.0.404",
|
|
21
|
+
"@teambit/builder": "1.0.134",
|
|
22
|
+
"@teambit/dependency-resolver": "1.0.134",
|
|
23
|
+
"@teambit/envs": "1.0.134",
|
|
24
|
+
"@teambit/logger": "0.0.941",
|
|
25
|
+
"@teambit/cli": "0.0.848",
|
|
26
|
+
"@teambit/config": "0.0.885",
|
|
27
|
+
"@teambit/workspace": "1.0.134"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@types/lodash": "4.14.165",
|
|
31
|
+
"@types/semver": "7.3.4",
|
|
32
|
+
"@types/fs-extra": "9.0.7",
|
|
33
|
+
"@types/node": "12.20.4",
|
|
34
|
+
"@types/react": "^17.0.8",
|
|
35
|
+
"@types/react-dom": "^17.0.5",
|
|
36
|
+
"@types/jest": "^26.0.0",
|
|
37
|
+
"@types/testing-library__jest-dom": "5.9.5"
|
|
38
|
+
},
|
|
39
|
+
"peerDependencies": {
|
|
40
|
+
"@teambit/legacy": "1.0.636",
|
|
41
|
+
"react": "^16.8.0 || ^17.0.0",
|
|
42
|
+
"react-dom": "^16.8.0 || ^17.0.0"
|
|
43
|
+
},
|
|
44
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
45
|
+
"optionalDependencies": {},
|
|
46
|
+
"peerDependenciesMeta": {},
|
|
47
|
+
"exports": {
|
|
48
|
+
"node": {
|
|
49
|
+
"require": "./dist/index.js",
|
|
50
|
+
"import": "./dist/esm.mjs"
|
|
51
|
+
},
|
|
52
|
+
"default": "./dist/index.js"
|
|
53
|
+
}
|
|
54
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"lib": [
|
|
4
|
+
"es2019",
|
|
5
|
+
"DOM",
|
|
6
|
+
"ES6",
|
|
7
|
+
"DOM.Iterable",
|
|
8
|
+
"ScriptHost"
|
|
9
|
+
],
|
|
10
|
+
"target": "es2015",
|
|
11
|
+
"module": "CommonJS",
|
|
12
|
+
"jsx": "react",
|
|
13
|
+
"allowJs": true,
|
|
14
|
+
"composite": true,
|
|
15
|
+
"declaration": true,
|
|
16
|
+
"sourceMap": true,
|
|
17
|
+
"skipLibCheck": true,
|
|
18
|
+
"experimentalDecorators": true,
|
|
19
|
+
"outDir": "dist",
|
|
20
|
+
"moduleResolution": "node",
|
|
21
|
+
"esModuleInterop": true,
|
|
22
|
+
"rootDir": ".",
|
|
23
|
+
"resolveJsonModule": true,
|
|
24
|
+
"emitDeclarationOnly": true,
|
|
25
|
+
"emitDecoratorMetadata": true,
|
|
26
|
+
"allowSyntheticDefaultImports": true,
|
|
27
|
+
"strictPropertyInitialization": false,
|
|
28
|
+
"strict": true,
|
|
29
|
+
"noImplicitAny": false,
|
|
30
|
+
"preserveConstEnums": true
|
|
31
|
+
},
|
|
32
|
+
"exclude": [
|
|
33
|
+
"dist",
|
|
34
|
+
"esm.mjs",
|
|
35
|
+
"package.json"
|
|
36
|
+
],
|
|
37
|
+
"include": [
|
|
38
|
+
"**/*",
|
|
39
|
+
"**/*.json"
|
|
40
|
+
]
|
|
41
|
+
}
|
package/types/asset.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
declare module '*.png' {
|
|
2
|
+
const value: any;
|
|
3
|
+
export = value;
|
|
4
|
+
}
|
|
5
|
+
declare module '*.svg' {
|
|
6
|
+
import type { FunctionComponent, SVGProps } from 'react';
|
|
7
|
+
|
|
8
|
+
export const ReactComponent: FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>;
|
|
9
|
+
const src: string;
|
|
10
|
+
export default src;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// @TODO Gilad
|
|
14
|
+
declare module '*.jpg' {
|
|
15
|
+
const value: any;
|
|
16
|
+
export = value;
|
|
17
|
+
}
|
|
18
|
+
declare module '*.jpeg' {
|
|
19
|
+
const value: any;
|
|
20
|
+
export = value;
|
|
21
|
+
}
|
|
22
|
+
declare module '*.gif' {
|
|
23
|
+
const value: any;
|
|
24
|
+
export = value;
|
|
25
|
+
}
|
|
26
|
+
declare module '*.bmp' {
|
|
27
|
+
const value: any;
|
|
28
|
+
export = value;
|
|
29
|
+
}
|
package/types/style.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
declare module '*.module.css' {
|
|
2
|
+
const classes: { readonly [key: string]: string };
|
|
3
|
+
export default classes;
|
|
4
|
+
}
|
|
5
|
+
declare module '*.module.scss' {
|
|
6
|
+
const classes: { readonly [key: string]: string };
|
|
7
|
+
export default classes;
|
|
8
|
+
}
|
|
9
|
+
declare module '*.module.sass' {
|
|
10
|
+
const classes: { readonly [key: string]: string };
|
|
11
|
+
export default classes;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
declare module '*.module.less' {
|
|
15
|
+
const classes: { readonly [key: string]: string };
|
|
16
|
+
export default classes;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
declare module '*.less' {
|
|
20
|
+
const classes: { readonly [key: string]: string };
|
|
21
|
+
export default classes;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
declare module '*.css' {
|
|
25
|
+
const classes: { readonly [key: string]: string };
|
|
26
|
+
export default classes;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
declare module '*.sass' {
|
|
30
|
+
const classes: { readonly [key: string]: string };
|
|
31
|
+
export default classes;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
declare module '*.scss' {
|
|
35
|
+
const classes: { readonly [key: string]: string };
|
|
36
|
+
export default classes;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
declare module '*.mdx' {
|
|
40
|
+
const component: any;
|
|
41
|
+
export default component;
|
|
42
|
+
}
|